platform/upstream/v8.git
10 years agoCleanup: Unify CodeGenerator class across platforms
jkummerow@chromium.org [Tue, 4 Feb 2014 13:53:41 +0000 (13:53 +0000)]
Cleanup: Unify CodeGenerator class across platforms

R=svenpanne@chromium.org

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

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

10 years agoTemporarily mark reserved-words-as-property as possibly failing.
marja@chromium.org [Tue, 4 Feb 2014 13:37:34 +0000 (13:37 +0000)]
Temporarily mark reserved-words-as-property as possibly failing.

V8 is changing an error message and Blink will disable this test temporarily,
too. This CL will keep the tree green until Blink is rolled into V8.

BUG=3126
LOG=N
R=svenpanne@chromium.org

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

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

10 years agoUse Type* in crankshaft rather than HeapType.
verwaest@chromium.org [Tue, 4 Feb 2014 12:44:15 +0000 (12:44 +0000)]
Use Type* in crankshaft rather than HeapType.

R=rossberg@chromium.org

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

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

10 years agoDon't access stack-allocated variable when it is out of scope. Enable Isolate cleanup...
svenpanne@chromium.org [Tue, 4 Feb 2014 12:23:30 +0000 (12:23 +0000)]
Don't access stack-allocated variable when it is out of scope. Enable Isolate cleanup in cctests again.

R=ulan@chromium.org

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

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

10 years agoTests and fixes for (pre)parse errors related to strict reserved words.
marja@chromium.org [Tue, 4 Feb 2014 12:19:53 +0000 (12:19 +0000)]
Tests and fixes for (pre)parse errors related to strict reserved words.

This contains the following fixes:

- We had strict_reserved_word and unexpected_strict_reserved, which one to use
was totally mixed in Parser and PreParser. Removed strict_reserved_word.
- When we saw a strict future reserved word when expecting something completely
different (such as "(" in "function foo interface"), Parser reports unexpected
identifier, whereas PreParser used to report unexpected strict reserved
word. Fixed PreParser to report unexpected identifier too.
- Unified parser and preparser error locations when the name of a function is a
strict reserved word. Now both point to the name.

BUG=3126
LOG=N
R=ulan@chromium.org

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

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

10 years agoAdded a test which installs a poisonous memento right after the new space top pointer.
hpayer@chromium.org [Tue, 4 Feb 2014 12:10:30 +0000 (12:10 +0000)]
Added a test which installs a poisonous memento right after the new space top pointer.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

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

10 years agoAdd Box object to heap profiler.
alph@chromium.org [Tue, 4 Feb 2014 11:43:19 +0000 (11:43 +0000)]
Add Box object to heap profiler.

LOG=Y
R=ulan@chromium.org, yurys@chromium.org

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

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

10 years agoTests for (pre)parse errors when "eval" and "arguments" are found in inappropriate...
marja@chromium.org [Tue, 4 Feb 2014 11:26:19 +0000 (11:26 +0000)]
Tests for (pre)parse errors when "eval" and "arguments" are found in inappropriate places.

In addition:
- Fix a bug in parser discovered by the tests (prefix and postfix confused in an
error message); the preparser had it right.
- Unify the parser and preparser error locations when the name of a function is
"eval" or "arguments. Now both point to the name.

BUG=3126
LOG=N
R=ulan@chromium.org

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

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

10 years agoFix in array instance type initialization.
ishell@chromium.org [Tue, 4 Feb 2014 10:59:40 +0000 (10:59 +0000)]
Fix in array instance type initialization.

R=dslomov@chromium.org

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

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

10 years agoRemake of the load elimination fix made earlier (r18884).
ishell@chromium.org [Tue, 4 Feb 2014 10:48:49 +0000 (10:48 +0000)]
Remake of the load elimination fix made earlier (r18884).

R=titzer@chromium.org, verwaest@chromium.org

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

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

10 years agoJust initialize elements pointer in fast literal when pre-tenuring.
hpayer@chromium.org [Tue, 4 Feb 2014 10:41:16 +0000 (10:41 +0000)]
Just initialize elements pointer in fast literal when pre-tenuring.

BUG=
R=ishell@chromium.org

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

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

10 years agoRemove unused AllocationSpace paramenter from CollectGarbage.
hpayer@chromium.org [Tue, 4 Feb 2014 10:30:36 +0000 (10:30 +0000)]
Remove unused AllocationSpace paramenter from CollectGarbage.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoRevert "Tests for (pre)parse errors when "eval" and "arguments" are found in inapprop...
marja@chromium.org [Tue, 4 Feb 2014 10:00:36 +0000 (10:00 +0000)]
Revert "Tests for (pre)parse errors when "eval" and "arguments" are found in inappropriate places."

Reason: The fixed error message broke some tests.

This reverts r19050.

BUG=
TBR=ulan@chromium.org

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

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

10 years agoAdd per-file OWNERS for MIPS-specific cctests
jkummerow@chromium.org [Tue, 4 Feb 2014 09:53:26 +0000 (09:53 +0000)]
Add per-file OWNERS for MIPS-specific cctests

R=danno@chromium.org

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

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

10 years agoCheck the offset argument of TypedArray.set for fitting into Smi.
dslomov@chromium.org [Tue, 4 Feb 2014 09:53:05 +0000 (09:53 +0000)]
Check the offset argument of TypedArray.set for fitting into Smi.

R=jkummerow@chromium.org
BUG=340125
LOG=Y

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

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

10 years agoTests for (pre)parse errors when "eval" and "arguments" are found in inappropriate...
marja@chromium.org [Tue, 4 Feb 2014 09:47:30 +0000 (09:47 +0000)]
Tests for (pre)parse errors when "eval" and "arguments" are found in inappropriate places.

In addition:
- Fix a bug in parser discovered by the tests (prefix and postfix confused in an
  error message); the preparser had it right.
- Unify the parser and preparser error locations when the name of a function is
  "eval" or "arguments. Now both point to the name.

BUG=3126
LOG=N
R=ulan@chromium.org

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

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

10 years agoRevert "Dispose Isolate at end of cctest."
svenpanne@chromium.org [Tue, 4 Feb 2014 09:41:21 +0000 (09:41 +0000)]
Revert "Dispose Isolate at end of cctest."

Things work locally, only the waterfall is unhappy for some arcane reason.
Investigating...

TBR=bmeurer@chromium.org

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

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

10 years agoDispose Isolate at end of cctest.
svenpanne@chromium.org [Tue, 4 Feb 2014 08:30:35 +0000 (08:30 +0000)]
Dispose Isolate at end of cctest.

No measurable change in test running time, we clean up only trivial
known things at disposal time and do not walk the heap, run real
finalizers, etc.

R=ulan@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.32.
machenbach@chromium.org [Tue, 4 Feb 2014 07:54:03 +0000 (07:54 +0000)]
Prepare push to trunk.  Now working on version 3.24.32.

R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

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

10 years agoMIPS: Unroll push loop in r19040 and other push optimizations.
palfia@homejinni.com [Tue, 4 Feb 2014 00:06:44 +0000 (00:06 +0000)]
MIPS: Unroll push loop in r19040 and other push optimizations.

BUG=
R=plind44@gmail.com

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

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

10 years agoMIPS: let load and store api callbacks use global proxy as receiver.
plind44@gmail.com [Mon, 3 Feb 2014 18:44:23 +0000 (18:44 +0000)]
MIPS: let load and store api callbacks use global proxy as receiver.

Port r19033 (c31b3e7)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agolet load and store api callbacks use global proxy as receiver
dcarney@chromium.org [Mon, 3 Feb 2014 15:19:38 +0000 (15:19 +0000)]
let load and store api callbacks use global proxy as receiver

R=verwaest@chromium.org

BUG=

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

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

10 years agoFix short-circuiting logical and/or in HOptimizedGraphBuilder.
yangguo@chromium.org [Mon, 3 Feb 2014 14:29:34 +0000 (14:29 +0000)]
Fix short-circuiting logical and/or in HOptimizedGraphBuilder.

R=jkummerow@chromium.org
BUG=336148
LOG=Y

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

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

10 years agoElements field of newly allocated JSArray could be left uninitialized in some cases...
ishell@chromium.org [Mon, 3 Feb 2014 13:33:26 +0000 (13:33 +0000)]
Elements field of newly allocated JSArray could be left uninitialized in some cases (fast literal case).

BUG=340124
LOG=Y
R=hpayer@chromium.org

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

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

10 years agoMake memento checks more stable. Add filler at the end of new space and check if...
hpayer@chromium.org [Mon, 3 Feb 2014 12:20:15 +0000 (12:20 +0000)]
Make memento checks more stable. Add filler at the end of new space and check if object and memento are on the same new space page.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

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

10 years agoReturn a valid map for PropertyAccessInfos with Boolean type.
verwaest@chromium.org [Mon, 3 Feb 2014 10:20:32 +0000 (10:20 +0000)]
Return a valid map for PropertyAccessInfos with Boolean type.

BUG=340064
LOG=N
R=dcarney@chromium.org

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

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

10 years ago[x64] add disasm for two fp instructions
yangguo@chromium.org [Mon, 3 Feb 2014 08:13:12 +0000 (08:13 +0000)]
[x64] add disasm for two fp instructions

BUG=
R=yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

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

10 years agoRe-enable escape analysis.
jarin@chromium.org [Mon, 3 Feb 2014 07:57:07 +0000 (07:57 +0000)]
Re-enable escape analysis.

R=danno@chromium.org, mstarzinger@chromium.org
LOG=Y
BUG=

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

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

10 years agoMore cctest fixes regarding lifetime/ownership.
svenpanne@chromium.org [Mon, 3 Feb 2014 07:29:23 +0000 (07:29 +0000)]
More cctest fixes regarding lifetime/ownership.

   * Avoid double-free in cctest/test-api/RegExpInterruption.

   * Avoid incorrect zone fiddling in cctest/test-strings.

R=ulan@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.31.
machenbach@chromium.org [Mon, 3 Feb 2014 07:22:59 +0000 (07:22 +0000)]
Prepare push to trunk.  Now working on version 3.24.31.

R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

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

10 years agoReplace nonexistent a4 by t0 on mips.
verwaest@chromium.org [Sat, 1 Feb 2014 11:30:38 +0000 (11:30 +0000)]
Replace nonexistent a4 by t0 on mips.

BUG=
R=ulan@chromium.org

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

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

10 years agoEnsure we don't clobber the cell on ARM and MIPS
verwaest@chromium.org [Sat, 1 Feb 2014 10:43:57 +0000 (10:43 +0000)]
Ensure we don't clobber the cell on ARM and MIPS

BUG=
R=ulan@chromium.org

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

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

10 years agoEnsure the word after top is cleared in newspace if top < high.
verwaest@chromium.org [Sat, 1 Feb 2014 10:35:36 +0000 (10:35 +0000)]
Ensure the word after top is cleared in newspace if top < high.

BUG=
R=ulan@chromium.org

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

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

10 years agoFix expectations for new regression test.
machenbach@chromium.org [Sat, 1 Feb 2014 09:56:20 +0000 (09:56 +0000)]
Fix expectations for new regression test.

TBR=jarin@chromium.org

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.30.
machenbach@chromium.org [Sat, 1 Feb 2014 08:54:23 +0000 (08:54 +0000)]
Prepare push to trunk.  Now working on version 3.24.30.

R=verwaest@chromium.org
TBR=verwaest@chromium.org

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

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

10 years agoMIPS: Remove CallICs
palfia@homejinni.com [Sat, 1 Feb 2014 02:23:46 +0000 (02:23 +0000)]
MIPS: Remove CallICs

Port r19001 (4b5aa649)

BUG=
R=plind44@gmail.com

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

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

10 years agoMIPS: Fix zlib critical performance regression.
plind44@gmail.com [Fri, 31 Jan 2014 18:59:32 +0000 (18:59 +0000)]
MIPS: Fix zlib critical performance regression.

The very low score on zlib benchmark is caused by
huge number of deoptimizations inside BinaryOpIC stubs
when arguments are boolean.

TEST=
BUG=
R=plind44@gmail.com

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

Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

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

10 years agoAdjust test expectations to new error on method not found
verwaest@chromium.org [Fri, 31 Jan 2014 17:39:59 +0000 (17:39 +0000)]
Adjust test expectations to new error on method not found

BUG=
R=machenbach@chromium.org

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

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

10 years agoRemove CallICs
verwaest@chromium.org [Fri, 31 Jan 2014 16:52:17 +0000 (16:52 +0000)]
Remove CallICs

BUG=
R=dcarney@chromium.org

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

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

10 years ago[Sheriff] Mark new regression test flaky on linux 32.
machenbach@chromium.org [Fri, 31 Jan 2014 16:47:52 +0000 (16:47 +0000)]
[Sheriff] Mark new regression test flaky on linux 32.

BUG=
TBR=jarin@chromium.org

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

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

10 years agoSimpler repro for bug 2989.
jarin@chromium.org [Fri, 31 Jan 2014 16:12:58 +0000 (16:12 +0000)]
Simpler repro for bug 2989.

We do not correctly handle accesses to f.arguments after one
of the argument has changed (where f is crankshafted).

R=machenbach@chromium.org
BUG=v8:2989
LOG=n

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

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

10 years agoMigrate crashing tests from blink repository.
machenbach@chromium.org [Fri, 31 Jan 2014 14:31:43 +0000 (14:31 +0000)]
Migrate crashing tests from blink repository.

TBR=bmeurer@chromium.org
BUG=237872
LOG=n

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

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

10 years agoRemove IsRegExpEquivalent.
jochen@chromium.org [Fri, 31 Jan 2014 14:17:02 +0000 (14:17 +0000)]
Remove IsRegExpEquivalent.

It's not used anywhere.

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

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.29.
machenbach@chromium.org [Fri, 31 Jan 2014 14:01:29 +0000 (14:01 +0000)]
Prepare push to trunk.  Now working on version 3.24.29.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

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

10 years ago[Sheriff] Mark new regression test as flaky.
machenbach@chromium.org [Fri, 31 Jan 2014 13:56:00 +0000 (13:56 +0000)]
[Sheriff] Mark new regression test as flaky.

BUG=336820
LOG=n
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

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

10 years agoDon't crash in Array.join() if the resulting string exceeds the max string length.
bmeurer@chromium.org [Fri, 31 Jan 2014 12:21:17 +0000 (12:21 +0000)]
Don't crash in Array.join() if the resulting string exceeds the max string length.

LOG=y
BUG=336820
R=svenpanne@chromium.org

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

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

10 years agoLoad elimination fix: load should not be replaced with another load if the former...
ishell@chromium.org [Fri, 31 Jan 2014 12:03:32 +0000 (12:03 +0000)]
Load elimination fix: load should not be replaced with another load if the former is not dominated by the latter.

R=jkummerow@chromium.org

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

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

10 years agogrokdump: Compute correct call destinations and display them in-place
jkummerow@chromium.org [Fri, 31 Jan 2014 11:49:07 +0000 (11:49 +0000)]
grokdump: Compute correct call destinations and display them in-place

R=verwaest@chromium.org

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

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

10 years agoDon't unmark dictionary mode maps as unstable.
verwaest@chromium.org [Fri, 31 Jan 2014 11:38:43 +0000 (11:38 +0000)]
Don't unmark dictionary mode maps as unstable.
R=ulan@chromium.org
BUG=

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

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

10 years agoDisable concurrent sweeping.
hpayer@chromium.org [Fri, 31 Jan 2014 10:31:55 +0000 (10:31 +0000)]
Disable concurrent sweeping.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoUse `CHECK_OBJECT_COERCIBLE` macro where possible
bmeurer@chromium.org [Fri, 31 Jan 2014 10:05:58 +0000 (10:05 +0000)]
Use `CHECK_OBJECT_COERCIBLE` macro where possible

Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=
BUG=v8:3122
LOG=N
R=arv@chromium.org

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

Patch from Mathias Bynens <mathiasb@opera.com>.

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

10 years agoOnce again: Fixed some lifetime/ownership issues in cctest
svenpanne@chromium.org [Fri, 31 Jan 2014 09:59:50 +0000 (09:59 +0000)]
Once again: Fixed some lifetime/ownership issues in cctest

   * Fixed lifetime issue in cctest/test-heap-profiler/HeapSnapshotJSONSerialization.

   * Fixed ownership issue in cctest/test-api/ContainsOnlyOneByte.

R=ulan@chromium.org

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

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

10 years agoRevert "[Sheriff] Mark profviz flaky on GC stress."
hpayer@chromium.org [Fri, 31 Jan 2014 09:59:22 +0000 (09:59 +0000)]
Revert "[Sheriff] Mark profviz flaky on GC stress."

This reverts commit f70687c1e5ef15254887e0619939e25a834e936e.

BUG=
R=machenbach@chromium.org

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

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

10 years agoAdd Opera Software ASA to AUTHORS
bmeurer@chromium.org [Fri, 31 Jan 2014 09:18:43 +0000 (09:18 +0000)]
Add Opera Software ASA to AUTHORS

Contributed by Mathias Bynens <mathiasb@opera.com>.

BUG=
LOG=N
R=bmeurer@chromium.org, jarin@chromium.org

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

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

10 years agoFix deopt fuzzer variable set up.
machenbach@chromium.org [Fri, 31 Jan 2014 09:10:56 +0000 (09:10 +0000)]
Fix deopt fuzzer variable set up.

Adds the simulator variable configuration from r18959 to the deopt fuzzer.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoFix python path for gyp.
machenbach@chromium.org [Fri, 31 Jan 2014 09:09:43 +0000 (09:09 +0000)]
Fix python path for gyp.

BUG=
R=jochen@chromium.org

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

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

10 years agoCheck forwarding pointer when marking objects for deoptimization.
hpayer@chromium.org [Fri, 31 Jan 2014 09:07:30 +0000 (09:07 +0000)]
Check forwarding pointer when marking objects for deoptimization.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

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

10 years agoImplements ES6 String.prototype.normalize method.
svenpanne@chromium.org [Fri, 31 Jan 2014 08:09:17 +0000 (08:09 +0000)]
Implements ES6 String.prototype.normalize method.

BUG=v8:2943
LOG=Y
TEST=Unit tests for "real life" use cases, edge cases, various types of normalization.

==========================

This is identical to the previous CL
   https://codereview.chromium.org/40133004/
with two differences:
 * Added a dummy implementation of String.prototype.normalize to be used when v8 is compiled without intl support
 * Rebased the the test files for webkit. That was the only reason for the previous failure (and revert).

Thank you,
Mihai

R=svenpanne@chromium.org

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

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

10 years agoFixed a few lifetime/ownership issues in cctest/test-api.
svenpanne@chromium.org [Fri, 31 Jan 2014 07:29:25 +0000 (07:29 +0000)]
Fixed a few lifetime/ownership issues in cctest/test-api.

   * Fixed CompileExternalTwoByteSource: Registered resources should
     better still be alive when they are accessed.

   * Fixed ownership in cctest/test-api/VisitExternalStrings.

R=ulan@chromium.org

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

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

10 years agoImprove HConstant::ImmortalImmovable() to check for all immortal immovable roots.
bmeurer@chromium.org [Fri, 31 Jan 2014 07:28:46 +0000 (07:28 +0000)]
Improve HConstant::ImmortalImmovable() to check for all immortal immovable roots.

Move the list to IMMORTAL_IMMOVABLE_ROOT_LIST in heap.h, and
automatically include INTERNALIZED_STRING_LIST and STRING_TYPE_LIST.

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

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

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

10 years agoFix compiler error on MacOS, remove unused ParameterCount member in CallInterceptorCo...
hpayer@chromium.org [Fri, 31 Jan 2014 07:02:33 +0000 (07:02 +0000)]
Fix compiler error on MacOS, remove unused ParameterCount member in CallInterceptorCompiler.

BUG=
R=bmeurer@chromium.org

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

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

10 years agoMIPS: Fix the context check in LoadGlobalFunctionPrototype
palfia@homejinni.com [Fri, 31 Jan 2014 00:49:07 +0000 (00:49 +0000)]
MIPS: Fix the context check in LoadGlobalFunctionPrototype

Port r18958 (5cd635d0)

BUG=
R=verwaest@chromium.org

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

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

10 years agoMIPS: crankshaft support for api method calls
palfia@homejinni.com [Fri, 31 Jan 2014 00:36:19 +0000 (00:36 +0000)]
MIPS: crankshaft support for api method calls

Port r18946 (a152f5ae)

BUG=
R=plind44@gmail.com

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

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

10 years agoFix regression caused by supporting inlining accesses to non-JSObjects
verwaest@chromium.org [Fri, 31 Jan 2014 00:29:04 +0000 (00:29 +0000)]
Fix regression caused by supporting inlining accesses to non-JSObjects

TBR=dcarney@chromium.org
BUG=

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

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

10 years agoMIPS: Specialize FixedTypedArray<> set and get functions to solve unaligned double...
plind44@gmail.com [Thu, 30 Jan 2014 20:05:11 +0000 (20:05 +0000)]
MIPS: Specialize FixedTypedArray<> set and get functions to solve unaligned double access.

BUG=
TEST=test-api/FixedFloat64Array
R=dslomov@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: stub api getters.
plind44@gmail.com [Thu, 30 Jan 2014 18:22:28 +0000 (18:22 +0000)]
MIPS: stub api getters.

Port r18941 (517adbf)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoMIPS: Optimize HWrapReceiver.
plind44@gmail.com [Thu, 30 Jan 2014 18:13:38 +0000 (18:13 +0000)]
MIPS: Optimize HWrapReceiver.

Port r18945 (699b03e)

BUG=
R=verwaest@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoSkip webkit/function-apply-aliased.js when running on simulators.
plind44@gmail.com [Thu, 30 Jan 2014 18:04:33 +0000 (18:04 +0000)]
Skip webkit/function-apply-aliased.js when running on simulators.

The webkit/function-apply-aliased.js test fails on simulators (both MIPS
and ARM) as the printed output does not match to the expected. The
failing test forces a stack overflow exception and the ToString()
operation of the exception object fails because of an other stack
overflow and returns an empty string.

The problem is that on hardware a common JS and C stack is used so the
stack overflow can be caught in C functions also while on simulator
separated JS and C stacks are used.

This patch adds a "sim" condition to test .status files to skip tests
only on simulator.

LOG=N
BUG=v8:3124
R=jkummerow@chromium.org, plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoFix the context check in LoadGlobalFunctionPrototype
verwaest@chromium.org [Thu, 30 Jan 2014 17:45:09 +0000 (17:45 +0000)]
Fix the context check in LoadGlobalFunctionPrototype

R=dcarney@chromium.org

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

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

10 years agoFix polymorphic load handling.
verwaest@chromium.org [Thu, 30 Jan 2014 16:44:32 +0000 (16:44 +0000)]
Fix polymorphic load handling.

BUG=
R=dcarney@chromium.org

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

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

10 years agoRevert "Use HType::NonPrimitive() for non primitive HConstants."
bmeurer@chromium.org [Thu, 30 Jan 2014 13:54:01 +0000 (13:54 +0000)]
Revert "Use HType::NonPrimitive() for non primitive HConstants."

This reverts commit r18947.

TBR=hpayer@chromium.org

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

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

10 years agoUse HType::NonPrimitive() for non primitive HConstants.
bmeurer@chromium.org [Thu, 30 Jan 2014 13:32:05 +0000 (13:32 +0000)]
Use HType::NonPrimitive() for non primitive HConstants.

This allows us to use the faster write barrier, omitting the
smi check when storing constant heap objects.

R=hpayer@chromium.org

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

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

10 years agocrankshaft support for api method calls
dcarney@chromium.org [Thu, 30 Jan 2014 13:18:41 +0000 (13:18 +0000)]
crankshaft support for api method calls

R=verwaest@chromium.org

BUG=

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

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

10 years agoOptimize HWrapReceiver
verwaest@chromium.org [Thu, 30 Jan 2014 12:52:49 +0000 (12:52 +0000)]
Optimize HWrapReceiver

R=dcarney@chromium.org

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

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

10 years agoDisable unsuitable tests in ASAN mode.
machenbach@chromium.org [Thu, 30 Jan 2014 12:52:22 +0000 (12:52 +0000)]
Disable unsuitable tests in ASAN mode.

BUG=
R=verwaest@chromium.org

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

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

10 years agoAdd global_context field to GlobalObject in heap profiler.
alph@chromium.org [Thu, 30 Jan 2014 12:17:21 +0000 (12:17 +0000)]
Add global_context field to GlobalObject in heap profiler.

LOG=N
R=ulan@chromium.org, yurys@chromium.org

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

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

10 years agostub api getters
dcarney@chromium.org [Thu, 30 Jan 2014 12:15:51 +0000 (12:15 +0000)]
stub api getters

R=verwaest@chromium.org

BUG=

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

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

10 years agoThe uninitialized value is immortal immovable.
bmeurer@chromium.org [Thu, 30 Jan 2014 12:00:52 +0000 (12:00 +0000)]
The uninitialized value is immortal immovable.

R=hpayer@chromium.org

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

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

10 years agoSupport loads from primitive values.
verwaest@chromium.org [Thu, 30 Jan 2014 11:30:38 +0000 (11:30 +0000)]
Support loads from primitive values.
This also changes load computation to use HeapTypes rather than Maps.
TODO: move conversion between maps and heaptypes earlier in the process, already in the oracle.

BUG=
R=dcarney@chromium.org

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

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

10 years agoMake sure we delete[] what we got from new[], not one byte after it.
svenpanne@chromium.org [Thu, 30 Jan 2014 10:53:20 +0000 (10:53 +0000)]
Make sure we delete[] what we got from new[], not one byte after it.

R=ulan@chromium.org

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

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

10 years agoThe current
jarin@chromium.org [Thu, 30 Jan 2014 10:33:53 +0000 (10:33 +0000)]
The current
version is passing all the existing test + a bunch of new tests
(packaged in the change list, too).

The patch extends the SlotRef object to describe captured and duplicated
objects. Since the SlotRefs are not independent of each other anymore,
there is a new SlotRefValueBuilder class that stores the SlotRefs and
later materializes the objects from the SlotRefs.

Note that unlike the previous implementation of SlotRefs, we now build
the SlotRef entries for the entire frame, not just the particular
function.  This is because duplicate objects might refer to previous
captured objects (that might live inside other inlined function's part
of the frame).

We also need to store the materialized objects between other potential
invocations of the same arguments object so that we materialize each
captured object at most once.  The materialized objects of frames live
in the new MaterielizedObjectStore object (contained in Isolate),
indexed by the frame's FP address.  Each argument materialization (and
deoptimization) tries to lookup its captured objects in the store before
building new ones.  Deoptimization also removes the materialized objects
from the store. We also schedule a lazy deopt to be sure that we always
get rid of the materialized objects and that the optmized function
adopts the materialized objects (instead of happily computing with its
captured representations).

Concerns:

- Is the FP address the right key for a frame? (Note that deoptimizer's
representation of frame is different from the argument object
materializer's one - it is not easy to find common ground.)

- Performance is suboptimal in several places, but a quick local run of
benchmarks does not seem to show a perf hit. Examples of possible
improvements: smarter generation of SlotRefs (build other functions'
SlotRefs only for captured objects and only if necessary), smarter
lookup of stored materialized objects.

- Ideally, we would like to share the code for argument materialization
with deoptimizer's materializer.  However, the supporting data structures
(mainly the frame descriptor) are quite different in each case, so it
looks more like a separate project.

Thanks for any feedback.

R=danno@chromium.org, mstarzinger@chromium.org
LOG=N
BUG=

Committed: https://code.google.com/p/v8/source/detail?r=18918

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

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

10 years agoFix test expectations for cctest/test-debug.
machenbach@chromium.org [Thu, 30 Jan 2014 10:16:54 +0000 (10:16 +0000)]
Fix test expectations for cctest/test-debug.

BUG=v8:3125
R=bmeurer@chromium.org
TBR=verwaest@chromium.org
LOG=n

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

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

10 years agoMIPS: Turn RegExpConstructResultStub into a HydrogenCodeStub.
palfia@homejinni.com [Thu, 30 Jan 2014 01:42:03 +0000 (01:42 +0000)]
MIPS: Turn RegExpConstructResultStub into a HydrogenCodeStub.

Port r18902 (ba394fbc)

Original commit message:
This has the additional benefit that it is now possible to
inline the RegExpResult construction code into Hydrogen
builtins.

BUG=
R=plind44@gmail.com

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

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

10 years agoPrepare push to trunk. Now working on version 3.24.28.
machenbach@chromium.org [Thu, 30 Jan 2014 01:05:08 +0000 (01:05 +0000)]
Prepare push to trunk.  Now working on version 3.24.28.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

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

10 years agoMIPS: Remove the HValueOf instruction.
palfia@homejinni.com [Wed, 29 Jan 2014 21:51:08 +0000 (21:51 +0000)]
MIPS: Remove the HValueOf instruction.

Port r18905 (88f14cd3)

BUG=
R=plind44@gmail.com

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

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

10 years ago[Sheriff] Mark profviz flaky on GC stress.
machenbach@chromium.org [Wed, 29 Jan 2014 20:50:51 +0000 (20:50 +0000)]
[Sheriff] Mark profviz flaky on GC stress.

BUG=
TBR=hpayer@chromium.org

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

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

10 years agoMake eager allocation site pretenuring decisions.
hpayer@chromium.org [Wed, 29 Jan 2014 17:03:57 +0000 (17:03 +0000)]
Make eager allocation site pretenuring decisions.

BUG=
R=mvstanton@chromium.org

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

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

10 years agoDo not overwrite builtin code names in heap profiler
alph@chromium.org [Wed, 29 Jan 2014 17:03:13 +0000 (17:03 +0000)]
Do not overwrite builtin code names in heap profiler

Make sure builtin code objects get their builtin tags
first. Otherwise a particular JSFunction object could set
its custom name to a generic builtin.

LOG=N
R=ulan@chromium.org, yurys@chromium.org

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

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

10 years ago[Sheriff] Mark test-debug/* as flaky on Mac.
machenbach@chromium.org [Wed, 29 Jan 2014 16:59:50 +0000 (16:59 +0000)]
[Sheriff] Mark test-debug/* as flaky on Mac.

Now including release mode.

BUG=v8:3125
LOG=n
TBR=verwaest@chromium.org

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

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

10 years agoRevert "Captured arguments object materialization"
jarin@chromium.org [Wed, 29 Jan 2014 15:49:48 +0000 (15:49 +0000)]
Revert "Captured arguments object materialization"

R=jarin@chromium.org

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

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

10 years agoMake 'ASAN' configurable in test status file.
machenbach@chromium.org [Wed, 29 Jan 2014 15:30:41 +0000 (15:30 +0000)]
Make 'ASAN' configurable in test status file.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoDon't parallelize tests that register extensions.
machenbach@chromium.org [Wed, 29 Jan 2014 15:29:58 +0000 (15:29 +0000)]
Don't parallelize tests that register extensions.

These tests register extensions on the isolate and the configuration of the extensions runs out of scope. If run in parallel, other tests access the isolate's state and read the registered extensions.

BUG=
R=dcarney@chromium.org

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

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

10 years ago[Sheriff] Mark test-debug/* as flaky on Mac.
machenbach@chromium.org [Wed, 29 Jan 2014 15:15:37 +0000 (15:15 +0000)]
[Sheriff] Mark test-debug/* as flaky on Mac.

BUG=v8:3125
LOG=n
TBR=verwaest@chromium.org

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

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

10 years agoThis is a preview of the captured arguments object materialization,
jarin@chromium.org [Wed, 29 Jan 2014 15:14:15 +0000 (15:14 +0000)]
This is a preview of the captured arguments object materialization,
mostly to make sure that it is going in the right direction. The current
version is passing all the existing test + a bunch of new tests
(packaged in the change list, too).

The patch extends the SlotRef object to describe captured and duplicated
objects. Since the SlotRefs are not independent of each other anymore,
there is a new SlotRefValueBuilder class that stores the SlotRefs and
later materializes the objects from the SlotRefs.

Note that unlike the previous implementation of SlotRefs, we now build
the SlotRef entries for the entire frame, not just the particular
function.  This is because duplicate objects might refer to previous
captured objects (that might live inside other inlined function's part
of the frame).

We also need to store the materialized objects between other potential
invocations of the same arguments object so that we materialize each
captured object at most once.  The materialized objects of frames live
in the new MaterielizedObjectStore object (contained in Isolate),
indexed by the frame's FP address.  Each argument materialization (and
deoptimization) tries to lookup its captured objects in the store before
building new ones.  Deoptimization also removes the materialized objects
from the store. We also schedule a lazy deopt to be sure that we always
get rid of the materialized objects and that the optmized function
adopts the materialized objects (instead of happily computing with its
captured representations).

Concerns:

- Is there a simpler/more correct way to store the already-materialized
objects? (At the moment there is a custom root reference to JSArray
containing frames' FixedArrays with their captured objects.)

- Is the FP address the right key for a frame? (Note that deoptimizer's
representation of frame is different from the argument object
materializer's one - it is not easy to find common ground.)

- Performance is suboptimal in several places, but a quick local run of
benchmarks does not seem to show a perf hit. Examples of possible
improvements: smarter generation of SlotRefs (build other functions'
SlotRefs only for captured objects and only if necessary), smarter
lookup of stored materialized objects.

- Ideally, we would like to share the code for argument materialization
with deoptimizer's materializer.  However, the supporting data structures
(mainly the frame descriptor) are quite different in each case, so it
looks more like a separate project.

Thanks for any feedback.

R=mstarzinger@chromium.org, danno@chromium.org
LOG=N
BUG=

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

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

10 years agoSkip Mozilla tests with timeouts.
machenbach@chromium.org [Wed, 29 Jan 2014 15:13:45 +0000 (15:13 +0000)]
Skip Mozilla tests with timeouts.

- Let Mozilla tests with timeouts always run in no-variants mode. Otherwise the stress-run causes a 16 minutes timeout in debug mode and 32 minutes on arm debug.
- Four test cases with exponentially long running regular expressions are skipped entirely.

BUG=
R=jkummerow@chromium.org

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

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

10 years agoGeneralize internalization of substrings.
ulan@chromium.org [Wed, 29 Jan 2014 14:31:34 +0000 (14:31 +0000)]
Generalize internalization of substrings.

Make a template version of SubStringKey, which allows internalization of substrings of sequential and external strings.

R=dcarney@chromium.org, svenpanne@chromium.org

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

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

10 years agoDisable tracking of double fields during snapshot creation.
ulan@chromium.org [Wed, 29 Jan 2014 14:18:55 +0000 (14:18 +0000)]
Disable tracking of double fields during snapshot creation.

Follow-up to r18298.

R=verwaest@chromium.org

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

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

10 years agoReplace HThrow with HCallRuntime.
bmeurer@chromium.org [Wed, 29 Jan 2014 14:03:32 +0000 (14:03 +0000)]
Replace HThrow with HCallRuntime.

R=svenpanne@chromium.org

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

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

10 years agoMark next_code_link as weak in heap profiler.
alph@chromium.org [Wed, 29 Jan 2014 13:45:41 +0000 (13:45 +0000)]
Mark next_code_link as weak in heap profiler.

LOG=N
R=ulan@chromium.org, yurys@chromium.org

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

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

10 years agoRemove the unused HElementsKind instruction.
bmeurer@chromium.org [Wed, 29 Jan 2014 13:44:50 +0000 (13:44 +0000)]
Remove the unused HElementsKind instruction.

R=svenpanne@chromium.org

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

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