//===--- CodeGen/ModuleBuilder.h - Build LLVM from ASTs ---------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file was developed by Chris Lattner and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines the ModuleBuilder interface. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_CODEGEN_MODULEBUILDER_H #define LLVM_CLANG_CODEGEN_MODULEBUILDER_H namespace llvm { class Module; } namespace clang { class ASTContext; class FunctionDecl; class FileVarDecl; namespace CodeGen { /// BuilderTy - This is an opaque type used to reference ModuleBuilder /// objects. typedef void BuilderTy; /// Init - Create an ModuleBuilder with the specified ASTContext. BuilderTy *Init(ASTContext &Context, llvm::Module &M); /// CodeGenFunction - Convert the AST node for a FunctionDecl into LLVM. /// void CodeGenFunction(BuilderTy *Builder, FunctionDecl *D); /// CodeGenGlobalVar - Emit the specified global variable to LLVM. void CodeGenGlobalVar(BuilderTy *Builder, FileVarDecl *D); /// PrintStats - Emit statistic information to stderr. /// void PrintStats(BuilderTy *Builder); /// Terminate - Gracefully shut down the builder. /// void Terminate(BuilderTy *Builder); } // end namespace CodeGen } // end namespace clang #endif