Ok I think I just found the error... FACTORY->NewNumberFromInt(val) can allocate HeapNumbers if the val does not fit a Smi. I'll fix that and test again.
Alexandre On Fri, Nov 4, 2011 at 3:19 PM, Vyacheslav Egorov <[email protected]>wrote: > Yes, this should work. > > Are you sure that this is the place that allocates the number which later > fails the assertion? > > -- > Vyacheslav Egorov > > > On Fri, Nov 4, 2011 at 4:17 PM, Alexandre Rames <[email protected] > > wrote: > >> 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
