Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===--- BackendUtil.h - LLVM Backend Utilities -----------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
 
9
#ifndef LLVM_CLANG_CODEGEN_BACKENDUTIL_H
10
#define LLVM_CLANG_CODEGEN_BACKENDUTIL_H
11
 
12
#include "clang/Basic/LLVM.h"
13
#include "llvm/IR/ModuleSummaryIndex.h"
14
#include <memory>
15
 
16
namespace llvm {
17
  class BitcodeModule;
18
  template <typename T> class Expected;
19
  class Module;
20
  class MemoryBufferRef;
21
}
22
 
23
namespace clang {
24
  class DiagnosticsEngine;
25
  class HeaderSearchOptions;
26
  class CodeGenOptions;
27
  class TargetOptions;
28
  class LangOptions;
29
 
30
  enum BackendAction {
31
    Backend_EmitAssembly,  ///< Emit native assembly files
32
    Backend_EmitBC,        ///< Emit LLVM bitcode files
33
    Backend_EmitLL,        ///< Emit human-readable LLVM assembly
34
    Backend_EmitNothing,   ///< Don't emit anything (benchmarking mode)
35
    Backend_EmitMCNull,    ///< Run CodeGen, but don't emit anything
36
    Backend_EmitObj        ///< Emit native object files
37
  };
38
 
39
  void EmitBackendOutput(DiagnosticsEngine &Diags, const HeaderSearchOptions &,
40
                         const CodeGenOptions &CGOpts,
41
                         const TargetOptions &TOpts, const LangOptions &LOpts,
42
                         StringRef TDesc, llvm::Module *M, BackendAction Action,
43
                         std::unique_ptr<raw_pwrite_stream> OS);
44
 
45
  void EmbedBitcode(llvm::Module *M, const CodeGenOptions &CGOpts,
46
                    llvm::MemoryBufferRef Buf);
47
 
48
  void EmbedObject(llvm::Module *M, const CodeGenOptions &CGOpts,
49
                   DiagnosticsEngine &Diags);
50
}
51
 
52
#endif