diff options
author | abel <abel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-09 12:28:21 +0000 |
---|---|---|
committer | abel <abel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-09 12:28:21 +0000 |
commit | a9bfd37379af215d9ef3976b0ec25e4132ee7f0c (patch) | |
tree | ad89d2d191dbe38d1655bcc74af37b05a1d19c16 /gcc/sel-sched-ir.c | |
parent | 62bd987f583b0d07d67cf09802b2df93aa62abdb (diff) | |
download | gcc-a9bfd37379af215d9ef3976b0ec25e4132ee7f0c.tar.gz |
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: svn+ssh://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 |