llvm-project/llvm
Philip Pfaffe e8f3ae9da0 [Plugins] Add a slim plugin API to work together with the new PM
Summary:
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, it
resolves and calls a well-known symbol `llvmGetPassPluginInfo` 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.

Reviewers: chandlerc

Reviewed By: chandlerc

Subscribers: bollu, grosser, lksbhm, mgorny, llvm-commits

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

llvm-svn: 329273
2018-04-05 11:29:37 +00:00
..
bindings Fix Go IR test for changes in DIBuilder API 2018-04-02 21:45:35 +00:00
cmake [llvm-exegesis] Check for libpfm headers. 2018-04-05 07:35:28 +00:00
docs Add AMDPAL Code Conventions section to AMD docs 2018-04-04 13:02:09 +00:00
examples [ORC] Create a new SymbolStringPool by default in ExecutionSession constructor. 2018-04-02 20:57:56 +00:00
include [Plugins] Add a slim plugin API to work together with the new PM 2018-04-05 11:29:37 +00:00
lib [Plugins] Add a slim plugin API to work together with the new PM 2018-04-05 11:29:37 +00:00
projects
resources
runtimes
test [LoopInterchange] Add stats counter for number of interchanged loops. 2018-04-05 10:39:23 +00:00
tools [Plugins] Add a slim plugin API to work together with the new PM 2018-04-05 11:29:37 +00:00
unittests [Plugins] Add a slim plugin API to work together with the new PM 2018-04-05 11:29:37 +00:00
utils [UpdateTestChecks] Moved core functionality of add_asm_checks into add_checks 2018-04-05 10:48:38 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Assume existence of inttypes.h and stdint.h in DataTypes.h. 2018-04-02 13:22:26 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.