[llvm-dev] How to interpret Selection DAG error output

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 18 11:48:15 PST 2016

On 2/18/2016 1:40 PM, Rail Shafigulin wrote:
>            0x3283608: i32,ch = CopyFromReg 0x3257980, 0x3283500 [ORD=1]
>          [ID=9]
>                0x3283500: i32 = Register %vreg5 [ID=1]
> Based on the code above, CopyFromReg is a node at address 0x3283608,
> returns i32, is of type chain and takes two inputs, the second of which
> is a %vreg5. So what is the first parameter? In fact where can I find
> the definition of CopyFromReg method?

The first parameter is a chain.

Here are some comments from include/llvm/CodeGen/ISDOpcodes.h:

     /// CopyToReg - This node has three operands: a chain, a register 
number to
     /// set to this value, and a value.

     /// CopyFromReg - This node indicates that the input value is a 
virtual or
     /// physical register that is defined outside of the scope of this
     /// SelectionDAG.  The register is available from the 
RegisterSDNode object.

I usually grep the sources if I want to find out about something.  I'm 
not sure if there is a better documentation about ISD nodes.


Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation

More information about the llvm-dev mailing list