[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