|  | Name |  | Date | Size | #Lines | LOC | 
|  | .. |  | - | - | 
|  | AliasAnalysis.cpp | D | 03-May-2024 | 33.8 KiB | 923 | 610 | 
|  | AliasAnalysisEvaluator.cpp | D | 03-May-2024 | 15.6 KiB | 436 | 382 | 
|  | AliasAnalysisSummary.cpp | D | 03-May-2024 | 3.5 KiB | 104 | 81 | 
|  | AliasAnalysisSummary.h | D | 03-May-2024 | 10.2 KiB | 266 | 148 | 
|  | AliasSetTracker.cpp | D | 03-May-2024 | 25.9 KiB | 778 | 553 | 
|  | Analysis.cpp | D | 03-May-2024 | 5.3 KiB | 139 | 113 | 
|  | AssumptionCache.cpp | D | 03-May-2024 | 9.9 KiB | 304 | 208 | 
|  | BasicAliasAnalysis.cpp | D | 03-May-2024 | 85.1 KiB | 2,103 | 1,199 | 
|  | BlockFrequencyInfo.cpp | D | 03-May-2024 | 12.3 KiB | 344 | 261 | 
|  | BlockFrequencyInfoImpl.cpp | D | 03-May-2024 | 28.1 KiB | 852 | 583 | 
|  | BranchProbabilityInfo.cpp | D | 03-May-2024 | 38.7 KiB | 1,084 | 750 | 
|  | CFG.cpp | D | 03-May-2024 | 10 KiB | 280 | 178 | 
|  | CFGPrinter.cpp | D | 03-May-2024 | 6.4 KiB | 203 | 139 | 
|  | CFLAndersAliasAnalysis.cpp | D | 03-May-2024 | 33 KiB | 933 | 636 | 
|  | CFLGraph.h | D | 03-May-2024 | 21.2 KiB | 661 | 468 | 
|  | CFLSteensAliasAnalysis.cpp | D | 03-May-2024 | 13.2 KiB | 365 | 234 | 
|  | CGSCCPassManager.cpp | D | 03-May-2024 | 29.3 KiB | 710 | 397 | 
|  | CMakeLists.txt | D | 03-May-2024 | 2.3 KiB | 108 | 105 | 
|  | CallGraph.cpp | D | 03-May-2024 | 11 KiB | 328 | 213 | 
|  | CallGraphSCCPass.cpp | D | 03-May-2024 | 25.3 KiB | 712 | 447 | 
|  | CallPrinter.cpp | D | 03-May-2024 | 3 KiB | 93 | 55 | 
|  | CaptureTracking.cpp | D | 03-May-2024 | 15.2 KiB | 390 | 223 | 
|  | CmpInstAnalysis.cpp | D | 03-May-2024 | 4.6 KiB | 144 | 111 | 
|  | CodeMetrics.cpp | D | 03-May-2024 | 7 KiB | 196 | 114 | 
|  | ConstantFolding.cpp | D | 03-May-2024 | 94.1 KiB | 2,640 | 2,028 | 
|  | CostModel.cpp | D | 03-May-2024 | 3.9 KiB | 113 | 72 | 
|  | DDG.cpp | D | 03-May-2024 | 9.7 KiB | 284 | 206 | 
|  | Delinearization.cpp | D | 03-May-2024 | 4.5 KiB | 131 | 92 | 
|  | DemandedBits.cpp | D | 03-May-2024 | 16.3 KiB | 490 | 347 | 
|  | DependenceAnalysis.cpp | D | 03-May-2024 | 147.1 KiB | 4,004 | 2,755 | 
|  | DependenceGraphBuilder.cpp | D | 03-May-2024 | 15.4 KiB | 408 | 275 | 
|  | DivergenceAnalysis.cpp | D | 03-May-2024 | 15.3 KiB | 467 | 277 | 
|  | DomPrinter.cpp | D | 03-May-2024 | 9.7 KiB | 299 | 229 | 
|  | DomTreeUpdater.cpp | D | 03-May-2024 | 15.2 KiB | 534 | 382 | 
|  | DominanceFrontier.cpp | D | 03-May-2024 | 3.2 KiB | 98 | 68 | 
|  | EHPersonalities.cpp | D | 03-May-2024 | 5.9 KiB | 136 | 98 | 
|  | GlobalsModRef.cpp | D | 03-May-2024 | 40.6 KiB | 1,035 | 651 | 
|  | GuardUtils.cpp | D | 03-May-2024 | 3.3 KiB | 107 | 76 | 
|  | IVDescriptors.cpp | D | 03-May-2024 | 42.2 KiB | 1,124 | 710 | 
|  | IVUsers.cpp | D | 03-May-2024 | 16.1 KiB | 428 | 274 | 
|  | IndirectCallPromotionAnalysis.cpp | D | 03-May-2024 | 4.4 KiB | 108 | 72 | 
|  | InlineCost.cpp | D | 03-May-2024 | 88.3 KiB | 2,328 | 1,382 | 
|  | InstCount.cpp | D | 03-May-2024 | 2.4 KiB | 80 | 49 | 
|  | InstructionPrecedenceTracking.cpp | D | 03-May-2024 | 5.8 KiB | 162 | 107 | 
|  | InstructionSimplify.cpp | D | 03-May-2024 | 211.2 KiB | 5,622 | 3,714 | 
|  | Interval.cpp | D | 03-May-2024 | 1.8 KiB | 52 | 24 | 
|  | IntervalPartition.cpp | D | 03-May-2024 | 4.5 KiB | 119 | 59 | 
|  | LLVMBuild.txt | D | 03-May-2024 | 765 | 22 | 20 | 
|  | LazyBlockFrequencyInfo.cpp | D | 03-May-2024 | 2.8 KiB | 73 | 43 | 
|  | LazyBranchProbabilityInfo.cpp | D | 03-May-2024 | 3 KiB | 76 | 46 | 
|  | LazyCallGraph.cpp | D | 03-May-2024 | 66 KiB | 1,817 | 1,124 | 
|  | LazyValueInfo.cpp | D | 03-May-2024 | 80.1 KiB | 2,072 | 1,391 | 
|  | LegacyDivergenceAnalysis.cpp | D | 03-May-2024 | 14.8 KiB | 410 | 243 | 
|  | Lint.cpp | D | 03-May-2024 | 28.8 KiB | 758 | 555 | 
|  | Loads.cpp | D | 03-May-2024 | 19.5 KiB | 481 | 282 | 
|  | LoopAccessAnalysis.cpp | D | 03-May-2024 | 93.3 KiB | 2,470 | 1,539 | 
|  | LoopAnalysisManager.cpp | D | 03-May-2024 | 6.6 KiB | 152 | 81 | 
|  | LoopCacheAnalysis.cpp | D | 03-May-2024 | 22 KiB | 630 | 457 | 
|  | LoopInfo.cpp | D | 03-May-2024 | 37.1 KiB | 1,115 | 753 | 
|  | LoopPass.cpp | D | 03-May-2024 | 14.1 KiB | 420 | 262 | 
|  | LoopUnrollAnalyzer.cpp | D | 03-May-2024 | 7.2 KiB | 215 | 135 | 
|  | MemDepPrinter.cpp | D | 03-May-2024 | 5.1 KiB | 166 | 126 | 
|  | MemDerefPrinter.cpp | D | 03-May-2024 | 2.5 KiB | 78 | 63 | 
|  | MemoryBuiltins.cpp | D | 03-May-2024 | 39.9 KiB | 1,053 | 751 | 
|  | MemoryDependenceAnalysis.cpp | D | 03-May-2024 | 71.2 KiB | 1,826 | 1,089 | 
|  | MemoryLocation.cpp | D | 03-May-2024 | 7.4 KiB | 213 | 160 | 
|  | MemorySSA.cpp | D | 03-May-2024 | 90.1 KiB | 2,460 | 1,649 | 
|  | MemorySSAUpdater.cpp | D | 03-May-2024 | 57.8 KiB | 1,447 | 1,006 | 
|  | ModuleDebugInfoPrinter.cpp | D | 03-May-2024 | 4 KiB | 129 | 97 | 
|  | ModuleSummaryAnalysis.cpp | D | 03-May-2024 | 36.1 KiB | 885 | 649 | 
|  | MustExecute.cpp | D | 03-May-2024 | 26.6 KiB | 713 | 492 | 
|  | ObjCARCAliasAnalysis.cpp | D | 03-May-2024 | 5.8 KiB | 165 | 100 | 
|  | ObjCARCAnalysisUtils.cpp | D | 03-May-2024 | 1.1 KiB | 26 | 8 | 
|  | ObjCARCInstKind.cpp | D | 03-May-2024 | 23.2 KiB | 706 | 597 | 
|  | OptimizationRemarkEmitter.cpp | D | 03-May-2024 | 4.2 KiB | 135 | 88 | 
|  | OrderedBasicBlock.cpp | D | 03-May-2024 | 4.4 KiB | 112 | 63 | 
|  | OrderedInstructions.cpp | D | 03-May-2024 | 2.1 KiB | 51 | 26 | 
|  | PHITransAddr.cpp | D | 03-May-2024 | 16.1 KiB | 440 | 273 | 
|  | PhiValues.cpp | D | 03-May-2024 | 8.4 KiB | 228 | 151 | 
|  | PostDominators.cpp | D | 03-May-2024 | 3.6 KiB | 114 | 71 | 
|  | ProfileSummaryInfo.cpp | D | 03-May-2024 | 14.9 KiB | 395 | 291 | 
|  | PtrUseVisitor.cpp | D | 03-May-2024 | 1.3 KiB | 45 | 26 | 
|  | README.txt | D | 03-May-2024 | 1,006 | 31 | 17 | 
|  | RegionInfo.cpp | D | 03-May-2024 | 6.5 KiB | 217 | 138 | 
|  | RegionPass.cpp | D | 03-May-2024 | 9.2 KiB | 300 | 179 | 
|  | RegionPrinter.cpp | D | 03-May-2024 | 8.6 KiB | 268 | 198 | 
|  | ScalarEvolution.cpp | D | 03-May-2024 | 479.6 KiB | 12,618 | 8,390 | 
|  | ScalarEvolutionAliasAnalysis.cpp | D | 03-May-2024 | 6 KiB | 149 | 79 | 
|  | ScalarEvolutionExpander.cpp | D | 03-May-2024 | 96.2 KiB | 2,453 | 1,634 | 
|  | ScalarEvolutionNormalization.cpp | D | 03-May-2024 | 4.6 KiB | 118 | 57 | 
|  | ScopedNoAliasAA.cpp | D | 03-May-2024 | 7.4 KiB | 212 | 125 | 
|  | StackSafetyAnalysis.cpp | D | 03-May-2024 | 22 KiB | 679 | 501 | 
|  | StratifiedSets.h | D | 03-May-2024 | 18.7 KiB | 597 | 357 | 
|  | SyncDependenceAnalysis.cpp | D | 03-May-2024 | 12.9 KiB | 381 | 176 | 
|  | SyntheticCountsUtils.cpp | D | 03-May-2024 | 3.8 KiB | 105 | 55 | 
|  | TargetLibraryInfo.cpp | D | 03-May-2024 | 58.3 KiB | 1,647 | 1,369 | 
|  | TargetTransformInfo.cpp | D | 03-May-2024 | 49.5 KiB | 1,397 | 1,079 | 
|  | Trace.cpp | D | 03-May-2024 | 1.8 KiB | 54 | 29 | 
|  | TypeBasedAliasAnalysis.cpp | D | 03-May-2024 | 26 KiB | 739 | 432 | 
|  | TypeMetadataUtils.cpp | D | 03-May-2024 | 5.9 KiB | 162 | 119 | 
|  | VFABIDemangling.cpp | D | 03-May-2024 | 14.6 KiB | 431 | 236 | 
|  | ValueLattice.cpp | D | 03-May-2024 | 960 | 26 | 15 | 
|  | ValueLatticeUtils.cpp | D | 03-May-2024 | 1.5 KiB | 44 | 27 | 
|  | ValueTracking.cpp | D | 03-May-2024 | 224 KiB | 5,998 | 4,089 | 
|  | VectorUtils.cpp | D | 03-May-2024 | 44.8 KiB | 1,229 | 797 | 
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