platform/upstream/v8.git
11 years agoFix DoubleStackSlot-to-DoubleStackSlot moves on ia32. Unify platform-independent...
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

11 years agoFix NULL-pointer arithmetic abuse in tests surfaced by clang
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

11 years agoAdd --trace-array-abuse to help find OOB accesses.
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

11 years agoUse asserts instead of branches to avoid fast array methods for observed arrays
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

11 years agoPrepare push to trunk. Now working on version 3.17.0.
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

11 years agoMake the GC stress builder go green.
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

11 years agoSimplify secure API functions workaround for MinGW
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

11 years agoInline some regexp code.
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

11 years agoSmall improvement in x64 assembler
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

11 years agoSplit CompileCallConstant into logical parts for Frontend and Backend.
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

11 years agoDo not rely on secure API functions when using MinGW-w64
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

11 years agoAdd explicit Release configuration to standalone.gypi to appease Xcode.
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

11 years agoARM: Try to avoid VMSR instruction and drop redundant VCVT
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

11 years agoSwitch GYP to use LLVM-GCC when using Xcode.
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

11 years agoPrint generated code for Crankshafted stubs with --print-code-stubs
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

11 years agoAdd separate flag for --trace-stub-failures
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

11 years agoMake object-observe test case resilient against GC stress.
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

11 years agoFixed IsSweepingComplete and EnsureSweeperProgress helper functions.
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

11 years agoFix Win64. It still cares about the actual registers behind scratch1/scratch2
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

11 years agoFix Win64 build
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

11 years agoSupport pass-through of stub caller arguments
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

11 years agoObject.observe: change array truncation logic to efficiently handle large sparse...
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

11 years agoObject.observe: use JSWeakMaps instead of raw ObjectHashTables in observation state
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

11 years agoKeep ArrayLength, StringLength and FunctionPrototype MONOMORPHIC.
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

11 years agoPrepare push to trunk. Now working on version 3.16.14.
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

11 years agoTag stubs that rely on instance types as MEGAMORPHIC.
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

11 years agoGenerate the TransitionElementsStub using Crankshaft
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

11 years agoFix clearing of dead dependent codes and verify weak embedded maps on full GC.
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

11 years agoMake the arm port build cleanly with Clang.
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

11 years agoMIPS: Merge KeyedLoad and NamedLoad stub compiler code.
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

11 years agoMerge KeyedLoad and NamedLoad stub compiler code.
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

11 years agoARM: Add comments to clarify conditionally executed code dealing with d16-d31
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

11 years agoMIPS: Support slow-mode prototypes for load and call ICs.
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

11 years agoBase iDef update code.
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

11 years agoPrepare push to trunk. Now working on version 3.16.13.
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

11 years agoSupport slow-mode prototypes for load and call ICs.
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

11 years agoBetter fix for MemoryChunk::owner().
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

11 years agoAdded parallel marking threads.
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

11 years agoSlightly bump memory test limit for ia32 no-snapshot.
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

11 years agoMIPS: Fix gbemu performance regression.
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

11 years agoOnly mark the descriptor that is valid for the map in question. If this map
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

11 years agoObject.observe: don't unnecessarily emit oldValue for reconfigurations of data properties
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

11 years agoWork around a bug in Clang that optimizes away a NULL check
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

11 years agoMIPS: Fix Mac problem with stubs initialization
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

11 years agoMIPS: Add StubFailureTrampolineFrames
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

11 years agoInitialize sweeper thread array with NULL.
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

11 years agoAlso allow the empty object map to keep transitions.
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

11 years agoFix gbemu preformance regression
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

11 years agoFix build bot. Force instantiation of templatized SweepConservatively method.
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

11 years agoFixes Windows build bots.
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

11 years agoParallel and concurrent sweeping.
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

11 years agoPrecisely measure duration of mark and sweep phases. Changed print_cumulative_gc_stat...
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

11 years agoARM Deoptimizer: fix TODO from r13484
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

11 years agoUpdate grokdump to reflect current heap layout.
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

11 years agoMake DwVfpRegister::AllocationIndexToString use VFPRegister::Name
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

11 years agoARM: Rename Simulator::vfp_register to vfp_registers_
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

11 years agoPrepare push to trunk. Now working on version 3.16.12.
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

11 years agoFoundation for the use of informative definitions in Crankshaft.
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

11 years agoFix Mac problem with stubs initialization
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

11 years agoAdd option to limit tick processor to a time range.
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

11 years agoprofiler: log solib addresses unconditionally
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

11 years agoFix test harness to correctly split extra flags.
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

11 years agoFixed non-snapshot builds.
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

11 years agoTag previously GENERIC stubs that potentially IC_Miss as MONOMORPHIC.
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

11 years agoUnify the shebang line of python scripts
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

11 years agoUnbreak Win64 build.
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

11 years agoUnbreak non-SSE2 ia32 platforms.
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

11 years agoAdd StubFailureTrampolineFrames
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

11 years agoUse MemoryChunk-based allocation for deoptimization entry code
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

11 years agoImproved printing of jump tables.
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

11 years agoOnly update POLYMORPHIC stubs using other POLYMORPHIC or GENERIC stubs.
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

11 years agoLog event start and event end separately when using --log-timer-events.
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

11 years agoMIPS: Replace store array length builtin with codestub.
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

11 years agoDo not duplicate the compilation pipeline for stub compilation.
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

11 years agoDo not try to collect the map if the monomorphic IC stub has no map.
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

11 years agoPut making embedded maps in optimized code weak behind a flag.
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

11 years agoAllow inlining of multiple closures from shared function.
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

11 years agoActually increment queue length for parallel recompile queue.
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

11 years agoSlightly improved Hydrogen stats output for long-running compilations.
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

11 years agoPrepare push to trunk. Now working on version 3.16.11.
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

11 years agoReplace store array length builtin with codestub.
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

11 years agoAvoid excessive memory usage during redundant phi elimination.
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

11 years agoFix additional spec violations wrt RegExp.lastIndex.
yangguo@chromium.org [Fri, 25 Jan 2013 10:53:26 +0000 (10:53 +0000)]
Fix additional spec violations wrt RegExp.lastIndex.

R=svenpanne@chromium.org
BUG=v8:2437

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMerge UpdateStoreCaches into a single function dispatching on ComputeStoreMonorphic...
verwaest@chromium.org [Fri, 25 Jan 2013 10:34:17 +0000 (10:34 +0000)]
Merge UpdateStoreCaches into a single function dispatching on ComputeStoreMonorphic and UpdateMegamorphicCache.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUnbreak build (offsetof only works for POD types)
svenpanne@chromium.org [Fri, 25 Jan 2013 08:54:11 +0000 (08:54 +0000)]
Unbreak build (offsetof only works for POD types)

TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd Isolate parameter to Persistent class.
svenpanne@chromium.org [Fri, 25 Jan 2013 08:31:46 +0000 (08:31 +0000)]
Add Isolate parameter to Persistent class.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAllow monomorphic loads when static type is known.
mstarzinger@chromium.org [Thu, 24 Jan 2013 17:54:30 +0000 (17:54 +0000)]
Allow monomorphic loads when static type is known.

This allows Crankshaft to generate monomorphic loads when the receiver
type is statically known even though the load site has polymorphic type
feedback. This applies to inlined constructor calls and literals.

R=jkummerow@chromium.org
TEST=mjsunit/compiler/property-static

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoPrepare push to trunk. Now working on version 3.16.10.
yangguo@chromium.org [Thu, 24 Jan 2013 16:29:54 +0000 (16:29 +0000)]
Prepare push to trunk.  Now working on version 3.16.10.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoImplement VisitHandlesInNewSpaceWithClassIds()
mstarzinger@chromium.org [Thu, 24 Jan 2013 15:53:16 +0000 (15:53 +0000)]
Implement VisitHandlesInNewSpaceWithClassIds()

BUG=
TEST=test-api.cc::PersistentHandleInNewSpaceVisitor

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert r13494: "Use MemoryChunk-based allocation for deoptimization entry code"
danno@chromium.org [Thu, 24 Jan 2013 15:48:07 +0000 (15:48 +0000)]
Revert r13494: "Use MemoryChunk-based allocation for deoptimization entry code"

This patch seems to cause crashes on Windows.

TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoUse MemoryChunk-based allocation for deoptimization entry code
danno@chromium.org [Thu, 24 Jan 2013 15:14:33 +0000 (15:14 +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.

Review URL: https://codereview.chromium.org/11566011
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix bug in edge case in populating PointerMaps
danno@chromium.org [Thu, 24 Jan 2013 15:05:38 +0000 (15:05 +0000)]
Fix bug in edge case in populating PointerMaps

If a live range was split immediately before an instruction that required a
safe-point pointer map, it was possible for the safe-point to incorrectly use the
register/stack slot information of the preceeding live range rather than the one
that actually covers the safe-point.

R=mstarzinger@chromium.org,vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMerge UpdateLoadCaches into a single function dispatching on
verwaest@chromium.org [Thu, 24 Jan 2013 13:02:45 +0000 (13:02 +0000)]
Merge UpdateLoadCaches into a single function dispatching on
ComputeLoadMonorphic and UpdateMegamorphicCache.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix map check removal issue in r13488.
mstarzinger@chromium.org [Thu, 24 Jan 2013 12:35:56 +0000 (12:35 +0000)]
Fix map check removal issue in r13488.

The removal of HCheckMaps is invalid when the instruction has a virtual
usage, which can happen e.g. for HLoadElements or HJSArrayLength.

R=jkummerow@chromium.org
TEST=webkit:fast/js/regress/Float32Array-matrix-mult.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMake embedded maps in optimized code weak.
ulan@chromium.org [Thu, 24 Jan 2013 11:55:05 +0000 (11:55 +0000)]
Make embedded maps in optimized code weak.

Each map has a weak array of dependent codes, where the map tracks all the optimized codes that embed it.
Old space GC either clears the dead dependent codes from the array if the corresponding map is alive or deoptimizes the live dependent codes if the map is dead.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoForce inlining of object visiting functions.
hpayer@chromium.org [Thu, 24 Jan 2013 09:40:57 +0000 (09:40 +0000)]
Force inlining of object visiting functions.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAllow removal of obsolete map checks after transitions.
mstarzinger@chromium.org [Thu, 24 Jan 2013 09:10:06 +0000 (09:10 +0000)]
Allow removal of obsolete map checks after transitions.

This allows side effect dominator tracking to remove map checks that are
dominated by a single HStoreNamedField that performs a transition on the
same object. A similar trick could be applied to HAllocateObject.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix --hydrogen-stats.
yangguo@chromium.org [Thu, 24 Jan 2013 08:39:35 +0000 (08:39 +0000)]
Fix --hydrogen-stats.

V8 crashes with this flag when trying to compile hydrogen stubs.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoImplicit references are missing in heap profiles
yurys@chromium.org [Thu, 24 Jan 2013 07:54:40 +0000 (07:54 +0000)]
Implicit references are missing in heap profiles
Review URL: https://codereview.chromium.org/11953043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoEnsure a type-error is thrown when trying to assign to a readonly property on the...
verwaest@chromium.org [Wed, 23 Jan 2013 17:27:25 +0000 (17:27 +0000)]
Ensure a type-error is thrown when trying to assign to a readonly property on the global scope.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00