mmassi@chromium.org [Tue, 12 Feb 2013 12:04:29 +0000 (12:04 +0000)]
Remove instructions properly (stack check elimination was leaving "dangling uses" around).
BUG=
Review URL: https://codereview.chromium.org/
12224090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 12 Feb 2013 11:57:51 +0000 (11:57 +0000)]
Fixed a memory leak in v8 and another one in d8.
Cleaned up a few tests on the way. This CL brings us down to 5 leaks for d8.
Review URL: https://codereview.chromium.org/
12223089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 12 Feb 2013 11:44:08 +0000 (11:44 +0000)]
Separated smi check from HBoundsCheck.
Review URL: https://codereview.chromium.org/
12208013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 12 Feb 2013 10:56:04 +0000 (10:56 +0000)]
Calculate proper receiver map for monomorphic transitioning ICs.
This fixes a regression caused by
https://chromiumcodereview.appspot.com/
11953025/
Review URL: https://chromiumcodereview.appspot.com/
12217131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 12 Feb 2013 09:34:40 +0000 (09:34 +0000)]
MIPS: Fix bugs in DeoptimizeIf when lazy deopt is requested.
Port r13633 (
9e314349)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
12220105
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 12 Feb 2013 08:59:53 +0000 (08:59 +0000)]
Don't use local variable after its scoped has been left.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
12224118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13642
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 11 Feb 2013 15:11:00 +0000 (15:11 +0000)]
Fix code flusher disabling while marking incrementally.
This fixes a corner case where the code flusher is disabled while the
incremental marker is still running. This can happen when the debugger
is loaded and a scavenge is triggered. Make sure that all flushing
decisions are revisited after the candidates lists are evicted.
R=hpayer@chromium.org
BUG=chromium:173458,chromium:168582
TEST=cctest/test-heap/Regress173458
Review URL: https://codereview.chromium.org/
12217108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13641
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 11 Feb 2013 14:44:25 +0000 (14:44 +0000)]
Get rid of x87 in ia32 LCodeGen::DoBranch
Review URL: https://codereview.chromium.org/
12208044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13640
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 11 Feb 2013 14:12:13 +0000 (14:12 +0000)]
Print deoptimization index when printing lithium environment.
Output of --trace-deopt --code-comments does not always allow to reliably match deoptimization to the lithium instruction (and it is actually never accurate on x64 due to one level of indirection). This change allows to reliably figure out which instruction deoptimized just by looking up bailout id in the hydrogen.cfg.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
12217103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 11 Feb 2013 13:02:20 +0000 (13:02 +0000)]
Don't use TLS for space iterators.
This is not only inherently slow, but it also forces the caller to enter an
Isolate before. Both is bad, so we have to do some heap plumbing.
BUG=v8:2531
Review URL: https://codereview.chromium.org/
12217106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 11 Feb 2013 12:28:22 +0000 (12:28 +0000)]
Work around nifty VS10 compiler bug
VS10 generates bogus code for specific arguments to the Number::New function when invoked in specific places of an ExpectRecords array definition, passing a garbage value to the function (as printf debugging reveals). Changing the argument from 1 to 7 apparently circumvents the problem.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
12212108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13637
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 8 Feb 2013 17:32:47 +0000 (17:32 +0000)]
Fix bugs in DeoptimizeIf when lazy deopt is requested.
This also implements --trap-on-deopt on x64 and simplifies the
implementation of this flag on all architectures.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
12223053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 8 Feb 2013 14:32:38 +0000 (14:32 +0000)]
Add additional flags to control array abuse tracing
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12211095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 8 Feb 2013 12:41:55 +0000 (12:41 +0000)]
Added new GetHeapStatistics API entry and deprecated old one.
Simplified the HeapStatistics class a bit, following Uncle Bob's advice that
adding accessors to DTOs only satisfies some design fundamentalists, but serves
no other purpose. :-)
Review URL: https://codereview.chromium.org/
12207076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13631
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 8 Feb 2013 11:56:15 +0000 (11:56 +0000)]
Improve tracing of hydrogen stub compilation.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
12208088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 7 Feb 2013 15:51:05 +0000 (15:51 +0000)]
Add missing type feedback collection to ia32 BinaryOpStubs for bitwise operations
Review URL: https://codereview.chromium.org/
12223039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13624
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 7 Feb 2013 15:45:47 +0000 (15:45 +0000)]
Adjust the stack-size value for big-array-literal.js
Review URL: https://codereview.chromium.org/
12114002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13623
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 7 Feb 2013 15:38:24 +0000 (15:38 +0000)]
Add regression test for r13617
Many thanks to Vyacheslav Egorov for coming up with this test!
BUG=173907
Review URL: https://codereview.chromium.org/
12212066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13622
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 7 Feb 2013 13:15:41 +0000 (13:15 +0000)]
Fix DoubleStackSlot-to-DoubleStackSlot moves on ia32. Unify platform-independent code.
BUG=173907
Review URL: https://codereview.chromium.org/
12207063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13617
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 7 Feb 2013 10:02:11 +0000 (10:02 +0000)]
Fix NULL-pointer arithmetic abuse in tests surfaced by clang
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
12218051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13614
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 7 Feb 2013 07:56:11 +0000 (07:56 +0000)]
Add --trace-array-abuse to help find OOB accesses.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
12220040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13613
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 6 Feb 2013 17:35:35 +0000 (17:35 +0000)]
Use asserts instead of branches to avoid fast array methods for observed arrays
Because observed arrays should always be in dictionary mode, we'll always fall
back to the JS version anyway.
Review URL: https://codereview.chromium.org/
12221033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13612
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Wed, 6 Feb 2013 14:07:26 +0000 (14:07 +0000)]
Prepare push to trunk. Now working on version 3.17.0.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12212032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13609
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 6 Feb 2013 13:21:28 +0000 (13:21 +0000)]
Make the GC stress builder go green.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12218034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13608
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 6 Feb 2013 13:04:02 +0000 (13:04 +0000)]
Simplify secure API functions workaround for MinGW
If MINGW_HAS_SECURE_API is defined, the definitions of localtime_s,
fopen_s, _vsnprintf_s, strncpy_s had to be renamed using #define
so they would not conflict with definitions in the standard headers.
A simpler way to handle this is to undefine MINGW_HAS_SECURE_API before
including the standard headers.
Contributed by net147@gmail.com
BUGS=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
12210033
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13607
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 6 Feb 2013 12:58:09 +0000 (12:58 +0000)]
Inline some regexp code.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12184015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13606
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 6 Feb 2013 11:54:27 +0000 (11:54 +0000)]
Small improvement in x64 assembler
Review URL: https://chromiumcodereview.appspot.com/
12177012
Patch from Zheng Z. Liu <zheng.z.liu@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13605
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 6 Feb 2013 11:48:29 +0000 (11:48 +0000)]
Split CompileCallConstant into logical parts for Frontend and Backend.
Initial step towards separating IC (map check(s)), handler frontend
(prototype-check) and handler backend (actual handler code).
- Still need to split the map-check (IC) from rest of the prototype
chain check.
- Still need to turn different parts in own code objects and cache them
in more optimal places.
Review URL: https://chromiumcodereview.appspot.com/
12207016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13604
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 6 Feb 2013 10:59:50 +0000 (10:59 +0000)]
Do not rely on secure API functions when using MinGW-w64
Windows XP does not provide secure API functions in msvcrt.dll but
newer versions of Windows do. Avoid using secure API functions for
compatibility with msvcrt.dll on Windows XP.
Contributed by net147@gmail.com
BUGS=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
12189010
Patch from Jonathan Liu <net147@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13603
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 6 Feb 2013 10:51:55 +0000 (10:51 +0000)]
Add explicit Release configuration to standalone.gypi to appease Xcode.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12225043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 6 Feb 2013 10:32:02 +0000 (10:32 +0000)]
ARM: Try to avoid VMSR instruction and drop redundant VCVT
We were doing a redundant VCVT operation in MacroAssembler::EmitECMATruncate.
Also, setting the FPSCR exception flags is expensive on some CPUs, wo we should
try to avoid it if we can.
Thanks to Rodolph Perfetta for the input on this!
Review URL: https://chromiumcodereview.appspot.com/
12217014
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 6 Feb 2013 09:31:18 +0000 (09:31 +0000)]
Switch GYP to use LLVM-GCC when using Xcode.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12228004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 5 Feb 2013 18:00:42 +0000 (18:00 +0000)]
Print generated code for Crankshafted stubs with --print-code-stubs
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
12223007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 5 Feb 2013 16:28:36 +0000 (16:28 +0000)]
Add separate flag for --trace-stub-failures
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
12208011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13598
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 5 Feb 2013 16:21:15 +0000 (16:21 +0000)]
Make object-observe test case resilient against GC stress.
R=rossberg@chromium.org
TEST=cctest/test-object-observe/ObservationWeakMap
Review URL: https://codereview.chromium.org/
12217017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13597
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 5 Feb 2013 15:48:59 +0000 (15:48 +0000)]
Fixed IsSweepingComplete and EnsureSweeperProgress helper functions.
BUG=
Review URL: https://codereview.chromium.org/
12177017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 5 Feb 2013 10:38:40 +0000 (10:38 +0000)]
Fix Win64. It still cares about the actual registers behind scratch1/scratch2
Review URL: https://chromiumcodereview.appspot.com/
12211011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13595
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 5 Feb 2013 10:33:21 +0000 (10:33 +0000)]
Fix Win64 build
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
12221012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13594
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 5 Feb 2013 08:09:32 +0000 (08:09 +0000)]
Support pass-through of stub caller arguments
Review URL: https://codereview.chromium.org/
12093089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Mon, 4 Feb 2013 21:03:08 +0000 (21:03 +0000)]
Object.observe: change array truncation logic to efficiently handle large sparse arrays
Review URL: https://codereview.chromium.org/
12041084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13592
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Mon, 4 Feb 2013 20:24:11 +0000 (20:24 +0000)]
Object.observe: use JSWeakMaps instead of raw ObjectHashTables in observation state
object-observe.js uses weak maps to add "hidden" properties to
objects. Previously, the hash tables it was using weren't actually
weak. This patch changes the existing runtime functions to create
instances of JSWeakMap instead of exposing ObjectHashTable directly.
Review URL: https://codereview.chromium.org/
12092079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13591
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 4 Feb 2013 15:40:50 +0000 (15:40 +0000)]
Keep ArrayLength, StringLength and FunctionPrototype MONOMORPHIC.
Review URL: https://chromiumcodereview.appspot.com/
12181012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 4 Feb 2013 13:32:52 +0000 (13:32 +0000)]
Prepare push to trunk. Now working on version 3.16.14.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12190003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13587
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 4 Feb 2013 13:12:03 +0000 (13:12 +0000)]
Tag stubs that rely on instance types as MEGAMORPHIC.
BUG=chromium:173974
Review URL: https://chromiumcodereview.appspot.com/
12178017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13586
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 4 Feb 2013 12:01:59 +0000 (12:01 +0000)]
Generate the TransitionElementsStub using Crankshaft
This includes:
* Adding support for saving callee-clobbered double registers in Crankshaft code.
* Adding a new "HTrapAllocationMemento" hydrogen instruction to handle AllocationSiteInfo data in crankshafted stubs.
* Adding a new "HAllocate" hydrogen instruction that can allocate raw memory from the GC in crankshafted code.
* Support for manipulation of the hole in HChange instructions for Crankshafted stubs.
* Utility routines to manually build loops and if statements containing hydrogen code.
Review URL: https://codereview.chromium.org/
11659022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13585
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 4 Feb 2013 10:56:50 +0000 (10:56 +0000)]
Fix clearing of dead dependent codes and verify weak embedded maps on full GC.
BUG=172488,172489
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12094036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13584
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 4 Feb 2013 10:30:54 +0000 (10:30 +0000)]
Make the arm port build cleanly with Clang.
This fixes the following two warnings, so that "make all" builds cleanly
with Clang:
src/arm/macro-assembler-arm.h:1410:7: error: private field
'instructions_' is not used
[-Werror,-Wunused-private-field]
int instructions_; // Number of instructions of the expected patch size.
^
src/arm/simulator-arm.cc:402:20: error: variable 'words' is used uninitialized whenever 'if'
condition is false [-Werror,-Wsometimes-uninitialized]
} else if (argc == next_arg + 1) {
^~~~~~~~~~~~~~~~~~~~
../src/arm/simulator-arm.cc:407:21: note: uninitialized use occurs here
end = cur + words;
^~~~~
../src/arm/simulator-arm.cc:402:16: note: remove the 'if' if its condition is always true
} else if (argc == next_arg + 1) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
Review URL: https://chromiumcodereview.appspot.com/
12087131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13583
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 4 Feb 2013 08:51:37 +0000 (08:51 +0000)]
MIPS: Merge KeyedLoad and NamedLoad stub compiler code.
Port r13579 (e640269)
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12186003
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13580
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 1 Feb 2013 13:39:36 +0000 (13:39 +0000)]
Merge KeyedLoad and NamedLoad stub compiler code.
Review URL: https://chromiumcodereview.appspot.com/
12094082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13579
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 1 Feb 2013 11:57:22 +0000 (11:57 +0000)]
ARM: Add comments to clarify conditionally executed code dealing with d16-d31
Review URL: https://codereview.chromium.org/
12087132
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 1 Feb 2013 10:35:21 +0000 (10:35 +0000)]
MIPS: Support slow-mode prototypes for load and call ICs.
Port r13571 (c37a2f5).
Original commit message:
Support slow-mode prototypes for load and call ICs.
This changes LoadNonExistent to handle negative lookups as well.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12089098
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13576
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Fri, 1 Feb 2013 10:16:16 +0000 (10:16 +0000)]
Base iDef update code.
Review URL: https://codereview.chromium.org/
12079042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 1 Feb 2013 08:54:38 +0000 (08:54 +0000)]
Prepare push to trunk. Now working on version 3.16.13.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12084091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 31 Jan 2013 16:18:18 +0000 (16:18 +0000)]
Support slow-mode prototypes for load and call ICs.
This changes LoadNonExistent to handle negative lookups as well.
Review URL: https://chromiumcodereview.appspot.com/
12092043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13571
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 31 Jan 2013 15:36:24 +0000 (15:36 +0000)]
Better fix for MemoryChunk::owner().
Pointer arithmetic such as "owner_ - kFailureTag" is undefined behaviour
unless owner_ points to a valid object.
This allowed Clang to assume the subtraction would never be NULL,
causing problems in the caller (see https://codereview.chromium.org/
12090072/).
To fix this, we should cast owner_ to intptr_t before doing the
arithmetic.
Review URL: https://codereview.chromium.org/
12096089
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 31 Jan 2013 14:23:36 +0000 (14:23 +0000)]
Added parallel marking threads.
BUG=
Review URL: https://codereview.chromium.org/
12047044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13569
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 31 Jan 2013 13:26:55 +0000 (13:26 +0000)]
Slightly bump memory test limit for ia32 no-snapshot.
R=verwaest@chromium.org
TEST=cctest/test-mark-compact/BootUpMemoryUse
Review URL: https://codereview.chromium.org/
12091088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13568
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 31 Jan 2013 12:57:05 +0000 (12:57 +0000)]
MIPS: Fix gbemu performance regression.
Port r13557 (aa3ba8a)
BUG=
Review URL: https://codereview.chromium.org/
12091083
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13567
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 31 Jan 2013 10:50:42 +0000 (10:50 +0000)]
Only mark the descriptor that is valid for the map in question. If this map
transitioned from a map with a different descriptor array (or has no back
pointer), mark all valid descriptors from the start.
This fixes the following memory leak: Map A shares a descriptor array
with map B. Map B adds constant function c that in its scope holds on to
an instance of B. If the descriptor array of A would keep all the shared
descriptors alive, including c, this keeps alive both A and c
indefinitely.
This CL also fixes a bug in descriptor array trimming. When trimming
descriptor arrays we need to trim off the slack as well (thus the entire
storage); and since we are trimming a descriptor array, we need to trim
* kDescriptorSize.
Review URL: https://chromiumcodereview.appspot.com/
12084066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13566
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 30 Jan 2013 21:07:28 +0000 (21:07 +0000)]
Object.observe: don't unnecessarily emit oldValue for reconfigurations of data properties
When a data property has its attributes changed but its value remains the same,
don't emit an oldValue. This makes the API more consistent by only emitting
oldValue when the value of a property has actually changed (or been removed,
in the case of a reconfiguration as an accessor property or a deletion).
Review URL: https://codereview.chromium.org/
11820004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13565
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 30 Jan 2013 17:35:29 +0000 (17:35 +0000)]
Work around a bug in Clang that optimizes away a NULL check
Review URL: https://codereview.chromium.org/
12090072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 30 Jan 2013 16:12:04 +0000 (16:12 +0000)]
MIPS: Fix Mac problem with stubs initialization
Port r13542 (
d3217e18)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
12091042
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13561
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 30 Jan 2013 16:09:31 +0000 (16:09 +0000)]
MIPS: Add StubFailureTrampolineFrames
Port r13533 (
2f339757)
Original commit message:
In preparation of supporting stubs that deopt and then need to push their
register-based parameters to an arguments area on the stack that gets properly
collected, add StubFailureTrampolineFrames to hold those parameters.
BUG=
TEST=
Review URL: https://codereview.chromium.org/
12087053
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 30 Jan 2013 15:50:09 +0000 (15:50 +0000)]
Initialize sweeper thread array with NULL.
BUG=
Review URL: https://codereview.chromium.org/
12079076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 30 Jan 2013 15:07:58 +0000 (15:07 +0000)]
Also allow the empty object map to keep transitions.
With the old implementation, due to the map-check being inadequate, such
transitions were already added for cross-context field stores. It is not
necessary anymore to not store transitions, since we properly clear
non-live transitions. Globally enabling this feature will help find more
bugs.
BUG=v8:2518
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12092063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13558
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 30 Jan 2013 14:25:34 +0000 (14:25 +0000)]
Fix gbemu preformance regression
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
12084063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13557
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 30 Jan 2013 13:13:04 +0000 (13:13 +0000)]
Fix build bot. Force instantiation of templatized SweepConservatively method.
BUG=
Review URL: https://codereview.chromium.org/
12079075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13554
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 30 Jan 2013 12:47:41 +0000 (12:47 +0000)]
Fixes Windows build bots.
BUG=
Review URL: https://codereview.chromium.org/
12094057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13553
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 30 Jan 2013 12:19:32 +0000 (12:19 +0000)]
Parallel and concurrent sweeping.
Sweep old pointer space and old data space concurrently to the main mutator thread and in parallel.
BUG=
Review URL: https://codereview.chromium.org/
11782028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13552
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 30 Jan 2013 10:51:13 +0000 (10:51 +0000)]
Precisely measure duration of mark and sweep phases. Changed print_cumulative_gc_stat flag to only print GC statistics at end of program.
BUG=
Review URL: https://codereview.chromium.org/
11595006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 30 Jan 2013 10:24:00 +0000 (10:24 +0000)]
ARM Deoptimizer: fix TODO from r13484
This lets the Deoptimizer pointer stay in r0, saving a mov and
simplifying the code a little.
BUG=none
TEST=Tested with test/mjsunit/math-floor-of-div.js, this fails reliably if OSR is broken
Review URL: https://chromiumcodereview.appspot.com/
12082046
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 30 Jan 2013 10:07:47 +0000 (10:07 +0000)]
Update grokdump to reflect current heap layout.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
12094038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13549
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 30 Jan 2013 09:55:49 +0000 (09:55 +0000)]
Make DwVfpRegister::AllocationIndexToString use VFPRegister::Name
This also fixes a bug caused by a missing comma after "d13" in
the 'names' array in AllocationIndexToString.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
12082044
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13548
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 30 Jan 2013 09:50:25 +0000 (09:50 +0000)]
ARM: Rename Simulator::vfp_register to vfp_registers_
This matches Simulator::registers_ and is in line with the style guide.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
12096036
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13547
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 30 Jan 2013 09:35:15 +0000 (09:35 +0000)]
Prepare push to trunk. Now working on version 3.16.12.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12087081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13544
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 29 Jan 2013 15:46:34 +0000 (15:46 +0000)]
Foundation for the use of informative definitions in Crankshaft.
Review URL: https://codereview.chromium.org/
12090021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13543
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 29 Jan 2013 15:28:05 +0000 (15:28 +0000)]
Fix Mac problem with stubs initialization
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12096040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13542
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 29 Jan 2013 14:41:02 +0000 (14:41 +0000)]
Add option to limit tick processor to a time range.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12077043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13541
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 29 Jan 2013 14:39:09 +0000 (14:39 +0000)]
profiler: log solib addresses unconditionally
Make --prof_lazy log the addresses of shared libraries. Without those addresses,
the output of the tick processor is not very useful for node.js applications.
Address logging was disabled for --prof-lazy in r3154 for reasons that no longer
apply: the profiler is started on demand and hence looking up the addresses is
deferred until it's actually necessary.
Review URL: https://codereview.chromium.org/
11309007
Patch from Ben Noordhuis <info@bnoordhuis.nl>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13540
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 29 Jan 2013 13:27:23 +0000 (13:27 +0000)]
Fix test harness to correctly split extra flags.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12094032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13539
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 29 Jan 2013 12:50:42 +0000 (12:50 +0000)]
Fixed non-snapshot builds.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/
12093041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13538
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 29 Jan 2013 12:00:56 +0000 (12:00 +0000)]
Tag previously GENERIC stubs that potentially IC_Miss as MONOMORPHIC.
Review URL: https://chromiumcodereview.appspot.com/
12079024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13537
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 29 Jan 2013 10:40:43 +0000 (10:40 +0000)]
Unify the shebang line of python scripts
Review URL: https://codereview.chromium.org/
12095012
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13536
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 29 Jan 2013 10:29:37 +0000 (10:29 +0000)]
Unbreak Win64 build.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/
12095033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13535
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 29 Jan 2013 10:18:15 +0000 (10:18 +0000)]
Unbreak non-SSE2 ia32 platforms.
Improved register usage a bit on the way.
Review URL: https://codereview.chromium.org/
12082043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13534
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 29 Jan 2013 09:12:20 +0000 (09:12 +0000)]
Add StubFailureTrampolineFrames
In preparation of supporting stubs that deopt and then need to push their
register-based parameters to an arguments area on the stack that gets properly
collected, add StubFailureTrampolineFrames to hold those parameters.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12052053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13533
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 29 Jan 2013 09:09:55 +0000 (09:09 +0000)]
Use MemoryChunk-based allocation for deoptimization entry code
This is done by first committing the deoptimization entry code with a minimal
area size (OS::CommitPageSize) and later using CommitArea to adjust the size.
Committed: http://code.google.com/p/v8/source/detail?r=13494
Review URL: https://chromiumcodereview.appspot.com/
11566011
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13532
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 28 Jan 2013 14:50:47 +0000 (14:50 +0000)]
Improved printing of jump tables.
Review URL: https://codereview.chromium.org/
12093016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13531
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 28 Jan 2013 14:41:55 +0000 (14:41 +0000)]
Only update POLYMORPHIC stubs using other POLYMORPHIC or GENERIC stubs.
Review URL: https://chromiumcodereview.appspot.com/
12088021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13530
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 28 Jan 2013 13:55:40 +0000 (13:55 +0000)]
Log event start and event end separately when using --log-timer-events.
R=haraken@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12040075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13529
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 28 Jan 2013 13:37:32 +0000 (13:37 +0000)]
MIPS: Replace store array length builtin with codestub.
Port r13506 (
0d666576)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
12077009
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13528
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 28 Jan 2013 13:24:41 +0000 (13:24 +0000)]
Do not duplicate the compilation pipeline for stub compilation.
The previous duplication is quite bad from an architectural point of
view. Furthermore, it messes up the output of --hydrogen-stats.
As remarked in a comment, there is still more unification work to do, but at
least this CL is a step in the right direction...
Review URL: https://codereview.chromium.org/
12091016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13527
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 28 Jan 2013 13:19:53 +0000 (13:19 +0000)]
Do not try to collect the map if the monomorphic IC stub has no map.
This is necessary for monomorphic stubs that rely on instance types,
such as ArrayLength, StringLength and FunctionPrototype.
BUG=chromium:172345
Review URL: https://chromiumcodereview.appspot.com/
12082023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13526
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 28 Jan 2013 10:25:38 +0000 (10:25 +0000)]
Put making embedded maps in optimized code weak behind a flag.
Disable the flag by default because of Chrome crashes.
BUG=172488,172489
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12091018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13523
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 25 Jan 2013 16:55:00 +0000 (16:55 +0000)]
Allow inlining of multiple closures from shared function.
This allows Crankshaft to allow inlining of multiple different closures
that were all derived from the same shared function info. This pattern
appears when libraries provide generic closures that are used over and
over again at different call-sites.
R=jkummerow@chromium.org
TEST=mjsunit/compiler/inline-closures
Review URL: https://codereview.chromium.org/
12071002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13522
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 25 Jan 2013 15:54:19 +0000 (15:54 +0000)]
Actually increment queue length for parallel recompile queue.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12039088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13521
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 25 Jan 2013 13:55:02 +0000 (13:55 +0000)]
Slightly improved Hydrogen stats output for long-running compilations.
Replaced a scary pointer comparison by strcmp on the way.
Review URL: https://codereview.chromium.org/
12035101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13510
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 25 Jan 2013 13:24:13 +0000 (13:24 +0000)]
Prepare push to trunk. Now working on version 3.16.11.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
12049086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13507
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 25 Jan 2013 11:55:29 +0000 (11:55 +0000)]
Replace store array length builtin with codestub.
Also includes some other minor cleanup to make Keyed related IC code
more uniform.
Review URL: https://chromiumcodereview.appspot.com/
11896091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13506
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 25 Jan 2013 11:51:48 +0000 (11:51 +0000)]
Avoid excessive memory usage during redundant phi elimination.
Basically, the work list for the fixed point iteration has been removed.
BUG=v8:2510
Review URL: https://codereview.chromium.org/
12052075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13505
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00