Bug 825714: Refactor JS allocation routines to enable allocation on parallel

threads, and move various ion fields into per-thread-data. r=billm

More detailed:
- A new routine JSObject::parExtendDenseArray() that permits parallel code to
  allocate a dense array on its own Allocator.
- Create an allocation path in the GC for loading a fresh arena as needed
  (ArenaLists::parallelAllocate()).
- Ensure that if GC is triggered during parallel execution, parallel execution
  is aborted and the request is deferred until parallel execution terminates.
- Updates to the ForkJoin/ThreadPool so that they create their own Allocators
  as well as other misc API changes.
- Moves some of the ion-related fields (e.g., |ionTop|) into perThreadData.
- Remove out-of-date malloc tracking fields.
This commit is contained in:
Nicholas D. Matsakis
2013-01-24 21:12:44 -08:00
parent b544816c1e
commit 26536744e0
46 changed files with 934 additions and 422 deletions

View File

@@ -45,8 +45,8 @@
#include "jsinferinlines.h"
#include "jsobjinlines.h"
#include "builtin/ParallelArray-inl.h"
#include "builtin/Iterator-inl.h"
#include "builtin/ParallelArray-inl.h"
#include "vm/Stack-inl.h"
#include "vm/String-inl.h"