[all-commits] [llvm/llvm-project] 7628e4: [xray] Add xray-ignore-loops option

Ian Levesque via All-commits all-commits at lists.llvm.org
Fri Jan 17 13:32:52 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 7628e474a5916ed8a43c015248443f4c03077509
      https://github.com/llvm/llvm-project/commit/7628e474a5916ed8a43c015248443f4c03077509
  Author: Ian Levesque <ianlevesque at fb.com>
  Date:   2020-01-17 (Fri, 17 Jan 2020)

  Changed paths:
    M llvm/lib/CodeGen/XRayInstrumentation.cpp
    A llvm/test/CodeGen/X86/xray-ignore-loop-detection.ll
    M llvm/test/CodeGen/X86/xray-loop-detection.ll

  Log Message:
  -----------
  [xray] Add xray-ignore-loops option

XRay allows tuning by minimum function size, but also always instruments
functions with loops in them.  If the minimum function size is set to a
large value the loop instrumention ends up causing most functions to be
instrumented anyway.  This adds a new flag, xray-ignore-loops, to disable
the loop detection logic.

Differential Revision: https://reviews.llvm.org/D72659


  Commit: 1d62be244108547558c6d42ddcf2e4a7f3c6dd03
      https://github.com/llvm/llvm-project/commit/1d62be244108547558c6d42ddcf2e4a7f3c6dd03
  Author: Ian Levesque <ianlevesque at fb.com>
  Date:   2020-01-17 (Fri, 17 Jan 2020)

  Changed paths:
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    A clang/test/CodeGen/xray-ignore-loops.cpp

  Log Message:
  -----------
  [clang][xray] Add -fxray-ignore-loops option

XRay allows tuning by minimum function size, but also always instruments
functions with loops in them. If the minimum function size is set to a
large value the loop instrumention ends up causing most functions to be
instrumented anyway. This adds a new flag, -fxray-ignore-loops, to disable
the loop detection logic.

Differential Revision: https://reviews.llvm.org/D72873


  Commit: 97ba483026cdcb31bbf6f85ea09d5638a55c651e
      https://github.com/llvm/llvm-project/commit/97ba483026cdcb31bbf6f85ea09d5638a55c651e
  Author: Ian Levesque <ianlevesque at fb.com>
  Date:   2020-01-17 (Fri, 17 Jan 2020)

  Changed paths:
    M clang/include/clang/Basic/XRayInstr.h
    M clang/include/clang/Driver/Options.td
    M clang/lib/Basic/XRayInstr.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Driver/XRayArgs.cpp
    M clang/test/CodeGen/xray-instrumentation-bundles.cpp
    M llvm/lib/CodeGen/XRayInstrumentation.cpp
    A llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-entry.ll
    A llvm/test/CodeGen/AArch64/xray-partial-instrumentation-skip-exit.ll
    A llvm/test/CodeGen/X86/xray-partial-instrumentation-skip-entry.ll
    A llvm/test/CodeGen/X86/xray-partial-instrumentation-skip-exit.ll

  Log Message:
  -----------
  [xray] Allow instrumenting only function entry and/or only function exit

Extend -fxray-instrumentation-bundle to split function-entry and
function-exit into two separate options, so that it is possible to
instrument only function entry or only function exit.  For use cases
that only care about one or the other this will save significant overhead
and code size.

Differential Revision: https://reviews.llvm.org/D72890


Compare: https://github.com/llvm/llvm-project/compare/22af2cbefc86...97ba483026cd


More information about the All-commits mailing list