From 514a7e8b88b727bfa0871b5df0ba362fa6b529fb Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 13 Nov 2015 20:21:16 -0800 Subject: add descriptions to passes --- src/pass.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/pass.cpp') diff --git a/src/pass.cpp b/src/pass.cpp index 25e7a41e5..fe147891c 100644 --- a/src/pass.cpp +++ b/src/pass.cpp @@ -13,25 +13,29 @@ PassRegistry* PassRegistry::get() { return manager; } -void PassRegistry::registerPass(const char* name, Creator create) { - assert(passCreatorMap.find(name) == passCreatorMap.end()); - passCreatorMap[name] = create; +void PassRegistry::registerPass(const char* name, const char *description, Creator create) { + assert(passInfos.find(name) == passInfos.end()); + passInfos[name] = PassInfo(description, create); } Pass* PassRegistry::createPass(std::string name) { - Creator creator = passCreatorMap[name]; - if (!creator) return nullptr; - return creator(); + if (passInfos.find(name) == passInfos.end()) return nullptr; + return passInfos[name].create(); } std::vector PassRegistry::getRegisteredNames() { std::vector ret; - for (auto pair : passCreatorMap) { + for (auto pair : passInfos) { ret.push_back(pair.first); } return ret; } +std::string PassRegistry::getPassDescription(std::string name) { + assert(passInfos.find(name) != passInfos.end()); + return passInfos[name].description; +} + // PassRunner void PassRunner::add(std::string passName) { -- cgit v1.2.3