[Bug tree-optimization/78810] [7 Regression] Optimized out volatile memory access
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 16 10:04:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78810
--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to rguenther@suse.de from comment #2)
> On Fri, 16 Dec 2016, marxin at gcc dot gnu.org wrote:
>
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78810
> >
> > --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
> > Sorry, correct wording is that Ruby 2.3 does not survive its regression tests.
>
> Did you analyze why? vparser is unused here ... it looks like ruby
> is maybe trying to avoid a tail/sibling call here?
>
> That said, the optimization is perfectly valid.
Not analyzed deeper, however also clang does a tail-call:
.Ltmp4:
.cfi_offset %r14, -16
movl %ecx, %ebx
movq %rsi, %r14
callq _Z10get_parserv
movslq %ebx, %rdx
movq %rax, %rdi
movq %r14, %rsi
addq $8, %rsp
popq %rbx
popq %r14
jmp _Z9yycompileP13parser_paramsmm # TAILCALL
Let me check it if primary motivation is to prevent tail call.
More information about the Gcc-bugs
mailing list