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 MergeFunctions: test alloca better 2016-04-12 00:03:26 +00:00
apply_function_attributes.ll [MergeFuncs] Fix callsite attributes in thunk generation 2015-09-10 18:08:35 +00:00
call-and-invoke-with-ranges.ll [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
constant-entire-value.ll Improve the determinism of MergeFunctions 2015-08-21 23:27:24 +00:00
crash2.ll [GlobalOpt] Demote globals to locals more aggressively 2015-11-15 14:21:37 +00:00
crash.ll
fold-weak.ll
functions.ll
gep-base-type.ll [MergeFuncs] Fix bug in merging GetElementPointers 2015-09-14 15:37:48 +00:00
inttoptr-address-space.ll [MergeFuncs] Fix callsite attributes in thunk generation 2015-09-10 18:08:35 +00:00
inttoptr.ll [MergeFuncs] Fix callsite attributes in thunk generation 2015-09-10 18:08:35 +00:00
linkonce_odr.ll
merge-block-address-other-function.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
merge-block-address.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
merge-const-ptr-and-int.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
merge-different-vector-types.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
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 Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
no-merge-block-address-other-function.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
no-merge-ptr-different-sizes.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
no-merge-ptr-int-different-values.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
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 Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
ranges.ll
self-referential-global.ll
too-small.ll
undef-different-types.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
vector-GEP-crash.ll
vector.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
vectors-and-arrays.ll