1*03ce13f7SAndroid Build Coastguard Worker //===- subzero/src/IceCompiler.h - Compiler driver --------------*- C++ -*-===// 2*03ce13f7SAndroid Build Coastguard Worker // 3*03ce13f7SAndroid Build Coastguard Worker // The Subzero Code Generator 4*03ce13f7SAndroid Build Coastguard Worker // 5*03ce13f7SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*03ce13f7SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*03ce13f7SAndroid Build Coastguard Worker // 8*03ce13f7SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*03ce13f7SAndroid Build Coastguard Worker /// 10*03ce13f7SAndroid Build Coastguard Worker /// \file 11*03ce13f7SAndroid Build Coastguard Worker /// \brief Declares the driver for translating bitcode to native code. 12*03ce13f7SAndroid Build Coastguard Worker /// 13*03ce13f7SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 14*03ce13f7SAndroid Build Coastguard Worker 15*03ce13f7SAndroid Build Coastguard Worker #ifndef SUBZERO_SRC_ICECOMPILER_H 16*03ce13f7SAndroid Build Coastguard Worker #define SUBZERO_SRC_ICECOMPILER_H 17*03ce13f7SAndroid Build Coastguard Worker 18*03ce13f7SAndroid Build Coastguard Worker #include "IceDefs.h" 19*03ce13f7SAndroid Build Coastguard Worker 20*03ce13f7SAndroid Build Coastguard Worker namespace llvm { 21*03ce13f7SAndroid Build Coastguard Worker class DataStreamer; 22*03ce13f7SAndroid Build Coastguard Worker } 23*03ce13f7SAndroid Build Coastguard Worker 24*03ce13f7SAndroid Build Coastguard Worker namespace Ice { 25*03ce13f7SAndroid Build Coastguard Worker 26*03ce13f7SAndroid Build Coastguard Worker class ClFlags; 27*03ce13f7SAndroid Build Coastguard Worker 28*03ce13f7SAndroid Build Coastguard Worker /// A compiler driver. It may be called to handle a single compile request. 29*03ce13f7SAndroid Build Coastguard Worker class Compiler { 30*03ce13f7SAndroid Build Coastguard Worker Compiler(const Compiler &) = delete; 31*03ce13f7SAndroid Build Coastguard Worker Compiler &operator=(const Compiler &) = delete; 32*03ce13f7SAndroid Build Coastguard Worker 33*03ce13f7SAndroid Build Coastguard Worker public: 34*03ce13f7SAndroid Build Coastguard Worker Compiler() = default; 35*03ce13f7SAndroid Build Coastguard Worker 36*03ce13f7SAndroid Build Coastguard Worker /// Run the compiler with the given GlobalContext for compilation state. Upon 37*03ce13f7SAndroid Build Coastguard Worker /// error, the Context's error status will be set. 38*03ce13f7SAndroid Build Coastguard Worker void run(const ClFlags &ExtraFlags, GlobalContext &Ctx, 39*03ce13f7SAndroid Build Coastguard Worker std::unique_ptr<llvm::DataStreamer> &&InputStream); 40*03ce13f7SAndroid Build Coastguard Worker }; 41*03ce13f7SAndroid Build Coastguard Worker 42*03ce13f7SAndroid Build Coastguard Worker } // end of namespace Ice 43*03ce13f7SAndroid Build Coastguard Worker 44*03ce13f7SAndroid Build Coastguard Worker #endif // SUBZERO_SRC_ICECOMPILER_H 45