Re: [PATCH v3 10/30] perf clang: Add builtin clang support ant test case

From: Alexei Starovoitov
Date: Sat Nov 26 2016 - 12:17:34 EST


On Sat, Nov 26, 2016 at 07:03:34AM +0000, Wang Nan wrote:
> Add basic clang support in clang.cpp and test__clang() testcase. The
> first testcase checks if builtin clang is able to generate LLVM IR.
>
> tests/clang.c is a proxy. Real testcase resides in
> utils/c++/clang-test.cpp in c++ and exports C interface to perf test
> subsystem.
>
> Test result:
>
> $ perf test -v clang
> 51: Test builtin clang support :
> 51.1: Test builtin clang compile C source to IR :
> --- start ---
> test child forked, pid 13215
> test child finished with 0
> ---- end ----
> Test builtin clang support subtest 0: Ok
>
> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
...
> +static CompilerInvocation *
> +createCompilerInvocation(StringRef& Path, DiagnosticsEngine& Diags)
> +{
> + llvm::opt::ArgStringList CCArgs {
> + "-cc1",
> + "-triple", "bpf-pc-linux",
> + "-fsyntax-only",
> + "-ferror-limit", "19",
> + "-fmessage-length", "127",

why such limits?

> + "-O2",
> + "-nostdsysteminc",
> + "-nobuiltininc",
> + "-vectorize-loops",
> + "-vectorize-slp",

why above two flags are needed?

> + "-Wno-unused-value",
> + "-Wno-pointer-sign",

these two -Wno makes sense. please add the comment to explain the reasons.