[PATCH] D158409: [WebAssembly] Add multiple memories feature
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
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
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
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
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
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