Commit Graph

12832 Commits

Author SHA1 Message Date
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
jkummerow@chromium.org
6e4bec8f88 Bump MaxRegularSpaceAllocationSize to InitialSemiSpaceSize() * 4/5
to allow allocation of large packed arrays in paged spaces.

BUG=v8:2790
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 13:36:49 +00:00
bmeurer@chromium.org
521afe16d2 Fix Mac llvm-gcc42 build after commit r16473.
TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 12:36:08 +00:00
bmeurer@chromium.org
fead0d0600 Cleanup Semaphore class.
Drop the previous Semaphore class from platform files.

Add new Semaphore class using the new TimeDelta class for
the WaitFor() operation. Consistently assert correct behaviour
for the different implementations.

Improve test coverage of the Semaphore class.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 12:26:06 +00:00
prybin@chromium.org
1e44c36cdc In reporting step-in positions be more accurate with a position the debugger paused at
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 12:24:41 +00:00
verwaest@chromium.org
335b9a7d0d Representation of interceptor / handler properties are tagged.
Otherwise store ICs will never be initialized, due to lookup->CanHoldValue(value);

BUG=chromium:256330
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 12:16:02 +00:00
dcarney@chromium.org
918a2f97fe revert thread isolate in PreallocatedStorageAllocationPolicy
This reverts 16467 for breaking windows build

TBR=svenpanne@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 11:39:23 +00:00
dcarney@chromium.org
9ee801627b thread isolate in PreallocatedStorageAllocationPolicy
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 11:20:42 +00:00
jkummerow@chromium.org
95d0ec62aa Prepare push to trunk. Now working on version 3.21.9.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 11:01:06 +00:00
titzer@chromium.org
7bd61f8ca4 Remove OptimizedCodeEntry *sigh*.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 10:35:34 +00:00
olivf@chromium.org
78df13d0d5 Move ToI conversions to the MacroAssembler
+ Replace DeferredTaggedToINoSSE2 by DoubleToIStub and a fpu version.

+ Prevent truncating TaggedToI from bailing out.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 09:30:54 +00:00
dcarney@chromium.org
f4e16f24ec remove Isolate::Current from most files starting with 'a'
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 09:27:27 +00:00
dcarney@chromium.org
f119b0eaa1 thread isolate in accessors.cc
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 09:25:20 +00:00
gergely@homejinni.com
a8e5dd5169 MIPS: Support for DoubleToIStub (truncating).
Port r16322 (8a03070)

Original commit message:
Added support for truncating DoubleToIStub and reorganize the macro-assembler
dToI operations to do the fast-path inline and the slow path by calling the
stub.

BUG=
R=gergely@homejinni.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-01 17:22:08 +00:00
bmeurer@chromium.org
9615b8c4c9 Fix definition of V8_LIBRT_NOT_AVAILABLE in v8.gyp since we test for it using #elif in time.cc.
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-01 15:03:36 +00:00
yurys@chromium.org
1379f4efeb Add scriptId to StackTrace frames.
BUG=v8:2865
R=verwaest@chromium.org, yurys@chromium.org

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

Patch from Vsevolod Vlasov <vsevik@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 14:54:59 +00:00
bmeurer@chromium.org
68488915c7 Work-around missing librt for cross-compiling Chrome for Android in AOSP.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 14:10:13 +00:00
mstarzinger@chromium.org
28fbc630d3 Handlify JSObject::SetAccessor method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 14:08:15 +00:00
mstarzinger@chromium.org
756a99bdba Handlify JSObject::SetIdentityHash method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 13:42:16 +00:00
mstarzinger@chromium.org
5d87a6c8e0 Handlify JSObject::DeleteHiddenProperty method.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 13:28:52 +00:00
verwaest@chromium.org
8b97a1c5d2 Handlify JSProxy::Fix
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 12:52:25 +00:00
bmeurer@chromium.org
8292b68acf Fix typo breaking Mac build after commit r16450.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 12:30:09 +00:00
bmeurer@chromium.org
d4ff9ce39f Improve feature detection.
Add V8_GLIBC_PREREQ() macro to test the version of the GNU C library.
Make V8_GNUC_PREREQ() work for compilers that masquerade as GCC (you
can always use V8_CC_* to test for a specific one if you need to).
Add V8_LIBC_* to detect the C library in use.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 12:09:50 +00:00
olivf@chromium.org
7669decc41 Reland "Fix missing x87 tracking for deferred code."
Fixed mac build.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:58:50 +00:00
mstarzinger@chromium.org
25d86eacbd Handlify JSReceiver::SetElement method.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:44:39 +00:00
jkummerow@chromium.org
4cf77d7748 Prepare push to trunk. Now working on version 3.21.8.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:31:06 +00:00
yangguo@chromium.org
ecbfcd7e06 Turn interrupt and stack check into builtins.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:24:58 +00:00
jkummerow@chromium.org
9efb5cd23b Make VisitStatements() consistent among all AstVisitor implementations
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 10:51:37 +00:00
dcarney@chromium.org
740bfa5dd0 fix eternal casts
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 09:03:27 +00:00
bmeurer@chromium.org
609ed28111 Revert "ConstantPoolSizeAt() should return number of Instructions instead, otherwise, some of the code will be treated as constant pool when printing code in ARM disassembler."
This reverts commit r16419 for breaking the ARM simulator tests.

TEST=mjsunit/regress/regress-2624
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 08:16:04 +00:00
yangguo@chromium.org
0f6f621522 Assert external strings in external string table. Remove TODOs.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 07:48:04 +00:00
mstarzinger@chromium.org
72826fc892 Simplify object printer declarations.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 07:41:24 +00:00
mstarzinger@chromium.org
5e5ea8d494 Handlify JSObject::DeleteElement method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 18:01:45 +00:00
mstarzinger@chromium.org
b0ac323ec7 Make implicit HandleScope of AssertNoContextChange explicit.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 17:13:57 +00:00
olivf@chromium.org
0c64d5e988 Revert "Fix missing x87 tracking for deferred code."
Mac builder has some problems compiling.

BUG=
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 16:30:47 +00:00
olivf@chromium.org
ee37db140a Fix missing x87 tracking for deferred code.
When compiling deferred code we have to remember the corresponding stack state and ensure that the deferred code does not manipulate the order of elements.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 15:59:40 +00:00
dcarney@chromium.org
799df7c4ed turn on global handle zapping
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 15:03:37 +00:00
jkummerow@chromium.org
2c9ac9c7e1 Always visit branches during HGraph building
even if constant values indicate that they are unreachable.

BUG=chromium:280333
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 14:55:45 +00:00
yurys@chromium.org
7fc915b701 Do not start sampler thread when CpuProfiler is active
Now that CpuProfiler sends does sampling on the profile event processing thread there is no need to launch sampler thread. The latter is used only for --prof profiler.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 14:03:38 +00:00
mstarzinger@chromium.org
dc14d6f435 Implement materialization support for JSArray types.
R=hpayer@chromium.org
TEST=mjsunit/regress/regress-crbug-150729 (+FastLiteral)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 13:56:08 +00:00
yurys@chromium.org
75e5a5a1a6 Support higher CPU profiler sampling rate on Windows
This change moves sampling from SamplerThread to the profiler events processing thread and allows to configure sampling interval on Windows.

Custom tick counter is used instead of OS::Ticks as the latter has maximum presicion of 1ms while we need 100us. QueryPerformanceCounter is used to retrieve high-precision time as described in http://msdn.microsoft.com/en-us/library/ee417693(VS.85).aspx

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 13:44:25 +00:00
yangguo@chromium.org
b3cbe51f1c Refactor interrupt check patching for OSR.
This is to prepare for speculative concurrent OSR. I'm planning to add
another builtin to patch to, to indicate a concurrent OSR.

R=titzer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 13:06:04 +00:00