Skip to content

Commit 098419c

Browse files
committed
[lld][ELF][MachO] rename to bp-* options for sectionOrderer both in ELF and MachO
1 parent d88a0c7 commit 098419c

11 files changed

+177
-33
lines changed

lld/ELF/Config.h

+6
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,12 @@ struct Config {
264264
bool armBe8 = false;
265265
BsymbolicKind bsymbolic = BsymbolicKind::None;
266266
CGProfileSortKind callGraphProfileSort;
267+
llvm::StringRef irpgoProfilePath;
268+
bool bpStartupFunctionSort = false;
269+
bool bpCompressionSortStartupFunctions = false;
270+
bool bpFunctionOrderForCompression = false;
271+
bool bpDataOrderForCompression = false;
272+
bool bpVerboseSectionOrderer = false;
267273
bool checkSections;
268274
bool checkDynamicRelocs;
269275
std::optional<llvm::DebugCompressionType> compressDebugSections;

lld/ELF/Driver.cpp

+50
Original file line numberDiff line numberDiff line change
@@ -1255,6 +1255,56 @@ static void readConfigs(Ctx &ctx, opt::InputArgList &args) {
12551255
ctx.arg.bsymbolic = BsymbolicKind::All;
12561256
}
12571257
ctx.arg.callGraphProfileSort = getCGProfileSortKind(ctx, args);
1258+
ctx.arg.irpgoProfilePath = args.getLastArgValue(OPT_irpgo_profile);
1259+
ctx.arg.bpCompressionSortStartupFunctions =
1260+
args.hasFlag(OPT_bp_compression_sort_startup_functions,
1261+
OPT_no_bp_compression_sort_startup_functions, false);
1262+
if (auto *arg = args.getLastArg(OPT_bp_startup_sort)) {
1263+
StringRef startupSortStr = arg->getValue();
1264+
if (startupSortStr == "function") {
1265+
ctx.arg.bpStartupFunctionSort = true;
1266+
} else if (startupSortStr != "none") {
1267+
ErrAlways(ctx) << "unknown value '" + startupSortStr + "' for " +
1268+
arg->getSpelling();
1269+
}
1270+
}
1271+
if (!ctx.arg.irpgoProfilePath.empty()) {
1272+
if (args.getLastArg(OPT_call_graph_ordering_file) != nullptr) {
1273+
ErrAlways(ctx) << "--irpgo-profile is incompatible with "
1274+
"--call-graph-ordering-file";
1275+
}
1276+
} else {
1277+
if (ctx.arg.bpStartupFunctionSort)
1278+
ErrAlways(ctx) << "--bp-startup-sort=function must be used with "
1279+
"--irpgo-profile";
1280+
if (ctx.arg.bpCompressionSortStartupFunctions)
1281+
ErrAlways(ctx)
1282+
<< "--bp-compression-sort-startup-functions must be used with "
1283+
"--irpgo-profile";
1284+
}
1285+
1286+
if (auto *arg = args.getLastArg(OPT_bp_compression_sort)) {
1287+
StringRef compressionSortStr = arg->getValue();
1288+
if (compressionSortStr == "function") {
1289+
ctx.arg.bpFunctionOrderForCompression = true;
1290+
} else if (compressionSortStr == "data") {
1291+
ctx.arg.bpDataOrderForCompression = true;
1292+
} else if (compressionSortStr == "both") {
1293+
ctx.arg.bpFunctionOrderForCompression = true;
1294+
ctx.arg.bpDataOrderForCompression = true;
1295+
} else if (compressionSortStr != "none") {
1296+
ErrAlways(ctx) << "unknown value '" + compressionSortStr + "' for " +
1297+
arg->getSpelling();
1298+
}
1299+
if (ctx.arg.bpDataOrderForCompression ||
1300+
ctx.arg.bpFunctionOrderForCompression) {
1301+
if (args.getLastArg(OPT_call_graph_ordering_file) != nullptr) {
1302+
ErrAlways(ctx) << "--bp-compression-sort is incompatible with "
1303+
"--call-graph-ordering-file";
1304+
}
1305+
}
1306+
}
1307+
ctx.arg.bpVerboseSectionOrderer = args.hasArg(OPT_verbose_bp_section_orderer);
12581308
ctx.arg.checkSections =
12591309
args.hasFlag(OPT_check_sections, OPT_no_check_sections, true);
12601310
ctx.arg.chroot = args.getLastArgValue(OPT_chroot);

lld/ELF/Options.td

+18
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,24 @@ def call_graph_profile_sort: JJ<"call-graph-profile-sort=">,
141141
def : FF<"no-call-graph-profile-sort">, Alias<call_graph_profile_sort>, AliasArgs<["none"]>,
142142
Flags<[HelpHidden]>;
143143

144+
defm irpgo_profile: Eq<"irpgo-profile",
145+
"Read the IRPGO profile for use with -bp-startup-sort and other profile-guided optimizations">;
146+
147+
def bp_startup_sort: JJ<"bp-startup-sort=">,
148+
MetaVarName<"[none,function]">,
149+
HelpText<"Order sections based on profile data to improve startup time">;
150+
151+
defm bp_compression_sort_startup_functions: BB<"bp-compression-sort-startup-functions",
152+
"Order startup functions by balanced partition to improve compressed size in addition to startup time",
153+
"Do not order startup function for compression">;
154+
155+
def bp_compression_sort: JJ<"bp-compression-sort=">,
156+
MetaVarName<"[none,function,data,both]">,
157+
HelpText<"Order sections by balanced partition to improve compressed size">;
158+
159+
def verbose_bp_section_orderer: FF<"verbose-bp-section-orderer">,
160+
HelpText<"Print information on how many sections were ordered by balanced partitioning and a measure of the expected number of page faults">;
161+
144162
// --chroot doesn't have a help text because it is an internal option.
145163
def chroot: Separate<["--"], "chroot">;
146164

lld/MachO/Config.h

+6-5
Original file line numberDiff line numberDiff line change
@@ -222,11 +222,12 @@ struct Configuration {
222222
bool callGraphProfileSort = false;
223223
llvm::StringRef printSymbolOrder;
224224

225-
llvm::StringRef irpgoProfileSortProfilePath;
226-
bool compressionSortStartupFunctions = false;
227-
bool functionOrderForCompression = false;
228-
bool dataOrderForCompression = false;
229-
bool verboseBpSectionOrderer = false;
225+
llvm::StringRef irpgoProfilePath;
226+
bool bpStartupFunctionSort = false;
227+
bool bpCompressionSortStartupFunctions = false;
228+
bool bpFunctionOrderForCompression = false;
229+
bool bpDataOrderForCompression = false;
230+
bool bpVerboseSectionOrderer = false;
230231

231232
SectionRenameMap sectionRenameMap;
232233
SegmentRenameMap segmentRenameMap;

lld/MachO/Driver.cpp

+34-14
Original file line numberDiff line numberDiff line change
@@ -1838,34 +1838,54 @@ bool link(ArrayRef<const char *> argsArr, llvm::raw_ostream &stdoutOS,
18381838
if (const Arg *arg = args.getLastArgNoClaim(OPT_call_graph_profile_sort))
18391839
error(firstArgStr + " is incompatible with " + arg->getSpelling());
18401840
};
1841+
if (args.hasArg(OPT_irpgo_profile_sort) ||
1842+
args.hasArg(OPT_irpgo_profile_sort_eq))
1843+
log("--irpgo-profile-sort is deprecated. Please use "
1844+
"--bp-startup-sort=function");
1845+
if (const Arg *arg = args.getLastArg(OPT_irpgo_profile_eq)) {
1846+
config->irpgoProfilePath = arg->getValue();
1847+
}
18411848
if (const Arg *arg = args.getLastArg(OPT_irpgo_profile_sort)) {
1842-
config->irpgoProfileSortProfilePath = arg->getValue();
1849+
config->irpgoProfilePath = arg->getValue();
18431850
IncompatWithCGSort(arg->getSpelling());
18441851
}
1845-
config->compressionSortStartupFunctions =
1846-
args.hasFlag(OPT_compression_sort_startup_functions,
1847-
OPT_no_compression_sort_startup_functions, false);
1848-
if (config->irpgoProfileSortProfilePath.empty() &&
1849-
config->compressionSortStartupFunctions)
1850-
error("--compression-sort-startup-functions must be used with "
1851-
"--irpgo-profile-sort");
1852-
if (const Arg *arg = args.getLastArg(OPT_compression_sort)) {
1852+
config->bpCompressionSortStartupFunctions =
1853+
args.hasFlag(OPT_bp_compression_sort_startup_functions,
1854+
OPT_no_bp_compression_sort_startup_functions, false);
1855+
if (config->irpgoProfilePath.empty() &&
1856+
config->bpCompressionSortStartupFunctions)
1857+
error("--bp-compression-sort-startup-functions must be used with "
1858+
"--irpgo-profile");
1859+
if (const Arg *arg = args.getLastArg(OPT_bp_startup_sort)) {
1860+
StringRef startupSortStr = arg->getValue();
1861+
if (startupSortStr == "function") {
1862+
config->bpStartupFunctionSort = true;
1863+
} else if (startupSortStr != "none") {
1864+
error("unknown value `" + startupSortStr + "` for " + arg->getSpelling());
1865+
}
1866+
if (startupSortStr != "none")
1867+
IncompatWithCGSort(arg->getSpelling());
1868+
}
1869+
if (config->irpgoProfilePath.empty() && config->bpStartupFunctionSort)
1870+
error("--bp-startup-sort=function must be used with "
1871+
"--irpgo-profile");
1872+
if (const Arg *arg = args.getLastArg(OPT_bp_compression_sort)) {
18531873
StringRef compressionSortStr = arg->getValue();
18541874
if (compressionSortStr == "function") {
1855-
config->functionOrderForCompression = true;
1875+
config->bpFunctionOrderForCompression = true;
18561876
} else if (compressionSortStr == "data") {
1857-
config->dataOrderForCompression = true;
1877+
config->bpDataOrderForCompression = true;
18581878
} else if (compressionSortStr == "both") {
1859-
config->functionOrderForCompression = true;
1860-
config->dataOrderForCompression = true;
1879+
config->bpFunctionOrderForCompression = true;
1880+
config->bpDataOrderForCompression = true;
18611881
} else if (compressionSortStr != "none") {
18621882
error("unknown value `" + compressionSortStr + "` for " +
18631883
arg->getSpelling());
18641884
}
18651885
if (compressionSortStr != "none")
18661886
IncompatWithCGSort(arg->getSpelling());
18671887
}
1868-
config->verboseBpSectionOrderer = args.hasArg(OPT_verbose_bp_section_orderer);
1888+
config->bpVerboseSectionOrderer = args.hasArg(OPT_verbose_bp_section_orderer);
18691889

18701890
for (const Arg *arg : args.filtered(OPT_alias)) {
18711891
config->aliasedSymbols.push_back(

lld/MachO/Options.td

+20-5
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,34 @@ def no_call_graph_profile_sort : Flag<["--"], "no-call-graph-profile-sort">,
126126
def print_symbol_order_eq: Joined<["--"], "print-symbol-order=">,
127127
HelpText<"Print a symbol order specified by --call-graph-profile-sort into the specified file">,
128128
Group<grp_lld>;
129+
def irpgo_profile_eq: Joined<["--"], "irpgo-profile=">,
130+
HelpText<"Read the IRPGO profile for use with -bp-startup-sort and other profile-guided optimizations">,
131+
Group<grp_lld>;
132+
def bp_startup_sort: Joined<["--"], "bp-startup-sort=">,
133+
MetaVarName<"[none,function]">,
134+
HelpText<"Order sections based on profile data to improve startup time">,
135+
Group<grp_lld>;
136+
def bp_compression_sort_startup_functions: Flag<["--"], "bp-compression-sort-startup-functions">,
137+
HelpText<"Order startup functions to improve compressed size in addition to startup time">,
138+
Group<grp_lld>;
139+
def no_bp_compression_sort_startup_functions: Flag<["--"], "no-bp-compression-sort-startup-functions">,
140+
HelpText<"Do not order startup function for compression">, Group<grp_lld>;
141+
def bp_compression_sort: Joined<["--"], "bp-compression-sort=">,
142+
MetaVarName<"[none,function,data,both]">,
143+
HelpText<"Order sections to improve compressed size">, Group<grp_lld>;
129144
def irpgo_profile_sort: Separate<["--"], "irpgo-profile-sort">, Group<grp_lld>;
130145
def irpgo_profile_sort_eq: Joined<["--"], "irpgo-profile-sort=">,
131146
Alias<!cast<Separate>(irpgo_profile_sort)>, MetaVarName<"<profile>">,
132-
HelpText<"Read the IRPGO profile at <profile> to order sections to improve startup time">,
147+
HelpText<"Deprecated. Please use --bp-startup-sort=function">,
133148
Group<grp_lld>;
134149
def compression_sort_startup_functions: Flag<["--"], "compression-sort-startup-functions">,
135-
HelpText<"Order startup functions to improve compressed size in addition to startup time">,
136-
Group<grp_lld>;
150+
Alias<!cast<Flag>(bp_compression_sort_startup_functions)>, HelpText<"Deprecated. Please use --bp-compression-sort-startup-functions">, Group<grp_lld>;
137151
def no_compression_sort_startup_functions: Flag<["--"], "no-compression-sort-startup-functions">,
138-
HelpText<"Do not order startup function for compression">, Group<grp_lld>;
152+
Alias<!cast<Flag>(no_bp_compression_sort_startup_functions)>, HelpText<"Deprecated. Please use --no-bp-compression-sort-startup-functions">, Group<grp_lld>;
139153
def compression_sort: Joined<["--"], "compression-sort=">,
140154
MetaVarName<"[none,function,data,both]">,
141-
HelpText<"Order sections to improve compressed size">, Group<grp_lld>;
155+
Alias<!cast<Joined>(bp_compression_sort)>,
156+
HelpText<"Deprecated. Please use --bp-compression-sort=">, Group<grp_lld>;
142157
def verbose_bp_section_orderer: Flag<["--"], "verbose-bp-section-orderer">,
143158
HelpText<"Print information on how many sections were ordered by balanced partitioning and a measure of the expected number of page faults">,
144159
Group<grp_lld>;

lld/MachO/SectionPriorities.cpp

+8-6
Original file line numberDiff line numberDiff line change
@@ -353,14 +353,16 @@ void macho::PriorityBuilder::parseOrderFile(StringRef path) {
353353
DenseMap<const InputSection *, size_t>
354354
macho::PriorityBuilder::buildInputSectionPriorities() {
355355
DenseMap<const InputSection *, size_t> sectionPriorities;
356-
if (!config->irpgoProfileSortProfilePath.empty() ||
357-
config->functionOrderForCompression || config->dataOrderForCompression) {
356+
if (!config->irpgoProfilePath.empty() ||
357+
config->bpFunctionOrderForCompression ||
358+
config->bpDataOrderForCompression) {
358359
TimeTraceScope timeScope("Balanced Partitioning Section Orderer");
359360
sectionPriorities = runBalancedPartitioning(
360-
highestAvailablePriority, config->irpgoProfileSortProfilePath,
361-
config->functionOrderForCompression, config->dataOrderForCompression,
362-
config->compressionSortStartupFunctions,
363-
config->verboseBpSectionOrderer);
361+
highestAvailablePriority, config->irpgoProfilePath,
362+
config->bpFunctionOrderForCompression,
363+
config->bpDataOrderForCompression,
364+
config->bpCompressionSortStartupFunctions,
365+
config->bpVerboseSectionOrderer);
364366
} else if (config->callGraphProfileSort) {
365367
// Sort sections by the profile data provided by __LLVM,__cg_profile
366368
// sections.

lld/test/ELF/incompatible.s

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
# REQUIRES: aarch64
2+
# RUN: rm -rf %t
3+
# RUN: not ld.lld -o /dev/null %t --irpgo-profile=/dev/null --bp-startup-sort=function --call-graph-ordering-file=/dev/null 2>&1 | FileCheck %s --check-prefix=IRPGO-ERR
4+
# IRPGO-ERR: --irpgo-profile is incompatible with --call-graph-ordering-file
5+
# RUN: not ld.lld -o /dev/null --bp-compression-sort=function --call-graph-ordering-file /dev/null 2>&1 | FileCheck %s --check-prefix=COMPRESSION-ERR
6+
# COMPRESSION-ERR: --bp-compression-sort is incompatible with --call-graph-ordering-file
7+
# RUN: not ld.lld -o /dev/null --bp-compression-sort=malformed 2>&1 | FileCheck %s --check-prefix=COMPRESSION-MALFORM
8+
# COMPRESSION-MALFORM: unknown value 'malformed' for --bp-compression-sort=
9+
# RUN: not ld.lld -o /dev/null --bp-startup-sort=function 2>&1 | FileCheck %s --check-prefix=STARTUP
10+
# STARTUP: --bp-startup-sort=function must be used with --irpgo-profile
11+
# RUN: not ld.lld -o /dev/null --bp-compression-sort-startup-functions 2>&1 | FileCheck %s --check-prefix=STARTUP-COMPRESSION
12+
# STARTUP-COMPRESSION: --bp-compression-sort-startup-functions must be used with --irpgo-profile
13+
114
// REQUIRES: x86,aarch64
215
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %ta.o
316
// RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tb.o

lld/test/MachO/bp-section-orderer-errs.s

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
# IRPGO-ERR: --irpgo-profile-sort is incompatible with --call-graph-profile-sort
44

55
# RUN: not %lld -o /dev/null --compression-sort=function --call-graph-profile-sort %s 2>&1 | FileCheck %s --check-prefix=COMPRESSION-ERR
6-
# COMPRESSION-ERR: --compression-sort= is incompatible with --call-graph-profile-sort
6+
# RUN: not %lld -o /dev/null --bp-compression-sort=function --call-graph-profile-sort %s 2>&1 | FileCheck %s --check-prefix=COMPRESSION-ERR
7+
# COMPRESSION-ERR: --bp-compression-sort= is incompatible with --call-graph-profile-sort
78

89
# RUN: not %lld -o /dev/null --compression-sort=malformed 2>&1 | FileCheck %s --check-prefix=COMPRESSION-MALFORM
9-
# COMPRESSION-MALFORM: unknown value `malformed` for --compression-sort=
10+
# RUN: not %lld -o /dev/null --bp-compression-sort=malformed 2>&1 | FileCheck %s --check-prefix=COMPRESSION-MALFORM
11+
# COMPRESSION-MALFORM: unknown value `malformed` for --bp-compression-sort=
1012

1113
# RUN: not %lld -o /dev/null --compression-sort-startup-functions 2>&1 | FileCheck %s --check-prefix=STARTUP
12-
# STARTUP: --compression-sort-startup-functions must be used with --irpgo-profile-sort
14+
# RUN: not %lld -o /dev/null --bp-compression-sort-startup-functions 2>&1 | FileCheck %s --check-prefix=STARTUP
15+
# STARTUP: --bp-compression-sort-startup-functions must be used with --irpgo-profile
16+
17+
# RUN: not %lld -o /dev/null --bp-startup-sort=function 2>&1 | FileCheck %s --check-prefix=STARTUP-COMPRESSION
18+
# STARTUP-COMPRESSION: --bp-startup-sort=function must be used with --irpgo-profile

lld/test/MachO/bp-section-orderer-stress.s

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
# RUN: %lld -arch arm64 -lSystem -e _main --icf=all -o - %t.o --irpgo-profile-sort=%t.profdata --compression-sort-startup-functions --compression-sort=both | llvm-nm --numeric-sort --format=just-symbols - > %t.order2.txt
1212
# RUN: diff %t.order1.txt %t.order2.txt
1313

14+
# RUN: %lld -arch arm64 -lSystem -e _main --icf=all -o - %t.o --irpgo-profile=%t.profdata --bp-startup-sort=function --bp-compression-sort-startup-functions --compression-sort=both | llvm-nm --numeric-sort --format=just-symbols - > %t.order1.txt
15+
# RUN: %lld -arch arm64 -lSystem -e _main --icf=all -o - %t.o --irpgo-profile=%t.profdata --bp-startup-sort=function --bp-compression-sort-startup-functions --compression-sort=both | llvm-nm --numeric-sort --format=just-symbols - > %t.order2.txt
16+
# RUN: diff %t.order1.txt %t.order2.txt
1417
import random
1518
import sys
1619

lld/test/MachO/bp-section-orderer.s

+10
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@
77
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --irpgo-profile-sort=%t/a.profdata --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=STARTUP
88
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --irpgo-profile-sort=%t/a.profdata --verbose-bp-section-orderer --icf=all --compression-sort=none 2>&1 | FileCheck %s --check-prefix=STARTUP
99

10+
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --irpgo-profile=%t/a.profdata --bp-startup-sort=function --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=STARTUP
11+
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --irpgo-profile=%t/a.profdata --bp-startup-sort=function --verbose-bp-section-orderer --icf=all --bp-compression-sort=none 2>&1 | FileCheck %s --check-prefix=STARTUP
1012
# STARTUP: Ordered 3 sections using balanced partitioning
1113

1214
# Check that orderfiles take precedence over BP
1315
# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o -order_file %t/a.orderfile --irpgo-profile-sort=%t/a.profdata | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
1416
# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o -order_file %t/a.orderfile --compression-sort=both | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
1517

18+
# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o -order_file %t/a.orderfile --irpgo-profile=%t/a.profdata --bp-startup-sort=function | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
19+
# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o -order_file %t/a.orderfile --bp-compression-sort=both | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
20+
1621
# Functions
1722
# ORDERFILE: A
1823
# ORDERFILE: F
@@ -36,6 +41,11 @@
3641
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --compression-sort=both 2>&1 | FileCheck %s --check-prefix=COMPRESSION-BOTH
3742
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --compression-sort=both --irpgo-profile-sort=%t/a.profdata 2>&1 | FileCheck %s --check-prefix=COMPRESSION-BOTH
3843

44+
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --bp-compression-sort=function 2>&1 | FileCheck %s --check-prefix=COMPRESSION-FUNC
45+
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --bp-compression-sort=data 2>&1 | FileCheck %s --check-prefix=COMPRESSION-DATA
46+
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --bp-compression-sort=both 2>&1 | FileCheck %s --check-prefix=COMPRESSION-BOTH
47+
# RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --bp-compression-sort=both --irpgo-profile=%t/a.profdata --bp-startup-sort=function 2>&1 | FileCheck %s --check-prefix=COMPRESSION-BOTH
48+
3949
# COMPRESSION-FUNC: Ordered 7 sections using balanced partitioning
4050
# COMPRESSION-DATA: Ordered 7 sections using balanced partitioning
4151
# COMPRESSION-BOTH: Ordered 14 sections using balanced partitioning

0 commit comments

Comments
 (0)