comparison src/share/vm/c1/c1_Canonicalizer.cpp @ 1791:3a294e483abc

6919069: client compiler needs to capture more profile information for tiered work Summary: Added profiling of instanceof and aastore. Reviewed-by: kvn, jrose, never
author iveresov
date Mon, 13 Sep 2010 12:10:49 -0700
parents d5d065957597
children f02a8bbe6ed4
comparison
equal deleted inserted replaced
1790:7f9553bedfd5 1791:3a294e483abc
671 } 671 }
672 } 672 }
673 } else if (l->as_InstanceOf() != NULL) { 673 } else if (l->as_InstanceOf() != NULL) {
674 // NOTE: Code permanently disabled for now since it leaves the old InstanceOf 674 // NOTE: Code permanently disabled for now since it leaves the old InstanceOf
675 // instruction in the graph (it is pinned). Need to fix this at some point. 675 // instruction in the graph (it is pinned). Need to fix this at some point.
676 // It should also be left in the graph when generating a profiled method version or Goto
677 // has to know that it was an InstanceOf.
676 return; 678 return;
677 // pattern: If ((obj instanceof klass) cond rc) => simplify to: IfInstanceOf or: Goto 679 // pattern: If ((obj instanceof klass) cond rc) => simplify to: IfInstanceOf or: Goto
678 InstanceOf* inst = l->as_InstanceOf(); 680 InstanceOf* inst = l->as_InstanceOf();
679 BlockBegin* is_inst_sux = x->sux_for(is_true(1, x->cond(), rc)); // successor for instanceof == 1 681 BlockBegin* is_inst_sux = x->sux_for(is_true(1, x->cond(), rc)); // successor for instanceof == 1
680 BlockBegin* no_inst_sux = x->sux_for(is_true(0, x->cond(), rc)); // successor for instanceof == 0 682 BlockBegin* no_inst_sux = x->sux_for(is_true(0, x->cond(), rc)); // successor for instanceof == 0