diff options
author | geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-13 21:42:10 +0000 |
---|---|---|
committer | geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-13 21:42:10 +0000 |
commit | f441a382c0850fad2aa7162af4ce31cd10b77487 (patch) | |
tree | 67db55b577664933343452abfc88f580be673b9e /gcc | |
parent | 65d9cb02b5883451d236b2e5c5ab33090bb06d6b (diff) | |
download | gcc-f441a382c0850fad2aa7162af4ce31cd10b77487.tar.gz |
* gcse.c (hash_scan_set): Expressions that are set as part of
jump instructions are not available.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44872 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 20017ca5510..80ab091ed0a 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, diff --git a/gcc/gcse.c b/gcc/gcse.c index 0c1bc3c835a..8164ee3e2c1 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -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); } |