Files
triton/include/codegen.h

34 lines
600 B
C
Raw Normal View History

#include <unordered_map>
2018-12-18 23:04:02 -05:00
#include "ast.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/IRBuilder.h"
namespace tdl
{
class context {
public:
context();
llvm::LLVMContext* handle();
private:
llvm::LLVMContext handle_;
};
class module {
public:
module(const std::string &name, context *ctx);
llvm::Module* handle();
llvm::IRBuilder<>& builder();
void value(const ast::node* node, llvm::Value* value);
llvm::Value *value(const ast::node *node);
2018-12-18 23:04:02 -05:00
private:
llvm::Module handle_;
llvm::IRBuilder<> builder_;
std::unordered_map<const ast::node*, llvm::Value*> values_;
2018-12-18 23:04:02 -05:00
};
}