[llvm] r349185 - [AArch64] Simplify the scheduling predicates (NFC)
Evandro Menezes via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 14 12:04:58 PST 2018
Author: evandro
Date: Fri Dec 14 12:04:58 2018
New Revision: 349185
URL: http://llvm.org/viewvc/llvm-project?rev=349185&view=rev
Log:
[AArch64] Simplify the scheduling predicates (NFC)
The instruction encodings make it unnecessary to distinguish extended W-form
from X-form instructions.
Modified:
llvm/trunk/lib/Target/AArch64/AArch64SchedPredExynos.td
llvm/trunk/lib/Target/AArch64/AArch64SchedPredicates.td
Modified: llvm/trunk/lib/Target/AArch64/AArch64SchedPredExynos.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64SchedPredExynos.td?rev=349185&r1=349184&r2=349185&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64SchedPredExynos.td (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64SchedPredExynos.td Fri Dec 14 12:04:58 2018
@@ -35,21 +35,13 @@ def ExynosExtFn : TIIPredicate<
"isExynosExtFast",
MCOpcodeSwitchStatement<
[MCOpcodeSwitchCase<
- IsArithExt32Op.ValidOpcodes,
+ IsArithExtOp.ValidOpcodes,
MCReturnStatement<
CheckAny<[CheckExtBy0,
CheckAll<
- [CheckExtUXTW,
- CheckAny<
- [CheckExtBy1,
- CheckExtBy2,
- CheckExtBy3]>]>]>>>,
- MCOpcodeSwitchCase<
- IsArithExt64Op.ValidOpcodes,
- MCReturnStatement<
- CheckAny<[CheckExtBy0,
- CheckAll<
- [CheckExtUXTX,
+ [CheckAny<
+ [CheckExtUXTW,
+ CheckExtUXTX]>,
CheckAny<
[CheckExtBy1,
CheckExtBy2,
@@ -57,6 +49,20 @@ def ExynosExtFn : TIIPredicate<
MCReturnStatement<FalsePred>>>;
def ExynosExtPred : MCSchedPredicate<ExynosExtFn>;
+// Identify a load or store using the register offset addressing mode
+// with a scaled non-extended register.
+def ExynosScaledIdxFn : TIIPredicate<"isExynosScaledAddr",
+ MCOpcodeSwitchStatement<
+ [MCOpcodeSwitchCase<
+ IsLoadStoreRegOffsetOp.ValidOpcodes,
+ MCReturnStatement<
+ CheckAny<
+ [CheckMemExtSXTW,
+ CheckMemExtUXTW,
+ CheckMemScaled]>>>],
+ MCReturnStatement<FalsePred>>>;
+def ExynosScaledIdxPred : MCSchedPredicate<ExynosScaledIdxFn>;
+
// Identify FP instructions.
def ExynosFPPred : MCSchedPredicate<CheckAny<[CheckDForm, CheckQForm]>>;
Modified: llvm/trunk/lib/Target/AArch64/AArch64SchedPredicates.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64SchedPredicates.td?rev=349185&r1=349184&r2=349185&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64SchedPredicates.td (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64SchedPredicates.td Fri Dec 14 12:04:58 2018
@@ -132,12 +132,10 @@ def CheckQForm : CheckAll<[C
CheckRegOperand<0, Q31>]>]>;
// Identify arithmetic instructions with extend.
-def IsArithExt32Op : CheckOpcode<[ADDWrx, ADDXrx, ADDSWrx, ADDSXrx,
- SUBWrx, SUBXrx, SUBSWrx, SUBSXrx]>;
-def IsArithExt64Op : CheckOpcode<[ADDXrx64, ADDSXrx64,
+def IsArithExtOp : CheckOpcode<[ADDWrx, ADDXrx, ADDSWrx, ADDSXrx,
+ SUBWrx, SUBXrx, SUBSWrx, SUBSXrx,
+ ADDXrx64, ADDSXrx64,
SUBXrx64, SUBSXrx64]>;
-def IsArithExtOp : CheckOpcode<!listconcat(IsArithExt32Op.ValidOpcodes,
- IsArithExt64Op.ValidOpcodes)>;
// Identify arithmetic immediate instructions.
def IsArithImmOp : CheckOpcode<[ADDWri, ADDXri, ADDSWri, ADDSXri,
More information about the llvm-commits
mailing list