[PATCH] D34144: [CodeGen] Add generic MacroFusion pass.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 13 06:03:20 PDT 2017


fhahn created this revision.
Herald added subscribers: kristof.beyls, javed.absar, mgorny, aemerson.

This patch adds a generic MacroFusion pass, that is used on X86 and
AArch64, which both define target-specific shouldScheduleAdjacent
functions. This generic pass should make it easier for other targets to
implement macro fusion and I intend to add macro fusion for ARM shortly.

This changes the behavior of macro fusion on X86 slightly, as the
generic MacroFusion makes instructions dependent on FirstSU also dependent on
SecondSU to prevent them from being scheduled between FirstSU and and SecondSU.
This improved the number of instruction pairs scheduled back to back on
AArch64 and does not cause any testsuite regressions on X86.


https://reviews.llvm.org/D34144

Files:
  include/llvm/CodeGen/MacroFusion.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/MacroFusion.cpp
  lib/Target/AArch64/AArch64MacroFusion.cpp
  lib/Target/X86/X86MacroFusion.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34144.102324.patch
Type: text/x-patch
Size: 16902 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170613/15812c5a/attachment.bin>


More information about the llvm-commits mailing list