Skip to content

Commit 9f18c6e

Browse files
mshelegoigcbot
authored andcommitted
IGCLLVM::getNonOpaquePtrEltTy usage elimination
This change is a part of the effort to support opaque pointers in newer LLVM versions
1 parent 0fb8663 commit 9f18c6e

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

IGC/VectorCompiler/lib/GenXCodeGen/GenXCisaBuilder.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2612,8 +2612,8 @@ static unsigned getResultedTypeSize(Type *Ty, const DataLayout &DL) {
26122612
TySz += getResultedTypeSize(Ty, DL);
26132613
} else if (Ty->isPointerTy())
26142614
// FIXME: fix data layout description.
2615-
TySz = IGCLLVM::getNonOpaquePtrEltTy(Ty)->isFunctionTy() ? genx::DWordBytes
2616-
: DL.getPointerSize();
2615+
TySz =
2616+
vc::isFunctionPointerType(Ty) ? genx::DWordBytes : DL.getPointerSize();
26172617
else {
26182618
TySz = Ty->getPrimitiveSizeInBits() / CHAR_BIT;
26192619
IGC_ASSERT_MESSAGE(TySz, "Ty is not primitive?");
@@ -4824,8 +4824,10 @@ void GenXKernelBuilder::buildConvertAddr(CallInst *CI, genx::BaleInfo BI,
48244824
// we need a different type.
48254825
Type *OverrideTy = nullptr;
48264826
Type *BaseTy = Base->getType();
4827-
if (BaseTy->isPointerTy())
4828-
BaseTy = IGCLLVM::getNonOpaquePtrEltTy(BaseTy);
4827+
if (BaseTy->isPointerTy()) {
4828+
auto *GV = cast<GlobalVariable>(Base);
4829+
BaseTy = GV->getValueType();
4830+
}
48294831
unsigned ElementBytes =
48304832
BaseTy->getScalarType()->getPrimitiveSizeInBits() >> 3;
48314833
int Offset = cast<ConstantInt>(CI->getArgOperand(1))->getSExtValue();

IGC/VectorCompiler/lib/GenXCodeGen/GenXGASDynamicResolution.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*========================== begin_copyright_notice ============================
22
3-
Copyright (C) 2022-2023 Intel Corporation
3+
Copyright (C) 2022-2024 Intel Corporation
44
55
SPDX-License-Identifier: MIT
66
@@ -400,8 +400,9 @@ void GenXGASDynamicResolution::resolveOnLoadStore(Instruction &I,
400400
Builder.SetInsertPoint(BB);
401401
auto NewPtrOp = createASCast(Builder, PtrOp, AS);
402402
if (LoadInst *LI = dyn_cast<LoadInst>(&I))
403-
Load = Builder.CreateAlignedLoad(IGCLLVM::getNonOpaquePtrEltTy(NewPtrOp->getType()),
404-
NewPtrOp, IGCLLVM::getAlign(*LI), LI->isVolatile(), LoadName);
403+
Load = Builder.CreateAlignedLoad(LI->getType(), NewPtrOp,
404+
IGCLLVM::getAlign(*LI), LI->isVolatile(),
405+
LoadName);
405406
else if (StoreInst *SI = dyn_cast<StoreInst>(&I))
406407
Builder.CreateAlignedStore(I.getOperand(0), NewPtrOp,
407408
IGCLLVM::getAlign(*SI), SI->isVolatile());

IGC/VectorCompiler/lib/GenXCodeGen/GenXVisaRegAlloc.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ void GenXVisaRegAlloc::allocReg(LiveRange *LR) {
670670
return;
671671

672672
if (GV->hasAttribute(genx::FunctionMD::GenXVolatile))
673-
Ty = IGCLLVM::getNonOpaquePtrEltTy(Ty);
673+
Ty = GV->getValueType();
674674
}
675675
IGC_ASSERT(!Ty->isVoidTy());
676676
if (LR->Category == vc::RegCategory::Predicate) {
@@ -707,7 +707,7 @@ static Type *calcOverrideType(Type *OverrideType, const SimpleValue &V,
707707
if (OverrideType->isPointerTy()) {
708708
auto GV = dyn_cast<GlobalVariable>(V.getValue());
709709
if (GV && GV->hasAttribute(genx::FunctionMD::GenXVolatile))
710-
OverrideType = IGCLLVM::getNonOpaquePtrEltTy(OverrideType);
710+
OverrideType = GV->getValueType();
711711
}
712712
OverrideType = &vc::fixDegenerateVectorType(*OverrideType);
713713
if (R->Num < VISA_NUM_RESERVED_REGS)
@@ -917,8 +917,7 @@ TypeDetails::TypeDetails(const DataLayout &DL, Type *Ty, Signedness Signed,
917917
VisaType = ISA_TYPE_DF;
918918
} else if (auto *PtrTy = dyn_cast<PointerType>(ElementTy)) {
919919
BytesPerElement = DL.getPointerTypeSize(PtrTy);
920-
if (BytesPerElement == DWordBytes ||
921-
IGCLLVM::getNonOpaquePtrEltTy(PtrTy)->isFunctionTy())
920+
if (BytesPerElement == DWordBytes || vc::isFunctionPointerType(PtrTy))
922921
VisaType = ISA_TYPE_UD;
923922
else if (BytesPerElement == QWordBytes)
924923
VisaType = ISA_TYPE_UQ;

0 commit comments

Comments
 (0)