Skip to content

Commit

Permalink
Update after Instruction iterator-insertion deprecation (#2724)
Browse files Browse the repository at this point in the history
Avoid deprecation warnings after LLVM commit 2f50b28
("[DebugInfo] Enable deprecation of iterator-insertion methods
(#102608)", 2024-09-20).

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@374eb9d8a4ee0ec
  • Loading branch information
svenvh authored and jsji committed Oct 10, 2024
1 parent 75e05a4 commit aa902d1
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 13 deletions.
11 changes: 7 additions & 4 deletions llvm-spirv/lib/SPIRV/OCLToSPIRV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,20 +444,23 @@ void OCLToSPIRVBase::visitCallNDRange(CallInst *CI, StringRef DemangledName) {
// local work size
// The arguments need to add missing members.
for (size_t I = 1, E = CI->arg_size(); I != E; ++I)
Mutator.mapArg(I, [=](Value *V) { return getScalarOrArray(V, Len, CI); });
Mutator.mapArg(I, [=](Value *V) {
return getScalarOrArray(V, Len, CI->getIterator());
});
switch (CI->arg_size()) {
case 2: {
// Has global work size.
auto *T = Mutator.getArg(1)->getType();
auto *C = getScalarOrArrayConstantInt(CI, T, Len, 0);
auto *C = getScalarOrArrayConstantInt(CI->getIterator(), T, Len, 0);
Mutator.appendArg(C);
Mutator.appendArg(C);
break;
}
case 3: {
// Has global and local work size.
auto *T = Mutator.getArg(1)->getType();
Mutator.appendArg(getScalarOrArrayConstantInt(CI, T, Len, 0));
Mutator.appendArg(
getScalarOrArrayConstantInt(CI->getIterator(), T, Len, 0));
break;
}
case 4: {
Expand Down Expand Up @@ -1158,7 +1161,7 @@ void OCLToSPIRVBase::visitCallToAddr(CallInst *CI, StringRef DemangledName) {
.mapArg(Mutator.arg_size() - 1,
[&](Value *V) {
return std::make_pair(
castToInt8Ptr(V, CI),
castToInt8Ptr(V, CI->getIterator()),
TypedPointerType::get(Type::getInt8Ty(V->getContext()),
SPIRAS_Generic));
})
Expand Down
9 changes: 5 additions & 4 deletions llvm-spirv/lib/SPIRV/SPIRVInternal.h
Original file line number Diff line number Diff line change
Expand Up @@ -800,13 +800,14 @@ Constant *getScalarOrVectorConstantInt(Type *T, uint64_t V,
// an integer pointer type.
/// \param Len is the length of the array.
/// \param V is the value to fill the array.
Value *getScalarOrArrayConstantInt(Instruction *P, Type *T, unsigned Len,
uint64_t V, bool IsSigned = false);
Value *getScalarOrArrayConstantInt(BasicBlock::iterator P, Type *T,
unsigned Len, uint64_t V,
bool IsSigned = false);

/// Get the array from GEP.
/// \param V is a GEP whose pointer operand is a pointer to an array of size
/// \param Size.
Value *getScalarOrArray(Value *V, unsigned Size, Instruction *Pos);
Value *getScalarOrArray(Value *V, unsigned Size, BasicBlock::iterator Pos);

void dumpUsers(Value *V, StringRef Prompt = "");

Expand Down Expand Up @@ -919,7 +920,7 @@ std::string getSPIRVFriendlyIRFunctionName(const std::string &UniqName,
PointerType *getInt8PtrTy(PointerType *T);

/// Cast a value to a i8* by inserting a cast instruction.
Value *castToInt8Ptr(Value *V, Instruction *Pos);
Value *castToInt8Ptr(Value *V, BasicBlock::iterator Pos);

template <> inline void SPIRVMap<std::string, Op, SPIRVOpaqueType>::init() {
#define _SPIRV_OP(x) add(#x, OpType##x);
Expand Down
14 changes: 9 additions & 5 deletions llvm-spirv/lib/SPIRV/SPIRVUtil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1013,8 +1013,12 @@ CallInst *addCallInst(Module *M, StringRef FuncName, Type *RetTy,

auto *F = getOrCreateFunction(M, RetTy, getTypes(Args), FuncName, Mangle,
Attrs, TakeFuncName);
InsertPosition InsertPos(nullptr);
if (Pos)
InsertPos = Pos->getIterator();
// Cannot assign a Name to void typed values
auto *CI = CallInst::Create(F, Args, RetTy->isVoidTy() ? "" : InstName, Pos);
auto *CI =
CallInst::Create(F, Args, RetTy->isVoidTy() ? "" : InstName, InsertPos);
CI->setCallingConv(F->getCallingConv());
CI->setAttributes(F->getAttributes());
return CI;
Expand Down Expand Up @@ -1063,7 +1067,7 @@ PointerType *getInt8PtrTy(PointerType *T) {
return PointerType::get(T->getContext(), T->getAddressSpace());
}

Value *castToInt8Ptr(Value *V, Instruction *Pos) {
Value *castToInt8Ptr(Value *V, BasicBlock::iterator Pos) {
return CastInst::CreatePointerCast(
V, getInt8PtrTy(cast<PointerType>(V->getType())), "", Pos);
}
Expand Down Expand Up @@ -1455,7 +1459,7 @@ static SPIR::RefParamType transTypeDesc(Type *Ty,
return SPIR::RefParamType(new SPIR::PrimitiveType(SPIR::PRIMITIVE_INT));
}

Value *getScalarOrArray(Value *V, unsigned Size, Instruction *Pos) {
Value *getScalarOrArray(Value *V, unsigned Size, BasicBlock::iterator Pos) {
if (!V->getType()->isPointerTy())
return V;
Type *SourceTy;
Expand Down Expand Up @@ -1494,8 +1498,8 @@ Constant *getScalarOrVectorConstantInt(Type *T, uint64_t V, bool IsSigned) {
return nullptr;
}

Value *getScalarOrArrayConstantInt(Instruction *Pos, Type *T, unsigned Len,
uint64_t V, bool IsSigned) {
Value *getScalarOrArrayConstantInt(BasicBlock::iterator Pos, Type *T,
unsigned Len, uint64_t V, bool IsSigned) {
if (auto *IT = dyn_cast<IntegerType>(T)) {
assert(Len == 1 && "Invalid length");
return ConstantInt::get(IT, V, IsSigned);
Expand Down

0 comments on commit aa902d1

Please sign in to comment.