LLVM 19.0.0git
Namespaces | Macros | Functions
SPIRVEmitIntrinsics.cpp File Reference
#include "SPIRV.h"
#include "SPIRVBuiltins.h"
#include "SPIRVMetadata.h"
#include "SPIRVSubtarget.h"
#include "SPIRVTargetMachine.h"
#include "SPIRVUtils.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/IntrinsicsSPIRV.h"
#include "llvm/IR/TypedPointerType.h"
#include <queue>
#include "SPIRVGenTables.inc"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::SPIRV
 

Macros

#define GET_BuiltinGroup_DECL
 

Functions

void llvm::initializeSPIRVEmitIntrinsicsPass (PassRegistry &)
 
 INITIALIZE_PASS (SPIRVEmitIntrinsics, "emit-intrinsics", "SPIRV emit intrinsics", false, false) static inline bool isAssignTypeInstr(const Instruction *I)
 
static bool isMemInstrToReplace (Instruction *I)
 
static bool isAggrConstForceInt32 (const Value *V)
 
static void setInsertPointSkippingPhis (IRBuilder<> &B, Instruction *I)
 
static void setInsertPointAfterDef (IRBuilder<> &B, Instruction *I)
 
static bool requireAssignType (Instruction *I)
 
static void reportFatalOnTokenType (const Instruction *I)
 
static bool IsKernelArgInt8 (Function *F, StoreInst *SI)
 
static TyperestoreMutatedType (SPIRVGlobalRegistry *GR, Instruction *I, Type *Ty)
 
static TypereconstructType (SPIRVGlobalRegistry *GR, Value *Op)
 
static TypegetPointeeTypeByCallInst (StringRef DemangledName, Function *CalledF, unsigned OpIdx)
 
static TypegetAtomicElemTy (SPIRVGlobalRegistry *GR, Instruction *I, Value *PointerOperand)
 

Macro Definition Documentation

◆ GET_BuiltinGroup_DECL

#define GET_BuiltinGroup_DECL

Definition at line 50 of file SPIRVEmitIntrinsics.cpp.

Function Documentation

◆ getAtomicElemTy()

static Type * getAtomicElemTy ( SPIRVGlobalRegistry GR,
Instruction I,
Value PointerOperand 
)
inlinestatic

◆ getPointeeTypeByCallInst()

static Type * getPointeeTypeByCallInst ( StringRef  DemangledName,
Function CalledF,
unsigned  OpIdx 
)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( SPIRVEmitIntrinsics  ,
"emit-intrinsics"  ,
"SPIRV emit intrinsics"  ,
false  ,
false   
) const

Definition at line 194 of file SPIRVEmitIntrinsics.cpp.

References I.

◆ isAggrConstForceInt32()

static bool isAggrConstForceInt32 ( const Value V)
static

Definition at line 207 of file SPIRVEmitIntrinsics.cpp.

◆ IsKernelArgInt8()

static bool IsKernelArgInt8 ( Function F,
StoreInst SI 
)
static

Definition at line 247 of file SPIRVEmitIntrinsics.cpp.

References F, llvm::isPointerTy(), and llvm::CallingConv::SPIR_KERNEL.

◆ isMemInstrToReplace()

static bool isMemInstrToReplace ( Instruction I)
static

Definition at line 202 of file SPIRVEmitIntrinsics.cpp.

References I.

◆ reconstructType()

static Type * reconstructType ( SPIRVGlobalRegistry GR,
Value Op 
)
inlinestatic

◆ reportFatalOnTokenType()

static void reportFatalOnTokenType ( const Instruction I)
inlinestatic

Definition at line 240 of file SPIRVEmitIntrinsics.cpp.

References I, and llvm::report_fatal_error().

◆ requireAssignType()

static bool requireAssignType ( Instruction I)
static

Definition at line 228 of file SPIRVEmitIntrinsics.cpp.

References I, and Intr.

◆ restoreMutatedType()

static Type * restoreMutatedType ( SPIRVGlobalRegistry GR,
Instruction I,
Type Ty 
)
inlinestatic

◆ setInsertPointAfterDef()

static void setInsertPointAfterDef ( IRBuilder<> &  B,
Instruction I 
)
static

Definition at line 220 of file SPIRVEmitIntrinsics.cpp.

References B, and I.

◆ setInsertPointSkippingPhis()

static void setInsertPointSkippingPhis ( IRBuilder<> &  B,
Instruction I 
)
static

Definition at line 213 of file SPIRVEmitIntrinsics.cpp.

References B, and I.