Author: nemanjai Date: Wed Mar 13 16:54:52 2019 New Revision: 356111 URL: http://llvm.org/viewvc/llvm-project?rev=356111&view=rev Log: Fix invocation of Gold plugin with LTO after r355331
The above commit breaks the usage of PGO and LTO when -fprofile-use is supplied without a path. This patch changes the usage of this argument to be inline with its use in addPGOAndCoverageFlags(). Differential revision: https://reviews.llvm.org/D59304 Added: cfe/trunk/test/Driver/cspgo-lto.c Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=356111&r1=356110&r2=356111&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Wed Mar 13 16:54:52 2019 @@ -464,8 +464,12 @@ void tools::AddGoldPlugin(const ToolChai CmdArgs.push_back( Args.MakeArgString("-plugin-opt=cs-profile-path=default_%m.profraw")); } else if (ProfileUseArg) { + SmallString<128> Path( + 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=") + - ProfileUseArg->getValue())); + Path)); } // Need this flag to turn on new pass manager via Gold plugin. Added: cfe/trunk/test/Driver/cspgo-lto.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cspgo-lto.c?rev=356111&view=auto ============================================================================== --- cfe/trunk/test/Driver/cspgo-lto.c (added) +++ cfe/trunk/test/Driver/cspgo-lto.c Wed Mar 13 16:54:52 2019 @@ -0,0 +1,6 @@ +// RUN: touch %t.o +// +// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto=thin \ +// RUN: -fprofile-use 2>&1 | FileCheck %s + +// CHECK: -plugin-opt=cs-profile-path=default.profdata _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits