Request for reviews (M): 7029152: Ideal nodes for String intrinsics miss memory edge optimization
vladimir.kozlov at oracle.com
Tue Mar 29 15:07:14 PDT 2011
Second loop opts changes.
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