Skip to content

Commit 99e4e95

Browse files
committed
[Xcode] Fix size increase due to multiple PGO profile support
https://bugs.webkit.org/show_bug.cgi?id=253870 rdar://106673505 Reviewed by Alexey Proskuryakov. The target triple selection logic in copy-profiling-data is moving to WebKitAdditions. Change the script on the open-source side to simply extract the profile that WebKitAdditions has built with. Rather than revert to the old configuration logic where we built our own OTHER_CFLAGS of PGO switches, use the settings that have been built-in to Xcode for years. AFAIK, we didn't know about these settings during the initial PGO work. As a result of this change, PGO profdata are correctly tracked as dependencies of the compile tasks that use them. We also save a bit of xcconfig logic. Additionally, adjust some use of GCC_PREPROCESSOR_DEFINITIONS in a drive-by cleanup. Feature-list variables like ENABLE_LLVM_PROFILE_GENERATION or ENABLE_PDFJS, which expand to their own name, can be used as -D flags like GCC_PREPROCESSOR_DEFINITIONS = $(ENABLE_PDFJS) instead of the more superfluous GCC_PREPROCESSOR_DEFINITIONS = GCC_PREPROCESSOR_DEFINITIONS_$(ENABLE_PDFJS) GCC_PREPROCESSOR_DEFINITIONS_ENABLE_PDFJS = ENABLE_PDFJS=1 * Configurations/WebKitProjectPaths.xcconfig: * Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig: * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/Scripts/copy-profiling-data.sh: * Source/WebCore/Configurations/WebCore.xcconfig: * Source/WebCore/Configurations/WebCoreTestSupport.xcconfig: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebKit/Configurations/BaseTarget.xcconfig: * Source/WebKit/Configurations/MediaFormatReader.xcconfig: * Source/WebKit/Configurations/WebContentService.xcconfig: * Source/WebKit/Configurations/WebKitSwift.xcconfig: * Source/WebKit/Configurations/adattributiond.xcconfig: * Source/WebKit/Configurations/webpushd.xcconfig: * Source/WebKit/Configurations/webpushtool.xcconfig: * Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig: Canonical link: https://commits.webkit.org/261778@main
1 parent 928823f commit 99e4e95

File tree

16 files changed

+68
-128
lines changed

16 files changed

+68
-128
lines changed

Configurations/WebKitProjectPaths.xcconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ UMBRELLA_FRAMEWORKS_DIR_OVERRIDE_YES = $(WK_OVERRIDE_FRAMEWORKS_DIR);
7070

7171
WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH = $(BUILT_PRODUCTS_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH)/WebKitAdditions;
7272
WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH[config=Production] = $(SDK_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH)/WebKitAdditions;
73-
WK_PROFILING_DATA_FOLDER_PATH = $(WK_PROFILING_DATA_FOLDER_PATH_$(USE_INTERNAL_SDK));
74-
WK_PROFILING_DATA_FOLDER_PATH_YES = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/Profiling;
7573

7674
WK_PRIVATE_FRAMEWORK_STUBS_DIR = $(WK_PRIVATE_FRAMEWORK_STUBS_DIR_$(USE_INTERNAL_SDK));
7775
WK_PRIVATE_FRAMEWORK_STUBS_DIR_[sdk=macos*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/$(TARGET_MAC_OS_X_VERSION_MAJOR);

Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,25 +50,24 @@ SECTORDER_FLAGS = $(SECTORDER_FLAGS_$(CONFIGURATION));
5050
SECTORDER_FLAGS_Production[sdk=iphoneos*] = -Wl,-order_file,$(SDKROOT)/AppleInternal/OrderFiles/JavaScriptCore.order;
5151
SECTORDER_FLAGS_Production[sdk=macosx*] = -Wl,-order_file,JavaScriptCore.order;
5252

53-
PROFILE_DATA_FLAGS_ENABLED = -fprofile-instr-use=$(BUILT_PRODUCTS_DIR)/DerivedSources/JavaScriptCore/JavaScriptCore.profdata;
54-
55-
PROFILE_DATA_FLAGS = $(PROFILE_DATA_FLAGS_$(CONFIGURATION)_$(WK_PLATFORM_NAME));
56-
PROFILE_DATA_FLAGS_Release_macosx = $(PROFILE_DATA_FLAGS_Release_macosx$(WK_MACOS_1200));
57-
PROFILE_DATA_FLAGS_Release_macosx_MACOS_SINCE_1200 = $(PROFILE_DATA_FLAGS_ENABLED);
58-
PROFILE_DATA_FLAGS_Release_iphoneos = $(PROFILE_DATA_FLAGS_ENABLED);
59-
PROFILE_DATA_FLAGS_Production_macosx = $(PROFILE_DATA_FLAGS_Production_macosx$(WK_MACOS_1200));
60-
PROFILE_DATA_FLAGS_Production_macosx_MACOS_SINCE_1200 = $(PROFILE_DATA_FLAGS_ENABLED);
61-
PROFILE_DATA_FLAGS_Production_iphoneos = $(PROFILE_DATA_FLAGS_ENABLED);
62-
63-
PROFILE_GENERATE_OR_USE_CFLAGS_ENABLE_LLVM_PROFILE_GENERATION = -fprofile-instr-generate -DENABLE_LLVM_PROFILE_GENERATION=1;
64-
PROFILE_GENERATE_OR_USE_CFLAGS_ = $(PROFILE_DATA_FLAGS);
65-
PROFILE_GENERATE_OR_USE_CFLAGS = $(PROFILE_GENERATE_OR_USE_CFLAGS_$(ENABLE_LLVM_PROFILE_GENERATION));
66-
PROFILE_GENERATE_OR_USE_LDFLAGS_ENABLE_LLVM_PROFILE_GENERATION = -fprofile-instr-generate -DENABLE_LLVM_PROFILE_GENERATION=1;
67-
PROFILE_GENERATE_OR_USE_LDFLAGS = $(PROFILE_GENERATE_OR_USE_LDFLAGS_$(ENABLE_LLVM_PROFILE_GENERATION));
53+
CLANG_OPTIMIZATION_PROFILE_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/JavaScriptCore/JavaScriptCore.profdata;
54+
WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE = $(WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE_$(USE_INTERNAL_SDK));
55+
WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE_YES = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/Profiling/JavaScriptCore.profdata.compressed;
56+
57+
CLANG_USE_OPTIMIZATION_PROFILE = $(CLANG_USE_OPTIMIZATION_PROFILE_$(ENABLE_LLVM_PROFILE_GENERATION));
58+
CLANG_USE_OPTIMIZATION_PROFILE_ = $(CLANG_USE_OPTIMIZATION_PROFILE_$(CONFIGURATION)_$(WK_PLATFORM_NAME));
59+
CLANG_USE_OPTIMIZATION_PROFILE_Release_macosx = YES;
60+
CLANG_USE_OPTIMIZATION_PROFILE_Release_iphoneos = YES;
61+
CLANG_USE_OPTIMIZATION_PROFILE_Production_macosx = YES;
62+
CLANG_USE_OPTIMIZATION_PROFILE_Production_iphoneos = YES;
63+
64+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = $(CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING_$(ENABLE_LLVM_PROFILE_GENERATION));
65+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING_ENABLE_LLVM_PROFILE_GENERATION = YES;
6866

6967
GCC_PREFIX_HEADER = JavaScriptCorePrefix.h;
68+
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(ENABLE_LLVM_PROFILE_GENERATION);
7069
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
71-
OTHER_CFLAGS = $(inherited) -fno-slp-vectorize --system-header-prefix=unicode/ -D__STDC_WANT_LIB_EXT1__=1 $(PROFILE_GENERATE_OR_USE_CFLAGS);
70+
OTHER_CFLAGS = $(inherited) -fno-slp-vectorize --system-header-prefix=unicode/ -D__STDC_WANT_LIB_EXT1__=1;
7271
HEADER_SEARCH_PATHS = "${BUILT_PRODUCTS_DIR}/DerivedSources/JavaScriptCore" $(HEADER_SEARCH_PATHS);
7372
INFOPLIST_FILE = Info.plist;
7473
INSTALL_PATH = $(INSTALL_PATH_PREFIX)$(JAVASCRIPTCORE_FRAMEWORKS_DIR);

Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12298,7 +12298,7 @@
1229812298
inputFileListPaths = (
1229912299
);
1230012300
inputPaths = (
12301-
"$(WK_PROFILING_DATA_FOLDER_PATH)",
12301+
"$(WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE)",
1230212302
"$(SRCROOT)/../../Tools/Profiling/Empty.profdata",
1230312303
"$(SRCROOT)/Scripts/copy-profiling-data.sh",
1230412304
);
Lines changed: 14 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,18 @@
11
#!/bin/sh
22

3-
if [ -z "${PROFILE_DATA_FLAGS}" ]; then
4-
exit 0;
5-
fi
6-
7-
profiles="${SCRIPT_INPUT_FILE_0}"
8-
# The fallback profile (empty profdata) is used in open source builds, and in
9-
# engineering builds when the selected profile is in an unrecognized format
10-
# (i.e. git-lfs is not installed).
11-
fallback_decompressed_profdata="${SCRIPT_INPUT_FILE_1}"
12-
derived_decompressed_profdata="${SCRIPT_OUTPUT_FILE_0}"
13-
14-
# Search for a PGO profile corresponding to the current target triple or a
15-
# previous OS version triple. In lieu of an exact match, fall back to the most
16-
# recent macOS profile.
17-
#
18-
# FIXME: Don't assume that profiles only exist for arm64e. This script runs as
19-
# a target build phase, so there is no CURRENT_ARCH, but it could process each
20-
# value of ARCHS.
21-
# FIXME: Support LLVM_TARGET_TRIPLE_SUFFIX to have separate profiles for
22-
# simulators and catalyst. We don't need this, but it is easy to add.
23-
24-
function lte_os_version {
25-
while read candidate_triple; do
26-
printf '%s\n' ${candidate_triple#${profiles}/arm64e-apple-} ${LLVM_TARGET_TRIPLE_OS_VERSION} | sort -CV &&
27-
echo ${candidate_triple}
28-
done
29-
}
30-
31-
pgo_target_triples=(
32-
# SWIFT_PLATFORM_TARGET_PREFIX is LLVM_TARGET_TRIPLE_OS_VERSION minus the
33-
# version number. If an exact match for this OS version is available, it
34-
# will be chosen.
35-
$(printf '%s\n' "${profiles}/arm64e-apple-${SWIFT_PLATFORM_TARGET_PREFIX}"* | sort -rV | lte_os_version)
36-
# The latest macOS triple.
37-
$(printf '%s\n' "${profiles}/arm64e-apple-macos"* | sort -rV | head -1)
38-
)
39-
40-
for pgo_triple in "${pgo_target_triples[@]}"; do
41-
[ -d "${pgo_triple}" ] && break
42-
done
43-
if [ $? -eq 0 ]; then
44-
# Can't use TARGET_NAME to select which profdata to use, because this
45-
# script may run as part of a "Derived Sources" target.
46-
input_profdata="${pgo_triple}/${PROJECT_NAME}.profdata.compressed"
47-
elif [ "${USE_INTERNAL_SDK}" != YES ]; then
48-
input_profdata="${fallback_decompressed_profdata}"
49-
else
50-
echo "error: could not find a suitable profile in any of the following directories:" "${pgo_target_triples[@]}"
51-
exit 1
52-
fi
53-
input_profdata_type="$(file -b "${input_profdata}")"
54-
55-
if [[ "${input_profdata_type}" = "lzfse compressed"* ]]; then
56-
set -x; compression_tool -decode -i "${input_profdata}" -o "${derived_decompressed_profdata}" -a lzfse
57-
elif [[ "${input_profdata_type}" = "LLVM indexed profile data"* ]]; then
58-
set -x; cp "${input_profdata}" "${derived_decompressed_profdata}"
59-
elif [ "${CONFIGURATION}" != Production ] && [ "${input_profdata}" != "${fallback_decompressed_profdata}" ]; then
60-
echo "warning: unrecognized profiling data at ${input_profdata}, falling back to stub data"
61-
set -x; cp "${fallback_decompressed_profdata}" "${derived_decompressed_profdata}"
62-
else
63-
echo "error: unrecognized profiling data at ${input_profdata}"
64-
exit 1
3+
# Decompresses and copies PGO profiles from WebKitAdditions to a derived folder.
4+
5+
if [ "${CLANG_USE_OPTIMIZATION_PROFILE}" = YES ]; then
6+
compression_tool -v -decode -i "${SCRIPT_INPUT_FILE_0}" -o "${SCRIPT_OUTPUT_FILE_0}" && exit
7+
if [ "${CONFIGURATION}" = Production ]; then
8+
echo "error: ${SCRIPT_INPUT_FILE_0} failed to extract"
9+
exit 1
10+
else
11+
echo "warning: ${SCRIPT_INPUT_FILE_0} failed to extract, falling back to stub profile data"
12+
fi
6513
fi
6614

15+
# Copy stub data, even if CLANG_USE_OPTIMIZATION_PROFILE is off. The build
16+
# system needs something to be written to SCRIPT_INPUT_FILE_0 for it to skip
17+
# rerunning this task in subsequent builds.
18+
cp -vf "${SCRIPT_INPUT_FILE_1}" "${SCRIPT_OUTPUT_FILE_0}"

Source/WebCore/Configurations/WebCore.xcconfig

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,21 @@
2525
#include "../../../Configurations/Version.xcconfig"
2626

2727
GCC_PREFIX_HEADER = WebCorePrefix.h;
28-
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) BUILDING_WEBKIT GL_SILENCE_DEPRECATION=1 GLES_SILENCE_DEPRECATION=1 $(GCC_PREPROCESSOR_DEFINITIONS_$(ENABLE_PDFJS)) $(inherited);
29-
GCC_PREPROCESSOR_DEFINITIONS_ENABLE_PDFJS = ENABLE_PDFJS=1;
30-
31-
PROFILE_DATA_FLAGS_ENABLED = -fprofile-instr-use=$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/WebCore.profdata;
32-
33-
PROFILE_DATA_FLAGS = $(PROFILE_DATA_FLAGS_$(CONFIGURATION)_$(WK_PLATFORM_NAME));
34-
PROFILE_DATA_FLAGS_Release_macosx = $(PROFILE_DATA_FLAGS_Release_macosx$(WK_MACOS_1200));
35-
PROFILE_DATA_FLAGS_Release_macosx_MACOS_SINCE_1200 = $(PROFILE_DATA_FLAGS_ENABLED);
36-
PROFILE_DATA_FLAGS_Release_iphoneos = $(PROFILE_DATA_FLAGS_ENABLED);
37-
PROFILE_DATA_FLAGS_Production_macosx = $(PROFILE_DATA_FLAGS_Production_macosx$(WK_MACOS_1200));
38-
PROFILE_DATA_FLAGS_Production_macosx_MACOS_SINCE_1200 = $(PROFILE_DATA_FLAGS_ENABLED);
39-
PROFILE_DATA_FLAGS_Production_iphoneos = $(PROFILE_DATA_FLAGS_ENABLED);
40-
41-
PROFILE_GENERATE_OR_USE_CFLAGS_ENABLE_LLVM_PROFILE_GENERATION = -fprofile-instr-generate -DENABLE_LLVM_PROFILE_GENERATION=1;
42-
PROFILE_GENERATE_OR_USE_CFLAGS_ = $(PROFILE_DATA_FLAGS);
43-
PROFILE_GENERATE_OR_USE_CFLAGS = $(PROFILE_GENERATE_OR_USE_CFLAGS_$(ENABLE_LLVM_PROFILE_GENERATION));
44-
PROFILE_GENERATE_OR_USE_LDFLAGS_ENABLE_LLVM_PROFILE_GENERATION = -fprofile-instr-generate -DENABLE_LLVM_PROFILE_GENERATION=1;
45-
PROFILE_GENERATE_OR_USE_LDFLAGS = $(PROFILE_GENERATE_OR_USE_LDFLAGS_$(ENABLE_LLVM_PROFILE_GENERATION));
46-
47-
OTHER_CFLAGS = $(inherited) $(PROFILE_GENERATE_OR_USE_CFLAGS);
28+
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) BUILDING_WEBKIT GL_SILENCE_DEPRECATION=1 GLES_SILENCE_DEPRECATION=1 $(ENABLE_PDFJS) $(ENABLE_LLVM_PROFILE_GENERATION) $(inherited);
29+
30+
CLANG_OPTIMIZATION_PROFILE_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/WebCore.profdata;
31+
WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE = $(WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE_$(USE_INTERNAL_SDK));
32+
WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE_YES = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/Profiling/WebCore.profdata.compressed;
33+
34+
CLANG_USE_OPTIMIZATION_PROFILE = $(CLANG_USE_OPTIMIZATION_PROFILE_$(ENABLE_LLVM_PROFILE_GENERATION));
35+
CLANG_USE_OPTIMIZATION_PROFILE_ = $(CLANG_USE_OPTIMIZATION_PROFILE_$(CONFIGURATION)_$(WK_PLATFORM_NAME));
36+
CLANG_USE_OPTIMIZATION_PROFILE_Release_macosx = YES;
37+
CLANG_USE_OPTIMIZATION_PROFILE_Release_iphoneos = YES;
38+
CLANG_USE_OPTIMIZATION_PROFILE_Production_macosx = YES;
39+
CLANG_USE_OPTIMIZATION_PROFILE_Production_iphoneos = YES;
40+
41+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = $(CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING_$(ENABLE_LLVM_PROFILE_GENERATION));
42+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING_ENABLE_LLVM_PROFILE_GENERATION = YES;
4843

4944
FRAMEWORK_SEARCH_PATHS[sdk=embedded*] = $(WK_QUOTED_OVERRIDE_FRAMEWORKS_DIR) $(BUILT_PRODUCTS_DIR) $(WK_PRIVATE_FRAMEWORK_STUBS_DIR);
5045
FRAMEWORK_SEARCH_PATHS[sdk=macosx*] = $(WK_QUOTED_OVERRIDE_FRAMEWORKS_DIR);

Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ GCC_SYMBOLS_PRIVATE_EXTERN = YES;
6262
OTHER_LDFLAGS = $(WK_COMMON_OTHER_LDFLAGS) $(ANGLE_LDFLAGS) -framework Metal $(SOURCE_VERSION_LDFLAGS);
6363
OTHER_LDFLAGS[sdk=macos*] = $(WK_COMMON_OTHER_LDFLAGS) -framework AppKit -framework Metal $(ANGLE_LDFLAGS) $(LIBWEBRTC_LDFLAGS) $(SOURCE_VERSION_LDFLAGS);
6464

65-
PROFILE_GENERATE_OR_USE_CFLAGS_ENABLE_LLVM_PROFILE_GENERATION = ; // Disable PGO profile generation
65+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = NO; // Disable PGO profile generation
6666
OTHER_LDFLAGS[sdk=iphone*] = $(WK_COMMON_OTHER_LDFLAGS) -lAccessibility -framework CoreText -framework Metal $(ANGLE_LDFLAGS) $(LIBWEBRTC_LDFLAGS) $(SOURCE_VERSION_LDFLAGS);
6767
SECT_ORDER_FLAGS = ;
6868

Source/WebCore/WebCore.xcodeproj/project.pbxproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41059,7 +41059,7 @@
4105941059
inputFileListPaths = (
4106041060
);
4106141061
inputPaths = (
41062-
"$(WK_PROFILING_DATA_FOLDER_PATH)",
41062+
"$(WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE)",
4106341063
"$(SRCROOT)/../../Tools/Profiling/Empty.profdata",
4106441064
"$(JAVASCRIPTCORE_PRIVATE_HEADERS_DIR)/copy-profiling-data.sh",
4106541065
);

Source/WebKit/Configurations/BaseTarget.xcconfig

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,32 +32,29 @@ WK_FORMATREADERBUNDLE_CODESIGNING_DEFINES = ENABLE_LOWER_FORMATREADERBUNDLE_CODE
3232
WK_FORMATREADERBUNDLE_CODESIGNING_DEFINES[config=Production] = ;
3333

3434
GCC_PREFIX_HEADER = WebKit2Prefix.h;
35-
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) $(WK_CORE_PREDICTION_DEFINES) $(WK_FORMATREADERBUNDLE_CODESIGNING_DEFINES) $(GCC_PREPROCESSOR_DEFINITIONS_$(ENABLE_PDFJS)) $(inherited) FRAMEWORK_NAME=WebKit;
36-
GCC_PREPROCESSOR_DEFINITIONS_ENABLE_PDFJS = ENABLE_PDFJS=1;
35+
GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) $(WK_CORE_PREDICTION_DEFINES) $(WK_FORMATREADERBUNDLE_CODESIGNING_DEFINES) $(ENABLE_PDFJS) $(ENABLE_LLVM_PROFILE_GENERATION) $(inherited) FRAMEWORK_NAME=WebKit;
3736

3837
ALTERNATE_HEADER_SEARCH_PATHS = $(ALTERNATE_HEADER_SEARCH_PATHS_$(SDK_VARIANT));
3938
ALTERNATE_HEADER_SEARCH_PATHS_iosmac = $(BUILT_PRODUCTS_DIR)$(WK_ALTERNATE_FRAMEWORKS_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH)
4039

4140
HEADER_SEARCH_PATHS = $(ALTERNATE_HEADER_SEARCH_PATHS) $(BUILT_PRODUCTS_DIR)$(WK_LIBRARY_HEADERS_FOLDER_PATH) "$(WEBCORE_PRIVATE_HEADERS_DIR)/ForwardingHeaders" $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit $(WEBGPU_HEADER_SEARCH_PATHS) $(WEBKITADDITIONS_HEADER_SEARCH_PATHS) $(LIBWEBRTC_HEADER_SEARCH_PATHS) $(SRCROOT) $(HEADER_SEARCH_PATHS);
4241
SYSTEM_HEADER_SEARCH_PATHS = $(SDK_DIR)$(WK_ALTERNATE_WEBKIT_SDK_PATH)$(WK_LIBRARY_HEADERS_FOLDER_PATH) $(inherited);
4342

44-
PROFILE_DATA_FLAGS_ENABLED = -fprofile-instr-use=$(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/WebKit.profdata;
43+
CLANG_OPTIMIZATION_PROFILE_FILE = $(BUILT_PRODUCTS_DIR)/DerivedSources/WebKit/WebKit.profdata;
44+
WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE = $(WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE_$(USE_INTERNAL_SDK));
45+
WK_COMPRESSED_OPTIMIZATION_PROFILE_FILE_YES = $(WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH)/Profiling/WebKit.profdata.compressed;
4546

46-
PROFILE_DATA_FLAGS = $(PROFILE_DATA_FLAGS_$(CONFIGURATION)_$(WK_PLATFORM_NAME));
47-
PROFILE_DATA_FLAGS_Release_macosx = $(PROFILE_DATA_FLAGS_Release_macosx$(WK_MACOS_1200));
48-
PROFILE_DATA_FLAGS_Release_macosx_MACOS_SINCE_1200 = $(PROFILE_DATA_FLAGS_ENABLED);
49-
PROFILE_DATA_FLAGS_Release_iphoneos = $(PROFILE_DATA_FLAGS_ENABLED);
50-
PROFILE_DATA_FLAGS_Production_macosx = $(PROFILE_DATA_FLAGS_Production_macosx$(WK_MACOS_1200));
51-
PROFILE_DATA_FLAGS_Production_macosx_MACOS_SINCE_1200 = $(PROFILE_DATA_FLAGS_ENABLED);
52-
PROFILE_DATA_FLAGS_Production_iphoneos = $(PROFILE_DATA_FLAGS_ENABLED);
47+
CLANG_USE_OPTIMIZATION_PROFILE = $(CLANG_USE_OPTIMIZATION_PROFILE_$(ENABLE_LLVM_PROFILE_GENERATION));
48+
CLANG_USE_OPTIMIZATION_PROFILE_ = $(CLANG_USE_OPTIMIZATION_PROFILE_$(CONFIGURATION)_$(WK_PLATFORM_NAME));
49+
CLANG_USE_OPTIMIZATION_PROFILE_Release_macosx = YES;
50+
CLANG_USE_OPTIMIZATION_PROFILE_Release_iphoneos = YES;
51+
CLANG_USE_OPTIMIZATION_PROFILE_Production_macosx = YES;
52+
CLANG_USE_OPTIMIZATION_PROFILE_Production_iphoneos = YES;
5353

54-
PROFILE_GENERATE_OR_USE_CFLAGS_ENABLE_LLVM_PROFILE_GENERATION = -fprofile-instr-generate -DENABLE_LLVM_PROFILE_GENERATION=1;
55-
PROFILE_GENERATE_OR_USE_CFLAGS_ = $(PROFILE_DATA_FLAGS);
56-
PROFILE_GENERATE_OR_USE_CFLAGS = $(PROFILE_GENERATE_OR_USE_CFLAGS_$(ENABLE_LLVM_PROFILE_GENERATION));
57-
PROFILE_GENERATE_OR_USE_LDFLAGS_ENABLE_LLVM_PROFILE_GENERATION = -fprofile-instr-generate -DENABLE_LLVM_PROFILE_GENERATION=1;
58-
PROFILE_GENERATE_OR_USE_LDFLAGS = $(PROFILE_GENERATE_OR_USE_LDFLAGS_$(ENABLE_LLVM_PROFILE_GENERATION));
54+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = $(CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING_$(ENABLE_LLVM_PROFILE_GENERATION));
55+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING_ENABLE_LLVM_PROFILE_GENERATION = YES;
5956

60-
OTHER_CFLAGS = $(inherited) -iframework $(SDK_DIR)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks -D__STDC_WANT_LIB_EXT1__=1 $(PROFILE_GENERATE_OR_USE_CFLAGS);
57+
OTHER_CFLAGS = $(inherited) -iframework $(SDK_DIR)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks -D__STDC_WANT_LIB_EXT1__=1;
6158

6259
// FIXME: This shouldn't be computing path from scratch, the computation should be shared.
6360
OTHER_LDFLAGS_STAGED_FRAMEWORK_PATH = $(OTHER_LDFLAGS_STAGED_FRAMEWORK_PATH_$(USE_STAGING_INSTALL_PATH));

Source/WebKit/Configurations/MediaFormatReader.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
EXCLUDED_SOURCE_FILE_NAMES[sdk=embedded*] = *;
2727
INFOPLIST_FILE = MediaFormatReaderPlugIn/Info.plist;
28-
PROFILE_GENERATE_OR_USE_CFLAGS_ENABLE_LLVM_PROFILE_GENERATION = ; // Disable PGO profile generation
28+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = NO; // Disable PGO profile generation
2929
OTHER_LDFLAGS = $(inherited) -allowable_client MediaToolbox;
3030
PRODUCT_BUNDLE_IDENTIFIER = com.apple.$(PRODUCT_NAME:rfc1034identifier);
3131
PRODUCT_NAME = $(TARGET_NAME);

Source/WebKit/Configurations/WebContentService.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ INFOPLIST_FILE[sdk=macosx*] = WebProcess/EntryPoint/Cocoa/XPCService/WebContentS
3737
WK_APPKIT_LDFLAGS = $(WK_APPKIT_LDFLAGS_$(WK_PLATFORM_NAME));
3838
WK_APPKIT_LDFLAGS_macosx = -framework AppKit;
3939

40-
PROFILE_GENERATE_OR_USE_CFLAGS_ENABLE_LLVM_PROFILE_GENERATION = ; // Disable PGO profile generation
40+
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = NO; // Disable PGO profile generation
4141
OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_STAGED_FRAMEWORK_PATH_$(WK_WEBCONTENT_SERVICE_NEEDS_STAGED_FRAMEWORK_PATH_LDFLAG)) $(WK_APPKIT_LDFLAGS) $(OTHER_LDFLAGS_PLATFORM) $(WK_RELOCATABLE_FRAMEWORKS_LDFLAGS) $(SOURCE_VERSION_LDFLAGS);
4242

4343
WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT = $(WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT_$(WK_EMPTY_$(WK_WEBCONTENT_SERVICE_NEEDS_XPC_DOMAIN_EXTENSION_ENTITLEMENT)));

0 commit comments

Comments
 (0)