1//===--- BackendUtil.h - LLVM Backend Utilities -----------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_CLANG_CODEGEN_BACKEND_UTIL_H 11#define LLVM_CLANG_CODEGEN_BACKEND_UTIL_H 12 13#include "clang/Basic/LLVM.h" 14 15namespace llvm { 16 class Module; 17} 18 19namespace clang { 20 class DiagnosticsEngine; 21 class CodeGenOptions; 22 class TargetOptions; 23 class LangOptions; 24 25 enum BackendAction { 26 Backend_EmitAssembly, ///< Emit native assembly files 27 Backend_EmitBC, ///< Emit LLVM bitcode files 28 Backend_EmitLL, ///< Emit human-readable LLVM assembly 29 Backend_EmitNothing, ///< Don't emit anything (benchmarking mode) 30 Backend_EmitMCNull, ///< Run CodeGen, but don't emit anything 31 Backend_EmitObj ///< Emit native object files 32 }; 33 34 void EmitBackendOutput(DiagnosticsEngine &Diags, const CodeGenOptions &CGOpts, 35 const TargetOptions &TOpts, const LangOptions &LOpts, 36 llvm::Module *M, 37 BackendAction Action, raw_ostream *OS); 38} 39 40#endif 41