[Bug middle-end/87370] Regression in return struct code
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Sep 24 14:45:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87370
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|hjl at gcc dot gnu.org |hjl.tools at gmail dot com
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
For
f2 ()
{
struct B D.2315;
;; basic block 2, loop depth 0
;; pred: ENTRY
D.2315 = {};
return D.2315;
;; succ: EXIT
}
C++ front-end generates:
(insn 5 2 6 2 (set (mem/j/c:TI (plus:DI (reg/f:DI 78 virtual-stack-vars)
(const_int -16 [0xfffffffffffffff0])) [0 D.2315+0 S16 A128])
(const_int 0 [0])) "x.ii":8 -1
(nil))
(insn 6 5 7 2 (set (reg:DI 85)
(mem/j/c:DI (plus:DI (reg/f:DI 78 virtual-stack-vars)
(const_int -16 [0xfffffffffffffff0])) [0 D.2315+0 S8 A128]))
"x.
ii":8 -1
(nil))
(insn 7 6 8 2 (set (reg:DI 86)
(mem/j/c:DI (plus:DI (reg/f:DI 78 virtual-stack-vars)
(const_int -8 [0xfffffffffffffff8])) [0 D.2315+8 S8 A64]))
"x.ii
":8 -1
(nil))
(insn 8 7 9 2 (set (reg:DI 83 [ <retval> ])
(reg:DI 85)) "x.ii":8 -1
(nil))
(insn 9 8 13 2 (set (reg:DI 84 [ <retval>+8 ])
(reg:DI 86)) "x.ii":8 -1
(nil))
(insn 13 9 14 2 (set (reg:DI 0 ax)
(reg:DI 83 [ <retval> ])) "x.ii":9 -1
(nil))
(insn 14 13 15 2 (set (reg:DI 1 dx)
(reg:DI 84 [ <retval>+8 ])) "x.ii":9 -1
(nil))
(insn 15 14 16 2 (use (reg:DI 0 ax)) "x.ii":9 -1
(nil))
(insn 16 15 0 2 (use (reg:DI 1 dx)) "x.ii":9 -1
(nil))
Why can't C++ front-end generate better RTL?
More information about the Gcc-bugs
mailing list