adamk@chromium.org
b26d28d964
This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept.
...
Observation in the normal case (Object.observe, default accept types, one observer) now allocates fewer objects and unobservation no longer needs to scan and splice an InternalArray -- making the combined speed of observe/unobserve about 200% faster.
This patch implements the following optimizations:
-objectInfo is initially created without any connected objects or arrays. The first observer is referenced directly by objectInfo, and when a second observer is added, changeObservers converts to a mapping of callbackPriority->observer, which allows for constant time registration/de-registration.
-observer.accept and objectInfo.performing are conceptually the same data-structure. This is now directly represented as an abstract "TypeMap" which can later be optimized to be a smi in common cases, (e.g: https://codereview.chromium.org/19269007/ ).
-objectInfo observers are only represented by an object with an accept typeMap if the set of accept types is non-default
R=rossberg@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=16343
Review URL: https://codereview.chromium.org/19541010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 19:21:30 +00:00
verwaest@chromium.org
50ae7dbe31
Ignore use requirement from never run code
...
BUG=
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23441046
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 15:25:13 +00:00
yangguo@chromium.org
96d85bb89b
Add better consistency check and error output to plot script.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23736004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 15:19:21 +00:00
mstarzinger@chromium.org
17d21a5119
Fix compilation with Clang after r16530.
...
TBR=titzer@chromium.org
Review URL: https://codereview.chromium.org/23526015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 15:06:36 +00:00
jkummerow@chromium.org
f5ec7c5835
Prepare push to trunk. Now working on version 3.21.11.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23955002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 13:55:11 +00:00
titzer@chromium.org
35490d82a9
Add OptimizedCodeList and DeoptimizedCodeList to native contexts. Both lists are weak. This makes it possible to find optimized code that is not referred to by any function, but still needs to be deoptimized. It obsoletes the weak deoptimizing code list in the deoptimizer data and generally simplifies the process of deoptimizing code.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23444029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 13:53:24 +00:00
mstarzinger@chromium.org
66b5a247bc
Disable escape analysis to investigate stability offline.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23898003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 13:46:12 +00:00
mstarzinger@chromium.org
eab9665f34
Remove obsolete V8::IdleNotification dispatch.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/23691035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 13:37:39 +00:00
yangguo@chromium.org
070e3b0af4
Introduce concurrent on-stack replacement.
...
Currently disabled behind --concurrent-osr.
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23710014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 12:55:59 +00:00
yurys@chromium.org
45d6ef065e
Use 1ms CPU profiler sampling interval on Android by default
...
This CL changes default sampling interval on Android from 5ms to 1ms so that it is the same on all platforms. All perf tests on modern devices (Galaxy Nexus, Nexus 7) show that 1ms should be long enough for profiling on mobile devices.
BUG=None
R=bmeurer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/23927005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 12:38:17 +00:00
yurys@chromium.org
c034bb48b5
Allow configuring CPU profiler sampling interval using public API
...
The only way to change it at the moment is using a command line flag. We are going to add a setting to Chrome DevTools which would allow chaning default interval and that requires proper v8 API.
BUG=v8:2814
R=bmeurer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/23902004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 11:55:28 +00:00
bmeurer@chromium.org
9bc6052790
Build fix for Win64 after r16521.
...
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23850003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 11:33:51 +00:00
dcarney@chromium.org
7dcc12abf6
build fix for 16520
...
TBR=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23874010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 11:09:55 +00:00
bmeurer@chromium.org
1973774491
Fix race conditions in cctest/test-debug.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23797003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 10:47:09 +00:00
bmeurer@chromium.org
8f8222e9ad
Cleanup Socket class and remove it from the platform files.
...
Move the Socket class to dedicated platform/socket.{cc,h} files.
Cleaned up the implementation to allow for more code sharing.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23484014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 10:41:51 +00:00
dcarney@chromium.org
2b7efe05ae
remove Isolate::Current from most files starting with 'j' through 'o'
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23578012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 10:34:42 +00:00
verwaest@chromium.org
924463984c
Use ast_id (id) instead of return_id (LoadId) in simulates for load instructions.
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23889006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 09:19:17 +00:00
haitao.feng@intel.com
a6f162de91
Add cvtsd2ss into X64 disassembler
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23894002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 08:42:43 +00:00
dcarney@chromium.org
913b244bb5
invert Eternal::IsEmpty logic
...
R=svenpanne@chromium.org
BUG=v8:2870
Review URL: https://codereview.chromium.org/23914004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 08:19:14 +00:00
verwaest@chromium.org
6f8713e25b
Put store of postcrement in EffectContext.
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23514034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 08:16:54 +00:00
dcarney@chromium.org
615c34869c
Push SetAccessor to Template
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23182003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 07:45:36 +00:00
svenpanne@chromium.org
75763061e7
Cleaned up deopt reason messages a bit.
...
They are now a bit more consistent, and they don't mention the name of a
flag, which will go out of sync some day. ;-)
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/23845003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 07:27:10 +00:00
dcarney@chromium.org
3e76d8b870
remove Isolate::Current from most files starting with 'o' through 'r'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23757017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 07:05:11 +00:00
rossberg@chromium.org
314fc254ad
Initialize CompareOperation::combined_type to avoid crashes.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23811003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 15:17:51 +00:00
verwaest@chromium.org
26dc6c6e19
Support setter inlining in CountOperation.
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23757018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 14:10:25 +00:00
verwaest@chromium.org
80dda72f4b
Unify all 3 implementations of load handling.
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23496031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 14:07:38 +00:00
verwaest@chromium.org
56d554588f
Add premonomorphic store ICs
...
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23442016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 13:33:54 +00:00
dcarney@chromium.org
c1a35b4e24
build fix for 16507
...
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23892002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 12:33:52 +00:00
dcarney@chromium.org
bb01557abf
remove Isolate::Current from most files starting with 's' through 'v'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23549011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:54:08 +00:00
dcarney@chromium.org
4f5ef30280
remove Isolate::Current from most files starting with 'f' through 'i'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23886002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:47:16 +00:00
palfia@homejinni.com
0e29b3d237
MIPS: Improve TruncateNumberToI implementation after DoubleToIStub usage (r16461).
...
Using TruncateHeapNumberToI here simplifies the code and we get rid of ConvertToInt32 and EmitOutOfInt32RangeTruncate macro assembler instructions.
BUG=
Review URL: https://codereview.chromium.org/23444033
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:39:19 +00:00
bmeurer@chromium.org
d9052d41f3
We can't use pthread_condattr_setclock() in NaCl.
...
TEST=cctest/test-condition-variable
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/23494020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:38:39 +00:00
bmeurer@chromium.org
3f021e88a1
Improve cctest/test-condition-variable.
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/23604027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:27:02 +00:00
mstarzinger@chromium.org
b200ba4ab4
Prepare push to trunk. Now working on version 3.21.10.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23530013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:24:43 +00:00
mstarzinger@chromium.org
037ef1132f
Temporarily skip escape analysis when compiling for OSR.
...
R=jkummerow@chromium.org
TEST=mjsunit/compiler/escape-analysis --stress-compaction
Review URL: https://codereview.chromium.org/23480028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 10:58:07 +00:00
palfia@homejinni.com
1749bb620f
MIPS: thread isolate for files starting with 'b' and 'c'.
...
Port r16489 (bde75fe)
BUG=
Review URL: https://codereview.chromium.org/23814003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 10:11:10 +00:00
mstarzinger@chromium.org
fdb5b9241c
Make sure the fatal OOM handler never returns.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23731004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 09:45:55 +00:00
mstarzinger@chromium.org
cd44f0dac7
Move global V8::IsDead() into the Isolate.
...
R=yangguo@chromium.org
BUG=v8:2744
Review URL: https://codereview.chromium.org/23549010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 09:35:26 +00:00
verwaest@chromium.org
c41cb4be44
Fix interceptor handling in crankshaft.
...
R=dcarney@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23614011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 08:55:52 +00:00
mstarzinger@chromium.org
d1c0d6b3cd
Move global V8::UseCrankshaft() into the Isolate.
...
R=jkummerow@chromium.org
BUG=v8:2744
Review URL: https://codereview.chromium.org/23441029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 08:49:44 +00:00
svenpanne@chromium.org
625874a48c
Deprecate Persistent functions which were marked to be deprecated.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23707009
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 07:34:34 +00:00
bmeurer@chromium.org
281de965a4
Import ConditionVariable class.
...
Condition variables are synchronization primitives that can be used
to block one or more threads while waiting for condition to become
true.
Right now we have only semaphores, mutexes and atomic operations for
synchronization, which results in quite complex solutions where an
implementation using condition variables and mutexes would be straight
forward.
There's also a performance benefit to condition variables and mutexes
vs semaphores, especially on Windows, where semaphores are kernel
objects, while mutexes are implemented as fast critical sections,
it CAN be beneficial performance-wise to use condition variables
instead of semaphores.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23548007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 07:30:01 +00:00
dcarney@chromium.org
366efa2ee3
build fix for 16490
...
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23835003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 07:19:32 +00:00
dcarney@chromium.org
0157c9f9e1
remove Isolate::Current from most files starting with 'd' and 'e'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23606012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 06:59:01 +00:00
dcarney@chromium.org
675ac2660d
thread isolate for files starting with 'b' and 'c'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23729006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 06:57:16 +00:00
mstarzinger@chromium.org
42598f962c
Remove obsolete global V8::IsRunning() predicate.
...
R=yangguo@chromium.org
BUG=v8:2744
Review URL: https://codereview.chromium.org/23597013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 17:06:08 +00:00
mstarzinger@chromium.org
29d2fd6bba
Enable escape analysis for Hydrogen.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23629016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 16:53:39 +00:00
mstarzinger@chromium.org
fa8a182208
Fix OSR to ignore phis without merge index in loop entry.
...
This fixes a corner case introduced by escape analysis where phis are
introduced in OSR loop entry blocks that don't have a merge index and
hence cannot contain OSR values.
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis
Review URL: https://codereview.chromium.org/23503025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 16:51:44 +00:00
verwaest@chromium.org
3f70c3b07b
Allow uncacheable identifiers to go generic.
...
BUG=v8:2867
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23453019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 16:32:11 +00:00
jkummerow@chromium.org
32ac1cb1cd
Fix ChangeLog entry for 3.20.15
...
BUG=v8:2845
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23871002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 13:42:20 +00:00