1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/include/llvm/Transforms/Scalar
Bjorn Pettersson 9de55915d8 [Float2Int] Make iteration over Roots deterministic
Summary:
Use a SmallSetVector instead of a SmallPtrSet when collecting
and storing Roots.

The iteration order for a SmallPtrSet is not deterministic,
so in the past the order of items inserted in the WorkList
inside walkBackwards has been non-deterministic. This patch
intends to make the order of rewrites done in Float2Int
deterministic by changing the container for the Roots set.

The semantics result of the transformation should not be
any different afaict. But at least naming of IR variables
(when outputting the result as an ll file) should be more
stable now.

Reviewers: craig.topper, spatel, cameron.mcinally

Reviewed By: spatel

Subscribers: mgrang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74534
2020-04-17 21:40:12 +02:00
..
ADCE.h
AlignmentFromAssumptions.h
BDCE.h
CallSiteSplitting.h [CallSiteSplitting] Remove unused includes (NFC). 2019-09-20 08:33:11 +00:00
ConstantHoisting.h Rename TTI::getIntImmCost for instructions and intrinsics 2019-12-11 18:00:20 -08:00
CorrelatedValuePropagation.h
DCE.h
DeadStoreElimination.h
DivRemPairs.h
EarlyCSE.h
Float2Int.h [Float2Int] Make iteration over Roots deterministic 2020-04-17 21:40:12 +02:00
GuardWidening.h
GVN.h [GVN] Add GVNOption to control load-pre more fine-grained. 2020-02-03 23:00:58 -08:00
GVNExpression.h [Alignment][NFC] MaybeAlign in GVNExpression 2019-09-27 08:56:43 +00:00
InductiveRangeCheckElimination.h [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
IndVarSimplify.h
InstSimplifyPass.h
IVUsersPrinter.h
JumpThreading.h [JumpThreading] NFC: Simplify ComputeValueKnownInPredecessorsImpl 2020-04-07 18:37:36 -07:00
LICM.h Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
LoopAccessAnalysisPrinter.h
LoopDataPrefetch.h
LoopDeletion.h
LoopDistribute.h
LoopFuse.h
LoopIdiomRecognize.h
LoopInstSimplify.h
LoopLoadElimination.h
LoopPassManager.h Extend TimeTrace to LLVM's new pass manager 2020-03-06 14:45:19 -08:00
LoopPredication.h
LoopRotation.h
LoopSimplifyCFG.h
LoopSink.h
LoopStrengthReduce.h
LoopUnrollAndJamPass.h [NFC] Remove extra headers included in Loop Unroll and LoopUnrollAndJam files 2020-02-12 17:57:56 +00:00
LoopUnrollPass.h Add missing includes needed to prune LLVMContext.h include, NFC 2019-11-14 15:23:15 -08:00
LowerAtomic.h
LowerConstantIntrinsics.h Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
LowerExpectIntrinsic.h
LowerGuardIntrinsic.h
LowerMatrixIntrinsics.h [Matrix] Add first set of matrix intrinsics and initial lowering pass. 2019-12-12 15:42:18 +00:00
LowerWidenableCondition.h
MakeGuardsExplicit.h
MemCpyOptimizer.h [CallSite removal][MemCpyOptimizer] Replace CallSite with CallBase. NFC 2020-04-17 10:32:45 -07:00
MergedLoadStoreMotion.h [MergedLoadStoreMotion] Sink stores to BB with more than 2 predecessors 2019-09-05 17:00:32 +00:00
MergeICmps.h
NaryReassociate.h
NewGVN.h
PartiallyInlineLibCalls.h
Reassociate.h [Reassociate] Use IRBuilderBase; NFC 2020-04-04 12:34:16 +02:00
RewriteStatepointsForGC.h
Scalarizer.h
SCCP.h Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
SimpleLoopUnswitch.h
SimplifyCFG.h
Sink.h
SpeculateAroundPHIs.h
SpeculativeExecution.h
SROA.h
TailRecursionElimination.h
WarnMissedTransforms.h