aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>2000-09-01 22:22:54 +0000
committerJim Wilson <wilson@gcc.gnu.org>2000-09-01 15:22:54 -0700
commitca3920adb2a8121fbb38100ebb8fde88015a49ba (patch)
tree5d9506403a0ae211f76c9d2f6407a593c0046979 /gcc/combine.c
parent3c786c6945296d79a0d5f1799994aeb728aef083 (diff)
downloadgcc-ca3920adb2a8121fbb38100ebb8fde88015a49ba.zip
gcc-ca3920adb2a8121fbb38100ebb8fde88015a49ba.tar.gz
gcc-ca3920adb2a8121fbb38100ebb8fde88015a49ba.tar.bz2
Eliminate false DV warnings for predicated calls to noreturn functions.
* calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN. * combine.c (distribute_notes): Handle REG_NORETURN. * rtl.c (reg_note_name): Add REG_NORETURN. * rtl.h (enum reg_note): Likewise. * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from ia64_file_start. * config/ia64/ia64.c (emit_safe_across_calls): Likewise. (rtx_needs_barrier): Handle unspec_volatile 8 and 9. (emit_predicate_relation_info): Handle conditional calls with REG_NORETURN. * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls instead of ia64_file_start. * config/ia64/sysv4.h (ASM_FILE_START): Likewise. * config/ia64/ia64.md (safe_across_calls_all, save_across_calls_normal): New patterns. From-SVN: r36107
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 881c653..df5314b 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -12036,6 +12036,7 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
case REG_EH_REGION:
case REG_EH_RETHROW:
+ case REG_NORETURN:
/* These notes must remain with the call. It should not be
possible for both I2 and I3 to be a call. */
if (GET_CODE (i3) == CALL_INSN)