aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-06 23:07:08 +0000
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-06 23:07:08 +0000
commit907bb1cf7398f0ac14f834f9d783386046857fdb (patch)
tree2cde44acc5fa8132dc2f6b4d74e224267af6c0f6 /gcc/reload1.c
parent72a7a1414b3a1f0e122107ef59a4692f9dfdf67a (diff)
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50380 138bc75d-0d04-0410-961f-82ee72b054a4
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 7b420a1ea3d..a4a9c0cfa91 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;
}