aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2002-03-06 23:07:08 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2002-03-06 23:07:08 +0000
commite16e32914a3fc97be5b420a92281207d37c3d22a (patch)
tree2cde44acc5fa8132dc2f6b4d74e224267af6c0f6 /gcc/reload1.c
parent348c9efcd3341f49e593a51983a594a7fb764386 (diff)
downloadgcc-e16e32914a3fc97be5b420a92281207d37c3d22a.zip
gcc-e16e32914a3fc97be5b420a92281207d37c3d22a.tar.gz
gcc-e16e32914a3fc97be5b420a92281207d37c3d22a.tar.bz2
reload1.c (reload): Unshare all rtl after reload is done.
* reload1.c (reload): Unshare all rtl after reload is done. * simplify-rtx.c (simplify_plus_minus): Do not abort, but simply fail if the expression is too complex to simplify. (simplify_gen_binary): Handle simplify_plus_minus failures. From-SVN: r50380
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 7b420a1..a4a9c0c 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1278,6 +1278,11 @@ reload (first, global)
unused_insn_chains = 0;
fixup_abnormal_edges ();
+ /* Replacing pseudos with their memory equivalents might have
+ created shared rtx. Subsequent passes would get confused
+ by this, so unshare everything here. */
+ unshare_all_rtl_again (first);
+
return failure;
}