[LLVMdev] Any extend
Greg Chadwick
gac43 at cam.ac.uk
Tue Jan 26 06:22:29 PST 2010
Duncan Sands wrote:
> Hi Greg,
>
>> 1) What causes the Initial selection DAG code to choose an any_extend
>> over a sign_extend (or zero_extend)?
>
> because it is more efficient: the backend gets more choice in how to do
> it, and at the same time it tells the optimizers that the extra bits
> contain rubbish, which gives them more freedom to reason.
Makes sense, though I was wondering why it would choose to sign_extend
an 8-bit or 16-bit value, but any_extend a 32-bit value (These are all
signed values).
>
>> 2) What does any_extend actually signify? Presumably this indicates
>> that either a sign extend or zero extend will suffice.
>
> Yes, or anything else.
>
Anyway thanks for the info, I'll just implement an any_extend load (The
original MIPS backend doesn't seem to have any, which is why I was wary
of doing it in the first place).
Cheers,
Greg
More information about the llvm-dev
mailing list