Looking at the regor.c code I came across the function try_merge_delay_insns().
There around the line 1488 we will find the following code:

                merged_insns = gen_rtx_INSN_LIST (SImode, dtrial,
                                                  merged_insns);

Please note that in literally *all* other cases the gen_rtx_INSN_LIST
function is supposed to take an enum reg_note as first argument and
not the somehow arbitrary value SImode. All subsequent rtx tree processing is assuming that in case of instruction lists we have a reg_note present in
this field.

I assume therefore that the value REG_DEP_TRUE should be assed as first argument to gen_rtx_INSN_LIST there. I think only the fact that the code in question
isn't likely to trigger didn't make this occur immediately as a bug.

Is this analysis correct?

Marcin Dalecki


Reply via email to