LLVM: lib/CodeGen/TargetLoweringBase.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | LCALLS(A, B) |
| #define | LCALL5(A) |
| #define | OP_TO_LIBCALL(Name, Enum) |
| #define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) |
| #define | BEGIN_REGISTER_VP_SDNODE(SDOPC, ...) |
| #define | HANDLE_INST(NUM, OPCODE, CLASS) |
| #define | LAST_OTHER_INST(NUM) |
| Functions | |
|---|---|
| static unsigned | getVectorTypeBreakdownMVT (MVT VT, MVT &IntermediateVT, unsigned &NumIntermediates, MVT &RegisterVT, TargetLoweringBase *TLI) |
| static StringRef | getRecipEstimateForFunc (MachineFunction &MF) |
| Get the reciprocal estimate attribute string for a function that will override the target defaults. | |
| static std::string | getReciprocalOpName (bool IsSqrt, EVT VT) |
| Construct a string for the given reciprocal operation of the given type. | |
| static bool | parseRefinementStep (StringRef In, size_t &Position, uint8_t &Value) |
| Return the character position and value (a single numeric character) of a customized refinement operation in the input string if it exists. | |
| static int | getOpEnabled (bool IsSqrt, EVT VT, StringRef Override) |
| For the input attribute string, return one of the ReciprocalEstimate enum status values (enabled, disabled, or not specified) for this operation on the specified data type. | |
| static int | getOpRefinementSteps (bool IsSqrt, EVT VT, StringRef Override) |
| For the input attribute string, return the customized refinement step count for this operation on the specified data type. |
| Variables | |
|---|---|
| static cl::opt< bool > | JumpIsExpensiveOverride ("jump-is-expensive", cl::init(false), cl::desc("Do not create extra branches to split comparison logic."), cl::Hidden) |
| static cl::opt< unsigned > | MinimumJumpTableEntries ("min-jump-table-entries", cl::init(4), cl::Hidden, cl::desc("Set minimum number of entries to use a jump table.")) |
| static cl::opt< unsigned > | MaximumJumpTableSize ("max-jump-table-size", cl::init(UINT_MAX), cl::Hidden, cl::desc("Set maximum size of jump tables.")) |
| static cl::opt< unsigned > | JumpTableDensity ("jump-table-density", cl::init(10), cl::Hidden, cl::desc("Minimum density for building a jump table in " "a normal function")) |
| Minimum jump table density for normal functions. | |
| static cl::opt< unsigned > | OptsizeJumpTableDensity ("optsize-jump-table-density", cl::init(40), cl::Hidden, cl::desc("Minimum density for building a jump table in " "an optsize function")) |
| Minimum jump table density for -Os or -Oz functions. | |
| static cl::opt< unsigned > | MinimumBitTestCmpsOverride ("min-bit-test-cmps", cl::init(2), cl::Hidden, cl::desc("Set minimum of largest number of comparisons " "to use bit test for switch.")) |
| static cl::opt< bool > | DisableStrictNodeMutation ("disable-strictnode-mutation", cl::desc("Don't mutate strict-float node to a legalize node"), cl::init(false), cl::Hidden) |
◆ BEGIN_REGISTER_VP_SDNODE
| #define BEGIN_REGISTER_VP_SDNODE | ( | SDOPC, |
|---|---|---|
| ... ) |
Value:
setOperationAction(ISD::SDOPC, VT, Expand);
◆ DAG_INSTRUCTION
| #define DAG_INSTRUCTION | ( | NAME, |
|---|---|---|
| NARG, | ||
| ROUND_MODE, | ||
| INTRINSIC, | ||
| DAGN ) |
Value:
setOperationAction(ISD::STRICT_##DAGN, VT, Expand);
◆ HANDLE_INST
| #define HANDLE_INST | ( | NUM, |
|---|---|---|
| OPCODE, | ||
| CLASS ) |
◆ LAST_OTHER_INST
| #define LAST_OTHER_INST | ( | NUM | ) |
|---|
Value:
InstructionOpcodesCount = NUM
◆ LCALL5
◆ LCALLS
Value:
{ A##B##_RELAX, A##B##_ACQ, A##B##_REL, A##B##_ACQ_REL }
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
◆ OP_TO_LIBCALL
| #define OP_TO_LIBCALL | ( | Name, |
|---|---|---|
| Enum ) |
Value:
case Name: \
switch (VT.SimpleTy) { \
default: \
return UNKNOWN_LIBCALL; \
case MVT::i8: \
return Enum##_1; \
case MVT::i16: \
return Enum##_2; \
case MVT::i32: \
return Enum##_4; \
case MVT::i64: \
return Enum##_8; \
case MVT::i128: \
return Enum##_16; \
}
Referenced by llvm::RTLIB::getSYNC().
◆ getOpEnabled()
For the input attribute string, return one of the ReciprocalEstimate enum status values (enabled, disabled, or not specified) for this operation on the specified data type.
Definition at line 2459 of file TargetLoweringBase.cpp.
References llvm::TargetLoweringBase::Disabled, llvm::StringRef::empty(), llvm::TargetLoweringBase::Enabled, getReciprocalOpName(), parseRefinementStep(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::StringRef::split(), llvm::StringRef::substr(), and llvm::TargetLoweringBase::Unspecified.
Referenced by llvm::TargetLoweringBase::getRecipEstimateDivEnabled(), and llvm::TargetLoweringBase::getRecipEstimateSqrtEnabled().
◆ getOpRefinementSteps()
For the input attribute string, return the customized refinement step count for this operation on the specified data type.
If the step count does not exist, return the ReciprocalEstimate enum value for unspecified.
Definition at line 2519 of file TargetLoweringBase.cpp.
References assert(), llvm::StringRef::empty(), getReciprocalOpName(), parseRefinementStep(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::StringRef::split(), llvm::StringRef::substr(), and llvm::TargetLoweringBase::Unspecified.
Referenced by llvm::TargetLoweringBase::getDivRefinementSteps(), and llvm::TargetLoweringBase::getSqrtRefinementSteps().
◆ getRecipEstimateForFunc()
◆ getReciprocalOpName()
◆ getVectorTypeBreakdownMVT()
Definition at line 1413 of file TargetLoweringBase.cpp.
References llvm::bit_ceil(), llvm::ElementCount::getFixed(), llvm::TargetLoweringBase::getRegisterType(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getVectorElementCount(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorVT(), llvm::isPowerOf2_32(), llvm::MVT::isScalableVector(), llvm::TargetLoweringBase::isTypeLegal(), and llvm_unreachable.
Referenced by llvm::TargetLoweringBase::computeRegisterProperties().
◆ parseRefinementStep()
◆ DisableStrictNodeMutation
| cl::opt< bool > DisableStrictNodeMutation("disable-strictnode-mutation", cl::desc("Don't mutate strict-float node to a legalize node"), cl::init(false), cl::Hidden) ( "disable-strictnode-mutation" , cl::desc("Don't mutate strict-float node to a legalize node") , cl::init(false) , cl::Hidden ) | static |
|---|
◆ JumpIsExpensiveOverride
| cl::opt< bool > JumpIsExpensiveOverride("jump-is-expensive", cl::init(false), cl::desc("Do not create extra branches to split comparison logic."), cl::Hidden) ( "jump-is-expensive" , cl::init(false) , cl::desc("Do not create extra branches to split comparison logic.") , cl::Hidden ) | static |
|---|
◆ JumpTableDensity
| cl::opt< unsigned > JumpTableDensity("jump-table-density", cl::init(10), cl::Hidden, cl::desc("Minimum density for building a jump table in " "a normal function")) ( "jump-table-density" , cl::init(10) , cl::Hidden , cl::desc("Minimum density for building a jump table in " "a normal function") ) | static |
|---|
◆ MaximumJumpTableSize
| cl::opt< unsigned > MaximumJumpTableSize("max-jump-table-size", cl::init(UINT_MAX), cl::Hidden, cl::desc("Set maximum size of jump tables.")) ( "max-jump-table-size" , cl::init(UINT_MAX) , cl::Hidden , cl::desc("Set maximum size of jump tables.") ) | static |
|---|
◆ MinimumBitTestCmpsOverride
◆ MinimumJumpTableEntries
| cl::opt< unsigned > MinimumJumpTableEntries("min-jump-table-entries", cl::init(4), cl::Hidden, cl::desc("Set minimum number of entries to use a jump table.")) ( "min-jump-table-entries" , cl::init(4) , cl::Hidden , cl::desc("Set minimum number of entries to use a jump table.") ) | static |
|---|
◆ OptsizeJumpTableDensity
| cl::opt< unsigned > OptsizeJumpTableDensity("optsize-jump-table-density", cl::init(40), cl::Hidden, cl::desc("Minimum density for building a jump table in " "an optsize function")) ( "optsize-jump-table-density" , cl::init(40) , cl::Hidden , cl::desc("Minimum density for building a jump table in " "an optsize function") ) | static |
|---|