• Home
  • History
  • Annotate
  • only in /external/swiftshader/third_party/LLVM/lib/Analysis/
NameDateSize

..10-Aug-20184 KiB

AliasAnalysis.cpp10-Aug-201815.2 KiB

AliasAnalysisCounter.cpp10-Aug-20186.2 KiB

AliasAnalysisEvaluator.cpp10-Aug-201810.9 KiB

AliasDebugger.cpp10-Aug-20184.8 KiB

AliasSetTracker.cpp10-Aug-201821.6 KiB

Analysis.cpp10-Aug-20183.7 KiB

BasicAliasAnalysis.cpp10-Aug-201847.7 KiB

BlockFrequencyInfo.cpp10-Aug-20182.1 KiB

BranchProbabilityInfo.cpp10-Aug-201814.7 KiB

CaptureTracking.cpp10-Aug-20186.1 KiB

CFGPrinter.cpp10-Aug-20184.9 KiB

ConstantFolding.cpp10-Aug-201854.9 KiB

DbgInfoPrinter.cpp10-Aug-20186.3 KiB

DebugInfo.cpp10-Aug-201832.6 KiB

DIBuilder.cpp10-Aug-201837.8 KiB

DominanceFrontier.cpp10-Aug-20184.3 KiB

DomPrinter.cpp10-Aug-20186.7 KiB

InlineCost.cpp10-Aug-201825.3 KiB

INSTALL.vcxproj.filters10-Aug-2018657

InstCount.cpp10-Aug-20182.7 KiB

InstructionSimplify.cpp10-Aug-201898 KiB

Interval.cpp10-Aug-20182 KiB

IntervalPartition.cpp10-Aug-20184.2 KiB

IPA/10-Aug-20184 KiB

IVUsers.cpp10-Aug-20189.5 KiB

LazyValueInfo.cpp10-Aug-201837.8 KiB

LibCallAliasAnalysis.cpp10-Aug-20185.2 KiB

LibCallSemantics.cpp10-Aug-20182.1 KiB

Lint.cpp10-Aug-201824.9 KiB

LLVMAnalysis.vcxproj10-Aug-201825.7 KiB

LLVMAnalysis.vcxproj.filters10-Aug-20182.8 KiB

Loads.cpp10-Aug-20189.4 KiB

LoopDependenceAnalysis.cpp10-Aug-201812.9 KiB

LoopInfo.cpp10-Aug-201825 KiB

LoopPass.cpp10-Aug-201811.4 KiB

Makefile10-Aug-2018441

MemDepPrinter.cpp10-Aug-20186.3 KiB

MemoryBuiltins.cpp10-Aug-20187.6 KiB

MemoryDependenceAnalysis.cpp10-Aug-201860.2 KiB

ModuleDebugInfoPrinter.cpp10-Aug-20182.6 KiB

NoAliasAnalysis.cpp10-Aug-20183.1 KiB

PACKAGE.vcxproj.filters10-Aug-2018657

PathNumbering.cpp10-Aug-201816.2 KiB

PathProfileInfo.cpp10-Aug-201813.9 KiB

PathProfileVerifier.cpp10-Aug-20186.9 KiB

PHITransAddr.cpp10-Aug-201816 KiB

PostDominators.cpp10-Aug-20181.5 KiB

ProfileEstimatorPass.cpp10-Aug-201815.8 KiB

ProfileInfo.cpp10-Aug-201832.9 KiB

ProfileInfoLoader.cpp10-Aug-20184.8 KiB

ProfileInfoLoaderPass.cpp10-Aug-20189.3 KiB

ProfileVerifierPass.cpp10-Aug-201813.4 KiB

README.txt10-Aug-20181,006

RegionInfo.cpp10-Aug-201822.7 KiB

RegionPass.cpp10-Aug-20188.5 KiB

RegionPrinter.cpp10-Aug-20186.7 KiB

ScalarEvolution.cpp10-Aug-2018266.2 KiB

ScalarEvolutionAliasAnalysis.cpp10-Aug-20186.7 KiB

ScalarEvolutionExpander.cpp10-Aug-201861.7 KiB

ScalarEvolutionNormalization.cpp10-Aug-20188.6 KiB

SparsePropagation.cpp10-Aug-201811.9 KiB

Trace.cpp10-Aug-20181.6 KiB

TypeBasedAliasAnalysis.cpp10-Aug-201810.2 KiB

ValueTracking.cpp10-Aug-201870.3 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