Skip to content

Commit a3fac71

Browse files
authored
Merge pull request #79188 from edymtt/edymtt/apply-prespecialize-generic-metadata-to-all-of-core
Runtimes: support generic metadata prespecialization for all of Core
2 parents 35f10fa + 2a36723 commit a3fac71

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

Runtimes/Core/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ option(SwiftCore_HAS_DARWIN_LIBMALLOC "Use Darwin malloc features" ${APPLE})
109109
defaulted_option(SwiftCore_ENABLE_BACKTRACING "Enable backtracing runtime support")
110110
defaulted_set(SwiftCore_BACKTRACER_PATH STRING "Set a fixed path to the Swift backtracer")
111111
defaulted_option(SwiftCore_ENABLE_FATALERROR_BACKTRACE "Build stdlib fatalError with backtrace output")
112+
defaulted_option(SwiftCore_ENABLE_PRESPECIALIZATION "Enable generic metadata prespecialization")
112113

113114
option(SwiftCore_ENABLE_CLOBBER_FREED_OBJECTS "" OFF)
114115
option(SwiftCore_ENABLE_RUNTIME_LEAK_CHECKER "" OFF)
@@ -184,7 +185,8 @@ add_compile_options(
184185
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -target-min-inlining-version -Xfrontend min>"
185186
"$<$<AND:$<NOT:$<BOOL:${SwiftCore_ENABLE_OBJC_INTEROP}>>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -disable-objc-interop>"
186187
"$<$<AND:$<PLATFORM_ID:Windows>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules>"
187-
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>")
188+
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_LIBRARY_EVOLUTION}>,$<COMPILE_LANGUAGE:Swift>>:-enable-library-evolution>"
189+
"$<$<AND:$<BOOL:${SwiftCore_ENABLE_PRESPECIALIZATION}>,$<COMPILE_LANGUAGE:Swift>>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
188190

189191
include_directories(include)
190192

Runtimes/Core/cmake/modules/DefaultSettings.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ if(APPLE)
4141
set(SwiftCore_ENABLE_RUNTIME_OS_VERSIONING ON)
4242
set(SwiftCore_ENABLE_OVERRIDABLE_RETAIN_RELEASE ON)
4343
set(SwiftCore_THREADING_PACKAGE "DARWIN")
44+
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
4445
elseif(CMAKE_SYSTEM_NAME STREQUAL "WASM")
4546
set(SwiftCore_OBJECT_FORMAT_default "elf")
4647
set(SwiftCore_THREADING_PACKAGE "NONE")
@@ -49,13 +50,15 @@ elseif(LINUX OR ANDROID OR BSD)
4950
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
5051
if(LINUX)
5152
set(SwiftCore_THREADING_PACKAGE "LINUX")
53+
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
5254
else()
5355
set(SwiftCore_THREADING_PACKAGE "PTHREADS")
5456
endif()
5557
elseif(WIN32)
5658
set(SwiftCore_OBJECT_FORMAT_default "coff")
5759
set(SwiftCore_THREADING_PACKAGE "WIN32")
5860
set(SwiftCore_ENABLE_FATALERROR_BACKTRACE_default ON)
61+
set(SwiftCore_ENABLE_PRESPECIALIZATION_default ON)
5962
endif()
6063

6164
include("${SwiftCore_VENDOR_MODULE_DIR}/DefaultSettings.cmake" OPTIONAL)

Runtimes/Core/core/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,8 +283,7 @@ target_compile_options(swiftCore PRIVATE
283283
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -group-info-path -Xfrontend ${CMAKE_CURRENT_SOURCE_DIR}/GroupInfo.json>"
284284
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-autolinking-runtime-compatibility-concurrency>"
285285
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-objc-attr-requires-foundation-module>"
286-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -require-explicit-availability=ignore>"
287-
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -prespecialize-generic-metadata>")
286+
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -require-explicit-availability=ignore>")
288287

289288
if(NOT "${CMAKE_BUILD_TYPE}" STREQUAL "MinSizeRel")
290289
# Using these in MinSizeRel would result in a 15% increase in the binary size

0 commit comments

Comments
 (0)