[PATCH] D35228: [TableGen] Add support for instruction clusters

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 11 05:19:21 PDT 2017


fhahn added a comment.

In https://reviews.llvm.org/D35228#804631, @MatzeB wrote:

> Can you give an example of a typical use? Is this just a different way to express macrofusion opportunities or is this more or less powerfull?


I agree it would be helpful to see an example, e.g. how this could be used to cluster AArch64 AES instructions.

If this is intended as a replacement for the MacroFusion pass, could the more complicated constraints for fusing MOVK/MOVZ on AArch64 be expressed (lib/target/AArch64/AArch64MacroFusion.cpp from line 130)?



================
Comment at: llvm/include/llvm/MC/MCSchedule.h:91
   int Cycles;
+  bool Cluster;
 
----------------
I assume you added the cluster bit here, because the whole machinery for handling "ReadAdvance" can be easily extended to do add cluster dependencies? It feels that after adding the cluster bit, most related function/class names are slightly misleading, e.g. `getReadAdvanceCycles` now does not only get the number of cycles but also the cluster bit.


Repository:
  rL LLVM

https://reviews.llvm.org/D35228





More information about the llvm-commits mailing list