forked from OSchip/llvm-project
910dc8de3f
Summary: Under option -mergefunc-preserve-debug-info we: - Do not create a new function for a thunk. - Retain the debug info for a thunk's parameters (and associated instructions for the debug info) from the entry block. Note: -debug will display the algorithm at work. - Create debug-info for the call (to the shared implementation) made by a thunk and its return value. - Erase the rest of the function, retaining the (minimally sized) entry block to create a thunk. - Preserve a thunk's call site to point to the thunk even when both occur within the same translation unit, to aid debugability. Note that this behaviour differs from the underlying -mergefunc implementation which modifies the thunk's call site to point to the shared implementation when both occur within the same translation unit. Reviewers: echristo, eeckstein, dblaikie, aprantl, friss Reviewed By: aprantl Subscribers: davide, fhahn, jfb, mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D28075 llvm-svn: 292702 |
||
---|---|---|
.. | ||
2011-02-08-RemoveEqual.ll | ||
2013-01-10-MergeFuncAssert.ll | ||
address-spaces.ll | ||
alloca.ll | ||
apply_function_attributes.ll | ||
call-and-invoke-with-ranges.ll | ||
constant-entire-value.ll | ||
crash.ll | ||
crash2.ll | ||
fold-weak.ll | ||
functions.ll | ||
gep-base-type.ll | ||
inttoptr-address-space.ll | ||
inttoptr.ll | ||
linkonce_odr.ll | ||
merge-block-address-other-function.ll | ||
merge-block-address.ll | ||
merge-const-ptr-and-int.ll | ||
merge-different-vector-types.ll | ||
merge-ptr-and-int.ll | ||
merge-weak-crash.ll | ||
mergefunc-preserve-debug-info.ll | ||
mergefunc-struct-return.ll | ||
no-merge-block-address-different-labels.ll | ||
no-merge-block-address-other-function.ll | ||
no-merge-ptr-different-sizes.ll | ||
no-merge-ptr-int-different-values.ll | ||
phi-check-blocks.ll | ||
phi-speculation1.ll | ||
phi-speculation2.ll | ||
ptr-int-transitivity-1.ll | ||
ptr-int-transitivity-2.ll | ||
ptr-int-transitivity-3.ll | ||
ranges-multiple.ll | ||
ranges.ll | ||
self-referential-global.ll | ||
too-small.ll | ||
undef-different-types.ll | ||
vector-GEP-crash.ll | ||
vector.ll | ||
vectors-and-arrays.ll |