From 53e81a8e45ea2854958cb550a0084136b3070134 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Tue, 20 Aug 2024 13:55:20 -0700 Subject: [PATCH] Add a metadce C++ test that includes LTO. NFC --- test/other/metadce/test_metadce_cxx_lto.exports | 14 ++++++++++++++ test/other/metadce/test_metadce_cxx_lto.gzsize | 1 + test/other/metadce/test_metadce_cxx_lto.imports | 13 +++++++++++++ test/other/metadce/test_metadce_cxx_lto.jssize | 1 + test/other/metadce/test_metadce_cxx_lto.sent | 13 +++++++++++++ test/other/metadce/test_metadce_cxx_lto.size | 1 + test/test_other.py | 11 ++++++----- 7 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 test/other/metadce/test_metadce_cxx_lto.exports create mode 100644 test/other/metadce/test_metadce_cxx_lto.gzsize create mode 100644 test/other/metadce/test_metadce_cxx_lto.imports create mode 100644 test/other/metadce/test_metadce_cxx_lto.jssize create mode 100644 test/other/metadce/test_metadce_cxx_lto.sent create mode 100644 test/other/metadce/test_metadce_cxx_lto.size diff --git a/test/other/metadce/test_metadce_cxx_lto.exports b/test/other/metadce/test_metadce_cxx_lto.exports new file mode 100644 index 0000000000000..e2f9c0d8a5693 --- /dev/null +++ b/test/other/metadce/test_metadce_cxx_lto.exports @@ -0,0 +1,14 @@ +__cxa_is_pointer_type +__indirect_function_table +__wasm_call_ctors +_emscripten_stack_alloc +_emscripten_stack_restore +_emscripten_timeout +dynCall_iiiiiijj +dynCall_iiiiij +dynCall_iiiiijj +dynCall_jiji +dynCall_viijii +emscripten_stack_get_current +main +memory diff --git a/test/other/metadce/test_metadce_cxx_lto.gzsize b/test/other/metadce/test_metadce_cxx_lto.gzsize new file mode 100644 index 0000000000000..d83cf260e1ce6 --- /dev/null +++ b/test/other/metadce/test_metadce_cxx_lto.gzsize @@ -0,0 +1 @@ +8661 diff --git a/test/other/metadce/test_metadce_cxx_lto.imports b/test/other/metadce/test_metadce_cxx_lto.imports new file mode 100644 index 0000000000000..b37855653aadc --- /dev/null +++ b/test/other/metadce/test_metadce_cxx_lto.imports @@ -0,0 +1,13 @@ +env._abort_js +env._emscripten_memcpy_js +env._emscripten_runtime_keepalive_clear +env._setitimer_js +env._tzset_js +env.emscripten_resize_heap +wasi_snapshot_preview1.environ_get +wasi_snapshot_preview1.environ_sizes_get +wasi_snapshot_preview1.fd_close +wasi_snapshot_preview1.fd_read +wasi_snapshot_preview1.fd_seek +wasi_snapshot_preview1.fd_write +wasi_snapshot_preview1.proc_exit diff --git a/test/other/metadce/test_metadce_cxx_lto.jssize b/test/other/metadce/test_metadce_cxx_lto.jssize new file mode 100644 index 0000000000000..84284746c93ae --- /dev/null +++ b/test/other/metadce/test_metadce_cxx_lto.jssize @@ -0,0 +1 @@ +21141 diff --git a/test/other/metadce/test_metadce_cxx_lto.sent b/test/other/metadce/test_metadce_cxx_lto.sent new file mode 100644 index 0000000000000..2e608dcdbf40c --- /dev/null +++ b/test/other/metadce/test_metadce_cxx_lto.sent @@ -0,0 +1,13 @@ +_abort_js +_emscripten_memcpy_js +_emscripten_runtime_keepalive_clear +_setitimer_js +_tzset_js +emscripten_resize_heap +environ_get +environ_sizes_get +fd_close +fd_read +fd_seek +fd_write +proc_exit diff --git a/test/other/metadce/test_metadce_cxx_lto.size b/test/other/metadce/test_metadce_cxx_lto.size new file mode 100644 index 0000000000000..ecfef3ab142d2 --- /dev/null +++ b/test/other/metadce/test_metadce_cxx_lto.size @@ -0,0 +1 @@ +129117 diff --git a/test/test_other.py b/test/test_other.py index df7e7b59082e5..f65cd084d1d36 100644 --- a/test/test_other.py +++ b/test/test_other.py @@ -8668,13 +8668,14 @@ def test_metadce_minimal_pthreads(self): 'mangle': (['-O2', '-fexceptions', '-sDEMANGLE_SUPPORT', '-Wno-deprecated'], [], ['waka']), # noqa # Wasm EH's code size increase is smaller than that of Emscripten EH - 'except_wasm': (['-O2', '-fwasm-exceptions'], [], ['waka']), # noqa - 'except_wasm_exnref': (['-O2', '-fwasm-exceptions', '-sWASM_EXNREF'], [], ['waka']), # noqa + 'except_wasm': (['-O2', '-fwasm-exceptions'], [], ['waka']), + 'except_wasm_exnref': (['-O2', '-fwasm-exceptions', '-sWASM_EXNREF'], [], ['waka']), # eval_ctors 1 can partially optimize, but runs into getenv() for locale # code. mode 2 ignores those and fully optimizes out the ctors - 'ctors1': (['-O2', '-sEVAL_CTORS'], [], ['waka']), # noqa - 'ctors2': (['-O2', '-sEVAL_CTORS=2'], [], ['waka']), # noqa - 'wasmfs': (['-O2', '-sWASMFS'], [], ['waka']), # noqa + 'ctors1': (['-O2', '-sEVAL_CTORS'], [], ['waka']), + 'ctors2': (['-O2', '-sEVAL_CTORS=2'], [], ['waka']), + 'wasmfs': (['-O2', '-sWASMFS'], [], ['waka']), + 'lto': (['-O2', '-flto'], [], ['waka']), }) def test_metadce_cxx(self, *args): # do not check functions in this test as there are a lot of libc++ functions