Home | History | Annotate | only in /external/llvm/lib/Analysis
Up to higher level directory
NameDateSize
AliasAnalysis.cpp21-Aug-201825.7K
AliasAnalysisEvaluator.cpp21-Aug-201813.3K
AliasAnalysisSummary.cpp21-Aug-20183.6K
AliasAnalysisSummary.h21-Aug-20187.7K
AliasSetTracker.cpp21-Aug-201823K
Analysis.cpp21-Aug-20184.6K
Android.bp21-Aug-2018124
AssumptionCache.cpp21-Aug-20184.9K
BasicAliasAnalysis.cpp21-Aug-201869.2K
BlockFrequencyInfo.cpp21-Aug-20189.1K
BlockFrequencyInfoImpl.cpp21-Aug-201826.1K
BranchProbabilityInfo.cpp21-Aug-201823.9K
CallGraph.cpp21-Aug-201811.3K
CallGraphSCCPass.cpp21-Aug-201823.2K
CallPrinter.cpp21-Aug-20183K
CaptureTracking.cpp21-Aug-201813.6K
CFG.cpp21-Aug-20188.4K
CFGPrinter.cpp21-Aug-20184.9K
CFLAndersAliasAnalysis.cpp21-Aug-20182.2K
CFLGraph.h21-Aug-201817.5K
CFLSteensAliasAnalysis.cpp21-Aug-201816.2K
CGSCCPassManager.cpp21-Aug-2018986
CMakeLists.txt21-Aug-20181.9K
CodeMetrics.cpp21-Aug-20186.3K
ConstantFolding.cpp21-Aug-201871.2K
CostModel.cpp21-Aug-201817.6K
Delinearization.cpp21-Aug-20184.8K
DemandedBits.cpp21-Aug-201813.9K
DependenceAnalysis.cpp21-Aug-2018143.8K
DivergenceAnalysis.cpp21-Aug-201812K
DominanceFrontier.cpp21-Aug-20182.4K
DomPrinter.cpp21-Aug-20189.2K
EHPersonalities.cpp21-Aug-20184.6K
GlobalsModRef.cpp21-Aug-201838.3K
IndirectCallPromotionAnalysis.cpp21-Aug-20184.1K
InlineCost.cpp21-Aug-201857.6K
InstCount.cpp21-Aug-20182.7K
InstructionSimplify.cpp21-Aug-2018163.7K
Interval.cpp21-Aug-20181.8K
IntervalPartition.cpp21-Aug-20184.2K
IteratedDominanceFrontier.cpp21-Aug-20183.5K
IVUsers.cpp21-Aug-201813.5K
LazyBlockFrequencyInfo.cpp21-Aug-20182.5K
LazyCallGraph.cpp21-Aug-201858.6K
LazyValueInfo.cpp21-Aug-201860.7K
Lint.cpp21-Aug-201827.5K
LLVMBuild.txt21-Aug-2018716
Loads.cpp21-Aug-201815.7K
LoopAccessAnalysis.cpp21-Aug-201876.6K
LoopInfo.cpp21-Aug-201824.1K
LoopPass.cpp21-Aug-201811.4K
LoopPassManager.cpp21-Aug-20181.3K
LoopUnrollAnalyzer.cpp21-Aug-20187K
MemDepPrinter.cpp21-Aug-20185K
MemDerefPrinter.cpp21-Aug-20182.5K
MemoryBuiltins.cpp21-Aug-201831.5K
MemoryDependenceAnalysis.cpp21-Aug-201866.6K
MemoryLocation.cpp21-Aug-20185.5K
ModuleDebugInfoPrinter.cpp21-Aug-20183.9K
ModuleSummaryAnalysis.cpp21-Aug-20188.4K
ObjCARCAliasAnalysis.cpp21-Aug-20185.6K
ObjCARCAnalysisUtils.cpp21-Aug-20181.1K
ObjCARCInstKind.cpp21-Aug-201823.8K
OrderedBasicBlock.cpp21-Aug-20183.5K
PHITransAddr.cpp21-Aug-201816.2K
PostDominators.cpp21-Aug-20182.1K
ProfileSummaryInfo.cpp21-Aug-20186.2K
PtrUseVisitor.cpp21-Aug-20181K
README.txt21-Aug-20181,006
RegionInfo.cpp21-Aug-20186K
RegionPass.cpp21-Aug-20188.6K
RegionPrinter.cpp21-Aug-20188.6K
ScalarEvolution.cpp21-Aug-2018385.6K
ScalarEvolutionAliasAnalysis.cpp21-Aug-20185.6K
ScalarEvolutionExpander.cpp21-Aug-201886K
ScalarEvolutionNormalization.cpp21-Aug-201810.1K
ScopedNoAliasAA.cpp21-Aug-20187.1K
SparsePropagation.cpp21-Aug-201811.8K
StratifiedSets.h21-Aug-201819K
TargetLibraryInfo.cpp21-Aug-201841.8K
TargetTransformInfo.cpp21-Aug-201816.7K
Trace.cpp21-Aug-20181.7K
TypeBasedAliasAnalysis.cpp21-Aug-201820.9K
TypeMetadataUtils.cpp21-Aug-20184.2K
ValueTracking.cpp21-Aug-2018157.8K
VectorUtils.cpp21-Aug-201816.5K

README.txt

      1 Analysis Opportunities:
      2 
      3 //===---------------------------------------------------------------------===//
      4 
      5 In test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll, the
      6 ScalarEvolution expression for %r is this:
      7 
      8   {1,+,3,+,2}<loop>
      9 
     10 Outside the loop, this could be evaluated simply as (%n * %n), however
     11 ScalarEvolution 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 
     15 In addition to being much more complicated, it involves i65 arithmetic,
     16 which is very inefficient when expanded into code.
     17 
     18 //===---------------------------------------------------------------------===//
     19 
     20 In formatValue in test/CodeGen/X86/lsr-delayed-fold.ll,
     21 
     22 ScalarEvolution is forming this expression:
     23 
     24 ((trunc i64 (-1 * %arg5) to i32) + (trunc i64 %arg5 to i32) + (-1 * (trunc i64 undef to i32)))
     25 
     26 This could be folded to
     27 
     28 (-1 * (trunc i64 undef to i32))
     29 
     30 //===---------------------------------------------------------------------===//
     31