diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-04 20:24:15 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-04 20:24:15 +0000 |
commit | 8c936e55ed60072107fa3a7d3cd728f7f74dd198 (patch) | |
tree | 88c7421e027323dfc259d89cfc562d0c678055a6 /gcc | |
parent | 5e1a494e3ecae63bf0d573a0592d691541a203d2 (diff) | |
download | gcc-8c936e55ed60072107fa3a7d3cd728f7f74dd198.tar.gz |
PR rtl-optimization/47612
* df-problems.c (can_move_insns_across): Don't pick a cc0 setter
as the last insn of the sequence to be moved.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173393 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/df-problems.c | 11 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 00d84974ca3..4ff3175c079 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-04 Bernd Schmidt <bernds@codesourcery.com> + + PR rtl-optimization/47612 + * df-problems.c (can_move_insns_across): Don't pick a cc0 setter + as the last insn of the sequence to be moved. + 2011-05-04 Tobias Burnus <burnus@net-b.de> PR fortran/48864 diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 0f398ba3aa4..e5b88e3d2dc 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -4001,7 +4001,10 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to, if (bitmap_intersect_p (merge_set, test_use) || bitmap_intersect_p (merge_use, test_set)) break; - max_to = insn; +#ifdef HAVE_cc0 + if (!sets_cc0_p (insn)) +#endif + max_to = insn; } next = NEXT_INSN (insn); if (insn == to) @@ -4038,7 +4041,11 @@ can_move_insns_across (rtx from, rtx to, rtx across_from, rtx across_to, { if (NONDEBUG_INSN_P (insn)) { - if (!bitmap_intersect_p (test_set, local_merge_live)) + if (!bitmap_intersect_p (test_set, local_merge_live) +#ifdef HAVE_cc0 + && !sets_cc0_p (insn) +#endif + ) { max_to = insn; break; |