aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched-ir.c
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2012-11-09 12:28:21 +0000
committerAndrey Belevantsev <abel@ispras.ru>2012-11-09 12:28:21 +0000
commit443500dbf9c3093fbca6d8fb635955cb6831f801 (patch)
treead89d2d191dbe38d1655bcc74af37b05a1d19c16 /gcc/sel-sched-ir.c
parent56c8dd276a3c4bdb0825d5a2d20694aec4c2efa1 (diff)
PR rtl-optimization/54472
* sel-sched-ir.c (has_dependence_note_reg_set): Handle implicit sets. (has_dependence_note_reg_clobber, has_dependence_note_reg_use): Likewise. * gcc.dg/pr54472.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@193358 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sel-sched-ir.c')
-rw-r--r--gcc/sel-sched-ir.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index 7b0f51242cf..e0239dc3637 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -3185,7 +3185,7 @@ has_dependence_note_reg_set (int regno)
|| reg_last->clobbers != NULL)
*dsp = (*dsp & ~SPECULATIVE) | DEP_OUTPUT;
- if (reg_last->uses)
+ if (reg_last->uses || reg_last->implicit_sets)
*dsp = (*dsp & ~SPECULATIVE) | DEP_ANTI;
}
}
@@ -3205,7 +3205,7 @@ has_dependence_note_reg_clobber (int regno)
if (reg_last->sets)
*dsp = (*dsp & ~SPECULATIVE) | DEP_OUTPUT;
- if (reg_last->uses)
+ if (reg_last->uses || reg_last->implicit_sets)
*dsp = (*dsp & ~SPECULATIVE) | DEP_ANTI;
}
}
@@ -3225,7 +3225,7 @@ has_dependence_note_reg_use (int regno)
if (reg_last->sets)
*dsp = (*dsp & ~SPECULATIVE) | DEP_TRUE;
- if (reg_last->clobbers)
+ if (reg_last->clobbers || reg_last->implicit_sets)
*dsp = (*dsp & ~SPECULATIVE) | DEP_ANTI;
/* Merge BE_IN_SPEC bits into *DSP when the dependency producer