aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authoredlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-23 12:44:07 +0000
committeredlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-23 12:44:07 +0000
commit7f5df6a79db3adac74b7cc11a7ecba1bfca0ec05 (patch)
tree892f77d0c25f7c9466a953d82453e67a199eb7b2 /gcc/ira.c
parent4e551c7de5072438e7a06a99a0ee432420dc6dd5 (diff)
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249588 138bc75d-0d04-0410-961f-82ee72b054a4
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 36a779bd37f..08a1cc550b2 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);