< prev index next >

src/share/vm/runtime/deoptimization.cpp

Print this page
rev 8471 : [mq]: dont_profile.8074551

@@ -1458,11 +1458,15 @@
     // allows the compiled code to stay around until enough traps are seen,
     // and until the compiler gets around to recompiling the trapping method.
     //
     // The other actions cause immediate removal of the present code.
 
-    bool update_trap_state = (reason != Reason_tenured);
+    // Traps caused by injected profile shouldn't pollute trap counts.
+    bool injected_profile_trap = trap_method->has_injected_profile() &&
+                                 (reason == Reason_intrinsic || reason == Reason_unreached);
+
+    bool update_trap_state = (reason != Reason_tenured) && !injected_profile_trap;
     bool make_not_entrant = false;
     bool make_not_compilable = false;
     bool reprofile = false;
     switch (action) {
     case Action_none:
< prev index next >