From cfe36cb02a4c2d99fd2ea0892e7b2668f2df2b8b Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 13 Nov 2013 01:51:36 +0000 Subject: 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 --- include/llvm/IR/PassManager.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/llvm') diff --git a/include/llvm/IR/PassManager.h b/include/llvm/IR/PassManager.h index 5800e35..7e77120 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" -- cgit v1.1