[multiple changes]
2009-09-20 Paolo Bonzini <bonzini@gnu.org> PR/39886 * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU just when insn is equal to BB_END (bb). 2009-09-20 Kai Tietz <kai.tietz@onevision.com> * gcc.c-tortue/compile/pr39886.c: New. From-SVN: r151895
This commit is contained in:
parent
ed6d9a1b9b
commit
63c6c7e070
@ -1,3 +1,9 @@
|
|||||||
|
2009-09-20 Paolo Bonzini <bonzini@gnu.org>
|
||||||
|
|
||||||
|
PR/39886
|
||||||
|
* combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
|
||||||
|
just when insn is equal to BB_END (bb).
|
||||||
|
|
||||||
2009-09-19 Adam Nemet <anemet@caviumnetworks.com>
|
2009-09-19 Adam Nemet <anemet@caviumnetworks.com>
|
||||||
|
|
||||||
* config/mips/mips.opt (mrelax-pic-calls): New option.
|
* config/mips/mips.opt (mrelax-pic-calls): New option.
|
||||||
|
@ -2363,7 +2363,7 @@ propagate_for_debug (rtx insn, rtx last, rtx dest, rtx src, bool move)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Delete the conditional jump INSN and adjust the CFG correspondingly.
|
/* Delete the unconditional jump INSN and adjust the CFG correspondingly.
|
||||||
Note that the INSN should be deleted *after* removing dead edges, so
|
Note that the INSN should be deleted *after* removing dead edges, so
|
||||||
that the kept edge is the fallthrough edge for a (set (pc) (pc))
|
that the kept edge is the fallthrough edge for a (set (pc) (pc))
|
||||||
but not for a (set (pc) (label_ref FOO)). */
|
but not for a (set (pc) (label_ref FOO)). */
|
||||||
@ -2372,12 +2372,13 @@ static void
|
|||||||
update_cfg_for_uncondjump (rtx insn)
|
update_cfg_for_uncondjump (rtx insn)
|
||||||
{
|
{
|
||||||
basic_block bb = BLOCK_FOR_INSN (insn);
|
basic_block bb = BLOCK_FOR_INSN (insn);
|
||||||
|
bool at_end = (BB_END (bb) == insn);
|
||||||
|
|
||||||
if (BB_END (bb) == insn)
|
if (at_end)
|
||||||
purge_dead_edges (bb);
|
purge_dead_edges (bb);
|
||||||
|
|
||||||
delete_insn (insn);
|
delete_insn (insn);
|
||||||
if (EDGE_COUNT (bb->succs) == 1)
|
if (at_end && EDGE_COUNT (bb->succs) == 1)
|
||||||
single_succ_edge (bb)->flags |= EDGE_FALLTHRU;
|
single_succ_edge (bb)->flags |= EDGE_FALLTHRU;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2009-09-20 Kai Tietz <kai.tietz@onevision.com>
|
||||||
|
|
||||||
|
* gcc.c-tortue/compile/pr39886.c: New.
|
||||||
|
|
||||||
2009-09-20 Chris Demetriou <cgd@google.com>
|
2009-09-20 Chris Demetriou <cgd@google.com>
|
||||||
|
|
||||||
PR preprocessor/28435:
|
PR preprocessor/28435:
|
||||||
|
12
gcc/testsuite/gcc.c-torture/compile/pr39886.c
Normal file
12
gcc/testsuite/gcc.c-torture/compile/pr39886.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/* PR middle-end/39886 */
|
||||||
|
|
||||||
|
int foo (int);
|
||||||
|
|
||||||
|
volatile unsigned char g;
|
||||||
|
|
||||||
|
void bar (int p)
|
||||||
|
{
|
||||||
|
char l = 0xE1;
|
||||||
|
func ((foo ((p & g) <= l), 1));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user