llvm-project/llvm/tools
Chandler Carruth edf5996b06 [PM/AA] Teach the new pass manager to use pass-by-lambda for registering
analysis passes, support pre-registering analyses, and use that to
implement parsing and pre-registering a custom alias analysis pipeline.

With this its possible to configure the particular alias analysis
pipeline used by the AAManager from the commandline of opt. I've updated
the test to show this effectively in use to build a pipeline including
basic-aa as part of it.

My big question for reviewers are around the APIs that are used to
expose this functionality. Are folks happy with pass-by-lambda to do
pass registration? Are folks happy with pre-registering analyses as
a way to inject customized instances of an analysis while still using
the registry for the general case?

Other thoughts of course welcome. The next round of patches will be to
add the rest of the alias analyses into the new pass manager and wire
them up here so that they can be used from opt. This will require
extending the (somewhate limited) functionality of AAManager w.r.t.
module passes.

Differential Revision: http://reviews.llvm.org/D17259

llvm-svn: 261197
2016-02-18 09:45:17 +00:00
..
bugpoint Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-02 18:20:45 +00:00
bugpoint-passes Remove autoconf support 2016-01-26 21:29:08 +00:00
dsymutil [dsymutil] Skip mach-o paired relocations 2016-02-01 04:43:14 +00:00
gold Pass a std::unique_ptr to IRMover::move. 2016-02-16 18:50:12 +00:00
llc [CMake] Produce an empty library for GlobalISel when not building it. 2016-02-11 19:18:27 +00:00
lli [Orc] Add lazy-JITting support for i386. 2016-02-10 01:02:33 +00:00
llvm-ar Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-as Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-as-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-bcanalyzer Restore "[ThinLTO] Use MD5 hash in function index." with fix 2016-02-10 21:55:02 +00:00
llvm-c-test Add upport for bitcast in the C API echo test 2016-02-17 23:55:59 +00:00
llvm-config llvm-config: replace assertions with a helpful error message 2016-02-12 18:43:10 +00:00
llvm-cov Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-cxxdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-diff Make more headers self-contained. 2016-01-27 18:03:37 +00:00
llvm-dis Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-dwarfdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-dwp llvm-dwp: Support for type units when merging DWPs into larger DWPs 2016-02-17 07:00:24 +00:00
llvm-extract Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-go Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-jitlistener Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-link Pass a std::unique_ptr to IRMover::move. 2016-02-16 18:50:12 +00:00
llvm-lto Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-mc Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
llvm-mc-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-mcmarkup Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-nm [llvm-nm] Simplify code logic. Rewrite a single function an inline. 2016-02-11 02:56:02 +00:00
llvm-objdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-pdbdump [llvm-pdbdump] Start to decode some streams 2016-02-12 22:27:44 +00:00
llvm-profdata Add a profile summary class specific to instrumentation profiles. 2016-02-17 18:18:47 +00:00
llvm-readobj [readobj] Remove uneeded braces in case statement. 2016-02-17 22:30:41 +00:00
llvm-rtdyld Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-shlib Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-size [llvm-size] Remove variable used only once. 2016-02-13 01:52:47 +00:00
llvm-split Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-stress Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-symbolizer Remove autoconf support 2016-01-26 21:29:08 +00:00
lto Add missing raw_ostream include 2016-01-29 00:03:34 +00:00
msbuild MSBuild integration: fix the loop in install.bat 2014-09-30 22:30:06 +00:00
obj2yaml Remove autoconf support 2016-01-26 21:29:08 +00:00
opt [PM/AA] Teach the new pass manager to use pass-by-lambda for registering 2016-02-18 09:45:17 +00:00
sancov [sancov] improved object files handling. 2016-02-12 00:29:07 +00:00
sanstats Remove autoconf support 2016-01-26 21:29:08 +00:00
verify-uselistorder Remove autoconf support 2016-01-26 21:29:08 +00:00
xcode-toolchain [CMake] [Darwin] Add support for generating Xcode-compatible toolchains that xcodebuild and xcrun can search 2015-10-15 20:09:01 +00:00
yaml2obj Remove autoconf support 2016-01-26 21:29:08 +00:00
CMakeLists.txt [CMake] don't build libLTO when LLVM_ENABLE_PIC is OFF 2016-02-12 19:02:39 +00:00
LLVMBuild.txt llvm-dwp: Initial layout 2015-12-01 00:48:34 +00:00