From a477d2ab572fe49ad65c80dcfdc64ad1bd133b74 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 13 Nov 2013 01:51:36 +0000 Subject: [PATCH] Give folks a reference to some material on the fundamental design pattern in use here. Addresses review feedback from Sean (thanks!) and others. llvm-svn: 194541 --- llvm/include/llvm/IR/PassManager.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h index 5800e35705ba..7e771204b034 100644 --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/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"