Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1490025

[PATCH 00/14] perf clang: Support compiling BPF script use builtin clang

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

Show all headers | View raw


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 | NextNext in thread | Find similar | Unroll thread


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