Request for reviews (M): 7004555: Add new policy for one iteration loops
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Apr 8 10:41:39 PDT 2011
Thank you, Tom
All fixed.
I moved flags to LoopNode class and renamed the rest of flags:
+ enum { Normal=0, Pre=1, Main=2, Post=3, PreMainPostFlagsMask=3,
+ MainHasNoPreLoop=4,
+ HasExactTripCount=8,
+ InnerLoop=16,
+ PartialPeelLoop=32,
+ PartialPeelFailed=64 };
- enum { pre_post_main=0, inner_loop=8, partial_peel_loop=16,
partial_peel_failed=32 };
- enum { Normal=0, Pre=1, Main=2, Post=3, PrePostFlagsMask=3,
Main_Has_No_Pre_Loop=4 };
Thanks,
Vladimir
Tom Rodriguez wrote:
> loopTransform.cpp:
>
> bounderies -> boundaries
>
> There's a use UseNewCode left behind
>
> loopnode.hpp:
>
> The relationship between the loop_flags enum in LoopNode and the one in CountedLoopNode is kind of obscure. Could you declare them together so it's more obvious?
>
> Otherwise it looks good.
>
> tom
>
>
> On Apr 6, 2011, at 12:24 PM, Vladimir Kozlov wrote:
>
>> http://cr.openjdk.java.net/~kvn/7004555/webrev
>>
>> Fixed 7004555: Add new policy for one iteration loops
>>
>> Add new policy for one iteration loops (mostly formal pre- loops) to fold exit condition and avoid going through do_maximally_unroll() as we do currently for such cases.
>> Move exact trip count calculation from policy_maximally_unroll() into separate method. Note, trip_count type is changed to unsigned int and its range is changed to [0, max_juint). Add new flag HasExactTripCount to indicate that loop's limits and trip count are constants.
>> Check for non overlaping init and limit values to avoid zero trip guard generation in remove_empty_loop.
>> Rename some CountedLoopNode flags.
>> Print loop iv range for counted loops dumps:
>>
>> Loop: N286/N193 predicated counted [0,2),+1
>
More information about the hotspot-compiler-dev
mailing list