[PATCH] [ARM] [RFC] Fix longstanding push_minipool_fix ICE (PR49423, lp1296601)

Charles Baylis charles.baylis@linaro.org
Mon Jun 30 12:53:00 GMT 2014


On 18 June 2014 00:02, Ramana Radhakrishnan <ramana.gcc@googlemail.com> wrote:
>
> Interesting workaround but can we investigate further how to fix this
> at the source rather than working around in the backend in this form.
> It's still a kludge that we carry in the backend rather than fix the
> problem at it's source. I'd rather try to fix the problem at the
> source rather than working around this in the backend.

I still think this is a back-end bug. Unless I've missed something, it
looks like the compiler has generated an insn which meets its
constraints (we'd see an "insn does not satisfy its constraints" ICE
if not) but the back-end generates an ICE much later, when trying to
emit code for it. The problem with trying to fix the bug "at source"
in reload is that this inconsistency will remain as a potential latent
bug.

I see two options to fix it - one is to teach the back-end to
successfully generate code for this insn, and the other is to teach
the back-end that such an insn is not valid. My proposed patch does
the former. The latter can presumably be achieved by providing a
different kind of memory constraint which disallows constant pool
references for these insns although I haven't tried this yet.

Charles



More information about the Gcc-patches mailing list