summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvmc2/CompilationGraph.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvmc2/CompilationGraph.h')
-rw-r--r--llvm/tools/llvmc2/CompilationGraph.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/tools/llvmc2/CompilationGraph.h b/llvm/tools/llvmc2/CompilationGraph.h
index 1158d8df1d8..57deef30a5c 100644
--- a/llvm/tools/llvmc2/CompilationGraph.h
+++ b/llvm/tools/llvmc2/CompilationGraph.h
@@ -20,17 +20,16 @@
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/iterator"
-//#include "llvm/ADT/SmallSet.h"
+#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/System/Path.h"
-#include <set>
#include <string>
namespace llvmc {
- typedef std::set<std::string> InputLanguagesSet;
+ typedef llvm::SmallSet<std::string, 5> InputLanguagesSet;
// An edge of the compilation graph.
class Edge : public llvm::RefCountedBaseVPTR<Edge> {
@@ -162,7 +161,7 @@ namespace llvmc {
// the given language name. Throws std::runtime_error.
const tools_vector_type& getToolsVector(const std::string& LangName) const;
- // Pass the input file through the toolchain.
+ // Pass the input file through the toolchain starting at StartNode.
void PassThroughGraph (const llvm::sys::Path& In, const Node* StartNode,
const InputLanguagesSet& InLangs,
const llvm::sys::Path& TempDir) const;
@@ -172,6 +171,10 @@ namespace llvmc {
const std::string* forceLanguage,
InputLanguagesSet& InLangs) const;
+ // Traverse the initial parts of the toolchains.
+ void BuildInitial(InputLanguagesSet& InLangs,
+ const llvm::sys::Path& TempDir);
+
// Sort the nodes in topological order.
void TopologicalSort(std::vector<const Node*>& Out);
// Call TopologicalSort and filter the resulting list to include
OpenPOWER on IntegriCloud