ddcc created this revision. ddcc added a reviewer: tejohnson. Herald added a project: clang.
Support forwarding `-fplugin` and `-fpass-plugin` arguments for loading pass plugins Depends on: D77704 <https://reviews.llvm.org/D77704> Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D77705 Files: clang/lib/Driver/ToolChains/CommonArgs.cpp Index: clang/lib/Driver/ToolChains/CommonArgs.cpp =================================================================== --- clang/lib/Driver/ToolChains/CommonArgs.cpp +++ clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -474,10 +474,18 @@ ProfileUseArg->getNumValues() == 0 ? "" : ProfileUseArg->getValue()); if (Path.empty() || llvm::sys::fs::is_directory(Path)) llvm::sys::path::append(Path, "default.profdata"); - CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=cs-profile-path=") + - Path)); + CmdArgs.push_back( + Args.MakeArgString(Twine("-plugin-opt=cs-profile-path=") + Path)); } + // Forward arguments for loading plugins (old/new PM) + for (const Arg *A : Args.filtered(options::OPT_fplugin_EQ)) + CmdArgs.push_back( + Args.MakeArgString(Twine("-plugin-opt=load=") + A->getValue())); + for (const Arg *A : Args.filtered(options::OPT_fpass_plugin_EQ)) + CmdArgs.push_back(Args.MakeArgString( + Twine("-plugin-opt=load-pass-plugin=") + A->getValue())); + // Need this flag to turn on new pass manager via Gold plugin. if (Args.hasFlag(options::OPT_fexperimental_new_pass_manager, options::OPT_fno_experimental_new_pass_manager,
Index: clang/lib/Driver/ToolChains/CommonArgs.cpp =================================================================== --- clang/lib/Driver/ToolChains/CommonArgs.cpp +++ clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -474,10 +474,18 @@ ProfileUseArg->getNumValues() == 0 ? "" : ProfileUseArg->getValue()); if (Path.empty() || llvm::sys::fs::is_directory(Path)) llvm::sys::path::append(Path, "default.profdata"); - CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=cs-profile-path=") + - Path)); + CmdArgs.push_back( + Args.MakeArgString(Twine("-plugin-opt=cs-profile-path=") + Path)); } + // Forward arguments for loading plugins (old/new PM) + for (const Arg *A : Args.filtered(options::OPT_fplugin_EQ)) + CmdArgs.push_back( + Args.MakeArgString(Twine("-plugin-opt=load=") + A->getValue())); + for (const Arg *A : Args.filtered(options::OPT_fpass_plugin_EQ)) + CmdArgs.push_back(Args.MakeArgString( + Twine("-plugin-opt=load-pass-plugin=") + A->getValue())); + // Need this flag to turn on new pass manager via Gold plugin. if (Args.hasFlag(options::OPT_fexperimental_new_pass_manager, options::OPT_fno_experimental_new_pass_manager,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits