- 25 Jan, 2010 1 commit
-
-
antonm@chromium.org authored
This reduces chances of improper usage, see http://code.google.com/p/v8/issues/detail?id=586 for more details. BUG=586 Review URL: http://codereview.chromium.org/555072 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jan, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
As an afterthought, I realized that I put function objects moves reporting into a method that deals with only code object moves. I've looked up that function objects are allocated in old pointer space and new space, so I moved logging to the corresponding VM methods. BUG=553 Review URL: http://codereview.chromium.org/552089 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2010 2 commits
-
-
mikhail.naganov@gmail.com authored
The problem appeared due to a fact that stubs doesn't create a stack frame, reusing the stack frame of the caller function. When building stack traces, the current function is retrieved from PC, and its callees are retrieved by traversing the stack backwards. Thus, for stubs, the stub itself was discovered via PC, and then stub's caller's caller was retrieved from stack. To fix this problem, a pointer to JSFunction object is now captured from the topmost stack frame, and is saved into stack trace log record. Then a simple heuristics is applied whether a referred function should be added to decoded stack, or not, to avoid reporting the same function twice (from PC and from the pointer.) BUG=553 TEST=added to mjsunit/tools/tickprocessor Review URL: http://codereview.chromium.org/546089 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Always invoke HeapObjectIterator::has_next() before invoking HeapObjectIterator::next(). This is necessary as ::has_next() has an important side-effect of going to the next page when current page is exhausted. And to find if pointers are encodable use more precise data---top of map space, not a number of pages, as pages might stay in map space due to chunking. Review URL: http://codereview.chromium.org/552066 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jan, 2010 1 commit
-
-
antonm@chromium.org authored
drop below threshold. Review URL: http://codereview.chromium.org/509035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Dec, 2009 1 commit
-
-
antonm@chromium.org authored
Force mark sweep instead of compcation if size of map space is too big to allow forward pointers encoding. Review URL: http://codereview.chromium.org/507025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Dec, 2009 1 commit
-
-
sgjesse@chromium.org authored
On 32-bit the maps are now aligned on a 32-byte boundary in order to encode more maps during compacting GC. The actual size of a map on 32-bit is 28 bytes making this change waste 4 bytes per map. On 64-bit the encoding for compacting GC is now using more than 32-bits and the maps here are still pointer size aligned. The actual size of a map on 64-bit is 48 bytes and this change does not intruduce any waste. My choice of 16 bits for kMapPageIndexBits for 64-bit should give the same maximum number of pages (8K) for map space. As maps on 64-bit are larger than on 32-bit the total number of maps on 64-bit will be smaller than on 32-bit. We could consider raising this to 17 or 18. I moved the kPageSizeBits to globals.h as the calculation of the encoding really depended on this. There are still an #ifdef/#endif in objects.h and this constant could be moved to globaks.h as well, but I kept it together with the related constants. All the tests run in debug mode with additional options --gc-global --always-compact as well (except for a few tests on which also fails before this change when run with --gc-global --always-compact). BUG=http://code.google.com/p/v8/issues/detail?id=524 BUG=http://crbug.com/29428 TEST=test/mjsunit/regress/regress-524.js Review URL: http://codereview.chromium.org/504026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Dec, 2009 1 commit
-
-
vitalyr@chromium.org authored
Instead of weak handles external strings use a separate table. This table uses 5 times less memory than weak handles. Moreover, since we don't have to follow the weak handle callback protocol we can collect the strings faster and even on scavenge collections. Review URL: http://codereview.chromium.org/467037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Nov, 2009 1 commit
-
-
lrn@chromium.org authored
Set warning level to /W3 and change implicit conversions from size_t to int. Most "fixes" are simply manifesting the implicit casts or using a special strlen replacement that returns int. Review URL: http://codereview.chromium.org/390004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Nov, 2009 1 commit
-
-
sgjesse@chromium.org authored
As a first step to reduce the complexity of the string hierachy the sliced string type is removed. Whenever a sub-string is created it is allocated as a fresh flat string. Review URL: http://codereview.chromium.org/385004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2009 1 commit
-
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/355041 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Oct, 2009 1 commit
-
-
whesse@chromium.org authored
Fix X64 build in the case that debugger support is disabled. Change function name from IsCallInstruction to IsPatchedReturnSequence on all platforms. Review URL: http://codereview.chromium.org/267116 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Oct, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/200095 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Sep, 2009 1 commit
-
-
whesse@chromium.org authored
Stop "cooking" targets of jumps and calls in code objects. Do not convert jump and call targets to absolute pointers to Code objects during GC, heap verification, and serialization. Review URL: http://codereview.chromium.org/203070 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Sep, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/193111 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Sep, 2009 1 commit
-
-
kasperl@chromium.org authored
in old space. Before this change we would compute the fragmentation limit before the GC, but that means that we take all the garbage into account - and consequently we almost never hit the limit (because we have a lot of garbage). This change changes the policy to compact on the *next* GC if we determine that we have too much fragmentation after doing a GC. We'll do a GC if we've wasted more than 1MB and more than 15% of the old space size. This can be further improved by computing whether or not to compact during the marking phase. Review URL: http://codereview.chromium.org/202008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2009 1 commit
-
-
ager@chromium.org authored
initialized. Minor cleanups. Review URL: http://codereview.chromium.org/173465 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Aug, 2009 1 commit
-
-
feng@chromium.org authored
Android system provides a unique feature that it sends a notification to the browser in low memory condition, and the browser cleans up cache and frees resources. Forcing a GC in low memory condition can free DOM objects and also can shrink the old spaces. This patch addresses the last comment in http://codereview.chromium.org/173016/show Mads Ager 2009/08/19 17:24:23 I would prefer to not use the flags to signal that a compacting collection is requested. TBR = ager Review URL: http://codereview.chromium.org/173102 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jul, 2009 1 commit
-
-
kmillikin@chromium.org authored
space is similar to map space in that it has fixed-size objects. A common superclass for a space with fixed size objects is used for the map space and cell space. Allocate all cells in cell space. Handle it during all GCs. Modify the free-list node representation (so that the size is not at a fixed offset in all cells) to allow two-pointer free-list nodes. Clean up some stuff in the MC collector. Review URL: http://codereview.chromium.org/155211 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jul, 2009 1 commit
-
-
erik.corry@gmail.com authored
register on ARM. * Make some compile-time loops into run-time loops for compactness. Review URL: http://codereview.chromium.org/149324 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jun, 2009 1 commit
-
-
lrn@chromium.org authored
Remove references to Array:kHeaderSize. Review URL: http://codereview.chromium.org/150098 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Jun, 2009 1 commit
-
-
bak@chromium.org authored
This avoids back-to-back mark-sweep collections. Review URL: http://codereview.chromium.org/136001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 May, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
This issue was raised by Brett Wilson while reviewing my changelist for readability. Craig Silverstein (one of C++ SG maintainers) confirmed that we should declare one namespace per line. Our way of namespaces closing seems not violating style guides (there is no clear agreement on it), so I left it intact. Review URL: http://codereview.chromium.org/115756 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 May, 2009 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/113333 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 May, 2009 3 commits
-
-
kmillikin@chromium.org authored
TBR=ager@chromium.org git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
table debacle. Review URL: http://codereview.chromium.org/109012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
are not treated as roots, but all their subparts are. Review URL: http://codereview.chromium.org/108002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
Mark all objects reachable from the symbols except the symbols themselves as live (and reachable from strong roots). This ensures that if the symbol itself remains alive for any reason, and if it was a sliced string or cons string backed by an external string, then the external string will be strongly reachable and therefore not get a weak reference callback. Review URL: http://codereview.chromium.org/100344 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Apr, 2009 1 commit
-
-
ager@chromium.org authored
resource to NULL when removing it from the symbol table. This makes sure that the debugger can recognize the external string as being "deleted". Now, whenever an external resource is deleted, the resource pointer is set to NULL. This is really a workaround of a debugger problem. We need to make sure that the debugger only finds scripts in the heap that are actually live. Review URL: http://codereview.chromium.org/69029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Apr, 2009 2 commits
-
-
kasperl@chromium.org authored
GCs (not just mark-compacts) and make the mark-compact shortcutting of cons-strings identical to the scavenge version. Review URL: http://codereview.chromium.org/67125 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
symbol table verification after mark-compact GCs. Review URL: http://codereview.chromium.org/73029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Apr, 2009 1 commit
-
-
http://crbug.com/9746iposva@chromium.org authored
- Added special cutouts if a Vector has NULL data, which will now happen if an external string's resource has been deleted. - Added an verification phase before old gen GC to verify that all real entries in the SymbolTable are valid symbols. - Added test that verifies the correct behaviour of the workaround. Review URL: http://codereview.chromium.org/66011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2009 1 commit
-
-
lrn@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Feb, 2009 1 commit
-
-
iposva@chromium.org authored
- Pass the knowledge whether the old GC is compacting to the GC prologue and epilogue. This allows us to skip frame cooking and uncooking when doing a mark-sweep GC. - Add the ability for the code to refer to its code object by adding a handle to the code object in the MacroAssembler. Review URL: http://codereview.chromium.org/27133 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Feb, 2009 1 commit
-
-
iposva@chromium.org authored
create copies in the embedding code (aka WebKit V8 bindings) on every external use. Review URL: http://codereview.chromium.org/21117 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Feb, 2009 1 commit
-
-
sgjesse@chromium.org authored
Renamed functions related to patching of code with call instructions to match the naming conversion. BUG=1240753 Review URL: http://codereview.chromium.org/20176 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Feb, 2009 1 commit
-
-
sgjesse@chromium.org authored
Added check for logging enabled in two places where processing/allocation was performed only to be used only as parameters for the LOG macro. Looked through all the uses of the LOG macro and found only these two places where additional checking was required. Fixed a couple of comments looking through all the uses of the LOG macro. Review URL: http://codereview.chromium.org/20018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Jan, 2009 1 commit
-
-
kmillikin@chromium.org authored
verification code and updating outdated comments. Review URL: http://codereview.chromium.org/18502 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Dec, 2008 1 commit
-
-
deanm@chromium.org authored
The main goal was to improve O(n^2) behavior when there are many object groups. The old API required the grouping to be done on the v8 side, along with a linear search. The new interface requires the caller to do the grouping, passing V8 entire groups at a time. This removes the group id concept on the v8 side. - Changed AddObjectToGroup to AddObjectGroup. - Removed the group id concept from the V8 side. - Remove a static constructor while I'm here, lazily initialize the object groups list. - Cleaned up return by non-const references to return pointers. Review URL: http://codereview.chromium.org/13341 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Nov, 2008 1 commit
-
-
whessev8 authored
Moves the calls to tracer and UpdateLiveObjectCount inside the call to (inlined) SetMark. Removes global object counter. Review URL: http://codereview.chromium.org/8910 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-