[PATCH] D122118: [MachineCopyPropagation] Eliminate spillage copies that might be caused by eviction chain
Kai Luo via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 28 02:15:05 PST 2022
lkail added a comment.
> Do you know on average how many chains we see per function?
I have run llvm-test-suite, here's the stats
| | functions | spill chain length | avg spill chain length per function | max spill chain length in one CU |
| powerpc64-ibm-aix | 60426 | 308 | 0.005097143613676 | 52 |
| x86_64-linux-gnu | 185938 | 646 | 0.003474276371694 | 130 |
|
Compile time on powerpc64-ibm-aix
Tests: 1039
Metric: compile_time
Program compile_time
baseline experiment
SingleSour...sts/2002-10-09-ArrayResolution 0.07 0.50
MultiSourc...marks/Trimaran/enc-pc1/enc-pc1 0.14 0.86
SingleSour...e/UnitTests/2002-10-13-BadLoad 0.06 0.38
SingleSour...UnitTests/2002-08-02-CastTest2 0.06 0.37
SingleSour...nitTests/2002-04-17-PrintfChar 0.06 0.36
SingleSour.../UnitTests/conditional-gnu-ext 0.07 0.23
MultiSource/Benchmarks/llubenchmark/llu 0.10 0.35
SingleSour...tTests/2003-08-05-CastFPToUint 0.06 0.22
SingleSour...nitTests/2003-05-31-LongShifts 0.07 0.22
SingleSour...e/UnitTests/Vector/Altivec/lde 0.21 0.68
SingleSource/UnitTests/blockstret 0.06 0.18
SingleSour...e/UnitTests/2002-05-03-NotTest 0.07 0.21
SingleSour...UnitTests/2002-05-02-CastTest2 0.07 0.20
SingleSour...UnitTests/2003-08-11-VaListArg 0.15 0.43
SingleSource/UnitTests/StructModifyTest 0.07 0.19
compile_time
run baseline experiment
count 1039.000000 1039.000000
mean 1.108578 1.102223
std 4.496574 4.384102
min 0.000000 0.000000
25% 0.000000 0.000000
50% 0.000000 0.000000
75% 0.276350 0.278450
max 80.927800 77.030800
Compile time on x86_64-linux-gnu
Tests: 2991
Metric: compile_time
Program compile_time
baseline experiment
UnitTests/...9-04-16-BitfieldInitialization 0.00 0.02
UnitTests/2002-04-17-PrintfChar 0.00 0.01
UnitTests/2002-10-13-BadLoad 0.00 0.01
UnitTests/block-copied-in-cxxobj-1 0.00 0.01
UnitTests/testcase-ExprConstant-1 0.01 0.02
UnitTests/2010-05-24-BitfieldTest 0.00 0.01
UnitTests/block-byref-test 0.00 0.01
UnitTests/testcase-Expr-1 0.01 0.02
UnitTests/byval-alignment 0.01 0.02
Benchmarks/Misc/pi 0.01 0.02
UnitTests/block-byref-cxxobj-test 0.01 0.01
UnitTests/2020-01-06-coverage-008 0.01 0.02
UnitTests/2002-08-02-CastTest2 0.01 0.01
UnitTests/2002-05-03-NotTest 0.02 0.02
UnitTests/2005-05-13-SDivTwo 0.01 0.02
compile_time
l/r baseline experiment
count 2991.000000 2991.000000
mean 0.291675 0.291211
std 2.642554 2.642948
min 0.000000 0.000000
25% 0.000000 0.000000
50% 0.000000 0.000000
75% 0.000000 0.000000
max 99.370200 99.510200
> I just don't know how extensive the tests are.
I have tried bootstrapping stage3 on powerpc64-ibm-aix and x86_64-linux-gnu, no regression found. I'll follow your advice to send an RFC on discourse, currently I only enable it on PowerPC by default. https://reviews.llvm.org/D122118?id=485466 shows changes in other targets.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122118/new/
https://reviews.llvm.org/D122118
More information about the llvm-commits
mailing list