1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/include/llvm/Transforms/Scalar
Sanjay Patel 554ba948c2 [DivRempairs] add a pass to optimize div/rem pairs (PR31028)
This is intended to be a superset of the functionality from D31037 (EarlyCSE) but implemented 
as an independent pass, so there's no stretching of scope and feature creep for an existing pass. 
I also proposed a weaker version of this for SimplifyCFG in D30910. And I initially had almost 
this same functionality as an addition to CGP in the motivating example of PR31028:
https://bugs.llvm.org/show_bug.cgi?id=31028

The advantage of positioning this ahead of SimplifyCFG in the pass pipeline is that it can allow 
more flattening. But it needs to be after passes (InstCombine) that could sink a div/rem and
undo the hoisting that is done here.

Decomposing remainder may allow removing some code from the backend (PPC and possibly others).

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

llvm-svn: 312862
2017-09-09 13:38:18 +00:00
..
ADCE.h
AlignmentFromAssumptions.h
BDCE.h
ConstantHoisting.h [ConstantHoisting] Avoid hoisting constants in GEPs that index into a struct type. 2017-06-29 17:03:34 +00:00
CorrelatedValuePropagation.h
DCE.h
DeadStoreElimination.h
DivRemPairs.h [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
EarlyCSE.h
Float2Int.h [Float2Int] Remove return of ConstantRange from seen method. Nothing uses it so it just creates and discards a ConstantRange object for no reason. 2017-05-04 21:29:45 +00:00
GuardWidening.h
GVN.h Sink some IntrinsicInst.h and Intrinsics.h out of llvm/include 2017-09-07 23:27:44 +00:00
GVNExpression.h Hide dbgs() stream for when built with -fmodules. 2017-06-14 19:16:22 +00:00
IndVarSimplify.h
IVUsersPrinter.h
JumpThreading.h
LICM.h
LoopAccessAnalysisPrinter.h
LoopDataPrefetch.h
LoopDeletion.h
LoopDistribute.h
LoopIdiomRecognize.h
LoopInstSimplify.h
LoopLoadElimination.h
LoopPassManager.h
LoopPredication.h
LoopRotation.h
LoopSimplifyCFG.h
LoopSink.h
LoopStrengthReduce.h
LoopUnrollPass.h [PM] Split LoopUnrollPass and make partial unroller a function pass 2017-08-02 20:35:29 +00:00
LowerAtomic.h
LowerExpectIntrinsic.h fix typo; NFC 2017-08-24 15:00:13 +00:00
LowerGuardIntrinsic.h
MemCpyOptimizer.h
MergedLoadStoreMotion.h
NaryReassociate.h Rename WeakVH to WeakTrackingVH; NFC 2017-05-01 17:07:49 +00:00
NewGVN.h
PartiallyInlineLibCalls.h
Reassociate.h [Reassociate] Make one of the helper methods static because it doesn't use any class variables. NFC 2017-06-19 16:23:43 +00:00
SCCP.h
SimpleLoopUnswitch.h [PM/LoopUnswitch] Introduce a new, simpler loop unswitch pass. 2017-04-27 18:45:20 +00:00
SimplifyCFG.h
Sink.h
SpeculativeExecution.h
SROA.h [Analysis, Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-01 21:37:29 +00:00
TailRecursionElimination.h