Skip to content

Commit 506b554

Browse files
ViacheslavRbigcbot
authored andcommitted
Helper functions for Opaque Pointers
Helper functions for Opaque Pointers support.
1 parent b98e914 commit 506b554

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

IGC/WrapperLLVM/include/llvmWrapper/IR/DerivedTypes.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ SPDX-License-Identifier: MIT
1515
#include "llvm/IR/Module.h"
1616
#include "common/CommonMacros.h"
1717

18+
#include "Type.h"
19+
1820
namespace IGCLLVM
1921
{
2022

@@ -70,6 +72,23 @@ namespace IGCLLVM
7072
return EltTy;
7173
#else
7274
return Ty->getWithNewBitWidth(NewBitWidth);
75+
#endif
76+
}
77+
78+
inline llvm::PointerType* getWithSamePointeeType(llvm::PointerType* PT, unsigned AddressSpace) {
79+
#if LLVM_VERSION_MAJOR < 14
80+
return llvm::PointerType::get(PT->getElementType(), AddressSpace);
81+
#else
82+
return llvm::PointerType::getWithSamePointeeType(PT, AddressSpace);
83+
#endif
84+
}
85+
86+
inline bool isOpaqueOrPointeeTypeEquals(llvm::Type* tyA, llvm::Type* tyB) {
87+
#if LLVM_VERSION_MAJOR < 14
88+
return IGCLLVM::getNonOpaquePtrEltTy(tyA) == IGCLLVM::getNonOpaquePtrEltTy(tyB);
89+
#else
90+
llvm::PointerType* pTyA = llvm::dyn_cast<llvm::PointerType>(tyA);
91+
return pTyA && pTyA->isOpaqueOrPointeeTypeMatches(tyB);
7392
#endif
7493
}
7594
}

0 commit comments

Comments
 (0)