LLVM: lib/Target/SPIRV/SPIRVTargetTransformInfo.cpp Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
10#include "llvm/IR/IntrinsicsSPIRV.h"
11
12using namespace llvm;
13
16 switch (IID) {
17 case Intrinsic::spv_generic_cast_to_ptr_explicit:
19 return true;
20 default:
21 return false;
22 }
23}
24
27 Value *NewV) const {
28 auto IntrID = II->getIntrinsicID();
29 switch (IntrID) {
30 case Intrinsic::spv_generic_cast_to_ptr_explicit: {
32 unsigned DstAS = II->getType()->getPointerAddressSpace();
33 return NewAS == DstAS ? NewV
36 }
37 default:
38 return nullptr;
39 }
40}
uint64_t IntrinsicInst * II
static LLVM_ABI ConstantPointerNull * get(PointerType *T)
Static factory methods - Return objects of the specified value.
A wrapper class for inspecting calls to intrinsic functions.
static LLVM_ABI PointerType * get(Type *ElementType, unsigned AddressSpace)
This constructs a pointer to an object of the specified type in a numbered address space.
Value * rewriteIntrinsicWithAddressSpace(IntrinsicInst *II, Value *OldV, Value *NewV) const override
Definition SPIRVTargetTransformInfo.cpp:25
bool collectFlatAddressOperands(SmallVectorImpl< int > &OpIndexes, Intrinsic::ID IID) const override
Definition SPIRVTargetTransformInfo.cpp:14
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
void push_back(const T &Elt)
LLVM_ABI unsigned getPointerAddressSpace() const
Get the address space of this pointer or pointer vector type.
LLVM Value Representation.
Type * getType() const
All values are typed, get the type of this value.
LLVM_ABI LLVMContext & getContext() const
All values hold a context through their type.
This is an optimization pass for GlobalISel generic memory operations.