[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