A question on endGroupNode

Gustavo Romero gromero at linux.vnet.ibm.com
Tue Jan 31 11:18:56 UTC 2017


Hi,

Sometimes the JVM on PPC64 puts a group ending nop (ori r1,r1,0) after
conditional branches, like, for instance, the following assembly sequence from
C2 generated from Hive code:

   379 6.6e-04 :    10000980436c:       lwz     r14,16(r6)
   816  0.0014 :    100009804370:       cmplw   cr6,r7,r14
               :    100009804374:       bge     cr6,100009804ee8
               :    100009804378:       ori     r1,r1,0   <=== endGroup
   167 2.9e-04 :    10000980437c:       add     r15,r7,r8
   892  0.0015 :    100009804380:       addi    r17,r15,-1
               :    100009804384:       cmplw   cr5,r17,r14
               :    100009804388:       bge     cr5,100009804ee8
   262 4.5e-04 :    10000980438c:       ori     r1,r1,0   <=== endGroup
   648  0.0011 :    100009804390:       li      r14,0
               :    100009804394:       cmpld   cr6,r5,r14
               :    100009804398:       beq     cr6,100009804ee8
   267 4.6e-04 :    10000980439c:       ori     r1,r1,0   <=== endGroup
   930  0.0016 :    1000098043a0:       addis   r20,r29,384
               :    1000098043a4:       addi    r20,r20,16384

The (ori r1, r1, 0) seems to be emitted from a endGroupNode defined in:
http://hg.openjdk.java.net/jdk9/hs/hotspot/file/6c1e79a99176/src/cpu/ppc/vm/ppc.ad#l13261

Nonetheless, I could not generated any endGroupNode using SPECjvm2008 (i.e.
looking at the log from -XX:+PrintOptoAssembly there is no "End Bundle" anywhere).

Any idea why it exists primarily and if there is any option to control its
emission or even a particular way to avoid the creation of an endGroupNode?

Thank you.


Best regards,
Gustavo



More information about the ppc-aix-port-dev mailing list