http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |WAITING --- Comment #46 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-11-19 08:18:11 UTC --- I think CCP is not folding one way or another as it might lead to inconsistent control flows (i.e. one place assuming that the given undefined value is 0, other that 1). Initializing them to 0 is one consistent way to get stuff optimized out. I am not biggest friend of that (I think they should stay undefined and liveness should handle it well) but givent hat RTL land does it anyway there is no point to bother. Anyway I looked at the date for jump in CSiBE sizes in our tester. It is May 30 2009 It coincide with Richard's EH unwind reorg 2009-05-29 Richard Henderson <r...@redhat.com> * cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK. * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks. Duplicate NOTE_INSN_EPILOGUE_BEG notes. * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG to be deleted. * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield, add in_use field. (add_cfi): Disable check redefining cfa away from drap. (lookup_cfa_1): Add remember argument; handle remember/restore. (lookup_cfa): Pass remember argument. (cfa_remember): New. given that it makes tables asynchronous and it is thus correcntess issue and given that it is misaccounted as code size by "size" command and thus also CSiBE and given that I analyzed quite few testcases and found no inliner bugs, I think the bug no longer exists (-Os inliner was improved a lot). It would be nice if someone tested it using the cross, for now I am putting it into waiting stage and will open new PRs for the few new issues I noticed.