Request for reviews (M): 7029152: Ideal nodes for String intrinsics miss memory edge optimization
vladimir.kozlov at oracle.com
Wed Mar 30 11:30:16 PDT 2011
Sorry if you got 2 copies, I send it yesterday but did not get it back. So I
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