llvm-project/llvm/lib/Transforms/Utils
Amy Huang 5e3fd471ac [Cloning] Fix to cloning DISubprograms.
When trying to enable -debug-info-kind=constructor there was an assert
that occurs during debug info cloning ("mismatched subprogram between
llvm.dbg.value variable and !dbg attachment").
It appears that during llvm::CloneFunctionInto, a DISubprogram could be
duplicated when MapMetadata is called, and then added to the MD map again
when DIFinder gets a list of subprograms. This results in two different
versions of the DISubprogram.

This patch switches the order so that the DIFinder subprograms are
added before MapMetadata is called.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46784

Differential Revision: https://reviews.llvm.org/D86185
2020-08-21 11:54:56 -07:00
..
AMDGPUEmitPrintf.cpp Fix unused variable warning. NFCI. 2020-01-16 13:02:40 +00:00
ASanStackFrameLayout.cpp
AddDiscriminators.cpp [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
AssumeBundleBuilder.cpp [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
BasicBlockUtils.cpp [Loop Simplify] Resolve an issue where metadata is not applied to a loop latch. 2020-07-17 14:02:14 +00:00
BreakCriticalEdges.cpp BreakCriticalEdges for callbr indirect dests 2020-06-17 11:45:06 -07:00
BuildLibCalls.cpp [BuildLibCalls] Add noundef to standard I/O functions 2020-08-10 10:58:25 +09:00
BypassSlowDivision.cpp BypassSlowDivision: Fix dropping debug info 2020-06-18 17:27:19 -04:00
CMakeLists.txt [Loop Peeling] Separate the Loop Peeling Utilities from the Loop Unrolling Utilities 2020-07-31 18:31:58 +00:00
CallGraphUpdater.cpp [CallGraph] Add support for callback call sites 2020-07-01 13:44:11 -07:00
CallPromotionUtils.cpp [PGO] CallPromotion: Don't try to pass sret args to varargs functions 2020-06-08 21:10:27 +02:00
CanonicalizeAliases.cpp
CanonicalizeFreezeInLoops.cpp LoopAnalysisManager.h - reduce includes to forward declarations. NFC. 2020-06-06 14:06:46 +01:00
CloneFunction.cpp [Cloning] Fix to cloning DISubprograms. 2020-08-21 11:54:56 -07:00
CloneModule.cpp
CodeExtractor.cpp IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
CodeMoverUtils.cpp [CodeMoverUtils] Move OrderedInstructions to CodeMoverUtils 2020-07-10 11:22:43 +05:30
CtorUtils.cpp
Debugify.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
DemoteRegToStack.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
EntryExitInstrumenter.cpp GlobalsModRef.h - reduce CallGraph.h include to forward declarations. NFC. 2020-06-25 16:00:43 +01:00
EscapeEnumerator.cpp EHPersonalities.h - reduce Triple.h include to forward declaration. NFC. 2020-06-06 15:48:31 +01:00
Evaluator.cpp [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
FixIrreducible.cpp [NFC] Add 'override' keyword where missing in include/ and lib/. 2020-07-14 09:47:29 -07:00
FlattenCFG.cpp Fix Wdocumentation warnings by only tagging a param id once per doxygen comment block. NFC. 2020-07-01 12:01:19 +01:00
FunctionComparator.cpp [SVE] Remove calls to VectorType::getNumElements from Transforms/Utils 2020-06-18 13:39:14 -07:00
FunctionImportUtils.cpp [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
GlobalStatus.cpp [CallSite removal][Transform] Replace CallSite with CallBase in Utils. NFC 2020-04-23 20:49:33 -07:00
GuardUtils.cpp
ImportedFunctionsInliningStatistics.cpp
InjectTLIMappings.cpp [InjectTLIMappings] Use StringRef instead of std::string for FN name. 2020-07-16 11:53:04 -07:00
InlineFunction.cpp [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
InstructionNamer.cpp [InstNamer] use 'i' for Instructions, not 'tmp' 2020-06-01 11:11:14 -04:00
IntegerDivision.cpp
LCSSA.cpp [LCSSA] Provide option for caller to clean up unused PHIs. 2020-08-01 20:43:19 +01:00
LLVMBuild.txt
LibCallsShrinkWrap.cpp
Local.cpp [InstCombine] Fix incorrect Modified status 2020-08-13 15:10:41 +02:00
LoopPeel.cpp [Loop Peeling] Separate the Loop Peeling Utilities from the Loop Unrolling Utilities 2020-07-31 18:31:58 +00:00
LoopRotationUtils.cpp [NFC][LoopRotate] Add a statistic for how many times rotation failed due to the header size 2020-07-16 00:21:55 +03:00
LoopSimplify.cpp [LoopSimplify] Use SmallPtrSet and range for loops more. NFCI. 2020-07-20 15:00:59 +02:00
LoopUnroll.cpp [Loop Peeling] Separate the Loop Peeling Utilities from the Loop Unrolling Utilities 2020-07-31 18:31:58 +00:00
LoopUnrollAndJam.cpp [NFC][LoopUnrollAndJam] Use BasicBlock::replacePhiUsesWith instead of 2020-08-11 15:35:14 +00:00
LoopUnrollRuntime.cpp [LoopUnroll] Update branch weight for remainder loop 2020-07-15 12:33:29 -07:00
LoopUtils.cpp [NFC] GetUnderlyingObject -> getUnderlyingObject 2020-07-30 21:08:24 -07:00
LoopVersioning.cpp Fix layering violation Transforms/Utils -> Scalar 2020-08-03 11:53:23 -07:00
LowerInvoke.cpp [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
LowerMemIntrinsics.cpp Utils: Mostly convert memcpy expansion to use Align 2020-03-22 11:21:44 -04:00
LowerSwitch.cpp Revert rG5dd566b7c7b78bd- "PassManager.h - remove unnecessary Function.h/Module.h includes. NFCI." 2020-07-24 13:02:33 +01:00
MatrixUtils.cpp [Matrix] Add TileInfo abstraction for tiled matrix code-gen. 2020-07-20 18:49:08 +01:00
Mem2Reg.cpp
MetaRenamer.cpp
MisExpect.cpp
ModuleUtils.cpp [KernelAddressSanitizer] Make globals constructors compatible with kernel [v2] 2020-06-10 15:08:42 +02:00
NameAnonGlobals.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
PredicateInfo.cpp [PredicateInfo][SCCP] Remove assertion (PR46814) 2020-07-23 19:36:51 +02:00
PromoteMemoryToRegister.cpp [SROA][Mem2Reg] Use efficient droppable use API (after D83976) 2020-07-28 17:41:01 -05:00
SSAUpdater.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
SSAUpdaterBulk.cpp
SanitizerStats.cpp
ScalarEvolutionExpander.cpp Recommit "[SCEVExpander] Add helper to clean up instrs inserted while expanding." 2020-08-21 15:04:17 +01:00
SimplifyCFG.cpp [NFC][SimplifyCFG] Formatting and variable rename 2020-08-21 13:11:17 +01:00
SimplifyIndVar.cpp [IndVarSimplify] Don't replace IV user with unsafe loop-invariant (PR45360) 2020-06-23 13:53:15 +03:00
SimplifyLibCalls.cpp Reland "[SLC] sprintf(dst, "%s", str) -> strcpy(dst, str)" 2020-08-15 12:14:57 +02:00
SizeOpts.cpp Reland D84057 [PGO][PGSO] Remove a temporary flag used for gradual rollout. 2020-07-22 20:57:25 -07:00
SplitModule.cpp
StripGCRelocates.cpp [Statepoint] Replace uses of isX functions with idiomatic isa<X> 2020-05-27 18:32:28 -07:00
StripNonLineTableDebugInfo.cpp
SymbolRewriter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
UnifyFunctionExitNodes.cpp
UnifyLoopExits.cpp [NFC] Add 'override' keyword where missing in include/ and lib/. 2020-07-14 09:47:29 -07:00
UniqueInternalLinkageNames.cpp New pass to make internal linkage symbol names unique. 2020-04-20 15:05:22 -07:00
Utils.cpp [Utils] Make -assume-builder/-assume-simplify actually work on Old-PM 2020-07-04 21:06:36 +03:00
VNCoercion.cpp [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
ValueMapper.cpp ValueMapper does not preserve inline assembly dialect when remapping the type 2020-05-17 14:57:50 -07:00