From: Evandro Menezes Date: Fri, 14 Dec 2018 20:04:58 +0000 (+0000) Subject: [AArch64] Simplify the scheduling predicates (NFC) X-Git-Tag: llvmorg-8.0.0-rc1~2076 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ea9d90083fb096dc210c7a05f60cbce2af83f6ad;p=platform%2Fupstream%2Fllvm.git [AArch64] Simplify the scheduling predicates (NFC) The instruction encodings make it unnecessary to distinguish extended W-form from X-form instructions. llvm-svn: 349185 --- diff --git a/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td b/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td index 7014c0c..f8533d1 100644 --- a/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td +++ b/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td @@ -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>>; def ExynosExtPred : MCSchedPredicate; +// 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>>; +def ExynosScaledIdxPred : MCSchedPredicate; + // Identify FP instructions. def ExynosFPPred : MCSchedPredicate>; diff --git a/llvm/lib/Target/AArch64/AArch64SchedPredicates.td b/llvm/lib/Target/AArch64/AArch64SchedPredicates.td index a151c5a..a48f1dc 100644 --- a/llvm/lib/Target/AArch64/AArch64SchedPredicates.td +++ b/llvm/lib/Target/AArch64/AArch64SchedPredicates.td @@ -132,12 +132,10 @@ def CheckQForm : CheckAll<[CheckIsRegOperand<0>, 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; // Identify arithmetic immediate instructions. def IsArithImmOp : CheckOpcode<[ADDWri, ADDXri, ADDSWri, ADDSXri,