Skip to content

Commit c13b45e

Browse files
srividyakarumuriigcbot
authored andcommitted
Removing duplicated code to optimize loads
1 parent d91ecc6 commit c13b45e

File tree

2 files changed

+0
-57
lines changed

2 files changed

+0
-57
lines changed

IGC/Compiler/CustomSafeOptPass.cpp

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -455,12 +455,6 @@ void CustomSafeOptPass::visitCallInst(CallInst& C)
455455
break;
456456
}
457457

458-
case GenISAIntrinsic::GenISA_ldrawvector_indexed:
459-
{
460-
visitLdRawVec(inst);
461-
break;
462-
}
463-
464458
default:
465459
break;
466460
}
@@ -1327,56 +1321,6 @@ void IGC::CustomSafeOptPass::visitLdptr(llvm::SamplerLoadIntrinsic* inst)
13271321
}
13281322
}
13291323

1330-
1331-
void IGC::CustomSafeOptPass::visitLdRawVec(llvm::CallInst* inst)
1332-
{
1333-
//Try to optimize and remove vector ld raw and change to scalar ld raw
1334-
1335-
//%a = call <4 x float> @llvm.genx.GenISA.ldrawvector.indexed.v4f32.p1441792f32(
1336-
//.....float addrspace(1441792) * %243, i32 %offset, i32 4, i1 false), !dbg !216
1337-
//%b = extractelement <4 x float> % 245, i32 0, !dbg !216
1338-
1339-
//into
1340-
1341-
//%new_offset = add i32 %offset, 0, !dbg !216
1342-
//%b = call float @llvm.genx.GenISA.ldraw.indexed.f32.p1441792f32.i32.i32.i1(
1343-
//.....float addrspace(1441792) * %251, i32 %new_offset, i32 4, i1 false)
1344-
1345-
if (inst->hasOneUse() &&
1346-
isa<ExtractElementInst>(inst->user_back()))
1347-
{
1348-
auto EE = cast<ExtractElementInst>(inst->user_back());
1349-
if (auto constIndex = dyn_cast<ConstantInt>(EE->getIndexOperand()))
1350-
{
1351-
llvm::IRBuilder<> builder(inst);
1352-
1353-
llvm::SmallVector<llvm::Type*, 2> ovldtypes{
1354-
EE->getType(), //float type
1355-
inst->getOperand(0)->getType(),
1356-
};
1357-
1358-
// For new_offset we need to take into acount the index of the Extract
1359-
// and convert it to bytes and add it to the existing offset
1360-
auto new_offset = constIndex->getZExtValue() * 4;
1361-
1362-
llvm::SmallVector<llvm::Value*, 4> new_args{
1363-
inst->getOperand(0),
1364-
builder.CreateAdd(inst->getOperand(1),builder.getInt32((unsigned)new_offset)),
1365-
inst->getOperand(2),
1366-
inst->getOperand(3)
1367-
};
1368-
1369-
Function* pLdraw_indexed_intrinsic = llvm::GenISAIntrinsic::getDeclaration(
1370-
inst->getModule(),
1371-
GenISAIntrinsic::GenISA_ldraw_indexed,
1372-
ovldtypes);
1373-
1374-
llvm::Value* ldraw_indexed = builder.CreateCall(pLdraw_indexed_intrinsic, new_args, "");
1375-
EE->replaceAllUsesWith(ldraw_indexed);
1376-
}
1377-
}
1378-
}
1379-
13801324
void IGC::CustomSafeOptPass::visitSampleBptr(llvm::SampleIntrinsic* sampleInst)
13811325
{
13821326
// sampleB with bias_value==0 -> sample

IGC/Compiler/CustomSafeOptPass.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ namespace IGC
6565
void visitFPTruncInst(llvm::FPTruncInst& I);
6666
void visitExtractElementInst(llvm::ExtractElementInst& I);
6767
void visitLdptr(llvm::SamplerLoadIntrinsic* inst);
68-
void visitLdRawVec(llvm::CallInst* inst);
6968
void visitLoadInst(llvm::LoadInst& I);
7069
void dp4WithIdentityMatrix(llvm::ExtractElementInst& I);
7170
bool isIdentityMatrix(llvm::ExtractElementInst& I);

0 commit comments

Comments
 (0)