PR17326, PATCH

Stepan Dyatkovskiy stpworld at narod.ru
Tue Nov 19 06:33:34 PST 2013


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.

-Stepan.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr17326-forbid-aggregates.patch
Type: text/x-diff
Size: 1819 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131119/966fc114/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr17326-tricky-bitcast.patch
Type: text/x-diff
Size: 2957 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131119/966fc114/attachment-0001.patch>


More information about the llvm-commits mailing list