PR17326, PATCH

Stepan Dyatkovskiy stpworld at narod.ru
Tue Nov 26 22:49:48 PST 2013


Updated patches.

Stepan Dyatkovskiy wrote:
> 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.
>>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr17326-tricky-bitcast-2013-11-27.patch
Type: text/x-diff
Size: 2957 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131127/11ac07df/attachment.patch>


More information about the llvm-commits mailing list