[LLVMdev] Any extend
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
>> 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).
More information about the llvm-dev