This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/33673] [4.3 Regression] ICE in verify_flow_info, missing barrier, when multiple tree opts disabled
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Oct 2007 19:29:39 -0000
- Subject: [Bug rtl-optimization/33673] [4.3 Regression] ICE in verify_flow_info, missing barrier, when multiple tree opts disabled
- References: <bug-33673-4503@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from jakub at gcc dot gnu dot org 2007-10-11 19:29 -------
It calls purge_dead_edges after changing the jump, so if it changed that into
an unconditional jump, purge_dead_edges will purge the EDGE_FALLTHRU
edge and keep the other edge.
If cfglayout mode is supposed to avoid unconditional jumps, then that needs to
be changed, so that the old non-fallthrough edge becomes EDGE_FALLTHRU and old
EDGE_FALLTHRU is removed. I believe in other cases cprop_jump could e.g. only
simplify an conditional jump (then what it does ATM is probably ok) or could
e.g. change a conditional returnjump_p into unconditional one (how are those
supposed to be expressed in cfglayout mode)?
Anyway, it seems both pass_gcse and pass_bypass are both always in cfglayout
mode, so no conditionalization on current_ir_type () is needed.
--
jakub at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|jakub at gcc dot gnu dot org|unassigned at gcc dot gnu
| |dot org
Status|ASSIGNED |NEW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33673