Skip to content

Commit a7e029b

Browse files
authored
Revert "[WebAssembly] Add gc target feature to addBleedingEdgeFeatures" (#151268)
Reverts #151107
1 parent 1f66724 commit a7e029b

File tree

8 files changed

+22
-42
lines changed

8 files changed

+22
-42
lines changed

clang/lib/Basic/Targets/WebAssembly.cpp

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ bool WebAssemblyTargetInfo::hasFeature(StringRef Feature) const {
5959
.Case("exception-handling", HasExceptionHandling)
6060
.Case("extended-const", HasExtendedConst)
6161
.Case("fp16", HasFP16)
62-
.Case("gc", HasGC)
6362
.Case("multimemory", HasMultiMemory)
6463
.Case("multivalue", HasMultivalue)
6564
.Case("mutable-globals", HasMutableGlobals)
6665
.Case("nontrapping-fptoint", HasNontrappingFPToInt)
6766
.Case("reference-types", HasReferenceTypes)
67+
.Case("gc", HasGC)
6868
.Case("relaxed-simd", SIMDLevel >= RelaxedSIMD)
6969
.Case("sign-ext", HasSignExt)
7070
.Case("simd128", SIMDLevel >= SIMD128)
@@ -99,8 +99,6 @@ void WebAssemblyTargetInfo::getTargetDefines(const LangOptions &Opts,
9999
Builder.defineMacro("__wasm_multimemory__");
100100
if (HasFP16)
101101
Builder.defineMacro("__wasm_fp16__");
102-
if (HasGC)
103-
Builder.defineMacro("__wasm_gc__");
104102
if (HasMultivalue)
105103
Builder.defineMacro("__wasm_multivalue__");
106104
if (HasMutableGlobals)
@@ -109,6 +107,8 @@ void WebAssemblyTargetInfo::getTargetDefines(const LangOptions &Opts,
109107
Builder.defineMacro("__wasm_nontrapping_fptoint__");
110108
if (HasReferenceTypes)
111109
Builder.defineMacro("__wasm_reference_types__");
110+
if (HasGC)
111+
Builder.defineMacro("__wasm_gc__");
112112
if (SIMDLevel >= RelaxedSIMD)
113113
Builder.defineMacro("__wasm_relaxed_simd__");
114114
if (HasSignExt)
@@ -194,7 +194,6 @@ bool WebAssemblyTargetInfo::initFeatureMap(
194194
Features["exception-handling"] = true;
195195
Features["extended-const"] = true;
196196
Features["fp16"] = true;
197-
Features["gc"] = true;
198197
Features["multimemory"] = true;
199198
Features["tail-call"] = true;
200199
Features["wide-arithmetic"] = true;
@@ -271,14 +270,6 @@ bool WebAssemblyTargetInfo::handleTargetFeatures(
271270
HasFP16 = false;
272271
continue;
273272
}
274-
if (Feature == "+gc") {
275-
HasGC = true;
276-
continue;
277-
}
278-
if (Feature == "-gc") {
279-
HasGC = false;
280-
continue;
281-
}
282273
if (Feature == "+multimemory") {
283274
HasMultiMemory = true;
284275
continue;
@@ -319,6 +310,14 @@ bool WebAssemblyTargetInfo::handleTargetFeatures(
319310
HasReferenceTypes = false;
320311
continue;
321312
}
313+
if (Feature == "+gc") {
314+
HasGC = true;
315+
continue;
316+
}
317+
if (Feature == "-gc") {
318+
HasGC = false;
319+
continue;
320+
}
322321
if (Feature == "+relaxed-simd") {
323322
SIMDLevel = std::max(SIMDLevel, RelaxedSIMD);
324323
continue;

clang/lib/Basic/Targets/WebAssembly.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ class LLVM_LIBRARY_VISIBILITY WebAssemblyTargetInfo : public TargetInfo {
6464
bool HasExceptionHandling = false;
6565
bool HasExtendedConst = false;
6666
bool HasFP16 = false;
67-
bool HasGC = false;
6867
bool HasMultiMemory = false;
6968
bool HasMultivalue = false;
7069
bool HasMutableGlobals = false;
7170
bool HasNontrappingFPToInt = false;
7271
bool HasReferenceTypes = false;
72+
bool HasGC = false;
7373
bool HasSignExt = false;
7474
bool HasTailCall = false;
7575
bool HasWideArithmetic = false;

clang/test/Driver/wasm-features.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@
4141
// HALF-PRECISION: "-target-feature" "+fp16"
4242
// NO-HALF-PRECISION: "-target-feature" "-fp16"
4343

44-
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mgc 2>&1 | FileCheck %s -check-prefix=GC
45-
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-gc 2>&1 | FileCheck %s -check-prefix=NO-GC
46-
47-
// GC: "-target-feature" "+gc"
48-
// NO-GC: "-target-feature" "-gc"
49-
5044
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mmultimemory 2>&1 | FileCheck %s -check-prefix=MULTIMEMORY
5145
// RUN: %clang --target=wasm32-unknown-unknown -### %s -mno-multimemory 2>&1 | FileCheck %s -check-prefix=NO-MULTIMEMORY
5246

clang/test/Preprocessor/wasm-target-features.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,6 @@
5252
//
5353
// FP16: #define __wasm_fp16__ 1{{$}}
5454

55-
// RUN: %clang -E -dM %s -o - 2>&1 \
56-
// RUN: -target wasm32-unknown-unknown -mgc \
57-
// RUN: | FileCheck %s -check-prefix=GC
58-
// RUN: %clang -E -dM %s -o - 2>&1 \
59-
// RUN: -target wasm64-unknown-unknown -mgc \
60-
// RUN: | FileCheck %s -check-prefix=GC
61-
//
62-
// GC: #define __wasm_gc__ 1{{$}}
63-
6455
// RUN: %clang -E -dM %s -o - 2>&1 \
6556
// RUN: -target wasm32-unknown-unknown -mmultimemory \
6657
// RUN: | FileCheck %s -check-prefix=MULTIMEMORY
@@ -154,7 +145,6 @@
154145
// MVP-NOT: #define __wasm_exception_handling__ 1{{$}}
155146
// MVP-NOT: #define __wasm_extended_const__ 1{{$}}
156147
// MVP-NOT: #define __wasm_fp16__ 1{{$}}
157-
// MVP-NOT: #define __wasm_gc__ 1{{$}}
158148
// MVP-NOT: #define __wasm_multimemory__ 1{{$}}
159149
// MVP-NOT: #define __wasm_multivalue__ 1{{$}}
160150
// MVP-NOT: #define __wasm_mutable_globals__ 1{{$}}
@@ -191,7 +181,6 @@
191181
// GENERIC-NOT: #define __wasm_exception_handling__ 1{{$}}
192182
// GENERIC-NOT: #define __wasm_extended_const__ 1{{$}}
193183
// GENERIC-NOT: #define __wasm__fp16__ 1{{$}}
194-
// GENERIC-NOT: #define __wasm_gc__ 1{{$}}
195184
// GENERIC-NOT: #define __wasm_multimemory__ 1{{$}}
196185
// GENERIC-NOT: #define __wasm_relaxed_simd__ 1{{$}}
197186
// GENERIC-NOT: #define __wasm_simd128__ 1{{$}}
@@ -210,7 +199,6 @@
210199
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_exception_handling__ 1{{$}}
211200
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_extended_const__ 1{{$}}
212201
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_fp16__ 1{{$}}
213-
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_gc__ 1{{$}}
214202
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_multimemory__ 1{{$}}
215203
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_multivalue__ 1{{$}}
216204
// BLEEDING-EDGE-INCLUDE-DAG: #define __wasm_mutable_globals__ 1{{$}}

llvm/lib/Target/WebAssembly/WebAssembly.td

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ def FeatureFP16 :
4949
SubtargetFeature<"fp16", "HasFP16", "true",
5050
"Enable FP16 instructions">;
5151

52-
def FeatureGC : SubtargetFeature<"gc", "HasGC", "true", "Enable wasm gc">;
53-
5452
def FeatureMultiMemory :
5553
SubtargetFeature<"multimemory", "HasMultiMemory", "true",
5654
"Enable multiple memories">;
@@ -73,6 +71,7 @@ def FeatureReferenceTypes :
7371
SubtargetFeature<"reference-types", "HasReferenceTypes", "true",
7472
"Enable reference types">;
7573

74+
def FeatureGC : SubtargetFeature<"gc", "HasGC", "true", "Enable wasm gc">;
7675
def FeatureRelaxedSIMD :
7776
SubtargetFeature<"relaxed-simd", "SIMDLevel", "RelaxedSIMD",
7877
"Enable relaxed-simd instructions">;
@@ -140,10 +139,10 @@ def : ProcessorModel<"lime1", NoSchedModel,
140139
def : ProcessorModel<"bleeding-edge", NoSchedModel,
141140
[FeatureAtomics, FeatureBulkMemory, FeatureBulkMemoryOpt,
142141
FeatureCallIndirectOverlong, FeatureExceptionHandling,
143-
FeatureExtendedConst, FeatureFP16, FeatureGC,
144-
FeatureMultiMemory, FeatureMultivalue, FeatureMutableGlobals,
142+
FeatureExtendedConst, FeatureFP16, FeatureMultiMemory,
143+
FeatureMultivalue, FeatureMutableGlobals,
145144
FeatureNontrappingFPToInt, FeatureRelaxedSIMD,
146-
FeatureReferenceTypes, FeatureSIMD128,
145+
FeatureReferenceTypes, FeatureGC, FeatureSIMD128,
147146
FeatureSignExt, FeatureTailCall]>;
148147

149148
//===----------------------------------------------------------------------===//

llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ def HasFP16 :
5050
Predicate<"Subtarget->hasFP16()">,
5151
AssemblerPredicate<(all_of FeatureFP16), "fp16">;
5252

53-
def HasGC : Predicate<"Subtarget->hasGC()">,
54-
AssemblerPredicate<(all_of FeatureGC), "gc">;
55-
5653
def HasMultiMemory :
5754
Predicate<"Subtarget->hasMultiMemory()">,
5855
AssemblerPredicate<(all_of FeatureMultiMemory), "multimemory">;
@@ -79,6 +76,9 @@ def HasReferenceTypes :
7976
Predicate<"Subtarget->hasReferenceTypes()">,
8077
AssemblerPredicate<(all_of FeatureReferenceTypes), "reference-types">;
8178

79+
def HasGC : Predicate<"Subtarget->hasGC()">,
80+
AssemblerPredicate<(all_of FeatureGC), "gc">;
81+
8282
def HasRelaxedSIMD :
8383
Predicate<"Subtarget->hasRelaxedSIMD()">,
8484
AssemblerPredicate<(all_of FeatureRelaxedSIMD), "relaxed-simd">;

llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ class WebAssemblySubtarget final : public WebAssemblyGenSubtargetInfo {
4646
bool HasExceptionHandling = false;
4747
bool HasExtendedConst = false;
4848
bool HasFP16 = false;
49-
bool HasGC = false;
5049
bool HasMultiMemory = false;
5150
bool HasMultivalue = false;
5251
bool HasMutableGlobals = false;
5352
bool HasNontrappingFPToInt = false;
5453
bool HasReferenceTypes = false;
54+
bool HasGC = false;
5555
bool HasSignExt = false;
5656
bool HasTailCall = false;
5757
bool HasWideArithmetic = false;

llvm/test/CodeGen/WebAssembly/target-features-cpus.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ target triple = "wasm32-unknown-unknown"
6868

6969
; bleeding-edge: +atomics, +bulk-memory, +bulk-memory-opt,
7070
; +call-indirect-overlong, +exception-handling,
71-
; +extended-const, +fp16, +gc, +multimemory, +multivalue,
71+
; +extended-const, +fp16, +multimemory, +multivalue,
7272
; +mutable-globals, +nontrapping-fptoint, +relaxed-simd,
73-
; +reference-types, +simd128, +sign-ext, +tail-call
73+
; +reference-types, +simd128, +sign-ext, +tail-call, +gc
7474
; BLEEDING-EDGE-LABEL: .section .custom_section.target_features,"",@
7575
; BLEEDING-EDGE-NEXT: .int8 17
7676
; BLEEDING-EDGE-NEXT: .int8 43

0 commit comments

Comments
 (0)