[llvm-dev] How to interpret Selection DAG error output
Rail Shafigulin via llvm-dev
llvm-dev at lists.llvm.org
Thu Feb 18 11:32:09 PST 2016
On Thu, Feb 18, 2016 at 11:22 AM, Jonathan Roelofs <
jonathan at codesourcery.com> wrote:
>
>
> On 2/18/16 12:19 PM, Rail Shafigulin via llvm-dev wrote:
>
>>
>>
>> On Thu, Feb 18, 2016 at 10:50 AM, Krzysztof Parzyszek via llvm-dev
>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>> 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.
>>
>> I understand where SET_FLAG, 3 and 20 come from, but how did you arrive
>> the conclusion that %vreg5 should be part of the pattern?
>>
>
> The hex numbers are pointers. You can see the Use of 0x3283500 in the
> CopyFromReg inst, and the def is here:
>
> 0x3283500: i32 = Register %vreg5 [ID=1]
>
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?
> It's /just/ a dag.
>
>
> Jon
>
>
>>
>> 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
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>>
>>
>> --
>> Rail Shafigulin
>> Software Engineer
>> Esencia Technologies
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
> --
> Jon Roelofs
> jonathan at codesourcery.com
> CodeSourcery / Mentor Embedded
>
--
Rail Shafigulin
Software Engineer
Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160218/c11416a1/attachment.html>
More information about the llvm-dev
mailing list