Skip to content

Commit 5923949

Browse files
krystian-andrzejewskiigcbot
authored andcommitted
Refactor for promoting sample calls
1 parent ede3418 commit 5923949

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

IGC/Compiler/LegalizationPass.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ IN THE SOFTWARE.
3535
#include "llvm/Support/CommandLine.h"
3636
#include "llvm/IR/Instructions.h"
3737
#include "llvm/IR/InstIterator.h"
38+
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
3839
#include "llvm/Transforms/Utils/Local.h"
3940
#include "llvmWrapper/IR/InstrTypes.h"
4041
#include "common/LLVMWarningsPop.hpp"
@@ -1969,9 +1970,7 @@ void Legalization::visitBasicBlock(llvm::BasicBlock& BB) {
19691970

19701971
void Legalization::PromoteFp16ToFp32OnGenSampleCall(llvm::CallInst& I)
19711972
{
1972-
Value* args[16];
1973-
const int args_size = I.getCalledFunction()->getFunctionType()->getNumParams();
1974-
llvm::ArrayRef<Value*> arrayRef_params(args, args_size);
1973+
llvm::SmallVector<llvm::Value*, 16> args(I.arg_begin(), I.arg_end());
19751974
GenIntrinsicInst* CI = llvm::dyn_cast<GenIntrinsicInst>(&I);
19761975

19771976
llvm::SmallVector<Type*, 5> types;
@@ -2002,7 +2001,7 @@ void Legalization::PromoteFp16ToFp32OnGenSampleCall(llvm::CallInst& I)
20022001
types[0] = I.getType();
20032002
types[1] = Type::getFloatTy(I.getContext());
20042003

2005-
for (int index = 0; index < args_size; index++)
2004+
for (size_t index = 0; index < args.size(); index++)
20062005
{
20072006
Value* input = I.getOperand(index);
20082007
if (input->getType()->isHalfTy())
@@ -2025,9 +2024,8 @@ void Legalization::PromoteFp16ToFp32OnGenSampleCall(llvm::CallInst& I)
20252024
}
20262025

20272026
llvm::Function* f0 = GenISAIntrinsic::getDeclaration(m_ctx->getModule(), CI->getIntrinsicID(), types);
2028-
llvm::CallInst* I0 = GenIntrinsicInst::Create(f0, arrayRef_params, "", &I);
2029-
I.replaceAllUsesWith(I0);
2030-
I.eraseFromParent();
2027+
llvm::CallInst* I0 = GenIntrinsicInst::Create(f0, args);
2028+
llvm::ReplaceInstWithInst(&I, I0);
20312029
}
20322030

20332031
void Legalization::visitTruncInst(llvm::TruncInst& I) {

0 commit comments

Comments
 (0)