llvm/test/Transforms/MergeFunc
Anmol P. Paralkar 5f4797bc2e MergeFunctions: Preserve debug info in thunks, under option -mergefunc-preserve-debug-info
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292702 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-21 02:02:56 +00:00
..
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
crash2.ll
crash.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 Fix a crash in MergeFunctions related to ordering of weak/strong functions 2016-05-31 17:20:23 +00:00
mergefunc-preserve-debug-info.ll MergeFunctions: Preserve debug info in thunks, under option -mergefunc-preserve-debug-info 2017-01-21 02:02:56 +00:00
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 Functions with differing phis should not be merged. 2016-05-20 18:39:11 +00:00
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