diff options
author | J"orn Rennecke <joern.rennecke@arc.com> | 2009-07-06 13:28:22 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-07-06 13:28:22 +0000 |
commit | 83f63251d92b61d083e7801e762089b372cbcf8e (patch) | |
tree | 035a4c63678bcbdbee8bf0517b6aa1b9f6cc97a7 | |
parent | 172d54e01fa1a14b659988de3dc616e84d1a8fed (diff) | |
download | gcc-83f63251d92b61d083e7801e762089b372cbcf8e.zip gcc-83f63251d92b61d083e7801e762089b372cbcf8e.tar.gz gcc-83f63251d92b61d083e7801e762089b372cbcf8e.tar.bz2 |
re PR rtl-optimization/30807 (postreload bug (might be generic in trunk))
PR rtl-optimization/30807
* postreload.c (reload_combine): For every new use of REG_SUM,
record the use of BASE.
Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>
From-SVN: r149282
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/postreload.c | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ad61711..a490e33 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-07-06 J"orn Rennecke <joern.rennecke@arc.com> + Kaz Kojima <kkojima@gcc.gnu.org> + + PR rtl-optimization/30807 + * postreload.c (reload_combine): For every new use of REG_SUM, + record the use of BASE. + 2009-07-06 Jan Hubicka <jh@suse.cz> * params.def: Revert my accidental commit at 2009-06-30. diff --git a/gcc/postreload.c b/gcc/postreload.c index cf165ec..d23ae0b 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -886,6 +886,19 @@ reload_combine (void) if (apply_change_group ()) { + /* For every new use of REG_SUM, we have to record the use + of BASE therein, i.e. operand 1. */ + for (i = reg_state[regno].use_index; + i < RELOAD_COMBINE_MAX_USES; i++) + reload_combine_note_use + (&XEXP (*reg_state[regno].reg_use[i].usep, 1), + reg_state[regno].reg_use[i].insn); + + if (reg_state[REGNO (base)].use_ruid + > reg_state[regno].use_ruid) + reg_state[REGNO (base)].use_ruid + = reg_state[regno].use_ruid; + /* Delete the reg-reg addition. */ delete_insn (insn); |