Name | Date | Size | |
---|---|---|---|
.. | 11-Jun-2018 | 4 KiB | |
AliasAnalysis.cpp | 11-Jun-2018 | 25.7 KiB | |
AliasAnalysisEvaluator.cpp | 11-Jun-2018 | 13.3 KiB | |
AliasAnalysisSummary.cpp | 11-Jun-2018 | 3.6 KiB | |
AliasAnalysisSummary.h | 11-Jun-2018 | 7.7 KiB | |
AliasSetTracker.cpp | 11-Jun-2018 | 23 KiB | |
Analysis.cpp | 11-Jun-2018 | 4.6 KiB | |
Android.bp | 11-Jun-2018 | 124 | |
AssumptionCache.cpp | 11-Jun-2018 | 4.9 KiB | |
BasicAliasAnalysis.cpp | 11-Jun-2018 | 69.2 KiB | |
BlockFrequencyInfo.cpp | 11-Jun-2018 | 9.1 KiB | |
BlockFrequencyInfoImpl.cpp | 11-Jun-2018 | 26.1 KiB | |
BranchProbabilityInfo.cpp | 11-Jun-2018 | 23.9 KiB | |
CallGraph.cpp | 11-Jun-2018 | 11.3 KiB | |
CallGraphSCCPass.cpp | 11-Jun-2018 | 23.2 KiB | |
CallPrinter.cpp | 11-Jun-2018 | 3 KiB | |
CaptureTracking.cpp | 11-Jun-2018 | 13.6 KiB | |
CFG.cpp | 11-Jun-2018 | 8.4 KiB | |
CFGPrinter.cpp | 11-Jun-2018 | 4.9 KiB | |
CFLAndersAliasAnalysis.cpp | 11-Jun-2018 | 2.2 KiB | |
CFLGraph.h | 11-Jun-2018 | 17.5 KiB | |
CFLSteensAliasAnalysis.cpp | 11-Jun-2018 | 16.2 KiB | |
CGSCCPassManager.cpp | 11-Jun-2018 | 986 | |
CMakeLists.txt | 11-Jun-2018 | 1.9 KiB | |
CodeMetrics.cpp | 11-Jun-2018 | 6.3 KiB | |
ConstantFolding.cpp | 11-Jun-2018 | 71.2 KiB | |
CostModel.cpp | 11-Jun-2018 | 17.6 KiB | |
Delinearization.cpp | 11-Jun-2018 | 4.8 KiB | |
DemandedBits.cpp | 11-Jun-2018 | 13.9 KiB | |
DependenceAnalysis.cpp | 11-Jun-2018 | 143.8 KiB | |
DivergenceAnalysis.cpp | 11-Jun-2018 | 12 KiB | |
DominanceFrontier.cpp | 11-Jun-2018 | 2.4 KiB | |
DomPrinter.cpp | 11-Jun-2018 | 9.2 KiB | |
EHPersonalities.cpp | 11-Jun-2018 | 4.6 KiB | |
GlobalsModRef.cpp | 11-Jun-2018 | 38.3 KiB | |
IndirectCallPromotionAnalysis.cpp | 11-Jun-2018 | 4.1 KiB | |
InlineCost.cpp | 11-Jun-2018 | 57.6 KiB | |
InstCount.cpp | 11-Jun-2018 | 2.7 KiB | |
InstructionSimplify.cpp | 11-Jun-2018 | 163.7 KiB | |
Interval.cpp | 11-Jun-2018 | 1.8 KiB | |
IntervalPartition.cpp | 11-Jun-2018 | 4.2 KiB | |
IteratedDominanceFrontier.cpp | 11-Jun-2018 | 3.5 KiB | |
IVUsers.cpp | 11-Jun-2018 | 13.5 KiB | |
LazyBlockFrequencyInfo.cpp | 11-Jun-2018 | 2.5 KiB | |
LazyCallGraph.cpp | 11-Jun-2018 | 58.6 KiB | |
LazyValueInfo.cpp | 11-Jun-2018 | 60.7 KiB | |
Lint.cpp | 11-Jun-2018 | 27.5 KiB | |
LLVMBuild.txt | 11-Jun-2018 | 716 | |
Loads.cpp | 11-Jun-2018 | 15.7 KiB | |
LoopAccessAnalysis.cpp | 11-Jun-2018 | 76.6 KiB | |
LoopInfo.cpp | 11-Jun-2018 | 24.1 KiB | |
LoopPass.cpp | 11-Jun-2018 | 11.4 KiB | |
LoopPassManager.cpp | 11-Jun-2018 | 1.3 KiB | |
LoopUnrollAnalyzer.cpp | 11-Jun-2018 | 7 KiB | |
MemDepPrinter.cpp | 11-Jun-2018 | 5 KiB | |
MemDerefPrinter.cpp | 11-Jun-2018 | 2.5 KiB | |
MemoryBuiltins.cpp | 11-Jun-2018 | 31.5 KiB | |
MemoryDependenceAnalysis.cpp | 11-Jun-2018 | 66.6 KiB | |
MemoryLocation.cpp | 11-Jun-2018 | 5.5 KiB | |
ModuleDebugInfoPrinter.cpp | 11-Jun-2018 | 3.9 KiB | |
ModuleSummaryAnalysis.cpp | 11-Jun-2018 | 8.4 KiB | |
ObjCARCAliasAnalysis.cpp | 11-Jun-2018 | 5.6 KiB | |
ObjCARCAnalysisUtils.cpp | 11-Jun-2018 | 1.1 KiB | |
ObjCARCInstKind.cpp | 11-Jun-2018 | 23.8 KiB | |
OrderedBasicBlock.cpp | 11-Jun-2018 | 3.5 KiB | |
PHITransAddr.cpp | 11-Jun-2018 | 16.2 KiB | |
PostDominators.cpp | 11-Jun-2018 | 2.1 KiB | |
ProfileSummaryInfo.cpp | 11-Jun-2018 | 6.2 KiB | |
PtrUseVisitor.cpp | 11-Jun-2018 | 1 KiB | |
README.txt | 11-Jun-2018 | 1,006 | |
RegionInfo.cpp | 11-Jun-2018 | 6 KiB | |
RegionPass.cpp | 11-Jun-2018 | 8.6 KiB | |
RegionPrinter.cpp | 11-Jun-2018 | 8.6 KiB | |
ScalarEvolution.cpp | 11-Jun-2018 | 385.6 KiB | |
ScalarEvolutionAliasAnalysis.cpp | 11-Jun-2018 | 5.6 KiB | |
ScalarEvolutionExpander.cpp | 11-Jun-2018 | 86 KiB | |
ScalarEvolutionNormalization.cpp | 11-Jun-2018 | 10.1 KiB | |
ScopedNoAliasAA.cpp | 11-Jun-2018 | 7.1 KiB | |
SparsePropagation.cpp | 11-Jun-2018 | 11.8 KiB | |
StratifiedSets.h | 11-Jun-2018 | 19 KiB | |
TargetLibraryInfo.cpp | 11-Jun-2018 | 41.8 KiB | |
TargetTransformInfo.cpp | 11-Jun-2018 | 16.7 KiB | |
Trace.cpp | 11-Jun-2018 | 1.7 KiB | |
TypeBasedAliasAnalysis.cpp | 11-Jun-2018 | 20.9 KiB | |
TypeMetadataUtils.cpp | 11-Jun-2018 | 4.2 KiB | |
ValueTracking.cpp | 11-Jun-2018 | 157.8 KiB | |
VectorUtils.cpp | 11-Jun-2018 | 16.5 KiB |
README.txt
1Analysis Opportunities: 2 3//===---------------------------------------------------------------------===// 4 5In test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll, the 6ScalarEvolution expression for %r is this: 7 8 {1,+,3,+,2}<loop> 9 10Outside the loop, this could be evaluated simply as (%n * %n), however 11ScalarEvolution currently evaluates it as 12 13 (-2 + (2 * (trunc i65 (((zext i64 (-2 + %n) to i65) * (zext i64 (-1 + %n) to i65)) /u 2) to i64)) + (3 * %n)) 14 15In addition to being much more complicated, it involves i65 arithmetic, 16which is very inefficient when expanded into code. 17 18//===---------------------------------------------------------------------===// 19 20In formatValue in test/CodeGen/X86/lsr-delayed-fold.ll, 21 22ScalarEvolution is forming this expression: 23 24((trunc i64 (-1 * %arg5) to i32) + (trunc i64 %arg5 to i32) + (-1 * (trunc i64 undef to i32))) 25 26This could be folded to 27 28(-1 * (trunc i64 undef to i32)) 29 30//===---------------------------------------------------------------------===// 31