Skip to content

Commit 3d5050a

Browse files
committed
Changes from code review.
1 parent 16d6498 commit 3d5050a

17 files changed

+23
-21
lines changed

llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -757,12 +757,11 @@ static std::string GetSpirvImageTypeName(const SPIRVType *Type,
757757
const std::string &Prefix) {
758758
Register SampledTypeReg = Type->getOperand(1).getReg();
759759
auto *SampledType = MIRBuilder.getMRI()->getUniqueVRegDef(SampledTypeReg);
760-
std::string TypeName =
761-
Prefix + buildSpirvTypeName(SampledType, MIRBuilder);
760+
std::string TypeName = Prefix + buildSpirvTypeName(SampledType, MIRBuilder);
762761
for (uint32_t I = 2; I < Type->getNumOperands(); ++I) {
763762
TypeName = (TypeName + '_' + Twine(Type->getOperand(I).getImm())).str();
764763
}
765-
return TypeName;
764+
return TypeName;
766765
}
767766

768767
Register SPIRVGlobalRegistry::getOrCreateGlobalVariableWithBinding(

llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -931,14 +931,15 @@ bool hasNonUniformDecoration(Register Reg, const MachineRegisterInfo &MRI) {
931931
}
932932
return false;
933933
}
934-
void addOpAccessChainReqs(const MachineInstr &instr,
935-
SPIRV::RequirementHandler &handler,
936-
const SPIRVSubtarget &subtarget) {
937-
const MachineRegisterInfo &MRI = instr.getMF()->getRegInfo();
934+
935+
void addOpAccessChainReqs(const MachineInstr &Instr,
936+
SPIRV::RequirementHandler &Handler,
937+
const SPIRVSubtarget &Subtarget) {
938+
const MachineRegisterInfo &MRI = Instr.getMF()->getRegInfo();
938939
// Get the result type. If it is an image type, then the shader uses
939940
// descriptor indexing. The appropriate capabilities will be added based
940941
// on the specifics of the image.
941-
Register ResTypeReg = instr.getOperand(1).getReg();
942+
Register ResTypeReg = Instr.getOperand(1).getReg();
942943
MachineInstr *ResTypeInst = MRI.getUniqueVRegDef(ResTypeReg);
943944

944945
assert(ResTypeInst->getOpcode() == SPIRV::OpTypePointer);
@@ -953,47 +954,48 @@ void addOpAccessChainReqs(const MachineInstr &instr,
953954
MachineInstr *PointeeType = MRI.getUniqueVRegDef(PointeeTypeReg);
954955
if (PointeeType->getOpcode() != SPIRV::OpTypeImage &&
955956
PointeeType->getOpcode() != SPIRV::OpTypeSampledImage &&
956-
PointeeType->getOpcode() != SPIRV::OpTypeSampler)
957+
PointeeType->getOpcode() != SPIRV::OpTypeSampler) {
957958
return;
959+
}
958960

959961
bool IsNonUniform =
960-
hasNonUniformDecoration(instr.getOperand(0).getReg(), MRI);
962+
hasNonUniformDecoration(Instr.getOperand(0).getReg(), MRI);
961963
if (isUniformTexelBuffer(PointeeType)) {
962964
if (IsNonUniform)
963-
handler.addRequirements(
965+
Handler.addRequirements(
964966
SPIRV::Capability::UniformTexelBufferArrayNonUniformIndexingEXT);
965967
else
966-
handler.addRequirements(
968+
Handler.addRequirements(
967969
SPIRV::Capability::UniformTexelBufferArrayDynamicIndexingEXT);
968970
} else if (isInputAttachment(PointeeType)) {
969971
if (IsNonUniform)
970-
handler.addRequirements(
972+
Handler.addRequirements(
971973
SPIRV::Capability::InputAttachmentArrayNonUniformIndexingEXT);
972974
else
973-
handler.addRequirements(
975+
Handler.addRequirements(
974976
SPIRV::Capability::InputAttachmentArrayDynamicIndexingEXT);
975977
} else if (isStorageTexelBuffer(PointeeType)) {
976978
if (IsNonUniform)
977-
handler.addRequirements(
979+
Handler.addRequirements(
978980
SPIRV::Capability::StorageTexelBufferArrayNonUniformIndexingEXT);
979981
else
980-
handler.addRequirements(
982+
Handler.addRequirements(
981983
SPIRV::Capability::StorageTexelBufferArrayDynamicIndexingEXT);
982984
} else if (isSampledImage(PointeeType) ||
983985
isCombinedImageSampler(PointeeType) ||
984986
PointeeType->getOpcode() == SPIRV::OpTypeSampler) {
985987
if (IsNonUniform)
986-
handler.addRequirements(
988+
Handler.addRequirements(
987989
SPIRV::Capability::SampledImageArrayNonUniformIndexingEXT);
988990
else
989-
handler.addRequirements(
991+
Handler.addRequirements(
990992
SPIRV::Capability::SampledImageArrayDynamicIndexing);
991993
} else if (isStorageImage(PointeeType)) {
992994
if (IsNonUniform)
993-
handler.addRequirements(
995+
Handler.addRequirements(
994996
SPIRV::Capability::StorageImageArrayNonUniformIndexingEXT);
995997
else
996-
handler.addRequirements(
998+
Handler.addRequirements(
997999
SPIRV::Capability::StorageImageArrayDynamicIndexing);
9981000
}
9991001
}
@@ -1117,14 +1119,15 @@ void addInstrRequirements(const MachineInstr &MI,
11171119
case SPIRV::OpConstantSampler:
11181120
Reqs.addCapability(SPIRV::Capability::LiteralSampler);
11191121
break;
1122+
case SPIRV::OpInBoundsAccessChain:
11201123
case SPIRV::OpAccessChain:
11211124
addOpAccessChainReqs(MI, Reqs, ST);
11221125
break;
11231126
case SPIRV::OpTypeImage:
11241127
addOpTypeImageReqs(MI, Reqs, ST);
11251128
break;
11261129
case SPIRV::OpTypeSampler:
1127-
if (ST.isOpenCLEnv()) {
1130+
if (!ST.isVulkanEnv()) {
11281131
Reqs.addCapability(SPIRV::Capability::ImageBasic);
11291132
}
11301133
break;

0 commit comments

Comments
 (0)