[Bug target/84514] powerpc sub optimal condition register reuse with extended inline asm
segher at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 27 17:28:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84514
Segher Boessenkool <segher at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|powerpc-*-* |powerpc*-*-*
--- Comment #1 from Segher Boessenkool <segher at gcc dot gnu.org> ---
If you do not use a volatile asm (it has no outputs so it is always volatile),
you get:
(replace the asm with
long dum;
asm("#asm input register %0" : "=r"(dum) : "r"(lr));
):
cmpdi 7,3,5
bnelr 7
addis 8,2,.LC0@toc@ha
ld 8,.LC0@toc@l(8)
addis 9,2,.LC1@toc@ha
ld 9,.LC1@toc@l(9)
#APP
# 7 "84514.c" 1
mflr 7
# 0 "" 2
# 16 "84514.c" 1
mfctr 10
# 0 "" 2
#NO_APP
std 7,0(8)
std 10,0(9)
blr
so everything is fine then. The difference already happens at tree level,
many things do not know how to optimise in the presence of volatile asm.
More information about the Gcc-bugs
mailing list