-
Notifications
You must be signed in to change notification settings - Fork 14.5k
[AArch64] Lower jump table cases threshold to 10 #143632
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AArch64] Lower jump table cases threshold to 10 #143632
Conversation
@llvm/pr-subscribers-backend-aarch64 Author: Guy David (guy-david) ChangesPrevious stabs at this setting (#71166) hypertuned it for SPEC2017, but Clang's own compilation can benefit from a slightly lower threshold, yielding a 0.3% improvement in compile time, while still not regressing SPEC. Most notable benefactors of this change are:
Test Suite:
Full diff: https://github.com/llvm/llvm-project/pull/143632.diff 1 Files Affected:
diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
index a28e6bad0dca0..68ed10570a52f 100644
--- a/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
+++ b/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
@@ -73,7 +73,7 @@ static cl::opt<AArch64PAuth::AuthCheckMethod>
cl::values(AUTH_CHECK_METHOD_CL_VALUES_LR));
static cl::opt<unsigned> AArch64MinimumJumpTableEntries(
- "aarch64-min-jump-table-entries", cl::init(13), cl::Hidden,
+ "aarch64-min-jump-table-entries", cl::init(10), cl::Hidden,
cl::desc("Set minimum number of entries to use a jump table on AArch64"));
static cl::opt<unsigned> AArch64StreamingHazardSize(
|
Previous stabs at this setting hypertuned it for SPEC2017, but Clang's own compilation can benefit from a slightly lower threshold, yielding a 0.3% improvement in compile time, while still not regressing SPEC. Most notable benefactors of this change are: - llvm::Instruction::getNumSuccessors (11 cases) - llvm::Instruction::getSuccessor (11 cases)
925a6c7
to
54232b8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Seems reasonable. If we do see any other regressions due to the change it's always easy enough to revert.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/162/builds/24866 Here is the relevant piece of the build log for the reference
|
Previous stabs at this setting (llvm#71166) hypertuned it for SPEC2017, but Clang's own compilation can benefit from a slightly lower threshold, yielding a 0.3% improvement in compile time, while still not regressing SPEC. Most notable beneficiaries of this change are: - `llvm::Instruction::getNumSuccessors` (11 cases) - `llvm::Instruction::getSuccessor` (11 cases) Test Suite with a bootstrapped build: ``` Tests: 4316 Metric: compile_time Program compile_time lhs rhs diff SingleSour...ce/UnitTests/SignlessTypes/div 0.02 0.02 3.0% SingleSour.../UnitTests/SignlessTypes/cast2 0.02 0.02 2.8% SingleSource/Benchmarks/Misc/flops-4 0.02 0.02 1.9% SingleSour...ebra/solvers/cholesky/cholesky 0.05 0.05 1.8% SingleSour...tTests/2020-01-06-coverage-006 0.02 0.02 1.7% SingleSour...ce/Benchmarks/Stanford/FloatMM 0.03 0.03 1.7% SingleSour...9-04-16-BitfieldInitialization 0.02 0.02 1.7% SingleSour...nitTests/2003-07-08-BitOpsTest 0.02 0.02 1.7% MultiSourc...marks/Prolangs-C++/vcirc/vcirc 0.02 0.02 1.6% MultiSourc...Prolangs-C/fixoutput/fixoutput 0.05 0.05 1.5% SingleSour...h/stencils/jacobi-1d/jacobi-1d 0.04 0.04 1.4% MultiSourc...rks/Prolangs-C++/office/office 0.28 0.28 1.4% SingleSour...arks/Adobe-C++/functionobjects 0.39 0.40 1.3% SingleSour...Tests/2003-10-29-ScalarReplBug 0.02 0.02 1.2% SingleSour...arks/Adobe-C++/stepanov_vector 0.41 0.42 1.2% Geomean difference -0.3% compile_time l/r lhs rhs diff count 4316.000000 4316.000000 469.000000 mean 0.057747 0.057595 -0.003034 std 0.544528 0.543139 0.007625 min 0.000000 0.000000 -0.035294 25% 0.000000 0.000000 -0.007006 50% 0.000000 0.000000 -0.003257 75% 0.000000 0.000000 0.000000 max 18.295300 18.252500 0.030151 ```
Previous stabs at this setting (llvm#71166) hypertuned it for SPEC2017, but Clang's own compilation can benefit from a slightly lower threshold, yielding a 0.3% improvement in compile time, while still not regressing SPEC. Most notable beneficiaries of this change are: - `llvm::Instruction::getNumSuccessors` (11 cases) - `llvm::Instruction::getSuccessor` (11 cases) Test Suite with a bootstrapped build: ``` Tests: 4316 Metric: compile_time Program compile_time lhs rhs diff SingleSour...ce/UnitTests/SignlessTypes/div 0.02 0.02 3.0% SingleSour.../UnitTests/SignlessTypes/cast2 0.02 0.02 2.8% SingleSource/Benchmarks/Misc/flops-4 0.02 0.02 1.9% SingleSour...ebra/solvers/cholesky/cholesky 0.05 0.05 1.8% SingleSour...tTests/2020-01-06-coverage-006 0.02 0.02 1.7% SingleSour...ce/Benchmarks/Stanford/FloatMM 0.03 0.03 1.7% SingleSour...9-04-16-BitfieldInitialization 0.02 0.02 1.7% SingleSour...nitTests/2003-07-08-BitOpsTest 0.02 0.02 1.7% MultiSourc...marks/Prolangs-C++/vcirc/vcirc 0.02 0.02 1.6% MultiSourc...Prolangs-C/fixoutput/fixoutput 0.05 0.05 1.5% SingleSour...h/stencils/jacobi-1d/jacobi-1d 0.04 0.04 1.4% MultiSourc...rks/Prolangs-C++/office/office 0.28 0.28 1.4% SingleSour...arks/Adobe-C++/functionobjects 0.39 0.40 1.3% SingleSour...Tests/2003-10-29-ScalarReplBug 0.02 0.02 1.2% SingleSour...arks/Adobe-C++/stepanov_vector 0.41 0.42 1.2% Geomean difference -0.3% compile_time l/r lhs rhs diff count 4316.000000 4316.000000 469.000000 mean 0.057747 0.057595 -0.003034 std 0.544528 0.543139 0.007625 min 0.000000 0.000000 -0.035294 25% 0.000000 0.000000 -0.007006 50% 0.000000 0.000000 -0.003257 75% 0.000000 0.000000 0.000000 max 18.295300 18.252500 0.030151 ``` (cherry picked from commit bb1f5c3)
Previous stabs at this setting (#71166) hypertuned it for SPEC2017, but Clang's own compilation can benefit from a slightly lower threshold, yielding a 0.3% improvement in compile time, while still not regressing SPEC.
Most notable beneficiaries of this change are:
llvm::Instruction::getNumSuccessors
(11 cases)llvm::Instruction::getSuccessor
(11 cases)Test Suite with a bootstrapped build: