Skip to content

Commit 25deb79

Browse files
aratajewigcbot
authored andcommitted
Revert functionality that allows to disable bindless for specific kernels
This change reverts the following commit: 513f91d
1 parent 156bd92 commit 25deb79

File tree

5 files changed

+8
-44
lines changed

5 files changed

+8
-44
lines changed

IGC/AdaptorCommon/AddImplicitArgs.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ SPDX-License-Identifier: MIT
1414
#include "Compiler/DebugInfo/ScalarVISAModule.h"
1515
#include "Compiler/Optimizer/OCLBIUtils.h"
1616
#include "Compiler/MetaDataApi/IGCMetaDataHelper.h"
17-
#include "Compiler/Optimizer/OpenCLPasses/StatelessToStateful/StatelessToStateful.hpp"
1817
#include "LLVM3DBuilder/MetadataBuilder.h"
1918

2019
#include "common/LLVMWarningsPush.hpp"
@@ -105,8 +104,7 @@ bool AddImplicitArgs::runOnModule(Module &M)
105104
}
106105

107106
if (ctx->getModuleMetaData()->compOpt.UseBindlessMode &&
108-
!ctx->getModuleMetaData()->compOpt.UseLegacyBindlessMode &&
109-
!StatelessToStateful::WA_ForcedUsedOfBindfulMode(func))
107+
!ctx->getModuleMetaData()->compOpt.UseLegacyBindlessMode)
110108
{
111109
ImplicitArgs::addBindlessOffsetArgs(func, m_pMdUtils, ctx->getModuleMetaData());
112110
}

IGC/Compiler/Optimizer/OpenCLPasses/StatelessToStateful/StatelessToStateful.cpp

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@ void StatelessToStateful::promoteIntrinsic(InstructionInfo& II)
762762
GenISAIntrinsic::ID const intrinID = I->getIntrinsicID();
763763
PointerType* pTy = IGCLLVM::getWithSamePointeeType(dyn_cast<PointerType>(II.ptr->getType()), II.getStatefulAddrSpace());
764764

765-
if (m_targetAddressing == TargetAddressing::BINDLESS && !WA_ForcedUsedOfBindfulMode(*m_F))
765+
if (m_targetAddressing == TargetAddressing::BINDLESS)
766766
{
767767
Argument* srcOffset = m_pImplicitArgs->getNumberedImplicitArg(*m_F, ImplicitArg::BINDLESS_OFFSET, II.getBaseArgIndex());
768768
auto newBasePtr = IntToPtrInst::Create(Instruction::IntToPtr, srcOffset, pTy, "", I);
@@ -793,7 +793,7 @@ void StatelessToStateful::promoteIntrinsic(InstructionInfo& II)
793793
return;
794794
}
795795

796-
IGC_ASSERT(m_targetAddressing == TargetAddressing::BINDFUL || WA_ForcedUsedOfBindfulMode(*m_F));
796+
IGC_ASSERT(m_targetAddressing == TargetAddressing::BINDFUL);
797797

798798
Instruction* statefulPtr = IntToPtrInst::Create(Instruction::IntToPtr, II.offset, pTy, "", I);
799799
Instruction* statefulInst = nullptr;
@@ -884,7 +884,7 @@ void StatelessToStateful::promoteLoad(InstructionInfo& II)
884884

885885
const DebugLoc& DL = I->getDebugLoc();
886886

887-
if (m_targetAddressing == TargetAddressing::BINDLESS && !WA_ForcedUsedOfBindfulMode(*m_F))
887+
if (m_targetAddressing == TargetAddressing::BINDLESS)
888888
{
889889
Argument* srcOffset = m_pImplicitArgs->getNumberedImplicitArg(*m_F, ImplicitArg::BINDLESS_OFFSET, II.getBaseArgIndex());
890890
auto newBasePtr = IntToPtrInst::Create(Instruction::IntToPtr, srcOffset, pTy, "", I);
@@ -897,7 +897,7 @@ void StatelessToStateful::promoteLoad(InstructionInfo& II)
897897
I->eraseFromParent();
898898
setModuleUsesBindless();
899899
}
900-
else if (m_targetAddressing == TargetAddressing::BINDFUL || WA_ForcedUsedOfBindfulMode(*m_F))
900+
else if (m_targetAddressing == TargetAddressing::BINDFUL)
901901
{
902902
auto newBasePtr = IntToPtrInst::Create(Instruction::IntToPtr, II.offset, pTy, "", I);
903903
auto bindfulLoad = new LoadInst(
@@ -939,7 +939,7 @@ void StatelessToStateful::promoteStore(InstructionInfo& II)
939939

940940
const DebugLoc& DL = I->getDebugLoc();
941941

942-
if (m_targetAddressing == TargetAddressing::BINDLESS && !WA_ForcedUsedOfBindfulMode(*m_F))
942+
if (m_targetAddressing == TargetAddressing::BINDLESS)
943943
{
944944
Argument* srcOffset = m_pImplicitArgs->getNumberedImplicitArg(*m_F, ImplicitArg::BINDLESS_OFFSET, II.getBaseArgIndex());
945945
auto newBasePtr = IntToPtrInst::Create(Instruction::IntToPtr, srcOffset, pTy, "", I);
@@ -951,7 +951,7 @@ void StatelessToStateful::promoteStore(InstructionInfo& II)
951951
I->eraseFromParent();
952952
setModuleUsesBindless();
953953
}
954-
else if (m_targetAddressing == TargetAddressing::BINDFUL || WA_ForcedUsedOfBindfulMode(*m_F))
954+
else if (m_targetAddressing == TargetAddressing::BINDFUL)
955955
{
956956
auto newBasePtr = IntToPtrInst::Create(Instruction::IntToPtr, II.offset, pTy, "", I);
957957
auto bindfulStore = new StoreInst(
@@ -1006,7 +1006,7 @@ void StatelessToStateful::promote()
10061006
IGC_ASSERT(bufferPos < maxPromotionCount);
10071007

10081008
unsigned statefullAddrspace = 0;
1009-
if (m_targetAddressing == TargetAddressing::BINDLESS && !WA_ForcedUsedOfBindfulMode(*m_F))
1009+
if (m_targetAddressing == TargetAddressing::BINDLESS)
10101010
{
10111011
statefullAddrspace =
10121012
IGC::EncodeAS4GFXResource(
@@ -1192,15 +1192,6 @@ void StatelessToStateful::visitStoreInst(StoreInst& I)
11921192
}
11931193
}
11941194

1195-
bool StatelessToStateful::WA_ForcedUsedOfBindfulMode(const Function& F)
1196-
{
1197-
static const std::array kernels{
1198-
"_ZTSZ42oneapi_kernel_integrator_intersect_closestP16KernelGlobalsGPUyyRN4sycl3_V17handlerEPKiPfiEUlNS2_7nd_itemILi1EEENS2_14kernel_handlerEE_",
1199-
};
1200-
1201-
return std::any_of(kernels.begin(), kernels.end(), [&F](const auto& it) { return it == F.getName(); });
1202-
}
1203-
12041195
void StatelessToStateful::findPromotableInstructions()
12051196
{
12061197
// fill m_promotionMap

IGC/Compiler/Optimizer/OpenCLPasses/StatelessToStateful/StatelessToStateful.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ namespace IGC
6363
void visitStoreInst(llvm::StoreInst& I);
6464
void visitCallInst(llvm::CallInst& I);
6565

66-
static bool WA_ForcedUsedOfBindfulMode(const llvm::Function& F);
67-
6866
private:
6967
struct InstructionInfo {
7068
InstructionInfo(llvm::Instruction* I, llvm::Value* ptr, llvm::Value* offset):

IGC/Compiler/SPIRMetaDataTranslation.cpp

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -393,26 +393,6 @@ bool SPIRMetaDataTranslation::runOnModule(Module& M)
393393

394394
pIgcMDUtils->save(M.getContext());
395395

396-
WA_ForceUseBindfulModeIfSpecificKernelExistsInModule(M);
397-
398396
return true;
399397
}
400398

401-
void SPIRMetaDataTranslation::WA_ForceUseBindfulModeIfSpecificKernelExistsInModule(Module& M)
402-
{
403-
bool forceUseBindful = std::any_of(M.begin(), M.end(), [](auto const& it) { return StatelessToStateful::WA_ForcedUsedOfBindfulMode(it); });
404-
if (forceUseBindful)
405-
{
406-
auto modMD = getAnalysis<MetaDataUtilsWrapper>().getModuleMetaData();
407-
auto ctx = getAnalysis<CodeGenContextWrapper>().getCodeGenContext();
408-
auto clContext = static_cast<OpenCLProgramContext*>(ctx);
409-
auto internalOptions = const_cast<InternalOptions*>(&clContext->m_InternalOptions);
410-
411-
modMD->compOpt.UseBindlessMode = false;
412-
modMD->compOpt.UseLegacyBindlessMode = true;
413-
414-
internalOptions->UseBindlessMode = false;
415-
internalOptions->UseBindlessLegacyMode = true;
416-
internalOptions->PromoteStatelessToBindless = false;
417-
}
418-
}

IGC/Compiler/SPIRMetaDataTranslation.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ SPDX-License-Identifier: MIT
1010

1111
#include "Compiler/CodeGenContextWrapper.hpp"
1212
#include "Compiler/MetaDataUtilsWrapper.h"
13-
#include "Compiler/Optimizer/OpenCLPasses/StatelessToStateful/StatelessToStateful.hpp"
1413
#include "common/LLVMWarningsPush.hpp"
1514
#include <llvm/Pass.h>
1615
#include "common/LLVMWarningsPop.hpp"
@@ -39,8 +38,6 @@ namespace IGC
3938
AU.addRequired<MetaDataUtilsWrapper>();
4039
}
4140

42-
private:
43-
void WA_ForceUseBindfulModeIfSpecificKernelExistsInModule(llvm::Module& M);
4441
};
4542

4643
} // namespace IGC

0 commit comments

Comments
 (0)