diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2012-11-09 12:28:21 +0000 |
---|---|---|
committer | Andrey Belevantsev <abel@ispras.ru> | 2012-11-09 12:28:21 +0000 |
commit | 443500dbf9c3093fbca6d8fb635955cb6831f801 (patch) | |
tree | ad89d2d191dbe38d1655bcc74af37b05a1d19c16 /gcc/sel-sched-ir.c | |
parent | 56c8dd276a3c4bdb0825d5a2d20694aec4c2efa1 (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.c | 6 |
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 |