RFR(S): 8140574: C2 must re-execute checks after deoptimizing from merged uncommon traps
roland.westrelin at oracle.com
Fri Oct 30 15:07:36 UTC 2015
I think you need to check that should_reexecute() is true for the JVMState of the dominating test. I don’t know if that part is good or not:
2911 JsrSet* jsr_null = new ciTypeFlow::JsrSet(NULL);
2914 Block* block = get_block_for(index, jsr_null, ciTypeFlow::no_create);
2915 Block* dom_block = get_block_for(dom_index, jsr_null, ciTypeFlow::no_create);
(The use of JsrSet null that I don’t understand)
Also, the same bci can be in multiple blocks because ciTypeFlow clones some block (ciTypeFlow::clone_loop_head()) and I wonder if that can be a problem or not.
Otherwise it looks good to me.
More information about the hotspot-compiler-dev