Commit Graph

17015 Commits

Author SHA1 Message Date
rossberg@chromium.org
cb2419c615 Infer whether a variable is assigned in inner functions
R=titzer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 11:59:42 +00:00
mstarzinger@chromium.org
1824edd6bc Reland "Allow inlining of functions containing %_ArgumentsLength."
The layout test failures were unrelated to this change.

R=svenpanne@chromium.org
TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 11:55:31 +00:00
ulan@chromium.org
7f5c66b26b Keep CodeRange::current_allocation_block_index_ in range after r21869.
BUG=305878,388328
LOG=N
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 11:49:39 +00:00
jochen@chromium.org
6096f1bb0f Roll buildtools to fb782d4369d5ae04f17a2fceef7de5a63e50f07b
Also add hooks to download clang-format binaries.

BUG=none
R=machenbach@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 10:49:27 +00:00
mvstanton@chromium.org
4273c7c070 Use IC register definitions in platform files.
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 10:00:36 +00:00
yangguo@chromium.org
e26102ac24 Suppress GC stress failure for a test that asserts code being optimized.
The reason is that GC stress causes additional deopts that the test
originally did not foresee.

R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 09:49:17 +00:00
ishell@chromium.org
37651f4f01 Avoid adjusting live bytes in JSObject::MigrateFastToFast() if the size delta is zero.
BUG=chromium:388880
LOG=N
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 08:34:34 +00:00
weiliang.lin@intel.com
2c45989333 X87: Cleanup CallInterfaceDescriptor
port r22014

original commit message:
 Make CallInterfaceDescriptor work like CodeStubInterfaceDescriptor, owning it's
 register and representation arrays. This also eliminates a host of TSAN warnings
 xfor static arrays

 This CL depends on https://codereview.chromium.org/352583002 landing first
 (a conceptual dependency at least).

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 07:32:17 +00:00
yangguo@chromium.org
a2d15ce518 Compile optimized code with active debugger but no break points.
R=ulan@chromium.org
BUG=386492
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 06:32:51 +00:00
weiliang.lin@intel.com
8ff53a8d62 X87: The IC exposes a register definition.
port r22011

original commit message:
  Centralize a register definition in an IC that provides:
  1) symbolic names for the register (like, edx == receiver)
  2) defines ordering when passed on the stack

  Code that implements or uses the IC should use this definition instead of "knowing" what the registers are. Or at least have the definition to validate it's assumptions.

  As a side effect of avoiding runtime static initializers (enforced by tools/check-static-initializers.sh, neat), I gave ownership of the registers array to CodeStubInterfaceDescriptor. This prompted a cleanup of that struct

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 05:43:16 +00:00
danno@chromium.org
8313c523b3 Optimize Map/Set.prototype.forEach
Instead of using an iterator result object and an entries array
(for Map) we introduce a new runtime function that uses an array
as an out param.

On the Map ForEach perf test this leads to a 2.5x performance
improvement. On the overall Map and Set tests this leads to a 18%
and 13% improvement respectively.

BUG=None
LOG=Y
R=danno@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 00:40:45 +00:00
kilvadyb@homejinni.com
53c540a033 MIPS: Fix r22021 “The IC exposes a register definition.” after r22018.
BUG=
R=palfia@homejinni.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 19:30:48 +00:00
kilvadyb@homejinni.com
73fc21c40d MIPS: Cleanup CallInterfaceDescriptor.
Port r22014 (234866c)

Original commit message:
Make CallInterfaceDescriptor work like CodeStubInterfaceDescriptor, owning it's
register and representation arrays. This also eliminates a host of TSAN warnings
for static arrays.

This CL depends on https://codereview.chromium.org/352583002 landing first
(a conceptual dependency at least).

BUG=
R=palfia@homejinni.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 18:43:06 +00:00
mstarzinger@chromium.org
70891ddf32 Revert "Allow inlining of functions containing %_ArgumentsLength."
This cuased layout test failures.

TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 17:21:44 +00:00
kilvadyb@homejinni.com
55126885b7 MIPS: The IC exposes a register definition.
Port r22011 (be22370)

Original commit message:
Centralize a register definition in an IC that provides:
1) symbolic names for the register (like, edx == receiver)
2) defines ordering when passed on the stack

Code that implements or uses the IC should use this definition instead of "knowing" what the registers are. Or at least have the definition to validate it's assumptions.

As a side effect of avoiding runtime static initializers (enforced by tools/check-static-initializers.sh, neat), I gave ownership of the registers array to CodeStubInterfaceDescriptor. This prompted a cleanup of that struct.

BUG=
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 16:17:31 +00:00
mstarzinger@chromium.org
ace9759359 Allow inlining of functions containing %_ArgumentsLength.
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 16:02:49 +00:00
ulan@chromium.org
c266cd91e0 Collect garbage with kReduceMemoryFootprintMask in IdleNotification.
BUG=350720
LOG=Y
TBR=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 15:29:58 +00:00
danno@chromium.org
eaca750b29 Remove distinction between hidden and normal runtime functions
R=jkummerow@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 15:26:10 +00:00
alexandre.rames@arm.com
a7408e5124 ARM: Use the shifter operand to merge in previous shift instructions.
When possible, we transform sequences of code of the form
    lsl r1, r2, #imm
    add r0, r5, r1
into
    add r0, r5, r2 LSL #imm

This is an adaptation of r21161.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 15:11:00 +00:00
machenbach@chromium.org
bd7652f1f5 Whitespace change to trigger bots.
TBR=jkummerow@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 14:24:15 +00:00
machenbach@chromium.org
79b1f09d16 Fix tools/whitespace.txt. Huge perf improvements.
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 14:14:54 +00:00
mvstanton@chromium.org
8f905ee9fd Cleanup CallInterfaceDescriptor
Make CallInterfaceDescriptor work like CodeStubInterfaceDescriptor, owning it's
register and representation arrays. This also eliminates a host of TSAN warnings
for static arrays.

This CL depends on https://codereview.chromium.org/352583002 landing first
(a conceptual dependency at least).

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:52:58 +00:00
yangguo@chromium.org
7e9fc63d66 Reorder full code for while loops to better reflect statement positions.
R=jkummerow@chromium.org
BUG=v8:2047
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:42:28 +00:00
jkummerow@chromium.org
0bf430c1d6 Better fix for --trace-ic source positions: Use HOptimizedGraphBuilderWithPositions
This reverts the changes made in r22008.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:37:06 +00:00
mvstanton@chromium.org
addd35df56 The IC exposes a register definition.
Centralize a register definition in an IC that provides:
1) symbolic names for the register (like, edx == receiver)
2) defines ordering when passed on the stack

Code that implements or uses the IC should use this definition instead of "knowing" what the registers are. Or at least have the definition to validate it's assumptions.

As a side effect of avoiding runtime static initializers (enforced by tools/check-static-initializers.sh, neat), I gave ownership of the registers array to CodeStubInterfaceDescriptor. This prompted a cleanup of that struct.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:32:12 +00:00
yangguo@chromium.org
6f2368627c Blacklist failing test from GC stress runs.
The test expects a function not to deopt. However GC stress causes
the code to be marked for deopt for a reason we are not testing against.

R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:18:19 +00:00
mstarzinger@chromium.org
8a35e9ce47 Drop obsolete dont_optimize compiler hint.
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:12:21 +00:00
jkummerow@chromium.org
bb9d85e78e Fix --trace-ic position information for LoadICs and StoreICs in optimized code
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:06:03 +00:00
hpayer@chromium.org
51b189a27c Wait for sweeper threads when expansion of old generation fails.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 10:53:00 +00:00
machenbach@chromium.org
70ef1c240f Whitespace change to trigger bots.
TBR=jkummerow@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 10:36:02 +00:00
wingo@igalia.com
3454a45f5d Test that trailing commas in object literals are allowed
ES6 will allow trailing commas in object literals.  It turns out that V8
already allowed it, too, as does JSC and SpiderMonkey.

R=marja@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 10:13:10 +00:00
jochen@chromium.org
a05abda445 Set OS=android via GYP_DEFINES
Otherwise, the variable isn't available in all scopes. Instead of playing around
with nested scopes, we just set it in GYP_DEFINES (same as chromium does)

BUG=v8:3405
R=ulan@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 09:48:49 +00:00
ulan@chromium.org
6a5ab4b2d0 Grow heap slower if GC freed many global handles.
BUG=263503
LOG=Y
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 09:36:45 +00:00
hpayer@chromium.org
a2f85d6c35 Promotion is the backup strategy when semi-space copy fails and vice versa.
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 09:31:25 +00:00
yangguo@chromium.org
3247a71c78 Do not unnecessarily expose execution state in debug event data.
When we fire a debug event, we create duplicate execution state objects,
one as argument for the debug event listener, one as property on the
debug event data object. The latter is never used by chrome.

R=yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 09:13:09 +00:00
yangguo@chromium.org
50cc3a5ba8 Suppress ASAN for non-compatible test case.
This test calls quit() to exit d8 without proper tear down.

R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 09:05:28 +00:00
wingo@igalia.com
bf8e802f1a Add @@iterator, .entries(), .values(), .keys() support to typed arrays
R=arv@chromium.org, rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 08:46:53 +00:00
machenbach@chromium.org
52ef087dcf Fix clusterfuzz check in auto-roll.
Minor fixes: Strip new lines from api key. Missing import. Use string query parameters.

BUG=
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 08:44:59 +00:00
jochen@chromium.org
c0dd51efdb Remove dependency from platform.h implementations on isolate
BUG=none
R=bmeurer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 08:20:42 +00:00
machenbach@chromium.org
7833a1321c Add clusterfuzz check to v8 auto-roll script and use CQ.
This adds a check step that makes sure there are no new issues when rolling into chromium.

It also checks the cq bit on roll upload.

BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 08:17:45 +00:00
yangguo@chromium.org
4fa6a27ae2 Fix mjsunit's assertOptimized and assertUnoptimized.
This was broken some time ago by a refactor.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 08:01:13 +00:00
wingo@igalia.com
699bc8f73d Add @@iterator support for strings
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 07:43:14 +00:00
wingo@igalia.com
f6dfa63c9d Add @@iterator to Array.prototype
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 07:32:57 +00:00
marja@chromium.org
31ab363c82 Revert "Update survival statistics correctly in the Scavenger."
This reverts r21991.

Reason: lots of test failures.

BUG=
TBR=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 07:20:13 +00:00
hpayer@chromium.org
661630f589 Update survival statistics correctly in the Scavenger.
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 06:29:36 +00:00
kilvadyb@homejinni.com
1c4621848e MIPS: optimize Lithium Allocate.
Port r21968 (f6c757c)

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 16:53:25 +00:00
rodolph.perfetta@arm.com
83ee347736 ARM64: fix operator precedence issue.
As a result the constant pool marker was always 0.

BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 16:20:44 +00:00
alph@chromium.org
65e585fa38 CPU profiler: increase the max number of captured frames.
LOG=N
R=jkummerow@chromium.org, loislo@chromium.org, yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 16:00:51 +00:00
ishell@chromium.org
80e1bf42e5 More Map methods moved to private part.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 15:56:36 +00:00
ishell@chromium.org
ae1aaf7c76 Making MigrateToMap() a single bottleneck for all migrations except slow-to-fast case.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 15:28:29 +00:00