[Bug c++/79002] Weird c++ assembly code generated for tail call
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 9 08:29:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79002
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Looking at
NEXT_PASS (pass_cd_dce);
NEXT_PASS (pass_early_ipa_sra);
NEXT_PASS (pass_tail_recursion);
NEXT_PASS (pass_convert_switch);
NEXT_PASS (pass_cleanup_eh);
NEXT_PASS (pass_profile);
NEXT_PASS (pass_local_pure_const);
/* Split functions creates parts that are not run through
early optimizations again. It is thus good idea to do this
late. */
NEXT_PASS (pass_split_functions);
POP_INSERT_PASSES ()
I think neither switch-conversion nor tail-recursion should enable extra
EH cleanup opportunities so moving cleanup_eh before tail-recursion might
work.
Of course the question is why writing (i) makes i addressable in the first
place... (which is why I left this categorized as C++ FE issue)
More information about the Gcc-bugs
mailing list