Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1490025
| From | Wang Nan <wangnan0@huawei.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 00/14] perf clang: Support compiling BPF script use builtin clang |
| Date | 2016-09-23 15:00 +0200 |
| Message-ID | <skyf7-3M0-9@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
This patch set is the first step to implement features I announced in LinuxCon NA 2016. See page 31 of: http://events.linuxfoundation.org/sites/events/files/slides/Performance%20Monitoring%20and%20Analysis%20Using%20perf%20and%20BPF_1.pdf This patch set links LLVM and Clang libraries to perf, so perf is able to compile BPF script to BPF object on the fly. To make this this patch set work, developer should first install llvm-devel and clang-devel (libLLVM*.a and libclang*.a, I compile LLVM from source to get them and I see ubuntu also ships them), then build perf with LIBCLANGLLVM=1, and provide a valid llvm-config through LLVM_CONFIG if necessary. The first 4 patches introduce initial building environment. 3 new feature detectors are added to ensure the dependency. Patch 5 - 10 support compile C file into IR then object, each step can be tested by newly introduced 'perf test clang'. Patch 11 - 14 fixes missing features like kbuild detection and some default macros. Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Alexei Starovoitov <ast@fb.com> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Wang Nan (14): tools build: Support compiling C++ source file perf tools: Add feature detection for g++ perf tools: Add feature detection for LLVM perf tools: Add feature detection for clang perf build: Add clang and llvm compile and linking support perf clang: Add builtin clang support ant test case perf clang: Use real file system for #include perf clang: Allow passing CFLAGS to builtin clang perf clang: Update test case to use real BPF script perf clang: Support compile IR to BPF object and add testcase perf tools: Extract kernel build option detector as utils perf bpf: Compile BPF script use builtin cflags support perf clang: Pass fill path compiler perf clang: Pass correct CFLAGS to builtin clang tools/build/Build.include | 1 + tools/build/Makefile.build | 7 + tools/build/Makefile.feature | 2 +- tools/build/feature/Makefile | 28 +++- tools/build/feature/test-clang.cpp | 21 +++ tools/build/feature/test-cxx.cpp | 15 +++ tools/build/feature/test-llvm.cpp | 8 ++ tools/perf/Makefile.config | 62 +++++++-- tools/perf/Makefile.perf | 23 +++- tools/perf/tests/Build | 1 + tools/perf/tests/builtin-test.c | 9 ++ tools/perf/tests/clang.c | 46 +++++++ tools/perf/tests/llvm-cxx.h | 13 ++ tools/perf/tests/make | 2 + tools/perf/tests/tests.h | 3 + tools/perf/util/Build | 2 + tools/perf/util/bpf-loader.c | 15 ++- tools/perf/util/c++/Build | 2 + tools/perf/util/c++/clang-c.h | 43 ++++++ tools/perf/util/c++/clang-test.cpp | 58 ++++++++ tools/perf/util/c++/clang.cpp | 268 +++++++++++++++++++++++++++++++++++++ tools/perf/util/c++/clang.h | 26 ++++ tools/perf/util/llvm-utils-cxx.h | 14 ++ tools/perf/util/llvm-utils.c | 44 +++++- tools/perf/util/llvm-utils.h | 5 +- tools/perf/util/util-cxx.h | 26 ++++ 26 files changed, 718 insertions(+), 26 deletions(-) create mode 100644 tools/build/feature/test-clang.cpp create mode 100644 tools/build/feature/test-cxx.cpp create mode 100644 tools/build/feature/test-llvm.cpp create mode 100644 tools/perf/tests/clang.c create mode 100644 tools/perf/tests/llvm-cxx.h create mode 100644 tools/perf/util/c++/Build create mode 100644 tools/perf/util/c++/clang-c.h create mode 100644 tools/perf/util/c++/clang-test.cpp create mode 100644 tools/perf/util/c++/clang.cpp create mode 100644 tools/perf/util/c++/clang.h create mode 100644 tools/perf/util/llvm-utils-cxx.h create mode 100644 tools/perf/util/util-cxx.h -- 1.8.3.4
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH 00/14] perf clang: Support compiling BPF script use builtin clang Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 03/14] perf tools: Add feature detection for LLVM Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 01/14] tools build: Support compiling C++ source file Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
Re: [PATCH 01/14] tools build: Support compiling C++ source file Jiri Olsa <jolsa@redhat.com> - 2016-09-28 16:40 +0200
[PATCH 04/14] perf tools: Add feature detection for clang Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 09/14] perf clang: Update test case to use real BPF script Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 08/14] perf clang: Allow passing CFLAGS to builtin clang Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 13/14] perf clang: Pass fill path compiler Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 12/14] perf bpf: Compile BPF script use builtin cflags support Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 02/14] perf tools: Add feature detection for g++ Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 11/14] perf tools: Extract kernel build option detector as utils Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 06/14] perf clang: Add builtin clang support ant test case Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 05/14] perf build: Add clang and llvm compile and linking support Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 07/14] perf clang: Use real file system for #include Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 14/14] perf clang: Pass correct CFLAGS to builtin clang Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
[PATCH 10/14] perf clang: Support compile IR to BPF object and add testcase Wang Nan <wangnan0@huawei.com> - 2016-09-23 15:00 +0200
Re: [PATCH 00/14] perf clang: Support compiling BPF script use builtin clang Alexei Starovoitov <alexei.starovoitov@gmail.com> - 2016-09-24 17:20 +0200
Re: [PATCH 00/14] perf clang: Support compiling BPF script use builtin clang "Wangnan (F)" <wangnan0@huawei.com> - 2016-09-26 04:00 +0200
Re: [PATCH 00/14] perf clang: Support compiling BPF script use builtin clang Alexei Starovoitov <alexei.starovoitov@gmail.com> - 2016-09-27 01:50 +0200
Re: [PATCH 00/14] perf clang: Support compiling BPF script use builtin clang "Wangnan (F)" <wangnan0@huawei.com> - 2016-09-27 04:00 +0200
csiph-web