[PATCH] D35258: [Plugins] Add a slim plugin API to work together with the new PM

Philip Pfaffe via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 11 08:06:41 PDT 2017


philip.pfaffe created this revision.
Herald added a subscriber: mgorny.

Add a new plugin API. This closes the gap between pass registration and out-of-tree passes for the new PassManager.

Unlike with the existing API, interaction with a plugin is always initiated from the tools perspective. I.e., when a plugin is loaded by the PluginLoader, it resolves and calls a well-known symbol `llvmPluginGetInfo` to obtain details about the plugin. The fundamental motivation is to get rid of as many global constructors as possible.
The API exposed by the plugin info is kept intentionally minimal.


Repository:
  rL LLVM

https://reviews.llvm.org/D35258

Files:
  include/llvm/Support/Plugin.h
  include/llvm/Support/PluginLoader.h
  lib/Support/PluginLoader.cpp
  tools/opt/NewPMDriver.cpp
  unittests/Support/CMakeLists.txt
  unittests/Support/Plugins/CMakeLists.txt
  unittests/Support/Plugins/Plugin.cxx
  unittests/Support/Plugins/PluginsTest.cpp
  unittests/Support/Plugins/TestPlugin.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35258.106023.patch
Type: text/x-patch
Size: 11487 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170711/eb4e8ae1/attachment.bin>


More information about the llvm-commits mailing list