diff options
author | Sumanth Gundapaneni <sgundapa@codeaurora.org> | 2017-06-30 20:54:24 +0000 |
---|---|---|
committer | Sumanth Gundapaneni <sgundapa@codeaurora.org> | 2017-06-30 20:54:24 +0000 |
commit | d2dd79bf849a73f59a2281beb6f472d95db19694 (patch) | |
tree | 0787e5dccb70b80f2f82c401ed1359ec31d20502 /llvm/lib/Target | |
parent | 03ab2e2b1c85ed25c386b5d4eef707949507b91a (diff) | |
download | bcm5719-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.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h | 3 |
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 |