Hello,
> Yes, thanks for catching this. Shouldn't we prevent creating such
> regmoves for (the other case of) intra-loop anti-deps as well?
Right! sorry for missing that. I added an additional check in
create_ddg_dep_from_intra_loop_link.
Also, thanks to Bernhard Rosenkraenzer for opening PR 879
>The attached patch prevents the creation of reg-moves for definitions
>with MODE_CC and thus solves this ICE.
>
>Currently testing and bootstrap on ppc64-redhat-linux, enabling SMS on
>loops with SC 1.
>
>OK for 4.7 once testing completes?
Yes, thanks for catching this. Shouldn't we prevent creat
Richard Henderson writes:
> On 12/20/2011 09:47 AM, Richard Sandiford wrote:
>> Revital Eres writes:
>>> +/* Return true if one of the definitions in INSN has MODE_CC. Otherwise
>>> + return false. */
>>> +static bool
>>> +def_has_ccmode_p (rtx insn)
>>> +{
>>> + df_ref *def;
>>> +
>>> + fo
On 12/20/2011 09:47 AM, Richard Sandiford wrote:
> Revital Eres writes:
>> +/* Return true if one of the definitions in INSN has MODE_CC. Otherwise
>> + return false. */
>> +static bool
>> +def_has_ccmode_p (rtx insn)
>> +{
>> + df_ref *def;
>> +
>> + for (def = DF_INSN_DEFS (insn); *def; de
Hello,
> FWIW, an alternative might be to test have_regs_of_mode[(int) mode].
> That says whether there are any allocatable (non-fixed) registers
> of the given mode.
Thanks, I'll prepare a new version of the patch using have_regs_of_mode.
Revital
>
> Richard
Revital Eres writes:
> +/* Return true if one of the definitions in INSN has MODE_CC. Otherwise
> + return false. */
> +static bool
> +def_has_ccmode_p (rtx insn)
> +{
> + df_ref *def;
> +
> + for (def = DF_INSN_DEFS (insn); *def; def++)
> +{
> + enum machine_mode mode = GET_MODE (D
Hello,
The testcase attached causes ICE when compiling with
-fmodulo-sched-allow-regmoves on ARM due to reg-moves created for the
definition of mode MODE_CC.
The following is a snippet from the ddg of the definition and use of vfpcc
which triggers the creation of the reg-move:
Node num: 1
(insn