mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
a8fe405273
Summary: If NaryReassociate succeed it will, when replacing the old instruction with the new instruction, also recursively delete trivially dead instructions from the old instruction. However, if the input to the NaryReassociate pass contain dead code it is not save to recursively delete trivially deadinstructions as it might lead to deleting the newly created instruction. This patch will fix the problem by using WeakVH to detect this rare case, when the newly created instruction is dead, and it will then restart the basic block iteration from the beginning. This fixes pr37539 Reviewers: tra, meheff, grosser, sanjoy Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D47139 llvm-svn: 333155 |
||
---|---|---|
.. | ||
ADCE.cpp | ||
AlignmentFromAssumptions.cpp | ||
BDCE.cpp | ||
CallSiteSplitting.cpp | ||
CMakeLists.txt | ||
ConstantHoisting.cpp | ||
ConstantProp.cpp | ||
CorrelatedValuePropagation.cpp | ||
DCE.cpp | ||
DeadStoreElimination.cpp | ||
DivRemPairs.cpp | ||
EarlyCSE.cpp | ||
FlattenCFGPass.cpp | ||
Float2Int.cpp | ||
GuardWidening.cpp | ||
GVN.cpp | ||
GVNHoist.cpp | ||
GVNSink.cpp | ||
InductiveRangeCheckElimination.cpp | ||
IndVarSimplify.cpp | ||
InferAddressSpaces.cpp | ||
IVUsersPrinter.cpp | ||
JumpThreading.cpp | ||
LICM.cpp | ||
LLVMBuild.txt | ||
LoopAccessAnalysisPrinter.cpp | ||
LoopDataPrefetch.cpp | ||
LoopDeletion.cpp | ||
LoopDistribute.cpp | ||
LoopIdiomRecognize.cpp | ||
LoopInterchange.cpp | ||
LoopLoadElimination.cpp | ||
LoopPassManager.cpp | ||
LoopPredication.cpp | ||
LoopRerollPass.cpp | ||
LoopRotation.cpp | ||
LoopSimplifyCFG.cpp | ||
LoopSink.cpp | ||
LoopStrengthReduce.cpp | ||
LoopUnrollPass.cpp | ||
LoopUnswitch.cpp | ||
LoopVersioningLICM.cpp | ||
LowerAtomic.cpp | ||
LowerExpectIntrinsic.cpp | ||
LowerGuardIntrinsic.cpp | ||
MemCpyOptimizer.cpp | ||
MergedLoadStoreMotion.cpp | ||
MergeICmps.cpp | ||
NaryReassociate.cpp | ||
NewGVN.cpp | ||
PartiallyInlineLibCalls.cpp | ||
PlaceSafepoints.cpp | ||
Reassociate.cpp | ||
Reg2Mem.cpp | ||
RewriteStatepointsForGC.cpp | ||
Scalar.cpp | ||
Scalarizer.cpp | ||
SCCP.cpp | ||
SeparateConstOffsetFromGEP.cpp | ||
SimpleLoopUnswitch.cpp | ||
SimplifyCFGPass.cpp | ||
Sink.cpp | ||
SpeculateAroundPHIs.cpp | ||
SpeculativeExecution.cpp | ||
SROA.cpp | ||
StraightLineStrengthReduce.cpp | ||
StructurizeCFG.cpp | ||
TailRecursionElimination.cpp |