From 20313c954edcfd8f391db707d2f3844eb6bb70f9 Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Mon, 17 Nov 2008 17:30:25 +0000 Subject: Support dependencies between plugins by priority-sorting. llvm-svn: 59449 --- llvm/tools/llvmc2/driver/Plugin.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/tools/llvmc2/driver/Plugin.cpp') diff --git a/llvm/tools/llvmc2/driver/Plugin.cpp b/llvm/tools/llvmc2/driver/Plugin.cpp index c9b3960c1e7..17c70869ea6 100644 --- a/llvm/tools/llvmc2/driver/Plugin.cpp +++ b/llvm/tools/llvmc2/driver/Plugin.cpp @@ -13,6 +13,7 @@ #include "llvm/CompilerDriver/Plugin.h" +#include #include namespace { @@ -27,6 +28,13 @@ namespace { static bool pluginListInitialized = false; typedef std::vector PluginList; static PluginList Plugins; + + struct ByPriority { + bool operator()(const llvmc::BasePlugin* lhs, + const llvmc::BasePlugin* rhs) { + return lhs->Priority() < rhs->Priority(); + } + }; } namespace llvmc { @@ -36,6 +44,7 @@ namespace llvmc { for (PluginRegistry::iterator B = PluginRegistry::begin(), E = PluginRegistry::end(); B != E; ++B) Plugins.push_back(B->instantiate()); + std::sort(Plugins.begin(), Plugins.end(), ByPriority()); } pluginListInitialized = true; } -- cgit v1.2.3