diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-03-22 00:21:16 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-03-21 19:21:16 -0500 |
commit | 52d76e11287d0e4c7d9464cc4a5d4462da1425d2 (patch) | |
tree | 2c8de38ef1f3ec85d70197aaf4baca42e8d7512f /gcc | |
parent | 64ec27c320c1971437ac292d108f62e42f4efec7 (diff) | |
download | gcc-52d76e11287d0e4c7d9464cc4a5d4462da1425d2.zip gcc-52d76e11287d0e4c7d9464cc4a5d4462da1425d2.tar.gz gcc-52d76e11287d0e4c7d9464cc4a5d4462da1425d2.tar.bz2 |
gcse.c (hash_scan_set): An expression is not anticipatible if it is part of a multi-SET insn.
* gcse.c (hash_scan_set): An expression is not anticipatible if it
is part of a multi-SET insn.
From-SVN: r40722
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/gcse.c | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 15a3dc9..64cdf7b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Wed Mar 21 14:27:11 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * gcse.c (hash_scan_set): An expression is not anticipatible if it + is part of a multi-SET insn. + * cse.c (find_comparison_args): Remove previous change. * ifcvt.c (noce_process_if_block): When moving an insn, remove any REG_EQUAL notes. @@ -1967,8 +1967,9 @@ hash_scan_set (pat, insn, set_p) && src != dest) { /* An expression is not anticipatable if its operands are - modified before this insn. */ - int antic_p = oprs_anticipatable_p (src, insn); + modified before this insn or if this is not the only SET in + this insn. */ + int antic_p = oprs_anticipatable_p (src, insn) && single_set (insn); /* An expression is not available if its operands are subsequently modified, including this insn. */ int avail_p = oprs_available_p (src, insn); |