A question about bytecodes + unsigned load performance ./. add performace
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Thu Jan 15 10:51:20 PST 2009
I looked on your previous post.
Again there is no enough information.
Is this graph produced after you changed something in C2?
311 is the loop's entry control so LoadB is placed
outside the loop but AndI and StoreC is inside the loop.
This makes no sense for this case.
Christian, I would suggest to look on this loop before first
unrolling/peeling.
You may use visualizer to see how the graph evolves.
Vladimir
Christian Thalinger wrote:
> On Thu, 2009-01-15 at 09:44 -0800, Vladimir Kozlov wrote:
>> The loop in match_into_reg() is simplified check for
>> control nodes domination. You have to follow all
>> merging paths above a region to check that they all dominate.
>> And since it didn't reach m->in(0) we can not say that it dominates
>> so we bailout.
>>
>> I wonder what are different control nodes. One is a loop head (region),
>> I assume, and an other? And why AndI has control edge?
>>
>> AndI === 458 129 140 [[ 164 ]]
>
> Here are the nodes:
>
> 141 AndI === 458 129 140 [[ 164 ]] !orig=[377] !jvms: test::decode @ bci:4 test::bar @ bci:29
>
> 458 CountedLoop === 458 311 172 [[ 438 439 440 441 457 458 346 461 164 204 141 347 ]] inner stride: 4 main of N458 !orig=[359],[205],[184],[100] !jvms: test::bar @ bci:22
> 129 LoadB === 311 51 127 [[ 141 ]] @byte[int:>=0]:exact+any *, idx=4; #byte !jvms: test::bar @ bci:28
> 140 ConI === 0 [[ 141 217 268 347 439 441 ]] #int:255
>
> 164 StoreC === 458 346 162 141 [[ 295 461 ]] @char[int:>=0]:exact+any *, idx=5; Memory: @char[int:10]:NotNull:exact+any *, idx=5; !orig=[376] !jvms: test::bar @ bci:32
>
> Did you know that AndI has a control edge from the node output above or
> from my previous posting?
>
> -- Christian
>
More information about the hotspot-compiler-dev
mailing list