diff options
| author | Evandro Menezes <e.menezes@samsung.com> | 2019-01-14 23:54:36 +0000 |
|---|---|---|
| committer | Evandro Menezes <e.menezes@samsung.com> | 2019-01-14 23:54:36 +0000 |
| commit | bf59cb02c3db77ac1fa0b931bda32dfa44b3ab58 (patch) | |
| tree | dd7ba75ad12bd66fec4246964018ec49a9e4e89f /llvm/lib/Target/AArch64/AArch64Subtarget.h | |
| parent | ed2df18a48d55325b5758c850fd321a99fd69ae7 (diff) | |
| download | bcm5719-llvm-bf59cb02c3db77ac1fa0b931bda32dfa44b3ab58.tar.gz bcm5719-llvm-bf59cb02c3db77ac1fa0b931bda32dfa44b3ab58.zip | |
[AArch64] Add new target feature to fuse arithmetic and logic operations
This feature enables the fusion of some arithmetic and logic instructions
together.
Differential revision: https://reviews.llvm.org/D56572
llvm-svn: 351139
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64Subtarget.h')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64Subtarget.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.h b/llvm/lib/Target/AArch64/AArch64Subtarget.h index f2ad4b504ac..82f7bb75595 100644 --- a/llvm/lib/Target/AArch64/AArch64Subtarget.h +++ b/llvm/lib/Target/AArch64/AArch64Subtarget.h @@ -166,8 +166,9 @@ protected: bool HasArithmeticCbzFusion = false; bool HasFuseAddress = false; bool HasFuseAES = false; - bool HasFuseCryptoEOR = false; + bool HasFuseArithmeticLogic = false; bool HasFuseCCSelect = false; + bool HasFuseCryptoEOR = false; bool HasFuseLiterals = false; bool DisableLatencySchedHeuristic = false; bool UseRSqrt = false; @@ -311,14 +312,16 @@ public: bool hasArithmeticCbzFusion() const { return HasArithmeticCbzFusion; } bool hasFuseAddress() const { return HasFuseAddress; } bool hasFuseAES() const { return HasFuseAES; } - bool hasFuseCryptoEOR() const { return HasFuseCryptoEOR; } + bool hasFuseArithmeticLogic() const { return HasFuseArithmeticLogic; } bool hasFuseCCSelect() const { return HasFuseCCSelect; } + bool hasFuseCryptoEOR() const { return HasFuseCryptoEOR; } bool hasFuseLiterals() const { return HasFuseLiterals; } /// Return true if the CPU supports any kind of instruction fusion. bool hasFusion() const { return hasArithmeticBccFusion() || hasArithmeticCbzFusion() || - hasFuseAES() || hasFuseCCSelect() || hasFuseLiterals(); + hasFuseAES() || hasFuseArithmeticLogic() || + hasFuseCCSelect() || hasFuseLiterals(); } bool useRSqrt() const { return UseRSqrt; } |

