LLVM 17.0.0git
|
#include "DXILOpBuilder.h"
#include "DXILConstants.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/DXILOperationCommon.h"
#include "llvm/Support/ErrorHandling.h"
#include "DXILOperation.inc"
Go to the source code of this file.
Classes | |
struct | OpCodeProperty |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::dxil |
Macros | |
#define | DXIL_OP_OPERATION_TABLE |
Functions | |
static const char * | getOverloadTypeName (OverloadKind Kind) |
static OverloadKind | getOverloadKind (Type *Ty) |
static std::string | getTypeName (OverloadKind Kind, Type *Ty) |
static std::string | constructOverloadName (OverloadKind Kind, Type *Ty, const OpCodeProperty &Prop) |
static std::string | constructOverloadTypeName (OverloadKind Kind, StringRef TypeName) |
static StructType * | getOrCreateStructType (StringRef Name, ArrayRef< Type * > EltTys, LLVMContext &Ctx) |
static StructType * | getResRetType (Type *OverloadTy, LLVMContext &Ctx) |
static StructType * | getHandleType (LLVMContext &Ctx) |
static Type * | getTypeFromParameterKind (ParameterKind Kind, Type *OverloadTy) |
static FunctionType * | getDXILOpFunctionType (const OpCodeProperty *Prop, Type *OverloadTy) |
static FunctionCallee | getOrCreateDXILOpFunction (dxil::OpCode DXILOp, Type *OverloadTy, Module &M) |
Variables | |
constexpr StringLiteral | DXILOpNamePrefix = "dx.op." |
#define DXIL_OP_OPERATION_TABLE |
Definition at line 144 of file DXILOpBuilder.cpp.
|
static |
Definition at line 148 of file DXILOpBuilder.cpp.
References DXILOpNamePrefix, and llvm::getTypeName().
Referenced by getOrCreateDXILOpFunction().
|
static |
Definition at line 158 of file DXILOpBuilder.cpp.
References assert(), and getOverloadTypeName().
Referenced by getResRetType().
|
static |
Definition at line 223 of file DXILOpBuilder.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), getTypeFromParameterKind(), I, OpCodeProperty::NumOfParameters, and llvm::SmallVectorBase< Size_T >::size().
Referenced by getOrCreateDXILOpFunction().
|
static |
Definition at line 185 of file DXILOpBuilder.cpp.
References llvm::Type::getInt8PtrTy(), and getOrCreateStructType().
Referenced by getTypeFromParameterKind().
|
static |
Definition at line 237 of file DXILOpBuilder.cpp.
References constructOverloadName(), getDXILOpFunctionType(), getOverloadKind(), llvm_unreachable, and OpCodeProperty::OverloadTys.
Referenced by llvm::dxil::DXILOpBuilder::createDXILOpCall().
|
static |
Definition at line 167 of file DXILOpBuilder.cpp.
References llvm::StructType::create(), llvm::StructType::getTypeByName(), and Name.
Referenced by getHandleType(), and getResRetType().
|
static |
Definition at line 69 of file DXILOpBuilder.cpp.
References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::IntegerType::getBitWidth(), llvm::Type::getTypeID(), llvm::Type::HalfTyID, llvm::Type::IntegerTyID, llvm_unreachable, llvm::Type::PointerTyID, llvm::Type::StructTyID, and llvm::Type::VoidTyID.
Referenced by getOrCreateDXILOpFunction(), and getResRetType().
Definition at line 42 of file DXILOpBuilder.cpp.
References llvm_unreachable.
Referenced by constructOverloadTypeName(), and getTypeName().
|
static |
Definition at line 177 of file DXILOpBuilder.cpp.
References constructOverloadTypeName(), llvm::Type::getInt32Ty(), getOrCreateStructType(), and getOverloadKind().
Referenced by getTypeFromParameterKind().
|
static |
Definition at line 189 of file DXILOpBuilder.cpp.
References llvm::Type::getContext(), llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getHalfTy(), getHandleType(), llvm::Type::getInt16Ty(), llvm::Type::getInt1Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), getResRetType(), llvm::Type::getVoidTy(), and llvm_unreachable.
Referenced by getDXILOpFunctionType().
|
static |
Definition at line 109 of file DXILOpBuilder.cpp.
References getOverloadTypeName(), OS, and llvm::Type::print().
|
constexpr |
Definition at line 22 of file DXILOpBuilder.cpp.
Referenced by constructOverloadName().