• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

IPA/22-Nov-2023-2,1521,457

AliasAnalysis.cppD22-Nov-202315.2 KiB443263

AliasAnalysisCounter.cppD22-Nov-20236.2 KiB174133

AliasAnalysisEvaluator.cppD22-Nov-202310.9 KiB305245

AliasDebugger.cppD22-Nov-20234.8 KiB13989

AliasSetTracker.cppD22-Nov-202321.6 KiB652452

Analysis.cppD22-Nov-20233.7 KiB10685

BasicAliasAnalysis.cppD22-Nov-202347.7 KiB1,236755

BlockFrequencyInfo.cppD22-Nov-20232.1 KiB6435

BranchProbabilityInfo.cppD22-Nov-202314.7 KiB512328

CFGPrinter.cppD22-Nov-20234.9 KiB166107

CaptureTracking.cppD22-Nov-20236.1 KiB14976

ConstantFolding.cppD22-Nov-202354.9 KiB1,4131,008

DIBuilder.cppD22-Nov-202337.8 KiB940764

DbgInfoPrinter.cppD22-Nov-20236.3 KiB225166

DebugInfo.cppD22-Nov-202332.6 KiB1,144820

DomPrinter.cppD22-Nov-20236.7 KiB233166

DominanceFrontier.cppD22-Nov-20234.3 KiB138101

INSTALL.vcxproj.filtersD22-Nov-2023657 2524

IVUsers.cppD22-Nov-20239.5 KiB274187

InlineCost.cppD22-Nov-202325.3 KiB656336

InstCount.cppD22-Nov-20232.7 KiB8856

InstructionSimplify.cppD22-Nov-202398 KiB2,5761,720

Interval.cppD22-Nov-20232 KiB5928

IntervalPartition.cppD22-Nov-20234.2 KiB11551

LLVMAnalysis.vcxprojD22-Nov-202325.7 KiB386386

LLVMAnalysis.vcxproj.filtersD22-Nov-20232.8 KiB9090

LazyValueInfo.cppD22-Nov-202337.8 KiB1,129784

LibCallAliasAnalysis.cppD22-Nov-20235.2 KiB13869

LibCallSemantics.cppD22-Nov-20232.1 KiB6428

Lint.cppD22-Nov-202324.9 KiB656486

Loads.cppD22-Nov-20239.4 KiB241130

LoopDependenceAnalysis.cppD22-Nov-202312.9 KiB365258

LoopInfo.cppD22-Nov-202325 KiB706413

LoopPass.cppD22-Nov-202311.4 KiB379230

MakefileD22-Nov-2023441 175

MemDepPrinter.cppD22-Nov-20236.3 KiB193150

MemoryBuiltins.cppD22-Nov-20237.6 KiB214121

MemoryDependenceAnalysis.cppD22-Nov-202360.2 KiB1,486849

ModuleDebugInfoPrinter.cppD22-Nov-20232.6 KiB8860

NoAliasAnalysis.cppD22-Nov-20233.1 KiB8952

PACKAGE.vcxproj.filtersD22-Nov-2023657 2524

PHITransAddr.cppD22-Nov-202316 KiB443274

PathNumbering.cppD22-Nov-202316.2 KiB523328

PathProfileInfo.cppD22-Nov-202313.9 KiB435275

PathProfileVerifier.cppD22-Nov-20236.9 KiB208141

PostDominators.cppD22-Nov-20231.5 KiB5226

ProfileEstimatorPass.cppD22-Nov-202315.8 KiB427289

ProfileInfo.cppD22-Nov-202332.9 KiB1,106880

ProfileInfoLoader.cppD22-Nov-20234.8 KiB158105

ProfileInfoLoaderPass.cppD22-Nov-20239.3 KiB268198

ProfileVerifierPass.cppD22-Nov-202313.4 KiB383294

README.txtD22-Nov-20231,006 3117

RegionInfo.cppD22-Nov-202322.7 KiB852589

RegionPass.cppD22-Nov-20238.5 KiB276159

RegionPrinter.cppD22-Nov-20236.7 KiB221160

ScalarEvolution.cppD22-Nov-2023266.2 KiB6,7454,574

ScalarEvolutionAliasAnalysis.cppD22-Nov-20236.7 KiB17495

ScalarEvolutionExpander.cppD22-Nov-202361.7 KiB1,5791,057

ScalarEvolutionNormalization.cppD22-Nov-20238.6 KiB226149

SparsePropagation.cppD22-Nov-202311.9 KiB348212

Trace.cppD22-Nov-20231.6 KiB5225

TypeBasedAliasAnalysis.cppD22-Nov-202310.2 KiB301161

ValueTracking.cppD22-Nov-202370.3 KiB1,7961,192

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