aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2011-03-26 13:03:46 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-03-26 13:03:46 +0000
commitba5e9aca8690bcb5ff4e353dc2738050ab3d9fd0 (patch)
treed62fdb4e2bf55596cf3feea95658385026ca7c2f /gcc/reg-stack.c
parent5d369d583699112c7339f1f5555bd592f6fed70c (diff)
downloadgcc-ba5e9aca8690bcb5ff4e353dc2738050ab3d9fd0.zip
gcc-ba5e9aca8690bcb5ff4e353dc2738050ab3d9fd0.tar.gz
gcc-ba5e9aca8690bcb5ff4e353dc2738050ab3d9fd0.tar.bz2
basic-block.h (fixup_abnormal_edges): Adjust prototype.
* basic-block.h (fixup_abnormal_edges): Adjust prototype. * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover basic blocks and call commit_edge_insertions directly. (fixup_abnormal_edges): Move from here to... * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions on the edges and return whether some have actually been inserted. * reg-stack.c (convert_regs): Fix up abnormal edges before inserting compensation code. From-SVN: r171556
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 62a82fc..60835c7 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -3150,11 +3150,14 @@ convert_regs (void)
cfg_altered |= convert_regs_2 (b);
}
+ /* We must fix up abnormal edges before inserting compensation code
+ because both mechanisms insert insns on edges. */
+ inserted |= fixup_abnormal_edges ();
+
inserted |= compensate_edges ();
clear_aux_for_blocks ();
- fixup_abnormal_edges ();
if (inserted)
commit_edge_insertions ();