Prefill allocated objects with one word fillers if we do not use allocation folding.
BUG= R=mstarzinger@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/22903027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
7fea193609
commit
9f8f0c6d45
@ -5172,8 +5172,15 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> {
|
||||
? ALLOCATE_IN_OLD_POINTER_SPACE : ALLOCATE_IN_OLD_DATA_SPACE)
|
||||
: ALLOCATE_IN_NEW_SPACE;
|
||||
if (instance_type == FIXED_DOUBLE_ARRAY_TYPE) {
|
||||
flags_ = static_cast<HAllocate::Flags>(flags_ |
|
||||
ALLOCATE_DOUBLE_ALIGNED);
|
||||
flags_ = static_cast<HAllocate::Flags>(flags_ | ALLOCATE_DOUBLE_ALIGNED);
|
||||
}
|
||||
// We have to fill the allocated object with one word fillers if we do
|
||||
// not use allocation folding since some allocations may depend on each
|
||||
// other, i.e., have a pointer to each other. A GC in between these
|
||||
// allocations may leave such objects behind in a not completely initialized
|
||||
// state.
|
||||
if (!FLAG_use_gvn || !FLAG_use_allocation_folding) {
|
||||
flags_ = static_cast<HAllocate::Flags>(flags_ | PREFILL_WITH_FILLER);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user