| //===- subzero/src/IceCompiler.h - Compiler driver --------------*- C++ -*-===// |
| // |
| // The Subzero Code Generator |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| /// |
| /// \file |
| /// \brief Declares the driver for translating bitcode to native code. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SUBZERO_SRC_ICECOMPILER_H |
| #define SUBZERO_SRC_ICECOMPILER_H |
| |
| #include "IceDefs.h" |
| |
| namespace llvm { |
| class DataStreamer; |
| } |
| |
| namespace Ice { |
| |
| class ClFlags; |
| |
| /// A compiler driver. It may be called to handle a single compile request. |
| class Compiler { |
| Compiler(const Compiler &) = delete; |
| Compiler &operator=(const Compiler &) = delete; |
| |
| public: |
| Compiler() = default; |
| |
| /// Run the compiler with the given GlobalContext for compilation state. Upon |
| /// error, the Context's error status will be set. |
| void run(const ClFlags &ExtraFlags, GlobalContext &Ctx, |
| std::unique_ptr<llvm::DataStreamer> &&InputStream); |
| }; |
| |
| } // end of namespace Ice |
| |
| #endif // SUBZERO_SRC_ICECOMPILER_H |