From a8a397fbceb78d2338e214e583be4f02797637d1 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 20 Nov 2020 12:37:11 -0500 Subject: Issue #1676 - Follow-up: Put js/src (including vm), jit, and wasm back into unified sources. Function template inflation in intermediate code. The linker problem we hit with the corrupt file was because there were too many function descriptors and relation in the .lib --- js/src/jit/moz.build | 34 +++++++++++++++++----------------- js/src/js-config.mozbuild | 2 ++ js/src/moz.build | 27 ++++++++++++++++++--------- js/src/wasm/moz.build | 2 +- 4 files changed, 38 insertions(+), 27 deletions(-) (limited to 'js') diff --git a/js/src/jit/moz.build b/js/src/jit/moz.build index 0c6c4f3b8..e8b463112 100644 --- a/js/src/jit/moz.build +++ b/js/src/jit/moz.build @@ -11,7 +11,7 @@ FINAL_LIBRARY = "js" # Includes should be relative to parent path LOCAL_INCLUDES += ["!..", ".."] -SOURCES += [ +UNIFIED_SOURCES += [ 'AliasAnalysis.cpp', 'AliasAnalysisShared.cpp', 'AlignmentMaskAnalysis.cpp', @@ -83,14 +83,14 @@ SOURCES += [ ] if CONFIG['MOZ_DEBUG']: - SOURCES += ['Disassembler.cpp'] + UNIFIED_SOURCES += ['Disassembler.cpp'] if not CONFIG['ENABLE_ION']: - SOURCES += [ + UNIFIED_SOURCES += [ 'none/Trampoline-none.cpp' ] elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'x86-shared/Architecture-x86-shared.cpp', 'x86-shared/Assembler-x86-shared.cpp', 'x86-shared/AssemblerBuffer-x86-shared.cpp', @@ -101,11 +101,11 @@ elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']: 'x86-shared/MacroAssembler-x86-shared.cpp', 'x86-shared/MoveEmitter-x86-shared.cpp', ] - SOURCES += [ + UNIFIED_SOURCES += [ 'x86-shared/Disassembler-x86-shared.cpp', # using namespace js::jit::X86Encoding; ] if CONFIG['JS_CODEGEN_X64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'x64/Assembler-x64.cpp', 'x64/Bailouts-x64.cpp', 'x64/BaselineCompiler-x64.cpp', @@ -117,7 +117,7 @@ elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']: 'x64/Trampoline-x64.cpp', ] else: - SOURCES += [ + UNIFIED_SOURCES += [ 'x86/Assembler-x86.cpp', 'x86/Bailouts-x86.cpp', 'x86/BaselineCompiler-x86.cpp', @@ -129,7 +129,7 @@ elif CONFIG['JS_CODEGEN_X86'] or CONFIG['JS_CODEGEN_X64']: 'x86/Trampoline-x86.cpp', ] elif CONFIG['JS_CODEGEN_ARM']: - SOURCES += [ + UNIFIED_SOURCES += [ 'arm/Architecture-arm.cpp', 'arm/Assembler-arm.cpp', 'arm/Bailouts-arm.cpp', @@ -145,16 +145,16 @@ elif CONFIG['JS_CODEGEN_ARM']: 'arm/Trampoline-arm.cpp', ] if CONFIG['JS_SIMULATOR_ARM']: - SOURCES += [ + UNIFIED_SOURCES += [ 'arm/Simulator-arm.cpp' ] elif CONFIG['OS_ARCH'] == 'Darwin': - SOURCES += [ + UNIFIED_SOURCES += [ 'arm/llvm-compiler-rt/arm/aeabi_idivmod.S', 'arm/llvm-compiler-rt/arm/aeabi_uidivmod.S', ] elif CONFIG['JS_CODEGEN_ARM64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'arm64/Architecture-arm64.cpp', 'arm64/Assembler-arm64.cpp', 'arm64/Bailouts-arm64.cpp', @@ -177,14 +177,14 @@ elif CONFIG['JS_CODEGEN_ARM64']: 'arm64/vixl/Utils-vixl.cpp' ] if CONFIG['JS_SIMULATOR_ARM64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'arm64/vixl/Debugger-vixl.cpp', 'arm64/vixl/Logic-vixl.cpp', 'arm64/vixl/MozSimulator-vixl.cpp', 'arm64/vixl/Simulator-vixl.cpp' ] elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'mips-shared/Architecture-mips-shared.cpp', 'mips-shared/Assembler-mips-shared.cpp', 'mips-shared/Bailouts-mips-shared.cpp', @@ -196,7 +196,7 @@ elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']: 'mips-shared/MoveEmitter-mips-shared.cpp', ] if CONFIG['JS_CODEGEN_MIPS32']: - SOURCES += [ + UNIFIED_SOURCES += [ 'mips32/Architecture-mips32.cpp', 'mips32/Assembler-mips32.cpp', 'mips32/Bailouts-mips32.cpp', @@ -210,11 +210,11 @@ elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']: 'mips32/Trampoline-mips32.cpp', ] if CONFIG['JS_SIMULATOR_MIPS32']: - SOURCES += [ + UNIFIED_SOURCES += [ 'mips32/Simulator-mips32.cpp' ] elif CONFIG['JS_CODEGEN_MIPS64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'mips64/Architecture-mips64.cpp', 'mips64/Assembler-mips64.cpp', 'mips64/Bailouts-mips64.cpp', @@ -228,6 +228,6 @@ elif CONFIG['JS_CODEGEN_MIPS32'] or CONFIG['JS_CODEGEN_MIPS64']: 'mips64/Trampoline-mips64.cpp', ] if CONFIG['JS_SIMULATOR_MIPS64']: - SOURCES += [ + UNIFIED_SOURCES += [ 'mips64/Simulator-mips64.cpp' ] diff --git a/js/src/js-config.mozbuild b/js/src/js-config.mozbuild index 82fb4e53e..4166c0ad1 100644 --- a/js/src/js-config.mozbuild +++ b/js/src/js-config.mozbuild @@ -3,6 +3,8 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. +FILES_PER_UNIFIED_FILE = 6 + # Also set in shell/moz.build DEFINES['ENABLE_SHARED_ARRAY_BUFFER'] = True diff --git a/js/src/moz.build b/js/src/moz.build index a6ee7b737..9cad8e52e 100644 --- a/js/src/moz.build +++ b/js/src/moz.build @@ -131,22 +131,18 @@ if not CONFIG['JS_DISABLE_SHELL']: if CONFIG['MOZ_VTUNE']: DIRS += ['vtune'] -SOURCES += [ +UNIFIED_SOURCES += [ 'jsalloc.cpp', 'jsapi.cpp', - 'jsarray.cpp', - 'jsatom.cpp', 'jsbool.cpp', 'jscntxt.cpp', 'jscompartment.cpp', 'jsdate.cpp', - 'jsdtoa.cpp', 'jsexn.cpp', 'jsfriendapi.cpp', 'jsfun.cpp', 'jsgc.cpp', 'jsiter.cpp', - 'jsmath.cpp', 'jsnativestack.cpp', 'jsnum.cpp', 'jsobj.cpp', @@ -156,16 +152,24 @@ SOURCES += [ 'jspropertytree.cpp', 'jsscript.cpp', 'jsstr.cpp', - 'jsutil.cpp', 'jsweakmap.cpp', ] +# Can't be built unified +SOURCES += [ + 'jsarray.cpp', + 'jsatom.cpp', + 'jsdtoa.cpp', + 'jsmath.cpp', + 'jsutil.cpp', +] + # Suppress warnings in third-party code. # We are keeping this in the main moz.build because it is file specific if CONFIG['CLANG_CXX'] or CONFIG['GNU_CXX']: SOURCES['jsdtoa.cpp'].flags += ['-Wno-implicit-fallthrough'] -SOURCES += [ +UNIFIED_SOURCES += [ 'vm/ArgumentsObject.cpp', 'vm/ArrayBufferObject.cpp', 'vm/AsyncFunction.cpp', @@ -185,7 +189,6 @@ SOURCES += [ 'vm/GlobalObject.cpp', 'vm/HelperThreads.cpp', 'vm/Id.cpp', - 'vm/Initialization.cpp', 'vm/Interpreter.cpp', 'vm/JSONParser.cpp', 'vm/MemoryMetrics.cpp', @@ -227,12 +230,18 @@ SOURCES += [ 'vm/Xdr.cpp', ] +# Can't be built unified +SOURCES += [ + 'vm/Initialization.cpp', +] + if CONFIG['JS_POSIX_NSPR']: - SOURCES += [ + UNIFIED_SOURCES += [ 'vm/PosixNSPR.cpp', ] if CONFIG['ENABLE_TRACE_LOGGING']: + # Can't be built unified SOURCES += [ 'vm/TraceLogging.cpp', 'vm/TraceLoggingGraph.cpp', diff --git a/js/src/wasm/moz.build b/js/src/wasm/moz.build index 6a47df322..5fe046add 100644 --- a/js/src/wasm/moz.build +++ b/js/src/wasm/moz.build @@ -11,7 +11,7 @@ FINAL_LIBRARY = "js" # Includes should be relative to parent path LOCAL_INCLUDES += ["!..", ".."] -SOURCES += [ +UNIFIED_SOURCES += [ 'AsmJS.cpp', 'WasmBaselineCompile.cpp', 'WasmBinaryFormat.cpp', -- cgit v1.2.3