[all-commits] [llvm/llvm-project] 24ab9b: Generalize the pass registration mechanism used by...
serge-sans-paille via All-commits
all-commits at lists.llvm.org
Thu Jan 2 07:52:23 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 24ab9b537e61b3fe5e6a1019492ff6530d82a3ee
https://github.com/llvm/llvm-project/commit/24ab9b537e61b3fe5e6a1019492ff6530d82a3ee
Author: serge_sans_paille <sguelton at redhat.com>
Date: 2020-01-02 (Thu, 02 Jan 2020)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/tools/driver/CMakeLists.txt
M clang/tools/driver/cc1_main.cpp
M llvm/CMakeLists.txt
M llvm/cmake/modules/AddLLVM.cmake
M llvm/docs/WritingAnLLVMPass.rst
A llvm/examples/Bye/Bye.cpp
A llvm/examples/Bye/CMakeLists.txt
M llvm/examples/CMakeLists.txt
M llvm/include/llvm/Config/llvm-config.h.cmake
A llvm/test/Feature/load_extension.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-defaults.ll
M llvm/test/Other/opt-O0-pipeline.ll
M llvm/test/Other/opt-O2-pipeline.ll
M llvm/test/Other/opt-O3-pipeline.ll
M llvm/test/Other/opt-Os-pipeline.ll
M llvm/test/lit.cfg.py
M llvm/test/lit.site.cfg.py.in
M llvm/tools/CMakeLists.txt
M llvm/tools/bugpoint/CMakeLists.txt
M llvm/tools/bugpoint/bugpoint.cpp
M llvm/tools/opt/CMakeLists.txt
M llvm/tools/opt/NewPMDriver.cpp
M llvm/tools/opt/opt.cpp
M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
M polly/include/polly/RegisterPasses.h
M polly/lib/CMakeLists.txt
A polly/lib/Plugin/Polly.cpp
R polly/lib/Polly.cpp
M polly/lib/Support/RegisterPasses.cpp
M polly/test/Unit/lit.site.cfg.in
M polly/test/lit.site.cfg.in
M polly/test/update_check.py
Log Message:
-----------
Generalize the pass registration mechanism used by Polly to any third-party tool
There's quite a lot of references to Polly in the LLVM CMake codebase. However
the registration pattern used by Polly could be useful to other external
projects: thanks to that mechanism it would be possible to develop LLVM
extension without touching the LLVM code base.
This patch has two effects:
1. Remove all code specific to Polly in the llvm/clang codebase, replaicing it
with a generic mechanism
2. Provide a generic mechanism to register compiler extensions.
A compiler extension is similar to a pass plugin, with the notable difference
that the compiler extension can be configured to be built dynamically (like
plugins) or statically (like regular passes).
As a result, people willing to add extra passes to clang/opt can do it using a
separate code repo, but still have their pass be linked in clang/opt as built-in
passes.
Differential Revision: https://reviews.llvm.org/D61446
More information about the All-commits
mailing list