ports/devel/intel-graphics-compiler/files/patch-llvm11

115 lines
6.2 KiB
Text

IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp:156:35: error: no member named 'getVectorElementType' in 'llvm::Type'; did you mean 'getPointerElementType'?
ldmcs->getType()->getVectorElementType() == m_builder->getInt32Ty())
^~~~~~~~~~~~~~~~~~~~
getPointerElementType
/usr/local/llvm11/include/llvm/IR/Type.h:370:9: note: 'getPointerElementType' declared here
Type *getPointerElementType() const {
^
IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp:160:61: error: no member named 'getVectorNumElements' in 'llvm::Type'
uint ldmcsNumOfElements = ldmcs->getType()->getVectorNumElements();
~~~~~~~~~~~~~~~~ ^
IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp:161:71: error: no member named 'getVectorNumElements' in 'llvm::Type'
uint newLdmcsNumOfElements = new_mcs_call->getType()->getVectorNumElements();
~~~~~~~~~~~~~~~~~~~~~~~ ^
IGC/Compiler/Legalizer/InstPromoter.cpp:402:42: error: no member named 'getVectorNumElements' in 'llvm::Type'
for (unsigned i = 0; i < DestTy->getVectorNumElements(); i++)
~~~~~~ ^
IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp:308:27: error: no member named 'getVectorNumElements' in 'llvm::Type'
Size *= DataType->getVectorNumElements();
~~~~~~~~ ^
IGC/VectorCompiler/lib/GenXCodeGen/GenXDebugInfo.cpp:528:33: error: no viable conversion from 'llvm::StringRef' to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char>>')
auto *VF = VB.GetVISAKernel(F->getName());
^~~~~~~~~~~~
IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp:2203:5: error: no matching function for call to 'RecursivelyDeleteTriviallyDeadInstructions'
RecursivelyDeleteTriviallyDeadInstructions(ToErase);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/llvm11/include/llvm/Transforms/Utils/Local.h:161:6: note: candidate function not viable: no known conversion from 'SmallVector<llvm::Instruction *, 8>' to 'llvm::Value *' for 1st argument
bool RecursivelyDeleteTriviallyDeadInstructions(
^
/usr/local/llvm11/include/llvm/Transforms/Utils/Local.h:173:6: note: candidate function not viable: no known conversion from 'SmallVector<llvm::Instruction *, 8>' to 'SmallVectorImpl<llvm::WeakTrackingVH> &' for 1st argument
void RecursivelyDeleteTriviallyDeadInstructions(
^
--- IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp.orig 2021-03-22 09:55:24 UTC
+++ IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp
@@ -153,12 +153,21 @@ void ConvertMSAAPayloadTo16Bit::visitCallInst(CallInst
// There are uses of ldmcs other then ldms, using vector of int32 type.
// Fix them to use newly created 16bit ldmcs.
if (ldmcs->getType()->isVectorTy() &&
+#if LLVM_VERSION_MAJOR < 11
ldmcs->getType()->getVectorElementType() == m_builder->getInt32Ty())
+#else
+ cast<llvm::VectorType>(ldmcs->getType())->getElementType() == m_builder->getInt32Ty())
+#endif
{
m_builder->SetInsertPoint(ldmcs);
+#if LLVM_VERSION_MAJOR < 11
uint ldmcsNumOfElements = ldmcs->getType()->getVectorNumElements();
uint newLdmcsNumOfElements = new_mcs_call->getType()->getVectorNumElements();
+#else
+ uint ldmcsNumOfElements = cast<llvm::VectorType>(ldmcs->getType())->getNumElements();
+ uint newLdmcsNumOfElements = cast<llvm::VectorType>(new_mcs_call->getType())->getNumElements();
+#endif
// vec of 16bit ints to vec of 32bit ints
Type* newLdmcsVecType = VectorType::get(m_builder->getInt32Ty(), newLdmcsNumOfElements);
--- IGC/Compiler/Legalizer/InstPromoter.cpp.orig 2021-02-08 08:48:29 UTC
+++ IGC/Compiler/Legalizer/InstPromoter.cpp
@@ -399,7 +399,11 @@ bool InstPromoter::visitBitCastInst(BitCastInst& I) {
IRB->CreateBitCast(Val, VectorType::get(DestTy->getScalarType(), N));
std::vector<Constant*> Vals;
+#if LLVM_VERSION_MAJOR < 11
for (unsigned i = 0; i < DestTy->getVectorNumElements(); i++)
+#else
+ for (unsigned i = 0; i < cast<llvm::VectorType>(DestTy)->getNumElements(); i++)
+#endif
Vals.push_back(IRB->getInt32(i));
Value* Mask = ConstantVector::get(Vals);
--- IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp.orig 2021-02-07 09:58:11 UTC
+++ IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
@@ -305,7 +305,11 @@ static Value* BuildLoadInst(CallInst& CI, unsigned int
auto Size = ElemByteSize;
if (DataType->isVectorTy())
{
+#if LLVM_VERSION_MAJOR < 11
Size *= DataType->getVectorNumElements();
+#else
+ Size *= cast<llvm::VectorType>(DataType)->getNumElements();
+#endif
}
unsigned int AlignedOffset = (Offset / ElemByteSize) * ElemByteSize;
unsigned int LoadByteSize = (Offset == AlignedOffset) ? Size : Size * 2;
--- IGC/VectorCompiler/lib/GenXCodeGen/GenXDebugInfo.cpp.orig 2021-03-28 09:45:11 UTC
+++ IGC/VectorCompiler/lib/GenXCodeGen/GenXDebugInfo.cpp
@@ -525,7 +525,11 @@ void GenXDebugInfo::processFunctionGroup(GenXModule &G
for (auto *F : IndirectlyCalledFunctions) {
LLVM_DEBUG(dbgs() << " F: " << F->getName() << " called indirectly!\n");
// Each indirectly-called function is compiled into a separate vISA kernel
+#if LLVM_VERSION_MAJOR < 11
auto *VF = VB.GetVISAKernel(F->getName());
+#else
+ auto *VF = VB.GetVISAKernel(F->getName().str());
+#endif
processKernel(ProgramInfo{{BuildFunctionInfo(VF, F)}});
}
std::vector<ProgramInfo::FunctionInfo> PrimaryFIs;
--- IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp.orig 2021-02-15 09:29:30 UTC
+++ IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp
@@ -2194,7 +2194,11 @@ bool GenXPatternMatch::simplifySelect(Function *F) {
bool GenXPatternMatch::clearDeadInstructions(Function &F) {
bool Changed = false;
+#if LLVM_VERSION_MAJOR < 11
SmallVector<Instruction *, 8> ToErase;
+#else
+ SmallVector<WeakTrackingVH, 8> ToErase;
+#endif
for (auto &Inst : instructions(F))
if (isInstructionTriviallyDead(&Inst))
ToErase.push_back(&Inst);