diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2002-03-06 23:07:08 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2002-03-06 23:07:08 +0000 |
commit | e16e32914a3fc97be5b420a92281207d37c3d22a (patch) | |
tree | 2cde44acc5fa8132dc2f6b4d74e224267af6c0f6 /gcc/reload1.c | |
parent | 348c9efcd3341f49e593a51983a594a7fb764386 (diff) | |
download | gcc-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.c | 5 |
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; } |