llvm-project/llvm/lib/Transforms/Utils
David Stenberg 0af67e5b65 [SimplifyCFG] Fix a debug invariant bug in FoldBranchToCommonDest()
Summary:
Fix a case where FoldBranchToCommonDest() would bail out from doing CSE
when encountering a debug intrinsic. Handle that by skipping past the
debug intrinsics.

Also, as a minor refactoring, rename checkCSEInPredecessor() to
tryCSEWithPredecessor() to make it a bit more clear that the function
may remove instructions.

Reviewers: fhahn, craig.topper, dblaikie, xbolva00

Reviewed By: fhahn, xbolva00

Subscribers: vsk, davide, llvm-commits

Differential Revision: https://reviews.llvm.org/D46635

llvm-svn: 332698
2018-05-18 08:52:15 +00:00
..
ASanStackFrameLayout.cpp [asan] Add a full redzone after every stack variable 2017-11-18 01:13:18 +00:00
AddDiscriminators.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
BasicBlockUtils.cpp [SimplifyCFG] Fix a crash when folding PHIs. 2018-05-08 23:28:15 +00:00
BreakCriticalEdges.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
BuildLibCalls.cpp [InstCombine] Fix the signature of fgets_unlocked. 2018-05-16 21:45:39 +00:00
BypassSlowDivision.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
CMakeLists.txt [PR16756] Add SSAUpdaterBulk. 2018-04-09 23:37:20 +00:00
CallPromotionUtils.cpp [ICP] Do not attempt type matching for variable length arguments. 2018-04-25 17:19:21 +00:00
CloneFunction.cpp Test commit access. 2018-05-14 08:24:29 +00:00
CloneModule.cpp [DebugInfo][OPT] Fixing a couple of DI duplication bugs of CloneModule 2018-04-13 21:22:24 +00:00
CodeExtractor.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
CtorUtils.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
DemoteRegToStack.cpp Fix a couple of layering violations in Transforms 2018-03-21 22:34:23 +00:00
EntryExitInstrumenter.cpp EntryExitInstrumenter: Handle musttail calls 2018-04-06 10:14:09 +00:00
EscapeEnumerator.cpp [WebAssembly] Add Wasm personality and isScopedEHPersonality() 2018-05-17 20:52:03 +00:00
Evaluator.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
FlattenCFG.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
FunctionComparator.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
FunctionImportUtils.cpp [ThinLTO] Clear dllimport when setting dso_local. 2018-03-13 15:24:51 +00:00
GlobalStatus.cpp [GlobalOpt] Fix exponential compile-time with selects. 2018-01-31 20:42:25 +00:00
ImportedFunctionsInliningStatistics.cpp [Transforms] Change std::sort to llvm::sort in response to r327219 2018-04-13 19:47:57 +00:00
InlineFunction.cpp [WebAssembly] Add Wasm personality and isScopedEHPersonality() 2018-05-17 20:52:03 +00:00
InstructionNamer.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
IntegerDivision.cpp Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
LCSSA.cpp [LCSSA] Do not remove used PHI nodes in formLCSSAForInstructions 2018-05-08 06:59:47 +00:00
LLVMBuild.txt
LibCallsShrinkWrap.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
Local.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LoopRotationUtils.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LoopSimplify.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LoopUnroll.cpp [LoopUnroll] Split out simplify code after Unroll into a new function. NFC 2018-05-16 10:41:58 +00:00
LoopUnrollPeel.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LoopUnrollRuntime.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LoopUtils.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
LoopVersioning.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
LowerInvoke.cpp Support a funclet operand bundle in LowerInvoke 2018-05-09 00:53:50 +00:00
LowerMemIntrinsics.cpp [LowerMemIntrinsics] Update uses of deprecated MemIntrinsic::getAlignment API (NFC) 2018-02-05 22:23:58 +00:00
LowerSwitch.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
Mem2Reg.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
MetaRenamer.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
ModuleUtils.cpp ModuleUtils: Stop using comdat members to generate unique module ids. 2017-10-05 21:54:53 +00:00
NameAnonGlobals.cpp
OrderedInstructions.cpp Remove unneeded else from OrderedInstructions::dominates. 2017-06-29 17:01:03 +00:00
PredicateInfo.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
PromoteMemoryToRegister.cpp [STLExtras] Add distance() for ranges, pred_size(), and succ_size() 2018-05-10 23:01:54 +00:00
SSAUpdater.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
SSAUpdaterBulk.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
SanitizerStats.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SimplifyCFG.cpp [SimplifyCFG] Fix a debug invariant bug in FoldBranchToCommonDest() 2018-05-18 08:52:15 +00:00
SimplifyIndVar.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
SimplifyInstructions.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
SimplifyLibCalls.cpp [SimplifyLibcalls] Replace locked IO with unlocked IO 2018-05-16 11:39:52 +00:00
SplitModule.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
StripGCRelocates.cpp Fix a couple of layering violations in Transforms 2018-03-21 22:34:23 +00:00
StripNonLineTableDebugInfo.cpp Fix some layering in StripNonLineTableDebugInfo, moving its declaration from IPO.h to Utils.h to match its implementation 2018-03-29 22:42:08 +00:00
SymbolRewriter.cpp Mark all library options as hidden. 2017-12-01 00:53:10 +00:00
UnifyFunctionExitNodes.cpp Transforms: Introduce Transforms/Utils.h rather than spreading the declarations amongst Scalar.h and IPO.h 2018-03-28 17:44:36 +00:00
Utils.cpp llvm-c: Split Utils out of Scalar.h 2018-03-29 22:31:38 +00:00
VNCoercion.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
ValueMapper.cpp Teach ValueMapper to use ODR uniqued types when available 2018-01-30 20:16:32 +00:00