llvm-project/llvm
Chandler Carruth 2a54094d40 [PM] Provide two templates for the two directionalities of analysis
manager proxies and use those rather than repeating their definition
four times.

There are real differences between the two directions: outer AMs are
const and don't need to have invalidation tracked. But every proxy in
a particular direction is identical except for the analysis manager type
and the IR unit they proxy into. This makes them prime candidates for
nice templates.

I've started introducing explicit template instantiation declarations
and definitions as well because we really shouldn't be emitting all this
everywhere. I'm going to go back and add the same for the other
templates like this in a follow-up patch.

I've left the analysis manager as an opaque type rather than using two
IR units and requiring it to be an AnalysisManager template
specialization. I think its important that users retain the ability to
provide their own custom analysis management layer and provided it has
the appropriate API everything should Just Work.

llvm-svn: 262127
2016-02-27 10:38:10 +00:00
..
bindings Kill LLVMAddTargetData 2016-02-16 00:22:02 +00:00
cmake [CMAKE] Update build on recent Haiku 2016-02-26 17:01:45 +00:00
docs [libFuzzer] don't emit callbacks to sanitizer run-time in -fsanitize-coverage=trace-pc mode; update libFuzzer doc for previous commit 2016-02-27 05:45:12 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include [PM] Provide two templates for the two directionalities of analysis 2016-02-27 10:38:10 +00:00
lib [PM] Provide two templates for the two directionalities of analysis 2016-02-27 10:38:10 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test [PM] Provide two templates for the two directionalities of analysis 2016-02-27 10:38:10 +00:00
tools [sancov] print_coverage_points command. 2016-02-27 02:21:44 +00:00
unittests [ConstantRange] Add umin/smin operators 2016-02-26 22:08:18 +00:00
utils Revert r262092, caught LLD tests 2016-02-26 23:44:10 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] Allow LLVM_TARGETS_TO_BUILD to accept "Native" 2016-02-26 21:21:40 +00:00
CODE_OWNERS.TXT [docs] Remove references to autotools build. 2016-01-30 01:10:15 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.