1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/lib/Transforms/Utils
Davide Italiano 4469a6f083 [PartialInliner] Fix crash when inlining functions with unreachable blocks.
CodeExtractor looks up the dominator node corresponding to return blocks
when splitting them. If one of these blocks is unreachable, there's no
node in the Dom and CodeExtractor crashes because it doesn't check
for domtree node validity.
In theory, we could add just a check for skipping null DTNodes in
`splitReturnBlock` but the fix I propose here is slightly different. To the
best of my knowledge, unreachable blocks are irrelevant for the algorithm,
therefore we can just skip them when building the candidate set in the
constructor.

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

llvm-svn: 300946
2017-04-21 04:25:00 +00:00
..
AddDiscriminators.cpp [AddDiscriminators] Assign discriminators to MemIntrinsic calls. 2017-04-11 19:07:30 +00:00
ASanStackFrameLayout.cpp
BasicBlockUtils.cpp
BreakCriticalEdges.cpp
BuildLibCalls.cpp Module::getOrInsertFunction is using C-style vararg instead of variadic templates. 2017-04-11 15:01:18 +00:00
BypassSlowDivision.cpp [BypassSlowDivision] Do not bypass division of hash-like values 2017-04-02 13:14:30 +00:00
CloneFunction.cpp [IR] Make getParamAttributes take argument numbers, not ArgNo+1 2017-04-13 23:12:13 +00:00
CloneModule.cpp
CMakeLists.txt MemorySSA: Move to Analysis, from Transforms/Utils. It's used as 2017-04-11 20:06:36 +00:00
CmpInstAnalysis.cpp [APInt] Rename getSignBit to getSignMask 2017-04-20 16:56:25 +00:00
CodeExtractor.cpp [PartialInliner] Fix crash when inlining functions with unreachable blocks. 2017-04-21 04:25:00 +00:00
CtorUtils.cpp
DemoteRegToStack.cpp Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
EscapeEnumerator.cpp
Evaluator.cpp [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
FlattenCFG.cpp
FunctionComparator.cpp Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
FunctionImportUtils.cpp
GlobalStatus.cpp
ImportedFunctionsInliningStatistics.cpp [ThinLTO] Correct counting of functions in inliner stats 2017-03-24 17:59:06 +00:00
InlineFunction.cpp Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
InstructionNamer.cpp
IntegerDivision.cpp
LCSSA.cpp [LCSSA] Don't insert tokens into the worklist at all. 2017-04-17 14:32:05 +00:00
LibCallsShrinkWrap.cpp
LLVMBuild.txt
Local.cpp PR32382: Fix emitting complex DWARF expressions. 2017-04-18 01:21:53 +00:00
LoopSimplify.cpp
LoopUnroll.cpp
LoopUnrollPeel.cpp [LoopPeeling] Get rid of Phis that become invariant after N steps 2017-04-17 09:52:02 +00:00
LoopUnrollRuntime.cpp
LoopUtils.cpp [LV] Fix the vector code generation for first order recurrence 2017-04-13 18:59:25 +00:00
LoopVersioning.cpp
LowerInvoke.cpp
LowerMemIntrinsics.cpp
LowerSwitch.cpp [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
Mem2Reg.cpp [Mem2Reg] Remove AliasSetTracker updating logic from the pass. 2017-04-09 20:47:14 +00:00
MetaRenamer.cpp [MetaRenamer] Don't rename library functions. 2017-03-23 23:21:07 +00:00
ModuleUtils.cpp Revert "[asan] Fix dead stripping of globals on Linux." 2017-04-10 20:36:30 +00:00
NameAnonGlobals.cpp
PredicateInfo.cpp Simplify the code and remove dead code 2017-04-11 08:21:27 +00:00
PromoteMemoryToRegister.cpp [Mem2Reg] Remove AliasSetTracker updating logic from the pass. 2017-04-09 20:47:14 +00:00
SanitizerStats.cpp
SimplifyCFG.cpp [SimplifyCFG] Use hasNUses instead of comparing getNumUses to a constant." 2017-04-17 22:13:00 +00:00
SimplifyIndVar.cpp [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative 2017-03-30 21:56:56 +00:00
SimplifyInstructions.cpp
SimplifyLibCalls.cpp Module::getOrInsertFunction is using C-style vararg instead of variadic templates. 2017-04-11 15:01:18 +00:00
SplitModule.cpp
SSAUpdater.cpp
StripGCRelocates.cpp
StripNonLineTableDebugInfo.cpp
SymbolRewriter.cpp
UnifyFunctionExitNodes.cpp
Utils.cpp MemorySSA: Move to Analysis, from Transforms/Utils. It's used as 2017-04-11 20:06:36 +00:00
ValueMapper.cpp
VNCoercion.cpp [GVN] Don't coerce non-integral pointers to integers or vice versa 2017-04-19 18:21:09 +00:00