C2: Compiler scheduling oddity

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jun 17 19:23:10 UTC 2016


Okay. So these blocks are LCA for these nodes.
What is not clear: why load node was placed between a Call and his CatchNode?
Based on java code load should happen on fall-through path and not on exception path. So load should be in the following 
block after the call.

Vladimir

On 6/17/16 7:17 AM, Andrew Haley wrote:
> On 17/06/16 01:02, Vladimir Kozlov wrote:
>> "After ScheduleLate" looks to me as "After schedule_early()" because nodes are near their definitions.
>
> Really not: the dump is here.
>
>   if (victim) {
>     tty->print("\n---- After ScheduleLate ----\n");
>     for (uint i = 0; i < number_of_blocks(); i++) {
>       Block* block = get_block(i);
>       block->dump();
>     }
>   }
>
> } // end ScheduleLate
>
> Andrew.
>


More information about the hotspot-compiler-dev mailing list