[LLVMdev] tail call

Reed Kotler rkotler at mips.com
Tue Dec 17 21:14:45 PST 2013


On 12/17/2013 12:32 PM, Reed Kotler wrote:
> On 12/17/2013 11:29 AM, reed kotler wrote:
>> I have a pass which operates on IR for mips16 so that I can build stubs
>> and such for floating point.
>>
>> I usually get this attribute of the call instruction getCalledFunction.
>>
>> This is turning out to be null when there is a tail call. (I think this
>> may be something new but maybe was there already).
>>
>> So then what is the right way to find the function prototype for the
>> call?
>>
>> TIA.
>>
>> Reed
> I'm guessing that maybe I should be using
> CI->getCalledValue().VTy
>
> Where CI is the call instruction.
>
> ???

Turned out that the problem is that before my IR phase ran, that some 
tail call optimization IR phase had run and changed the call instruction 
into an indirect call.

This caused me to not see it as something needing attention for mips16 
floating point help and thus I did not need to save S2 in this situation
when in fact I did.

Patch is forthcoming.

This was a regression from the prolog/epilog optimization.




More information about the llvm-dev mailing list