Skip to content

Commit 2bae401

Browse files
committed
Revert "add support for SPV_EXT_optnone (#2951)"
This reverts commit 26afacd.
1 parent 17c9fb5 commit 2bae401

File tree

8 files changed

+28
-38
lines changed

8 files changed

+28
-38
lines changed

llvm-spirv/include/LLVMSPIRVExtensions.inc

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ EXT(SPV_INTEL_fpga_cluster_attributes)
4646
EXT(SPV_INTEL_loop_fuse)
4747
EXT(SPV_INTEL_long_constant_composite) // TODO: rename to
4848
// SPV_INTEL_long_composites later
49-
EXT(SPV_EXT_optnone)
5049
EXT(SPV_INTEL_optnone)
5150
EXT(SPV_INTEL_fpga_dsp_control)
5251
EXT(SPV_INTEL_memory_access_aliasing)

llvm-spirv/lib/SPIRV/SPIRVInternal.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ inline void
251251
SPIRVMap<Attribute::AttrKind, SPIRVFunctionControlMaskKind>::init() {
252252
add(Attribute::AlwaysInline, FunctionControlInlineMask);
253253
add(Attribute::NoInline, FunctionControlDontInlineMask);
254-
add(Attribute::OptimizeNone, FunctionControlOptNoneEXTMask);
254+
add(Attribute::OptimizeNone, internal::FunctionControlOptNoneINTELMask);
255255
}
256256
typedef SPIRVMap<Attribute::AttrKind, SPIRVFunctionControlMaskKind>
257257
SPIRSPIRVFuncCtlMaskMap;

llvm-spirv/lib/SPIRV/SPIRVWriter.cpp

+3-9
Original file line numberDiff line numberDiff line change
@@ -5541,15 +5541,10 @@ SPIRVWord LLVMToSPIRVBase::transFunctionControlMask(Function *F) {
55415541
[&](Attribute::AttrKind Attr, SPIRVFunctionControlMaskKind Mask) {
55425542
if (F->hasFnAttribute(Attr)) {
55435543
if (Attr == Attribute::OptimizeNone) {
5544-
if (BM->isAllowedToUseExtension(ExtensionID::SPV_EXT_optnone)) {
5545-
BM->addExtension(ExtensionID::SPV_EXT_optnone);
5546-
BM->addCapability(CapabilityOptNoneEXT);
5547-
} else if (BM->isAllowedToUseExtension(
5548-
ExtensionID::SPV_INTEL_optnone)) {
5549-
BM->addExtension(ExtensionID::SPV_INTEL_optnone);
5550-
BM->addCapability(CapabilityOptNoneINTEL);
5551-
} else
5544+
if (!BM->isAllowedToUseExtension(ExtensionID::SPV_INTEL_optnone))
55525545
return;
5546+
BM->addExtension(ExtensionID::SPV_INTEL_optnone);
5547+
BM->addCapability(internal::CapabilityOptNoneINTEL);
55535548
}
55545549
FCM |= Mask;
55555550
}
@@ -7038,7 +7033,6 @@ bool runSpirvBackend(Module *M, std::string &Result, std::string &ErrMsg,
70387033
SPIRV::ExtensionID::SPV_INTEL_cache_controls,
70397034
SPIRV::ExtensionID::SPV_INTEL_global_variable_fpga_decorations,
70407035
SPIRV::ExtensionID::SPV_INTEL_global_variable_host_access,
7041-
SPIRV::ExtensionID::SPV_EXT_optnone,
70427036
SPIRV::ExtensionID::SPV_INTEL_optnone,
70437037
SPIRV::ExtensionID::SPV_INTEL_usm_storage_classes,
70447038
SPIRV::ExtensionID::SPV_INTEL_subgroups,

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ inline bool isValidFunctionControlMask(SPIRVWord Mask) {
294294
ValidMask |= FunctionControlDontInlineMask;
295295
ValidMask |= FunctionControlPureMask;
296296
ValidMask |= FunctionControlConstMask;
297-
ValidMask |= FunctionControlOptNoneEXTMask;
297+
ValidMask |= internal::FunctionControlOptNoneINTELMask;
298298

299299
return (Mask & ~ValidMask) == 0;
300300
}

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ template <> inline void SPIRVMap<Capability, std::string>::init() {
636636
add(CapabilityAtomicFloat32AddEXT, "AtomicFloat32AddEXT");
637637
add(CapabilityAtomicFloat64AddEXT, "AtomicFloat64AddEXT");
638638
add(CapabilityLongCompositesINTEL, "LongCompositesINTEL");
639-
add(CapabilityOptNoneEXT, "OptNoneEXT");
639+
add(CapabilityOptNoneINTEL, "OptNoneINTEL");
640640
add(CapabilityAtomicFloat16AddEXT, "AtomicFloat16AddEXT");
641641
add(CapabilityDebugInfoModuleINTEL, "DebugInfoModuleINTEL");
642642
add(CapabilitySplitBarrierINTEL, "SplitBarrierINTEL");
@@ -656,6 +656,7 @@ template <> inline void SPIRVMap<Capability, std::string>::init() {
656656
add(CapabilityRegisterLimitsINTEL, "RegisterLimitsINTEL");
657657
// From spirv_internal.hpp
658658
add(internal::CapabilityFastCompositeINTEL, "FastCompositeINTEL");
659+
add(internal::CapabilityOptNoneINTEL, "OptNoneINTEL");
659660
add(internal::CapabilityTokenTypeINTEL, "TokenTypeINTEL");
660661
add(internal::CapabilityFPArithmeticFenceINTEL, "FPArithmeticFenceINTEL");
661662
add(internal::CapabilityBfloat16ConversionINTEL, "Bfloat16ConversionINTEL");

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

+8
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ enum InternalDecoration {
107107

108108
enum InternalCapability {
109109
ICapFastCompositeINTEL = 6093,
110+
ICapOptNoneINTEL = 6094,
110111
ICapTokenTypeINTEL = 6112,
111112
ICapBfloat16ConversionINTEL = 6115,
112113
ICapabilityJointMatrixINTEL = 6118,
@@ -131,6 +132,8 @@ enum InternalCapability {
131132
ICapabilityBindlessImagesINTEL = 6528
132133
};
133134

135+
enum InternalFunctionControlMask { IFunctionControlOptNoneINTELMask = 0x10000 };
136+
134137
enum InternalExecutionMode {
135138
IExecModeFastCompositeKernelINTEL = 6088,
136139
IExecModeNamedSubgroupSizeINTEL = 6446,
@@ -288,6 +291,8 @@ constexpr Decoration DecorationArgumentAttributeINTEL =
288291

289292
constexpr Capability CapabilityFastCompositeINTEL =
290293
static_cast<Capability>(ICapFastCompositeINTEL);
294+
constexpr Capability CapabilityOptNoneINTEL =
295+
static_cast<Capability>(ICapOptNoneINTEL);
291296
constexpr Capability CapabilityTokenTypeINTEL =
292297
static_cast<Capability>(ICapTokenTypeINTEL);
293298
constexpr Capability CapabilityFPArithmeticFenceINTEL =
@@ -297,6 +302,9 @@ constexpr Capability CapabilityBfloat16ConversionINTEL =
297302
constexpr Capability CapabilityGlobalVariableDecorationsINTEL =
298303
static_cast<Capability>(ICapGlobalVariableDecorationsINTEL);
299304

305+
constexpr FunctionControlMask FunctionControlOptNoneINTELMask =
306+
static_cast<FunctionControlMask>(IFunctionControlOptNoneINTELMask);
307+
300308
constexpr ExecutionMode ExecutionModeFastCompositeKernelINTEL =
301309
static_cast<ExecutionMode>(IExecModeFastCompositeKernelINTEL);
302310

llvm-spirv/spirv-headers-tag.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b
1+
efb6b4099ddb8fa60f62956dee592c4b94ec6a49

llvm-spirv/test/optnone.ll

+12-24
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,32 @@
11
; RUN: llvm-as %s -o %t.bc
2-
; RUN: llvm-spirv %t.bc --spirv-ext=+SPV_EXT_optnone -spirv-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV-EXT
3-
; RUN: llvm-spirv %t.bc --spirv-ext=+SPV_INTEL_optnone -spirv-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV-INTEL
4-
; RUN: llvm-spirv %t.bc --spirv-ext=+SPV_EXT_optnone,+SPV_INTEL_optnone -spirv-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV-BOTH
2+
; RUN: llvm-spirv %t.bc --spirv-ext=+SPV_INTEL_optnone -spirv-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV
53

6-
7-
; RUN: llvm-spirv --spirv-ext=+SPV_EXT_optnone %t.bc -o %t.spv
4+
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_optnone %t.bc -o %t.spv
85
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
96
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
107

118
; Check that optnone is correctly ignored when extension is not enabled
12-
; RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV-NONE
9+
; RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV-NO-EXT
1310

1411
; RUN: llvm-spirv %t.bc -o %t.spv
1512
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
16-
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM-NONE
17-
18-
; Note: The capability is unconditionally printed with the EXT suffix.
19-
; CHECK-SPIRV-EXT: Capability OptNoneEXT
20-
; CHECK-SPIRV-INTEL: Capability OptNoneEXT
21-
; CHECK-SPIRV-BOTH: Capability OptNoneEXT
13+
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM-NO-EXT
2214

23-
; CHECK-SPIRV-EXT: Extension "SPV_EXT_optnone"
24-
; CHECK-SPIRV-INTEL: Extension "SPV_INTEL_optnone"
25-
; Note: When both extensions are enabled, prefer the EXT extension.
26-
; CHECK-SPIRV-BOTH: Extension "SPV_EXT_optnone"
15+
; CHECK-SPIRV: Capability OptNoneINTEL
16+
; CHECK-SPIRV: Extension "SPV_INTEL_optnone"
2717

2818
; Per SPIR-V spec:
2919
; FunctionControlDontInlineMask = 0x2 (2)
30-
; Per SPIR-V spec extension spec:
31-
; FunctionControlOptNoneMask = 0x10000 (65536)
32-
; CHECK-SPIRV-EXT: Function {{[0-9]+}} {{[0-9]+}} 65538
33-
; CHECK-SPIRV-INTEL: Function {{[0-9]+}} {{[0-9]+}} 65538
34-
; CHECK-SPIRV-BOTH: Function {{[0-9]+}} {{[0-9]+}} 65538
35-
; CHECK-SPIRV-NONE: Function {{[0-9]+}} {{[0-9]+}} 2
20+
; Per SPIR-V spec extension SPV_INTEL_optnone:
21+
; FunctionControlOptNoneINTELMask = 0x10000 (65536)
22+
; CHECK-SPIRV: Function {{[0-9]+}} {{[0-9]+}} 65538
23+
; CHECK-SPIRV-NO-EXT: Function {{[0-9]+}} {{[0-9]+}} 2
3624

3725
; CHECK-LLVM: define spir_func void @_Z3foov() #[[ATTR:[0-9]+]]
3826
; CHECK-LLVM: #[[ATTR]] = { {{.*}}noinline{{.*}}optnone{{.*}} }
3927

40-
; CHECK-LLVM-NONE: define spir_func void @_Z3foov() #[[ATTR:[0-9]+]]
41-
; CHECK-LLVM-NONE-NOT: #[[ATTR]] = { {{.*}}noinline{{.*}}optnone{{.*}} }
28+
; CHECK-LLVM-NO-EXT: define spir_func void @_Z3foov() #[[ATTR:[0-9]+]]
29+
; CHECK-LLVM-NO-EXT-NOT: #[[ATTR]] = { {{.*}}noinline{{.*}}optnone{{.*}} }
4230

4331
target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
4432
target triple = "spir-unknown-unknown"

0 commit comments

Comments
 (0)