summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2013-11-13 01:51:36 +0000
committerChandler Carruth <chandlerc@gmail.com>2013-11-13 01:51:36 +0000
commitcfe36cb02a4c2d99fd2ea0892e7b2668f2df2b8b (patch)
tree2871e5939191e39561e1c7a4e542f0cc5c29dc3a /include
parentf348c9782c5c31309dfd2d04e3dbee21fefe07ff (diff)
downloadllvm-cfe36cb02a4c2d99fd2ea0892e7b2668f2df2b8b.tar.gz
llvm-cfe36cb02a4c2d99fd2ea0892e7b2668f2df2b8b.tar.bz2
llvm-cfe36cb02a4c2d99fd2ea0892e7b2668f2df2b8b.tar.xz
Give folks a reference to some material on the fundamental design
pattern in use here. Addresses review feedback from Sean (thanks!) and others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194541 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/IR/PassManager.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/llvm/IR/PassManager.h b/include/llvm/IR/PassManager.h
index 5800e35705..7e771204b0 100644
--- a/include/llvm/IR/PassManager.h
+++ b/include/llvm/IR/PassManager.h
@@ -25,6 +25,13 @@
/// a Function.
/// * ModulePassManager must be directly run, runs each pass over the Module.
///
+/// Note that the implementations of the pass managers use concept-based
+/// polymorphism as outlined in the "Value Semantics and Concept-based
+/// Polymorphism" talk (or its abbreviated sibling "Inheritance Is The Base
+/// Class of Evil") by Sean Parent:
+/// * http://github.com/sean-parent/sean-parent.github.com/wiki/Papers-and-Presentations
+/// * http://channel9.msdn.com/Events/GoingNative/2013/Inheritance-Is-The-Base-Class-of-Evil
+///
//===----------------------------------------------------------------------===//
#include "llvm/ADT/DenseMap.h"