Commit Graph

13203 Commits

Author SHA1 Message Date
svenpanne@chromium.org
f5f47208b1 Fixed 2 space leaks in CreateMemmoveFunction, finally making valgrind happy.
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/23714007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:41:02 +00:00
verwaest@chromium.org
18f6577bad Properly filter types using the initial map from HAllocate.
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23615012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:32:46 +00:00
dcarney@chromium.org
3a3a27b2ee store ics for js api accessors
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23549019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:31:25 +00:00
bmeurer@chromium.org
63c817cc55 Drop GetCurrentThreadId() and TerminateExecution(int) from the external API.
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/23538007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:29:13 +00:00
mstarzinger@chromium.org
405ddeb30c Revert "Fix multiple V8::Dispose calls since r16563." and disable test.
TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/23522022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:24:26 +00:00
jkummerow@chromium.org
917356285a Fix polymorphic INTERCEPTOR StoreICs on ARM/MIPS
BUG=chromium:284998
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/23990004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:04:20 +00:00
mstarzinger@chromium.org
15f6fdeb3e Fix multiple V8::Dispose calls since r16563.
R=svenpanne@chromium.org
BUG=v8:2744
TEST=cctest/test-api/InitializeAndDisposeMultiple

Review URL: https://codereview.chromium.org/23775007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:02:43 +00:00
yurys@chromium.org
43780dbdc9 Check if timeout has expired after processing each sample
To avoid long intervals between taking samples due to processing all accumulated samples at once, the samples are processed one by one and we check if the sampling interval has elapsed after each step rather than after processing all the samples in the queue.

This is a modified version of r16549 whith a fix for test flakiness. The test flakiness introduced by the previous version of this changed was fixed by changing return type of ProfilerEventsProcessor::ProcessOneSample from bool to enum with 3 options. In the main profiling loop we decide that the next code event should be processed when sample with a greater ordinal number is encountered. When processing remaining samples we shouldn't wait for more samples and if the samples queue is empty we just process next code event.

BUG=v8:2814,v8:2871
R=bmeurer@chromium.org, loislo@chromium.org

Review URL: https://codereview.chromium.org/23455036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 06:25:06 +00:00
mstarzinger@chromium.org
d1cfe6c8dd Remove obsolete global V8::has_been_fooed flags.
R=yangguo@chromium.org
BUG=v8:2744
TEST=cctest/test-api/InitializeAndDispose

Review URL: https://codereview.chromium.org/23453030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 18:53:39 +00:00
mstarzinger@chromium.org
9b1ab75c51 Consistently use CHECK_ALIVE_OR_RETURN in graph builder.
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/23819026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 18:41:20 +00:00
jkummerow@chromium.org
44e5982243 Prepare push to trunk. Now working on version 3.21.12.
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/23519008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 16:29:07 +00:00
verwaest@chromium.org
79a5834cd0 Wrap PushLoad and BuildStoreInEffect in CHECK_ALIVE.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23903017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 16:22:46 +00:00
jkummerow@chromium.org
9c21e6b7d2 MIPS: load ics for js api accessors.
Port r16551 (61ce507)

BUG=
R=gergely@homejinni.com

Review URL: https://codereview.chromium.org/23868007

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 16:19:33 +00:00
yangguo@chromium.org
d9659da6f4 Fix bug in regexp result object construction.
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23548018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 14:32:49 +00:00
loislo@chromium.org
bbd26abedb Functions may not be optimized and we would like to know in cpu profiler what was the reason.
Current v8 implementation may disable optimization for a particular function or block it with help of dont_optimize flag.
The patch propagates the reason of that to the SharedFunctionInfo where cpu profiler can get it.

SharedFunctionInfo is a heap object so I extracted 8 bits from OptsCount for handling bailout reason code.

BUG=none
TEST=test-profile-generator/BailoutReason
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/23817003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 13:20:51 +00:00
verwaest@chromium.org
b41a7b9cea Properly close the CountOperation value/effect context after leaving the store effect context.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23897003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 12:33:14 +00:00
yurys@chromium.org
3ea3308e04 Revert r16548 due to cpu profiler test falkiness
The change made cctest/test-cpu-profiler/CollectCpuProfile and cctest/test-cpu-profiler/JsNative1JsNative2JsSample flaky.

BUG=v8:2871
TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/23615011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 12:17:17 +00:00
dcarney@chromium.org
d208d048ac remove most Isolate::Current asserts
R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23493019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 11:27:22 +00:00
dcarney@chromium.org
04c1b38d84 load ics for js api accessors
TBR=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23984002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 11:18:52 +00:00
dcarney@chromium.org
6e40b4250c fix mac build after 16548
TBR=bmeurer@chromium.org,yurys@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23452023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 11:14:14 +00:00
yurys@chromium.org
e9c47357e6 Rename some of SamplingCircularQueue methods
Renamed StartDequeue -> Peek, FinishDequeue -> Remove.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

Review URL: https://codereview.chromium.org/23686006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 10:31:18 +00:00
yurys@chromium.org
8d6a096c42 Check if timeout has expired after processing each sample
To avoid long intervals between taking samples due to processing all accumulated samples at once, the samples are processed one by one and we check if the sampling interval has elapsed after each step rather than after processing all the samples in the queue.

BUG=v8:2814
R=bmeurer@chromium.org, loislo@chromium.org

Review URL: https://codereview.chromium.org/23583036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 10:28:57 +00:00
dcarney@chromium.org
215ae8aa6d revert 16543 for breaking windows build
load ics for js api accessors

TBR=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23819021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 10:21:29 +00:00
mstarzinger@chromium.org
f670b2af85 Prevent representation inference from double-visiting.
This prevents representation inference from pushing the current value
into the worklist while it is still being worked on. This might lead
to having a value in the worklist that isn't flexible anymore.

R=verwaest@chromium.org
TEST=mjsunit/compiler/escape-analysis (+GC-Stress)

Review URL: https://codereview.chromium.org/23452020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 09:01:28 +00:00
dcarney@chromium.org
88910423c2 add isolate parameter for Execution::Call
R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23661004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:48:34 +00:00
verwaest@chromium.org
6f358946ac Disable map-check relying on cache behavior sensitive to GC-timing
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23892005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:36:10 +00:00
dcarney@chromium.org
11af95d749 load ics for js api accessors
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23699002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:34:17 +00:00
bmeurer@chromium.org
2fdadd7794 Drop OS::IsOutsideAllocatedSpace() and move the tracking to the MemoryAllocator.
Instead of globally tracking allocated space limits, which was
not implemented properly anyway (i.e. lack of synchronization
on the reading side), track it per MemoryAllocator (that is
per heap/isolate).

In particular, avoid to call IsBadWritePtr() on Windows, it is
obsolete and Microsoft strongly discourages its usage.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/23903008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:17:57 +00:00
bmeurer@chromium.org
03e8c9d015 ARM: fix cctest/test-code-stub-arm.cc
TEST=cctest/test-code-stub-arm.cc
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/23843003

Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 07:31:47 +00:00
adamk@chromium.org
a6a8455fdb Revert "This patch implements optimized objectInfo structure which manages the set of observers associated with an object and the changeRecord types which they accept."
This reverts r16539 as it triggers crashes on the GC stress bot.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 20:43:21 +00:00
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