llvm-project/llvm/lib/Transforms/Utils
stozer bb1b0bc4e5 [DebugInfo] Correctly handle salvaged casts and split fragments at ISel
Previously, LLVM had no functional way of performing casts inside of a
DIExpression(), which made salvaging cast instructions other than Noop
casts impossible. This patch enables the salvaging of casts by using the
DW_OP_LLVM_convert operator for SExt and Trunc instructions.

There is another issue which is exposed by this fix, in which fragment
DIExpressions (which are preserved more readily by this patch) for
values that must be split across registers in ISel trigger an assertion,
as the 'split' fragments extend beyond the bounds of the fragment
DIExpression causing an error. This patch also fixes this issue by
checking the fragment status of DIExpressions which are to be split, and
dropping fragments that are invalid.
2019-12-18 11:09:18 +00:00
..
ASanStackFrameLayout.cpp Use llvm::stable_sort 2019-04-23 14:51:27 +00:00
AddDiscriminators.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
BasicBlockUtils.cpp [BasicBlockUtils] Fix dbg.value elimination problem in MergeBlockIntoPredecessor 2019-12-16 11:41:21 +01:00
BreakCriticalEdges.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
BuildLibCalls.cpp [FunctionAttrs] Added noalias for memccpy/mempcpy arguments 2019-09-30 19:43:48 +00:00
BypassSlowDivision.cpp [BypassSlowDivision][CodeGenPrepare] avoid crashing on unused code (PR43514) 2019-10-01 21:25:36 +00:00
CMakeLists.txt [CodeMoverUtils] Added an API to check if an instruction can be safely 2019-11-22 21:29:08 +00:00
CallPromotionUtils.cpp [PGO] Update ICP pass for recent byval type changes 2019-07-01 22:43:39 +00:00
CanonicalizeAliases.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
CloneFunction.cpp Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after ... 2019-08-28 21:27:50 +00:00
CloneModule.cpp Fix for "DICompileUnit not listed in llvm.dbg.cu" verification error after ... 2019-08-28 21:27:50 +00:00
CodeExtractor.cpp CodeExtractor: NFC: Use Range based loop 2019-10-16 01:50:21 +00:00
CodeMoverUtils.cpp [LoopFusion] Move instructions from FC0.Latch to FC1.Latch. 2019-12-17 22:10:23 +00:00
CtorUtils.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Debugify.cpp Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
DemoteRegToStack.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
EntryExitInstrumenter.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
EscapeEnumerator.cpp [opaque pointer types] Add a FunctionCallee wrapper type, and use it. 2019-02-01 02:28:03 +00:00
Evaluator.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
FlattenCFG.cpp Handle successor's PHI node correctly when flattening CFG merges two if-regions 2019-09-26 15:20:17 +00:00
FunctionComparator.cpp IR: compare type attributes deeply when looking into functions. 2019-06-27 11:44:45 +00:00
FunctionImportUtils.cpp [ThinLTO] Fix importing of writeonly variables in distributed ThinLTO 2019-12-04 14:59:27 -08:00
GlobalStatus.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
GuardUtils.cpp Further cleanup manipulation of widenable branches [NFC] 2019-11-21 15:07:30 -08:00
ImportedFunctionsInliningStatistics.cpp [Instruction] Add hasMetadata(Kind) helper [NFC] 2019-09-04 17:28:48 +00:00
InjectTLIMappings.cpp Revert "[VectorUtils] Introduce the Vector Function Database (VFDatabase)." 2019-12-13 19:42:04 +00:00
InlineFunction.cpp Resubmit "[Alignment][NFC] Deprecate CreateMemCpy/CreateMemMove" 2019-12-17 10:07:46 +01:00
InstructionNamer.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
IntegerDivision.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LCSSA.cpp [LCSSA] Don't use VH callbacks to invalidate SCEV when creating LCSSA phis 2019-12-06 13:21:49 +07:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LibCallsShrinkWrap.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
Local.cpp [DebugInfo] Correctly handle salvaged casts and split fragments at ISel 2019-12-18 11:09:18 +00:00
LoopRotationUtils.cpp [LoopRotationUtils] Check values are newly inserted into maps. 2019-11-05 13:40:10 -08:00
LoopSimplify.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
LoopUnroll.cpp Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
LoopUnrollAndJam.cpp [LoopUnrollAndJam] Fixed null check after dereferencing warning. NFCI. 2019-11-03 20:02:54 +01:00
LoopUnrollPeel.cpp [LoopUnroll] countToEliminateCompares(): fix handling of [in]equality predicates (PR43840) 2019-11-06 15:08:59 +03:00
LoopUnrollRuntime.cpp Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
LoopUtils.cpp Revert "[LoopUtils] Updated deleteDeadLoop() to handle loop nest." 2019-12-17 03:51:41 +00:00
LoopVersioning.cpp Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
LowerInvoke.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
LowerMemIntrinsics.cpp [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
LowerSwitch.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
Mem2Reg.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
MetaRenamer.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
MisExpect.cpp Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
ModuleUtils.cpp Revert "[VectorUtils] Introduce the Vector Function Database (VFDatabase)." 2019-12-13 19:42:04 +00:00
NameAnonGlobals.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
PredicateInfo.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
PromoteMemoryToRegister.cpp [Mem2Reg] Delete unused PointerAllocaValues 2019-04-14 07:28:29 +00:00
SSAUpdater.cpp [LICM/MSSA] Add promotion to scalars by building an AliasSetTracker with MemorySSA. 2019-02-06 20:25:17 +00:00
SSAUpdaterBulk.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SanitizerStats.cpp [opaque pointer types] Add a FunctionCallee wrapper type, and use it. 2019-02-01 02:28:03 +00:00
SimplifyCFG.cpp Revert "Reapply: [DebugInfo] Recover debug intrinsics when killing duplicated/empty..." 2019-12-10 16:03:17 -08:00
SimplifyIndVar.cpp [SimplifyIndVar] Simplify non-overflowing saturating add/sub 2019-06-15 08:48:52 +00:00
SimplifyLibCalls.cpp Resubmit "[Alignment][NFC] Deprecate CreateMemCpy/CreateMemMove" 2019-12-17 10:07:46 +01:00
SizeOpts.cpp [PGO][PGSO] Enable size optimizations in code gen / target passes for cold code. 2019-12-13 11:01:19 -08:00
SplitModule.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StripGCRelocates.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
StripNonLineTableDebugInfo.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
SymbolRewriter.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
UnifyFunctionExitNodes.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
Utils.cpp [SVFS] Inject TLI Mappings in VFABI attribute. 2019-11-15 18:42:56 +00:00
VNCoercion.cpp [Alignment][NFC] Remove LoadInst::setAlignment(unsigned) 2019-09-30 09:37:05 +00:00
ValueMapper.cpp [ValueMapper] NFC: Remove dead code to pause metadata mapping 2019-08-28 17:43:14 +00:00