LLVM API Documentation
#include "llvm/Target/TargetLowering.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Triple.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/StackMaps.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Mangler.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Target/TargetSubtargetInfo.h"
#include <cctype>
#include "llvm/IR/Instruction.def"
Go to the source code of this file.
Defines | |
#define | HANDLE_INST(NUM, OPCODE, CLASS) OPCODE = NUM, |
#define | LAST_OTHER_INST(NUM) InstructionOpcodesCount = NUM |
Functions | |
static void | InitLibcallNames (const char **Names, const Triple &TT) |
static void | InitLibcallCallingConvs (CallingConv::ID *CCs) |
static void | InitCmpLibcallCCs (ISD::CondCode *CCs) |
static unsigned | getVectorTypeBreakdownMVT (MVT VT, MVT &IntermediateVT, unsigned &NumIntermediates, MVT &RegisterVT, TargetLoweringBase *TLI) |
#define HANDLE_INST | ( | NUM, | |
OPCODE, | |||
CLASS | |||
) | OPCODE = NUM, |
#define LAST_OTHER_INST | ( | NUM | ) | InstructionOpcodesCount = NUM |
static unsigned getVectorTypeBreakdownMVT | ( | MVT | VT, |
MVT & | IntermediateVT, | ||
unsigned & | NumIntermediates, | ||
MVT & | RegisterVT, | ||
TargetLoweringBase * | TLI | ||
) | [static] |
Definition at line 886 of file TargetLoweringBase.cpp.
References llvm::TargetLoweringBase::getRegisterType(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorNumElements(), llvm::MVT::getVectorVT(), llvm::isPowerOf2_32(), llvm::TargetLoweringBase::isTypeLegal(), and llvm::NextPowerOf2().
Referenced by llvm::TargetLoweringBase::computeRegisterProperties().
static void InitCmpLibcallCCs | ( | ISD::CondCode * | CCs | ) | [static] |
InitCmpLibcallCCs - Set default comparison libcall CC.
Definition at line 659 of file TargetLoweringBase.cpp.
References llvm::LibFunc::memset, llvm::RTLIB::O_F128, llvm::RTLIB::O_F32, llvm::RTLIB::O_F64, llvm::RTLIB::OEQ_F128, llvm::RTLIB::OEQ_F32, llvm::RTLIB::OEQ_F64, llvm::RTLIB::OGE_F128, llvm::RTLIB::OGE_F32, llvm::RTLIB::OGE_F64, llvm::RTLIB::OGT_F128, llvm::RTLIB::OGT_F32, llvm::RTLIB::OGT_F64, llvm::RTLIB::OLE_F128, llvm::RTLIB::OLE_F32, llvm::RTLIB::OLE_F64, llvm::RTLIB::OLT_F128, llvm::RTLIB::OLT_F32, llvm::RTLIB::OLT_F64, llvm::ISD::SETCC_INVALID, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::RTLIB::UNE_F128, llvm::RTLIB::UNE_F32, llvm::RTLIB::UNE_F64, llvm::RTLIB::UNKNOWN_LIBCALL, llvm::RTLIB::UO_F128, llvm::RTLIB::UO_F32, and llvm::RTLIB::UO_F64.
Referenced by llvm::TargetLoweringBase::TargetLoweringBase().
static void InitLibcallCallingConvs | ( | CallingConv::ID * | CCs | ) | [static] |
InitLibcallCallingConvs - Set default libcall CallingConvs.
Definition at line 417 of file TargetLoweringBase.cpp.
References llvm::CallingConv::C, and llvm::RTLIB::UNKNOWN_LIBCALL.
Referenced by llvm::TargetLoweringBase::TargetLoweringBase().
static void InitLibcallNames | ( | const char ** | Names, |
const Triple & | TT | ||
) | [static] |
InitLibcallNames - Set default libcall names.
Definition at line 43 of file TargetLoweringBase.cpp.
References llvm::RTLIB::ADD_F128, llvm::RTLIB::ADD_F32, llvm::RTLIB::ADD_F64, llvm::RTLIB::ADD_F80, llvm::RTLIB::ADD_PPCF128, llvm::RTLIB::CEIL_F128, llvm::RTLIB::CEIL_F32, llvm::RTLIB::CEIL_F64, llvm::RTLIB::CEIL_F80, llvm::RTLIB::CEIL_PPCF128, llvm::RTLIB::COPYSIGN_F128, llvm::RTLIB::COPYSIGN_F32, llvm::RTLIB::COPYSIGN_F64, llvm::RTLIB::COPYSIGN_F80, llvm::RTLIB::COPYSIGN_PPCF128, llvm::RTLIB::COS_F128, llvm::RTLIB::COS_F32, llvm::RTLIB::COS_F64, llvm::RTLIB::COS_F80, llvm::RTLIB::COS_PPCF128, llvm::RTLIB::DIV_F128, llvm::RTLIB::DIV_F32, llvm::RTLIB::DIV_F64, llvm::RTLIB::DIV_F80, llvm::RTLIB::DIV_PPCF128, llvm::RTLIB::EXP2_F128, llvm::RTLIB::EXP2_F32, llvm::RTLIB::EXP2_F64, llvm::RTLIB::EXP2_F80, llvm::RTLIB::EXP2_PPCF128, llvm::RTLIB::EXP_F128, llvm::RTLIB::EXP_F32, llvm::RTLIB::EXP_F64, llvm::RTLIB::EXP_F80, llvm::RTLIB::EXP_PPCF128, llvm::RTLIB::FLOOR_F128, llvm::RTLIB::FLOOR_F32, llvm::RTLIB::FLOOR_F64, llvm::RTLIB::FLOOR_F80, llvm::RTLIB::FLOOR_PPCF128, llvm::RTLIB::FMA_F128, llvm::RTLIB::FMA_F32, llvm::RTLIB::FMA_F64, llvm::RTLIB::FMA_F80, llvm::RTLIB::FMA_PPCF128, llvm::RTLIB::FPEXT_F16_F32, llvm::RTLIB::FPEXT_F32_F128, llvm::RTLIB::FPEXT_F32_F64, llvm::RTLIB::FPEXT_F64_F128, llvm::RTLIB::FPROUND_F128_F16, llvm::RTLIB::FPROUND_F128_F32, llvm::RTLIB::FPROUND_F128_F64, llvm::RTLIB::FPROUND_F32_F16, llvm::RTLIB::FPROUND_F64_F16, llvm::RTLIB::FPROUND_F64_F32, llvm::RTLIB::FPROUND_F80_F16, llvm::RTLIB::FPROUND_F80_F32, llvm::RTLIB::FPROUND_F80_F64, llvm::RTLIB::FPROUND_PPCF128_F16, llvm::RTLIB::FPROUND_PPCF128_F32, llvm::RTLIB::FPROUND_PPCF128_F64, llvm::RTLIB::FPTOSINT_F128_I128, llvm::RTLIB::FPTOSINT_F128_I32, llvm::RTLIB::FPTOSINT_F128_I64, llvm::RTLIB::FPTOSINT_F32_I128, llvm::RTLIB::FPTOSINT_F32_I16, llvm::RTLIB::FPTOSINT_F32_I32, llvm::RTLIB::FPTOSINT_F32_I64, llvm::RTLIB::FPTOSINT_F32_I8, llvm::RTLIB::FPTOSINT_F64_I128, llvm::RTLIB::FPTOSINT_F64_I16, llvm::RTLIB::FPTOSINT_F64_I32, llvm::RTLIB::FPTOSINT_F64_I64, llvm::RTLIB::FPTOSINT_F64_I8, llvm::RTLIB::FPTOSINT_F80_I128, llvm::RTLIB::FPTOSINT_F80_I32, llvm::RTLIB::FPTOSINT_F80_I64, llvm::RTLIB::FPTOSINT_PPCF128_I128, llvm::RTLIB::FPTOSINT_PPCF128_I32, llvm::RTLIB::FPTOSINT_PPCF128_I64, llvm::RTLIB::FPTOUINT_F128_I128, llvm::RTLIB::FPTOUINT_F128_I32, llvm::RTLIB::FPTOUINT_F128_I64, llvm::RTLIB::FPTOUINT_F32_I128, llvm::RTLIB::FPTOUINT_F32_I16, llvm::RTLIB::FPTOUINT_F32_I32, llvm::RTLIB::FPTOUINT_F32_I64, llvm::RTLIB::FPTOUINT_F32_I8, llvm::RTLIB::FPTOUINT_F64_I128, llvm::RTLIB::FPTOUINT_F64_I16, llvm::RTLIB::FPTOUINT_F64_I32, llvm::RTLIB::FPTOUINT_F64_I64, llvm::RTLIB::FPTOUINT_F64_I8, llvm::RTLIB::FPTOUINT_F80_I128, llvm::RTLIB::FPTOUINT_F80_I32, llvm::RTLIB::FPTOUINT_F80_I64, llvm::RTLIB::FPTOUINT_PPCF128_I128, llvm::RTLIB::FPTOUINT_PPCF128_I32, llvm::RTLIB::FPTOUINT_PPCF128_I64, llvm::Triple::getEnvironment(), llvm::Triple::getOS(), llvm::Triple::GNU, llvm::RTLIB::LOG10_F128, llvm::RTLIB::LOG10_F32, llvm::RTLIB::LOG10_F64, llvm::RTLIB::LOG10_F80, llvm::RTLIB::LOG10_PPCF128, llvm::RTLIB::LOG2_F128, llvm::RTLIB::LOG2_F32, llvm::RTLIB::LOG2_F64, llvm::RTLIB::LOG2_F80, llvm::RTLIB::LOG2_PPCF128, llvm::RTLIB::LOG_F128, llvm::RTLIB::LOG_F32, llvm::RTLIB::LOG_F64, llvm::RTLIB::LOG_F80, llvm::RTLIB::LOG_PPCF128, llvm::RTLIB::MEMCPY, llvm::RTLIB::MEMMOVE, llvm::RTLIB::MEMSET, llvm::RTLIB::MUL_F128, llvm::RTLIB::MUL_F32, llvm::RTLIB::MUL_F64, llvm::RTLIB::MUL_F80, llvm::RTLIB::MUL_I128, llvm::RTLIB::MUL_I16, llvm::RTLIB::MUL_I32, llvm::RTLIB::MUL_I64, llvm::RTLIB::MUL_I8, llvm::RTLIB::MUL_PPCF128, llvm::RTLIB::MULO_I128, llvm::RTLIB::MULO_I32, llvm::RTLIB::MULO_I64, llvm::RTLIB::NEARBYINT_F128, llvm::RTLIB::NEARBYINT_F32, llvm::RTLIB::NEARBYINT_F64, llvm::RTLIB::NEARBYINT_F80, llvm::RTLIB::NEARBYINT_PPCF128, llvm::RTLIB::NEG_I32, llvm::RTLIB::NEG_I64, llvm::RTLIB::O_F128, llvm::RTLIB::O_F32, llvm::RTLIB::O_F64, llvm::RTLIB::OEQ_F128, llvm::RTLIB::OEQ_F32, llvm::RTLIB::OEQ_F64, llvm::RTLIB::OGE_F128, llvm::RTLIB::OGE_F32, llvm::RTLIB::OGE_F64, llvm::RTLIB::OGT_F128, llvm::RTLIB::OGT_F32, llvm::RTLIB::OGT_F64, llvm::RTLIB::OLE_F128, llvm::RTLIB::OLE_F32, llvm::RTLIB::OLE_F64, llvm::RTLIB::OLT_F128, llvm::RTLIB::OLT_F32, llvm::RTLIB::OLT_F64, llvm::Triple::OpenBSD, llvm::RTLIB::POW_F128, llvm::RTLIB::POW_F32, llvm::RTLIB::POW_F64, llvm::RTLIB::POW_F80, llvm::RTLIB::POW_PPCF128, llvm::RTLIB::POWI_F128, llvm::RTLIB::POWI_F32, llvm::RTLIB::POWI_F64, llvm::RTLIB::POWI_F80, llvm::RTLIB::POWI_PPCF128, llvm::RTLIB::REM_F128, llvm::RTLIB::REM_F32, llvm::RTLIB::REM_F64, llvm::RTLIB::REM_F80, llvm::RTLIB::REM_PPCF128, llvm::RTLIB::RINT_F128, llvm::RTLIB::RINT_F32, llvm::RTLIB::RINT_F64, llvm::RTLIB::RINT_F80, llvm::RTLIB::RINT_PPCF128, llvm::RTLIB::ROUND_F128, llvm::RTLIB::ROUND_F32, llvm::RTLIB::ROUND_F64, llvm::RTLIB::ROUND_F80, llvm::RTLIB::ROUND_PPCF128, llvm::RTLIB::SDIV_I128, llvm::RTLIB::SDIV_I16, llvm::RTLIB::SDIV_I32, llvm::RTLIB::SDIV_I64, llvm::RTLIB::SDIV_I8, llvm::RTLIB::SDIVREM_I128, llvm::RTLIB::SDIVREM_I16, llvm::RTLIB::SDIVREM_I32, llvm::RTLIB::SDIVREM_I64, llvm::RTLIB::SDIVREM_I8, llvm::RTLIB::SHL_I128, llvm::RTLIB::SHL_I16, llvm::RTLIB::SHL_I32, llvm::RTLIB::SHL_I64, llvm::RTLIB::SIN_F128, llvm::RTLIB::SIN_F32, llvm::RTLIB::SIN_F64, llvm::RTLIB::SIN_F80, llvm::RTLIB::SIN_PPCF128, llvm::RTLIB::SINCOS_F128, llvm::RTLIB::SINCOS_F32, llvm::RTLIB::SINCOS_F64, llvm::RTLIB::SINCOS_F80, llvm::RTLIB::SINCOS_PPCF128, llvm::RTLIB::SINTTOFP_I128_F128, llvm::RTLIB::SINTTOFP_I128_F32, llvm::RTLIB::SINTTOFP_I128_F64, llvm::RTLIB::SINTTOFP_I128_F80, llvm::RTLIB::SINTTOFP_I128_PPCF128, llvm::RTLIB::SINTTOFP_I32_F128, llvm::RTLIB::SINTTOFP_I32_F32, llvm::RTLIB::SINTTOFP_I32_F64, llvm::RTLIB::SINTTOFP_I32_F80, llvm::RTLIB::SINTTOFP_I32_PPCF128, llvm::RTLIB::SINTTOFP_I64_F128, llvm::RTLIB::SINTTOFP_I64_F32, llvm::RTLIB::SINTTOFP_I64_F64, llvm::RTLIB::SINTTOFP_I64_F80, llvm::RTLIB::SINTTOFP_I64_PPCF128, llvm::RTLIB::SQRT_F128, llvm::RTLIB::SQRT_F32, llvm::RTLIB::SQRT_F64, llvm::RTLIB::SQRT_F80, llvm::RTLIB::SQRT_PPCF128, llvm::RTLIB::SRA_I128, llvm::RTLIB::SRA_I16, llvm::RTLIB::SRA_I32, llvm::RTLIB::SRA_I64, llvm::RTLIB::SREM_I128, llvm::RTLIB::SREM_I16, llvm::RTLIB::SREM_I32, llvm::RTLIB::SREM_I64, llvm::RTLIB::SREM_I8, llvm::RTLIB::SRL_I128, llvm::RTLIB::SRL_I16, llvm::RTLIB::SRL_I32, llvm::RTLIB::SRL_I64, llvm::RTLIB::STACKPROTECTOR_CHECK_FAIL, llvm::RTLIB::SUB_F128, llvm::RTLIB::SUB_F32, llvm::RTLIB::SUB_F64, llvm::RTLIB::SUB_F80, llvm::RTLIB::SUB_PPCF128, llvm::RTLIB::SYNC_FETCH_AND_ADD_1, llvm::RTLIB::SYNC_FETCH_AND_ADD_16, llvm::RTLIB::SYNC_FETCH_AND_ADD_2, llvm::RTLIB::SYNC_FETCH_AND_ADD_4, llvm::RTLIB::SYNC_FETCH_AND_ADD_8, llvm::RTLIB::SYNC_FETCH_AND_AND_1, llvm::RTLIB::SYNC_FETCH_AND_AND_16, llvm::RTLIB::SYNC_FETCH_AND_AND_2, llvm::RTLIB::SYNC_FETCH_AND_AND_4, llvm::RTLIB::SYNC_FETCH_AND_AND_8, llvm::RTLIB::SYNC_FETCH_AND_MAX_1, llvm::RTLIB::SYNC_FETCH_AND_MAX_16, llvm::RTLIB::SYNC_FETCH_AND_MAX_2, llvm::RTLIB::SYNC_FETCH_AND_MAX_4, llvm::RTLIB::SYNC_FETCH_AND_MAX_8, llvm::RTLIB::SYNC_FETCH_AND_MIN_1, llvm::RTLIB::SYNC_FETCH_AND_MIN_16, llvm::RTLIB::SYNC_FETCH_AND_MIN_2, llvm::RTLIB::SYNC_FETCH_AND_MIN_4, llvm::RTLIB::SYNC_FETCH_AND_MIN_8, llvm::RTLIB::SYNC_FETCH_AND_NAND_1, llvm::RTLIB::SYNC_FETCH_AND_NAND_16, llvm::RTLIB::SYNC_FETCH_AND_NAND_2, llvm::RTLIB::SYNC_FETCH_AND_NAND_4, llvm::RTLIB::SYNC_FETCH_AND_NAND_8, llvm::RTLIB::SYNC_FETCH_AND_OR_1, llvm::RTLIB::SYNC_FETCH_AND_OR_16, llvm::RTLIB::SYNC_FETCH_AND_OR_2, llvm::RTLIB::SYNC_FETCH_AND_OR_4, llvm::RTLIB::SYNC_FETCH_AND_OR_8, llvm::RTLIB::SYNC_FETCH_AND_SUB_1, llvm::RTLIB::SYNC_FETCH_AND_SUB_16, llvm::RTLIB::SYNC_FETCH_AND_SUB_2, llvm::RTLIB::SYNC_FETCH_AND_SUB_4, llvm::RTLIB::SYNC_FETCH_AND_SUB_8, llvm::RTLIB::SYNC_FETCH_AND_UMAX_1, llvm::RTLIB::SYNC_FETCH_AND_UMAX_16, llvm::RTLIB::SYNC_FETCH_AND_UMAX_2, llvm::RTLIB::SYNC_FETCH_AND_UMAX_4, llvm::RTLIB::SYNC_FETCH_AND_UMAX_8, llvm::RTLIB::SYNC_FETCH_AND_UMIN_1, llvm::RTLIB::SYNC_FETCH_AND_UMIN_16, llvm::RTLIB::SYNC_FETCH_AND_UMIN_2, llvm::RTLIB::SYNC_FETCH_AND_UMIN_4, llvm::RTLIB::SYNC_FETCH_AND_UMIN_8, llvm::RTLIB::SYNC_FETCH_AND_XOR_1, llvm::RTLIB::SYNC_FETCH_AND_XOR_16, llvm::RTLIB::SYNC_FETCH_AND_XOR_2, llvm::RTLIB::SYNC_FETCH_AND_XOR_4, llvm::RTLIB::SYNC_FETCH_AND_XOR_8, llvm::RTLIB::SYNC_LOCK_TEST_AND_SET_1, llvm::RTLIB::SYNC_LOCK_TEST_AND_SET_16, llvm::RTLIB::SYNC_LOCK_TEST_AND_SET_2, llvm::RTLIB::SYNC_LOCK_TEST_AND_SET_4, llvm::RTLIB::SYNC_LOCK_TEST_AND_SET_8, llvm::RTLIB::SYNC_VAL_COMPARE_AND_SWAP_1, llvm::RTLIB::SYNC_VAL_COMPARE_AND_SWAP_16, llvm::RTLIB::SYNC_VAL_COMPARE_AND_SWAP_2, llvm::RTLIB::SYNC_VAL_COMPARE_AND_SWAP_4, llvm::RTLIB::SYNC_VAL_COMPARE_AND_SWAP_8, llvm::RTLIB::TRUNC_F128, llvm::RTLIB::TRUNC_F32, llvm::RTLIB::TRUNC_F64, llvm::RTLIB::TRUNC_F80, llvm::RTLIB::TRUNC_PPCF128, llvm::RTLIB::UDIV_I128, llvm::RTLIB::UDIV_I16, llvm::RTLIB::UDIV_I32, llvm::RTLIB::UDIV_I64, llvm::RTLIB::UDIV_I8, llvm::RTLIB::UDIVREM_I128, llvm::RTLIB::UDIVREM_I16, llvm::RTLIB::UDIVREM_I32, llvm::RTLIB::UDIVREM_I64, llvm::RTLIB::UDIVREM_I8, llvm::RTLIB::UINTTOFP_I128_F128, llvm::RTLIB::UINTTOFP_I128_F32, llvm::RTLIB::UINTTOFP_I128_F64, llvm::RTLIB::UINTTOFP_I128_F80, llvm::RTLIB::UINTTOFP_I128_PPCF128, llvm::RTLIB::UINTTOFP_I32_F128, llvm::RTLIB::UINTTOFP_I32_F32, llvm::RTLIB::UINTTOFP_I32_F64, llvm::RTLIB::UINTTOFP_I32_F80, llvm::RTLIB::UINTTOFP_I32_PPCF128, llvm::RTLIB::UINTTOFP_I64_F128, llvm::RTLIB::UINTTOFP_I64_F32, llvm::RTLIB::UINTTOFP_I64_F64, llvm::RTLIB::UINTTOFP_I64_F80, llvm::RTLIB::UINTTOFP_I64_PPCF128, llvm::RTLIB::UNE_F128, llvm::RTLIB::UNE_F32, llvm::RTLIB::UNE_F64, llvm::RTLIB::UNWIND_RESUME, llvm::RTLIB::UO_F128, llvm::RTLIB::UO_F32, llvm::RTLIB::UO_F64, llvm::RTLIB::UREM_I128, llvm::RTLIB::UREM_I16, llvm::RTLIB::UREM_I32, llvm::RTLIB::UREM_I64, and llvm::RTLIB::UREM_I8.
Referenced by llvm::TargetLoweringBase::TargetLoweringBase().