[PATCH] D101817: [MC][X86] Automatic alignment for Macro-Op Fusion
Amir Ayupov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 11 15:42:51 PDT 2021
Amir abandoned this revision.
Amir added a comment.
Intel folks have collected perf data for this optimization on SPECint17 workload:
SPECcpu2017
Compiler/optimizer: bin/clang
Overall score: 228
Breakdown
500.perlbench_r 235
502.gcc_r 238
505.mcf_r 165
520.omnetpp_r 132
523.xalancbmk_r 190
525.x264_r 465
531.deepsjeng_r 228
541.leela_r 232
548.exchange2_r 423
557.xz_r 162
Compiler/optimizer: bin/clang -mllvm -x86-align-for-macrofusion
Overall score: 228
Breakdown
500.perlbench_r 235
502.gcc_r 238
505.mcf_r 164
520.omnetpp_r 131
523.xalancbmk_r 190
525.x264_r 464
531.deepsjeng_r 228
541.leela_r 234
548.exchange2_r 422
557.xz_r 161
I'll abandon this diff based on that data. This functionality has non-trivial compile-time overhead (as it relies on relaxation for extra fragments), but it doesn't bring any perf benefit to workloads represented by SPECint17.
================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp:188
+ // Required AlignBranch kinds for macro-fusion alignment
+ AlignBranchType.clear();
+ AlignBranchType.addKind(X86::AlignBranchFused);
----------------
skan wrote:
> Why do you clear the branch type here?
I think it doesn't make sense to have JCC erratum mitigation for the other branch types,
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101817/new/
https://reviews.llvm.org/D101817
More information about the llvm-commits
mailing list