9#ifndef LLVM_CLANG_CODEGEN_BACKENDUTIL_H
10#define LLVM_CLANG_CODEGEN_BACKENDUTIL_H
13#include "llvm/IR/ModuleSummaryIndex.h"
18 template <
typename T>
class Expected;
19 template <
typename T>
class IntrusiveRefCntPtr;
21 class MemoryBufferRef;
28 class DiagnosticsEngine;
29 class HeaderSearchOptions;
48 std::unique_ptr<raw_pwrite_stream> OS);
51 llvm::MemoryBufferRef Buf);
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
CodeGenOptions - Track various options which control how the code is optimized and passed to the back...
Concrete class used by the front-end to report problems and issues.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Options for controlling the target.
void EmbedObject(llvm::Module *M, const CodeGenOptions &CGOpts, DiagnosticsEngine &Diags)
void EmitBackendOutput(DiagnosticsEngine &Diags, const HeaderSearchOptions &, const CodeGenOptions &CGOpts, const TargetOptions &TOpts, const LangOptions &LOpts, StringRef TDesc, llvm::Module *M, BackendAction Action, llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS, std::unique_ptr< raw_pwrite_stream > OS)
void EmbedBitcode(llvm::Module *M, const CodeGenOptions &CGOpts, llvm::MemoryBufferRef Buf)
@ Backend_EmitAssembly
Emit native assembly files.
@ Backend_EmitLL
Emit human-readable LLVM assembly.
@ Backend_EmitBC
Emit LLVM bitcode files.
@ Backend_EmitObj
Emit native object files.
@ Backend_EmitMCNull
Run CodeGen, but don't emit anything.
@ Backend_EmitNothing
Don't emit anything (benchmarking mode)
YAML serialization mapping.