Commit Graph

10622 Commits

Author SHA1 Message Date
vegorov@chromium.org
5aafde9285 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
2013-02-11 14:12:13 +00:00
svenpanne@chromium.org
7b45ab9501 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
2013-02-11 13:02:20 +00:00
rossberg@chromium.org
ec0b001543 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
2013-02-11 12:28:22 +00:00
mstarzinger@chromium.org
89474cdede 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
2013-02-08 17:32:47 +00:00
danno@chromium.org
a77daae9f8 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
2013-02-08 14:32:38 +00:00
svenpanne@chromium.org
3b08a1f82c 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
2013-02-08 12:41:55 +00:00
mstarzinger@chromium.org
7a1edfd9a5 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
2013-02-08 11:56:15 +00:00
jkummerow@chromium.org
cd42e5173d 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
2013-02-07 15:51:05 +00:00
jkummerow@chromium.org
b09cc0be50 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
2013-02-07 15:45:47 +00:00
jkummerow@chromium.org
e83ff197bf 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
2013-02-07 15:38:24 +00:00
jkummerow@chromium.org
b1d7878c7f 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
2013-02-07 13:15:41 +00:00
danno@chromium.org
a2f0a01371 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
2013-02-07 10:02:11 +00:00
danno@chromium.org
9cb3a2e97d 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
2013-02-07 07:56:11 +00:00
adamk@chromium.org
19232a1e7a 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
2013-02-06 17:35:35 +00:00
mmassi@chromium.org
2dc84e9aec 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
2013-02-06 14:07:26 +00:00
mstarzinger@chromium.org
79607d20e6 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
2013-02-06 13:21:28 +00:00
yangguo@chromium.org
1e90596702 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
2013-02-06 13:04:02 +00:00
yangguo@chromium.org
4ccaefb097 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
2013-02-06 12:58:09 +00:00
yangguo@chromium.org
e6d0315b74 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
2013-02-06 11:54:27 +00:00
verwaest@chromium.org
f08b6ecac7 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
2013-02-06 11:48:29 +00:00
yangguo@chromium.org
c26b3c293d 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
2013-02-06 10:59:50 +00:00
mstarzinger@chromium.org
d6622203a5 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
2013-02-06 10:51:55 +00:00
ulan@chromium.org
4485930247 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
2013-02-06 10:32:02 +00:00
mstarzinger@chromium.org
e6c381ccdb 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
2013-02-06 09:31:18 +00:00
danno@chromium.org
9f947d714f 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
2013-02-05 18:00:42 +00:00
danno@chromium.org
940b65160a 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
2013-02-05 16:28:36 +00:00
mstarzinger@chromium.org
53f29b320d 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
2013-02-05 16:21:15 +00:00
hpayer@chromium.org
492396f2ab 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
2013-02-05 15:48:59 +00:00
verwaest@chromium.org
91218182c6 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
2013-02-05 10:38:40 +00:00
danno@chromium.org
5ce30a311d 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
2013-02-05 10:33:21 +00:00
danno@chromium.org
4c052815df 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
2013-02-05 08:09:32 +00:00
adamk@chromium.org
dbf50cf948 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
2013-02-04 21:03:08 +00:00
adamk@chromium.org
6ab7a23f6c 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
2013-02-04 20:24:11 +00:00
verwaest@chromium.org
4bf6a992cf 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
2013-02-04 15:40:50 +00:00
danno@chromium.org
bd389e6e2d 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
2013-02-04 13:32:52 +00:00
verwaest@chromium.org
aca87c2fcd 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
2013-02-04 13:12:03 +00:00
danno@chromium.org
0c3575c874 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
2013-02-04 12:01:59 +00:00
ulan@chromium.org
744d61ebe7 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
2013-02-04 10:56:50 +00:00
ulan@chromium.org
23ee3f285a 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
2013-02-04 10:30:54 +00:00
verwaest@chromium.org
7282be179e 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
2013-02-04 08:51:37 +00:00
verwaest@chromium.org
0d89d9a019 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
2013-02-01 13:39:36 +00:00
danno@chromium.org
df2a62fb25 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
2013-02-01 11:57:22 +00:00
verwaest@chromium.org
66b9909328 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
2013-02-01 10:35:21 +00:00
mmassi@chromium.org
3b8a61dcf3 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
2013-02-01 10:16:16 +00:00
mstarzinger@chromium.org
bc16616911 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
2013-02-01 08:54:38 +00:00
verwaest@chromium.org
b1e5157e7b 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
2013-01-31 16:18:18 +00:00
jkummerow@chromium.org
1c1fdc7da2 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
2013-01-31 15:36:24 +00:00
hpayer@chromium.org
7fe9f3b05c 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
2013-01-31 14:23:36 +00:00
mstarzinger@chromium.org
07bab08378 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
2013-01-31 13:26:55 +00:00
danno@chromium.org
66dbac2b88 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
2013-01-31 12:57:05 +00:00