• Home
Name Date Size #Lines LOC

..--

AliasAnalysis.cppD06-Sep-202433.8 KiB923610

AliasAnalysisEvaluator.cppD06-Sep-202415.6 KiB436382

AliasAnalysisSummary.cppD06-Sep-20243.5 KiB10481

AliasAnalysisSummary.hD06-Sep-202410.2 KiB266148

AliasSetTracker.cppD06-Sep-202425.9 KiB778553

Analysis.cppD06-Sep-20245.3 KiB139113

AssumptionCache.cppD06-Sep-20249.9 KiB304208

BasicAliasAnalysis.cppD06-Sep-202485.1 KiB2,1031,199

BlockFrequencyInfo.cppD06-Sep-202412.3 KiB344261

BlockFrequencyInfoImpl.cppD06-Sep-202428.1 KiB852583

BranchProbabilityInfo.cppD06-Sep-202438.7 KiB1,084750

CFG.cppD06-Sep-202410 KiB280178

CFGPrinter.cppD06-Sep-20246.4 KiB203139

CFLAndersAliasAnalysis.cppD06-Sep-202433 KiB933636

CFLGraph.hD06-Sep-202421.2 KiB661468

CFLSteensAliasAnalysis.cppD06-Sep-202413.2 KiB365234

CGSCCPassManager.cppD06-Sep-202429.3 KiB710397

CMakeLists.txtD06-Sep-20242.3 KiB108105

CallGraph.cppD06-Sep-202411 KiB328213

CallGraphSCCPass.cppD06-Sep-202425.3 KiB712447

CallPrinter.cppD06-Sep-20243 KiB9355

CaptureTracking.cppD06-Sep-202415.2 KiB390223

CmpInstAnalysis.cppD06-Sep-20244.6 KiB144111

CodeMetrics.cppD06-Sep-20247 KiB196114

ConstantFolding.cppD06-Sep-202494.1 KiB2,6402,028

CostModel.cppD06-Sep-20243.9 KiB11372

DDG.cppD06-Sep-20249.7 KiB284206

Delinearization.cppD06-Sep-20244.5 KiB13192

DemandedBits.cppD06-Sep-202416.3 KiB490347

DependenceAnalysis.cppD06-Sep-2024147.1 KiB4,0042,755

DependenceGraphBuilder.cppD06-Sep-202415.4 KiB408275

DivergenceAnalysis.cppD06-Sep-202415.3 KiB467277

DomPrinter.cppD06-Sep-20249.7 KiB299229

DomTreeUpdater.cppD06-Sep-202415.2 KiB534382

DominanceFrontier.cppD06-Sep-20243.2 KiB9868

EHPersonalities.cppD06-Sep-20245.9 KiB13698

GlobalsModRef.cppD06-Sep-202440.6 KiB1,035651

GuardUtils.cppD06-Sep-20243.3 KiB10776

IVDescriptors.cppD06-Sep-202442.2 KiB1,124710

IVUsers.cppD06-Sep-202416.1 KiB428274

IndirectCallPromotionAnalysis.cppD06-Sep-20244.4 KiB10872

InlineCost.cppD06-Sep-202488.3 KiB2,3281,382

InstCount.cppD06-Sep-20242.4 KiB8049

InstructionPrecedenceTracking.cppD06-Sep-20245.8 KiB162107

InstructionSimplify.cppD06-Sep-2024211.2 KiB5,6223,714

Interval.cppD06-Sep-20241.8 KiB5224

IntervalPartition.cppD06-Sep-20244.5 KiB11959

LLVMBuild.txtD06-Sep-2024765 2220

LazyBlockFrequencyInfo.cppD06-Sep-20242.8 KiB7343

LazyBranchProbabilityInfo.cppD06-Sep-20243 KiB7646

LazyCallGraph.cppD06-Sep-202466 KiB1,8171,124

LazyValueInfo.cppD06-Sep-202480.1 KiB2,0721,391

LegacyDivergenceAnalysis.cppD06-Sep-202414.8 KiB410243

Lint.cppD06-Sep-202428.8 KiB758555

Loads.cppD06-Sep-202419.5 KiB481282

LoopAccessAnalysis.cppD06-Sep-202493.3 KiB2,4701,539

LoopAnalysisManager.cppD06-Sep-20246.6 KiB15281

LoopCacheAnalysis.cppD06-Sep-202422 KiB630457

LoopInfo.cppD06-Sep-202437.1 KiB1,115753

LoopPass.cppD06-Sep-202414.1 KiB420262

LoopUnrollAnalyzer.cppD06-Sep-20247.2 KiB215135

MemDepPrinter.cppD06-Sep-20245.1 KiB166126

MemDerefPrinter.cppD06-Sep-20242.5 KiB7863

MemoryBuiltins.cppD06-Sep-202439.9 KiB1,053751

MemoryDependenceAnalysis.cppD06-Sep-202471.2 KiB1,8261,089

MemoryLocation.cppD06-Sep-20247.4 KiB213160

MemorySSA.cppD06-Sep-202490.1 KiB2,4601,649

MemorySSAUpdater.cppD06-Sep-202457.8 KiB1,4471,006

ModuleDebugInfoPrinter.cppD06-Sep-20244 KiB12997

ModuleSummaryAnalysis.cppD06-Sep-202436.1 KiB885649

MustExecute.cppD06-Sep-202426.6 KiB713492

ObjCARCAliasAnalysis.cppD06-Sep-20245.8 KiB165100

ObjCARCAnalysisUtils.cppD06-Sep-20241.1 KiB268

ObjCARCInstKind.cppD06-Sep-202423.2 KiB706597

OptimizationRemarkEmitter.cppD06-Sep-20244.2 KiB13588

OrderedBasicBlock.cppD06-Sep-20244.4 KiB11263

OrderedInstructions.cppD06-Sep-20242.1 KiB5126

PHITransAddr.cppD06-Sep-202416.1 KiB440273

PhiValues.cppD06-Sep-20248.4 KiB228151

PostDominators.cppD06-Sep-20243.6 KiB11471

ProfileSummaryInfo.cppD06-Sep-202414.9 KiB395291

PtrUseVisitor.cppD06-Sep-20241.3 KiB4526

README.txtD06-Sep-20241,006 3117

RegionInfo.cppD06-Sep-20246.5 KiB217138

RegionPass.cppD06-Sep-20249.2 KiB300179

RegionPrinter.cppD06-Sep-20248.6 KiB268198

ScalarEvolution.cppD06-Sep-2024479.6 KiB12,6188,390

ScalarEvolutionAliasAnalysis.cppD06-Sep-20246 KiB14979

ScalarEvolutionExpander.cppD06-Sep-202496.2 KiB2,4531,634

ScalarEvolutionNormalization.cppD06-Sep-20244.6 KiB11857

ScopedNoAliasAA.cppD06-Sep-20247.4 KiB212125

StackSafetyAnalysis.cppD06-Sep-202422 KiB679501

StratifiedSets.hD06-Sep-202418.7 KiB597357

SyncDependenceAnalysis.cppD06-Sep-202412.9 KiB381176

SyntheticCountsUtils.cppD06-Sep-20243.8 KiB10555

TargetLibraryInfo.cppD06-Sep-202458.3 KiB1,6471,369

TargetTransformInfo.cppD06-Sep-202449.5 KiB1,3971,079

Trace.cppD06-Sep-20241.8 KiB5429

TypeBasedAliasAnalysis.cppD06-Sep-202426 KiB739432

TypeMetadataUtils.cppD06-Sep-20245.9 KiB162119

VFABIDemangling.cppD06-Sep-202414.6 KiB431236

ValueLattice.cppD06-Sep-2024960 2615

ValueLatticeUtils.cppD06-Sep-20241.5 KiB4427

ValueTracking.cppD06-Sep-2024224 KiB5,9984,089

VectorUtils.cppD06-Sep-202444.8 KiB1,229797

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