• Home
Name
Date
Size
#Lines
LOC

..--

IPA/03-May-2024-3,1241,908

AliasAnalysis.cppD03-May-202420.3 KiB581356

AliasAnalysisCounter.cppD03-May-20246.2 KiB172131

AliasAnalysisEvaluator.cppD03-May-202413.6 KiB372306

AliasDebugger.cppD03-May-20244.8 KiB13989

AliasSetTracker.cppD03-May-202422.1 KiB684477

Analysis.cppD03-May-20244.1 KiB11993

Android.mkD03-May-20242.1 KiB9179

AssumptionCache.cppD03-May-20244.9 KiB14190

BasicAliasAnalysis.cppD03-May-202463.3 KiB1,591929

BlockFrequencyInfo.cppD03-May-20245.5 KiB183138

BlockFrequencyInfoImpl.cppD03-May-202423.5 KiB723485

BranchProbabilityInfo.cppD03-May-202421.5 KiB672432

CFG.cppD03-May-20248.5 KiB237147

CFGPrinter.cppD03-May-20244.9 KiB166108

CFLAliasAnalysis.cppD03-May-202439.1 KiB1,156754

CGSCCPassManager.cppD03-May-20242.5 KiB7336

CMakeLists.txtD03-May-20241.5 KiB7167

CaptureTracking.cppD03-May-202410.1 KiB271155

CodeMetrics.cppD03-May-20246.3 KiB188109

ConstantFolding.cppD03-May-202467.2 KiB1,7801,277

CostModel.cppD03-May-202417.7 KiB539376

Delinearization.cppD03-May-20244.9 KiB148104

DependenceAnalysis.cppD03-May-2024145.2 KiB3,9512,734

DivergenceAnalysis.cppD03-May-202411.9 KiB338191

DomPrinter.cppD03-May-20247.9 KiB255187

DominanceFrontier.cppD03-May-20241.6 KiB5838

IVUsers.cppD03-May-202413 KiB359240

InstCount.cppD03-May-20242.7 KiB8956

InstructionSimplify.cppD03-May-2024146.1 KiB3,8472,642

Interval.cppD03-May-20242 KiB5928

IntervalPartition.cppD03-May-20244.2 KiB11551

LLVMBuild.txtD03-May-2024735 2623

LazyCallGraph.cppD03-May-202426.1 KiB728496

LazyValueInfo.cppD03-May-202444.1 KiB1,283893

LibCallAliasAnalysis.cppD03-May-20245.4 KiB14273

LibCallSemantics.cppD03-May-20243.4 KiB9149

Lint.cppD03-May-202435.3 KiB918640

Loads.cppD03-May-20249.8 KiB264131

LoopAccessAnalysis.cppD03-May-202450.4 KiB1,412964

LoopInfo.cppD03-May-202425.6 KiB740451

LoopPass.cppD03-May-202412.4 KiB403241

MakefileD03-May-2024441 175

MemDepPrinter.cppD03-May-20245.2 KiB169128

MemDerefPrinter.cppD03-May-20242.1 KiB7054

MemoryBuiltins.cppD03-May-202428 KiB793541

MemoryDependenceAnalysis.cppD03-May-202468.5 KiB1,689965

ModuleDebugInfoPrinter.cppD03-May-20243.9 KiB12794

NoAliasAnalysis.cppD03-May-20243.4 KiB9860

PHITransAddr.cppD03-May-202415.9 KiB440271

PostDominators.cppD03-May-20241.5 KiB5125

PtrUseVisitor.cppD03-May-20241 KiB3618

README.txtD03-May-20241,006 3117

RegionInfo.cppD03-May-20244.7 KiB174109

RegionPass.cppD03-May-20248.6 KiB283166

RegionPrinter.cppD03-May-20246.8 KiB221161

ScalarEvolution.cppD03-May-2024324.9 KiB8,5025,721

ScalarEvolutionAliasAnalysis.cppD03-May-20246.8 KiB17596

ScalarEvolutionExpander.cppD03-May-202475.9 KiB1,9291,276

ScalarEvolutionNormalization.cppD03-May-202410.1 KiB255152

ScopedNoAliasAA.cppD03-May-20248.7 KiB251156

SparsePropagation.cppD03-May-202411.9 KiB348212

StratifiedSets.hD03-May-202422 KiB693406

TargetLibraryInfo.cppD03-May-202420.5 KiB576451

TargetTransformInfo.cppD03-May-202410.9 KiB325244

Trace.cppD03-May-20241.7 KiB5326

TypeBasedAliasAnalysis.cppD03-May-202422.7 KiB646351

ValueTracking.cppD03-May-2024118.6 KiB3,0262,008

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