LLVM  10.0.0svn
Classes | Namespaces | Typedefs | Enumerations | Functions
SwitchLoweringUtils.h File Reference
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/IR/Constants.h"
#include "llvm/Support/BranchProbability.h"
Include dependency graph for SwitchLoweringUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::SwitchCG::CaseCluster
 A cluster of case labels. More...
 
struct  llvm::SwitchCG::CaseBits
 
struct  llvm::SwitchCG::CaseBlock
 This structure is used to communicate between SelectionDAGBuilder and SDISel for the code generation of additional basic blocks needed by multi-case switch statements. More...
 
struct  llvm::SwitchCG::CaseBlock::PredInfoPair
 
struct  llvm::SwitchCG::JumpTable
 
struct  llvm::SwitchCG::JumpTableHeader
 
struct  llvm::SwitchCG::BitTestCase
 
struct  llvm::SwitchCG::BitTestBlock
 
struct  llvm::SwitchCG::SwitchWorkListItem
 
class  llvm::SwitchCG::SwitchLowering
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::SwitchCG
 

Typedefs

using llvm::SwitchCG::CaseClusterVector = std::vector< CaseCluster >
 
using llvm::SwitchCG::CaseClusterIt = CaseClusterVector::iterator
 
using llvm::SwitchCG::CaseBitsVector = std::vector< CaseBits >
 
using llvm::SwitchCG::JumpTableBlock = std::pair< JumpTableHeader, JumpTable >
 
using llvm::SwitchCG::BitTestInfo = SmallVector< BitTestCase, 3 >
 
using llvm::SwitchCG::SwitchWorkList = SmallVector< SwitchWorkListItem, 4 >
 

Enumerations

enum  llvm::SwitchCG::CaseClusterKind { llvm::SwitchCG::CC_Range, llvm::SwitchCG::CC_JumpTable, llvm::SwitchCG::CC_BitTests }
 

Functions

void llvm::SwitchCG::sortAndRangeify (CaseClusterVector &Clusters)
 Sort Clusters and merge adjacent cases. More...
 
uint64_t llvm::SwitchCG::getJumpTableRange (const CaseClusterVector &Clusters, unsigned First, unsigned Last)
 Return the range of value within a range. More...
 
uint64_t llvm::SwitchCG::getJumpTableNumCases (const SmallVectorImpl< unsigned > &TotalCases, unsigned First, unsigned Last)
 Return the number of cases within a range. More...