summaryrefslogtreecommitdiffstats
path: root/include/llvm/CompilerDriver
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CompilerDriver')
-rw-r--r--include/llvm/CompilerDriver/Common.td7
-rw-r--r--include/llvm/CompilerDriver/Main.inc2
-rw-r--r--include/llvm/CompilerDriver/Tool.h9
3 files changed, 15 insertions, 3 deletions
diff --git a/include/llvm/CompilerDriver/Common.td b/include/llvm/CompilerDriver/Common.td
index 9c3e861..479bd6e 100644
--- a/include/llvm/CompilerDriver/Common.td
+++ b/include/llvm/CompilerDriver/Common.td
@@ -20,9 +20,12 @@ class Tool<list<dag> l> {
def in_language;
def out_language;
def output_suffix;
-def cmd_line;
+def command;
+def out_file_option;
+def in_file_option;
def join;
def sink;
+def works_on_empty;
def actions;
// Possible option types.
@@ -46,6 +49,7 @@ def optional;
def really_hidden;
def required;
def comma_separated;
+def forward_not_split;
// The 'case' construct.
def case;
@@ -81,6 +85,7 @@ def forward_as;
def forward_value;
def forward_transformed_value;
def stop_compilation;
+def no_out_file;
def unpack_values;
def warning;
def error;
diff --git a/include/llvm/CompilerDriver/Main.inc b/include/llvm/CompilerDriver/Main.inc
index fc8b503..71bb8cb 100644
--- a/include/llvm/CompilerDriver/Main.inc
+++ b/include/llvm/CompilerDriver/Main.inc
@@ -10,7 +10,7 @@
// This tool provides a single point of access to the LLVM
// compilation tools. It has many options. To discover the options
// supported please refer to the tools' manual page or run the tool
-// with the --help option.
+// with the -help option.
//
// This file provides the default entry point for the driver executable.
//
diff --git a/include/llvm/CompilerDriver/Tool.h b/include/llvm/CompilerDriver/Tool.h
index a982e2d..85d1690 100644
--- a/include/llvm/CompilerDriver/Tool.h
+++ b/include/llvm/CompilerDriver/Tool.h
@@ -20,15 +20,19 @@
#include "llvm/ADT/StringSet.h"
#include "llvm/System/Path.h"
+#include <string>
#include <vector>
+#include <utility>
namespace llvmc {
class LanguageMap;
+ typedef std::vector<std::pair<unsigned, std::string> > ArgsVector;
typedef std::vector<llvm::sys::Path> PathVector;
+ typedef std::vector<std::string> StrVector;
typedef llvm::StringSet<> InputLanguagesSet;
- /// Tool - A class
+ /// Tool - Represents a single tool.
class Tool : public llvm::RefCountedBaseVPTR<Tool> {
public:
@@ -51,6 +55,7 @@ namespace llvmc {
virtual const char* OutputLanguage() const = 0;
virtual bool IsJoin() const = 0;
+ virtual bool WorksOnEmpty() const = 0;
protected:
/// OutFileName - Generate the output file name.
@@ -58,6 +63,8 @@ namespace llvmc {
const llvm::sys::Path& TempDir,
bool StopCompilation,
const char* OutputSuffix) const;
+
+ StrVector SortArgs(ArgsVector& Args) const;
};
/// JoinTool - A Tool that has an associated input file list.
OpenPOWER on IntegriCloud