llvm-project/llvm/lib
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
..
Analysis [AliasSetTracker] Teach AliasSetTracker about MemSetInst 2016-02-17 02:01:50 +00:00
AsmParser Remove autoconf support 2016-01-26 21:29:08 +00:00
Bitcode Bitcode writer: fix a typo, using getName() instead of getSourceFileName() 2016-02-16 22:07:03 +00:00
CodeGen Revert "LiveIntervalAnalysis: Remove LiveVariables requirement" and LiveIntervalTest 2016-02-18 05:21:43 +00:00
DebugInfo [DebugInfoPDB] A few cleanups on PDB Variant class. 2016-02-17 22:46:33 +00:00
ExecutionEngine Fix build LLVM with -D LLVM_USE_INTEL_JITEVENTS:BOOL=ON on Windows 2016-02-16 23:52:18 +00:00
Fuzzer [libFuzzer] fix the libFuzzer bot 2016-02-18 02:02:40 +00:00
IR Add support for memory operations (load/store/gep) in C API echo test 2016-02-17 22:51:03 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LTO [LTO] Support Statistics 2016-02-16 21:41:51 +00:00
LibDriver Remove autoconf support 2016-01-26 21:29:08 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker Pass a std::unique_ptr to IRMover::move. 2016-02-16 18:50:12 +00:00
MC [codeview] Bail on a DBG_VALUE register operand with no register 2016-02-16 21:49:26 +00:00
Object Represent the dynamic table itself with a DynRegionInfo. 2016-02-17 16:48:00 +00:00
Option Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Passes [PM/AA] Teach the new pass manager to use pass-by-lambda for registering 2016-02-18 09:45:17 +00:00
ProfileData Add a profile summary class specific to instrumentation profiles. 2016-02-17 18:18:47 +00:00
Support Simplify users of StringRef::{l,r}trim (NFC) 2016-02-16 02:06:01 +00:00
TableGen Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Target [WebAssembly] Don't use setRequiresStructuredCFG(true). 2016-02-18 06:32:53 +00:00
Transforms [sanitizer-coverage] implement -fsanitize-coverage=trace-pc. This is similar to trace-bb, but has a different API. We already use the equivalent flag in GCC for Linux kernel fuzzing. We may be able to use this flag with AFL too 2016-02-17 21:34:43 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00