[PATCH] D158409: [WebAssembly] Add multiple memories feature

2023-08-21 Thread Ashley Nelson via Phabricator via cfe-commits
ashleynh created this revision.
ashleynh added reviewers: aheejin, dschuff, tlively.
Herald added subscribers: pmatos, asb, sunfish, hiraditya, jgravelle-google.
Herald added a project: All.
ashleynh requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.

Adding to allow users to get this flag into the target features section for 
future use cases.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D158409

Files:
  clang/include/clang/Driver/Options.td
  clang/lib/Basic/Targets/WebAssembly.cpp
  clang/lib/Basic/Targets/WebAssembly.h
  clang/test/Preprocessor/wasm-target-features.c
  llvm/lib/Target/WebAssembly/WebAssembly.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
  llvm/test/CodeGen/WebAssembly/mutable-memories.ll

Index: llvm/test/CodeGen/WebAssembly/mutable-memories.ll
===
--- /dev/null
+++ llvm/test/CodeGen/WebAssembly/mutable-memories.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s -mcpu=mvp -mattr=+multi-memories | FileCheck %s
+
+; Test that multiple memories is properly emitted into the target features section
+
+target triple = "wasm32-unknown-unknown"
+
+define void @foo() {
+  ret void
+}
+
+; CHECK-LABEL: .custom_section.target_features
+; CHECK-NEXT: .int8 1
+; CHECK-NEXT: .int8 43
+; CHECK-NEXT: .int8 14
+; CHECK-NEXT: .ascii "multi-memories"
Index: llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
===
--- llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
+++ llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
@@ -49,6 +49,7 @@
   bool HasTailCall = false;
   bool HasReferenceTypes = false;
   bool HasExtendedConst = false;
+  bool HasMultiMemories = false;
 
   /// What processor and OS we're targeting.
   Triple TargetTriple;
@@ -101,6 +102,7 @@
   bool hasMutableGlobals() const { return HasMutableGlobals; }
   bool hasTailCall() const { return HasTailCall; }
   bool hasReferenceTypes() const { return HasReferenceTypes; }
+  bool hasMultiMemories() const { return HasMultiMemories; }
 
   /// Parses features string setting specified subtarget options. Definition of
   /// function is auto generated by tblgen.
Index: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
===
--- llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
+++ llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
@@ -70,6 +70,10 @@
 Predicate<"Subtarget->hasExtendedConst()">,
 AssemblerPredicate<(all_of FeatureExtendedConst), "extended-const">;
 
+def HasMultiMemories :
+Predicate<"Subtarget->hasMultiMemories()">,
+AssemblerPredicate<(all_of FeatureMultiMemories), "multi-memories">;
+
 //===--===//
 // WebAssembly-specific DAG Node Types.
 //===--===//
Index: llvm/lib/Target/WebAssembly/WebAssembly.td
===
--- llvm/lib/Target/WebAssembly/WebAssembly.td
+++ llvm/lib/Target/WebAssembly/WebAssembly.td
@@ -71,6 +71,10 @@
   SubtargetFeature<"extended-const", "HasExtendedConst", "true",
"Enable extended const expressions">;
 
+def FeatureMultiMemories :
+  SubtargetFeature<"multi-memories", "HasMultiMemories", "true",
+   "Enable multiple memories">;
+
 //===--===//
 // Architectures.
 //===--===//
Index: clang/test/Preprocessor/wasm-target-features.c
===
--- clang/test/Preprocessor/wasm-target-features.c
+++ clang/test/Preprocessor/wasm-target-features.c
@@ -114,6 +114,16 @@
 // RUN:   | FileCheck %s -check-prefix=EXTENDED-CONST
 //
 // EXTENDED-CONST:#define __wasm_extended_const__ 1{{$}}
+//
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm32-unknown-unknown -mmulti-memories \
+// RUN:   | FileCheck %s -check-prefix=MULTI-MEMORIES
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm64-unknown-unknown -mmulti-memories \
+// RUN:   | FileCheck %s -check-prefix=MULTI-MEMORIES
+//
+// MULTI-MEMORIES:#define __wasm_multi_memories__ 1{{$}}
+//
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=mvp \
@@ -133,6 +143,7 @@
 // MVP-NOT:#define __wasm_tail_call__
 // MVP-NOT:#define __wasm_reference_types__
 // MVP-NOT:#define __wasm_extended_const__
+// MVP-NOT:#define __wasm_multi_memories__
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge \
@@ -148,6 +159,7 @@
 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
 // BLEEDING-EDGE-D

[PATCH] D158409: [WebAssembly] Add multiple memories feature

2023-08-21 Thread Ashley Nelson via Phabricator via cfe-commits
ashleynh updated this revision to Diff 552071.
ashleynh added a comment.

Addressing comments
Renamed flag, test file, and added to wasm-features.c


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158409/new/

https://reviews.llvm.org/D158409

Files:
  llvm/test/CodeGen/WebAssembly/multi-memory.ll
  llvm/test/CodeGen/WebAssembly/mutable-memories.ll


Index: llvm/test/CodeGen/WebAssembly/multi-memory.ll
===
--- llvm/test/CodeGen/WebAssembly/multi-memory.ll
+++ llvm/test/CodeGen/WebAssembly/multi-memory.ll
@@ -11,5 +11,5 @@
 ; CHECK-LABEL: .custom_section.target_features
 ; CHECK-NEXT: .int8 1
 ; CHECK-NEXT: .int8 43
-; CHECK-NEXT: .int8 14
+; CHECK-NEXT: .int8 12
 ; CHECK-NEXT: .ascii "multi-memory"


Index: llvm/test/CodeGen/WebAssembly/multi-memory.ll
===
--- llvm/test/CodeGen/WebAssembly/multi-memory.ll
+++ llvm/test/CodeGen/WebAssembly/multi-memory.ll
@@ -11,5 +11,5 @@
 ; CHECK-LABEL: .custom_section.target_features
 ; CHECK-NEXT: .int8 1
 ; CHECK-NEXT: .int8 43
-; CHECK-NEXT: .int8 14
+; CHECK-NEXT: .int8 12
 ; CHECK-NEXT: .ascii "multi-memory"
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D158409: [WebAssembly] Add multiple memories feature

2023-08-21 Thread Ashley Nelson via Phabricator via cfe-commits
ashleynh updated this revision to Diff 552088.
ashleynh added a comment.

Squashed into one commit


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158409/new/

https://reviews.llvm.org/D158409

Files:
  clang/include/clang/Driver/Options.td
  clang/lib/Basic/Targets/WebAssembly.cpp
  clang/lib/Basic/Targets/WebAssembly.h
  clang/test/Driver/wasm-features.c
  clang/test/Preprocessor/wasm-target-features.c
  llvm/lib/Target/WebAssembly/WebAssembly.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
  llvm/test/CodeGen/WebAssembly/multi-memory.ll

Index: llvm/test/CodeGen/WebAssembly/multi-memory.ll
===
--- /dev/null
+++ llvm/test/CodeGen/WebAssembly/multi-memory.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s -mcpu=mvp -mattr=+multi-memory | FileCheck %s
+
+; Test that multi-memory is properly emitted into the target features section
+
+target triple = "wasm32-unknown-unknown"
+
+define void @foo() {
+  ret void
+}
+
+; CHECK-LABEL: .custom_section.target_features
+; CHECK-NEXT: .int8 1
+; CHECK-NEXT: .int8 43
+; CHECK-NEXT: .int8 12
+; CHECK-NEXT: .ascii "multi-memory"
Index: llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
===
--- llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
+++ llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
@@ -49,6 +49,7 @@
   bool HasTailCall = false;
   bool HasReferenceTypes = false;
   bool HasExtendedConst = false;
+  bool HasMultiMemory = false;
 
   /// What processor and OS we're targeting.
   Triple TargetTriple;
@@ -101,6 +102,7 @@
   bool hasMutableGlobals() const { return HasMutableGlobals; }
   bool hasTailCall() const { return HasTailCall; }
   bool hasReferenceTypes() const { return HasReferenceTypes; }
+  bool hasMultiMemory() const { return HasMultiMemory; }
 
   /// Parses features string setting specified subtarget options. Definition of
   /// function is auto generated by tblgen.
Index: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
===
--- llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
+++ llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
@@ -70,6 +70,10 @@
 Predicate<"Subtarget->hasExtendedConst()">,
 AssemblerPredicate<(all_of FeatureExtendedConst), "extended-const">;
 
+def HasMultiMemory :
+Predicate<"Subtarget->hasMultiMemory()">,
+AssemblerPredicate<(all_of FeatureMultiMemory), "multi-memory">;
+
 //===--===//
 // WebAssembly-specific DAG Node Types.
 //===--===//
Index: llvm/lib/Target/WebAssembly/WebAssembly.td
===
--- llvm/lib/Target/WebAssembly/WebAssembly.td
+++ llvm/lib/Target/WebAssembly/WebAssembly.td
@@ -71,6 +71,10 @@
   SubtargetFeature<"extended-const", "HasExtendedConst", "true",
"Enable extended const expressions">;
 
+def FeatureMultiMemory :
+  SubtargetFeature<"multi-memory", "HasMultiMemory", "true",
+   "Enable multimemory">;
+
 //===--===//
 // Architectures.
 //===--===//
Index: clang/test/Preprocessor/wasm-target-features.c
===
--- clang/test/Preprocessor/wasm-target-features.c
+++ clang/test/Preprocessor/wasm-target-features.c
@@ -114,6 +114,16 @@
 // RUN:   | FileCheck %s -check-prefix=EXTENDED-CONST
 //
 // EXTENDED-CONST:#define __wasm_extended_const__ 1{{$}}
+//
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm32-unknown-unknown -mmulti-memory \
+// RUN:   | FileCheck %s -check-prefix=MULTI-MEMORY
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm64-unknown-unknown -mmulti-memory \
+// RUN:   | FileCheck %s -check-prefix=MULTI-MEMORY
+//
+// MULTI-MEMORY:#define __wasm_multi_memory__ 1{{$}}
+//
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=mvp \
@@ -133,6 +143,7 @@
 // MVP-NOT:#define __wasm_tail_call__
 // MVP-NOT:#define __wasm_reference_types__
 // MVP-NOT:#define __wasm_extended_const__
+// MVP-NOT:#define __wasm_multi_memory__
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge \
@@ -148,6 +159,7 @@
 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
 // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}}
 // BLEEDING-EDGE-DAG:#define __wasm_tail_call__ 1{{$}}
+// BLEEDING-EDGE-DAG:#define __wasm_multi_memory__ 1{{$}}
 // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}}
 // BLEEDING-EDGE-NOT:#define __wasm_exception_handli

[PATCH] D158409: [WebAssembly] Add multiple memories feature

2023-08-21 Thread Ashley Nelson via Phabricator via cfe-commits
ashleynh updated this revision to Diff 552096.
ashleynh added a comment.

removed -


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158409/new/

https://reviews.llvm.org/D158409

Files:
  clang/include/clang/Driver/Options.td
  clang/lib/Basic/Targets/WebAssembly.cpp
  clang/lib/Basic/Targets/WebAssembly.h
  clang/test/Driver/wasm-features.c
  clang/test/Preprocessor/wasm-target-features.c
  llvm/lib/Target/WebAssembly/WebAssembly.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
  llvm/test/CodeGen/WebAssembly/multimemory.ll

Index: llvm/test/CodeGen/WebAssembly/multimemory.ll
===
--- /dev/null
+++ llvm/test/CodeGen/WebAssembly/multimemory.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s -mcpu=mvp -mattr=+multimemory | FileCheck %s
+
+; Test that multimemory is properly emitted into the target features section
+
+target triple = "wasm32-unknown-unknown"
+
+define void @foo() {
+  ret void
+}
+
+; CHECK-LABEL: .custom_section.target_features
+; CHECK-NEXT: .int8 1
+; CHECK-NEXT: .int8 43
+; CHECK-NEXT: .int8 11
+; CHECK-NEXT: .ascii "multimemory"
Index: llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
===
--- llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
+++ llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
@@ -49,6 +49,7 @@
   bool HasTailCall = false;
   bool HasReferenceTypes = false;
   bool HasExtendedConst = false;
+  bool HasMultiMemory = false;
 
   /// What processor and OS we're targeting.
   Triple TargetTriple;
@@ -101,6 +102,7 @@
   bool hasMutableGlobals() const { return HasMutableGlobals; }
   bool hasTailCall() const { return HasTailCall; }
   bool hasReferenceTypes() const { return HasReferenceTypes; }
+  bool hasMultiMemory() const { return HasMultiMemory; }
 
   /// Parses features string setting specified subtarget options. Definition of
   /// function is auto generated by tblgen.
Index: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
===
--- llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
+++ llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
@@ -70,6 +70,10 @@
 Predicate<"Subtarget->hasExtendedConst()">,
 AssemblerPredicate<(all_of FeatureExtendedConst), "extended-const">;
 
+def HasMultiMemory :
+Predicate<"Subtarget->hasMultiMemory()">,
+AssemblerPredicate<(all_of FeatureMultiMemory), "multimemory">;
+
 //===--===//
 // WebAssembly-specific DAG Node Types.
 //===--===//
Index: llvm/lib/Target/WebAssembly/WebAssembly.td
===
--- llvm/lib/Target/WebAssembly/WebAssembly.td
+++ llvm/lib/Target/WebAssembly/WebAssembly.td
@@ -71,6 +71,10 @@
   SubtargetFeature<"extended-const", "HasExtendedConst", "true",
"Enable extended const expressions">;
 
+def FeatureMultiMemory :
+  SubtargetFeature<"multimemory", "HasMultiMemory", "true",
+   "Enable multimemory">;
+
 //===--===//
 // Architectures.
 //===--===//
Index: clang/test/Preprocessor/wasm-target-features.c
===
--- clang/test/Preprocessor/wasm-target-features.c
+++ clang/test/Preprocessor/wasm-target-features.c
@@ -114,6 +114,16 @@
 // RUN:   | FileCheck %s -check-prefix=EXTENDED-CONST
 //
 // EXTENDED-CONST:#define __wasm_extended_const__ 1{{$}}
+//
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm32-unknown-unknown -mmultimemory \
+// RUN:   | FileCheck %s -check-prefix=MULTIMEMORY
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm64-unknown-unknown -mmultimemory \
+// RUN:   | FileCheck %s -check-prefix=MULTIMEMORY
+//
+// MULTIMEMORY:#define __wasm_multimemory__ 1{{$}}
+//
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=mvp \
@@ -133,6 +143,7 @@
 // MVP-NOT:#define __wasm_tail_call__
 // MVP-NOT:#define __wasm_reference_types__
 // MVP-NOT:#define __wasm_extended_const__
+// MVP-NOT:#define __wasm_multimemory__
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge \
@@ -148,6 +159,7 @@
 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
 // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}}
 // BLEEDING-EDGE-DAG:#define __wasm_tail_call__ 1{{$}}
+// BLEEDING-EDGE-DAG:#define __wasm_multimemory__ 1{{$}}
 // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}}
 // BLEEDING-EDGE-NOT:#define __wasm_exception_handling__ 1{{$}}
 // BLEEDING-EDGE-N

[PATCH] D158409: [WebAssembly] Add multiple memories feature

2023-08-21 Thread Ashley Nelson via Phabricator via cfe-commits
ashleynh updated this revision to Diff 552097.
ashleynh added a comment.

switching back to multiple memories for description


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158409/new/

https://reviews.llvm.org/D158409

Files:
  clang/include/clang/Driver/Options.td
  clang/lib/Basic/Targets/WebAssembly.cpp
  clang/lib/Basic/Targets/WebAssembly.h
  clang/test/Driver/wasm-features.c
  clang/test/Preprocessor/wasm-target-features.c
  llvm/lib/Target/WebAssembly/WebAssembly.td
  llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
  llvm/test/CodeGen/WebAssembly/multimemory.ll

Index: llvm/test/CodeGen/WebAssembly/multimemory.ll
===
--- /dev/null
+++ llvm/test/CodeGen/WebAssembly/multimemory.ll
@@ -0,0 +1,15 @@
+; RUN: llc < %s -mcpu=mvp -mattr=+multimemory | FileCheck %s
+
+; Test that multimemory is properly emitted into the target features section
+
+target triple = "wasm32-unknown-unknown"
+
+define void @foo() {
+  ret void
+}
+
+; CHECK-LABEL: .custom_section.target_features
+; CHECK-NEXT: .int8 1
+; CHECK-NEXT: .int8 43
+; CHECK-NEXT: .int8 11
+; CHECK-NEXT: .ascii "multimemory"
Index: llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
===
--- llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
+++ llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
@@ -49,6 +49,7 @@
   bool HasTailCall = false;
   bool HasReferenceTypes = false;
   bool HasExtendedConst = false;
+  bool HasMultiMemory = false;
 
   /// What processor and OS we're targeting.
   Triple TargetTriple;
@@ -101,6 +102,7 @@
   bool hasMutableGlobals() const { return HasMutableGlobals; }
   bool hasTailCall() const { return HasTailCall; }
   bool hasReferenceTypes() const { return HasReferenceTypes; }
+  bool hasMultiMemory() const { return HasMultiMemory; }
 
   /// Parses features string setting specified subtarget options. Definition of
   /// function is auto generated by tblgen.
Index: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
===
--- llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
+++ llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
@@ -70,6 +70,10 @@
 Predicate<"Subtarget->hasExtendedConst()">,
 AssemblerPredicate<(all_of FeatureExtendedConst), "extended-const">;
 
+def HasMultiMemory :
+Predicate<"Subtarget->hasMultiMemory()">,
+AssemblerPredicate<(all_of FeatureMultiMemory), "multimemory">;
+
 //===--===//
 // WebAssembly-specific DAG Node Types.
 //===--===//
Index: llvm/lib/Target/WebAssembly/WebAssembly.td
===
--- llvm/lib/Target/WebAssembly/WebAssembly.td
+++ llvm/lib/Target/WebAssembly/WebAssembly.td
@@ -71,6 +71,10 @@
   SubtargetFeature<"extended-const", "HasExtendedConst", "true",
"Enable extended const expressions">;
 
+def FeatureMultiMemory :
+  SubtargetFeature<"multimemory", "HasMultiMemory", "true",
+   "Enable multiple memories">;
+
 //===--===//
 // Architectures.
 //===--===//
Index: clang/test/Preprocessor/wasm-target-features.c
===
--- clang/test/Preprocessor/wasm-target-features.c
+++ clang/test/Preprocessor/wasm-target-features.c
@@ -114,6 +114,16 @@
 // RUN:   | FileCheck %s -check-prefix=EXTENDED-CONST
 //
 // EXTENDED-CONST:#define __wasm_extended_const__ 1{{$}}
+//
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm32-unknown-unknown -mmultimemory \
+// RUN:   | FileCheck %s -check-prefix=MULTIMEMORY
+// RUN: %clang -E -dM %s -o - 2>&1 \
+// RUN: -target wasm64-unknown-unknown -mmultimemory \
+// RUN:   | FileCheck %s -check-prefix=MULTIMEMORY
+//
+// MULTIMEMORY:#define __wasm_multimemory__ 1{{$}}
+//
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=mvp \
@@ -133,6 +143,7 @@
 // MVP-NOT:#define __wasm_tail_call__
 // MVP-NOT:#define __wasm_reference_types__
 // MVP-NOT:#define __wasm_extended_const__
+// MVP-NOT:#define __wasm_multimemory__
 
 // RUN: %clang -E -dM %s -o - 2>&1 \
 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge \
@@ -148,6 +159,7 @@
 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
 // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}}
 // BLEEDING-EDGE-DAG:#define __wasm_tail_call__ 1{{$}}
+// BLEEDING-EDGE-DAG:#define __wasm_multimemory__ 1{{$}}
 // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}}
 // BLEEDING-EDGE-NOT:#define __wasm

[PATCH] D158409: [WebAssembly] Add multiple memories feature

2023-08-21 Thread Ashley Nelson via Phabricator via cfe-commits
ashleynh added inline comments.



Comment at: clang/include/clang/Driver/Options.td:4583-4584
 def mno_extended_const : Flag<["-"], "mno-extended-const">, 
Group;
+def mmulti_memories : Flag<["-"], "mmulti-memories">, 
Group;
+def mno_multi_memories : Flag<["-"], "mno-multi-memories">, 
Group;
 def mexec_model_EQ : Joined<["-"], "mexec-model=">, 
Group,

tlively wrote:
> aheejin wrote:
> > aheejin wrote:
> > > sbc100 wrote:
> > > > tlively wrote:
> > > > > Can we call this "multimemory" for consistency with "multivalue" 
> > > > > above?
> > > > How about just `multi_memory`?
> > > > 
> > > > In the past we have talked about "multi-table" and "multi-memory" 
> > > > without using the plural here and the proposal itself is names using 
> > > > the singular (https://github.com/WebAssembly/multi-memory).
> > > I like `multi-memory` more, but I preferred `multi-value` too when it was 
> > > introduced... 
> > But if we are going to remove `-` here, we should treat it consistently in 
> > all other places, for example, it should be not `HasMultiMemory` but 
> > `HasMultimemory` in all code. We treat multivalue that way. Do we want that?
> I prefer HasMultiMemory fwiw 😂 
I think multi-memory is more readable, but happy to do multimemory to fall in 
line with the other flags. 

+1 to preferring HasMultiMemory for readability. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158409/new/

https://reviews.llvm.org/D158409

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits