1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib/Transforms/Scalar
Jun Bum Lim dd78ed1cc5 Use the basic cost if a GEP is not used as addressing mode
Summary:
Currently, getGEPCost() returns TCC_FREE whenever a GEP is a legal addressing mode in the target.
However, since it doesn't check its actual users, it will return FREE even in cases
where the GEP cannot be folded away as a part of actual addressing mode.
For example, if an user of the GEP is a call instruction taking the GEP as a parameter,
then the GEP may not be folded in isel.

Reviewers: hfinkel, efriedma, mcrosier, jingyue, haicheng

Reviewed By: hfinkel

Subscribers: javed.absar, llvm-commits

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

llvm-svn: 314517
2017-09-29 14:50:16 +00:00
..
ADCE.cpp [ADCE][Dominators] Reapply: Teach ADCE to preserve dominators 2017-08-22 16:30:21 +00:00
AlignmentFromAssumptions.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
BDCE.cpp [BDCE] Don't check demanded bits on unsized types 2017-08-16 16:09:22 +00:00
CMakeLists.txt [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
ConstantHoisting.cpp [Transforms] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:43:53 +00:00
ConstantProp.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
CorrelatedValuePropagation.cpp [JumpThreading] Preserve DT and LVI across the pass 2017-09-28 17:24:40 +00:00
DCE.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
DeadStoreElimination.cpp [DSE] Merge stores when the later store only writes to memory locations the early store also wrote to (2nd try) 2017-09-26 13:54:28 +00:00
DivRemPairs.cpp [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
EarlyCSE.cpp [EarlyCSE] Handle calls with no MemorySSA info. 2017-07-14 20:13:21 +00:00
FlattenCFGPass.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Float2Int.cpp
GuardWidening.cpp Guard print() functions only used by dump() functions. 2017-07-31 10:07:49 +00:00
GVN.cpp This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352 2017-09-15 20:10:09 +00:00
GVNHoist.cpp [GVNHoist] Factor out reachability to search for anticipable instructions quickly 2017-09-13 05:28:03 +00:00
GVNSink.cpp GVNSink: Make ModelledPHIs constructor linear (and avoid edge case it worries about) by avoiding getIncomingValueForBlock 2017-09-20 00:07:27 +00:00
InductiveRangeCheckElimination.cpp Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
IndVarSimplify.cpp [IndVars] Add an option to be able to disable LFTR 2017-06-09 06:11:59 +00:00
InferAddressSpaces.cpp Sink some IntrinsicInst.h and Intrinsics.h out of llvm/include 2017-09-07 23:27:44 +00:00
IVUsersPrinter.cpp
JumpThreading.cpp [JumpThreading] Preserve DT and LVI across the pass 2017-09-28 17:24:40 +00:00
LICM.cpp Refactor collectChildrenInLoop to LoopUtils [NFC] 2017-09-15 00:04:16 +00:00
LLVMBuild.txt
LoopAccessAnalysisPrinter.cpp
LoopDataPrefetch.cpp [LoopDataPrefetch][AArch64FalkorHWPFFix] Preserve ScalarEvolution 2017-08-16 19:03:16 +00:00
LoopDeletion.cpp Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
LoopDistribute.cpp
LoopIdiomRecognize.cpp [LIR] Teach LIR to avoid extending the BE count prior to adding one to 2017-07-25 10:48:32 +00:00
LoopInstSimplify.cpp
LoopInterchange.cpp [LoopInterchange] Skip zext instructions when looking for induction var. 2017-08-25 16:52:29 +00:00
LoopLoadElimination.cpp
LoopPassManager.cpp
LoopPredication.cpp Rework loop predication pass 2017-09-22 13:13:57 +00:00
LoopRerollPass.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
LoopRotation.cpp [LoopRotate][Dominators] Use the incremental API to update DomTree 2017-08-17 21:48:19 +00:00
LoopSimplifyCFG.cpp
LoopSink.cpp
LoopStrengthReduce.cpp [LSR] Fix Shadow IV in case of integer overflow 2017-08-29 07:32:20 +00:00
LoopUnrollPass.cpp [LoopUnroll] Fix use after poison. 2017-09-28 14:47:39 +00:00
LoopUnswitch.cpp Use a BumpPtrAllocator for Loop objects 2017-09-28 02:45:42 +00:00
LoopVersioningLICM.cpp
LowerAtomic.cpp LowerAtomic: Don't skip optnone functions; atomic still need lowering (PR34020) 2017-08-23 15:43:28 +00:00
LowerExpectIntrinsic.cpp Fix builin_expect lowering bug 2017-06-07 18:32:24 +00:00
LowerGuardIntrinsic.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MemCpyOptimizer.cpp Default MemoryLocation passed to getModRefInfo should be None (D35441) 2017-08-01 00:47:17 +00:00
MergedLoadStoreMotion.cpp [IR] Make use of Type::isPtrOrPtrVectorTy/isIntOrIntVectorTy/isFPOrFPVectorTy to shorten code. NFC 2017-07-09 07:04:00 +00:00
MergeICmps.cpp [MergeICmps] Fix build of rL312315 on clang-with-thin-lto-windows: 2017-09-01 11:51:23 +00:00
NaryReassociate.cpp Use the basic cost if a GEP is not used as addressing mode 2017-09-29 14:50:16 +00:00
NewGVN.cpp NewGVN: Remove unused includes 2017-09-20 00:07:12 +00:00
PartiallyInlineLibCalls.cpp
PlaceSafepoints.cpp All libcalls should be considered to be GC-leaf functions. 2017-07-27 16:49:39 +00:00
Reassociate.cpp [Reassociate] Do not drop debug location if replacement is missing 2017-08-24 09:05:00 +00:00
Reg2Mem.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
RewriteStatepointsForGC.cpp [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
Scalar.cpp [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
Scalarizer.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SCCP.cpp [IPSCCP] Guard a user of getInitializer with hasDefinitiveInitializer 2017-07-31 17:47:07 +00:00
SeparateConstOffsetFromGEP.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SimpleLoopUnswitch.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SimplifyCFGPass.cpp [SimplifyCFG] add a struct to house optional folds (PR34603) 2017-09-27 14:54:16 +00:00
Sink.cpp [Sink] Fix predicate in legality check 2017-06-09 19:31:10 +00:00
SpeculativeExecution.cpp
SROA.cpp Re-land r313825: "[IR] Add llvm.dbg.addr, a control-dependent version of llvm.dbg.declare" 2017-09-21 19:52:03 +00:00
StraightLineStrengthReduce.cpp Use the basic cost if a GEP is not used as addressing mode 2017-09-29 14:50:16 +00:00
StructurizeCFG.cpp fix trivial typos; NFC 2017-07-09 05:54:44 +00:00
TailRecursionElimination.cpp [TRE] Move to the new OptRemark API. 2017-07-19 21:13:22 +00:00