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