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