Move CompilerDriver.h here.
authorReid Spencer <rspencer@reidspencer.com>
Tue, 10 Aug 2004 16:29:18 +0000 (16:29 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 10 Aug 2004 16:29:18 +0000 (16:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15609 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvmc/CompilerDriver.h [new file with mode: 0644]
tools/llvmc/llvmc.cpp

diff --git a/tools/llvmc/CompilerDriver.h b/tools/llvmc/CompilerDriver.h
new file mode 100644 (file)
index 0000000..d56c9b5
--- /dev/null
@@ -0,0 +1,75 @@
+//===- CompilerDriver.h - Compiler Driver ---------------------------------===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by Reid Spencer and is distributed under the 
+// University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
+//
+// This file declares the CompilerDriver class which implements the bulk of the
+// LLVM Compiler Driver program (llvmc).
+//
+//===------------------------------------------------------------------------===
+
+namespace llvm {
+  /// This class provides the high level interface to the LLVM Compiler Driver.
+  /// The driver's purpose is to make it easier for compiler writers and users
+  /// of LLVM to utilize the compiler toolkits and LLVM toolset by learning only
+  /// the interface of one program (llvmc).
+  /// 
+  /// @see llvmc.cpp
+  /// @brief The interface to the LLVM Compiler Driver.
+  class CompilerDriver {
+    /// @name Types
+    /// @{
+    public:
+      typedef unsigned OptimizationLevel;
+      enum Phases {
+        PREPROCESSING, ///< Source language combining, filtering, substitution
+        TRANSLATION,   ///< Translate source -> LLVM bytecode/assembly
+        OPTIMIZATION,  ///< Optimize translation result 
+        LINKING,       ///< Link bytecode and native code
+        ASSEMBLY,      ///< Convert program to executable
+      };
+
+      enum OptimizationLevels {
+        OPT_NONE,
+        OPT_FAST_COMPILE,
+        OPT_SIMPLE,
+        OPT_AGGRESSIVE,
+        OPT_LINK_TIME,
+        OPT_AGGRESSIVE_LINK_TIME
+      };
+
+    /// @}
+    /// @name Constructors
+    /// @{
+    public:
+      CompilerDriver();
+
+    /// @}
+    /// @name Accessors
+    /// @{
+    public:
+      void execute(); ///< Execute the actions requested
+
+    /// @}
+    /// @name Mutators
+    /// @{
+    public:
+      /// @brief Set the optimization level for the compilation
+      void setOptimization( OptimizationLevel level );
+      void setFinalPhase( Phases phase );
+
+    /// @}
+    /// @name Data
+    /// @{
+    public:
+      Phases finalPhase;
+      OptimizationLevel optLevel;
+
+    /// @}
+
+  };
+}
index 989a416ad82af655c4dc18181cf2993e4ff76703..75d37fb4f993736eafa9792119cd3669e8e6771f 100644 (file)
@@ -14,7 +14,7 @@
 // 
 //===------------------------------------------------------------------------===
 
-#include "llvm/Driver/CompilerDriver.h"
+#include "CompilerDriver.h"
 #include "llvm/System/Signals.h"
 #include "Support/CommandLine.h"
 #include <iostream>