summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64Subtarget.h
diff options
context:
space:
mode:
authorEvandro Menezes <e.menezes@samsung.com>2019-01-14 23:54:36 +0000
committerEvandro Menezes <e.menezes@samsung.com>2019-01-14 23:54:36 +0000
commitbf59cb02c3db77ac1fa0b931bda32dfa44b3ab58 (patch)
treedd7ba75ad12bd66fec4246964018ec49a9e4e89f /llvm/lib/Target/AArch64/AArch64Subtarget.h
parented2df18a48d55325b5758c850fd321a99fd69ae7 (diff)
downloadbcm5719-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.h9
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; }
OpenPOWER on IntegriCloud