LLVM 19.0.0git
|
#include "MCTargetDesc/SPIRVBaseInfo.h"
#include "MCTargetDesc/SPIRVMCTargetDesc.h"
#include "SPIRV.h"
#include "SPIRVGlobalRegistry.h"
#include "SPIRVInstrInfo.h"
#include "SPIRVRegisterBankInfo.h"
#include "SPIRVRegisterInfo.h"
#include "SPIRVTargetMachine.h"
#include "SPIRVUtils.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineModuleInfoImpls.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/IR/IntrinsicsSPIRV.h"
#include "llvm/Support/Debug.h"
#include "SPIRVGenGlobalISel.inc"
Go to the source code of this file.
Classes | |
class | llvm::SPIRVMachineModuleInfo |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "spirv-isel" |
#define | GET_GLOBALISEL_PREDICATE_BITSET |
#define | GET_GLOBALISEL_PREDICATES_DECL |
#define | GET_GLOBALISEL_TEMPORARIES_DECL |
#define | GET_GLOBALISEL_IMPL |
#define | GET_GLOBALISEL_PREDICATES_INIT |
#define | GET_GLOBALISEL_TEMPORARIES_INIT |
Typedefs | |
using | ExtInstList = std::vector< std::pair< SPIRV::InstructionSet::InstructionSet, uint32_t > > |
#define DEBUG_TYPE "spirv-isel" |
Definition at line 57 of file SPIRVInstructionSelector.cpp.
#define GET_GLOBALISEL_IMPL |
Definition at line 255 of file SPIRVInstructionSelector.cpp.
#define GET_GLOBALISEL_PREDICATE_BITSET |
Definition at line 68 of file SPIRVInstructionSelector.cpp.
#define GET_GLOBALISEL_PREDICATES_DECL |
Definition at line 96 of file SPIRVInstructionSelector.cpp.
#define GET_GLOBALISEL_PREDICATES_INIT |
#define GET_GLOBALISEL_TEMPORARIES_DECL |
Definition at line 100 of file SPIRVInstructionSelector.cpp.
#define GET_GLOBALISEL_TEMPORARIES_INIT |
using ExtInstList = std::vector<std::pair<SPIRV::InstructionSet::InstructionSet, uint32_t> > |
Definition at line 63 of file SPIRVInstructionSelector.cpp.
|
static |
Definition at line 717 of file SPIRVInstructionSelector.cpp.
References llvm::MachineInstrBuilder::addImm().
|
static |
Definition at line 734 of file SPIRVInstructionSelector.cpp.
References llvm::MachineInstrBuilder::addImm().
|
static |
Definition at line 1732 of file SPIRVInstructionSelector.cpp.
References assert(), llvm::MachineOperand::getCImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::ConstantInt::getZExtValue(), and MRI.
|
static |
Definition at line 1380 of file SPIRVInstructionSelector.cpp.
References llvm::MachineOperand::getCImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::ConstantInt::getValue(), llvm::APInt::getZExtValue(), llvm::MachineOperand::isReg(), MRI, and N.
Definition at line 1195 of file SPIRVInstructionSelector.cpp.
References llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, and llvm_unreachable.
Definition at line 1119 of file SPIRVInstructionSelector.cpp.
References llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, and llvm_unreachable.
Definition at line 1155 of file SPIRVInstructionSelector.cpp.
References llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, and llvm_unreachable.
Definition at line 1183 of file SPIRVInstructionSelector.cpp.
References llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, and llvm_unreachable.
|
static |
Definition at line 694 of file SPIRVInstructionSelector.cpp.
References llvm::SPIRVMachineModuleInfo::AllSVMDevicesSSID, llvm::SPIRVMachineModuleInfo::DeviceSSID, llvm::SyncScope::SingleThread, llvm::SPIRVMachineModuleInfo::SubGroupSSID, llvm::SyncScope::System, llvm::SPIRVMachineModuleInfo::Work_ItemSSID, and llvm::SPIRVMachineModuleInfo::WorkGroupSSID.
Referenced by llvm::DILocation::cloneWithDiscriminator(), LLVMDILocationGetScope(), and LLVMDIVariableGetScope().
Definition at line 1543 of file SPIRVInstructionSelector.cpp.
References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::getScalarType(), llvm::Type::getTypeID(), llvm::APFloat::getZero(), and llvm::Type::HalfTyID.
|
static |
Definition at line 1409 of file SPIRVInstructionSelector.cpp.
References isConstReg(), and MRI.
|
static |
Definition at line 1398 of file SPIRVInstructionSelector.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), and MRI.
Referenced by isConstReg().
|
static |
Definition at line 1021 of file SPIRVInstructionSelector.cpp.
|
static |
Definition at line 1722 of file SPIRVInstructionSelector.cpp.
References assert(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), and MRI.
Referenced by llvm::SIInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::VEInstrInfo::insertBranch(), llvm::SIInstrInfo::insertVectorSelect(), IsMemoryAssignmentError(), isMergeableLdStUpdate(), llvm::MachineInstr::isOperandSubregIdx(), llvm::SIInstrInfo::reverseBranchCondition(), and llvm::HexagonInstrInfo::reverseBranchCondition().
Definition at line 53 of file SPIRVLegalizerInfo.cpp.
References TypeFoldingSupportingOpcs.
Referenced by llvm::SPIRVLegalizerInfo::legalizeCustom().
|
static |
Definition at line 1032 of file SPIRVInstructionSelector.cpp.