Commit Graph

10225 Commits

Author SHA1 Message Date
yangguo@chromium.org
eadcc1c10c Reland r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 13:19:27 +00:00
mstarzinger@chromium.org
17a73739f0 The time spent in GCPrologue callbacks and GCEpilogue callbacks should be measured as EXTERNAL time
BUG=

Review URL: https://codereview.chromium.org/11817044
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 12:59:41 +00:00
yangguo@chromium.org
cc3bb60317 Prepare API for webkit use of Latin-1
R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11852019
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 11:22:05 +00:00
mstarzinger@chromium.org
12f25e6b2b Fix problem with NULL handle in r13367.
R=svenpanne@chromium.org
BUG=chromium:169723

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 10:59:00 +00:00
mstarzinger@chromium.org
ee18b8f0e4 Fix unhandlified value in GetOwnProperty function.
R=svenpanne@chromium.org
BUG=chromium:169723

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 10:21:22 +00:00
svenpanne@chromium.org
9a8c8ed58c We can't print the AST or the source for stubs.
BUG=v8:2486

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 08:36:38 +00:00
svenpanne@chromium.org
7bea34038d Consistently use V8EXPORT on all classes and not on individual methods.
Review URL: https://codereview.chromium.org/11861006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-14 07:30:13 +00:00
yangguo@chromium.org
d8d8f6d107 Prepare push to trunk. Now working on version 3.16.5.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-11 14:49:30 +00:00
mstarzinger@chromium.org
b93b2b98b8 Fix shared function info code replacement.
This fixes a corner case when the unoptimized code for a shared function
info is replaced while the function is enqueued as a flushing candidate.
Since the link field is stored within the code object, the candidates
list got destroyed.

R=hpayer@chromium.org
BUG=v8:169209
TEST=cctest/test-heap/Regress169209

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-11 13:13:11 +00:00
svenpanne@chromium.org
1ea15e5ad2 Make v8 handle OOM during Heap construction more gracefully.
Review URL: https://codereview.chromium.org/11824064

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 15:53:11 +00:00
jkummerow@chromium.org
b64765eb62 Better --trace-ic output for UnaryOpICs, matching other IC types
Review URL: https://codereview.chromium.org/11826051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 14:35:06 +00:00
jkummerow@chromium.org
0ac84d782f Add non-ASCII support to d8's read() function
Review URL: https://codereview.chromium.org/11778099

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 14:27:45 +00:00
mstarzinger@chromium.org
c5cff2c75a Make recent regression test resilient against GC stress.
R=danno@chromium.org
TEST=mjsunit/regress/regress-165637

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 14:21:27 +00:00
verwaest@chromium.org
7cb764b780 Combine DEBUG_BREAK and DEBUG_PREPARE_STEP_IN into one IC stub kind DEBUG_STUB, encoding DEBUG_BREAK and DEBUG_PREPARE_STEP_IN as extra ic state.
Review URL: https://chromiumcodereview.appspot.com/11821049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 14:15:12 +00:00
mstarzinger@chromium.org
1079642c97 Fix missing exception check in typed array constructor (2).
This fixes another crash when the the typed array constructor accesses
an array that has a throwing accessor defined on one of it's elements.

R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-10 11:45:29 +00:00
yangguo@chromium.org
64b74e6910 Fix objectprint=on build.
R=dcarney@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 16:34:45 +00:00
jkummerow@chromium.org
c111d8f4b0 Prepare push to trunk. Now working on version 3.16.4.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 16:13:05 +00:00
yangguo@chromium.org
e41c17084f Continues Latin-1 support. All tests pass with ENABLE_LATIN_1 flag.
R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11818025
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 15:47:53 +00:00
hpayer@chromium.org
7541dff7bb Filter old space and large object space to new space references when moving parts of a FixedArray.
BUG=v8:2452

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 14:01:39 +00:00
yangguo@chromium.org
a0fb367755 MIPS: Emit madd.d for multiply-add on MIPS.
Based on commit r12958 (04586adf).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11783049
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 12:31:34 +00:00
jkummerow@chromium.org
aee9febccc Some more instrumentation to narrow down Failure leaks.
The basic idea is to tag OOM-Failure objects with an ID indicating where they were created. This requires changes to equality comparisons.

Note to MIPS folks: I'm planning to revert this CL in a couple of days, so feel free to skip porting the platform-specific changes.

BUG=chromium:156010

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 12:29:06 +00:00
yangguo@chromium.org
45f20e366a Introduce ENABLE_LATIN_1 compile flag
Mostly a bunch of renaming when flag is disabled.

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11759008
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 10:30:54 +00:00
mvstanton@chromium.org
9188bb67f2 MIPS: Adapt Danno's Track Allocation Info idea to fast literals.
Port r13330 (6d9ce8a8)

Original commit message:
Adapt Danno's Track Allocation Info idea to fast literals. When allocating a literal array, we store an AllocationSiteInfo object right after the JSArray, with a pointer to the boilerplate object. Later, if the array transitions we check for the continued existence of the temporary AllocationSiteInfo object (has no roots). If found, we'll use it to transition the boilerplate array as well.

Danno's original changeset: https://codereview.chromium.org/10615002/

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 10:12:56 +00:00
yangguo@chromium.org
746326f4fc MIPS: Fix typo in commit r13326 (f8c9bf84).
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11824015
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 09:40:00 +00:00
svenpanne@chromium.org
0aacbf9619 Added %FlattenString and use it to speed up a regression test.
Flattening strings is relatively costly and by doing it after every duplication
we avoid combinatorial explosion.

Note that flattening could have been done by e.g. using a regular expression,
too, but this is just another implementation detail and %FlattenString seems
general enough to be useful in other tests, too.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 09:32:12 +00:00
danno@chromium.org
8e7f419fe2 MIPS: Generalize calling to C++ on stub deopt
Port r13320 (916d70a6)

Original commit message:
Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11783046
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-09 08:43:36 +00:00
danno@chromium.org
13db297761 Fix nosse2 crash introduced by r13320
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 16:21:39 +00:00
yangguo@chromium.org
3a06a29c13 Only enable MinGW-w64 pow() workaround if needed
The pow() workaround is no longer needed in the latest version of
MinGW-w64.

Contributed by net147@gmail.com

BUGS=
TEST=mjsunit/math-pow,mjsunit/math-sqrt

Review URL: https://chromiumcodereview.appspot.com/11748033
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 15:32:40 +00:00
yangguo@chromium.org
14ed983753 Enable readline on d8 while building a shared lib.
This patch enables readline on d8 except for completion support.
It sould be useful enough for history and line editing.

This is related to V8's issue 1781 (http://code.google.com/p/v8/issues/detail?id=1781), not chromium's.

BUG=1781

Review URL: https://chromiumcodereview.appspot.com/11776017
Patch from Luis Reis <luis.m.reis@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 15:24:17 +00:00
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
mvstanton@chromium.org
467b75208f Test fix: missing check for JSArray.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 10:22:12 +00:00
mvstanton@chromium.org
529f801fde Adapt Danno's Track Allocation Info idea to fast literals. When allocating a literal array,
we store an AllocationSiteInfo object right after the JSArray, with a pointer to the
boilerplate object. Later, if the array transitions we check for the continued existence
of the temporary AllocationSiteInfo object (has no roots). If found, we'll use it to
transition the boilerplate array as well.

Danno's original changeset: https://codereview.chromium.org/10615002/

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 09:03:16 +00:00
verwaest@chromium.org
50d82ca796 Introduce POLYMORPHIC
Review URL: https://chromiumcodereview.appspot.com/11747022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:36:26 +00:00
verwaest@chromium.org
400b8b8c44 Slight cleanup of UpdateCache code.
Review URL: https://chromiumcodereview.appspot.com/11737033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:35:00 +00:00
svenpanne@chromium.org
eb9a22cc8b Environment bookkeping has linear time complexity now, not a quadratic one.
This reduces the time take for mjsunit/limit-locals from 56.8s to 15.1s in debug
mode and from 12.0s to 1.6s in release mode.

Note that GrowableBitVector and BitVector should really be merged, and probably
have their allocation strategy parmeterized. The current state of affairs
involving tons of checks and delegation is extremely ugly, and it is far from
clear if all that special casing is a clear win. STL FTW! :-P

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:28:20 +00:00
yangguo@chromium.org
61f4012989 Use C++ style type casts.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:02:56 +00:00
mstarzinger@chromium.org
0e46919c32 Fix missing exception check in typed array constructor.
The typed array constructor might fail if the first argument is an
object with a length property. Accessing the property can cause an
exception to be thrown and an explicit check needs to be performed.

R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 14:01:04 +00:00
verwaest@chromium.org
11c2557452 Check interceptor before optimizing load/store
Review URL: https://chromiumcodereview.appspot.com/11753027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 12:14:36 +00:00
danno@chromium.org
a060bf0e9b MIPS: Elide unnecessary context reload in generated stubs.
Port r13290 (6970ca83)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11773013
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:23:30 +00:00
danno@chromium.org
b510dc58d3 MIPS: Re-land Crankshaft-generated KeyedLoad stubs.
Port r13236 (cd9236c5)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11801002
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:18:25 +00:00
danno@chromium.org
ab301a54b3 MIPS: Remove redundant loads in DoCheckMaps Hoist the loop-invariant load out of the loop and call the other CheckMap function
Port r13253 (5af29105)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11784014
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:10:38 +00:00
danno@chromium.org
4246ac3009 Generalize calling to C++ on stub deopt
Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:06:11 +00:00
ulan@chromium.org
c4bed03342 Add ARM support to tools/grokdump.py
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:48:04 +00:00
ulan@chromium.org
4403daca1a ARM: generate integer zero in a uniform manner.
ARM generated integer zero as either Operand(0, RelocInfo::NONE32), or
Operand(0), or Operand::Zero(). My change makes it use only
Operand::Zero().

This has no functional impact, it's pure cleanup.

R= ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11745030
Patch from JF Bastien <jfb@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:43:12 +00:00
ulan@chromium.org
b73db972e2 Use RelocInfo::IsNone in a few more places.
I had missed some earlier.

Followup to:
https://chromiumcodereview.appspot.com/11695006/

There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/

R= ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11742045
Patch from JF Bastien <jfb@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:15:25 +00:00
yangguo@chromium.org
ee563d7875 MIPS: Fix ARM code for DoModI.
Port r13247 (4dda8131)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11782009
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 08:58:52 +00:00
ulan@chromium.org
74026ea46d MIPS: Enable type feedback for branch statement and function call
Port r13288 (5fa2c889)

Original commit message:
This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11801003
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 08:49:52 +00:00
verwaest@chromium.org
a8962e89b3 Use enum instead of bool for force_generic (MISS / MISS_FORCE_GENERIC)
Review URL: https://chromiumcodereview.appspot.com/11737032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:37:59 +00:00
yangguo@chromium.org
4ee20d857b Check for read-only-ness when preparing for array sort.
R=verwaest@chromium.org
BUG=v8:2419

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:24:47 +00:00
svenpanne@chromium.org
8a2cca5207 Replaced a bailout ID assertion with quadratic time complexity by a linear one.
This reduces the time to run our test suite in debug mode considerably (from
8:43 to 4:05 on my local workstation using 32 threads). Note that the assertion
is so fast now that it doesn't need to be hidden behind --enable-slow-asserts.
Furthermore, the bookkeeping of the set is not measurable in all our benchmarks,
so I intentionally avoided any #ifdef chaos to keep things simple.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 12:48:18 +00:00