llvm-6502/lib/Transforms/IPO
Michael Gottesman e0e66b9dfa Update StripDeadDebugInfo to use DebugInfoFinder so that it is no longer stale to the point of not working and more resilient to debug info changes.
The current version of StripDeadDebugInfo became stale and no longer actually
worked since it was expecting an older version of debug info.

This patch updates it to use DebugInfoFinder and the modern DebugInfo classes as
much as possible to make it more redundent to such changes. Additionally, the
only place where that was avoided (the code where we replace the old sets with
the new), I call verify on the DIContextUnit implying that if the format changes
and my live set changes no longer make sense an assert will be hit. In order to
ensure that that occurs I have included a test case.

The actual stripping of the dead debug info follows the same strategy as was
used before in this class: find the live set and replace the old set in the
given compile unit (which may contain dead global variables/functions) with the
new live one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189078 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-23 00:23:24 +00:00
..
ArgumentPromotion.cpp Clean up some of this code a tiny bit, no functionality change. 2013-07-18 22:32:32 +00:00
BarrierNoopPass.cpp Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
CMakeLists.txt Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
ConstantMerge.cpp Fix const merging when an alias of a const is llvm.used. 2013-05-06 01:48:55 +00:00
DeadArgumentElimination.cpp DeadArgumentElimination: keep return value on functions that have a live argument with the 'returned' attribute (rather than generate invalid IR); however, if both can be eliminated, both will be 2013-06-30 20:26:21 +00:00
ExtractGV.cpp Check isDiscardableIfUnused, rather than hasLocalLinkage, when bumping 2013-03-04 22:40:44 +00:00
FunctionAttrs.cpp Fix annotation of unlink. Should fix builder. 2013-07-06 00:59:28 +00:00
GlobalDCE.cpp GlobalDCE: Fix an oversight in my last commit that could lead to crashes. 2013-04-13 16:11:14 +00:00
GlobalOpt.cpp Respect llvm.used in Internalize. 2013-07-25 03:23:25 +00:00
InlineAlways.cpp Make the inline cost a proper analysis pass. This remains essentially 2013-01-21 11:39:18 +00:00
Inliner.cpp Fix comparisons of alloca alignment in inliner merging 2013-07-17 14:32:41 +00:00
InlineSimple.cpp Make the inline cost a proper analysis pass. This remains essentially 2013-01-21 11:39:18 +00:00
Internalize.cpp Move stack protector names to the same place. 2013-08-12 20:09:37 +00:00
IPConstantPropagation.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
IPO.cpp This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LoopExtractor.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Makefile
MergeFunctions.cpp MergeFunc: Make pointer and integer types generate the same hash. 2013-04-19 23:06:44 +00:00
PartialInlining.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
PassManagerBuilder.cpp Also remove logic in LateVectorize 2013-08-13 16:12:04 +00:00
PruneEH.cpp PruneEH: Only merge attribute sets when used. No functionality change. 2013-06-15 10:55:39 +00:00
StripDeadPrototypes.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
StripSymbols.cpp Update StripDeadDebugInfo to use DebugInfoFinder so that it is no longer stale to the point of not working and more resilient to debug info changes. 2013-08-23 00:23:24 +00:00