Skip to content

Commit 733c4fc

Browse files
committed
Revert "Promote SPV_INTEL_optimization_hints to SPV_KHR_expect_assume"
This reverts commit d8cb9a8.
1 parent f7d6423 commit 733c4fc

File tree

13 files changed

+72
-65
lines changed

13 files changed

+72
-65
lines changed

llvm-spirv/include/LLVMSPIRVExtensions.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ EXT(SPV_EXT_shader_atomic_float_min_max)
77
EXT(SPV_KHR_no_integer_wrap_decoration)
88
EXT(SPV_KHR_float_controls)
99
EXT(SPV_KHR_linkonce_odr)
10-
EXT(SPV_KHR_expect_assume)
1110
EXT(SPV_INTEL_subgroups)
1211
EXT(SPV_INTEL_media_block_io)
1312
EXT(SPV_INTEL_device_side_avc_motion_estimation)
@@ -22,6 +21,7 @@ EXT(SPV_INTEL_kernel_attributes)
2221
EXT(SPV_INTEL_io_pipes)
2322
EXT(SPV_INTEL_inline_assembly)
2423
EXT(SPV_INTEL_arbitrary_precision_integers)
24+
EXT(SPV_INTEL_optimization_hints)
2525
EXT(SPV_INTEL_float_controls2)
2626
EXT(SPV_INTEL_vector_compute)
2727
EXT(SPV_INTEL_fast_composite)

llvm-spirv/lib/SPIRV/SPIRVReader.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2433,16 +2433,16 @@ Value *SPIRVToLLVM::transValueWithoutDecoration(SPIRVValue *BV, Function *F,
24332433
return mapValue(BV, Call);
24342434
}
24352435

2436-
case OpAssumeTrueKHR: {
2436+
case internal::OpAssumeTrueINTEL: {
24372437
IRBuilder<> Builder(BB);
2438-
SPIRVAssumeTrueKHR *BC = static_cast<SPIRVAssumeTrueKHR *>(BV);
2438+
SPIRVAssumeTrueINTEL *BC = static_cast<SPIRVAssumeTrueINTEL *>(BV);
24392439
Value *Condition = transValue(BC->getCondition(), F, BB);
24402440
return mapValue(BV, Builder.CreateAssumption(Condition));
24412441
}
24422442

2443-
case OpExpectKHR: {
2443+
case internal::OpExpectINTEL: {
24442444
IRBuilder<> Builder(BB);
2445-
SPIRVExpectKHRInstBase *BC = static_cast<SPIRVExpectKHRInstBase *>(BV);
2445+
SPIRVExpectINTELInstBase *BC = static_cast<SPIRVExpectINTELInstBase *>(BV);
24462446
Type *RetTy = transType(BC->getType());
24472447
Value *Val = transValue(BC->getOperand(0), F, BB);
24482448
Value *ExpVal = transValue(BC->getOperand(1), F, BB);

llvm-spirv/lib/SPIRV/SPIRVWriter.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2380,11 +2380,12 @@ SPIRVValue *LLVMToSPIRVBase::transIntrinsicInst(IntrinsicInst *II,
23802380
switch (II->getIntrinsicID()) {
23812381
case Intrinsic::assume: {
23822382
// llvm.assume translation is currently supported only within
2383-
// SPV_KHR_expect_assume extension, ignore it otherwise, since it's
2383+
// SPV_INTEL_optimization_hints extension, ignore it otherwise, since it's
23842384
// an optimization hint
2385-
if (BM->isAllowedToUseExtension(ExtensionID::SPV_KHR_expect_assume)) {
2385+
if (BM->isAllowedToUseExtension(
2386+
ExtensionID::SPV_INTEL_optimization_hints)) {
23862387
SPIRVValue *Condition = transValue(II->getArgOperand(0), BB);
2387-
return BM->addAssumeTrueKHRInst(Condition, BB);
2388+
return BM->addAssumeTrueINTELInst(Condition, BB);
23882389
}
23892390
return nullptr;
23902391
}
@@ -2495,13 +2496,14 @@ SPIRVValue *LLVMToSPIRVBase::transIntrinsicInst(IntrinsicInst *II,
24952496
}
24962497
case Intrinsic::expect: {
24972498
// llvm.expect translation is currently supported only within
2498-
// SPV_KHR_expect_assume extension, replace it with a translated value of #0
2499-
// operand otherwise, since it's an optimization hint
2499+
// SPV_INTEL_optimization_hints extension, replace it with a translated
2500+
// value of #0 operand otherwise, since it's an optimization hint
25002501
SPIRVValue *Value = transValue(II->getArgOperand(0), BB);
2501-
if (BM->isAllowedToUseExtension(ExtensionID::SPV_KHR_expect_assume)) {
2502+
if (BM->isAllowedToUseExtension(
2503+
ExtensionID::SPV_INTEL_optimization_hints)) {
25022504
SPIRVType *Ty = transType(II->getType());
25032505
SPIRVValue *ExpectedValue = transValue(II->getArgOperand(1), BB);
2504-
return BM->addExpectKHRInst(Ty, Value, ExpectedValue, BB);
2506+
return BM->addExpectINTELInst(Ty, Value, ExpectedValue, BB);
25052507
}
25062508
return Value;
25072509
}

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVInstruction.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2864,30 +2864,30 @@ _SPIRV_OP(GenericPtrMemSemantics, true, 4, false)
28642864
_SPIRV_OP(GenericCastToPtrExplicit, true, 5, false, 1)
28652865
#undef _SPIRV_OP
28662866

2867-
class SPIRVAssumeTrueKHR : public SPIRVInstruction {
2867+
class SPIRVAssumeTrueINTEL : public SPIRVInstruction {
28682868
public:
2869-
static const Op OC = OpAssumeTrueKHR;
2869+
static const Op OC = internal::OpAssumeTrueINTEL;
28702870
static const SPIRVWord FixedWordCount = 2;
28712871

2872-
SPIRVAssumeTrueKHR(SPIRVId TheCondition, SPIRVBasicBlock *BB)
2872+
SPIRVAssumeTrueINTEL(SPIRVId TheCondition, SPIRVBasicBlock *BB)
28732873
: SPIRVInstruction(FixedWordCount, OC, BB), ConditionId(TheCondition) {
28742874
validate();
28752875
setHasNoId();
28762876
setHasNoType();
28772877
assert(BB && "Invalid BB");
28782878
}
28792879

2880-
SPIRVAssumeTrueKHR() : SPIRVInstruction(OC), ConditionId(SPIRVID_MAX) {
2880+
SPIRVAssumeTrueINTEL() : SPIRVInstruction(OC), ConditionId(SPIRVID_MAX) {
28812881
setHasNoId();
28822882
setHasNoType();
28832883
}
28842884

28852885
SPIRVCapVec getRequiredCapability() const override {
2886-
return getVec(CapabilityExpectAssumeKHR);
2886+
return getVec(internal::CapabilityOptimizationHintsINTEL);
28872887
}
28882888

28892889
llvm::Optional<ExtensionID> getRequiredExtension() const override {
2890-
return ExtensionID::SPV_KHR_expect_assume;
2890+
return ExtensionID::SPV_INTEL_optimization_hints;
28912891
}
28922892

28932893
SPIRVValue *getCondition() const { return getValue(ConditionId); }
@@ -2901,21 +2901,22 @@ class SPIRVAssumeTrueKHR : public SPIRVInstruction {
29012901
SPIRVId ConditionId;
29022902
};
29032903

2904-
class SPIRVExpectKHRInstBase : public SPIRVInstTemplateBase {
2904+
class SPIRVExpectINTELInstBase : public SPIRVInstTemplateBase {
29052905
protected:
29062906
SPIRVCapVec getRequiredCapability() const override {
2907-
return getVec(CapabilityExpectAssumeKHR);
2907+
return getVec(internal::CapabilityOptimizationHintsINTEL);
29082908
}
29092909

29102910
llvm::Optional<ExtensionID> getRequiredExtension() const override {
2911-
return ExtensionID::SPV_KHR_expect_assume;
2911+
return ExtensionID::SPV_INTEL_optimization_hints;
29122912
}
29132913
};
29142914

2915-
#define _SPIRV_OP(x, ...) \
2916-
typedef SPIRVInstTemplate<SPIRVExpectKHRInstBase, Op##x, __VA_ARGS__> \
2915+
#define _SPIRV_OP_INTERNAL(x, ...) \
2916+
typedef SPIRVInstTemplate<SPIRVExpectINTELInstBase, internal::Op##x, \
2917+
__VA_ARGS__> \
29172918
SPIRV##x;
2918-
_SPIRV_OP(ExpectKHR, true, 5)
2919+
_SPIRV_OP_INTERNAL(ExpectINTEL, true, 5)
29192920
#undef _SPIRV_OP_INTERNAL
29202921

29212922
class SPIRVSubgroupShuffleINTELInstBase : public SPIRVInstTemplateBase {

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVModule.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,11 @@ class SPIRVModuleImpl : public SPIRVModule {
439439
SPIRVBasicBlock *) override;
440440
SPIRVInstruction *addSampledImageInst(SPIRVType *, SPIRVValue *, SPIRVValue *,
441441
SPIRVBasicBlock *) override;
442+
SPIRVInstruction *addAssumeTrueINTELInst(SPIRVValue *Condition,
443+
SPIRVBasicBlock *BB) override;
444+
SPIRVInstruction *addExpectINTELInst(SPIRVType *ResultTy, SPIRVValue *Value,
445+
SPIRVValue *ExpectedValue,
446+
SPIRVBasicBlock *BB) override;
442447
template <typename AliasingInstType>
443448
SPIRVEntry *getOrAddMemAliasingINTELInst(std::vector<SPIRVId> Args,
444449
llvm::MDNode *MD);
@@ -448,11 +453,6 @@ class SPIRVModuleImpl : public SPIRVModule {
448453
llvm::MDNode *MD) override;
449454
SPIRVEntry *getOrAddAliasScopeListDeclINTELInst(std::vector<SPIRVId> Args,
450455
llvm::MDNode *MD) override;
451-
SPIRVInstruction *addAssumeTrueKHRInst(SPIRVValue *Condition,
452-
SPIRVBasicBlock *BB) override;
453-
SPIRVInstruction *addExpectKHRInst(SPIRVType *ResultTy, SPIRVValue *Value,
454-
SPIRVValue *ExpectedValue,
455-
SPIRVBasicBlock *BB) override;
456456

457457
virtual SPIRVId getExtInstSetId(SPIRVExtInstSetKind Kind) const override;
458458

@@ -1591,17 +1591,17 @@ SPIRVInstruction *SPIRVModuleImpl::addSampledImageInst(SPIRVType *ResultTy,
15911591
BB);
15921592
}
15931593

1594-
SPIRVInstruction *SPIRVModuleImpl::addAssumeTrueKHRInst(SPIRVValue *Condition,
1595-
SPIRVBasicBlock *BB) {
1596-
return addInstruction(new SPIRVAssumeTrueKHR(Condition->getId(), BB), BB);
1594+
SPIRVInstruction *SPIRVModuleImpl::addAssumeTrueINTELInst(SPIRVValue *Condition,
1595+
SPIRVBasicBlock *BB) {
1596+
return addInstruction(new SPIRVAssumeTrueINTEL(Condition->getId(), BB), BB);
15971597
}
15981598

1599-
SPIRVInstruction *SPIRVModuleImpl::addExpectKHRInst(SPIRVType *ResultTy,
1600-
SPIRVValue *Value,
1601-
SPIRVValue *ExpectedValue,
1602-
SPIRVBasicBlock *BB) {
1599+
SPIRVInstruction *SPIRVModuleImpl::addExpectINTELInst(SPIRVType *ResultTy,
1600+
SPIRVValue *Value,
1601+
SPIRVValue *ExpectedValue,
1602+
SPIRVBasicBlock *BB) {
16031603
return addInstruction(SPIRVInstTemplateBase::create(
1604-
OpExpectKHR, ResultTy, getId(),
1604+
internal::OpExpectINTEL, ResultTy, getId(),
16051605
getVec(Value->getId(), ExpectedValue->getId()), BB,
16061606
this),
16071607
BB);

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVModule.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -448,18 +448,18 @@ class SPIRVModule {
448448
virtual SPIRVInstruction *addSampledImageInst(SPIRVType *, SPIRVValue *,
449449
SPIRVValue *,
450450
SPIRVBasicBlock *) = 0;
451+
virtual SPIRVInstruction *addAssumeTrueINTELInst(SPIRVValue *Condition,
452+
SPIRVBasicBlock *BB) = 0;
453+
virtual SPIRVInstruction *addExpectINTELInst(SPIRVType *ResultTy,
454+
SPIRVValue *Value,
455+
SPIRVValue *ExpectedValue,
456+
SPIRVBasicBlock *BB) = 0;
451457
virtual SPIRVEntry *getOrAddAliasDomainDeclINTELInst(
452458
std::vector<SPIRVId> Args, llvm::MDNode *MD) = 0;
453459
virtual SPIRVEntry *getOrAddAliasScopeDeclINTELInst(
454460
std::vector<SPIRVId> Args, llvm::MDNode *MD) = 0;
455461
virtual SPIRVEntry *getOrAddAliasScopeListDeclINTELInst(
456462
std::vector<SPIRVId> Args, llvm::MDNode *MD) = 0;
457-
virtual SPIRVInstruction *addAssumeTrueKHRInst(SPIRVValue *Condition,
458-
SPIRVBasicBlock *BB) = 0;
459-
virtual SPIRVInstruction *addExpectKHRInst(SPIRVType *ResultTy,
460-
SPIRVValue *Value,
461-
SPIRVValue *ExpectedValue,
462-
SPIRVBasicBlock *BB) = 0;
463463

464464
virtual SPIRVId getExtInstSetId(SPIRVExtInstSetKind Kind) const = 0;
465465

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVNameMapEnum.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ template <> inline void SPIRVMap<Capability, std::string>::init() {
487487
add(CapabilityAsmINTEL, "AsmINTEL");
488488
add(CapabilityVectorComputeINTEL, "VectorComputeINTEL");
489489
add(CapabilityVectorAnyINTEL, "VectorAnyINTEL");
490-
add(CapabilityExpectAssumeKHR, "ExpectAssumeKHR");
490+
add(internal::CapabilityOptimizationHintsINTEL, "OptimizationHintsINTEL");
491491
add(CapabilitySubgroupAvcMotionEstimationINTEL,
492492
"SubgroupAvcMotionEstimationINTEL");
493493
add(CapabilitySubgroupAvcMotionEstimationIntraINTEL,

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVOpCodeEnum.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,6 @@ _SPIRV_OP(AsmINTEL, 5610)
344344
_SPIRV_OP(AsmCallINTEL, 5611)
345345
_SPIRV_OP(AtomicFMinEXT, 5614)
346346
_SPIRV_OP(AtomicFMaxEXT, 5615)
347-
_SPIRV_OP(AssumeTrueKHR, 5630)
348-
_SPIRV_OP(ExpectKHR, 5631)
349347
_SPIRV_OP(VmeImageINTEL, 5699)
350348
_SPIRV_OP(TypeVmeImageINTEL, 5700)
351349
_SPIRV_OP(TypeAvcImePayloadINTEL, 5701)

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVOpCodeEnumInternal.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include "spirv_internal.hpp"
22

3+
_SPIRV_OP_INTERNAL(AssumeTrueINTEL, internal::OpAssumeTrueINTEL)
4+
_SPIRV_OP_INTERNAL(ExpectINTEL, internal::OpExpectINTEL)
35
_SPIRV_OP_INTERNAL(Forward, internal::OpForward)
46
_SPIRV_OP_INTERNAL(AliasDomainDeclINTEL, internal::OpAliasDomainDeclINTEL)
57
_SPIRV_OP_INTERNAL(AliasScopeDeclINTEL, internal::OpAliasScopeDeclINTEL)

llvm-spirv/lib/SPIRV/libSPIRV/spirv.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,6 @@ enum Capability {
10281028
CapabilityAtomicFloat16MinMaxEXT = 5616,
10291029
CapabilityVectorComputeINTEL = 5617,
10301030
CapabilityVectorAnyINTEL = 5619,
1031-
CapabilityExpectAssumeKHR = 5629,
10321031
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
10331032
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
10341033
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
@@ -1547,8 +1546,6 @@ enum Op {
15471546
OpAsmCallINTEL = 5611,
15481547
OpAtomicFMinEXT = 5614,
15491548
OpAtomicFMaxEXT = 5615,
1550-
OpAssumeTrueKHR = 5630,
1551-
OpExpectKHR = 5631,
15521549
OpDecorateString = 5632,
15531550
OpDecorateStringGOOGLE = 5632,
15541551
OpMemberDecorateString = 5633,

0 commit comments

Comments
 (0)