diff options
author | Geoffrey Keating <geoffk@redhat.com> | 2001-08-13 21:42:10 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2001-08-13 21:42:10 +0000 |
commit | eb296bd9be728bfa4e4d6ce9ac155311b44c390e (patch) | |
tree | 67db55b577664933343452abfc88f580be673b9e | |
parent | 586b870d4f0b3693628e22c2aaeeb26dc29b5342 (diff) | |
download | gcc-eb296bd9be728bfa4e4d6ce9ac155311b44c390e.zip gcc-eb296bd9be728bfa4e4d6ce9ac155311b44c390e.tar.gz gcc-eb296bd9be728bfa4e4d6ce9ac155311b44c390e.tar.bz2 |
gcse.c (hash_scan_set): Expressions that are set as part of jump instructions are not available.
* gcse.c (hash_scan_set): Expressions that are set as part of
jump instructions are not available.
From-SVN: r44872
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/gcse.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 20017ca..80ab091 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-08-13 Geoffrey Keating <geoffk@redhat.com> + + * gcse.c (hash_scan_set): Expressions that are set as part of + jump instructions are not available. + 2001-08-13 Ulrich Weigand <uweigand@de.ibm.com> * config/s390/s390.c (print_operand, s390_function_prologue, @@ -2191,8 +2191,11 @@ hash_scan_set (pat, insn, set_p) 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); + subsequently modified, including this insn. It's also not + available if this is a branch, because we can't insert + a set after the branch. */ + int avail_p = (oprs_available_p (src, insn) + && ! JUMP_P (insn)); insert_expr_in_table (src, GET_MODE (dest), insn, antic_p, avail_p); } |