1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/include/llvm/Analysis
Alina Sbirlea 6b31c219ab LoadStoreVectorizer: Remove TargetBaseAlign. Keep alignment for stack adjustments.
Summary:
TargetBaseAlign is no longer required since LSV checks if target allows misaligned accesses.
A constant defining a base alignment is still needed for stack accesses where alignment can be adjusted.

Previous patch (D22936) was reverted because tests were failing. This patch also fixes the cause of those failures:
- x86 failing tests either did not have the right target, or the right alignment.
- NVPTX failing tests did not have the right alignment.
- AMDGPU failing test (merge-stores) should allow vectorization with the given alignment but the target info
  considers <3xi32> a non-standard type and gives up early. This patch removes the condition and only checks
  for a maximum size allowed and relies on the next condition checking for %4 for correctness.
  This should be revisited to include 3xi32 as a MVT type (on arsenm's non-immediate todo list).

Note that checking the sizeInBits for a MVT is undefined (leads to an assertion failure),
so we need to create an EVT, hence the interface change in allowsMisaligned to include the Context.

Reviewers: arsenm, jlebar, tstellarAMD

Subscribers: jholewinski, arsenm, mzolotukhin, llvm-commits

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

llvm-svn: 277735
2016-08-04 16:38:44 +00:00
..
AliasAnalysis.h
AliasAnalysisEvaluator.h
AliasSetTracker.h
AssumptionCache.h
BasicAliasAnalysis.h
BlockFrequencyInfo.h CodeExtractor : Add ability to preserve profile data. 2016-08-02 02:15:45 +00:00
BlockFrequencyInfoImpl.h CodeExtractor : Add ability to preserve profile data. 2016-08-02 02:15:45 +00:00
BranchProbabilityInfo.h Re-submit r272891 "Prevent dangling pointer problems in BranchProbabilityInfo" 2016-07-15 14:31:16 +00:00
CallGraph.h [ADT] NFC: Generalize GraphTraits requirement of "NodeType *" in interfaces to "NodeRef", and migrate SCCIterator.h to use NodeRef 2016-08-01 22:32:20 +00:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h
CFG.h
CFGPrinter.h
CFLAndersAliasAnalysis.h [CFLAA] Remove modref queries from CFLAA. 2016-08-01 18:47:28 +00:00
CFLSteensAliasAnalysis.h [CFLAA] Remove modref queries from CFLAA. 2016-08-01 18:47:28 +00:00
CGSCCPassManager.h
CodeMetrics.h Pass EphValues by const-ref as it is not modified in the callee 2016-08-03 19:13:50 +00:00
ConstantFolding.h [ConstantFolding] Remove an unused ConstantFoldInstOperands overload 2016-07-29 03:27:33 +00:00
DemandedBits.h
DependenceAnalysis.h
DivergenceAnalysis.h
DominanceFrontier.h
DominanceFrontierImpl.h
DomPrinter.h
DOTGraphTraitsPass.h
EHPersonalities.h
GlobalsModRef.h
IndirectCallPromotionAnalysis.h Refactor indirect call promotion profitability analysis (NFC) 2016-07-12 21:13:44 +00:00
IndirectCallSiteVisitor.h Refactor indirect call promotion profitability analysis (NFC) 2016-07-12 21:13:44 +00:00
InlineCost.h Avoid using a raw AssumptionCacheTracker in various inliner functions. 2016-07-23 04:22:50 +00:00
InstructionSimplify.h [InstSimplify] Cast folding can be made more generic 2016-07-26 17:58:05 +00:00
Interval.h
IntervalIterator.h
IntervalPartition.h
IteratedDominanceFrontier.h
IVUsers.h [PM] Convert IVUsers analysis to new pass manager. 2016-07-16 22:51:33 +00:00
LazyBlockFrequencyInfo.h [BPI] Add new LazyBPI analysis 2016-07-28 23:31:12 +00:00
LazyBranchProbabilityInfo.h [BPI] Add new LazyBPI analysis 2016-07-28 23:31:12 +00:00
LazyCallGraph.h
LazyValueInfo.h
Lint.h
Loads.h Revert "InstCombine rule to fold truncs whose value is available" 2016-07-08 22:15:08 +00:00
LoopAccessAnalysis.h [OptDiag,LV] Add hotness attribute to analysis remarks 2016-07-20 21:44:26 +00:00
LoopInfo.h Removed unusued template function declaration that has no definition - fixes MSVC warning. 2016-07-27 10:11:05 +00:00
LoopInfoImpl.h add a verbose mode to Loop->print() to print all the basic blocks of a loop 2016-07-27 05:02:17 +00:00
LoopIterator.h
LoopPass.h
LoopPassManager.h
LoopUnrollAnalyzer.h
MemoryBuiltins.h
MemoryDependenceAnalysis.h
MemoryLocation.h
ModuleSummaryAnalysis.h
ObjCARCAliasAnalysis.h
ObjCARCAnalysisUtils.h
ObjCARCInstKind.h
OptimizationDiagnosticInfo.h [LoopDataPrefetch] Include hotness of region in opt remark 2016-07-22 22:53:17 +00:00
OrderedBasicBlock.h
Passes.h
PHITransAddr.h
PostDominators.h
ProfileSummaryInfo.h
PtrUseVisitor.h
RegionInfo.h [RegionInfo] Some cleanups 2016-07-19 17:50:30 +00:00
RegionInfoImpl.h Fix the build for libstdc++ 4.7 2016-07-27 18:25:12 +00:00
RegionIterator.h
RegionPass.h
RegionPrinter.h
ScalarEvolution.h Revert r276136 "Use ValueOffsetPair to enhance value reuse during SCEV expansion." 2016-07-26 23:25:13 +00:00
ScalarEvolutionAliasAnalysis.h
ScalarEvolutionExpander.h Revert r276136 "Use ValueOffsetPair to enhance value reuse during SCEV expansion." 2016-07-26 23:25:13 +00:00
ScalarEvolutionExpressions.h
ScalarEvolutionNormalization.h
ScopedNoAliasAA.h
SparsePropagation.h
TargetFolder.h [ConstnatFolding] Teach the folder how to fold ConstantVector 2016-07-29 03:27:26 +00:00
TargetLibraryInfo.def Recommitting r275284: add support to inline __builtin_mempcpy 2016-07-29 18:23:18 +00:00
TargetLibraryInfo.h Recommitting r275284: add support to inline __builtin_mempcpy 2016-07-29 18:23:18 +00:00
TargetTransformInfo.h LoadStoreVectorizer: Remove TargetBaseAlign. Keep alignment for stack adjustments. 2016-08-04 16:38:44 +00:00
TargetTransformInfoImpl.h LoadStoreVectorizer: Remove TargetBaseAlign. Keep alignment for stack adjustments. 2016-08-04 16:38:44 +00:00
Trace.h
TypeBasedAliasAnalysis.h
TypeMetadataUtils.h
ValueTracking.h
VectorUtils.h