llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-webassembly Author: Sam Clegg (sbc100) <details> <summary>Changes</summary> --- Full diff: https://github.com/llvm/llvm-project/pull/127721.diff 6 Files Affected: - (modified) clang/docs/ReleaseNotes.rst (+7) - (modified) clang/lib/Basic/Targets/WebAssembly.cpp (+1) - (modified) clang/test/Preprocessor/wasm-target-features.c (+1-1) - (modified) llvm/docs/ReleaseNotes.md (+7) - (modified) llvm/lib/Target/WebAssembly/WebAssembly.td (+4-3) - (modified) llvm/test/CodeGen/WebAssembly/target-features-cpus.ll (+4-1) ``````````diff diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 6056a6964fbcc..7b90d4686d96f 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -235,6 +235,13 @@ NetBSD Support WebAssembly Support ^^^^^^^^^^^^^^^^^^^ +The default target CPU, "generic", now enables the `-mextended-const` +flag, which correspond to the [Extended Const] proposal, which is +[widely implemented in engines]. + +[Extended Const]: https://github.com/WebAssembly/extended-const +[widely implemented in engines]: https://webassembly.org/features/ + AVR Support ^^^^^^^^^^^ diff --git a/clang/lib/Basic/Targets/WebAssembly.cpp b/clang/lib/Basic/Targets/WebAssembly.cpp index f19c57f1a3a50..848b28441e22d 100644 --- a/clang/lib/Basic/Targets/WebAssembly.cpp +++ b/clang/lib/Basic/Targets/WebAssembly.cpp @@ -168,6 +168,7 @@ bool WebAssemblyTargetInfo::initFeatureMap( Features["bulk-memory"] = true; Features["bulk-memory-opt"] = true; Features["call-indirect-overlong"] = true; + Features["extended-const"] = true; Features["multivalue"] = true; Features["mutable-globals"] = true; Features["nontrapping-fptoint"] = true; diff --git a/clang/test/Preprocessor/wasm-target-features.c b/clang/test/Preprocessor/wasm-target-features.c index 71b7cf6a5d43c..ed1917b7e1b77 100644 --- a/clang/test/Preprocessor/wasm-target-features.c +++ b/clang/test/Preprocessor/wasm-target-features.c @@ -164,6 +164,7 @@ // RUN: | FileCheck %s -check-prefix=GENERIC-INCLUDE // // GENERIC-INCLUDE-DAG: #define __wasm_bulk_memory__ 1{{$}} +// GENERIC-INCLUDE-DAG: #define __wasm_extended_const__ 1{{$}} // GENERIC-INCLUDE-DAG: #define __wasm_multivalue__ 1{{$}} // GENERIC-INCLUDE-DAG: #define __wasm_mutable_globals__ 1{{$}} // GENERIC-INCLUDE-DAG: #define __wasm_nontrapping_fptoint__ 1{{$}} @@ -179,7 +180,6 @@ // // GENERIC-NOT: #define __wasm_atomics__ 1{{$}} // GENERIC-NOT: #define __wasm_exception_handling__ 1{{$}} -// GENERIC-NOT: #define __wasm_extended_const__ 1{{$}} // GENERIC-NOT: #define __wasm__fp16__ 1{{$}} // GENERIC-NOT: #define __wasm_multimemory__ 1{{$}} // GENERIC-NOT: #define __wasm_relaxed_simd__ 1{{$}} diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md index c9543ff09217a..e83962184d953 100644 --- a/llvm/docs/ReleaseNotes.md +++ b/llvm/docs/ReleaseNotes.md @@ -110,6 +110,13 @@ Changes to the RISC-V Backend Changes to the WebAssembly Backend ---------------------------------- +The default target CPU, "generic", now enables the `-mextended-const` +flag, which correspond to the [Extended Const] proposal, which is +[widely implemented in engines]. + +[Extended Const]: https://github.com/WebAssembly/extended-const +[widely implemented in engines]: https://webassembly.org/features/ + Changes to the Windows Target ----------------------------- diff --git a/llvm/lib/Target/WebAssembly/WebAssembly.td b/llvm/lib/Target/WebAssembly/WebAssembly.td index 13603f8181198..d574f27f2f226 100644 --- a/llvm/lib/Target/WebAssembly/WebAssembly.td +++ b/llvm/lib/Target/WebAssembly/WebAssembly.td @@ -123,9 +123,10 @@ def : ProcessorModel<"mvp", NoSchedModel, []>; // the importance of the features. def : ProcessorModel<"generic", NoSchedModel, [FeatureBulkMemory, FeatureBulkMemoryOpt, - FeatureCallIndirectOverlong, FeatureMultivalue, - FeatureMutableGlobals, FeatureNontrappingFPToInt, - FeatureReferenceTypes, FeatureSignExt]>; + FeatureCallIndirectOverlong, FeatureExtendedConst, + FeatureMultivalue, FeatureMutableGlobals, + FeatureNontrappingFPToInt, FeatureReferenceTypes, + FeatureSignExt]>; // Lime1: <https://github.com/WebAssembly/tool-conventions/blob/main/Lime.md#lime1> def : ProcessorModel<"lime1", NoSchedModel, diff --git a/llvm/test/CodeGen/WebAssembly/target-features-cpus.ll b/llvm/test/CodeGen/WebAssembly/target-features-cpus.ll index 1c77ad5c049a5..e363910726934 100644 --- a/llvm/test/CodeGen/WebAssembly/target-features-cpus.ll +++ b/llvm/test/CodeGen/WebAssembly/target-features-cpus.ll @@ -14,7 +14,7 @@ target triple = "wasm32-unknown-unknown" ; generic: +call-indirect-overlong, +multivalue, +mutable-globals, +reference-types, +sign-ext ; GENERIC-LABEL: .custom_section.target_features,"",@ -; GENERIC-NEXT: .int8 8 +; GENERIC-NEXT: .int8 9 ; GENERIC-NEXT: .int8 43 ; GENERIC-NEXT: .int8 11 ; GENERIC-NEXT: .ascii "bulk-memory" @@ -25,6 +25,9 @@ target triple = "wasm32-unknown-unknown" ; GENERIC-NEXT: .int8 22 ; GENERIC-NEXT: .ascii "call-indirect-overlong" ; GENERIC-NEXT: .int8 43 +; GENERIC-NEXT: .int8 14 +; GENERIC-NEXT: .ascii "extended-const" +; GENERIC-NEXT: .int8 43 ; GENERIC-NEXT: .int8 10 ; GENERIC-NEXT: .ascii "multivalue" ; GENERIC-NEXT: .int8 43 `````````` </details> https://github.com/llvm/llvm-project/pull/127721 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits