I am passing the TENURED flag to allocate in the old space:
HConstant(FACTORY->NewNumber(val, TENURED), \ + Representation::Double())Down
the call chain Heap::AllocateHeapNumber(double, PretenureFlag) uses the
OLD_DATA_SPACE. Isn't that the correct?

Alexandre

On Fri, Nov 4, 2011 at 3:03 PM, Vyacheslav Egorov <[email protected]>wrote:

> Code objects can't contain pointers to new space objects.
>
> So any object that we are going to embed into the code should either
> be pretenured (allocated in oldspace) or has to go through a
> cell-indirection. See LCodeGen::LoadHeapObject for an example of this.
>
> --
> Vyacheslav Egorov
>
>
> On Fri, Nov 4, 2011 at 3:52 PM,  <[email protected]> wrote:
> > Reviewers: danno,
> >
> > Message:
> > The patch passes all the tests in release mode, but fails the debug mode.
> > A few tests fail with following error.
> >
> > # Fatal error in src/ia32/assembler-ia32-inl.h, line 293
> > # CHECK(!(v8::internal::Isolate::Current()->heap())->InNewSpace(obj))
> failed
> >
> > It looks like something goes wrong with the GC.
> > With GDB I can see that upon failure obj->IsHeapNumber() is true.
> > Are the double values incorrectly allocated when new HConstants are
> added to
> > the
> > HGraph?
> >
> > Any pointers or ideas where to look at to fix that?
> >
> > Description:
> > Propagate and combine constants in Hydrogen
> >
> > BUG=none
> > TEST=none
> >
> > Please review this at http://codereview.chromium.org/8473002/
> >
> > SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
> >
> > Affected files:
> >  M     src/flag-definitions.h
> >  M     src/hydrogen-instructions.h
> >  M     src/hydrogen-instructions.cc
> >  M     src/hydrogen.cc
> >
> >
> > --
> > v8-dev mailing list
> > [email protected]
> > http://groups.google.com/group/v8-dev
> >
>
> --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev
>

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to