Messages in this thread | | | From | Ian Rogers <> | Date | Mon, 11 Oct 2021 19:17:03 -0700 | Subject | Re: [PATCH 2/2] perf clang: Fixes for more recent LLVM/clang |
| |
On Mon, Oct 11, 2021 at 4:49 PM Fāng-ruì Sòng <maskray@google.com> wrote: > > On Mon, Oct 11, 2021 at 4:35 PM Ian Rogers <irogers@google.com> wrote: > > > > On Mon, Oct 11, 2021 at 4:24 PM Ian Rogers <irogers@google.com> wrote: > > > > > > The parameters to two functions and the location of a variable have > > > changed in more recent LLVM/clang releases. > > > > > > Tested with LLVM 6, 8, 9, 10 and 11. > > > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > > --- > > > tools/perf/util/c++/clang.cpp | 20 +++++++++++++------- > > > 1 file changed, 13 insertions(+), 7 deletions(-) > > > > > > diff --git a/tools/perf/util/c++/clang.cpp b/tools/perf/util/c++/clang.cpp > > > index c8885dfa3667..756200cb80b1 100644 > > > --- a/tools/perf/util/c++/clang.cpp > > > +++ b/tools/perf/util/c++/clang.cpp > > > @@ -44,7 +44,6 @@ createCompilerInvocation(llvm::opt::ArgStringList CFlags, StringRef& Path, > > > "-triple", "bpf-pc-linux", > > > "-fsyntax-only", > > > "-ferror-limit", "19", > > > - "-fmessage-length", "127", > > > > Sorry, missed from the commit message. I removed this flag to format > > output down to 127 columns as with clang 11 I see in perf test: > > > > 58: builtin clang support : > > 58.1: builtin clang compile C source to IR : > > --- start --- > > test child forked, pid 279307 > > error: unknown argument: '-fmessage-length' > > 1 error generated. > > test child finished with -1 > > > > The flag isn't necessary for correct operation. > > Right, I changed the -cc1 option from Separate-form -fmessage-length > to -fmessage-length= in 2020-03. > -ferror-limit can be deleted as well.
Done in v2 (please consider adding Acked-by, Reviewed-by, etc).
> > Thanks, > > Ian > > > > > "-O2", > > > "-nostdsysteminc", > > > "-nobuiltininc", > > > @@ -55,7 +54,11 @@ createCompilerInvocation(llvm::opt::ArgStringList CFlags, StringRef& Path, > > > "-x", "c"}; > > > > > > CCArgs.append(CFlags.begin(), CFlags.end()); > > > - CompilerInvocation *CI = tooling::newInvocation(&Diags, CCArgs); > > > + CompilerInvocation *CI = tooling::newInvocation(&Diags, CCArgs > > > +#if CLANG_VERSION_MAJOR >= 11 > > > + ,/*BinaryName=*/nullptr > > > +#endif > > > + ); > > > > > > FrontendOptions& Opts = CI->getFrontendOpts(); > > > Opts.Inputs.clear(); > > > @@ -151,13 +154,16 @@ getBPFObjectFromModule(llvm::Module *Module) > > > > > > legacy::PassManager PM; > > > bool NotAdded; > > > -#if CLANG_VERSION_MAJOR < 7 > > > - NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream, > > > - TargetMachine::CGFT_ObjectFile); > > > + NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream > > > +#if CLANG_VERSION_MAJOR >= 7 > > > + , /*DwoOut=*/nullptr > > > +#endif > > > +#if CLANG_VERSION_MAJOR < 10 > > > + , TargetMachine::CGFT_ObjectFile > > > #else > > > - NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream, nullptr, > > > - TargetMachine::CGFT_ObjectFile); > > > + , llvm::CGFT_ObjectFile > > > #endif > > > + ); > > > if (NotAdded) { > > > llvm::errs() << "TargetMachine can't emit a file of this type\n"; > > > return std::unique_ptr<llvm::SmallVectorImpl<char>>(nullptr); > > > -- > > > 2.33.0.882.g93a45727a2-goog > > > > > Related, does it make sense to drop CLANG_VERSION_MAJOR<7 support?
Arnaldo can likely best comment. Clang 6.0.1 was released on July 5th 2018 so it may still be in his build tests.
Thanks! Ian
| |