verwaest@chromium.org
c386538cd2
Use POLYMORPHIC for polymorphic Keyed(Load|Store)IC
...
Review URL: https://chromiumcodereview.appspot.com/11794045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 12:01:51 +00:00
mstarzinger@chromium.org
4e42a3295a
Clear optimized code map during incremental marking.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/11458011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-11 17:28:40 +00:00
mstarzinger@chromium.org
5dec1423a4
Implement progress bar for large objects.
...
This implements incremental scanning of large objects using a progress
bar in the page header of such objects. Note that this requires forward
white to gray transitions in the write barrier and hence is disabled by
default for now.
R=ulan@chromium.org ,hpayer@chromium.org
Review URL: https://codereview.chromium.org/11362246
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 17:57:40 +00:00
yangguo@chromium.org
3699616609
Rename SeqAsciiString
...
This is a straight rename:
NewRawAsciiString -> NewRawOneByteString
SeqAscii -> SeqOneByte
SeqOneByteString cannot yet take non-ascii data.
R=yangguo@chromium.org ,
BUG=
Review URL: https://chromiumcodereview.appspot.com/11411005
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-15 13:31:27 +00:00
danno@chromium.org
bd4e114b8e
Add code again to allow reclaiming old unexecuted functions.
...
When code objects in the heap for FUNCTIONs and OPTIMIZED_FUNCTIONs are marked by the GC, their prologue is patched with a call to a stub that removes the patch. This allows the collector to quickly identify code objects that haven't been executed since the last full collection (they are the ones that sill contain the patch). The functionality is currently disabled, but can be activated by specifying the "--age-code".
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/10837037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 12:18:11 +00:00
verwaest@chromium.org
72424b3987
Move DescriptorArray into the map.
...
Review URL: https://chromiumcodereview.appspot.com/11188031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-17 13:04:49 +00:00
ulan@chromium.org
c969afe137
Reland r12342: Flush monomorphic ICs on context disposal instead of context exit.
...
The crashes that caused r12342 to be reverted are fixed in r12563.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11092081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 13:49:12 +00:00
mstarzinger@chromium.org
bf85da7441
Move code flushing support into shared visitor.
...
This is a first step towards incremental code flushing. The code
flushing support is now shared between full and incremental marking.
The code flusher itself is not yet activated in incremental mode and
will require some additional adaptations.
R=ulan@chromium.org
BUG=v8:1609
Review URL: https://codereview.chromium.org/11028016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 12:41:29 +00:00
verwaest@chromium.org
ad6a21c0d0
Remove descriptors pointer.
...
Secondary changes:
- don't transfer ownership back on CNLT
- turned debugging checks back into ASSERT
Review URL: https://chromiumcodereview.appspot.com/11099064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 12:01:19 +00:00
verwaest@chromium.org
6e1bafc808
Revert "Allow partial scanning of large arrays in order to avoid"
...
This reverts commit r12619.
BUG=
Review URL: https://chromiumcodereview.appspot.com/11029023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-04 11:09:17 +00:00
erik.corry@gmail.com
aba09dcf2e
Allow partial scanning of large arrays in order to avoid
...
mark stack overflow. This is a reland of r12609 -
https://chromiumcodereview.appspot.com/10959011 - but
this time VisitPointers has been fixed (it used to assume
that the first slot was on the first page of a large object).
Review URL: https://chromiumcodereview.appspot.com/10996018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 12:17:24 +00:00
verwaest@chromium.org
8b57f2694b
Reduce space usage of simple transitions and descriptors holders.
...
Review URL: https://chromiumcodereview.appspot.com/10915260
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 09:54:10 +00:00
mstarzinger@chromium.org
3018b875b1
Integrate map marking into static marking visitor.
...
This refactors the specialized marking of map contents to be done by the
static marking visitor shared between full and incremental marking. This
also fixes an issue where some maps weren't accounted for in the object
stats tracker. But more importantly, it simplifies the code base.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/10919294
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 10:04:39 +00:00
ulan@chromium.org
7b1d13affc
Revert r12342 "Flush monomorphic ICs on context disposal instead of context exit." because of canary channel crashes.
...
BUG=144230
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10868068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 16:08:27 +00:00
ulan@chromium.org
27fb8c2cf6
Flush monomorphic ICs on context disposal instead of context exit.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10836189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 12:09:03 +00:00
rossberg@chromium.org
42552808ab
Rename "global context" to "native context",
...
in anticipation of the upcoming lexical global scope.
Mostly automatised as:
for FILE in `egrep -ril "global[ _]?context" src test/cctest`
do
echo $FILE
sed "s/Global context/Native context/g" <$FILE >$FILE.0
sed "s/global context/native context/g" <$FILE.0 >$FILE.1
sed "s/global_context/native_context/g" <$FILE.1 >$FILE.2
sed "s/GLOBAL_CONTEXT/NATIVE_CONTEXT/g" <$FILE.2 >$FILE.3
sed "s/GlobalContext/NativeContext/g" <$FILE.3 >$FILE
rm $FILE.[0-9]
done
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10832342
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 09:03:08 +00:00
mstarzinger@chromium.org
81a43b5607
Make incremental marking clear ICs.
...
This extends the existing clearing of ICs during GC to incremental
marking in order to prevent cross-context retention that would last
until the next non-incremental GC.
R=erik.corry@gmail.com
TEST=cctest/test-heap/IncrementalMarkingClears[Mono,Poly]morhpicIC
Review URL: https://chromiumcodereview.appspot.com/10831123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 10:35:48 +00:00
mstarzinger@chromium.org
d4e6aa33fc
Refactor marking to share embedded pointer visitor.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10826079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 11:29:48 +00:00
mstarzinger@chromium.org
7dd2e9777c
Make incremental marking clear type feedback cells.
...
This extends the existing clearing of type feedback cells during GC to
incremental marking in order to prevent cross-context retention that
would last until the next non-incremental GC.
R=erik.corry@gmail.com
TEST=cctest/test-heap/IncrementalMarkingClearsTypeFeedbackCells
Review URL: https://chromiumcodereview.appspot.com/10823082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 11:24:14 +00:00
mstarzinger@chromium.org
abede994d9
Refactor incremental marking to use static visitor.
...
This is a refactoring only change that switches incremental marking to
use a static object visitor. It also shares the common code between the
non-incremental and the incremental marker. Sharing that would require
semantical changes will be done later.
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10816007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 15:23:07 +00:00
vegorov@chromium.org
870eba4c65
Process weak references between optimized JSFunctions on scavenges.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10091027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:37:41 +00:00
jkummerow@chromium.org
0177aa62da
Count ICs that have type information.
...
Hidden behind --type-info-threshold=X flag, usage dependent on experimental profiler.
Review URL: https://chromiumcodereview.appspot.com/9403009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-20 12:57:23 +00:00
mstarzinger@chromium.org
8c12b6b743
Implement target cache for constructor calls.
...
This caches call targets of constructor calls by associating one element
caches with call sites. The type feedback oracle can use the recorded
valued to gather type information for monomorphic constructor call sites.
R=kmillikin@chromium.org ,vegorov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/8932004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 13:03:19 +00:00
kmillikin@chromium.org
e49d533b50
Reapply "Add a level of indirection to exception handler addresses."
...
Original commit message:
Add a level of indirection to exception handler addresses.
To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets. The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8538011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 13:48:14 +00:00
kmillikin@chromium.org
66ff8828a0
Revert "Add a level of indirection to exception handler addresses."
...
This reverts r9975. This change broke (at least) snapshots on x64.
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8540005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 13:13:35 +00:00
kmillikin@chromium.org
1635117db9
Add a level of indirection to exception handler addresses.
...
To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets. The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.
R=vegorov@chromium.org ,fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8462010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-11 12:51:42 +00:00
vegorov@chromium.org
ac36cb4504
Merge experimental/gc branch to the bleeding_edge.
...
Review URL: http://codereview.chromium.org/7945009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 18:36:47 +00:00