mirror of git://gcc.gnu.org/git/gcc.git
re PR target/53975 ([ia64] Target register of a speculative load moved to a branch register prior to the chk.s instruction)
PR target/53975
* sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
Revert
2011-08-04 Sergey Grechanik <mouseentity@ispras.ru>
* sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
only if producer writes to the register given by regno.
From-SVN: r190005
This commit is contained in:
parent
7027164c96
commit
0d4acd9048
|
|
@ -1,3 +1,15 @@
|
||||||
|
2012-07-31 Andrey Belevantsev <abel@ispras.ru>
|
||||||
|
|
||||||
|
PR target/53975
|
||||||
|
|
||||||
|
* sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
|
||||||
|
|
||||||
|
Revert
|
||||||
|
2011-08-04 Sergey Grechanik <mouseentity@ispras.ru>
|
||||||
|
|
||||||
|
* sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
|
||||||
|
only if producer writes to the register given by regno.
|
||||||
|
|
||||||
2012-07-31 Nick Clifton <nickc@redhat.com>
|
2012-07-31 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* config/frv/frv.c (QUAD): Fix typo.
|
* config/frv/frv.c (QUAD): Fix typo.
|
||||||
|
|
|
||||||
|
|
@ -3228,7 +3228,11 @@ has_dependence_note_reg_use (int regno)
|
||||||
if (reg_last->clobbers)
|
if (reg_last->clobbers)
|
||||||
*dsp = (*dsp & ~SPECULATIVE) | DEP_ANTI;
|
*dsp = (*dsp & ~SPECULATIVE) | DEP_ANTI;
|
||||||
|
|
||||||
/* Handle BE_IN_SPEC. */
|
/* Merge BE_IN_SPEC bits into *DSP when the dependency producer
|
||||||
|
is actually a check insn. We need to do this for any register
|
||||||
|
read-read dependency with the check unless we track properly
|
||||||
|
all registers written by BE_IN_SPEC-speculated insns, as
|
||||||
|
we don't have explicit dependence lists. See PR 53975. */
|
||||||
if (reg_last->uses)
|
if (reg_last->uses)
|
||||||
{
|
{
|
||||||
ds_t pro_spec_checked_ds;
|
ds_t pro_spec_checked_ds;
|
||||||
|
|
@ -3236,9 +3240,7 @@ has_dependence_note_reg_use (int regno)
|
||||||
pro_spec_checked_ds = INSN_SPEC_CHECKED_DS (has_dependence_data.pro);
|
pro_spec_checked_ds = INSN_SPEC_CHECKED_DS (has_dependence_data.pro);
|
||||||
pro_spec_checked_ds = ds_get_max_dep_weak (pro_spec_checked_ds);
|
pro_spec_checked_ds = ds_get_max_dep_weak (pro_spec_checked_ds);
|
||||||
|
|
||||||
if (pro_spec_checked_ds != 0
|
if (pro_spec_checked_ds != 0)
|
||||||
&& bitmap_bit_p (INSN_REG_SETS (has_dependence_data.pro), regno))
|
|
||||||
/* Merge BE_IN_SPEC bits into *DSP. */
|
|
||||||
*dsp = ds_full_merge (*dsp, pro_spec_checked_ds,
|
*dsp = ds_full_merge (*dsp, pro_spec_checked_ds,
|
||||||
NULL_RTX, NULL_RTX);
|
NULL_RTX, NULL_RTX);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue