diff options
author | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-06 23:07:08 +0000 |
---|---|---|
committer | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-06 23:07:08 +0000 |
commit | 907bb1cf7398f0ac14f834f9d783386046857fdb (patch) | |
tree | 2cde44acc5fa8132dc2f6b4d74e224267af6c0f6 /gcc/reload1.c | |
parent | 72a7a1414b3a1f0e122107ef59a4692f9dfdf67a (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.c | 5 |
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; } |