stpworld at narod.ru
Tue Nov 26 22:49:48 PST 2013
Stepan Dyatkovskiy wrote:
> Could somebody review that?
> Peter Zotov wrote:
>> Stepan Dyatkovskiy писал 19.11.2013 18:33:
>>> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2957 bytes
Desc: not available
More information about the llvm-commits