Files
clang-p2996/clang/CodeGen/CodeGenModule.h
Chris Lattner 23b7eb677d Finally bite the bullet and make the major change: split the clang namespace
out of the llvm namespace.  This makes the clang namespace be a sibling of
llvm instead of being a child.

The good thing about this is that it makes many things unambiguous.  The
bad things is that many things in the llvm namespace (notably data structures
like smallvector) now require an llvm:: qualifier.  IMO, libsystem and libsupport
should be split out of llvm into their own namespace in the future, which will fix
this issue.

llvm-svn: 39659
2007-06-15 23:05:46 +00:00

46 lines
1.2 KiB
C++

//===--- CodeGenModule.h - Per-Module state for LLVM CodeGen --------------===//
//
// 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 is the internal per-translation-unit state used for llvm translation.
//
//===----------------------------------------------------------------------===//
#ifndef CODEGEN_CODEGENMODULE_H
#define CODEGEN_CODEGENMODULE_H
namespace llvm {
class Module;
}
namespace clang {
class ASTContext;
class FunctionDecl;
namespace CodeGen {
/// CodeGenModule - This class organizes the cross-module state that is used
/// while generating LLVM code.
class CodeGenModule {
ASTContext &Context;
llvm::Module &TheModule;
public:
CodeGenModule(ASTContext &C, llvm::Module &M) : Context(C), TheModule(M) {}
ASTContext &getContext() const { return Context; }
llvm::Module &getModule() const { return TheModule; }
void EmitFunction(FunctionDecl *FD);
void PrintStats() {}
};
} // end namespace CodeGen
} // end namespace clang
#endif