A question about UNSPEC expression and register allocation

Paul Brook paul@codesourcery.com
Sun May 18 00:31:00 GMT 2008


On Saturday 17 May 2008, Mohamed Shafi wrote:
> Hello all,
>
> Recently i noticed that register allocation for the operands in a
> unspec pattern was going wrong.
> This was because there was no conflict between the registers used in
> the unspec pattern and the other registers which should have been
> there.
> During debugging i found out that the code is written in such a way
> that it doesn't consider registers used inside an unspec expression.
> So i rewrote the patten so that the unspec is in the source rather
> than in the destination of the pattern. That solved the issue. But is
> this expected?
> Will the allocation also go wrong for the source operands if they
> contain registers inside an unpsec expression? I still haven't
> encountered this.

Registers in an unspec are no different to registers used anywhere else.
All the normal rues about overallping operands, early clobbers, etc. apply.

Paul



More information about the Gcc mailing list