summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2013-11-22 11:55:38 +0000
committerChandler Carruth <chandlerc@gmail.com>2013-11-22 11:55:38 +0000
commit71ec5a64ddb3a37ac3347f1f3b9e93e8bd22d1ef (patch)
treeab4700744a9b188cfabbb51985c63bad6c65d579 /llvm
parent3b82ed39483d992392e0db830d7e83e4484bb9e2 (diff)
downloadbcm5719-llvm-71ec5a64ddb3a37ac3347f1f3b9e93e8bd22d1ef.tar.gz
bcm5719-llvm-71ec5a64ddb3a37ac3347f1f3b9e93e8bd22d1ef.zip
[PM] Reverse the template arguments 'PassT' and 'AnalysisManagerT' in
several templates. The previous order didn't make any sense as it separated 'IRUnitT' and 'AnalysisManagerT', the types which are essentially paired and passed along together throughout the layers. llvm-svn: 195450
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/IR/PassManager.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h
index 39dbc98179d..3ec4f6c71fb 100644
--- a/llvm/include/llvm/IR/PassManager.h
+++ b/llvm/include/llvm/IR/PassManager.h
@@ -169,7 +169,7 @@ template <typename IRUnitT, typename AnalysisManagerT> struct PassConcept {
/// \brief SFINAE metafunction for computing whether \c PassT has a run method
/// accepting an \c AnalysisManagerT.
-template <typename IRUnitT, typename PassT, typename AnalysisManagerT>
+template <typename IRUnitT, typename AnalysisManagerT, typename PassT>
class PassRunAcceptsAnalysisManager {
typedef char SmallType;
struct BigType { char a, b; };
@@ -189,15 +189,15 @@ public:
/// Can be instantiated for any object which provides a \c run method accepting
/// an \c IRUnitT. It requires the pass to be a copyable object. When the
/// \c run method also accepts an \c AnalysisManagerT*, we pass it along.
-template <typename IRUnitT, typename PassT, typename AnalysisManagerT,
+template <typename IRUnitT, typename AnalysisManagerT, typename PassT,
bool AcceptsAnalysisManager = PassRunAcceptsAnalysisManager<
- IRUnitT, PassT, AnalysisManagerT>::Value>
+ IRUnitT, AnalysisManagerT, PassT>::Value>
struct PassModel;
/// \brief Specialization of \c PassModel for passes that accept an analyis
/// manager.
-template <typename IRUnitT, typename PassT, typename AnalysisManagerT>
-struct PassModel<IRUnitT, PassT, AnalysisManagerT,
+template <typename IRUnitT, typename AnalysisManagerT, typename PassT>
+struct PassModel<IRUnitT, AnalysisManagerT, PassT,
true> : PassConcept<IRUnitT, AnalysisManagerT> {
PassModel(PassT Pass) : Pass(llvm_move(Pass)) {}
virtual PassModel *clone() { return new PassModel(Pass); }
@@ -209,8 +209,8 @@ struct PassModel<IRUnitT, PassT, AnalysisManagerT,
/// \brief Specialization of \c PassModel for passes that accept an analyis
/// manager.
-template <typename IRUnitT, typename PassT, typename AnalysisManagerT>
-struct PassModel<IRUnitT, PassT, AnalysisManagerT,
+template <typename IRUnitT, typename AnalysisManagerT, typename PassT>
+struct PassModel<IRUnitT, AnalysisManagerT, PassT,
false> : PassConcept<IRUnitT, AnalysisManagerT> {
PassModel(PassT Pass) : Pass(llvm_move(Pass)) {}
virtual PassModel *clone() { return new PassModel(Pass); }
@@ -370,9 +370,9 @@ private:
typedef detail::PassConcept<Module *, ModuleAnalysisManager> ModulePassConcept;
template <typename PassT>
struct ModulePassModel
- : detail::PassModel<Module *, PassT, ModuleAnalysisManager> {
+ : detail::PassModel<Module *, ModuleAnalysisManager, PassT> {
ModulePassModel(PassT Pass)
- : detail::PassModel<Module *, PassT, ModuleAnalysisManager>(Pass) {}
+ : detail::PassModel<Module *, ModuleAnalysisManager, PassT>(Pass) {}
};
std::vector<polymorphic_ptr<ModulePassConcept> > Passes;
@@ -396,9 +396,9 @@ private:
FunctionPassConcept;
template <typename PassT>
struct FunctionPassModel
- : detail::PassModel<Function *, PassT, FunctionAnalysisManager> {
+ : detail::PassModel<Function *, FunctionAnalysisManager, PassT> {
FunctionPassModel(PassT Pass)
- : detail::PassModel<Function *, PassT, FunctionAnalysisManager>(Pass) {}
+ : detail::PassModel<Function *, FunctionAnalysisManager, PassT>(Pass) {}
};
std::vector<polymorphic_ptr<FunctionPassConcept> > Passes;
OpenPOWER on IntegriCloud