#ifndef GOOSE_CODEGEN_H
#define GOOSE_CODEGEN_H
#include "llvm/IR/Module.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Target/TargetMachine.h"
#include "cir/cir.h"
#include "sema/sema.h"
namespace goose::builtins
{
class Func;
class FuncType;
struct PointerType;
}
namespace goose::codegen
{
using namespace eir;
using namespace cir;
using namespace sema;
class Type;
extern llvm::LLVMContext& GetLLVMContext();
extern optional< string > Mangle( const Term& identity );
extern const codegen::Type* GetCodegenType( const eir::Value& t );
}
#include "llvmwrappers.h"
#include "address.h"
#include "stack.h"
#include "module.h"
#include "module.inl"
#endif