• Home
Name Date Size #Lines LOC

..--

AliasAnalysis.cppD04-Jul-202525.7 KiB708451

AliasAnalysisEvaluator.cppD04-Jul-202513.3 KiB390334

AliasAnalysisSummary.cppD04-Jul-20253.6 KiB10682

AliasAnalysisSummary.hD04-Jul-20257.7 KiB19281

AliasSetTracker.cppD04-Jul-202523 KiB719505

Analysis.cppD04-Jul-20254.6 KiB129102

Android.bpD04-Jul-2025453 1715

AssumptionCache.cppD04-Jul-20254.9 KiB14190

BasicAliasAnalysis.cppD04-Jul-202569.2 KiB1,725944

BlockFrequencyInfo.cppD04-Jul-20259.1 KiB268202

BlockFrequencyInfoImpl.cppD04-Jul-202526.1 KiB796533

BranchProbabilityInfo.cppD04-Jul-202523.9 KiB711468

CFG.cppD04-Jul-20258.4 KiB237147

CFGPrinter.cppD04-Jul-20254.9 KiB166108

CFLAndersAliasAnalysis.cppD04-Jul-20252.2 KiB6124

CFLGraph.hD04-Jul-202517.5 KiB534357

CFLSteensAliasAnalysis.cppD04-Jul-202516.2 KiB443285

CGSCCPassManager.cppD04-Jul-2025986 2512

CMakeLists.txtD04-Jul-20251.9 KiB8784

CallGraph.cppD04-Jul-202511.3 KiB338220

CallGraphSCCPass.cppD04-Jul-202523.2 KiB645383

CallPrinter.cppD04-Jul-20253 KiB9354

CaptureTracking.cppD04-Jul-202513.6 KiB360202

CodeMetrics.cppD04-Jul-20256.3 KiB187108

ConstantFolding.cppD04-Jul-202571.2 KiB1,9291,421

CostModel.cppD04-Jul-202517.6 KiB537374

Delinearization.cppD04-Jul-20254.8 KiB141100

DemandedBits.cppD04-Jul-202513.9 KiB404285

DependenceAnalysis.cppD04-Jul-2025143.8 KiB3,9472,725

DivergenceAnalysis.cppD04-Jul-202512 KiB331181

DomPrinter.cppD04-Jul-20259.2 KiB283214

DominanceFrontier.cppD04-Jul-20252.4 KiB7853

EHPersonalities.cppD04-Jul-20254.6 KiB11074

GlobalsModRef.cppD04-Jul-202538.3 KiB981613

IVUsers.cppD04-Jul-202513.5 KiB371247

IndirectCallPromotionAnalysis.cppD04-Jul-20254.1 KiB11072

InlineCost.cppD04-Jul-202557.6 KiB1,554932

InstCount.cppD04-Jul-20252.7 KiB8956

InstructionSimplify.cppD04-Jul-2025163.7 KiB4,3262,990

Interval.cppD04-Jul-20251.8 KiB5625

IntervalPartition.cppD04-Jul-20254.2 KiB11450

IteratedDominanceFrontier.cppD04-Jul-20253.5 KiB10565

LLVMBuild.txtD04-Jul-2025716 2321

LazyBlockFrequencyInfo.cppD04-Jul-20252.5 KiB6941

LazyCallGraph.cppD04-Jul-202558.6 KiB1,5911,003

LazyValueInfo.cppD04-Jul-202560.7 KiB1,7171,164

Lint.cppD04-Jul-202527.5 KiB720522

Loads.cppD04-Jul-202515.7 KiB421239

LoopAccessAnalysis.cppD04-Jul-202576.6 KiB2,0611,305

LoopInfo.cppD04-Jul-202524.1 KiB730479

LoopPass.cppD04-Jul-202511.4 KiB358215

LoopPassManager.cppD04-Jul-20251.3 KiB4024

LoopUnrollAnalyzer.cppD04-Jul-20257 KiB211132

MemDepPrinter.cppD04-Jul-20255 KiB167126

MemDerefPrinter.cppD04-Jul-20252.5 KiB7963

MemoryBuiltins.cppD04-Jul-202531.5 KiB857594

MemoryDependenceAnalysis.cppD04-Jul-202566.6 KiB1,7091,003

MemoryLocation.cppD04-Jul-20255.5 KiB159112

ModuleDebugInfoPrinter.cppD04-Jul-20253.9 KiB12794

ModuleSummaryAnalysis.cppD04-Jul-20258.4 KiB230154

ObjCARCAliasAnalysis.cppD04-Jul-20255.6 KiB16397

ObjCARCAnalysisUtils.cppD04-Jul-20251.1 KiB2910

ObjCARCInstKind.cppD04-Jul-202523.8 KiB690570

OrderedBasicBlock.cppD04-Jul-20253.5 KiB8640

PHITransAddr.cppD04-Jul-202516.2 KiB444276

PostDominators.cppD04-Jul-20252.1 KiB6638

ProfileSummaryInfo.cppD04-Jul-20256.2 KiB167106

PtrUseVisitor.cppD04-Jul-20251 KiB3618

README.txtD04-Jul-20251,006 3117

RegionInfo.cppD04-Jul-20256 KiB214136

RegionPass.cppD04-Jul-20258.6 KiB283166

RegionPrinter.cppD04-Jul-20258.6 KiB268197

ScalarEvolution.cppD04-Jul-2025385.6 KiB10,4647,052

ScalarEvolutionAliasAnalysis.cppD04-Jul-20255.6 KiB14473

ScalarEvolutionExpander.cppD04-Jul-202586 KiB2,2121,454

ScalarEvolutionNormalization.cppD04-Jul-202510.1 KiB255152

ScopedNoAliasAA.cppD04-Jul-20257.1 KiB207123

SparsePropagation.cppD04-Jul-202511.8 KiB348212

StratifiedSets.hD04-Jul-202519 KiB607361

TargetLibraryInfo.cppD04-Jul-202541.8 KiB1,173981

TargetTransformInfo.cppD04-Jul-202516.7 KiB469370

Trace.cppD04-Jul-20251.7 KiB5326

TypeBasedAliasAnalysis.cppD04-Jul-202520.9 KiB617331

TypeMetadataUtils.cppD04-Jul-20254.2 KiB11987

ValueTracking.cppD04-Jul-2025157.8 KiB4,1592,827

VectorUtils.cppD04-Jul-202516.5 KiB491326

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