RFR(S): 8011706: specjvm2008 test xml.transform gets array bound exception with c1
vladimir.kozlov at oracle.com
Tue Apr 9 09:24:37 PDT 2013
On 4/9/13 9:02 AM, Roland Westrelin wrote:
>> Changes are good but could you explain how you got "dominator is not a direct predecessor"? In C2 only irreducible loops have several entry points and could have such situation. Is it the same for this case in C1? Just curious.
> Thanks for the review.
> The test case in the webrev is an example. The loop header has 3 predecessors (both branches of the if + the backbranch). The dominator of the loop header is the block that ends with the if. So loop invariant code motion moves the load of the array field before the if.
I see. In C2 we insert additional block with Region before loop to merge
all incoming branches so the loop block has only one entry and may be
few back branches (which we split later during loop transofrmation).
More information about the hotspot-compiler-dev