Class BytecodeAnnotationBuilder
- java.lang.Object
-
- org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable
-
- org.adoptopenjdk.jitwatch.model.bytecode.BytecodeAnnotationBuilder
-
- All Implemented Interfaces:
ICompilationVisitable
public class BytecodeAnnotationBuilder extends AbstractCompilationVisitable
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.EnumSet<BCAnnotationType>allowedAnnotationsprivate BytecodeAnnotationsbcAnnotationsprivate IMetaMembercurrentMemberprivate static com.chrisnewland.freelogj.Loggerloggerprivate IReadOnlyJITDataModelmodelprivate PackageManagerpackageManagerprivate booleanprocessAnnotationsForInlinedMethodsprivate java.util.Set<Tag>unhandledTagsprivate booleanverifyBytecodeInstructions-
Fields inherited from class org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable
ignoreTags
-
-
Constructor Summary
Constructors Constructor Description BytecodeAnnotationBuilder(boolean verifyBytecodeInstructions)BytecodeAnnotationBuilder(boolean verifyBytecodeInstructions, boolean processAnnotationsForInlinedMethods)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringbuildBranchAnnotation(java.util.Map<java.lang.String,java.lang.String> tagAttrs)BytecodeAnnotationsbuildBytecodeAnnotations(IMetaMember member, int compilationIndex, IReadOnlyJITDataModel model)BytecodeAnnotationsbuildBytecodeAnnotations(IMetaMember member, int compilationIndex, IReadOnlyJITDataModel model, java.util.EnumSet<BCAnnotationType> allowedAnnotations)private java.lang.StringbuildElidedLockAnnotation(boolean isInlined)private java.lang.StringbuildEliminatedAllocationAnnotation(java.lang.String typeOrKlassName, boolean isInlined)private voidbuildEliminationTagAnnotations(int jdkMajorVersion, Compilation compilation)private java.lang.StringbuildInlineAnnotation(IParseDictionary parseDictionary, java.util.Map<java.lang.String,java.lang.String> methodAttrs, java.util.Map<java.lang.String,java.lang.String> callAttrs, java.lang.String reason, boolean inlined)private voidbuildParseTagAnnotations(int jdkMajorVersion, Compilation compilation)private voidbuildParseTagAnnotations(Tag parseTag, BytecodeAnnotations annotations, IParseDictionary parseDictionary)private IMetaMemberfindMemberForInlinedMethod(Tag tagJVMS, IParseDictionary parseDictionary)private BytecodeInstructiongetInstructionAtIndex(int index)java.util.Set<Tag>getUnhandledTags()private booleanisLateInline(Tag parseTag)private voidputAnnotation(IMetaMember member, int bci, LineAnnotation annotation)booleansanityCheckBranch(BytecodeInstruction instr)booleansanityCheckInline(BytecodeInstruction instr)booleansanityCheckIntrinsic(BytecodeInstruction instr)private booleansanityCheckInvoke(BytecodeInstruction instr)private voidstoreElidedLock(IMetaMember member, int bciValue, java.lang.String kind, BCIOpcodeMap bciOpcodeMap)private voidstoreEliminatedAllocation(IMetaMember member, int bciValue, java.lang.String typeOrKlassName, BCIOpcodeMap bciOpcodeMap)voidvisitTag(Tag tag, IParseDictionary parseDictionary)private voidvisitTagEliminateAllocation(Tag tagEliminateAllocation, IParseDictionary parseDictionary)private voidvisitTagEliminateLock(Tag tagEliminateLock, IParseDictionary parseDictionary)private voidvisitTagParse(Tag tagParse, IParseDictionary parseDictionary)private voidvisitTagUncommonTrap(Tag tag)-
Methods inherited from class org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable
handleOther
-
-
-
-
Field Detail
-
logger
private static final com.chrisnewland.freelogj.Logger logger
-
currentMember
private IMetaMember currentMember
-
model
private IReadOnlyJITDataModel model
-
bcAnnotations
private BytecodeAnnotations bcAnnotations
-
verifyBytecodeInstructions
private boolean verifyBytecodeInstructions
-
processAnnotationsForInlinedMethods
private boolean processAnnotationsForInlinedMethods
-
allowedAnnotations
private java.util.EnumSet<BCAnnotationType> allowedAnnotations
-
packageManager
private PackageManager packageManager
-
unhandledTags
private java.util.Set<Tag> unhandledTags
-
-
Method Detail
-
buildBytecodeAnnotations
public BytecodeAnnotations buildBytecodeAnnotations(IMetaMember member, int compilationIndex, IReadOnlyJITDataModel model) throws AnnotationException
- Throws:
AnnotationException
-
buildBytecodeAnnotations
public BytecodeAnnotations buildBytecodeAnnotations(IMetaMember member, int compilationIndex, IReadOnlyJITDataModel model, java.util.EnumSet<BCAnnotationType> allowedAnnotations) throws AnnotationException
- Throws:
AnnotationException
-
buildParseTagAnnotations
private void buildParseTagAnnotations(int jdkMajorVersion, Compilation compilation) throws LogParseException- Throws:
LogParseException
-
buildEliminationTagAnnotations
private void buildEliminationTagAnnotations(int jdkMajorVersion, Compilation compilation) throws LogParseException- Throws:
LogParseException
-
visitTag
public void visitTag(Tag tag, IParseDictionary parseDictionary) throws LogParseException
- Throws:
LogParseException
-
visitTagParse
private void visitTagParse(Tag tagParse, IParseDictionary parseDictionary) throws LogParseException
- Throws:
LogParseException
-
isLateInline
private boolean isLateInline(Tag parseTag)
-
visitTagEliminateAllocation
private void visitTagEliminateAllocation(Tag tagEliminateAllocation, IParseDictionary parseDictionary)
-
storeEliminatedAllocation
private void storeEliminatedAllocation(IMetaMember member, int bciValue, java.lang.String typeOrKlassName, BCIOpcodeMap bciOpcodeMap)
-
findMemberForInlinedMethod
private IMetaMember findMemberForInlinedMethod(Tag tagJVMS, IParseDictionary parseDictionary)
-
putAnnotation
private void putAnnotation(IMetaMember member, int bci, LineAnnotation annotation)
-
visitTagEliminateLock
private void visitTagEliminateLock(Tag tagEliminateLock, IParseDictionary parseDictionary)
-
storeElidedLock
private void storeElidedLock(IMetaMember member, int bciValue, java.lang.String kind, BCIOpcodeMap bciOpcodeMap)
-
buildElidedLockAnnotation
private java.lang.String buildElidedLockAnnotation(boolean isInlined)
-
visitTagUncommonTrap
private void visitTagUncommonTrap(Tag tag)
-
buildParseTagAnnotations
private void buildParseTagAnnotations(Tag parseTag, BytecodeAnnotations annotations, IParseDictionary parseDictionary) throws AnnotationException
- Throws:
AnnotationException
-
buildInlineAnnotation
private java.lang.String buildInlineAnnotation(IParseDictionary parseDictionary, java.util.Map<java.lang.String,java.lang.String> methodAttrs, java.util.Map<java.lang.String,java.lang.String> callAttrs, java.lang.String reason, boolean inlined)
-
buildEliminatedAllocationAnnotation
private java.lang.String buildEliminatedAllocationAnnotation(java.lang.String typeOrKlassName, boolean isInlined)
-
buildBranchAnnotation
private java.lang.String buildBranchAnnotation(java.util.Map<java.lang.String,java.lang.String> tagAttrs)
-
sanityCheckInline
public boolean sanityCheckInline(BytecodeInstruction instr)
-
sanityCheckIntrinsic
public boolean sanityCheckIntrinsic(BytecodeInstruction instr)
-
sanityCheckInvoke
private boolean sanityCheckInvoke(BytecodeInstruction instr)
-
sanityCheckBranch
public boolean sanityCheckBranch(BytecodeInstruction instr)
-
getInstructionAtIndex
private BytecodeInstruction getInstructionAtIndex(int index)
-
getUnhandledTags
public java.util.Set<Tag> getUnhandledTags()
-
-