LLVM 20.0.0git
|
#include "Target/DirectX/DXILOpBuilder.h"
Public Member Functions | |
DXILOpBuilder (Module &M, IRBuilderBase &B) | |
CallInst * | createOp (dxil::OpCode Op, ArrayRef< Value * > &Args, Type *RetTy=nullptr) |
Create a call instruction for the given DXIL op. | |
Expected< CallInst * > | tryCreateOp (dxil::OpCode Op, ArrayRef< Value * > Args, Type *RetTy=nullptr) |
Try to create a call instruction for the given DXIL op. | |
Static Public Member Functions | |
static const char * | getOpCodeName (dxil::OpCode DXILOp) |
Return the name of the given opcode. | |
Definition at line 30 of file DXILOpBuilder.h.
llvm::dxil::DXILOpBuilder::DXILOpBuilder | ( | Module & | M, |
IRBuilderBase & | B | ||
) |
Definition at line 335 of file DXILOpBuilder.cpp.
References llvm::VersionTuple::getAsString(), llvm::report_fatal_error(), and llvm::Triple::UnknownEnvironment.
CallInst * llvm::dxil::DXILOpBuilder::createOp | ( | dxil::OpCode | Op, |
ArrayRef< Value * > & | Args, | ||
Type * | RetTy = nullptr |
||
) |
Create a call instruction for the given DXIL op.
The arguments must be valid for an overload of the operation.
Definition at line 427 of file DXILOpBuilder.cpp.
References llvm_unreachable, RetTy, and tryCreateOp().
|
static |
Return the name of the given opcode.
Definition at line 435 of file DXILOpBuilder.cpp.
Expected< CallInst * > llvm::dxil::DXILOpBuilder::tryCreateOp | ( | dxil::OpCode | Op, |
ArrayRef< Value * > | Args, | ||
Type * | RetTy = nullptr |
||
) |
Try to create a call instruction for the given DXIL op.
Fails if the overload is invalid.
Definition at line 354 of file DXILOpBuilder.cpp.
References llvm::SmallVectorImpl< T >::append(), constructOverloadName(), llvm::IRBuilderBase::CreateCall(), llvm::VersionTuple::getAsString(), llvm::Module::getContext(), getDXILOpFunctionType(), llvm::IRBuilderBase::getInt32(), llvm::Module::getOrInsertFunction(), getOverloadKind(), getPropIndex(), llvm::FunctionType::getReturnType(), getShaderKindEnum(), llvm::dxil::makeOpError(), OpCodeProperty::OverloadParamIndex, OpCodeProperty::Overloads, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RetTy, OpCodeProperty::Stages, and llvm::to_underlying().
Referenced by createOp(), and lowerIntrinsic().