Remove calls to ZONE().
Remove calls to ZONE().
1.1 --- a/jitcraft/BytecodeCompiler.cpp Tue Jul 03 00:21:37 2012 -0700
1.2 +++ b/jitcraft/BytecodeCompiler.cpp Tue Jul 03 00:25:29 2012 -0700
1.3 @@ -30,8 +30,9 @@
1.4
1.5 #define __ emitter_.
1.6
1.7 -BytecodeCompiler::BytecodeCompiler(ParseTree *tree, Module *module)
1.8 - : tree_(tree),
1.9 +BytecodeCompiler::BytecodeCompiler(Zone *zone, ParseTree *tree, Module *module)
1.10 + : zone_(zone),
1.11 + tree_(tree),
1.12 module_(module),
1.13 locals_(NULL),
1.14 scope_(NULL),
1.15 @@ -105,7 +106,7 @@
1.16 return;
1.17
1.18 if (Variable *var = scope->lifoSlot()) {
1.19 - locals_->set(ZONE(), var->slot(), var->type());
1.20 + locals_->set(zone_, var->slot(), var->type());
1.21 __ savelifo(var->slot());
1.22 }
1.23 }
1.24 @@ -545,12 +546,12 @@
1.25 BytecodeCompiler::visit(StringLiteral *node)
1.26 {
1.27 // :TODO: remove this Local
1.28 - Local<Type> type(ZONE(), node->type());
1.29 - Local<ArrayMap> map(ZONE(), BuildArrayMap(ZONE(), type));
1.30 + Local<Type> type(zone_, node->type());
1.31 + Local<ArrayMap> map(zone_, BuildArrayMap(zone_, type));
1.32 if (!map)
1.33 return;
1.34
1.35 - Local<Array> array(ZONE(), Array::New(ZONE(), map, node->string()->length(), Heap::Tenure_Old));
1.36 + Local<Array> array(zone_, Array::New(zone_, map, node->string()->length(), Heap::Tenure_Old));
1.37 if (!array)
1.38 return;
1.39
1.40 @@ -566,10 +567,10 @@
1.41 Variable *var = node->variable();
1.42 assert(var->location() == Variable::STACK);
1.43
1.44 - Local<Type> type(ZONE(), var->type());
1.45 + Local<Type> type(zone_, var->type());
1.46 if (type->isArray()) {
1.47 // :TODO: use Local
1.48 - Local<ArrayMap> map(ZONE(), BuildArrayMap(ZONE(), type));
1.49 + Local<ArrayMap> map(zone_, BuildArrayMap(zone_, type));
1.50 __ newarray_lifo(map);
1.51
1.52 if (node->initialization()) {
1.53 @@ -587,7 +588,7 @@
1.54 __ setlocal(var->slot());
1.55 __ pop();
1.56
1.57 - locals_->set(ZONE(), var->slot(), var->type());
1.58 + locals_->set(zone_, var->slot(), var->type());
1.59 }
1.60
1.61 void
1.62 @@ -654,13 +655,13 @@
1.63 void
1.64 BytecodeCompiler::visit(FunctionStatement *node)
1.65 {
1.66 - BytecodeCompiler child(tree_, module_);
1.67 + BytecodeCompiler child(zone_, tree_, module_);
1.68 Function *fun = child.compileFunction(module_, node);
1.69 if (!fun)
1.70 return;
1.71
1.72 assert(!module_->getFunction(node->fun()->slot()));
1.73 - module_->setFunction(ZONE(), node->fun()->slot(), fun);
1.74 + module_->setFunction(zone_, node->fun()->slot(), fun);
1.75 }
1.76
1.77 void
1.78 @@ -676,7 +677,7 @@
1.79 AutoEnterScope functionScope(this, node->scope());
1.80
1.81 // :TODO: use locals
1.82 - locals_ = FixedArray::New(ZONE(), node->scope()->maxContainedLocals(), Heap::Tenure_Old);
1.83 + locals_ = FixedArray::New(zone_, node->scope()->maxContainedLocals(), Heap::Tenure_Old);
1.84
1.85 node->body()->accept(this);
1.86
1.87 @@ -685,34 +686,34 @@
1.88 if (__ oom())
1.89 return NULL;
1.90
1.91 - ByteArray *bytes = ByteArray::New(ZONE(), __ length() * sizeof(bytecode), Heap::Tenure_Old);
1.92 + ByteArray *bytes = ByteArray::New(zone_, __ length() * sizeof(bytecode), Heap::Tenure_Old);
1.93 if (!bytes)
1.94 return NULL;
1.95 memcpy(bytes->raw(), __ buffer(), __ length());
1.96
1.97 unsigned nargs = node->scope()->numArguments();
1.98 - FixedArray *args = FixedArray::New(ZONE(), nargs, Heap::Tenure_Old);
1.99 + FixedArray *args = FixedArray::New(zone_, nargs, Heap::Tenure_Old);
1.100 if (!args)
1.101 return NULL;
1.102
1.103 for (size_t i = 0; i < node->scope()->numArguments(); i++)
1.104 - args->set(ZONE(), i, node->scope()->getArgument(i)->type());
1.105 + args->set(zone_, i, node->scope()->getArgument(i)->type());
1.106
1.107 for (size_t i = 0; i < node->scope()->maxContainedLocals(); i++)
1.108 assert(locals_->at(i));
1.109
1.110 - FixedArray *objects = FixedArray::New(ZONE(), __ objects()->size(), Heap::Tenure_Old);
1.111 + FixedArray *objects = FixedArray::New(zone_, __ objects()->size(), Heap::Tenure_Old);
1.112 if (!objects)
1.113 return NULL;
1.114
1.115 for (size_t i = 0; i < __ objects()->size(); i++)
1.116 - objects->set(ZONE(), i, __ objects()->at(i));
1.117 + objects->set(zone_, i, __ objects()->at(i));
1.118
1.119 - Code *code = Code::New(ZONE(), bytes, locals_, objects, __ maxStackDepth(), module_);
1.120 + Code *code = Code::New(zone_, bytes, locals_, objects, __ maxStackDepth(), module_);
1.121 if (!code)
1.122 return NULL;
1.123
1.124 - Function *fun = Function::New(ZONE(), module_, code, node->fun()->type(), node->pos());
1.125 + Function *fun = Function::New(zone_, module_, code, node->fun()->type(), node->pos());
1.126 if (!fun)
1.127 return NULL;
1.128
1.129 @@ -723,7 +724,7 @@
1.130 BytecodeCompiler::compile()
1.131 {
1.132 // :TODO: root
1.133 - module_ = Module::New(ZONE(), tree_->scope()->numFunctions());
1.134 + module_ = Module::New(zone_, tree_->scope()->numFunctions());
1.135 if (!module_)
1.136 return NULL;
1.137
2.1 --- a/jitcraft/BytecodeCompiler.h Tue Jul 03 00:21:37 2012 -0700
2.2 +++ b/jitcraft/BytecodeCompiler.h Tue Jul 03 00:25:29 2012 -0700
2.3 @@ -1,4 +1,5 @@
2.4 -/*
2.5 +/* vim: set ts=4 sw=4 tw=99 et:
2.6 + *
2.7 * Copyright (C) 2012 David Anderson
2.8 *
2.9 * This file is part of JITCraft.
2.10 @@ -28,6 +29,7 @@
2.11
2.12 class BytecodeCompiler : public AstVisitor
2.13 {
2.14 + Zone *zone_;
2.15 ParseTree *tree_;
2.16 BytecodeEmitter emitter_;
2.17 Module *module_;
2.18 @@ -99,7 +101,7 @@
2.19 void visitForALU(Type *needed, Expression *node);
2.20
2.21 public:
2.22 - BytecodeCompiler(ParseTree *tree, Module *module);
2.23 + BytecodeCompiler(Zone *zone, ParseTree *tree, Module *module);
2.24
2.25 Module *compile();
2.26
3.1 --- a/jitcraft/SemanticAnalysis.cpp Tue Jul 03 00:21:37 2012 -0700
3.2 +++ b/jitcraft/SemanticAnalysis.cpp Tue Jul 03 00:25:29 2012 -0700
3.3 @@ -1,4 +1,5 @@
3.4 -/*
3.5 +/* vim: set ts=4 sw=4 tw=99 et:
3.6 + *
3.7 * Copyright (C) 2012 David Anderson
3.8 *
3.9 * This file is part of JITCraft.
3.10 @@ -94,8 +95,9 @@
3.11 }
3.12 }
3.13
3.14 -SemanticAnalysis::SemanticAnalysis(CompileContext &cc, ParseTree *tree)
3.15 - : cc_(cc),
3.16 +SemanticAnalysis::SemanticAnalysis(Zone *zone, CompileContext &cc, ParseTree *tree)
3.17 + : zone_(zone),
3.18 + cc_(cc),
3.19 tree_(tree),
3.20 loopDepth_(0),
3.21 scope_(NULL)
3.22 @@ -390,7 +392,7 @@
3.23 SemanticAnalysis::visit(VariableDeclaration *node)
3.24 {
3.25 // :TODO: use locals
3.26 - Type *type = ZONE()->types()->getPrimitiveForTag(node->tag());
3.27 + Type *type = zone_->types()->getPrimitiveForTag(node->tag());
3.28 if (!type)
3.29 return;
3.30
3.31 @@ -478,7 +480,7 @@
3.32 size = init->elements();
3.33 }
3.34
3.35 - type = ZONE()->types()->unsafeArray(type, size);
3.36 + type = zone_->types()->unsafeArray(type, size);
3.37 if (!type)
3.38 return;
3.39
3.40 @@ -510,7 +512,7 @@
3.41 void
3.42 SemanticAnalysis::visit(IntegerLiteral *node)
3.43 {
3.44 - node->setType(ZONE()->types()->getPrimitive(PrimitiveType_Int32));
3.45 + node->setType(zone_->types()->getPrimitive(PrimitiveType_Int32));
3.46 }
3.47
3.48 void
3.49 @@ -524,7 +526,7 @@
3.50 {
3.51 // :TODO: use Local
3.52
3.53 - FixedArray *args = FixedArray::New(ZONE(), node->parameters()->size(), Heap::Tenure_Old);
3.54 + FixedArray *args = FixedArray::New(zone_, node->parameters()->size(), Heap::Tenure_Old);
3.55 if (!args)
3.56 return false;
3.57
3.58 @@ -532,7 +534,7 @@
3.59 for (size_t i = 0; i < node->parameters()->size(); i++) {
3.60 Parameter *parameter = node->parameters()->at(i);
3.61
3.62 - Type *type = ZONE()->types()->getPrimitiveForTag(parameter->tag());
3.63 + Type *type = zone_->types()->getPrimitiveForTag(parameter->tag());
3.64 if (!type)
3.65 return false;
3.66
3.67 @@ -542,20 +544,20 @@
3.68 }
3.69
3.70 if (parameter->reference()) {
3.71 - type = ZONE()->types()->getReference(type);
3.72 + type = zone_->types()->getReference(type);
3.73 if (!type)
3.74 return false;
3.75 }
3.76
3.77 - args->set(ZONE(), i, type);
3.78 + args->set(zone_, i, type);
3.79 parameter->variable()->setType(type);
3.80 }
3.81
3.82 - Type *returnType = ZONE()->types()->getPrimitive(PrimitiveType_Int32);
3.83 + Type *returnType = zone_->types()->getPrimitive(PrimitiveType_Int32);
3.84 if (!returnType)
3.85 return false;
3.86
3.87 - Type *funtype = ZONE()->types()->newFunction(returnType, args);
3.88 + Type *funtype = zone_->types()->newFunction(returnType, args);
3.89 if (!funtype)
3.90 return false;
3.91
3.92 @@ -755,7 +757,7 @@
3.93 return;
3.94 }
3.95
3.96 - Type *type = ZONE()->types()->getPrimitiveForTag(tag);
3.97 + Type *type = zone_->types()->getPrimitiveForTag(tag);
3.98 if (!type)
3.99 return;
3.100
3.101 @@ -783,11 +785,11 @@
3.102 void
3.103 SemanticAnalysis::visit(StringLiteral *node)
3.104 {
3.105 - Type *type = ZONE()->types()->getPrimitive(PrimitiveType_Char);
3.106 + Type *type = zone_->types()->getPrimitive(PrimitiveType_Char);
3.107 if (!type)
3.108 return;
3.109
3.110 - type = Type::NewArray(ZONE(), type, node->string()->length() + 1, true);
3.111 + type = Type::NewArray(zone_, type, node->string()->length() + 1, true);
3.112 if (!type)
3.113 return;
3.114
3.115 @@ -797,7 +799,7 @@
3.116 void
3.117 SemanticAnalysis::visit(FloatLiteral *node)
3.118 {
3.119 - Type *type = ZONE()->types()->getPrimitive(PrimitiveType_Float);
3.120 + Type *type = zone_->types()->getPrimitive(PrimitiveType_Float);
3.121 if (!type)
3.122 return;
3.123
4.1 --- a/jitcraft/SemanticAnalysis.h Tue Jul 03 00:21:37 2012 -0700
4.2 +++ b/jitcraft/SemanticAnalysis.h Tue Jul 03 00:25:29 2012 -0700
4.3 @@ -1,4 +1,5 @@
4.4 -/*
4.5 +/* vim: set ts=4 sw=4 tw=99 et:
4.6 + *
4.7 * Copyright (C) 2012 David Anderson
4.8 *
4.9 * This file is part of JITCraft.
4.10 @@ -25,6 +26,7 @@
4.11
4.12 class SemanticAnalysis : public AstVisitor
4.13 {
4.14 + Zone *zone_;
4.15 CompileContext &cc_;
4.16 ParseTree *tree_;
4.17 unsigned loopDepth_;
4.18 @@ -55,7 +57,7 @@
4.19 Type *visitAndApplyType(Expression *expression);
4.20
4.21 public:
4.22 - SemanticAnalysis(CompileContext &cc, ParseTree *tree);
4.23 + SemanticAnalysis(Zone *zone, CompileContext &cc, ParseTree *tree);
4.24 bool analyze();
4.25
4.26 public:
5.1 --- a/jitcraft/main.cpp Tue Jul 03 00:21:37 2012 -0700
5.2 +++ b/jitcraft/main.cpp Tue Jul 03 00:25:29 2012 -0700
5.3 @@ -71,13 +71,13 @@
5.4 if (!Scope::Bind(tree))
5.5 return false;
5.6
5.7 - SemanticAnalysis semantics(cc, tree);
5.8 + SemanticAnalysis semantics(ZONE(), cc, tree);
5.9 if (!semantics.analyze())
5.10 return false;
5.11
5.12 Scope::Allocate(tree);
5.13
5.14 - BytecodeCompiler compiler(tree, NULL);
5.15 + BytecodeCompiler compiler(ZONE(), tree, NULL);
5.16 Module *module = compiler.compile();
5.17 if (!module)
5.18 return false;