Jakub Jelinek <ja...@redhat.com> writes:
> The lower subreg pass apparently relies on recog_memoized being performed
> on all insns in the first pass (analysis), then it replaces some
> of the regs with concat and then again on each insn performs recog_memoized
> + extract_insn.  This works, because recog_memoized then does nothing, just
> returns the memoized number, and extract insn extracts the operands
> (which may be now CONCATNs) and then adjusts the insns.

Interesting.  For 4.8, it might be worth trying to remove the
calls to recog_memoized in the second pass -- or at least replace
them with an assert -- just to emphasise what the assumption is.
I'll probably never get round to it though.

> 2012-02-04  Jakub Jelinek  <ja...@redhat.com>
>
>       PR rtl-optimization/52113
>       * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
>       even for decomposable shift/zext insns.
>
>       * gcc.target/avr/pr52113.c: New test.

OK, thanks.

Richard

Reply via email to