mstarzinger@chromium.org [Tue, 23 Oct 2012 08:25:04 +0000 (08:25 +0000)]
Enable incremental code flushing.
This enables code flushing even with incremental marking enabled and
fully shares the function link field in JSFunctions between candidates
for code flushing and the optimized functions list. If a candidate for
code flushing gets optimized, it will be evicted from the candidates
list.
R=ulan@chromium.org
BUG=v8:1609
Review URL: https://codereview.chromium.org/
11140025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 23 Oct 2012 08:06:28 +0000 (08:06 +0000)]
Pretenure JSON graph if the input string is larger than 100*1024 chars.
Review URL: https://chromiumcodereview.appspot.com/
11238031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexeif@chromium.org [Mon, 22 Oct 2012 18:25:10 +0000 (18:25 +0000)]
Add a type conversion to fix Windows build after r12793
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11227034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 22 Oct 2012 16:33:10 +0000 (16:33 +0000)]
Implement committed physical memory stats for Linux.
The patch introduces CommittedPhysicalMemory function to
the Heap class that reports committed *physical* memory acquired
for the heap from the OS.
It is important because some OSes may defer actual committment on e.g.
first access to the region.
So reporting just plain committed size led to various weird artifacts
like showing V8 allocated memory higher than the whole process
private size.
BUG=v8:2191
Review URL: https://codereview.chromium.org/
11066118
Patch from Alexei Filippov <alph@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 22 Oct 2012 15:59:58 +0000 (15:59 +0000)]
Fix warnings about tautological compares by recent Clang versions.
This fixes the following Clang warnings:
../../v8/src/ia32/assembler-ia32.cc:1504:24: warning: comparison of constant 16 with expression of type 'v8::internal::Condition' is always true [-Wtautological-constant-out-of-range-compare]
ASSERT(0 <= cc && cc < 16);
~~~~~~~~~~~~~~~~~~~~~^~~~~
../../v8/src/ia32/assembler-ia32.cc:1536:27: warning: comparison of constant 16 with expression of type 'v8::internal::Condition' is always true [-Wtautological-constant-out-of-range-compare]
ASSERT((0 <= cc) && (cc < 16));
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
BUG=crbug.com/151927
Review URL: https://chromiumcodereview.appspot.com/
11225030
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12792
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 22 Oct 2012 15:25:17 +0000 (15:25 +0000)]
Change constant pool marker to be the unconditional, permanently undefined instruction.
The previously-used instruction isn't guaranteed to always be undefined,
and the encoding used was conditional (failing the condition on an
undefined instruction is itself undefined and not guaranteed to
fault!). I would have like to use a more clever encoding (see bug 2963),
but we need the extra bits to encode the size of the constant pool.
BUG=security
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11242002
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 22 Oct 2012 14:22:58 +0000 (14:22 +0000)]
Reland JSON.stringify reimplementation.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11189112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 22 Oct 2012 14:13:01 +0000 (14:13 +0000)]
tools/run-tests.py: A few timeout-related fixes
Review URL: https://codereview.chromium.org/
11230029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 22 Oct 2012 13:09:01 +0000 (13:09 +0000)]
Prepare push to trunk. Now working on version 3.14.6.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11189113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 22 Oct 2012 12:50:51 +0000 (12:50 +0000)]
Fix deletion of hidden property with inline-stored hash.
R=yangguo@chromium.org
BUG=chromium:157124
TEST=cctest/test-api/Regress157124
Review URL: https://codereview.chromium.org/
11233033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 22 Oct 2012 11:15:09 +0000 (11:15 +0000)]
MIPS: Use movw/movt instead of constant pool on ARMv7.
Port r12755 (
5d62d66e)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11232036
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 22 Oct 2012 11:11:22 +0000 (11:11 +0000)]
Revert r12760 (JSON.stringify).
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11225026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 22 Oct 2012 10:38:40 +0000 (10:38 +0000)]
Fix two-char hash to use correct fallback for zero hashes.
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11228004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 22 Oct 2012 10:00:28 +0000 (10:00 +0000)]
Fix typo in Makefile in ARM VFP support flag.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11235026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 22 Oct 2012 09:48:56 +0000 (09:48 +0000)]
Speed up function deoptimization by avoiding quadratic pass over optimized function list.
R=danno@chromium.org
BUG=155270
Review URL: https://chromiumcodereview.appspot.com/
11189091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 19 Oct 2012 15:37:28 +0000 (15:37 +0000)]
Micro-optimizing the json parser
Review URL: https://chromiumcodereview.appspot.com/
11237002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 19 Oct 2012 15:03:27 +0000 (15:03 +0000)]
Fast path for searching through simple transitions
Review URL: https://chromiumcodereview.appspot.com/
11189089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 19 Oct 2012 13:20:22 +0000 (13:20 +0000)]
Improve ClampDoubleToUint8 on ia32/x64.
It's measured faster when:
a) clamp never happens;
b) clamp random happens ([-128,384], pseudo random).
Review URL: https://chromiumcodereview.appspot.com/
11190049
Patch from Zheng Liu <zheng.z.liu@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 19 Oct 2012 12:39:59 +0000 (12:39 +0000)]
Remove scratch register requirement from LoadInstanceDescriptors on arm and mips.
Review URL: https://chromiumcodereview.appspot.com/
11193022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 19 Oct 2012 12:39:43 +0000 (12:39 +0000)]
Stress GC less by allocating exponentially growing string chunks in JSON.stringify.
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11232002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 19 Oct 2012 12:30:18 +0000 (12:30 +0000)]
Always invoke the default Array.sort functions from builtin functions, part 2.
R=vegorov@chromium.org
BUG=v8:2372
Review URL: https://chromiumcodereview.appspot.com/
11175007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 19 Oct 2012 11:15:04 +0000 (11:15 +0000)]
Add a faster API for creating v8::Integer objects
In WebKit, we have a small integer cache because calling v8::Integer::New is
slow. This patch adds a faster API for creating integers that requires the
caller to supply the v8::Isolate, saving us the work of looking up the isolate
in thread-local storage.
BUG=
Review URL: https://codereview.chromium.org/
11212004
Patch from Adam Barth <abarth@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 19 Oct 2012 10:48:18 +0000 (10:48 +0000)]
Get the target field index when transitioning.
Review URL: https://chromiumcodereview.appspot.com/
11194080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 19 Oct 2012 10:44:56 +0000 (10:44 +0000)]
Fix ARM dissambler test problems with movw/movt.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11198061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 19 Oct 2012 09:55:27 +0000 (09:55 +0000)]
Fix test runner for Android.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11193055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 19 Oct 2012 09:28:23 +0000 (09:28 +0000)]
Adjust Android test expectations.
Disable long running tests:
- test-threads/ThreadJoinSelf in release and debug modes.
- regress/regress-1122 in debug mode.
Disable failing test:
- preparser/strict-octal-regexp (v8 issue 2265).
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11185073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 19 Oct 2012 08:45:24 +0000 (08:45 +0000)]
Pass pending exception to the message listener.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11014017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 19 Oct 2012 08:40:50 +0000 (08:40 +0000)]
Fixed directory ignorance involving symlinks.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11198082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 19 Oct 2012 08:23:45 +0000 (08:23 +0000)]
Fixed json regression
BUG=v8:2374
Review URL: https://chromiumcodereview.appspot.com/
11186059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 18 Oct 2012 18:43:19 +0000 (18:43 +0000)]
Fixed error introduced in r12761.
BUG=2373
Review URL: https://chromiumcodereview.appspot.com/
11198068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 18 Oct 2012 15:57:45 +0000 (15:57 +0000)]
Static cast char* diff to int.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11200004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 18 Oct 2012 15:26:37 +0000 (15:26 +0000)]
Disable GDBJIT support by default in Debug mode.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11195043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 18 Oct 2012 15:08:11 +0000 (15:08 +0000)]
Keep track of the first non-ascii word/char to avoid redoing the work.
Review URL: https://chromiumcodereview.appspot.com/
11194053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12762
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 18 Oct 2012 14:44:40 +0000 (14:44 +0000)]
Adding a fast path for parsing index keys.
Reduces overhead on http://code.google.com/p/chromium/issues/detail?id=156379 from 360ms down to 255ms.
Review URL: https://chromiumcodereview.appspot.com/
11189039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 18 Oct 2012 14:42:26 +0000 (14:42 +0000)]
Reimplement a simpler version of JSON.stringify.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11186025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 18 Oct 2012 14:37:04 +0000 (14:37 +0000)]
Put more constants in movw/movt instructions
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11185052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 18 Oct 2012 14:21:35 +0000 (14:21 +0000)]
Use tools/run-tests.py for "check" targets in the top-level Makefile.
Bonus content: a few minor fixes for run-tests.py
Review URL: https://codereview.chromium.org/
11184039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 18 Oct 2012 13:15:05 +0000 (13:15 +0000)]
Make sure the fast case of ScanJsonString bails out to the slow case correctly.
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11185050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 18 Oct 2012 13:07:41 +0000 (13:07 +0000)]
Kill off the SCons based build.
Review URL: https://codereview.chromium.org/
11188058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 18 Oct 2012 12:21:42 +0000 (12:21 +0000)]
Use movw/movt instead of constant pool on ARMv7.
Some ARM architectures load 32-bit immediate constants more efficiently using movw/movt pairs rather than constant pool loads. This patch allows the assembler to generate one or the other load form at runtime depending on what is faster.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11037023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 18 Oct 2012 12:01:36 +0000 (12:01 +0000)]
Avoid unnecessary code target changes during code compaction.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11198032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 18 Oct 2012 11:47:06 +0000 (11:47 +0000)]
Fix typo in fast path for scanning json strings.
Review URL: https://chromiumcodereview.appspot.com/
11191055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 18 Oct 2012 11:18:08 +0000 (11:18 +0000)]
Always invoke the default Array.sort functions from builtin functions.
TEST=mjsunit/regress/regress-builtin-array-op.js
BUG=v8:2372
Review URL: https://chromiumcodereview.appspot.com/
10559005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 18 Oct 2012 07:22:24 +0000 (07:22 +0000)]
Added a workaroung for a GCC visibility bug.
Movef a helper class to the top level to avoid
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40145.
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11194050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12751
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 18 Oct 2012 06:52:37 +0000 (06:52 +0000)]
Add an API for enumerating persistent handles
This API lets the embedder enumerate handles that have class ids. WebKit will
use this feature during garbage collection to compute object groups for DOM
nodes. Previously, we kept a list of DOM nodes on the WebKit side, but that
list is redundant with the global handles list in V8.
Review URL: https://codereview.chromium.org/
11190011
Patch from Adam Barth <abarth@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12750
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 17 Oct 2012 14:20:43 +0000 (14:20 +0000)]
MIPS: Fix compilation under clang.
Clang is a little more picky than gcc on unused variable
warnings, which become errors with -Werror. Clean up
these cases for mips.
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11175005
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 17 Oct 2012 14:09:42 +0000 (14:09 +0000)]
Eagerly follow transitions to existing maps while json parsing.
Review URL: https://chromiumcodereview.appspot.com/
11184006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12747
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 17 Oct 2012 13:04:49 +0000 (13:04 +0000)]
Move DescriptorArray into the map.
Review URL: https://chromiumcodereview.appspot.com/
11188031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12746
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 17 Oct 2012 12:24:31 +0000 (12:24 +0000)]
Revert recent CPU profiler changes because they broke --prof.
This reverts r12649 and r12650.
BUG=v8:2364
Review URL: https://codereview.chromium.org/
11193020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12745
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 16 Oct 2012 16:29:19 +0000 (16:29 +0000)]
Use shlex.split() to parse --special-command test argument
This allows passing commands with quoted spaces, such as:
tools/test-wrapper-gypbuild.py --special-command \
"$DR/bin64/drrun -ops '-reset_every_nth_pending 0' @" \
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11143018
Patch from Reid Kleckner <rnk@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12744
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 16 Oct 2012 11:41:07 +0000 (11:41 +0000)]
Improved printing of HLoadElements instruction.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11177004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 16 Oct 2012 08:45:17 +0000 (08:45 +0000)]
MIPS: Fix ARM bug introduced in r12604 that caused crashes on ARM on crypto-md5 from SunSpider.
Port r12623 (
22002351)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10979066
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12742
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 16 Oct 2012 08:29:58 +0000 (08:29 +0000)]
MIPS: Fix issue 2346 (order of operations in keyed store on arrays) and turn get-own-property-descriptor.js test into a regression test.
Port r12604 (
ae837167)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10987086
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12741
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 16 Oct 2012 08:24:13 +0000 (08:24 +0000)]
MIPS: Make the speed of incremental marking depend also on the rate at which we are hitting expensive write barrier operations, not just on the rate of allocation.
Port r12618 (
c621b025)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
10977070
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 16 Oct 2012 08:23:15 +0000 (08:23 +0000)]
Fix MIPS build broken by r12735 'Allow unaligned accesses for ARMv7'.
R=mstarzinger@chromium.org,palfia@homejinni.com
Review URL: https://chromiumcodereview.appspot.com/
11167004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 16 Oct 2012 08:16:36 +0000 (08:16 +0000)]
MIPS: Fix compilation failure on ARM in r12685.
Port r12686 (
bdda5c81)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11143029
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 15 Oct 2012 15:42:09 +0000 (15:42 +0000)]
Simulate and disasm NOP on ARM
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11116011
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 15 Oct 2012 15:23:22 +0000 (15:23 +0000)]
Fix bug in deletion of indexed properties
The delete operator always return true in case of indexed property. It
should return false if an indexed property can't be deleted (eg.
DontDelete attribute is set or a string object is the holder).
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=none
TEST=mjsunit/delete-non-configurable
Review URL: https://codereview.chromium.org/
11094021
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 15 Oct 2012 15:19:36 +0000 (15:19 +0000)]
Allow unaligned accesses for ARMv7.
R=mstarzinger@chromium.org,jfb@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11087047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 15 Oct 2012 14:43:57 +0000 (14:43 +0000)]
Switch code flushing to use different JSFunction field.
This is another preparation for incremental code flushing. Instead of
linking candidates using the code entry field, we use the next pointer
that is also used to link optimized functions together. Since we only
support flushing of unoptimized code, this field can be shared.
R=ulan@chromium.org
BUG=v8:1609
Review URL: https://codereview.chromium.org/
11141023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 15 Oct 2012 12:36:58 +0000 (12:36 +0000)]
Fixed VERIFY_HEAP without DEBUG.
Review URL: https://codereview.chromium.org/
11155007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 15 Oct 2012 11:49:59 +0000 (11:49 +0000)]
Prepare push to trunk. Now working on version 3.14.5.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11137016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 15 Oct 2012 10:15:25 +0000 (10:15 +0000)]
Allow evals for debugger even if they are prohibited in the debugee context.
BUG=154733
Review URL: https://codereview.chromium.org/
11111015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 15 Oct 2012 09:25:30 +0000 (09:25 +0000)]
Ensure code flushing is disabled in incremental marking.
This fixes some test failures since r12714 which shared the code for
code flushing between full and incremental marking and is only a quick
fix until we can enable incremental code flushing.
R=jkummerow@chromium.org
BUG=v8:1609
Review URL: https://codereview.chromium.org/
11137014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 15 Oct 2012 08:38:51 +0000 (08:38 +0000)]
Invalidate the enum cache when converting a transition across which the descriptors are shared.
Review URL: https://chromiumcodereview.appspot.com/
11145017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 15 Oct 2012 07:25:20 +0000 (07:25 +0000)]
Consistently make the bounds check for AccessArgumentsAt explicit.
This has the advantage that AccessArgumentsAt itself can't deopt anymore and the
bounds check is visible for the elimination phase. Furthermore, things are
simply more consistent now, a good thing in itself. :-)
Review URL: https://codereview.chromium.org/
11106012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 15 Oct 2012 07:07:58 +0000 (07:07 +0000)]
Synced Scons with GYP build. ;-)
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11155005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12720
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 15 Oct 2012 06:34:22 +0000 (06:34 +0000)]
Fixed heap verification guards.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11147016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12719
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 12 Oct 2012 14:06:03 +0000 (14:06 +0000)]
Use immediate add when possible in space allocator
Save one instruction in allocating new space by using an immediate add if
possible to calculate the new top of heap.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11091068
Patch from Anthony Berent <aberent@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 12 Oct 2012 13:49:12 +0000 (13:49 +0000)]
Reland r12342: Flush monomorphic ICs on context disposal instead of context exit.
The crashes that caused r12342 to be reverted are fixed in r12563.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11092081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 12 Oct 2012 12:41:29 +0000 (12:41 +0000)]
Move code flushing support into shared visitor.
This is a first step towards incremental code flushing. The code
flushing support is now shared between full and incremental marking.
The code flusher itself is not yet activated in incremental mode and
will require some additional adaptations.
R=ulan@chromium.org
BUG=v8:1609
Review URL: https://codereview.chromium.org/
11028016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 12 Oct 2012 11:41:14 +0000 (11:41 +0000)]
Enable --verify-heap in release mode
R=mstarzinger@chromium.org
BUG=v8:2120
Review URL: https://codereview.chromium.org/
11118018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 12 Oct 2012 11:09:14 +0000 (11:09 +0000)]
Ensure that we do not accidentally emit debug code.
The call sites are more concise, the naming is better and at least one
case of superfluous code in release mode was removed.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11108011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 12 Oct 2012 10:58:25 +0000 (10:58 +0000)]
DoNumberTagD performance improvement
Allocate heap entry untagged and tag at end to avoid having to subtract off
the tag offset before storing the value.
BUG=
Review URL: https://codereview.chromium.org/
11028115
Patch from Anthony Berent <aberent@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 12 Oct 2012 09:27:12 +0000 (09:27 +0000)]
Fix vstr.cc S, [mem] to emit vstr instead of vldr.
BUG=emits wrong instruction
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11118015
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 12 Oct 2012 08:16:49 +0000 (08:16 +0000)]
Make EnumCacheBridge immutable.
Review URL: https://chromiumcodereview.appspot.com/
11048051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 12 Oct 2012 07:05:00 +0000 (07:05 +0000)]
MIPS: Consistently use named getters for Lithium operands on ARM.
Port r12527 (
24ed881a)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11109003
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 11 Oct 2012 15:35:24 +0000 (15:35 +0000)]
Prepare push to trunk. Now working on version 3.14.4.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
11094073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 11 Oct 2012 15:33:34 +0000 (15:33 +0000)]
Don't clear EnumLength but rather copy the enum cache. Added regression test for crashes from chromecrash.
Review URL: https://chromiumcodereview.appspot.com/
11103036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 11 Oct 2012 14:14:24 +0000 (14:14 +0000)]
Use native context to retrieve ErrorMessageForCodeGenerationFromStrings
BUG=155076
Review URL: https://codereview.chromium.org/
11093073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 11 Oct 2012 14:14:03 +0000 (14:14 +0000)]
HChange is only deletable under certain circumstances.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11092075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 11 Oct 2012 13:10:24 +0000 (13:10 +0000)]
Find a stack limit for the test that works on both Win32 and Linux64.
R=mstarzinger@chromium.org
BUG=151625
Review URL: https://codereview.chromium.org/
11086073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 11 Oct 2012 12:11:46 +0000 (12:11 +0000)]
Increase stack size for test to work on x64.
R=jkummerow@chromium.org
BUG=151625
Review URL: https://codereview.chromium.org/
11098070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 11 Oct 2012 12:01:19 +0000 (12:01 +0000)]
Remove descriptors pointer.
Secondary changes:
- don't transfer ownership back on CNLT
- turned debugging checks back into ASSERT
Review URL: https://chromiumcodereview.appspot.com/
11099064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 11 Oct 2012 11:40:10 +0000 (11:40 +0000)]
Bump variable limit further to 2^17.
R=jkummerow@chromium.org
BUG=151625
Review URL: https://codereview.chromium.org/
11099063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 11 Oct 2012 10:52:58 +0000 (10:52 +0000)]
Added a simple dead code removal phase.
We iteratively remove all dead Hydrogen instruction until we reach a fixed point. We consider an instruction dead if it is unused, has no observable side effects and is deletable. The last part of the condition is currently not very nice: We basically have to whitelist "safe" instructions, because we are missing more detailed dependencies and/or more detailed tracking of side effects.
We disable dead code elimination for now in our test runners, because we have tons of poorly written tests which wouldn't test anymore what they are supposed to test with this phase enabled. To get test coverage for dead code elimination itself, we should enable it on a few build bots. This is not really a perfect state, but the best we can do for now.
This patch includes a few const-correctness fixes, most of them were necessary for this CL.
Review URL: https://codereview.chromium.org/
11088027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Oct 2012 17:05:00 +0000 (17:05 +0000)]
Prepare push to trunk. Now working on version 3.14.3.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11098047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 10 Oct 2012 16:15:29 +0000 (16:15 +0000)]
ARM: allow VFP3 instructions when hardfloat is enabled.
R=danno@chromium.org
BUG=152506
Review URL: https://chromiumcodereview.appspot.com/
11028116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Oct 2012 14:48:07 +0000 (14:48 +0000)]
Also use binary search to search through valid entries.
Review URL: https://chromiumcodereview.appspot.com/
11028056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Oct 2012 13:13:35 +0000 (13:13 +0000)]
Transition ownership back if the descriptors were shared via elements transitions.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11091044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Oct 2012 12:31:50 +0000 (12:31 +0000)]
Fix transition conversion from CONSTANT_FUNCTION to FIELD.
Review URL: https://chromiumcodereview.appspot.com/
11094044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Oct 2012 12:29:44 +0000 (12:29 +0000)]
Fix CNLT regression.
This happens when a map A with no descriptors in fast_holey_elements
mode first gets some properties, making it share descriptor arrays with
a map B to which it transitions. Then map A transitions elements kind to
dictionary_elements in map C. C stores the empty_descriptor_array in its
own transition array. When adding a property to C, C transitions to D
and shares the descriptors. If D dies, a CNLT clears the transition
array of C, making the descriptor array of A (and thus also of B) shine
through. If a property is now added to an object in state C, it'll inherit
all the properties of A (and B). If those properties had high field indices,
we do not have a large enough backing store for the single newly added
property, and we'll write out of bounds.
BUG=chromium:151749
Review URL: https://chromiumcodereview.appspot.com/
11017054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 10 Oct 2012 11:58:22 +0000 (11:58 +0000)]
Fix compilation failure on ARM in r12685.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11103004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 10 Oct 2012 11:13:15 +0000 (11:13 +0000)]
Enable compilation of GDBJIT interface on Linux.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11093046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 9 Oct 2012 15:12:39 +0000 (15:12 +0000)]
Improve page flag checking sequence on ARM.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11090021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 9 Oct 2012 13:53:24 +0000 (13:53 +0000)]
Make sure that the context argument of HAdd is never NULL.
Although this doesn't hurt currently, it hurts any future compiler
pass relying on the invariant that no operand is NULL.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11088026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 9 Oct 2012 08:34:39 +0000 (08:34 +0000)]
Clarify that date parsing follows Safari.
R=ulan@chromium.org
BUG=145198
Review URL: https://codereview.chromium.org/
11085006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 9 Oct 2012 08:24:58 +0000 (08:24 +0000)]
Make GDBJIT interface compile again.
R=ulan@chromium.org
BUG=v8:1804
Review URL: https://codereview.chromium.org/
11022007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 8 Oct 2012 13:49:57 +0000 (13:49 +0000)]
Add PRESUBMIT script to V8
Currently, it executes the OWNERS check and tools/presubmit.py, as well as a
check for a non-empty commit message
BUG=none
TEST=run git cl presubmit
Review URL: https://codereview.chromium.org/
11092002
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 8 Oct 2012 12:58:46 +0000 (12:58 +0000)]
Fixed Accessors::FunctionGetPrototype's proto chain traversal.
Actually it didn't traverse that far... ;-) Did some cleanup on the way.
R=rossberg@chromium.org
BUG=chrome:143967
TEST=regress/regress-143967.js
Review URL: https://codereview.chromium.org/
11087004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00