Remove calls to ZONE().
authorDavid Anderson <dvander@alliedmods.net>
Tue Jul 03 00:25:29 2012 -0700 (2012-07-03)
changeset 308c8bf75114f7
parent 29 c0e27b4f0672
child 31 0f330cf7e09a
Remove calls to ZONE().
jitcraft/BytecodeCompiler.cpp
jitcraft/BytecodeCompiler.h
jitcraft/SemanticAnalysis.cpp
jitcraft/SemanticAnalysis.h
jitcraft/main.cpp
     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;