mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
2349136630
This will provide the analogous replacements for the PassManagerBuilder and other code long term. This code is extracted from the opt tool currently, and I plan to extend it as I build up support for using the new pass manager in Clang and other places. Mailing this out for review in part to let folks comment on the terrible names here. A brief word about why I chose the names I did. The library is called "Passes" to try and make it clear that it is a high-level utility and where *all* of the passes come together and are registered in a common library. I didn't want it to be *limited* to a registry though, the registry is just one component. The class is a "PassBuilder" but this name I'm less happy with. It doesn't build passes in any traditional sense and isn't a Builder-style API at all. The class is a PassRegisterer or PassAdder, but neither of those really make a lot of sense. This class is responsible for constructing passes for registry in an analysis manager or for population of a pass pipeline. If anyone has a better name, I would love to hear it. The other candidate I looked at was PassRegistrar, but that doesn't really fit either. There is no register of all the passes in use, and so I think continuing the "registry" analog outside of the registry of pass *names* and *types* is a mistake. The objects themselves are just objects with the new pass manager. Differential Revision: http://reviews.llvm.org/D8054 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231556 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
757 B
CMake
44 lines
757 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
${LLVM_TARGETS_TO_BUILD}
|
|
Analysis
|
|
BitWriter
|
|
CodeGen
|
|
Core
|
|
IPA
|
|
IPO
|
|
IRReader
|
|
InstCombine
|
|
Instrumentation
|
|
MC
|
|
ObjCARCOpts
|
|
ScalarOpts
|
|
Support
|
|
Target
|
|
TransformUtils
|
|
Vectorize
|
|
Passes
|
|
)
|
|
|
|
# Support plugins.
|
|
set(LLVM_NO_DEAD_STRIP 1)
|
|
|
|
add_llvm_tool(opt
|
|
AnalysisWrappers.cpp
|
|
BreakpointPrinter.cpp
|
|
GraphPrinters.cpp
|
|
NewPMDriver.cpp
|
|
PassPrinters.cpp
|
|
PrintSCC.cpp
|
|
opt.cpp
|
|
)
|
|
set_target_properties(opt PROPERTIES ENABLE_EXPORTS 1)
|
|
|
|
if(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
|
|
target_link_libraries(opt Polly)
|
|
if(POLLY_LINK_LIBS)
|
|
foreach(lib ${POLLY_LINK_LIBS})
|
|
target_link_libraries(opt ${lib})
|
|
endforeach(lib)
|
|
endif(POLLY_LINK_LIBS)
|
|
endif(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
|