Request for reviews (M): 7029152: Ideal nodes for String intrinsics miss memory edge optimization

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Mar 29 15:07:14 PDT 2011


Second loop opts changes.

http://cr.openjdk.java.net/~kvn/7029152

Fixed 7029152: Ideal nodes for String intrinsics miss memory edge optimization

Superword optimization assumes that only Load nodes in loop or MergeMem outside 
of loop could reference Store nodes. In bug case the loop has MergeMem nodes 
used by StrIndexOf nodes which cause the failure:
# assert(out == prev || prev == NULL) failed: no branches off of store slice)

Added base class StrIntrinsicNode for String intrinsics nodes. In Ideal() method 
look for TypeAryPtr::CHARS memory slice if memory is MergeMem.
Do not unroll a loop with String intrinsics code. String intrinsics are large 
and have loops.

Added regression test.


More information about the hotspot-compiler-dev mailing list