[all-commits] [llvm/llvm-project] 7b4175: [Instrumentor] Add Instrumentor pass (#138958)

Kevin Sala Penades via All-commits all-commits at lists.llvm.org
Wed May 6 06:06:36 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7b4175c17f16f6597e5c80a017ea2f8aa1b09fcb
      https://github.com/llvm/llvm-project/commit/7b4175c17f16f6597e5c80a017ea2f8aa1b09fcb
  Author: Kevin Sala Penades <salapenades1 at llnl.gov>
  Date:   2026-05-06 (Wed, 06 May 2026)

  Changed paths:
    A llvm/include/llvm/Transforms/IPO/Instrumentor.h
    A llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
    A llvm/include/llvm/Transforms/IPO/InstrumentorUtils.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/CMakeLists.txt
    A llvm/lib/Transforms/IPO/Instrumentor.cpp
    A llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
    A llvm/test/Instrumentation/Instrumentor/counters.ll
    A llvm/test/Instrumentation/Instrumentor/counters_config.json
    A llvm/test/Instrumentation/Instrumentor/custom_config.json
    A llvm/test/Instrumentation/Instrumentor/default_config.json
    A llvm/test/Instrumentation/Instrumentor/load_store.ll
    A llvm/test/Instrumentation/Instrumentor/load_store_args.ll
    A llvm/test/Instrumentation/Instrumentor/load_store_config.json
    A llvm/test/Instrumentation/Instrumentor/load_store_noreplace.ll
    A llvm/test/Instrumentation/Instrumentor/load_store_noreplace_config.json
    A llvm/test/Instrumentation/Instrumentor/read_config.ll
    A llvm/test/Instrumentation/Instrumentor/write_config.ll

  Log Message:
  -----------
  [Instrumentor] Add Instrumentor pass (#138958)

This commit adds the basic infrastructure for the Instrumentor pass, which
allows instrumenting code in a simple and customizable way. This commit
adds support for instrumenting load and store instructions. The
Instrumentor can be configured with a JSON file that describes what
should be instrumented, or can be used programmatically from another
pass.

The default JSON config file can be found in:
`llvm/test/Instrumentation/Instrumentor/default_config.json`. More
information about Instrumentor in the
[RFC](https://discourse.llvm.org/t/rfc-introducing-instrumentor-easily-customizable-code-instrumentation/86020).

This is only a squash commit of several contributions to the
Instrumentor. The authors and contributors of this pass are:

- Johannes Doerfert @jdoerfert
- Kevin Sala @kevinsala
- Ivan Radanov Ivanov @ivanradanov
- Ethan Luis McDonough @EthanLuisMcDonough

---------

Co-authored-by: Johannes Doerfert <johannes at jdoerfert.de>
Co-authored-by: Ivan Radanov Ivanov <ivanov.i.aa at m.titech.ac.jp>
Co-authored-by: Ethan Luis McDonough <ethanluismcdonough at gmail.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list