Goose  Artifact [48328af257]

Artifact 48328af2579a9fd8af97a4cf5f0ebfaa29a7e3881d9fb0dd46c09ea128b84642:

  • File bs/codegen/codegen.h — part of check-in [1793989d05] at 2024-02-09 18:05:28 on branch trunk — Lowering: completely reworked all lowering to happen in the same two unified extension points upstream of all three CIR consumers (user: zlodo size: 763)

#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