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

..12-Mar-20154 KiB

AliasAnalysis.cpp12-Mar-201520.3 KiB

AliasAnalysisCounter.cpp12-Mar-20156.2 KiB

AliasAnalysisEvaluator.cpp12-Mar-201513.6 KiB

AliasDebugger.cpp12-Mar-20154.8 KiB

AliasSetTracker.cpp12-Mar-201521.7 KiB

Analysis.cpp12-Mar-20154 KiB

Android.mk12-Mar-20151.9 KiB

BasicAliasAnalysis.cpp12-Mar-201555 KiB

BlockFrequencyInfo.cpp12-Mar-20155.5 KiB

BlockFrequencyInfoImpl.cpp12-Mar-201522.6 KiB

BranchProbabilityInfo.cpp12-Mar-201521.1 KiB

CaptureTracking.cpp12-Mar-20156.8 KiB

CFG.cpp12-Mar-20158.5 KiB

CFGPrinter.cpp12-Mar-20155 KiB

CGSCCPassManager.cpp12-Mar-20155.7 KiB

CMakeLists.txt12-Mar-20151.3 KiB

CodeMetrics.cpp12-Mar-20153.7 KiB

ConstantFolding.cpp12-Mar-201566.9 KiB

CostModel.cpp12-Mar-201517.7 KiB

Delinearization.cpp12-Mar-20154.9 KiB

DependenceAnalysis.cpp12-Mar-2015143.9 KiB

DominanceFrontier.cpp12-Mar-20154.4 KiB

DomPrinter.cpp12-Mar-20157.9 KiB

InstCount.cpp12-Mar-20152.7 KiB

InstructionSimplify.cpp12-Mar-2015123.3 KiB

Interval.cpp12-Mar-20152 KiB

IntervalPartition.cpp12-Mar-20154.2 KiB

IPA/12-Mar-20154 KiB

IVUsers.cpp12-Mar-201512.9 KiB

JumpInstrTableInfo.cpp12-Mar-20151.3 KiB

LazyCallGraph.cpp12-Mar-201526.1 KiB

LazyValueInfo.cpp12-Mar-201538.8 KiB

LibCallAliasAnalysis.cpp12-Mar-20155.2 KiB

LibCallSemantics.cpp12-Mar-20152.1 KiB

Lint.cpp12-Mar-201527.3 KiB

LLVMBuild.txt12-Mar-2015742

Loads.cpp12-Mar-20158.6 KiB

LoopInfo.cpp12-Mar-201525 KiB

LoopPass.cpp12-Mar-201511.9 KiB

Makefile12-Mar-2015441

MemDepPrinter.cpp12-Mar-20156.4 KiB

MemoryBuiltins.cpp12-Mar-201528.6 KiB

MemoryDependenceAnalysis.cpp12-Mar-201562.5 KiB

ModuleDebugInfoPrinter.cpp12-Mar-20152.3 KiB

NoAliasAnalysis.cpp12-Mar-20153.4 KiB

PHITransAddr.cpp12-Mar-201516 KiB

PostDominators.cpp12-Mar-20151.5 KiB

PtrUseVisitor.cpp12-Mar-20151,018

README.txt12-Mar-20151,006

RegionInfo.cpp12-Mar-201523.5 KiB

RegionPass.cpp12-Mar-20158.4 KiB

RegionPrinter.cpp12-Mar-20156.6 KiB

ScalarEvolution.cpp12-Mar-2015310.5 KiB

ScalarEvolutionAliasAnalysis.cpp12-Mar-20156.8 KiB

ScalarEvolutionExpander.cpp12-Mar-201573.1 KiB

ScalarEvolutionNormalization.cpp12-Mar-201510.1 KiB

SparsePropagation.cpp12-Mar-201511.9 KiB

TargetTransformInfo.cpp12-Mar-201520.4 KiB

Trace.cpp12-Mar-20151.7 KiB

TypeBasedAliasAnalysis.cpp12-Mar-201521.6 KiB

ValueTracking.cpp12-Mar-201578.9 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