[PM] Start sketching out the new module and function pass manager.
authorChandler Carruth <chandlerc@gmail.com>
Sat, 9 Nov 2013 13:09:08 +0000 (13:09 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 9 Nov 2013 13:09:08 +0000 (13:09 +0000)
commitea9988447c5bd59827baf1b45dd5b62b4065d553
tree90d6e01f21110d8bdd2a1e8e017a81971922b73c
parent49837ef8111fbeace7ae6379ca733c8f8fa94cfe
[PM] Start sketching out the new module and function pass manager.

This is still just a skeleton. I'm trying to pull together the
experimentation I've done into committable chunks, and this is the first
coherent one. Others will follow in hopefully short order that move this
more toward a useful initial implementation. I still expect the design
to continue evolving in small ways as I work through the different
requirements and features needed here though.

Keep in mind, all of this is off by default.

Currently, this mostly exercises the use of a polymorphic smart pointer
and templates to hide the polymorphism for the pass manager from the
pass implementation. The next step will be more significant, adding the
first framework of analysis support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194325 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/PassManager.h [new file with mode: 0644]
unittests/IR/CMakeLists.txt
unittests/IR/PassManagerTest.cpp [new file with mode: 0644]