[PATCH] D55375: [AArch64] Refactor the scheduling predicates

Andrea Di Biagio via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 6 09:42:37 PST 2018


andreadb added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedPredicates.td:17-27
+// Check the extension type in arithmetic instructions.
+let FunctionMapper = "AArch64_AM::getArithExtendType" in {
+  def CheckExtUXTB                      : CheckImmOperand_s<3, "AArch64_AM::UXTB">;
+  def CheckExtUXTH                      : CheckImmOperand_s<3, "AArch64_AM::UXTH">;
+  def CheckExtUXTW                      : CheckImmOperand_s<3, "AArch64_AM::UXTW">;
+  def CheckExtUXTX                      : CheckImmOperand_s<3, "AArch64_AM::UXTX">;
+  def CheckExtSXTB                      : CheckImmOperand_s<3, "AArch64_AM::SXTB">;
----------------
Needed by D55345 too.
Without that definition, patch D55345 will not build because CheckExtUXTW is not defined (see AArch64SchedPredExynos.td:29).


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedPredicates.td:29-33
+// Check for shifting in extended arithmetic instructions.
+foreach I = {0-3} in {
+  let FunctionMapper = "AArch64_AM::getArithShiftValue" in
+  def CheckExtBy#I                      : CheckImmOperand<3, I>;
+}
----------------
This is needed by D55345 too.


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedPredicates.td:64-65
 
+// Identify whether an instruction is the 64-bit NEON form based on its result.
+def CheckDForm             : CheckAll<[CheckIsRegOperand<0>,
+                                       CheckAny<[CheckRegOperand<0, D0>,
----------------
Needed by D55345.


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedPredicates.td:100
+// Identify whether an instruction is the 128-bit NEON form based on its result.
+def CheckQForm             : CheckAll<[CheckIsRegOperand<0>,
+                                       CheckAny<[CheckRegOperand<0, Q0>,
----------------
Same.


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedPredicates.td:135
 // Identify arithmetic instructions with extend.
-def IsArithExtPred        : CheckOpcode<[ADDWrx, ADDXrx, ADDXrx64, ADDSWrx, ADDSXrx, ADDSXrx64,
-                                         SUBWrx, SUBXrx, SUBXrx64, SUBSWrx, SUBSXrx, SUBSXrx64]>;
+def IsArithExt32Op         : CheckOpcode<[ADDWrx, ADDXrx, ADDSWrx, ADDSXrx,
+                                          SUBWrx, SUBXrx, SUBSWrx, SUBSXrx]>;
----------------
This definition is also needed by your other patch D55345 in AArch64SchedPredExynos.td:25


================
Comment at: llvm/lib/Target/AArch64/AArch64SchedPredicates.td:137
+                                          SUBWrx, SUBXrx, SUBSWrx, SUBSXrx]>;
+def IsArithExt64Op         : CheckOpcode<[ADDXrx64, ADDSXrx64,
+                                          SUBXrx64, SUBSXrx64]>;
----------------
Same.
It is required by D55345 in AArch64SchedPredExynos.td:35


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55375/new/

https://reviews.llvm.org/D55375





More information about the llvm-commits mailing list