• Home
  • History
  • Annotate
  • only in /external/llvm/lib/Analysis/
NameDateSize

..03-Jan-20144 KiB

AliasAnalysis.cpp03-Jan-201419.4 KiB

AliasAnalysisCounter.cpp03-Jan-20146.1 KiB

AliasAnalysisEvaluator.cpp03-Jan-201413.6 KiB

AliasDebugger.cpp03-Jan-20144.8 KiB

AliasSetTracker.cpp03-Jan-201421.8 KiB

Analysis.cpp03-Jan-20143.9 KiB

Android.mk03-Jan-20142 KiB

BasicAliasAnalysis.cpp03-Jan-201451 KiB

BlockFrequencyInfo.cpp03-Jan-20141.8 KiB

BranchProbabilityInfo.cpp03-Jan-201420.5 KiB

CaptureTracking.cpp03-Jan-20146.6 KiB

CFG.cpp03-Jan-20148 KiB

CFGPrinter.cpp03-Jan-20144.9 KiB

CMakeLists.txt03-Jan-20141.4 KiB

CodeMetrics.cpp03-Jan-20143.7 KiB

ConstantFolding.cpp03-Jan-201461.6 KiB

CostModel.cpp03-Jan-20148.2 KiB

DependenceAnalysis.cpp03-Jan-2014140.1 KiB

DominanceFrontier.cpp03-Jan-20144.4 KiB

DomPrinter.cpp03-Jan-20146.7 KiB

InstCount.cpp03-Jan-20142.7 KiB

InstructionSimplify.cpp03-Jan-2014121.7 KiB

Interval.cpp03-Jan-20142 KiB

IntervalPartition.cpp03-Jan-20144.2 KiB

IPA/03-Jan-20144 KiB

IVUsers.cpp03-Jan-201412.1 KiB

LazyValueInfo.cpp03-Jan-201438.7 KiB

LibCallAliasAnalysis.cpp03-Jan-20145.2 KiB

LibCallSemantics.cpp03-Jan-20142.1 KiB

Lint.cpp03-Jan-201426.5 KiB

LLVMBuild.txt03-Jan-2014742

Loads.cpp03-Jan-20148.6 KiB

LoopInfo.cpp03-Jan-201425.7 KiB

LoopPass.cpp03-Jan-201411.2 KiB

Makefile03-Jan-2014441

MemDepPrinter.cpp03-Jan-20146.4 KiB

MemoryBuiltins.cpp03-Jan-201427.5 KiB

MemoryDependenceAnalysis.cpp03-Jan-201462.2 KiB

ModuleDebugInfoPrinter.cpp03-Jan-20142.6 KiB

NoAliasAnalysis.cpp03-Jan-20143.1 KiB

NOTICE03-Jan-20143.1 KiB

PathNumbering.cpp03-Jan-201416.2 KiB

PathProfileInfo.cpp03-Jan-201414 KiB

PathProfileVerifier.cpp03-Jan-20146.9 KiB

PHITransAddr.cpp03-Jan-201416.1 KiB

PostDominators.cpp03-Jan-20141.5 KiB

ProfileDataLoader.cpp03-Jan-20145.4 KiB

ProfileDataLoaderPass.cpp03-Jan-20147.1 KiB

ProfileEstimatorPass.cpp03-Jan-201415.8 KiB

ProfileInfo.cpp03-Jan-201432.5 KiB

ProfileInfoLoader.cpp03-Jan-20144.7 KiB

ProfileInfoLoaderPass.cpp03-Jan-20149.3 KiB

ProfileVerifierPass.cpp03-Jan-201413.4 KiB

PtrUseVisitor.cpp03-Jan-20141.1 KiB

README.txt03-Jan-20141,006

RegionInfo.cpp03-Jan-201423.1 KiB

RegionPass.cpp03-Jan-20148.5 KiB

RegionPrinter.cpp03-Jan-20146.6 KiB

ScalarEvolution.cpp03-Jan-2014280.5 KiB

ScalarEvolutionAliasAnalysis.cpp03-Jan-20146.7 KiB

ScalarEvolutionExpander.cpp03-Jan-201469.3 KiB

ScalarEvolutionNormalization.cpp03-Jan-20148.5 KiB

SparsePropagation.cpp03-Jan-201412 KiB

TargetTransformInfo.cpp03-Jan-201418.8 KiB

Trace.cpp03-Jan-20141.7 KiB

TypeBasedAliasAnalysis.cpp03-Jan-201417.2 KiB

ValueTracking.cpp03-Jan-201478.8 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