[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