forked from OSchip/llvm-project
[JumpTables] Let targets decide which switch instructions are suitable
This commits the non-controversial part of https://reviews.llvm.org/D41029 (making the queries virtual). The PPC-specific portion of this will be committed in a subsequent patch once some of the finer points are ironed out. llvm-svn: 321182
This commit is contained in:
parent
3a934d6ab9
commit
b55b0ac160
|
@ -824,8 +824,8 @@ public:
|
||||||
/// also combined within this function. Currently, the minimum size check is
|
/// also combined within this function. Currently, the minimum size check is
|
||||||
/// performed in findJumpTable() in SelectionDAGBuiler and
|
/// performed in findJumpTable() in SelectionDAGBuiler and
|
||||||
/// getEstimatedNumberOfCaseClusters() in BasicTTIImpl.
|
/// getEstimatedNumberOfCaseClusters() in BasicTTIImpl.
|
||||||
bool isSuitableForJumpTable(const SwitchInst *SI, uint64_t NumCases,
|
virtual bool isSuitableForJumpTable(const SwitchInst *SI, uint64_t NumCases,
|
||||||
uint64_t Range) const {
|
uint64_t Range) const {
|
||||||
const bool OptForSize = SI->getParent()->getParent()->optForSize();
|
const bool OptForSize = SI->getParent()->getParent()->optForSize();
|
||||||
const unsigned MinDensity = getMinimumJumpTableDensity(OptForSize);
|
const unsigned MinDensity = getMinimumJumpTableDensity(OptForSize);
|
||||||
const unsigned MaxJumpTableSize =
|
const unsigned MaxJumpTableSize =
|
||||||
|
@ -1276,7 +1276,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return lower limit for number of blocks in a jump table.
|
/// Return lower limit for number of blocks in a jump table.
|
||||||
unsigned getMinimumJumpTableEntries() const;
|
virtual unsigned getMinimumJumpTableEntries() const;
|
||||||
|
|
||||||
/// Return lower limit of the density in a jump table.
|
/// Return lower limit of the density in a jump table.
|
||||||
unsigned getMinimumJumpTableDensity(bool OptForSize) const;
|
unsigned getMinimumJumpTableDensity(bool OptForSize) const;
|
||||||
|
|
Loading…
Reference in New Issue