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

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 18 10:50:52 PST 2016


On 2/18/2016 12:43 PM, Rail Shafigulin via llvm-dev wrote:
>
> LLVM ERROR: Cannot select: 0x3284268: glue = EsenciaISD::SET_FLAG
> 0x3283608, 0x3283710, 0x3283e48 [ORD=3] [ID=11]
>    0x3283608: i32,ch = CopyFromReg 0x3257980, 0x3283500 [ORD=1] [ID=9]
>      0x3283500: i32 = Register %vreg5 [ID=1]
>    0x3283710: i32 = Constant<3> [ID=2]
>    0x3283e48: i32 = Constant<20> [ID=8]
> In function: fib
>
> As far as I can understand LLVM cannot select it because the pattern is
> not specified. Unfortunately for me, I can't understand how to interpret
> this output. Would anybody be able to help me out?


The DAG node that has failed selection is "SET_FLAG %vreg5, 3, 20", the 
type of the node is "glue" and all 3 arguments are i32.

The top line shows the node that caused the failure.  The hex numbers on 
that line are the addresses of the arguments.  These arguments are then 
listed below.

Newer versions of LLVM show node ids instead of addresses, but AFAIK it 
was dependent on some configuration option.

-Krzysztof


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


More information about the llvm-dev mailing list