diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp index 7550b0b9fa531..31630ba7d69de 100644 --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -1842,7 +1842,7 @@ bool link(ArrayRef argsArr, llvm::raw_ostream &stdoutOS, args.hasArg(OPT_irpgo_profile_sort_eq)) warn("--irpgo-profile-sort is deprecated. Please use " "--bp-startup-sort=function"); - if (const Arg *arg = args.getLastArg(OPT_irpgo_profile_eq)) + if (const Arg *arg = args.getLastArg(OPT_irpgo_profile)) config->irpgoProfilePath = arg->getValue(); if (const Arg *arg = args.getLastArg(OPT_irpgo_profile_sort)) { diff --git a/lld/MachO/Options.td b/lld/MachO/Options.td index 1d7f1d806cc7f..4b1e9e4391070 100644 --- a/lld/MachO/Options.td +++ b/lld/MachO/Options.td @@ -126,8 +126,10 @@ def no_call_graph_profile_sort : Flag<["--"], "no-call-graph-profile-sort">, def print_symbol_order_eq: Joined<["--"], "print-symbol-order=">, HelpText<"Print a symbol order specified by --call-graph-profile-sort into the specified file">, Group; +def irpgo_profile: Separate<["--"], "irpgo-profile">, Group; def irpgo_profile_eq: Joined<["--"], "irpgo-profile=">, - HelpText<"Read the IRPGO profile for use with -bp-startup-sort and other profile-guided optimizations">, + Alias(irpgo_profile)>, MetaVarName<"">, + HelpText<"Read the IRPGO for use with -bp-startup-sort and other profile-guided optimizations">, Group; def bp_startup_sort: Joined<["--"], "bp-startup-sort=">, MetaVarName<"[none,function]">, diff --git a/lld/test/MachO/bp-section-orderer-errs.s b/lld/test/MachO/bp-section-orderer-errs.s index 8d19e01c716ea..abeb25122a929 100644 --- a/lld/test/MachO/bp-section-orderer-errs.s +++ b/lld/test/MachO/bp-section-orderer-errs.s @@ -14,8 +14,9 @@ # RUN: not %lld -o /dev/null --bp-compression-sort-startup-functions 2>&1 | FileCheck %s --check-prefix=STARTUP # STARTUP: --bp-compression-sort-startup-functions must be used with --bp-startup-sort=function +# RUN: not %lld -o /dev/null --irpgo-profile %s --bp-startup-sort=function --call-graph-profile-sort 2>&1 | FileCheck %s --check-prefix=IRPGO-STARTUP # RUN: not %lld -o /dev/null --irpgo-profile=%s --bp-startup-sort=function --call-graph-profile-sort 2>&1 | FileCheck %s --check-prefix=IRPGO-STARTUP # IRPGO-STARTUP: --bp-startup-sort= is incompatible with --call-graph-profile-sort # RUN: not %lld -o /dev/null --bp-startup-sort=function 2>&1 | FileCheck %s --check-prefix=STARTUP-COMPRESSION -# STARTUP-COMPRESSION: --bp-startup-sort=function must be used with --irpgo-profile \ No newline at end of file +# STARTUP-COMPRESSION: --bp-startup-sort=function must be used with --irpgo-profile diff --git a/lld/test/MachO/bp-section-orderer.s b/lld/test/MachO/bp-section-orderer.s index e5d0e7137b30d..2eaff04bdc047 100644 --- a/lld/test/MachO/bp-section-orderer.s +++ b/lld/test/MachO/bp-section-orderer.s @@ -7,7 +7,7 @@ # RUN: %no-fatal-warnings-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 # RUN: %no-fatal-warnings-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 -# 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 +# 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 # 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 # STARTUP: Ordered 3 sections using balanced partitioning