Request for review (S): C2 should recognize "obj.getClass() == A.class" code pattern
john.r.rose at oracle.com
Wed Apr 25 23:59:30 PDT 2012
On Apr 25, 2012, at 7:37 PM, John Rose wrote:
> On Apr 25, 2012, at 6:32 PM, Krystal Mok wrote:
>> Oops. I'm getting native NPE in CmpPNode::Ideal() with SPECjvm2008.
>> Will investigate and post an updated patch later.
> In the long run, those asserts will fire also. (At least, such asserts usually do. Compilers eventually explore all dark corners in the IR schema.)
> I am mulling over some more comments along that line. Basically, pattern-matching code has to "expect the unexpected".
One other quick comment: LoadKlass nodes are not just for oopDesc::_klass. They load klasses from other places too. The way you tell the difference is by looking at the base object and offset. Grep for LoadKlassNode::make to see various constructions. Also look at uses of Ideal_base_and_offset; the offset is never disregarded.
More information about the hotspot-compiler-dev