#include "clang/CodeGen/ModuleBuilder.h"
#include "CGDebugInfo.h"
#include "CodeGenModule.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/Expr.h"
#include "clang/Basic/CodeGenOptions.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/TargetInfo.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/VirtualFileSystem.h"
#include <memory>
usingnamespaceclang;
usingnamespaceCodeGen;
namespace {
class CodeGeneratorImpl : public CodeGenerator { … };
}
void CodeGenerator::anchor() { … }
CodeGenModule &CodeGenerator::CGM() { … }
llvm::Module *CodeGenerator::GetModule() { … }
llvm::Module *CodeGenerator::ReleaseModule() { … }
CGDebugInfo *CodeGenerator::getCGDebugInfo() { … }
const Decl *CodeGenerator::GetDeclForMangledName(llvm::StringRef name) { … }
llvm::StringRef CodeGenerator::GetMangledName(GlobalDecl GD) { … }
llvm::Constant *CodeGenerator::GetAddrOfGlobal(GlobalDecl global,
bool isForDefinition) { … }
llvm::Module *CodeGenerator::StartModule(llvm::StringRef ModuleName,
llvm::LLVMContext &C) { … }
CodeGenerator *
clang::CreateLLVMCodeGen(DiagnosticsEngine &Diags, llvm::StringRef ModuleName,
IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,
const HeaderSearchOptions &HeaderSearchOpts,
const PreprocessorOptions &PreprocessorOpts,
const CodeGenOptions &CGO, llvm::LLVMContext &C,
CoverageSourceInfo *CoverageInfo) { … }