PR17326, PATCH

Stepan Dyatkovskiy stpworld at narod.ru
Fri Nov 22 21:26:37 PST 2013


ping.
Could somebody review that?
-Stepan
Peter Zotov wrote:
> Stepan Dyatkovskiy писал 19.11.2013 18:33:
>> Hello,
>>
>> Please consider two possible fixes.
>>
>> 1. pr17326-forbid-aggregates.patch. If we meet functions with
>> aggregates as i-th parameter, treat them as equal only in case when it
>> is exactly the same aggregate: LeftParamType == RightParamType.
>>
>> 2. pr17326-tricky-bitcast.patch. Hackish. If we meet functions with
>> aggregates as i-th parameter, and we 100500% sure aggregates are
>> identical, use kind of memcpy in thunk wrapper:
>>   store %AggrTyLeft %ThatAggregateParameter, %AggrTyLeft* %2
>>   %3 = bitcast %AggrTyLeft* %2 to %AggrTyRight*
>>   %4 = load %AggrTyRight* %3
>>   tail call void @f0(%AggrTyRight %4)
>>
>> IMHO, it is a seldom case. And its better to forbid it to merging.
>
> Personally, I'm in favor of tricky-bitcast (perhaps done more cleanly).
> This was my intended use case for mergefunc in the first place.
>




More information about the llvm-commits mailing list