Commit Graph

916 Commits

Author SHA1 Message Date
weiliang.lin
c63e994166 [x86] Avoid memory form of PUSH/CALL for ATOM.
Review URL: https://codereview.chromium.org/853703002

Cr-Commit-Position: refs/heads/master@{#26163}
2015-01-20 14:59:56 +00:00
titzer
3442a5f9e0 [turbofan] First version of loop peeling.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26149}
2015-01-20 09:45:17 +00:00
Sven Panne
e4c5b84652 Contribution of PowerPC port (continuation of 422063005)
Contribution of PowerPC port (continuation of 422063005). The inital patch
covers the core changes to the common files.  Subsequent patches will cover
changes to common files to support AIX and to update the ppc directories so
they are current with the changes in the rest of the project.

This is based off of the GitHub repository
https://github.com/andrewlow/v8ppc

BUG=
R=svenpanne@chromium.org, danno@chromium.org, sevnpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26091}
2015-01-16 07:42:15 +00:00
arv
74e38e34b3 ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.

This is a revert of the revert, 7d48fd9dc2.

BUG=v8:3754
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26084}
2015-01-15 20:02:37 +00:00
dcarney
63cde592e0 [turbofan] add flag for register allocation verification
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26074}
2015-01-15 12:17:36 +00:00
titzer
159b14172f [turbofan] Implement OSR for outer loops.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26020}
2015-01-12 11:39:58 +00:00
dslomov
a417b41880 Unship ES6 classes.
R=rossberg@chromium.org
BUG=v8:3330

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

Cr-Commit-Position: refs/heads/master@{#26000}
2015-01-08 15:11:01 +00:00
jochen
33c81549fb Revert of Revert of Revert of Turn on job-based recompilation (patchset #1 id:1 of https://codereview.chromium.org/840023002/)
Reason for revert:
still doesn't work

Original issue's description:
> Revert of Revert of Turn on job-based recompilation (patchset #1 id:1 of https://codereview.chromium.org/791033007/)
>
> Reason for revert:
> attempt reland after landing a fix
>
> Original issue's description:
> > Revert of Turn on job-based recompilation (patchset #2 id:20001 of https://codereview.chromium.org/832183004/)
> >
> > Reason for revert:
> > revert
> >
> > Original issue's description:
> > > Turn on job-based recompilation
> > >
> > > BUG=v8:3608
> > > LOG=y
> > > R=yangguo@chromium.org
> > >
> > > Committed: https://crrev.com/715552409b4a08504301cf1ad4cb2e45a815f01b
> > > Cr-Commit-Position: refs/heads/master@{#25972}
> >
> > TBR=yangguo@chromium.org
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=v8:3608
> >
> > Committed: https://crrev.com/28a5a4865183769cbed9d42ad3fdc1b1d8bae3a3
> > Cr-Commit-Position: refs/heads/master@{#25975}
>
> TBR=yangguo@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:3608
>
> Committed: https://crrev.com/b4bc9c1a3a7d03dee0b3dd6460414085f79cd36e
> Cr-Commit-Position: refs/heads/master@{#25994}

TBR=yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608

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

Cr-Commit-Position: refs/heads/master@{#25998}
2015-01-08 14:31:23 +00:00
jochen
b4bc9c1a3a Revert of Revert of Turn on job-based recompilation (patchset #1 id:1 of https://codereview.chromium.org/791033007/)
Reason for revert:
attempt reland after landing a fix

Original issue's description:
> Revert of Turn on job-based recompilation (patchset #2 id:20001 of https://codereview.chromium.org/832183004/)
>
> Reason for revert:
> revert
>
> Original issue's description:
> > Turn on job-based recompilation
> >
> > BUG=v8:3608
> > LOG=y
> > R=yangguo@chromium.org
> >
> > Committed: https://crrev.com/715552409b4a08504301cf1ad4cb2e45a815f01b
> > Cr-Commit-Position: refs/heads/master@{#25972}
>
> TBR=yangguo@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:3608
>
> Committed: https://crrev.com/28a5a4865183769cbed9d42ad3fdc1b1d8bae3a3
> Cr-Commit-Position: refs/heads/master@{#25975}

TBR=yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608

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

Cr-Commit-Position: refs/heads/master@{#25994}
2015-01-08 13:16:02 +00:00
jochen
28a5a48651 Revert of Turn on job-based recompilation (patchset #2 id:20001 of https://codereview.chromium.org/832183004/)
Reason for revert:
revert

Original issue's description:
> Turn on job-based recompilation
>
> BUG=v8:3608
> LOG=y
> R=yangguo@chromium.org
>
> Committed: https://crrev.com/715552409b4a08504301cf1ad4cb2e45a815f01b
> Cr-Commit-Position: refs/heads/master@{#25972}

TBR=yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608

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

Cr-Commit-Position: refs/heads/master@{#25975}
2015-01-07 14:15:39 +00:00
jochen
715552409b Turn on job-based recompilation
BUG=v8:3608
LOG=y
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25972}
2015-01-07 13:31:07 +00:00
dcarney
4de38bfe38 [turbofan] remove spill slot reuse flag
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25970}
2015-01-07 12:46:13 +00:00
yangguo
c71239dc10 Enable serializing eagerly compiled inner functions.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25966}
2015-01-07 11:24:54 +00:00
ulan
0344722a16 Remove custom weak handling of monomorphic IC.
This is not needed anymore since all ICs use weak cells to embed maps.

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25928}
2014-12-22 15:04:18 +00:00
jochen
88feffc2ab Implement missing functionality for job based recompilation
BUG=v8:3608
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25925}
2014-12-22 13:53:07 +00:00
ulan
64e1b56107 Revert "Retain maps for several garbage collections"
This reverts commit 2bc756e4b3
because of performance regression in kraken.

BUG=chromium:444232
LOG=N
TBR=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25918}
2014-12-22 09:15:07 +00:00
arv
6e888ca864 Ship ES6 template literals
BUG=v8:3230
LOG=Y
R=dslomov@chromium.org, caitpotter88@gmail.com

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

Cr-Commit-Position: refs/heads/master@{#25892}
2014-12-18 20:12:08 +00:00
hpayer
e89318138c Reland Shrink initial old generation size based on new space survival rate.
I picked a more conservative start value this time of half max old generation size.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25890}
2014-12-18 16:55:55 +00:00
ulan
2bc756e4b3 Retain maps for several garbage collections
This keeps dying maps alive for FLAG_retain_maps_for_n_gc garbage collections to increase chances of them being reused for new objects in future.

BUG=v8:3664
LOG=N
TEST=cctest/test-heap/MapRetaining

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

Cr-Commit-Position: refs/heads/master@{#25887}
2014-12-18 15:44:37 +00:00
machenbach
7d48fd9dc2 Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/792233008/)
Reason for revert:
[sheriff] Still crashes on win32 (XP):
http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%201/builds/1380

Original issue's description:
> ES6 computed property names
>
> This adds support for computed property names, under the flag
> --harmony-computed-property-names, for both object literals and
> classes.
>
> This is a revert of the revert, a76419f0f4.
>
> This changes to do an early bailout in
> HOptimizedGraphBuilder::VisitObjectLiteral instead of doing that in the later
> loop.
>
> BUG=v8:3754
> LOG=Y
> TBR=dslomov@chromium.org

TBR=dslomov@chromium.org,arv@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3754

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

Cr-Commit-Position: refs/heads/master@{#25872}
2014-12-17 19:47:12 +00:00
arv
cc568d1b7a ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.

This is a revert of the revert, a76419f0f4.

This changes to do an early bailout in
HOptimizedGraphBuilder::VisitObjectLiteral instead of doing that in the later
loop.

BUG=v8:3754
LOG=Y
TBR=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25868}
2014-12-17 18:38:55 +00:00
hpayer
83849a347c Revert of Shrink initial old generation size based on new space survival rate. (patchset #7 id:140001 of https://codereview.chromium.org/785593002/)
Reason for revert:
Performance regressions.

Original issue's description:
> Shrink initial old generation size based on new space  survival rate.
>
> BUG=
>
> Committed: https://crrev.com/37f9bb72b9c7ea4eccef6cb6533b3c42792fb5e6
> Cr-Commit-Position: refs/heads/master@{#25850}

TBR=jochen@chromium.org,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25862}
2014-12-17 11:17:40 +00:00
arv
5f22fdd5ae Revert of ES6 computed property names (patchset #1 id:1 of https://codereview.chromium.org/807173002/)
Reason for revert:
Crashes Win32. It was not flake.

Original issue's description:
> ES6 computed property names
>
> This adds support for computed property names, under the flag
> --harmony-computed-property-names, for both object literals and
> classes.
>
> This is a revert of the revert, a76419f0f4 with
> no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots
> try again.
>
> BUG=v8:3754
> LOG=Y
> TBR=dslomov@chromium.org

TBR=dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3754

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

Cr-Commit-Position: refs/heads/master@{#25853}
2014-12-16 19:38:59 +00:00
arv
a235b1076a ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.

This is a revert of the revert, a76419f0f4 with
no changes. I cannot reproduce the issue on Win8.1 or WinXP. Letting the bots
try again.

BUG=v8:3754
LOG=Y
TBR=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25851}
2014-12-16 17:30:05 +00:00
hpayer
37f9bb72b9 Shrink initial old generation size based on new space survival rate.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25850}
2014-12-16 16:26:34 +00:00
dcarney
0349f7b71f [turbofan] enable stack slot reuse
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25841}
2014-12-16 13:09:23 +00:00
jkummerow
60dafcaab2 Add infrastructure to keep track of references to prototypes.
There are no users of this infrastructure yet, so it's behind an off-by-default flag.

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

Cr-Commit-Position: refs/heads/master@{#25829}
2014-12-15 19:57:54 +00:00
dslomov
6d35dedf6e Ship ES6 classes.
R=arv@chromium.org
BUG=v8:3330
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25826}
2014-12-15 16:44:00 +00:00
arv
a76419f0f4 Revert of ES6 computed property names (patchset #9 id:160001 of https://codereview.chromium.org/795573005/)
Reason for revert:
Crashes on Win32

http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%201/builds/1357

Test: mjsunit/harmony/computed-property-names
Flags: --stress-opt --always-opt
Command: build\Release\d8.exe --test --random-seed=-233815021 --stress-opt --always-opt --nohard-abort --nodead-code-elimination --nofold-constants --harmony-computed-property-names test\mjsunit\mjsunit.js test\mjsunit\harmony\computed-property-names.js

Run #1
Exit code: -1073741819
Result: CRASH
Expected outcomes: PASS

Run #2
Exit code: -1073741819
Result: CRASH
Expected outcomes: PASS

Run #3
Exit code: -1073741819
Result: CRASH
Expected outcomes: PASS

Original issue's description:
> ES6 computed property names
>
> This adds support for computed property names, under the flag
> --harmony-computed-property-names, for both object literals and
> classes.
>
> BUG=v8:3754
> LOG=Y

TBR=dslomov@chromium.org,wingo@igalia.com
NOTREECHECKS=true
NOTRY=true
BUG=v8:3754

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

Cr-Commit-Position: refs/heads/master@{#25825}
2014-12-15 16:38:42 +00:00
arv
6e38caf8d3 ES6 computed property names
This adds support for computed property names, under the flag
--harmony-computed-property-names, for both object literals and
classes.

BUG=v8:3754
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25821}
2014-12-15 15:27:19 +00:00
dcarney
3595176565 [turbofan] improve register allocator testing framework
R=bmeurer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25794}
2014-12-12 11:15:26 +00:00
dslomov
059482b70d Ship ES6 block scoping.
R=rossberg@chromium.org
BUG=v8:2198
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25761}
2014-12-10 20:39:32 +00:00
yangguo
d28b2a194d Extract non-IO part of mksnapshot into an API method.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25747}
2014-12-10 14:20:26 +00:00
yangguo
7cff32a9bd Reland "Use same blob format for internal and external snapshots."
Review URL: https://codereview.chromium.org/791723004

Cr-Commit-Position: refs/heads/master@{#25741}
2014-12-10 11:46:55 +00:00
d
4161b54d58 Add Array.prototype.includes
Requires adding a SameValueZero implementation.

LOG=Y
BUG=v8:3575
R=dslomov@chromium.org, arv@chromium.org
TEST=added to test262

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

Cr-Commit-Position: refs/heads/master@{#25735}
2014-12-10 08:58:15 +00:00
machenbach
da6dbe78bc Revert of Use same blob format for internal and external snapshots. (patchset #2 id:20001 of https://codereview.chromium.org/787033002/)
Reason for revert:
[sheriff] breaks http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/1293

Original issue's description:
> Use same blob format for internal and external snapshots.
>
> R=vogelheim@chromium.org

TBR=vogelheim@chromium.org,yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25729}
2014-12-09 16:19:57 +00:00
yangguo
03ba4becbf Use same blob format for internal and external snapshots.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25727}
2014-12-09 15:12:27 +00:00
dslomov
293f898a6f Make sure that individual shipping features can be disabled.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25690}
2014-12-05 15:35:37 +00:00
arv
eb5049b14d Stage ES6 template literals
BUG=v8:3230
LOG=Y
R=dslomov@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25659}
2014-12-04 12:25:01 +00:00
yangguo
07584119ca Serializer: cache recent back references for shorter encoding.
And some refactorings.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25629}
2014-12-03 09:12:37 +00:00
dslomov
dba8e83b41 Stage ES6 classes and object literal extensions.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3330
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25617}
2014-12-02 14:54:40 +00:00
titzer
10750f0e80 [turbofan] Enable stage 1.
R=danno@chromium.org,bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25604}
2014-12-02 11:07:26 +00:00
marja
0a0e6c8c81 ES6 unicode extensions, part 1.
Allows \u{xxxxx} in variable names and string literals (not yet in regexps).

Everything's behind the --harmony-unicode flag.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25603}
2014-12-02 10:58:19 +00:00
dslomov
9e02e98771 Introduce a kill-switch for shipping features.
R=rossberg@chromium.org
TBR=hpayer@chromium.org

Committed: d628562086

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

Cr-Commit-Position: refs/heads/master@{#25577}
2014-11-28 20:07:18 +00:00
dslomov
557bf53b79 Revert of Introduce a kill-switch for shipping features. (patchset #2 id:20001 of https://codereview.chromium.org/763273002/)
Reason for revert:
Reverted for breaking nosnap: http://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20nosnap/builds/1003/steps/Check/logs/Threading3

Original issue's description:
> Introduce a kill-switch for shipping features.
>
> R=rossberg@chromium.org
>
> Committed: d628562086

TBR=rossberg@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25574}
2014-11-28 18:27:55 +00:00
dslomov
a2b5c7abae Stage @@toStringTag (--harmony-tostring)
R=rossberg@chromium.org,caitpotter88@gmail.com
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25573}
2014-11-28 15:41:47 +00:00
Dmitry Lomov
d628562086 Introduce a kill-switch for shipping features.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25570}
2014-11-28 14:32:17 +00:00
jochen
217c45b106 Introduce a new growth criterion for the new space behind a flag
With this flag, we grow if more than 10% survived the last scavenge.

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

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

Cr-Commit-Position: refs/heads/master@{#25540}
2014-11-27 10:52:58 +00:00
dslomov
cd4cc1ba36 Ship harmony-strings
R=rossberg@chromium.org, yangguo@chromium.org
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25536}
2014-11-27 10:17:18 +00:00
titzer
da22163d35 [turbofan] Implement jump threading after register allocation.
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25521}
2014-11-26 12:41:55 +00:00
dslomov
a498e93b0e Stage ES6 block scoping.
R=rossberg@chromium.org
BUG=v8:2198
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25520}
2014-11-26 12:28:43 +00:00
Weiliang Lin
83a635e0d7 [x64] Introduce FMA3 instructions on scalar data elements.
R=bmeurer@chromium.org

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

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

Cr-Commit-Position: refs/heads/master@{#25509}
2014-11-26 05:31:55 +00:00
Ben L. Titzer
a56900a975 [turbofan] Dump graph in RPO order as text.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25477}
2014-11-24 11:55:17 +00:00
mstarzinger
7aad1d2e42 Revert "Remove deprecated ShouldSelfOptimize machinery."
This reverts commit 9da92c1a33 because of performance regressions.

R=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25467}
2014-11-21 17:28:38 +00:00
dcarney
ac3c4d40f5 [turbofan] put late ssa deconstruction in register allocator behind a flag
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25465}
2014-11-21 13:14:00 +00:00
jochen
34363bf5aa Introduce a flag to change the new space growth factor
A useful value would be 4, so we get 1, 4, 16MB (instead of the default
value 2 which leads to 1, 2, 4, 8, 16)

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

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

Cr-Commit-Position: refs/heads/master@{#25462}
2014-11-21 12:14:29 +00:00
dcarney
dad405a258 [turbofan] put spill slot reuse behind a flag
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25461}
2014-11-21 11:33:05 +00:00
mstarzinger
9da92c1a33 Remove deprecated ShouldSelfOptimize machinery.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25459}
2014-11-21 11:23:52 +00:00
yangguo
c64b47f552 When optimizing deserialized code, make sure IC state is preserved.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25444}
2014-11-20 16:20:56 +00:00
Andreas Rossberg
1808badc2d Disable classes in sloppy mode unless --harmony-sloppy is set
Also clean up flag names a little.

Baseline: https://codereview.chromium.org/713413003/

R=arv@chromium.org, dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25435}
2014-11-20 10:52:03 +00:00
jochen
821736a674 Remove --clever-optimizations
We should always be clever

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

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

Cr-Commit-Position: refs/heads/master@{#25431}
2014-11-20 08:54:42 +00:00
Hannes Payer
ca3c6888c1 Fix concurrent sweeping in predictable mode and bring --concurrent-sweeping flag back.
BUG=
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25370}
2014-11-17 09:39:50 +00:00
Hannes Payer
cb73facc84 Added --trace_idle_notification_verbose which prints out the idle notificatino heap state.
BUG=
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25369}
2014-11-17 09:16:26 +00:00
caitpotter88
353b696467 Implement ES6 Template Literals
BUG=v8:3230

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

Cr-Commit-Position: refs/heads/master@{#25362}
2014-11-14 18:53:52 +00:00
ishell@chromium.org
c5a492961f Reland "In-object double fields unboxing (for 64-bit only)."
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25258}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 10:25:46 +00:00
verwaest@chromium.org
2d9079ca1d Revert "In-object double fields unboxing (for 64-bit only)."
Revert "Fixes for Windows and Mac builds after r25250."
TBR=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25252}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 17:44:51 +00:00
ishell@chromium.org
f133ac501b In-object double fields unboxing (for 64-bit only).
This CL introduces LayoutDescriptor which is responsible for tracking which in-object fields are tagged and which are not.
LayoutDescriptor field added to Map. Currently unboxing is disabled.

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

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

Cr-Commit-Position: refs/heads/master@{#25250}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 16:35:22 +00:00
rmcilroy@chromium.org
49d1f64ebf Arm64: Remove forced csp alignment to 16 byte values for Nvidia chips.
Remove the forced alignment of csp to 16 byte values on Nvidia chips.
Benchmarks on current devices show that this is no longer required.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25225}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-07 23:34:44 +00:00
jkummerow@chromium.org
e2e9e1d3f6 Add FLAG_trace_maps
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25219}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-07 16:03:44 +00:00
arv@chromium.org
32f3277eea Enable ES6 numeric literals by default
BUG=v8:2783
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25204}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-06 18:45:21 +00:00
rossberg@chromium.org
0b9a70ade3 Remove --harmony implications for incomplete features
This is in preparation for making --harmony and --es-staging synonyms.
The only remaining difference currently is block-scoping, which is still
implied by --harmony, to avoid regressing on a long-available feature.

Also removes the special-casing of --harmony-proxies.

R=adamk@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25115}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 16:05:44 +00:00
titzer@chromium.org
90a7f07489 Implement loop variable assignment analysis.
This analysis computes the set of variables that are assigned in each loop. This is useful to avoid creating redundant loop phis when building an SSA graph, which just waste memory and require analysis to get rid of.

This CL implements an AST walk for the analysis and plugs the result into the TurboFan graph builder. I left this analysis under a flag for A/B testing and until sufficient unit tests can be developed.

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

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

Cr-Commit-Position: refs/heads/master@{#24957}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 17:30:14 +00:00
sigurds@chromium.org
8ef8f58bae Add ARMv8 detection in CpuFeatures.
R=rodolph.perfetta@arm.com, ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24949}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 15:22:41 +00:00
mstarzinger@chromium.org
c1862ecdd6 Silence control reducer tracing a bit.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24936}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 13:15:18 +00:00
yangguo@chromium.org
484274346f Enable --serialize-toplevel by default.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24872}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:10 +00:00
yangguo@chromium.org
aaa104c8da De-virtualize snapshot sink.
R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:23:57 +00:00
dslomov@chromium.org
8de3b7e129 Stage harmony-strings.
R=rossberg@chromium.org, yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:58:25 +00:00
jochen@chromium.org
8f7a455fe2 Add support for a target new space size
When this flag is set, we will commit additional pages up until the
target size before doing a scavenge.

I made sure that all tests pass when a target size of 16MB is set.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 06:58:38 +00:00
dslomov@chromium.org
37bd114925 Update ObjectToString to Harmony-draft algorithm
Updates Object.prototype.toString() to use algorithm described in harmony drafts.

Currently, the behaviour is essentially the same as ES262's version, however this changes when internal structures
such as Promise make use of symbolToStringTag (as they are supposed to, see v8:3241), and changes further once
Symbol.toStringTag is exposed publicly.

BUG=v8:3241, v8:3502
LOG=N
R=dslomov@chromium.org

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

Patch from Caitlin Potter <caitpotter88@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 17:21:32 +00:00
dslomov@chromium.org
6ae42d9171 Simplify language feature management.
R=rossberg@chromium.org
BUG=v8:3640
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 13:33:34 +00:00
yangguo@chromium.org
8cc5d418ee Special handling for inline caches in code serializer.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 08:46:11 +00:00
sigurds@chromium.org
bc475b4a6b Add inlining for intrinsics.
This issue is for discussion on how to proceed.

I think the implementation of ValueOf shows that directly creating the IR does not scale.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 07:56:50 +00:00
jarin@chromium.org
173b07faa9 [turbofan] Output schedule, instructions and register allocator in C1 visualizer format when --turbo-trace is specified.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:43:33 +00:00
rmcilroy@chromium.org
08941c0140 Refactor FrameAndConstantPoolScope and ConstantPoolUnavailableScope to be architecture independent
Move the FrameAndConstantPoolScope and ConstantPoolUnavailableScope out of the arm architecture directory to enable them to be used on all architectures.

R=rmcilroy@chromium.org

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

Patch from André Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 14:41:33 +00:00
mstarzinger@chromium.org
2514113887 Remove deprecated verification for context separation.
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 14:01:59 +00:00
jochen@chromium.org
40a1f82238 Introduce --job-based-recompilation flag
The implementation is not yet complete, it doesn't support blocking yet,
and doesn't collect statistics.

This things will be fixed in follow-up CLs.

BUG=v8:3608
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:29:24 +00:00
arv@chromium.org
6708f664a9 Stage ES6 numeric literals
BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:40:55 +00:00
jkummerow@chromium.org
b6f82c734c Remove FLAG_opt_safe_uint32_operations.
It has been turned on by default for a long time, and hydrogenized BinaryOpStubs actually depend on it being turned on.

BUG=v8:3487
LOG=n
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 13:15:23 +00:00
jochen@chromium.org
5f47fe15e2 Remove support for parallel sweeping
BUG=none
R=hpayer@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:24:48 +00:00
jochen@chromium.org
259126c0d9 Remove sweeper threads
Job based sweeping is enabled since 3.29, so remove the now obsolete
thread based implementation

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:16:28 +00:00
dcarney@chromium.org
5d0e9a2496 [turbofan] basic block profiler
R=titzer@chromium.org, mstarzinger@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 07:29:14 +00:00
ishell@chromium.org
4a9feef3d8 Disable job-based sweeping in predictable mode.
BUG=v8:3563
LOG=N
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-26 13:59:48 +00:00
mstarzinger@chromium.org
36fdb24773 Remove deprecated ifdef from flag definitions.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-26 12:02:11 +00:00
titzer@chromium.org
5881257344 Widen the intake valve for TurboFan.
R=danno@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 12:50:50 +00:00
ulan@chromium.org
ebf9b8ab85 ARM: Make stack limit stricter to account for large buffers in MacroAssembler.
BUG=405338
LOG=Y
R=rmcilroy@chromium.org, rodolph.perfetta@arm.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 11:26:36 +00:00
erik.corry@gmail.com
f1e82cc169 The --optimize-for-size flag should imply a small semi-space
R=hpayer@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 09:15:47 +00:00
erik.corry@gmail.com
35eec7c7ca Reland sticky regexps https://codereview.chromium.org/567313003/
R=svenpanne@chromium.org, yangguo@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 07:36:05 +00:00
rossberg@chromium.org
cc960f8034 Revert "RegExp: Add support for the ES6-proposed sticky flag"
Causes a flaky failure on buildbots. Here is the (deterministic) repro step (thanks to Michael Stanton):

first go to flag-definitions.h and set this to false.

DEFINE_BOOL(enable_sse4_1, false,
            "enable use of SSE4.1 instructions if available")

Run the following and it should fail:

tools/run-tests.py --arch=ia32 --mode=release cctest/test-api/Regress2107

R=yangguo@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 14:53:00 +00:00
erik.corry@gmail.com
63b1c1900d RegExp: Add support for the ES6-proposed sticky flag
R=yangguo@chromium.org, rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 11:32:39 +00:00
mstarzinger@chromium.org
15b563cf74 Remove dead CompilationInfo::DisableOptimization predicate.
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 11:13:36 +00:00
yangguo@chromium.org
a49ac519c8 Serialize code stubs using stub key.
Also add some tracing to the code serializer.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:50:17 +00:00
arv@chromium.org
7efd2eb144 Class syntax parsing
This implements parsing for ClassExpression and ClassDeclaration.
The runtime is not yet implemented and the value is currently
hard coded to undefined.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org, marja@chromium.org, rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 22:15:39 +00:00
wingo@igalia.com
a76fe0a2cf Enable ES6 generators
R=rossberg@chromium.org

BUG=v8:2355
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:30:39 +00:00
mstarzinger@chromium.org
9a2ca5ed15 Enable typed pipeline on ARM and ARM64 for TurboFan.
R=bmeurer@chromium.org
BUG=v8:3553
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 11:32:05 +00:00
sigurds@chromium.org
4ec63ff97e Reland
- "Switch inlining to use simplified instead of machine loads."
- "Add copy support in inliner."

Reland fixes:
 - size_t conversion for 64bit arches
 - Don't call front() on empty vector
   (triggers assertion on windows)
 - turbo_inlining now implies turbo_types, as
   it requires simplified lowering.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 11:06:37 +00:00
bmeurer@chromium.org
4de58e49fd [arm] Disable --turbo-types by default instead of ignoring the flag.
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:50:38 +00:00
mstarzinger@chromium.org
a2add48b86 Enable typed pipeline for TurboFan (again).
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 09:44:44 +00:00
arv@chromium.org
45d8e74cd6 ES6: Add support for method shorthand in object literals
This is governed by the harmony-object-literals flag.

BUG=v8:3516
LOG=Y
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 16:39:42 +00:00
mstarzinger@chromium.org
1f4f9eed2a Actually disabled typed pipeline after r23830.
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 13:41:09 +00:00
mstarzinger@chromium.org
8d35f22795 Disabled typed pipeline because of 64-bit failures.
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 12:07:39 +00:00
mstarzinger@chromium.org
13f01e65c4 Enable typed pipeline for TurboFan.
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 09:52:50 +00:00
titzer@chromium.org
4923810a68 Remove redundant --always-full-compiler flag.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 16:29:47 +00:00
yangguo@chromium.org
62ba2c8b7f Clean up code stubs and ensure distinct major keys.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 13:14:55 +00:00
jochen@chromium.org
bb41c50d4d Turn on job-based sweeping
Embedders that don't use a v8::Platform yet will have to do so.

BUG=v8:3104
LOG=y
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 12:54:22 +00:00
ulan@chromium.org
ae2b08f420 Trace idle notification.
BUG=
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 12:06:16 +00:00
mstarzinger@chromium.org
9fcbeb4a8e Bring back test coverage for baseline TurboFan.
R=sigurds@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 13:07:09 +00:00
hpayer@chromium.org
65c9c2a2dd Remove conservative sweeping.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 14:50:18 +00:00
wingo@igalia.com
edfd4cdd33 Stage ES6 generators
R=dslomov@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 12:06:25 +00:00
sigurds@chromium.org
566cdc3bcd Reland "Add initial support for inlining."
Reland Fixes:
* Remove usage of C++11 vector members.
* Guard tests by V8_TURBO_TARGET.

Changes:
* Make context specialization clean up after itself.
* Add UpdateToAndIncrement to Inputs::iterator.
  Uses:iterator already provides this member function.
* Allow next node id in graph to be set.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 13:05:03 +00:00
sigurds@chromium.org
b488b2ed29 Revert "Add initial support for inlining."
This reverts commit r23197.

TBR=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 12:48:44 +00:00
sigurds@chromium.org
4b943f35cf Add initial support for inlining.
* Add stack depth checking to function tester.
* Make context specialization clean up after itself.
* Add UpdateToAndIncrement to Inputs::iterator.
  Uses:iterator already provides this member function.
* Allow next node id in graph to be set.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 12:23:19 +00:00
dslomov@chromium.org
65ae6e92ab Parse 'super' keyword.
BUG=v8:3330
LOG=N
R=arv@chromium.org, marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 12:35:34 +00:00
rossberg@chromium.org
d9d6a60973 Enable ES6 unscopables
R=yangguo@chromium.org
BUG=v8:3401
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-08 11:42:59 +00:00
rossberg@chromium.org
49e6abb9e3 Turn on harmony_unscopables for es_staging
BUG=v8:3401
LOG=Y
R=adamk@chromium.org, rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-08 10:49:04 +00:00
rossberg@chromium.org
5427ea5285 Remove proxies from --harmony switch for M38, because problems
They can still be activated separately using the --harmony-proxies switch,
but are no longer implied by Chrome's "Experimental JavaScript" option.

R=yangguo@chromium.org
BUG=
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-08 09:58:19 +00:00
wingo@igalia.com
cebddb662e Enable ES6 iteration by default
This enables for-of, as well as @@iterator implementations for strings
and arrays.

R=rossberg@chromium.org
BUG=v8:2214
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 16:42:14 +00:00
rossberg@chromium.org
25b978cbf4 This implements unscopables
The unscobables allow us to black list properties from showing up in
with statements.

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object-environment-records-hasbinding-n

The spec draft is not fully up to date.

https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-07/jul-29.md#conclusionresolution

BUG=v8:3401
LOG=Y
R=rossberg@chromium.org, verwaest@chromium.org

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 15:50:40 +00:00
adamk@chromium.org
bcf8b05072 Enable ES6 Map and Set by default
In doing so also remove all references to the --harmony-collections flag.
Due to the way context snapshotting works, it's not possible to simply
enable the flag by default.

Depends on ES6 Symbols: https://codereview.chromium.org/421313004

BUG=v8:1622
LOG=Y
R=arv@chromium.org, rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 19:37:32 +00:00
jkummerow@chromium.org
99062ae949 Track number of generic ICs per function
and use it to disable optimization if too many ICs are generic.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 17:06:01 +00:00
adamk@chromium.org
d8c30bd8e7 Enable ES6 Symbols by default
In doing so also remove all references to the --harmony-symbols flag.
Due to the way context snapshotting works, it's not possible to simply enable
the flag by default.

BUG=v8:2158
LOG=Y
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 18:17:54 +00:00
bmeurer@chromium.org
d07a2eb806 Rename ASSERT* to DCHECK*.
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
danno@chromium.org
a1383e2250 Land the Fan (disabled)
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
yangguo@chromium.org
d409898d6e Stage for-of
R=rossberg@chromium.org
BUG=

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 13:47:47 +00:00
mvstanton@chromium.org
6d3fc8a322 Introduce FLAG_vector_ics.
When FLAG_vector_ics is true, then AST nodes that use Load and KeyedLoad ICs
will allocate a type vector slot to store feedback information. Full codegen
will emit a load of the slot into a register if the flag is on.

Support is incomplete, right now the IC doesn't know how to use the feedback
slot.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 11:19:56 +00:00
hpayer@chromium.org
81bc2f95e7 Always sweep precisely.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 10:39:10 +00:00
rossberg@chromium.org
2dc3d0bdc6 Remove harmony-typeof
This was an early experiment in the Harmony era that turned out to
not be compatible with the web.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 10:20:54 +00:00
hpayer@chromium.org
56fcbc4d65 Always sweep precisely off.
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 12:51:21 +00:00
hpayer@chromium.org
4c136e0baa Always sweep precisely.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 12:04:48 +00:00
hpayer@chromium.org
6067ca6a62 Concurrent/parallel precise sweeping.
BUG=
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 11:04:20 +00:00
danno@chromium.org
1d2a4b8333 Remove experimental flags that are now required
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 07:17:21 +00:00
rmcilroy@chromium.org
1b5848c210 Some fixes to avoid breakages when enabling out-of-line constant pools.
Three fixes which are required to pass all the tests when  out-of-line constant
pools are enabled for Arm:

 - Invalidate embedded objects in optimized code when it is deoptimized such
   that the weak pointers in the constant pool array are cleared.  This prevents
   a CHECK(heap_->mark_compact_collector()->IsMarked(object)) error when a
   verifying weak pointers in a deoptimized code object's constant pool.
 - Modify LargeObjectSpace::Verify to allow constant pool arrays in the
   large object space.
 - Increase the 32bit stack size limit, since the constant pool pointer
   is now on every stack frame, causing the size of each stack frame to
   increase by one word, and causing deep-recursion-test to fail.

R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-17 10:03:30 +00:00
yangguo@chromium.org
d1333142e2 Ship ES6 Math functions.
R=rossberg@chromium.org
BUG=v8:2938
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 14:00:15 +00:00
marja@chromium.org
70da8959bc Implement handling of arrow functions in the parser
Arrow functions are parsed from ParseAssignmentExpression(). Handling the
parameter list is done by letting ParseConditionalExpression() parse a comma
separated list of identifiers, and it returns a tree of BinaryOperation nodes
with VariableProxy leaves, or a single VariableProxy if there is only one
parameter. When the arrow token "=>" is found, the VariableProxy nodes are
passed to ParseArrowFunctionLiteral(), which will then skip parsing the
paramaeter list. This avoids having to rewind when the arrow is found and
restart parsing the parameter list.

Note that the empty parameter list "()" is handled directly in
ParsePrimaryExpression(): after is has consumed the opening parenthesis,
if a closing parenthesis follows, then the only valid input is an arrow
function. In this case, ParsePrimaryExpression() directly calls
ParseArrowFunctionLiteral(), to avoid needing to return a sentinel value
to signal the empty parameter list. Because it will consume the body of
the arrow function, ParseAssignmentExpression() will not see the arrow
"=>" token as next, and return the already-parser expression.

The implementation is done in ParserBase, so it was needed to do some
additions to ParserBase, ParserTraits and PreParserTraits. Some of the
glue code can be removed later on when more more functionality is moved
to ParserBase.

Additionally, this adds a runtime flag "harmony_arrow_functions"
(disabled by default); enabling "harmony" will enable it as well.

BUG=v8:2700
LOG=N
R=marja@chromium.org

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

Patch from Adrián Pérez de Castro <aperez@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 07:55:45 +00:00
marja@chromium.org
938b57f75b Revert "Implement handling of arrow functions in the parser"
This reverts revision 22320.

Reason: ASAN still detects leaks!

Conflicts:
	src/preparser.h

TBR=aperez@igalia.com,marja@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 06:39:31 +00:00
marja@chromium.org
e5991fc373 Implement handling of arrow functions in the parser
Arrow functions are parsed from ParseAssignmentExpression(). Handling the
parameter list is done by letting ParseConditionalExpression() parse a comma
separated list of identifiers, and it returns a tree of BinaryOperation nodes
with VariableProxy leaves, or a single VariableProxy if there is only one
parameter. When the arrow token "=>" is found, the VariableProxy nodes are
passed to ParseArrowFunctionLiteral(), which will then skip parsing the
paramaeter list. This avoids having to rewind when the arrow is found and
restart parsing the parameter list.

Note that the empty parameter list "()" is handled directly in
ParsePrimaryExpression(): after is has consumed the opening parenthesis,
if a closing parenthesis follows, then the only valid input is an arrow
function. In this case, ParsePrimaryExpression() directly calls
ParseArrowFunctionLiteral(), to avoid needing to return a sentinel value
to signal the empty parameter list. Because it will consume the body of
the arrow function, ParseAssignmentExpression() will not see the arrow
"=>" token as next, and return the already-parser expression.

The implementation is done in ParserBase, so it was needed to do some
additions to ParserBase, ParserTraits and PreParserTraits. Some of the
glue code can be removed later on when more more functionality is moved
to ParserBase.

Additionally, this adds a runtime flag "harmony_arrow_functions"
(disabled by default); enabling "harmony" will enable it as well.

BUG=v8:2700
LOG=N
R=marja@chromium.org

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

Patch from Adrián Pérez de Castro <aperez@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:27:07 +00:00
dusan.milosavljevic@rt-rk.com
a0f6878a06 Add mips64 port.
Summary:

- Changes in common code are mainly boilerplate changes,
gyp and test status files updates.

- On mips64 simulator all tests pass from all test units.

- Current issues: mjsunit JS debugger tests fail randomly on HW in release mode.
Corresponding tests are skipped on HW.

- Skipped tests on mips64: test-heap/ReleaseOverReservedPages, mjsunit/debug-*

TEST=
BUG=
R=danno@chromium.org, plind44@gmail.com, ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:08:26 +00:00
yangguo@chromium.org
1aede5f400 Introduce code serializer/deserializer.
R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 09:04:08 +00:00
jkummerow@chromium.org
3b9da14adf --trace-ic: much faster and available in Release mode.
Also add IC tracing to a path where it was missing.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:28:08 +00:00
marja@chromium.org
c393b9a576 Revert "Implement handling of arrow functions in the parser"
This reverts r22265.

Reason: ASAN tests fail.

BUG=
TBR=marja@chromium.org,aperez@igalia.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 07:48:22 +00:00
marja@chromium.org
7367720daa Implement handling of arrow functions in the parser
Arrow functions are parsed from ParseAssignmentExpression. Handling the
parameter list is done by letting ParseConditionalExpression() parse
a comma-separated list of identifiers, and it returns a tree of
BinaryOperation nodes with VariableProxy leaves, or a single
VariableProxy if there is only one parameter. When the arrow token "=>"
is found, the VariableProxy nodes are passed to ParseFunctionLiteral(),
which will then skip parsing the paramaeter list. This avoids having
to rewind when the arrow is found and restart parsing the parameter
list. Note that ParseExpression() expects parenthesized expressions
to not be empty, so checking for a closing parenthesis is added in
handling the empty parameter list "()" will accept a right-paren and
return an empty expression, which means that the parameter list is
empty.

Additionally, this adds the following machinery:

 - A runtime flag "harmony_arrow_functions" (disabled by default).
   Enabling "harmony" will enable it as well.
 - An IsArrow bit in SharedFunctionInfo, and accessors for it.
 - An IsArrow bit in FunctionLiteral, accessorts for it, and
   a constructor parameter to set its value.
 - In ParserBase: allow_arrow_functions() and set_allow_arrow_functions()
 - A V8 native %FunctionIsArrow(), which is used to skip adding the
   "function " prefix when getting the source code for an arrow
   function.

R=marja@chromium.org

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

Patch from Adrián Pérez de Castro <aperez@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 07:11:13 +00:00