[LLVMdev] The type or size of virtual registers

Qingan Li ww345ww at gmail.com
Fri Jan 28 06:14:23 PST 2011


Thanks for your help with me about the way to access type and size of Value.
But, I want also know the interface for me to access  the type or size of
virtual registers in the SSA form.
1. I find no way to associate the virtual registers with the Value class.
2. I also tried to get the size of register nReg by:
  TargetRegisterClass::getSize(), where the TargetRegisterClass object is
obtained by  MachineRegisterInfo::getRegClass( nReg ).
 But, I found it always returned with the value 4 bytes, say, GR32 (My
target is the x86-32 bits). If all virtual registers were size of 32 bits,
how could we consider the alias register file during register allocation?
Namely, if a temporary value could be stored in 8 bits, why do we give it 32
bits? So, I doubt my second way to get the size of virtual register was
wrong. Need your further help.

2011/1/28 John Criswell <criswell at illinois.edu>

> On 1/27/11 3:23 AM, Qingan Li wrote:
>
>> Hi,
>>
>> I wonder if there is an interface for me to access the type or size of
>> virtual registers in the SSA form?
>> I have scanned the MachineOperand in CodeGen part, and failed to find this
>> kind of info for virtual registers.
>>
>
> The getType() method of Value * will return the LLVM type.  The TargetData
> class will provide information on size for a type on a particular hardware
> platform.
>
> -- John T.
>
>
>> --
>> Best regards,
>>
>> Li Qingan
>>
>>
>


-- 
Best regards,

Li Qingan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110128/3634ce43/attachment.html>


More information about the llvm-dev mailing list