summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorSumanth Gundapaneni <sgundapa@codeaurora.org>2017-06-30 20:54:24 +0000
committerSumanth Gundapaneni <sgundapa@codeaurora.org>2017-06-30 20:54:24 +0000
commitd2dd79bf849a73f59a2281beb6f472d95db19694 (patch)
tree0787e5dccb70b80f2f82c401ed1359ec31d20502 /llvm/lib/Target
parent03ab2e2b1c85ed25c386b5d4eef707949507b91a (diff)
downloadbcm5719-llvm-d2dd79bf849a73f59a2281beb6f472d95db19694.tar.gz
bcm5719-llvm-d2dd79bf849a73f59a2281beb6f472d95db19694.zip
[Hexagon] Guard the generation of lookup table
The llvm flag "-hexagon-emit-lookup-tables" guards the generation of lookup table generated from a switch statement. Differential Revision: https://reviews.llvm.org/D34819 llvm-svn: 306877
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp8
-rw-r--r--llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
index 4135d0cec70..aac810e29fe 100644
--- a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
@@ -21,6 +21,10 @@ using namespace llvm;
#define DEBUG_TYPE "hexagontti"
+static cl::opt<bool> EmitLookupTables("hexagon-emit-lookup-tables",
+ cl::init(true), cl::Hidden,
+ cl::desc("Control lookup table emission on Hexagon target"));
+
TargetTransformInfo::PopcntSupportKind
HexagonTTIImpl::getPopcntSupport(unsigned IntTyWidthInBit) const {
// Return Fast Hardware support as every input < 64 bits will be promoted
@@ -70,3 +74,7 @@ int HexagonTTIImpl::getUserCost(const User *U,
return TargetTransformInfo::TCC_Free;
return BaseT::getUserCost(U, Operands);
}
+
+bool HexagonTTIImpl::shouldBuildLookupTables() const {
+ return EmitLookupTables;
+}
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
index f08a2731057..ab5a6e07d87 100644
--- a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
+++ b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
@@ -63,6 +63,9 @@ public:
/// @}
int getUserCost(const User *U, ArrayRef<const Value *> Operands);
+
+ // Hexagon specific decision to generate a lookup table.
+ bool shouldBuildLookupTables() const;
};
} // end namespace llvm
OpenPOWER on IntegriCloud