[llvm] f1caacf - [SPIR-V] Reuse getIConstVal instead of custom one where applicable (NFC) (#206131)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 29 04:58:03 PDT 2026
Author: Arseniy Obolenskiy
Date: 2026-06-29T13:57:57+02:00
New Revision: f1caacf406bbbf26a184e1c08f7cd716a5898d61
URL: https://github.com/llvm/llvm-project/commit/f1caacf406bbbf26a184e1c08f7cd716a5898d61
DIFF: https://github.com/llvm/llvm-project/commit/f1caacf406bbbf26a184e1c08f7cd716a5898d61.diff
LOG: [SPIR-V] Reuse getIConstVal instead of custom one where applicable (NFC) (#206131)
Added:
Modified:
llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp b/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
index 69c8c9f9818e3..f97e0060c67e4 100644
--- a/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
@@ -392,16 +392,6 @@ static MachineInstr *getBlockStructInstr(Register ParamReg,
llvm_unreachable("getBlockStructInstr: unexpected instruction pattern");
}
-// Return an integer constant corresponding to the given register and
-// defined in spv_track_constant.
-// TODO: maybe unify with prelegalizer pass.
-static unsigned getConstFromIntrinsic(Register Reg, MachineRegisterInfo *MRI) {
- MachineInstr *DefMI = MRI->getUniqueVRegDef(Reg);
- assert(DefMI->getOpcode() == TargetOpcode::G_CONSTANT &&
- DefMI->getOperand(1).isCImm());
- return DefMI->getOperand(1).getCImm()->getValue().getZExtValue();
-}
-
// Return type of the instruction result from spv_assign_type intrinsic.
// TODO: maybe unify with prelegalizer pass.
static const Type *getMachineInstrType(MachineInstr *MI) {
@@ -1382,7 +1372,7 @@ static bool generateGroupInst(const SPIRV::IncomingCall *Call,
if (GroupBuiltin->Opcode ==
SPIRV::OpSubgroupMatrixMultiplyAccumulateINTEL &&
Call->Arguments.size() > 4)
- ImmArgs.push_back(getConstFromIntrinsic(Call->Arguments[4], MRI));
+ ImmArgs.push_back(getIConstVal(Call->Arguments[4], MRI));
return buildOpFromWrapper(MIRBuilder, GroupBuiltin->Opcode, Call,
GR->getSPIRVTypeID(Call->ReturnType), ImmArgs);
}
@@ -2533,7 +2523,7 @@ static bool generateCoopMatrInst(const SPIRV::IncomingCall *Call,
SmallVector<uint32_t, 1> ImmArgs;
MachineRegisterInfo *MRI = MIRBuilder.getMRI();
if (Opcode == SPIRV::OpCooperativeMatrixPrefetchINTEL) {
- const uint32_t CacheLevel = getConstFromIntrinsic(Call->Arguments[3], MRI);
+ const uint32_t CacheLevel = getIConstVal(Call->Arguments[3], MRI);
auto MIB = MIRBuilder.buildInstr(SPIRV::OpCooperativeMatrixPrefetchINTEL)
.addUse(Call->Arguments[0]) // pointer
.addUse(Call->Arguments[1]) // rows
@@ -2543,13 +2533,13 @@ static bool generateCoopMatrInst(const SPIRV::IncomingCall *Call,
if (ArgSz > 5)
MIB.addUse(Call->Arguments[5]); // stride
if (ArgSz > 6) {
- const uint32_t MemOp = getConstFromIntrinsic(Call->Arguments[6], MRI);
+ const uint32_t MemOp = getIConstVal(Call->Arguments[6], MRI);
MIB.addImm(MemOp); // memory operand
}
return true;
}
if (LiteralIdx > 0)
- ImmArgs.push_back(getConstFromIntrinsic(Call->Arguments[LiteralIdx], MRI));
+ ImmArgs.push_back(getIConstVal(Call->Arguments[LiteralIdx], MRI));
Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
if (Opcode == SPIRV::OpCooperativeMatrixLengthKHR) {
SPIRVTypeInst CoopMatrType = GR->getSPIRVTypeForVReg(Call->Arguments[0]);
@@ -2682,7 +2672,7 @@ static bool buildAPFixedPointInst(const SPIRV::IncomingCall *Call,
}
for (unsigned index = 2; index < 7; index++) {
- ImmArgs.push_back(getConstFromIntrinsic(Call->Arguments[index], MRI));
+ ImmArgs.push_back(getIConstVal(Call->Arguments[index], MRI));
}
// Emit the instruction
@@ -2705,7 +2695,7 @@ static bool buildAPFixedPointInst(const SPIRV::IncomingCall *Call,
return true;
} else {
for (unsigned index = 1; index < 6; index++)
- ImmArgs.push_back(getConstFromIntrinsic(Call->Arguments[index], MRI));
+ ImmArgs.push_back(getIConstVal(Call->Arguments[index], MRI));
return buildOpFromWrapper(MIRBuilder, Opcode, Call,
GR->getSPIRVTypeID(Call->ReturnType), ImmArgs);
@@ -2782,8 +2772,7 @@ static bool generatePredicatedLoadStoreInst(const SPIRV::IncomingCall *Call,
MachineRegisterInfo *MRI = MIRBuilder.getMRI();
// Memory operand is optional and is literal.
if (ArgSz > 3)
- ImmArgs.push_back(
- getConstFromIntrinsic(Call->Arguments[/*Literal index*/ 3], MRI));
+ ImmArgs.push_back(getIConstVal(Call->Arguments[/*Literal index*/ 3], MRI));
Register TypeReg = GR->getSPIRVTypeID(Call->ReturnType);
return buildOpFromWrapper(MIRBuilder, Opcode, Call,
@@ -3370,7 +3359,7 @@ static bool generateAFPInst(const SPIRV::IncomingCall *Call,
MachineInstr *DefMI = MRI->getUniqueVRegDef(Arg);
if (DefMI->getOpcode() == TargetOpcode::G_CONSTANT &&
DefMI->getOperand(1).isCImm()) {
- MIB.addImm(getConstFromIntrinsic(Arg, MRI));
+ MIB.addImm(getIConstVal(Arg, MRI));
} else {
MIB.addUse(Arg);
}
@@ -3408,9 +3397,9 @@ static bool generateLoadStoreInst(const SPIRV::IncomingCall *Call,
// Add optional memory attributes and an alignment.
unsigned NumArgs = Call->Arguments.size();
if ((IsLoad && NumArgs >= 2) || NumArgs >= 3)
- MIB.addImm(getConstFromIntrinsic(Call->Arguments[IsLoad ? 1 : 2], MRI));
+ MIB.addImm(getIConstVal(Call->Arguments[IsLoad ? 1 : 2], MRI));
if ((IsLoad && NumArgs >= 3) || NumArgs >= 4)
- MIB.addImm(getConstFromIntrinsic(Call->Arguments[IsLoad ? 2 : 3], MRI));
+ MIB.addImm(getIConstVal(Call->Arguments[IsLoad ? 2 : 3], MRI));
return true;
}
More information about the llvm-commits
mailing list