mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-30 04:36:09 +00:00

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
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
//===--- ModuleBuilder.cpp - Emit LLVM Code from ASTs ---------------------===//
|
|
//
|
|
// 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 builds an AST and converts it to LLVM Code.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "clang/CodeGen/ModuleBuilder.h"
|
|
#include "CodeGenModule.h"
|
|
using namespace clang;
|
|
|
|
|
|
/// Init - Create an ModuleBuilder with the specified ASTContext.
|
|
clang::CodeGen::BuilderTy *
|
|
clang::CodeGen::Init(ASTContext &Context, llvm::Module &M) {
|
|
return new CodeGenModule(Context, M);
|
|
}
|
|
|
|
void clang::CodeGen::Terminate(BuilderTy *B) {
|
|
delete static_cast<CodeGenModule*>(B);
|
|
}
|
|
|
|
/// CodeGenFunction - Convert the AST node for a FunctionDecl into LLVM.
|
|
///
|
|
void clang::CodeGen::CodeGenFunction(BuilderTy *B, FunctionDecl *D) {
|
|
static_cast<CodeGenModule*>(B)->EmitFunction(D);
|
|
}
|
|
|
|
/// PrintStats - Emit statistic information to stderr.
|
|
///
|
|
void clang::CodeGen::PrintStats(BuilderTy *B) {
|
|
static_cast<CodeGenModule*>(B)->PrintStats();
|
|
}
|