[llvm] 8524977 - [X86] AMD Zen 3: double the LoopMicroOpBufferSize
Roman Lebedev via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 4 15:24:13 PDT 2021
Author: Roman Lebedev
Date: 2021-06-05T01:23:58+03:00
New Revision: 852497711dae35f978a7a3f2e1889fc8fe15fc3b
URL: https://github.com/llvm/llvm-project/commit/852497711dae35f978a7a3f2e1889fc8fe15fc3b
DIFF: https://github.com/llvm/llvm-project/commit/852497711dae35f978a7a3f2e1889fc8fe15fc3b.diff
LOG: [X86] AMD Zen 3: double the LoopMicroOpBufferSize
While the IndVars issue (PR50384) has been resolved,
and the compile performance improved, a new blocker emerged,
the codegen machine instruction scheduling is also quadratic.
So we still can't really specify the right value here.
Filed PR50584.
Added:
Modified:
llvm/lib/Target/X86/X86ScheduleZnver3.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleZnver3.td b/llvm/lib/Target/X86/X86ScheduleZnver3.td
index fae9b1b51ef1..599f0b5de74e 100644
--- a/llvm/lib/Target/X86/X86ScheduleZnver3.td
+++ b/llvm/lib/Target/X86/X86ScheduleZnver3.td
@@ -35,10 +35,11 @@ def Znver3Model : SchedMachineModel {
// The maximum capacity of the op cache is 4K ops.
// Agner, 22.5 µop cache
// The size of the µop cache is big enough for holding most critical loops.
- // FIXME: PR50384: IndVars has quadradic complexity, with large values here
- // the compilation of certain loops ends up taking way too long.
+ // FIXME: PR50584: MachineScheduler/PostRAScheduler have quadradic complexity,
+ // with large values here the compilation of certain loops
+ // ends up taking way too long.
// let LoopMicroOpBufferSize = 4096;
- let LoopMicroOpBufferSize = 256;
+ let LoopMicroOpBufferSize = 512;
// AMD SOG 19h, 2.6.2 L1 Data Cache
// The L1 data cache has a 4- or 5- cycle integer load-to-use latency.
// AMD SOG 19h, 2.12 L1 Data Cache
More information about the llvm-commits
mailing list