--- Comment #9 from jakub at gcc dot gnu dot org 2007-11-01 08:48 ---
Subject: Bug 33673
Author: jakub
Date: Thu Nov 1 08:48:05 2007
New Revision: 129819
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129819
Log:
PR rtl-optimization/33673
* gcse.c (cprop_jump):
--- Comment #10 from jakub at gcc dot gnu dot org 2007-11-01 08:49 ---
Fixed.
--
jakub at gcc dot gnu dot org changed:
What|Removed |Added
Status|ASSIGNED
--
jakub at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org
|dot org
--
jakub at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org
|dot org
--- Comment #4 from jakub at gcc dot gnu dot org 2007-10-11 16:27 ---
If cprop_jump changes a conditional jump into unconditional, then it forgets
to add a BARRIER after it. When not in cfglayout mode that's enough, but
in cfglayout mode it is uglier, though I haven't found a cfg hook
--- Comment #5 from steven at gcc dot gnu dot org 2007-10-11 18:52 ---
What do the edge flags look like after cprop changes the jump? EDGE_FALLTHRU
should be set.
Also, the unconditional JUMP_INSN should be removed. Unconditional jumps are
removed when going into cfglayout mode, and
--- Comment #6 from steven at gcc dot gnu dot org 2007-10-11 18:53 ---
The patch from comment #4 is wrong and should not be applied.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33673
--- 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
--- Comment #8 from steven at gcc dot gnu dot org 2007-10-11 19:55 ---
Updating the CFG as suggested in comment #7 is the appropriate thing to do.
How about using delete_insn_and_edges() on the jump insn, and setting
EDGE_FALLTHRU on the remaining edge?
--
--
mmitchel at gcc dot gnu dot org changed:
What|Removed |Added
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33673
--- Comment #3 from steven at gcc dot gnu dot org 2007-10-06 12:36 ---
10 to 1 this is a problem with coming out of cfglayout mode somewhere.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #2 from pinskia at gcc dot gnu dot org 2007-10-06 01:30 ---
Even though the patch was for Tree level, the patch exposed a latent bug in the
rtl optimizers (missing barrier after can only happen on the rtl level).
--
pinskia at gcc dot gnu dot org changed:
12 matches
Mail list logo