1 //===--- CodeGen/ModuleBuilder.h - Build LLVM from ASTs ---------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines the ModuleBuilder interface.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_CLANG_CODEGEN_MODULEBUILDER_H
15 #define LLVM_CLANG_CODEGEN_MODULEBUILDER_H
17 #include "clang/AST/ASTConsumer.h"
30 class CodeGenerator : public ASTConsumer {
32 virtual llvm::Module* GetModule() = 0;
33 virtual llvm::Module* ReleaseModule() = 0;
36 /// CreateLLVMCodeGen - Create a CodeGenerator instance.
37 /// It is the responsibility of the caller to call delete on
38 /// the allocated CodeGenerator instance.
39 CodeGenerator *CreateLLVMCodeGen(Diagnostic &Diags,
40 const std::string &ModuleName,
41 const CodeGenOptions &CGO,
42 llvm::LLVMContext& C);