[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
dalej at apple.com
Fri Aug 27 16:28:45 PDT 2010
I filed PR 8014 about this.
On Aug 27, 2010, at 4:16 PMPDT, Dale Johannesen wrote:
> On Aug 27, 2010, at 3:43 PMPDT, Yuri wrote:
>> On 08/27/2010 12:13, Dale Johannesen wrote:
>> Here's what happens:
>> The first instruction created is RET.
>> SelectBasicBlock is called.
>> TCRETURNri64 is created from within it.
>> HasTailCall is set to true as you mentioned.
>> Cycle in SelectionDAGISel::SelectBasicBlock skips the rest.
>> All like you described. But the RET instruction still stays in the
>> RET is skipped by visit but I guess stays in the list. Where should
>> it be destroyed?
> Ahh, this is a bug in FastISel, which I didn't have turned on,
> that's why I wasn't seeing this. Looks like the rewrite to go
> bottom-up, 108039, introduced this. The logic there doesn't work
> with tail calls. Dan, could you look?
More information about the llvm-dev