12#ifndef LLVM_LIB_TARGET_DIRECTX_DXILOPBUILDER_H
13#define LLVM_LIB_TARGET_DIRECTX_DXILOPBUILDER_H
39#define DXIL_OPCODE(Op, Name) \
40 CallInst *create##Name##Op(ArrayRef<Value *> &Args, Type *RetTy = nullptr) { \
41 return createOp(dxil::OpCode(Op), Args, RetTy); \
43#include "DXILOperation.inc"
49#define DXIL_OPCODE(Op, Name) \
50 Expected<CallInst *> tryCreate##Name##Op(ArrayRef<Value *> &Args, \
51 Type *RetTy = nullptr) { \
52 return tryCreateOp(dxil::OpCode(Op), Args, RetTy); \
54#include "DXILOperation.inc"
63 Type *OverloadType =
nullptr);
67 VersionTuple DXILVersion;
Machine Check Debug Module
This file defines the SmallVector class.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
This class represents a function call, abstracting a target machine's calling convention.
This class represents an Operation in the Expression.
Tagged union holding either a T or a Error.
Common base class shared among various IRBuilders.
A Module instance is used to store all the information related to an LLVM module.
The instances of the Type class are immutable: once they are created, they are never changed.
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 const char * getOpCodeName(dxil::OpCode DXILOp)
Return the name of the given opcode.
This is an optimization pass for GlobalISel generic memory operations.