• Home
Name
Date
Size
#Lines
LOC

..--

IPA/03-May-2024-3,1681,922

AliasAnalysis.cppD03-May-202420.3 KiB580361

AliasAnalysisCounter.cppD03-May-20246.2 KiB171130

AliasAnalysisEvaluator.cppD03-May-202413.6 KiB372306

AliasDebugger.cppD03-May-20244.8 KiB13989

AliasSetTracker.cppD03-May-202421.7 KiB653453

Analysis.cppD03-May-20244 KiB11690

Android.mkD03-May-20241.9 KiB8573

BasicAliasAnalysis.cppD03-May-202455 KiB1,399829

BlockFrequencyInfo.cppD03-May-20245.5 KiB183138

BlockFrequencyInfoImpl.cppD03-May-202422.6 KiB711476

BranchProbabilityInfo.cppD03-May-202421.1 KiB664427

CFG.cppD03-May-20248.5 KiB237147

CFGPrinter.cppD03-May-20245 KiB166108

CGSCCPassManager.cppD03-May-20245.7 KiB168111

CMakeLists.txtD03-May-20241.3 KiB6259

CaptureTracking.cppD03-May-20246.8 KiB184103

CodeMetrics.cppD03-May-20243.7 KiB9746

ConstantFolding.cppD03-May-202466.9 KiB1,7801,279

CostModel.cppD03-May-202417.7 KiB538375

Delinearization.cppD03-May-20244.9 KiB148104

DependenceAnalysis.cppD03-May-2024143.9 KiB3,9342,717

DomPrinter.cppD03-May-20247.9 KiB255187

DominanceFrontier.cppD03-May-20244.4 KiB141103

IVUsers.cppD03-May-202412.9 KiB358240

InstCount.cppD03-May-20242.7 KiB8956

InstructionSimplify.cppD03-May-2024123.3 KiB3,2602,184

Interval.cppD03-May-20242 KiB5928

IntervalPartition.cppD03-May-20244.2 KiB11551

JumpInstrTableInfo.cppD03-May-20241.3 KiB4120

LLVMBuild.txtD03-May-2024742 2623

LazyCallGraph.cppD03-May-202426.1 KiB729496

LazyValueInfo.cppD03-May-202438.8 KiB1,146783

LibCallAliasAnalysis.cppD03-May-20245.2 KiB13869

LibCallSemantics.cppD03-May-20242.1 KiB6428

Lint.cppD03-May-202427.3 KiB720528

Loads.cppD03-May-20248.6 KiB222112

LoopInfo.cppD03-May-202425 KiB725442

LoopPass.cppD03-May-202411.9 KiB390232

MakefileD03-May-2024441 175

MemDepPrinter.cppD03-May-20246.4 KiB192149

MemoryBuiltins.cppD03-May-202428.6 KiB810550

MemoryDependenceAnalysis.cppD03-May-202462.5 KiB1,544894

ModuleDebugInfoPrinter.cppD03-May-20242.3 KiB8355

NoAliasAnalysis.cppD03-May-20243.4 KiB9658

PHITransAddr.cppD03-May-202416 KiB441272

PostDominators.cppD03-May-20241.5 KiB5125

PtrUseVisitor.cppD03-May-20241,018 3618

README.txtD03-May-20241,006 3117

RegionInfo.cppD03-May-202423.5 KiB870608

RegionPass.cppD03-May-20248.4 KiB279161

RegionPrinter.cppD03-May-20246.6 KiB218157

ScalarEvolution.cppD03-May-2024310.5 KiB8,0935,486

ScalarEvolutionAliasAnalysis.cppD03-May-20246.8 KiB17495

ScalarEvolutionExpander.cppD03-May-202473.1 KiB1,8571,235

ScalarEvolutionNormalization.cppD03-May-202410.1 KiB255152

SparsePropagation.cppD03-May-202411.9 KiB348212

TargetTransformInfo.cppD03-May-202420.4 KiB626440

Trace.cppD03-May-20241.7 KiB5326

TypeBasedAliasAnalysis.cppD03-May-202421.6 KiB614324

ValueTracking.cppD03-May-202478.9 KiB2,0941,395

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