At least we got an empty Module now ...

This commit is contained in:
Markus Hauschild
2013-06-01 14:36:34 +02:00
parent b159da0f03
commit c4e0c2f298
3 changed files with 10 additions and 4 deletions

View File

@@ -3,12 +3,14 @@
#include "ASTVisitor.h" #include "ASTVisitor.h"
#include "llvm/IRBuilder.h" #include "llvm/IRBuilder.h"
#include "llvm/Module.h"
#include "llvm/PassManager.h"
#include <map> #include <map>
#include <string> #include <string>
class CodeGenVisitor : public ASTVisitor { class CodeGenVisitor : public ASTVisitor {
public: public:
CodeGenVisitor(); CodeGenVisitor(llvm::Module* module, llvm::FunctionPassManager* fpm);
virtual ~CodeGenVisitor(); virtual ~CodeGenVisitor();
virtual void visit(AssignmentExpression* e); virtual void visit(AssignmentExpression* e);
@@ -29,6 +31,8 @@ public:
virtual void visit(VariableDefinition* e); virtual void visit(VariableDefinition* e);
private: private:
llvm::IRBuilder<>* builder_; llvm::IRBuilder<>* builder_;
llvm::FunctionPassManager* fpm_;
llvm::Module* module_;
std::map<std::string, llvm::Value*> namedValues_; std::map<std::string, llvm::Value*> namedValues_;
}; };

View File

@@ -1,11 +1,13 @@
#include "AST/CodeGenVisitor.h" #include "AST/CodeGenVisitor.h"
CodeGenVisitor::CodeGenVisitor() { CodeGenVisitor::CodeGenVisitor(llvm::Module* module, llvm::FunctionPassManager *fpm) {
builder_ = new llvm::IRBuilder<>(llvm::getGlobalContext()); builder_ = new llvm::IRBuilder<>(llvm::getGlobalContext());
module_ = module;
fpm_ = fpm;
} }
CodeGenVisitor::~CodeGenVisitor() { CodeGenVisitor::~CodeGenVisitor() {
// delete builder_;
} }
void CodeGenVisitor::visit(AssignmentExpression* e) { void CodeGenVisitor::visit(AssignmentExpression* e) {

View File

@@ -105,7 +105,7 @@ int main() {
fpm->doInitialization(); fpm->doInitialization();
CodeGenVisitor* cv = new CodeGenVisitor(); CodeGenVisitor* cv = new CodeGenVisitor(module, fpm);
void* parser = scullyParserAlloc(malloc); void* parser = scullyParserAlloc(malloc);