[PATCH] D22042: [AArch64] Macro fusion of simple ALU ops with branches for Broadcom's Vulcan

pankaj gode via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 7 03:36:31 PDT 2016

pgode added inline comments.

Comment at: lib/Target/AArch64/AArch64InstrInfo.cpp:1806
@@ -1805,1 +1805,3 @@
     if (SecondOpcode == AArch64::Bcc) {
+      if (Subtarget.getProcFamily() == AArch64Subtarget::Vulcan) {
+        // All simple ALU operations that use one micro-op
rengolin wrote:
> rengolin wrote:
> > This looks like a job for table-gen?
> Also, please, don't add more getProcFamily calls, use sub-target features.
For Cyclone, only subset of 6 instruction fusion cases are applicable, but for Vulcan, additional instructions are applicable, which may not be applicable for Cyclone. 
So, to generalize this under one 'Subtarget Feature', getProcFamily call seems unavoidable. Please suggest.

Or, Is a new subtarget feature, such as 'FeatureMacroOpFusionVulcanSubset' a better option? 

Also, I am not sure about the table-gen option and how it can be done there. 


More information about the llvm-commits mailing list