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

..11-Jul-20144 KiB

AliasAnalysis.cpp11-Jul-201419.4 KiB

AliasAnalysisCounter.cpp11-Jul-20146.1 KiB

AliasAnalysisEvaluator.cpp11-Jul-201413.6 KiB

AliasDebugger.cpp11-Jul-20144.8 KiB

AliasSetTracker.cpp11-Jul-201421.8 KiB

Analysis.cpp11-Jul-20143.9 KiB

Android.mk11-Jul-20142 KiB

BasicAliasAnalysis.cpp11-Jul-201451 KiB

BlockFrequencyInfo.cpp11-Jul-20141.8 KiB

BranchProbabilityInfo.cpp11-Jul-201420.5 KiB

CaptureTracking.cpp11-Jul-20146.6 KiB

CFG.cpp11-Jul-20148 KiB

CFGPrinter.cpp11-Jul-20144.9 KiB

CMakeLists.txt11-Jul-20141.4 KiB

CodeMetrics.cpp11-Jul-20143.7 KiB

ConstantFolding.cpp11-Jul-201461.6 KiB

CostModel.cpp11-Jul-20148.2 KiB

DependenceAnalysis.cpp11-Jul-2014140.1 KiB

DominanceFrontier.cpp11-Jul-20144.4 KiB

DomPrinter.cpp11-Jul-20146.7 KiB

InstCount.cpp11-Jul-20142.7 KiB

InstructionSimplify.cpp11-Jul-2014121.7 KiB

Interval.cpp11-Jul-20142 KiB

IntervalPartition.cpp11-Jul-20144.2 KiB

IPA/11-Jul-20144 KiB

IVUsers.cpp11-Jul-201412.1 KiB

LazyValueInfo.cpp11-Jul-201438.7 KiB

LibCallAliasAnalysis.cpp11-Jul-20145.2 KiB

LibCallSemantics.cpp11-Jul-20142.1 KiB

Lint.cpp11-Jul-201426.5 KiB

LLVMBuild.txt11-Jul-2014742

Loads.cpp11-Jul-20148.6 KiB

LoopInfo.cpp11-Jul-201425.7 KiB

LoopPass.cpp11-Jul-201411.2 KiB

Makefile11-Jul-2014441

MemDepPrinter.cpp11-Jul-20146.4 KiB

MemoryBuiltins.cpp11-Jul-201427.5 KiB

MemoryDependenceAnalysis.cpp11-Jul-201462.2 KiB

ModuleDebugInfoPrinter.cpp11-Jul-20142.6 KiB

NoAliasAnalysis.cpp11-Jul-20143.1 KiB

NOTICE11-Jul-20143.1 KiB

PathNumbering.cpp11-Jul-201416.2 KiB

PathProfileInfo.cpp11-Jul-201414 KiB

PathProfileVerifier.cpp11-Jul-20146.9 KiB

PHITransAddr.cpp11-Jul-201416.1 KiB

PostDominators.cpp11-Jul-20141.5 KiB

ProfileDataLoader.cpp11-Jul-20145.4 KiB

ProfileDataLoaderPass.cpp11-Jul-20147.1 KiB

ProfileEstimatorPass.cpp11-Jul-201415.8 KiB

ProfileInfo.cpp11-Jul-201432.5 KiB

ProfileInfoLoader.cpp11-Jul-20144.7 KiB

ProfileInfoLoaderPass.cpp11-Jul-20149.3 KiB

ProfileVerifierPass.cpp11-Jul-201413.4 KiB

PtrUseVisitor.cpp11-Jul-20141.1 KiB

README.txt11-Jul-20141,006

RegionInfo.cpp11-Jul-201423.1 KiB

RegionPass.cpp11-Jul-20148.5 KiB

RegionPrinter.cpp11-Jul-20146.6 KiB

ScalarEvolution.cpp11-Jul-2014280.5 KiB

ScalarEvolutionAliasAnalysis.cpp11-Jul-20146.7 KiB

ScalarEvolutionExpander.cpp11-Jul-201469.3 KiB

ScalarEvolutionNormalization.cpp11-Jul-20148.5 KiB

SparsePropagation.cpp11-Jul-201412 KiB

TargetTransformInfo.cpp11-Jul-201418.8 KiB

Trace.cpp11-Jul-20141.7 KiB

TypeBasedAliasAnalysis.cpp11-Jul-201417.2 KiB

ValueTracking.cpp11-Jul-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