aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2017-06-23 12:44:07 +0000
committerBernd Edlinger <edlinger@gcc.gnu.org>2017-06-23 12:44:07 +0000
commit08f424143c105ec8e610e01a4ee09d96d1eaa823 (patch)
tree892f77d0c25f7c9466a953d82453e67a199eb7b2 /gcc/ira.c
parent2db9b7cd422b63fe0a87218128cc0939b439859e (diff)
downloadgcc-08f424143c105ec8e610e01a4ee09d96d1eaa823.zip
gcc-08f424143c105ec8e610e01a4ee09d96d1eaa823.tar.gz
gcc-08f424143c105ec8e610e01a4ee09d96d1eaa823.tar.bz2
ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de> rtl-optimizatoin/79286 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again. * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never trap. PIC register plus a const unspec without offset can never trap. From-SVN: r249588
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index 36a779b..08a1cc5 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -3551,7 +3551,8 @@ update_equiv_regs (void)
if (DF_REG_DEF_COUNT (regno) == 1
&& note
&& !rtx_varies_p (XEXP (note, 0), 0)
- && def_dominates_uses (regno))
+ && (!may_trap_or_fault_p (XEXP (note, 0))
+ || def_dominates_uses (regno)))
{
rtx note_value = XEXP (note, 0);
remove_note (insn, note);