diff --git a/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp b/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp index faf73a7c2f193..4b63971214f81 100644 --- a/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp +++ b/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp @@ -341,11 +341,16 @@ Expected> createLTO(const ArgList &Args) { Conf.CPU = Args.getLastArgValue(OPT_arch); Conf.Options = codegen::InitTargetOptionsFromCodeGenFlags(Triple); - Conf.RemarksFilename = RemarksFilename; - Conf.RemarksPasses = RemarksPasses; - Conf.RemarksWithHotness = RemarksWithHotness; + Conf.RemarksFilename = + Args.getLastArgValue(OPT_opt_remarks_filename, RemarksFilename); + Conf.RemarksPasses = + Args.getLastArgValue(OPT_opt_remarks_filter, RemarksPasses); + Conf.RemarksFormat = + Args.getLastArgValue(OPT_opt_remarks_format, RemarksFormat); + + Conf.RemarksWithHotness = + Args.hasArg(OPT_opt_remarks_with_hotness) || RemarksWithHotness; Conf.RemarksHotnessThreshold = RemarksHotnessThreshold; - Conf.RemarksFormat = RemarksFormat; Conf.MAttrs = llvm::codegen::getMAttrs(); std::optional CGOptLevelOrNone = diff --git a/clang/tools/clang-nvlink-wrapper/NVLinkOpts.td b/clang/tools/clang-nvlink-wrapper/NVLinkOpts.td index 6de1a25c14f8b..7af35bf5989ec 100644 --- a/clang/tools/clang-nvlink-wrapper/NVLinkOpts.td +++ b/clang/tools/clang-nvlink-wrapper/NVLinkOpts.td @@ -72,6 +72,16 @@ def : Joined<["--", "-"], "plugin-opt=emit-llvm">, Flags<[WrapperOnlyOption]>, Alias; def : Joined<["--", "-"], "plugin-opt=emit-asm">, Flags<[WrapperOnlyOption]>, Alias; + +def opt_remarks_filename : Joined<["--", "-"], "plugin-opt=opt-remarks-filename=">, + Flags<[WrapperOnlyOption]>, HelpText<"YAML output file for optimization remarks">; +def opt_remarks_format : Joined<["--", "-"], "plugin-opt=opt-remarks-format=">, + Flags<[WrapperOnlyOption]>, HelpText<"The format used for serializing remarks (default: YAML)">; +def opt_remarks_filter : Joined<["--", "-"], "plugin-opt=opt-remarks-filter=">, + Flags<[WrapperOnlyOption]>, HelpText<"Regex for the passes that need to be serialized to the output file">; +def opt_remarks_with_hotness : Flag<["--", "-"], "plugin-opt=opt-remarks-with-hotness">, + Flags<[WrapperOnlyOption]>, HelpText<"Include hotness information in the optimization remarks file">; + def plugin_opt : Joined<["--", "-"], "plugin-opt=">, Flags<[WrapperOnlyOption]>, HelpText<"Options passed to LLVM, not including the Clang invocation. Use " "'--plugin-opt=--help' for a list of options.">;