From: Geoffrey Keating Date: Mon, 13 Aug 2001 21:42:10 +0000 (+0000) Subject: gcse.c (hash_scan_set): Expressions that are set as part of jump instructions are... X-Git-Tag: prereleases/libstdc++-3.0.95~2668 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb296bd9be728bfa4e4d6ce9ac155311b44c390e;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 20017ca5510c..80ab091ed0a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-08-13 Geoffrey Keating + + * gcse.c (hash_scan_set): Expressions that are set as part of + jump instructions are not available. + 2001-08-13 Ulrich Weigand * config/s390/s390.c (print_operand, s390_function_prologue, diff --git a/gcc/gcse.c b/gcc/gcse.c index 0c1bc3c835a7..8164ee3e2c12 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); }