• Home
  • History
  • Annotate
  • only in this directory
NameDateSize

..24-Oct-201420

AliasAnalysis.cppH A D24-Oct-201418.8 KiB

AliasAnalysisCounter.cppH A D24-Oct-20146.1 KiB

AliasAnalysisEvaluator.cppH A D24-Oct-201410.8 KiB

AliasDebugger.cppH A D24-Oct-20144.8 KiB

AliasSetTracker.cppH A D24-Oct-201421.8 KiB

Analysis.cppH A D24-Oct-20143.8 KiB

BasicAliasAnalysis.cppH A D24-Oct-201449.7 KiB

BlockFrequencyInfo.cppH A D24-Oct-20142.1 KiB

BranchProbabilityInfo.cppH A D24-Oct-201417.5 KiB

CaptureTracking.cppH A D24-Oct-20146.5 KiB

CFGPrinter.cppH A D24-Oct-20144.9 KiB

CMakeLists.txtH A D24-Oct-20141.4 KiB

CodeMetrics.cppH A D24-Oct-20147.6 KiB

ConstantFolding.cppH A D24-Oct-201458.3 KiB

DbgInfoPrinter.cppH A D24-Oct-20146.3 KiB

DominanceFrontier.cppH A D24-Oct-20144.4 KiB

DomPrinter.cppH A D24-Oct-20146.7 KiB

InlineCost.cppH A D24-Oct-201438.9 KiB

InstCount.cppH A D24-Oct-20142.7 KiB

InstructionSimplify.cppH A D24-Oct-2014112 KiB

Interval.cppH A D24-Oct-20142 KiB

IntervalPartition.cppH A D24-Oct-20144.2 KiB

IPA/H24-Oct-201410

IVUsers.cppH A D24-Oct-201412.1 KiB

LazyValueInfo.cppH A D24-Oct-201438.5 KiB

LibCallAliasAnalysis.cppH A D24-Oct-20145.2 KiB

LibCallSemantics.cppH A D24-Oct-20142.1 KiB

Lint.cppH A D24-Oct-201426.6 KiB

LLVMBuild.txtH A D24-Oct-2014742

Loads.cppH A D24-Oct-20149.9 KiB

LoopDependenceAnalysis.cppH A D24-Oct-201412.9 KiB

LoopInfo.cppH A D24-Oct-201422 KiB

LoopPass.cppH A D24-Oct-201411 KiB

MakefileH A D24-Oct-2014441

MemDepPrinter.cppH A D24-Oct-20146.3 KiB

MemoryBuiltins.cppH A D24-Oct-201427 KiB

MemoryDependenceAnalysis.cppH A D24-Oct-201461.5 KiB

ModuleDebugInfoPrinter.cppH A D24-Oct-20142.6 KiB

NoAliasAnalysis.cppH A D24-Oct-20143.1 KiB

PathNumbering.cppH A D24-Oct-201416.1 KiB

PathProfileInfo.cppH A D24-Oct-201413.9 KiB

PathProfileVerifier.cppH A D24-Oct-20146.9 KiB

PHITransAddr.cppH A D24-Oct-201416.1 KiB

PostDominators.cppH A D24-Oct-20141.5 KiB

ProfileDataLoader.cppH A D24-Oct-20145.7 KiB

ProfileDataLoaderPass.cppH A D24-Oct-20147.1 KiB

ProfileEstimatorPass.cppH A D24-Oct-201415.8 KiB

ProfileInfo.cppH A D24-Oct-201432.5 KiB

ProfileInfoLoader.cppH A D24-Oct-20144.7 KiB

ProfileInfoLoaderPass.cppH A D24-Oct-20149.3 KiB

ProfileVerifierPass.cppH A D24-Oct-201413.4 KiB

README.txtH A D24-Oct-20141,006

RegionInfo.cppH A D24-Oct-201422.3 KiB

RegionPass.cppH A D24-Oct-20148.5 KiB

RegionPrinter.cppH A D24-Oct-20146.6 KiB

ScalarEvolution.cppH A D24-Oct-2014273.2 KiB

ScalarEvolutionAliasAnalysis.cppH A D24-Oct-20146.7 KiB

ScalarEvolutionExpander.cppH A D24-Oct-201469.4 KiB

ScalarEvolutionNormalization.cppH A D24-Oct-20148.5 KiB

SparsePropagation.cppH A D24-Oct-201412 KiB

Trace.cppH A D24-Oct-20141.7 KiB

TypeBasedAliasAnalysis.cppH A D24-Oct-201410.2 KiB

ValueTracking.cppH A D24-Oct-201474.4 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