https://llvm.org/bugs/show_bug.cgi?id=31257
Hans Wennborg <h...@chromium.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |qcolom...@apple.com Resolution|--- |FIXED Summary|-Oz miscompilation? |-Oz miscompilation due to | |conditional tail calls and | |machine copy propagation --- Comment #8 from Hans Wennborg <h...@chromium.org> --- I have reverted the conditional tail call functionality until we figure out how to solve this properly: r294348 I'll merge that to 4.0 once it's baked for a bit. Quentin: Me and Michael discussed this a little on https://reviews.llvm.org/D29511. The problem is how to model conditional tail calls. Currently, they are modeled as a regular tail call (isCall and isReturn, etc.) and also as a branch (isBranch). The problem is that treating them as a call can imply that they clobber caller-saved registers. But they only do that if their condition is true. So perhaps they should not be modelled as calls, but just returns. And if we do that, why should regular tail calls be modelled as calls? They're more like special returns anyway. Does this sound reasonable to you? Could there be any unintended consequences? -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs