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

Rail Shafigulin via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 18 11:40:08 PST 2016

On Thu, Feb 18, 2016 at 11:34 AM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:

> On 2/18/2016 1:32 PM, Rail Shafigulin wrote:
>> I think this is where I'm loosing the "thread". Based on what I'm seeing
>> SET_FLAG has three operands, the first of which is a CopyFromReg. So how
>> come the pattern is SET_FLAG %vreg5, 3, 20 and not SET_FLAG CopyFromReg,
>> 3, 20? In other words how do we go from CopyFromReg to %vreg5?
> CopyFromReg is a "helper" instruction meaning "use the value from this
> vreg".  Values that are live across basic blocks are remembered in vregs,
> and CopyToReg and CopyFromReg are opcodes used to express it.

I see. Thanks.

          0x3283608: i32,ch = CopyFromReg 0x3257980, 0x3283500 [ORD=1]
              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?

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

Rail Shafigulin
Software Engineer
Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160218/e4059528/attachment.html>

More information about the llvm-dev mailing list