[LLVMdev] [NVPTX] Backend failure in LegalizeDAG due to unimplemented expand in target lowering

Dmitry N. Mikushin maemarcus at gmail.com
Fri Jun 29 17:03:19 PDT 2012


Thanks, for insight, Eli,

So instead of setOperationAction(ISD::STORE, MVT::i1, Expand); one
should probably do setOperationAction(ISD::STORE, MVT::i1, Custom);
and implement it in NVPTXTargetLowering::LowerOperation.

But this issue makes a good point about the code efficiency: I suspect
such expansion will be very ugly in terms of performance. Probably we
can do much better if bool would use i32 instead of i1. I don't know
how to do that, though. Is it possible?

Anyway, if this is a defect, then it's a blocker for us, and we'd much
appreciate a fix.

- D.

2012/6/29 Eli Friedman <eli.friedman at gmail.com>:
> On Fri, Jun 29, 2012 at 2:11 PM, Dmitry N. Mikushin <maemarcus at gmail.com> wrote:
>> Hi again,
>>
>> Kind people on #llvm helped me to utilize bugpoint to reduce the
>> previously submitted test case. For record, it code be done with the
>> following command:
>>
>> $ bugpoint -llc-safe test.ll
>>
>> The resulting IR is attached, and it is crashing in the same way. Is
>> it a valid code?
>
> Looks like a bug in the NVPTXISelLowering.cpp: it has
> "setOperationAction(ISD::STORE, MVT::i1, Expand);", but the legalizer
> doesn't know how to handle that.
>
> -Eli



More information about the llvm-dev mailing list