sgjesse@chromium.org [Mon, 23 May 2011 12:48:17 +0000 (12:48 +0000)]
Optimise the deoptimisation check to improve performance on modern ARM cores.
BUG=none
TEST=none
Committed: http://code.google.com/p/v8/source/detail?r=7909
Reverted in r7916.
Review URL: http://codereview.chromium.org//
7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7991
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 23 May 2011 11:41:28 +0000 (11:41 +0000)]
grokdump: Update the list of instance types.
Review URL: http://codereview.chromium.org/
7058008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7990
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 23 May 2011 11:40:36 +0000 (11:40 +0000)]
Add missing SMI checks to fix reliability bots
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
6974008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7989
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 23 May 2011 10:53:39 +0000 (10:53 +0000)]
Fix missing retun value.
Why did it ever work?
Review URL: http://codereview.chromium.org/
6990035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7988
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 May 2011 10:47:43 +0000 (10:47 +0000)]
Improve bit tests on IA32.
Bit tests with a memory operand should be avoided on Intel processors.
On Atom bts with a memory operand has 10~11 cycles latency and on Core 2
it has 5~6 cycles latency, and also produces multiple uops.
If the bit base operand is a register the latency is 1 cycle instead.
This CL improves several cases from Kraken 1.1 benchmark on Atom. For example,
12% for imaging-desaturate, 8% for audio-fft, and 5% for audio-beat-detection.
Review URL: http://codereview.chromium.org//
7048003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7987
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 23 May 2011 10:41:02 +0000 (10:41 +0000)]
Changed d8 to print exception stack traces like samples/shell.cc.
Review URL: http://codereview.chromium.org/
7060006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7986
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 23 May 2011 10:35:30 +0000 (10:35 +0000)]
Create template system for strict-mode tests.
This makes it possible to get total coverage without creating thousands
of individual test files.
Review URL: http://codereview.chromium.org/
7061008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7985
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 23 May 2011 09:11:24 +0000 (09:11 +0000)]
Fix object visitor.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 May 2011 08:35:46 +0000 (08:35 +0000)]
Experimental i18n extension breaks shared library build. Revert recent
changes to unblock V8 release.
Revert "Adding DateTimeFormat class to i18n API with following methods:"
Revert "Some internal methods are requested when v8 is built as DLL (V8_SHARED), and"
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/
7060005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7981
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 May 2011 07:12:58 +0000 (07:12 +0000)]
MIPS: Minor fixes to simulator and builtins-mips.
Updated to include fixes to several mips arch-specific files, corresponding to recent changes in r7944, r7935, r7926, r7914, r7910, r7895, and parts of r7423, which had previously been missed for mips. Rebased on r7964.
The simulator changes were missed on r7893 for code-stubs-mips,
where the DirectCEntry stuff was added.
There are also a couple small changes to builtins-mips following
r7879 for the other architectures.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7042031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 23 May 2011 07:00:54 +0000 (07:00 +0000)]
Fixed pretty printing of typeof/delete/void expressions. Put spaces around binary operations and comparisons to improve readability.
Review URL: http://codereview.chromium.org/
7055008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 May 2011 06:14:32 +0000 (06:14 +0000)]
Some internal methods are requested when v8 is built as DLL (V8_SHARED), and
they are not available.
Make them no-op (or better yet part of public API).
TEST = Build Chromium with V8_SHARED
Review URL: http://codereview.chromium.org/
7004051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7973
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 May 2011 06:00:45 +0000 (06:00 +0000)]
Prepare push to trunk. Now working on version 3.3.10.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
7059006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7971
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 20 May 2011 15:45:06 +0000 (15:45 +0000)]
ll_prof: Add function optimization status markers.
Review URL: http://codereview.chromium.org/
7056012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7970
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 20 May 2011 15:11:00 +0000 (15:11 +0000)]
Remove redundant 'running' checks for ProfilerEventsProcessor in tests.
A follow up to r7949
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7040014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7969
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 20 May 2011 11:49:52 +0000 (11:49 +0000)]
Refactoring only: Simplified LChunkBuilder:DoTest a bit, making it a simple if-then-else cascade.
Review URL: http://codereview.chromium.org/
7055006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7968
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Thu, 19 May 2011 21:12:47 +0000 (21:12 +0000)]
Adding DateTimeFormat class to i18n API with following methods:
- format
- getWeekdays
- getMonths
- get Eras
- getAmPm
TEST=Visit i18n.kaziprst.org/datetimeformat.html
Review URL: http://codereview.chromium.org/
7014019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7967
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 19 May 2011 13:26:47 +0000 (13:26 +0000)]
Allocate fewer handles in the TypeFeedbackOracle.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7047009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7964
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 19 May 2011 13:15:57 +0000 (13:15 +0000)]
When inlining fails, disable optimization of the proper function.
Also, refactor disabling of optimization to make it easier to ensure
that both SharedFunctionInfo and Code get disabled.
R=whesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7033020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7963
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 19 May 2011 13:14:12 +0000 (13:14 +0000)]
Also skip unary op IC when iterating over break locations in the debugger.
Review URL: http://codereview.chromium.org/
7040002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7962
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 19 May 2011 12:53:50 +0000 (12:53 +0000)]
Refactor TraceInlining method of hydrogen so it works correctly.
Fix TraceInline.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7049005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7961
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 19 May 2011 11:47:34 +0000 (11:47 +0000)]
Rename Proxy class to Foreign, to avoid confusion with Harmony proxies.
Also fix grokdump, which was off by one after intro of JSProxy type.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7959
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 19 May 2011 09:22:32 +0000 (09:22 +0000)]
Avoid conflict between method and type name.
Make builder happy.
Review URL: http://codereview.chromium.org/
7046004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7954
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 19 May 2011 09:01:46 +0000 (09:01 +0000)]
Added preparser strict-mode tests.
Now tests for use of eval, arguments, reserved words and with statement.
Review URL: http://codereview.chromium.org/
7037024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7951
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 19 May 2011 08:25:38 +0000 (08:25 +0000)]
Fix bug with long stack traces truncation in DevTools CPU profiler.
R=sgjesse@chromium.org,vitalyr@chromium.org
BUG=1398
TEST=cctest/test-cpu-profiler/Issue1398
Review URL: http://codereview.chromium.org/
7046001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7949
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 19 May 2011 08:10:27 +0000 (08:10 +0000)]
Remove execScript from V8. No longer present i neither Firefox nor Safari.
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7046002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7948
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 18 May 2011 23:26:38 +0000 (23:26 +0000)]
Put 7942 "Per-isolate embedder-specific data" back
TBR=
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7947
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 18 May 2011 22:35:41 +0000 (22:35 +0000)]
Revert "Per-isolate embedder-specific data"
This reverts commit
42f5dc01fb9adbf55242da9f6515e9a37132217b.
Checking if this helps webkit-tests
TBR=dslomov@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7946
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 18 May 2011 17:43:20 +0000 (17:43 +0000)]
Fix compilation warning on some C++ compilers.
TBR=
Review URL: http://codereview.chromium.org/
7034030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7945
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 18 May 2011 17:32:36 +0000 (17:32 +0000)]
Fix handling of -0 in the unary-op IC and avoid repeated patching/transitions.
When the stub return a heap number we do a state transition to
a version HEAP_NUMBER that can handle -0.
There is room for further improvement in the typefeedback for the
case of -0. This change however does not address this and only fixes
the acute issue.
Review URL: http://codereview.chromium.org/
7037025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7944
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 18 May 2011 17:18:35 +0000 (17:18 +0000)]
Make GVN side effect analysis more precise.
When descending the dominator tree we used to collect side effects from all blocks between the dominator and the dominated blocks in the block ordering. This could include blocks that do not appear on paths from the dominator to the dominated and unnecessarily removed available values from the GVN map.
Review URL: http://codereview.chromium.org/
7036010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7943
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 18 May 2011 16:20:45 +0000 (16:20 +0000)]
Per-isolate embedder-specific data
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6975020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7942
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 18 May 2011 15:28:43 +0000 (15:28 +0000)]
Assert that independent handles do not participate in grouping.
Review URL: http://codereview.chromium.org/
7044007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7941
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 18 May 2011 15:08:50 +0000 (15:08 +0000)]
ll_prof: Output tick percentage by symbol/library.
Review URL: http://codereview.chromium.org/
7039040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7940
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 18 May 2011 15:01:57 +0000 (15:01 +0000)]
Use MarkIndependent in sample shell.
Review URL: http://codereview.chromium.org/
7043006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7938
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 18 May 2011 14:53:02 +0000 (14:53 +0000)]
Add code to ia32 TypeRecordingBinaryOpStub to handle SHR Smi overflow.
BUG=v8:1395
TEST=
Review URL: http://codereview.chromium.org/
7039013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7937
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 18 May 2011 14:00:34 +0000 (14:00 +0000)]
Move derived get trap from builtins to global context.
Review URL: http://codereview.chromium.org/
7017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7936
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 18 May 2011 13:17:29 +0000 (13:17 +0000)]
Reland 7917:
Better support for 'polymorphic' JS and external arrays
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps and dispatches to shared stubs to perform the array operation.
Review URL: http://codereview.chromium.org/
7036016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7935
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 18 May 2011 12:46:21 +0000 (12:46 +0000)]
Add regression test for http://crbug.com/82769
Review URL: http://codereview.chromium.org/
7034025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7933
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 18 May 2011 12:26:04 +0000 (12:26 +0000)]
Revert accidental change from r7795 that was causing a bug fixed in r7790 to reappear.
Review URL: http://codereview.chromium.org/
6968010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7931
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 18 May 2011 12:22:19 +0000 (12:22 +0000)]
Fix incorrect coercion of other failures to Failure::Exception in ReThrow.
TEST=cctest/test-api/OutOfMemoryNested
Review URL: http://codereview.chromium.org/
7029028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7930
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 18 May 2011 12:20:36 +0000 (12:20 +0000)]
Fix bug 1396: Optimized calls to API functions assumed that the receiver was a JSObject, failed when compiling stub otherwise.
BUG=v8:1396
Review URL: http://codereview.chromium.org/
7045002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7929
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 18 May 2011 11:06:07 +0000 (11:06 +0000)]
Fix bug in optimized compiler's switch-statement.
In the case where the default-clause occurs as the first clause,
the case-blocks were not wired up correctly.
BUG=v8:1394
TEST=mjsunit/compiler/regress-1394.js
Review URL: http://codereview.chromium.org/
7037023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7927
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 18 May 2011 10:40:01 +0000 (10:40 +0000)]
Handle all kind of arguments in the ToBooleanStub. While this is not very thrilling in itself, it is one of several steps to add type recording to this stub. Removed a duplicate check for null in the ARM stub and made a tiny simplification, removing a sub instruction.
As a side note, this change has some positive impact on the performace, e.g. imaging-darkroom is 8.3% faster and ws-ieee754conv is even 19.9% faster. No idea why the speedup is so big in some cases, but never look a gift horse in the mouth... ;-)
Review URL: http://codereview.chromium.org/
7042004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7926
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 18 May 2011 09:19:14 +0000 (09:19 +0000)]
Remove NULL temp operand from ia32 LStoreKeyedSpecializedArrayElement.
Review URL: http://codereview.chromium.org/
7042006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7924
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 18 May 2011 08:49:07 +0000 (08:49 +0000)]
Prepare push to trunk. Now working on version 3.3.9.
Review URL: http://codereview.chromium.org/
7042005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7922
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 18 May 2011 07:40:51 +0000 (07:40 +0000)]
Fix push of untagged value in type-recording unary op stub.
Review URL: http://codereview.chromium.org/
7037007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7919
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 17 May 2011 18:47:10 +0000 (18:47 +0000)]
Revert 7917
TBR=danno@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7918
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 17 May 2011 17:29:13 +0000 (17:29 +0000)]
Better support for 'polymorphic' JS and external arrays
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps. Currently, the only array types supported by the MEGAMORPHIC stub are fast elements for objects and JSArrays.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6894003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7917
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 May 2011 12:43:14 +0000 (12:43 +0000)]
Revert r7909
r7909: Optimise the deoptimisation check to improve performance on modern ARM cores.
Assert failure on mozilla/ecma/Date/15.9.3.8-2 and mozilla/ecma/Date/15.9.3.8-4.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org//
7037006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7916
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 17 May 2011 12:18:19 +0000 (12:18 +0000)]
Extend Handle API with MarkIndependent.
Garbage collector is free to ignore object groups for independent handles and can collect then in minor collections.
Review URL: http://codereview.chromium.org/
7031005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7915
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 17 May 2011 12:05:06 +0000 (12:05 +0000)]
Add enumeration to specify if smi check needed
R==ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7039004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7914
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 17 May 2011 11:41:59 +0000 (11:41 +0000)]
Fix error in postfix ++ in Crankshaft.
Add HForceRepresentation, to represent the implicit ToNumber applied to the input of a count operation.
BUG=v8:1389
TEST=
Review URL: http://codereview.chromium.org/
7033008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7913
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 17 May 2011 11:24:38 +0000 (11:24 +0000)]
Fix presubmit errors.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/
7017011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7912
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 17 May 2011 11:11:12 +0000 (11:11 +0000)]
Fix bug restoring of JS entry sp so to fix profiler-related valgrind issues.
The profiler did not correctly identify when there was a JS frame
on the stack after an exception was thrown.
I also refactored the code to use PopTryHandler macro-instructions on all platforms
BUG=73722
TEST=No more valgrind errors related to v8::internal::StackFrameIterator.
Review URL: http://codereview.chromium.org/
7019010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7910
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 May 2011 10:52:51 +0000 (10:52 +0000)]
Optimise the deoptimisation check to improve performance on modern ARM cores.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7909
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 May 2011 10:34:02 +0000 (10:34 +0000)]
MIPS: Remove peeophole optimizations from assembler.
Following r7854.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7908
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 May 2011 10:30:09 +0000 (10:30 +0000)]
Submit regexp-macro-assembler-mips.cc.
Also includes minor changes to regexp-macro-assembler.h.
Builds, but won't run until mips port submission is complete. Has
been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7038004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7907
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 May 2011 10:24:44 +0000 (10:24 +0000)]
Submit full-codegen-mips.cc.
Includes an arch-independent change for FullCodeGenerator::Split()
prototype for mips, which requires two extra parameters.
Compiles, does not run yet. Tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7019004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7906
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 17 May 2011 10:07:42 +0000 (10:07 +0000)]
Submit stub-cache-mips.cc.
Compiles, but not testable until all of mips port is in place. It
has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7038002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7905
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 17 May 2011 07:22:01 +0000 (07:22 +0000)]
Remaining (forgotten) feedback for pixel array deopt fix
TBR=kmillikin@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7019008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7903
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 16 May 2011 16:33:58 +0000 (16:33 +0000)]
Implement get trap for proxies.
TODO: reflective Object methods not handled yet.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7035007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7902
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 16 May 2011 14:10:56 +0000 (14:10 +0000)]
Support conversion of clamped double values for pixel arrays in Crankshaft.
BUG=1313
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/
7014033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7901
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 16 May 2011 11:28:23 +0000 (11:28 +0000)]
Prepare push to trunk. Now working on version 3.3.8.
Review URL: http://codereview.chromium.org/
7030012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7896
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 16 May 2011 09:06:16 +0000 (09:06 +0000)]
Extend GCMole with poor man's data flow analysis to catch dead raw pointer vars.
Fix various places in the code found by improved GCMole.
Review URL: http://codereview.chromium.org/
6973063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7895
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 16 May 2011 08:59:56 +0000 (08:59 +0000)]
Submit debug-mips.cc.
It compiles, but is not testable until the rest of the mips port
is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7032003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7894
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 16 May 2011 08:38:19 +0000 (08:38 +0000)]
Submit code-stubs-mips.cc.
This submission required a small change to arch-indep code to declare
code stub DirectCEntry for mips.
It also required updates to macro-assembler-mips.cc & h and frames-mips.h.
I also made a small change to frames-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. It has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7034008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7893
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 16 May 2011 08:27:52 +0000 (08:27 +0000)]
Limit the number of local variables in a function
Review URL: http://codereview.chromium.org//
7003030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7892
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 16 May 2011 06:36:43 +0000 (06:36 +0000)]
Fix typos in include/*.h inline documentation.
Patch by Nicolas Kaiser <nikai@nikai.net>
R=sgjesse@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7030008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7891
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 13 May 2011 13:29:02 +0000 (13:29 +0000)]
Removed a "feature envy" bad smell: Moved AssumeRepresentation method to where
it belongs.
Review URL: http://codereview.chromium.org/
7015039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7890
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 13 May 2011 11:10:18 +0000 (11:10 +0000)]
Fix uninitialized variable recording how much regexp code
has been generated.
Review URL: http://codereview.chromium.org/
7015040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7888
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 13 May 2011 10:58:25 +0000 (10:58 +0000)]
A first skeleton for introducing Harmony proxies.
1) Add new type JSProxy for representing proxy objects.
Currently devoid of functionality, i.e., all properties are undefined.
2) Some rudimentary global $Proxy functions to create proxies.
Next step: Hook up getProperty and getOwnProperty handlers. Will probably
require introducing a new LookupResult type, which is a mixture of
INTERCEPTOR (handles any property) and CALLBACK (calls back to JS).
Can we unify this somehow?
TODO: Should probably rename existing Proxy type to something like
"Foreign", to avoid confusion.
Review URL: http://codereview.chromium.org/
6932068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7887
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 13 May 2011 09:25:05 +0000 (09:25 +0000)]
Remove more dead code.
Review URL: http://codereview.chromium.org/
7013045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7885
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 13 May 2011 08:54:16 +0000 (08:54 +0000)]
Isolates cleanup: move top.cc to isolate.cc.
Review URL: http://codereview.chromium.org/
6969042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7884
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 13 May 2011 08:21:50 +0000 (08:21 +0000)]
Removed dead code (ingenious 3-bit representation of types)
Review URL: http://codereview.chromium.org/
6973053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7883
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 13 May 2011 08:21:35 +0000 (08:21 +0000)]
Use type feedback for unary minus, improving the performance on e.g. 3d-cube by
7.2% and math-cordic by 5.7%.
Review URL: http://codereview.chromium.org/
7013025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7882
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 13 May 2011 07:27:46 +0000 (07:27 +0000)]
Submit builtins-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7013031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7880
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 13 May 2011 07:26:44 +0000 (07:26 +0000)]
Only send null or undefined as receiver for es5 natives, not generally
for builtin functions.
Review URL: http://codereview.chromium.org/
7012012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7879
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 12 May 2011 16:19:03 +0000 (16:19 +0000)]
Micro-optimize passing of args to HasLocalProperty.
Review URL: http://codereview.chromium.org/
7018001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7878
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 12 May 2011 14:56:56 +0000 (14:56 +0000)]
Don't use environment values at certain deoptimize-instructions.
If a HDeoptimize does not cut away parts of the control-flow-graph
we don't need to insert uses to correctly elimiate dead phis since
the full function is visible to the optimizing compiler.
This is a small improvement of the change r7221 which fixed a problem
when deoptimizing on never executed case-clauses.
Review URL: http://codereview.chromium.org/
7012010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7877
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 12 May 2011 14:48:20 +0000 (14:48 +0000)]
Introduce ic-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
6973024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7876
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Thu, 12 May 2011 14:44:49 +0000 (14:44 +0000)]
ARM: Fix disasm for strh, vabs, vneg. Add load/store tests.
Patch from ARM Ltd.
BUG=none
TEST=added to test/cctest/test-disasm-arm.cc
Original review at http://codereview.chromium.org/
7013024/.
Review URL: http://codereview.chromium.org/
7013027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7875
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 12 May 2011 13:36:49 +0000 (13:36 +0000)]
Made the output of the --trace-representation flag a bit more informative and
centralized its handling.
Review URL: http://codereview.chromium.org/
6969034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7874
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 12 May 2011 13:33:14 +0000 (13:33 +0000)]
ARM: Reduce amount of code generated for context save on deopt.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6930038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7873
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 12 May 2011 13:13:00 +0000 (13:13 +0000)]
Make the code flushing candidate field explicit in code objects.
This way it is counted and the rounding of the size will just work
without extra tweaking if you want to add an extra field to code
objects.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6969037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7872
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 12 May 2011 12:48:10 +0000 (12:48 +0000)]
Extend the fast case of HasLocalProperty.
Review URL: http://codereview.chromium.org/
7016016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7871
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 12 May 2011 08:54:13 +0000 (08:54 +0000)]
Fixed TypeFeedbackOracle for unary operations: Record code for the corresponding
type recording IC.
Review URL: http://codereview.chromium.org/
6973025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7870
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 11 May 2011 17:29:47 +0000 (17:29 +0000)]
Speculative fix fo MultithreadedParallelIsolates on ARM
It looks like the problem with the test is too many concurrently created isolates.
Cranking the number to 100 on MacOS and Linux produce similar results.
BUG=http://code.google.com/p/v8/issues/detail?id=1375
TBR=vitalyr
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7869
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 11 May 2011 14:16:24 +0000 (14:16 +0000)]
Add constant splitting for user controlled constants in the full compiler
This is IA32 only for now.
Added a random value to each assembler instance (JIT cookie) to be used for constant splitting. Added safe versions of setting a register with an immediate value and for pushing an immediate value. Used these functions where user controlled immediate values could be emitted in the code stream. I also used it for immediates which are an argument number even though the number of formal arguments is currently limited to 16k.
I found no compares directly with user controlled constants.
I am not sure whether the test is that useful, but it might catch some changes missing constant splitting.
Review URL: http://codereview.chromium.org//
7005031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7868
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 11 May 2011 13:45:30 +0000 (13:45 +0000)]
Kill some dead code.
Review URL: http://codereview.chromium.org/
6995048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7867
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 11 May 2011 13:26:07 +0000 (13:26 +0000)]
Remove support for branch hints from the IA32 and X64 assembler.
They were not on by default and should not be needed on modern
platforms.
Review URL: http://codereview.chromium.org/
7001025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7866
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 11 May 2011 12:50:04 +0000 (12:50 +0000)]
Support symbol comparison in crankshaft.
Review URL: http://codereview.chromium.org/
7000021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7865
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 11 May 2011 12:11:23 +0000 (12:11 +0000)]
Don't emit code for HContext values with no uses.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6982023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7860
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Wed, 11 May 2011 11:56:15 +0000 (11:56 +0000)]
JSON.parse improvement. Call "LookupSymbol" rather than "NewString"
for property string tokens.
Review URL: http://codereview.chromium.org/
7004016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7859
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 11 May 2011 11:53:43 +0000 (11:53 +0000)]
Support %_IsUndetectableObject in crankshaft.
Review URL: http://codereview.chromium.org/
6995046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7856
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 11 May 2011 11:34:56 +0000 (11:34 +0000)]
Prepare push to trunk. Now working on version 3.3.7.
Review URL: http://codereview.chromium.org/
7005029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7855
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 11 May 2011 11:29:53 +0000 (11:29 +0000)]
Remove peephole optimiziations from IA32 and ARM assembler.
They are not used with Crankshaft anymore.
Review URL: http://codereview.chromium.org/
7003025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7854
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 11 May 2011 11:26:11 +0000 (11:26 +0000)]
Allow closures to be optimized if outer contexts that call eval are all in strict mode.
R=kmillikin@chromium.org
BUG=
TEST=mjsunit/compiler/eval-introduced-closure.js
Review URL: http://codereview.chromium.org/
6993008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7853
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 11 May 2011 11:25:03 +0000 (11:25 +0000)]
Add case for EXTERNAL_ARRAY_TRANSITION to JSObject::NormalizeProperties
Review URL: http://codereview.chromium.org/
7004014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7852
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 11 May 2011 11:03:12 +0000 (11:03 +0000)]
Recommit "First step in letting Crankshaft inline functions with a different context.""
This reverts r7810, thus recommitting 7807.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6963009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7851
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00