|
LLVM 22.0.0git
|
#include "SPIRV.h"#include "SPIRVSubtarget.h"#include "SPIRVUtils.h"#include "llvm/IR/IntrinsicsSPIRV.h"#include "llvm/Support/Debug.h"#include <stack>Go to the source code of this file.
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
| #define | DEBUG_TYPE "spirv-postlegalizer" |
| #define DEBUG_TYPE "spirv-postlegalizer" |
Definition at line 24 of file SPIRVPostLegalizer.cpp.
|
static |
Definition at line 197 of file SPIRVPostLegalizer.cpp.
References llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::SPIRVGlobalRegistry::CurMF, llvm::dbgs(), deduceAndAssignTypeForGUnmerge(), deduceResultTypeFromOperands(), deduceTypeFromUses(), llvm::MachineFunction::getRegInfo(), I, LLVM_DEBUG, MRI, and llvm::setRegClassType().
Referenced by registerSpirvTypeForNewInstructions().
|
static |
Definition at line 54 of file SPIRVPostLegalizer.cpp.
References assert(), llvm::SPIRVSubtarget::getInstrInfo(), llvm::LLT::getNumElements(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getScalarOrVectorComponentType(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::MachineFunction::getSubtarget(), I, llvm::LLT::isVector(), MRI, and llvm::setRegClassType().
Referenced by deduceAndAssignSpirvType().
|
static |
Definition at line 47 of file SPIRVPostLegalizer.cpp.
References llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), and llvm::MachineRegisterInfo::getType().
Referenced by deduceResultTypeFromOperands().
|
static |
Definition at line 177 of file SPIRVPostLegalizer.cpp.
References deduceIntTypeFromResult(), deduceTypeFromOperandRange(), deduceTypeFromSingleOperand(), and I.
Referenced by deduceAndAssignSpirvType().
|
static |
Definition at line 137 of file SPIRVPostLegalizer.cpp.
References llvm::MachineIRBuilder::getMRI(), llvm::LLT::getNumElements(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getScalarOrVectorComponentType(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::MachineRegisterInfo::getType(), and llvm::LLT::isVector().
Referenced by deduceTypeFromUses().
|
static |
Definition at line 119 of file SPIRVPostLegalizer.cpp.
References assert(), deduceTypeFromSingleOperand(), and I.
Referenced by deduceResultTypeFromOperands().
|
static |
Definition at line 101 of file SPIRVPostLegalizer.cpp.
References llvm::MachineIRBuilder::getMRI(), llvm::LLT::getNumElements(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getScalarOrVectorComponentType(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::MachineRegisterInfo::getType(), I, llvm::LLT::isVector(), and OpIdx.
Referenced by deduceResultTypeFromOperands(), and deduceTypeFromOperandRange().
|
static |
Definition at line 157 of file SPIRVPostLegalizer.cpp.
References llvm::dbgs(), deduceTypeForResultRegister(), llvm::MachineFunction::getRegInfo(), LLVM_DEBUG, MRI, and Reg.
Referenced by deduceAndAssignSpirvType().
|
static |
Definition at line 317 of file SPIRVPostLegalizer.cpp.
References llvm::dbgs(), llvm::MachineFunction::getName(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::insertAssignInstr(), llvm::isTypeFoldingSupported(), LLVM_DEBUG, MBB, MI, MRI, and llvm::printReg().
|
static |
Definition at line 258 of file SPIRVPostLegalizer.cpp.
References Changed, llvm::dbgs(), deduceAndAssignSpirvType(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::LLT::getElementType(), llvm::LLT::getNumElements(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::MachineFunction::getRegInfo(), llvm::LLT::getSizeInBits(), I, llvm::LLT::isVector(), LLVM_DEBUG, MBB, MRI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), requiresSpirvType(), and llvm::setRegClassType().
|
static |
Definition at line 230 of file SPIRVPostLegalizer.cpp.
References llvm::SPIRVGlobalRegistry::CurMF, llvm::dbgs(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), I, LLVM_DEBUG, MRI, and llvm::setRegClassType().
Referenced by registerSpirvTypeForNewInstructions().
| void visit | ( | MachineFunction & | MF, |
| MachineBasicBlock & | Start, | ||
| std::function< void(MachineBasicBlock *)> | op ) |
Definition at line 361 of file SPIRVPostLegalizer.cpp.
References llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::SmallPtrSetImpl< PtrType >::insert(), MBB, and op.
Referenced by llvm::computeDeadSymbolsAndUpdateIndirectCalls(), llvm::ScalarEvolution::getLosslessPtrToIntExpr(), and visit().
| void visit | ( | MachineFunction & | MF, |
| std::function< void(MachineBasicBlock *)> | op ) |
Definition at line 385 of file SPIRVPostLegalizer.cpp.
References llvm::MachineFunction::begin(), op, and visit().