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
