comparison agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java @ 10197:7b23cb975cf2

8011675: adding compilation level to replay data Reviewed-by: kvn, vlivanov
author iignatyev
date Thu, 25 Apr 2013 11:09:24 -0700
parents bd7a7ce2e264
children de6a9e811145
comparison
equal deleted inserted replaced
10196:dc7db03f5aa2 10197:7b23cb975cf2
76 stack. An not_entrant method can be removed when there is no 76 stack. An not_entrant method can be removed when there is no
77 more activations, i.e., when the _stack_traversal_mark is less than 77 more activations, i.e., when the _stack_traversal_mark is less than
78 current sweep traversal index. */ 78 current sweep traversal index. */
79 private static CIntegerField stackTraversalMarkField; 79 private static CIntegerField stackTraversalMarkField;
80 80
81 private static CIntegerField compLevelField;
82
81 static { 83 static {
82 VM.registerVMInitializedObserver(new Observer() { 84 VM.registerVMInitializedObserver(new Observer() {
83 public void update(Observable o, Object data) { 85 public void update(Observable o, Object data) {
84 initialize(VM.getVM().getTypeDataBase()); 86 initialize(VM.getVM().getTypeDataBase());
85 } 87 }
111 entryPointField = type.getAddressField("_entry_point"); 113 entryPointField = type.getAddressField("_entry_point");
112 verifiedEntryPointField = type.getAddressField("_verified_entry_point"); 114 verifiedEntryPointField = type.getAddressField("_verified_entry_point");
113 osrEntryPointField = type.getAddressField("_osr_entry_point"); 115 osrEntryPointField = type.getAddressField("_osr_entry_point");
114 lockCountField = type.getJIntField("_lock_count"); 116 lockCountField = type.getJIntField("_lock_count");
115 stackTraversalMarkField = type.getCIntegerField("_stack_traversal_mark"); 117 stackTraversalMarkField = type.getCIntegerField("_stack_traversal_mark");
116 118 compLevelField = type.getCIntegerField("_comp_level");
117 pcDescSize = db.lookupType("PcDesc").getSize(); 119 pcDescSize = db.lookupType("PcDesc").getSize();
118 } 120 }
119 121
120 public NMethod(Address addr) { 122 public NMethod(Address addr) {
121 super(addr); 123 super(addr);
528 } 530 }
529 Klass holder = method.getMethodHolder(); 531 Klass holder = method.getMethodHolder();
530 out.println("compile " + holder.getName().asString() + " " + 532 out.println("compile " + holder.getName().asString() + " " +
531 OopUtilities.escapeString(method.getName().asString()) + " " + 533 OopUtilities.escapeString(method.getName().asString()) + " " +
532 method.getSignature().asString() + " " + 534 method.getSignature().asString() + " " +
533 getEntryBCI()); 535 getEntryBCI() + " " + getCompLevel());
534 536
535 } 537 }
536 538
537 //-------------------------------------------------------------------------------- 539 //--------------------------------------------------------------------------------
538 // Internals only below this point 540 // Internals only below this point
549 private int getScopesPCsOffset() { return (int) scopesPCsOffsetField .getValue(addr); } 551 private int getScopesPCsOffset() { return (int) scopesPCsOffsetField .getValue(addr); }
550 private int getDependenciesOffset() { return (int) dependenciesOffsetField.getValue(addr); } 552 private int getDependenciesOffset() { return (int) dependenciesOffsetField.getValue(addr); }
551 private int getHandlerTableOffset() { return (int) handlerTableOffsetField.getValue(addr); } 553 private int getHandlerTableOffset() { return (int) handlerTableOffsetField.getValue(addr); }
552 private int getNulChkTableOffset() { return (int) nulChkTableOffsetField .getValue(addr); } 554 private int getNulChkTableOffset() { return (int) nulChkTableOffsetField .getValue(addr); }
553 private int getNMethodEndOffset() { return (int) nmethodEndOffsetField .getValue(addr); } 555 private int getNMethodEndOffset() { return (int) nmethodEndOffsetField .getValue(addr); }
556 private int getCompLevel() { return (int) compLevelField .getValue(addr); }
554 } 557 }