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

..07-Jan-20164 KiB

AliasAnalysis.cpp07-Jan-201620.3 KiB

AliasAnalysisCounter.cpp07-Jan-20166.2 KiB

AliasAnalysisEvaluator.cpp07-Jan-201613.6 KiB

AliasDebugger.cpp07-Jan-20164.8 KiB

AliasSetTracker.cpp07-Jan-201622.1 KiB

Analysis.cpp07-Jan-20164.1 KiB

Android.mk07-Jan-20162.1 KiB

AssumptionCache.cpp07-Jan-20164.9 KiB

BasicAliasAnalysis.cpp07-Jan-201663.3 KiB

BlockFrequencyInfo.cpp07-Jan-20165.5 KiB

BlockFrequencyInfoImpl.cpp07-Jan-201623.5 KiB

BranchProbabilityInfo.cpp07-Jan-201621.5 KiB

CaptureTracking.cpp07-Jan-201610.1 KiB

CFG.cpp07-Jan-20168.5 KiB

CFGPrinter.cpp07-Jan-20164.9 KiB

CFLAliasAnalysis.cpp07-Jan-201639.1 KiB

CGSCCPassManager.cpp07-Jan-20162.5 KiB

CMakeLists.txt07-Jan-20161.5 KiB

CodeMetrics.cpp07-Jan-20166.3 KiB

ConstantFolding.cpp07-Jan-201667.2 KiB

CostModel.cpp07-Jan-201617.7 KiB

Delinearization.cpp07-Jan-20164.9 KiB

DependenceAnalysis.cpp07-Jan-2016145.2 KiB

DivergenceAnalysis.cpp07-Jan-201611.9 KiB

DominanceFrontier.cpp07-Jan-20161.6 KiB

DomPrinter.cpp07-Jan-20167.9 KiB

InstCount.cpp07-Jan-20162.7 KiB

InstructionSimplify.cpp07-Jan-2016146.1 KiB

Interval.cpp07-Jan-20162 KiB

IntervalPartition.cpp07-Jan-20164.2 KiB

IPA/07-Jan-20164 KiB

IVUsers.cpp07-Jan-201613 KiB

LazyCallGraph.cpp07-Jan-201626.1 KiB

LazyValueInfo.cpp07-Jan-201644.1 KiB

LibCallAliasAnalysis.cpp07-Jan-20165.4 KiB

LibCallSemantics.cpp07-Jan-20163.4 KiB

Lint.cpp07-Jan-201635.3 KiB

LLVMBuild.txt07-Jan-2016735

Loads.cpp07-Jan-20169.8 KiB

LoopAccessAnalysis.cpp07-Jan-201650.4 KiB

LoopInfo.cpp07-Jan-201625.6 KiB

LoopPass.cpp07-Jan-201612.4 KiB

Makefile07-Jan-2016441

MemDepPrinter.cpp07-Jan-20165.2 KiB

MemDerefPrinter.cpp07-Jan-20162.1 KiB

MemoryBuiltins.cpp07-Jan-201628 KiB

MemoryDependenceAnalysis.cpp07-Jan-201668.5 KiB

ModuleDebugInfoPrinter.cpp07-Jan-20163.9 KiB

NoAliasAnalysis.cpp07-Jan-20163.4 KiB

PHITransAddr.cpp07-Jan-201615.9 KiB

PostDominators.cpp07-Jan-20161.5 KiB

PtrUseVisitor.cpp07-Jan-20161 KiB

README.txt07-Jan-20161,006

RegionInfo.cpp07-Jan-20164.7 KiB

RegionPass.cpp07-Jan-20168.6 KiB

RegionPrinter.cpp07-Jan-20166.8 KiB

ScalarEvolution.cpp07-Jan-2016324.9 KiB

ScalarEvolutionAliasAnalysis.cpp07-Jan-20166.8 KiB

ScalarEvolutionExpander.cpp07-Jan-201675.9 KiB

ScalarEvolutionNormalization.cpp07-Jan-201610.1 KiB

ScopedNoAliasAA.cpp07-Jan-20168.7 KiB

SparsePropagation.cpp07-Jan-201611.9 KiB

StratifiedSets.h07-Jan-201622 KiB

TargetLibraryInfo.cpp07-Jan-201620.5 KiB

TargetTransformInfo.cpp07-Jan-201610.9 KiB

Trace.cpp07-Jan-20161.7 KiB

TypeBasedAliasAnalysis.cpp07-Jan-201622.7 KiB

ValueTracking.cpp07-Jan-2016118.6 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