Let PassBuilder Expose PassInstrumentationCallbacks
authorJuneyoung Lee <aqjune@gmail.com>
Tue, 7 Jan 2020 05:04:32 +0000 (14:04 +0900)
committerJuneyoung Lee <aqjune@gmail.com>
Tue, 7 Jan 2020 05:10:37 +0000 (14:10 +0900)
commitff554a9179032167953595ca885a8fd12ac61036
treebc6523edd53c15e74bc3c41e338683199fd3be7b
parent3d87d0b925713effb108a387924562211ecbf2be
Let PassBuilder Expose PassInstrumentationCallbacks

Summary:
This is an effort to allowing external libraries register their own pass instrumentation during their llvmGetPassPluginInfo() calls.

By exposing this through the added getPIC(), now a pass writer can do something like this:

```
extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK
llvmGetPassPluginInfo() {
  return {
    ..,
    [](llvm::PassBuilder &PB) {
      PB.getPIC()->registerAfterPassCallback(move(f));
    }
  };
}
```

Reviewers: chandlerc, philip.pfaffe, fedor.sergeev

Reviewed By: fedor.sergeev

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71086
llvm/include/llvm/Passes/PassBuilder.h
llvm/unittests/IR/PassBuilderCallbacksTest.cpp