Commit Graph

1434 Commits

Author SHA1 Message Date
Mike Stanton
ec132e05ec Reland "[turbofan] Discard the shared code entry in the optimized code map."
(GcStress failure was unrelated.)

At one time, we hoped to generate the same code for different
native contexts. But in truth, much performance comes from optimizing
on the native context. Now we abandon this pathway.

BUG=
TBR=bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#40086}
2016-10-07 13:00:51 +00:00
mvstanton
c59d2f09ec Revert of [turbofan] Discard the shared code entry in the optimized code map. (patchset #3 id:40001 of https://codereview.chromium.org/2401653002/ )
Reason for revert:
Possible GCSTRESS failure, investigating.

Original issue's description:
> [turbofan] Discard the shared code entry in the optimized code map.
>
> At one time, we hoped to generate the same code for different
> native contexts. But in truth, much performance comes from optimizing
> on the native context. Now we abandon this pathway.
>
> BUG=
>
> Committed: https://crrev.com/55af3c44c99a6e4cd6d53df775023d760ad2b2c3
> Cr-Commit-Position: refs/heads/master@{#40079}

TBR=mstarzinger@chromium.org,ishell@chromium.org,bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2403453002
Cr-Commit-Position: refs/heads/master@{#40081}
2016-10-07 12:08:07 +00:00
mvstanton
55af3c44c9 [turbofan] Discard the shared code entry in the optimized code map.
At one time, we hoped to generate the same code for different
native contexts. But in truth, much performance comes from optimizing
on the native context. Now we abandon this pathway.

BUG=

Review-Url: https://codereview.chromium.org/2401653002
Cr-Commit-Position: refs/heads/master@{#40079}
2016-10-07 11:02:08 +00:00
clemensh
e5aade74fe Revert of [esnext] ship String.prototype.padStart / String.prototype.padEnd (patchset #1 id:1 of https://codereview.chromium.org/2382193002/ )
Reason for revert:
Causes several GC bugs, e.g. https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/builds/2858/steps/Mjsunit/logs/debug-constructed-by

Original issue's description:
> [esnext] ship String.prototype.padStart / String.prototype.padEnd
>
> Enable the --harmony-string-padding flag by default
>
> BUG=v8:4954
> R=adamk@chromium.org, littledan@chromium.org
>
> Committed: https://crrev.com/8352a0feaccfd9a19f3b38564ed2c0859dd6e3d5
> Cr-Commit-Position: refs/heads/master@{#40060}

TBR=littledan@chromium.org,adamk@chromium.org,foolip@chromium.org,caitp@igalia.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4954

Review-Url: https://codereview.chromium.org/2398183003
Cr-Commit-Position: refs/heads/master@{#40071}
2016-10-07 08:41:41 +00:00
caitp
8352a0feac [esnext] ship String.prototype.padStart / String.prototype.padEnd
Enable the --harmony-string-padding flag by default

BUG=v8:4954
R=adamk@chromium.org, littledan@chromium.org

Review-Url: https://codereview.chromium.org/2382193002
Cr-Commit-Position: refs/heads/master@{#40060}
2016-10-06 19:53:31 +00:00
mstarzinger
98e3ed6b21 [turbofan] Enable BytecodeGraphBuilder by default.
This enables the {BytecodeGraphBuilder} whenever heuristics in the
compilation pipeline determine both Ignition and TurboFan to be used.
There no longer needs to be an explicit flag passed in order to build
graphs from bytecode.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2363413005
Cr-Commit-Position: refs/heads/master@{#40045}
2016-10-06 15:11:42 +00:00
marja
1d40f81951 Add a command line flag to disable streaming.
It's useful for debugging / analytics purposes, since we can force all
parsing to happen on a foreground thread.

BUG=

Review-Url: https://codereview.chromium.org/2386123006
Cr-Commit-Position: refs/heads/master@{#39977}
2016-10-05 08:40:40 +00:00
epertoso
83a9356093 [turbofan] Introduces a step to verify the machine graph.
It is currently being rolled behind the --turbo_verify_machine_graph flag.

BUG=

Review-Url: https://codereview.chromium.org/2388313003
Cr-Commit-Position: refs/heads/master@{#39976}
2016-10-05 08:28:14 +00:00
mtrofin
fa5b221ec7 [wasm] tracing for wasm module instances
Debug-time tracing for module instances, to aid diagnosing
potential bugs.

BUG=

Review-Url: https://codereview.chromium.org/2390393002
Cr-Commit-Position: refs/heads/master@{#39965}
2016-10-04 22:21:42 +00:00
jarin
6ca8c11fb3 Add a flag for aborting on stack overflow.
This is useful for correctness fuzzing where different compilers might
overflow the stack in different points.

Review-Url: https://codereview.chromium.org/2381773003
Cr-Commit-Position: refs/heads/master@{#39862}
2016-09-29 12:20:31 +00:00
jacob.bramley
4baa8d86f0 [arm] Remove --enable-movw-movt.
This flag was disabled by default, and has been broken for a long time.

BUG=

Review-Url: https://codereview.chromium.org/2374063004
Cr-Commit-Position: refs/heads/master@{#39858}
2016-09-29 10:44:55 +00:00
georgia.kouveli
c98fed4c78 [turbofan] Add option to filter --print-opt-code.
BUG=

Review-Url: https://codereview.chromium.org/2375933003
Cr-Commit-Position: refs/heads/master@{#39837}
2016-09-28 17:03:43 +00:00
ishell
632e261a3a [es8] Remove syntactic tail calls support.
BUG=v8:4915

Review-Url: https://codereview.chromium.org/2372513003
Cr-Commit-Position: refs/heads/master@{#39808}
2016-09-28 08:25:45 +00:00
titzer
28392ab196 [wasm] Master CL for Binary 0xC changes.
[0xC] Convert to stack machine semantics.
[0xC] Use section codes instead of names.
[0xC] Add elements section decoding.
[0xC] Decoding of globals section.
[0xC] Decoding of memory section.
[0xC] Decoding of imports section.
[0xC] Decoding of exports section.
[0xC] Decoding of data section.
[0xC] Remove CallImport bytecode.
[0xC] Function bodies have an implicit block.
[0xC] Remove the bottom label from loops.
[0xC] Add signatures to blocks.
[0xC] Remove arities from branches.
Add tests for init expression decoding.
Rework compilation of import wrappers and how they are patched.
Rework function indices in debugging.
Fix ASM->WASM builder for stack machine.
Reorganize asm.js foreign functions due to import indices change.

R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
BUG=chromium:575167
LOG=Y

Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9
Review-Url: https://codereview.chromium.org/2345593003
Cr-Original-Commit-Position: refs/heads/master@{#39678}
Cr-Commit-Position: refs/heads/master@{#39795}
2016-09-27 20:46:30 +00:00
ulan
74145159af [heap] Remove --print-cumulative-gc-stat flag.
The same information can be obtained by processing --trace-gc-nvp output
or using trace event and GC metric of catapult in Chrome.

BUG=

Review-Url: https://codereview.chromium.org/2361073002
Cr-Commit-Position: refs/heads/master@{#39780}
2016-09-27 15:27:34 +00:00
marja
cbb3d91f30 Turn off FLAG_lazy_inner_functions
1) To get proper test coverage for the flag turned off

2) We need more scope analysis in the PreParser to not disable
optimizations for some common cases (inner function "var i" shadowing
outer function vars).

R=verwaest@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2365263005
Cr-Commit-Position: refs/heads/master@{#39768}
2016-09-27 12:48:13 +00:00
ishell
86bda7dd3b [stubs] Enable TurboFan StoreIC dispatcher stub.
BUG=chromium:576312

Review-Url: https://codereview.chromium.org/2166843002
Cr-Commit-Position: refs/heads/master@{#39764}
2016-09-27 11:42:23 +00:00
cbruni
1f9863aa18 Reland of Preparse inner functions (new try) (patchset #1 id:1 of https://codereview.chromium.org/2373443003/ )
Reason for revert:
Stability thief found, relanding speculative reverts.

Original issue's description:
> Revert of Preparse inner functions (new try) (patchset #21 id:420001 of https://codereview.chromium.org/2352593002/ )
>
> Reason for revert:
> We currently have some stability issues on Canary. Let's reland this after we verified that we "fixed" Canary again.
>
> Original issue's description:
> > Preparse inner functions (new try)
> >
> > This is an overly pessimistic approach where PreParser only keeps
> > track of unresolved variables, but doesn't declare anything. This
> > will result in context-allocating variables in the outer function
> > unnecessarily, if the variable names clash with variable names
> > used by the inner function (even if the variables are not the
> > same). However, we have been unable to prove that this approach
> > wouldn't be good enough for the practical purposes.
> >
> > Fixes after the previous try ( https://codereview.chromium.org/2322243002/ ):
> > Keep the context-allocation decision stable when compiling fully eagerly.
> >
> > Tests which exercise this functionality:
> > mjsunit/fixed-context-shapes-when-recompiling.js
> >
> > Design document (chromium):
> >
> > https://docs.google.com/a/chromium.org/document/d/1rRv5JJZ0JpOZAZN2CSUwZPFJiBAdRnTiSYhazseNHFg/edit?usp=sharing
> >
> > BUG=
> >
> > Committed: https://crrev.com/7c73cf32c60484cdf37c84f1d61b4640e87068d7
> > Cr-Commit-Position: refs/heads/master@{#39719}
>
> TBR=verwaest@chromium.org,adamk@chromium.org,marja@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/1e6296b2a7cfc307fd9e722e619f42965da4a267
> Cr-Commit-Position: refs/heads/master@{#39730}

TBR=verwaest@chromium.org,adamk@chromium.org,marja@chromium.org,hablich@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2377513006
Cr-Commit-Position: refs/heads/master@{#39755}
2016-09-27 09:48:34 +00:00
ishell
2390243564 [stubs] Port store IC dispatcher to TurboFan.
This CL introduces StoreICTFStub and StoreICTrampolineTFStub and a switch
to enable them instead of respective platform stubs.

This should ease the split of StoreIC to StoreGlobalIC and StoreIC.

StubCache tests now exercise both load and store ICs.

BUG=chromium:576312

Review-Url: https://codereview.chromium.org/2163253002
Cr-Commit-Position: refs/heads/master@{#39751}
2016-09-27 07:20:53 +00:00
hablich
1e6296b2a7 Revert of Preparse inner functions (new try) (patchset #21 id:420001 of https://codereview.chromium.org/2352593002/ )
Reason for revert:
We currently have some stability issues on Canary. Let's reland this after we verified that we "fixed" Canary again.

Original issue's description:
> Preparse inner functions (new try)
>
> This is an overly pessimistic approach where PreParser only keeps
> track of unresolved variables, but doesn't declare anything. This
> will result in context-allocating variables in the outer function
> unnecessarily, if the variable names clash with variable names
> used by the inner function (even if the variables are not the
> same). However, we have been unable to prove that this approach
> wouldn't be good enough for the practical purposes.
>
> Fixes after the previous try ( https://codereview.chromium.org/2322243002/ ):
> Keep the context-allocation decision stable when compiling fully eagerly.
>
> Tests which exercise this functionality:
> mjsunit/fixed-context-shapes-when-recompiling.js
>
> Design document (chromium):
>
> https://docs.google.com/a/chromium.org/document/d/1rRv5JJZ0JpOZAZN2CSUwZPFJiBAdRnTiSYhazseNHFg/edit?usp=sharing
>
> BUG=
>
> Committed: https://crrev.com/7c73cf32c60484cdf37c84f1d61b4640e87068d7
> Cr-Commit-Position: refs/heads/master@{#39719}

TBR=verwaest@chromium.org,adamk@chromium.org,marja@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2373443003
Cr-Commit-Position: refs/heads/master@{#39730}
2016-09-26 14:03:45 +00:00
marja
7c73cf32c6 Preparse inner functions (new try)
This is an overly pessimistic approach where PreParser only keeps
track of unresolved variables, but doesn't declare anything. This
will result in context-allocating variables in the outer function
unnecessarily, if the variable names clash with variable names
used by the inner function (even if the variables are not the
same). However, we have been unable to prove that this approach
wouldn't be good enough for the practical purposes.

Fixes after the previous try ( https://codereview.chromium.org/2322243002/ ):
Keep the context-allocation decision stable when compiling fully eagerly.

Tests which exercise this functionality:
mjsunit/fixed-context-shapes-when-recompiling.js

Design document (chromium):

https://docs.google.com/a/chromium.org/document/d/1rRv5JJZ0JpOZAZN2CSUwZPFJiBAdRnTiSYhazseNHFg/edit?usp=sharing

BUG=

Review-Url: https://codereview.chromium.org/2352593002
Cr-Commit-Position: refs/heads/master@{#39719}
2016-09-26 12:36:32 +00:00
littledan
a52e564775 Reland of Ship async functions (patchset #1 id:1 of https://codereview.chromium.org/2364963003/ )
Fixed another TSAN issue in https://codereview.chromium.org/2365123002

TBR=caitp@igalia.com,adamk@chromium.org
BUG=v8:4483

Review-Url: https://codereview.chromium.org/2367203002
Cr-Commit-Position: refs/heads/master@{#39708}
2016-09-24 15:46:09 +00:00
littledan
71713386f0 Revert of Ship async functions (patchset #1 id:1 of https://codereview.chromium.org/2363093003/ )
Reason for revert:
TSAN failures still happening; need to investigate more.

Original issue's description:
> Reland of Ship async functions (patchset #1 id:1 of https://codereview.chromium.org/2364963003/ )
>
> Reason for revert:
> Fixed underlying cause of TSAN issue; trying again while watching the bots.
>
> Original issue's description:
> > Revert of Ship async functions (patchset #2 id:20001 of https://codereview.chromium.org/2356943002/ )
> >
> > Reason for revert:
> > Triggers TSAN errors on Linux64:
> >
> > https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11901
> >
> > Original issue's description:
> > > Ship async functions
> > >
> > > Intent to ship discussion:
> > > https://groups.google.com/forum/#!topic/v8-users/gwpcEIrgIZY
> > >
> > > BUG=v8:4483
> > >
> > > Committed: https://crrev.com/9f7540a0ec6333e7c71615609fe29274d9b7a4c5
> > > Cr-Commit-Position: refs/heads/master@{#39697}
> >
> > TBR=caitp@igalia.com,littledan@chromium.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=v8:4483
> >
> > Committed: https://crrev.com/a4354b6c15fd9dbde2677efdf81fbc99ff0cf3e0
> > Cr-Commit-Position: refs/heads/master@{#39699}
>
> TBR=caitp@igalia.com,adamk@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:4483
>
> Committed: https://crrev.com/97cdf9f978e971df8a463fef7525bb942d305796
> Cr-Commit-Position: refs/heads/master@{#39702}

TBR=caitp@igalia.com,adamk@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4483

Review-Url: https://codereview.chromium.org/2365113003
Cr-Commit-Position: refs/heads/master@{#39703}
2016-09-24 02:50:44 +00:00
littledan
97cdf9f978 Reland of Ship async functions (patchset #1 id:1 of https://codereview.chromium.org/2364963003/ )
Reason for revert:
Fixed underlying cause of TSAN issue; trying again while watching the bots.

Original issue's description:
> Revert of Ship async functions (patchset #2 id:20001 of https://codereview.chromium.org/2356943002/ )
>
> Reason for revert:
> Triggers TSAN errors on Linux64:
>
> https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11901
>
> Original issue's description:
> > Ship async functions
> >
> > Intent to ship discussion:
> > https://groups.google.com/forum/#!topic/v8-users/gwpcEIrgIZY
> >
> > BUG=v8:4483
> >
> > Committed: https://crrev.com/9f7540a0ec6333e7c71615609fe29274d9b7a4c5
> > Cr-Commit-Position: refs/heads/master@{#39697}
>
> TBR=caitp@igalia.com,littledan@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:4483
>
> Committed: https://crrev.com/a4354b6c15fd9dbde2677efdf81fbc99ff0cf3e0
> Cr-Commit-Position: refs/heads/master@{#39699}

TBR=caitp@igalia.com,adamk@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4483

Review-Url: https://codereview.chromium.org/2363093003
Cr-Commit-Position: refs/heads/master@{#39702}
2016-09-24 02:08:54 +00:00
adamk
a4354b6c15 Revert of Ship async functions (patchset #2 id:20001 of https://codereview.chromium.org/2356943002/ )
Reason for revert:
Triggers TSAN errors on Linux64:

https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11901

Original issue's description:
> Ship async functions
>
> Intent to ship discussion:
> https://groups.google.com/forum/#!topic/v8-users/gwpcEIrgIZY
>
> BUG=v8:4483
>
> Committed: https://crrev.com/9f7540a0ec6333e7c71615609fe29274d9b7a4c5
> Cr-Commit-Position: refs/heads/master@{#39697}

TBR=caitp@igalia.com,littledan@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4483

Review-Url: https://codereview.chromium.org/2364963003
Cr-Commit-Position: refs/heads/master@{#39699}
2016-09-24 00:25:54 +00:00
littledan
9f7540a0ec Ship async functions
Intent to ship discussion:
https://groups.google.com/forum/#!topic/v8-users/gwpcEIrgIZY

BUG=v8:4483

Review-Url: https://codereview.chromium.org/2356943002
Cr-Commit-Position: refs/heads/master@{#39697}
2016-09-23 23:48:52 +00:00
machenbach
e1eee748dd Revert of [wasm] Master CL for Binary 0xC changes. (patchset #26 id:490001 of https://codereview.chromium.org/2345593003/ )
Reason for revert:
Main suspect for tsan:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11893

Also changes layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/10036

+mips builder:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Mips%20-%20builder/builds/4032

Original issue's description:
> [wasm] Master CL for Binary 0xC changes.
>
> [0xC] Convert to stack machine semantics.
> [0xC] Use section codes instead of names.
> [0xC] Add elements section decoding.
> [0xC] Decoding of globals section.
> [0xC] Decoding of memory section.
> [0xC] Decoding of imports section.
> [0xC] Decoding of exports section.
> [0xC] Decoding of data section.
> [0xC] Remove CallImport bytecode.
> [0xC] Function bodies have an implicit block.
> [0xC] Remove the bottom label from loops.
> [0xC] Add signatures to blocks.
> [0xC] Remove arities from branches.
> Add tests for init expression decoding.
> Rework compilation of import wrappers and how they are patched.
> Rework function indices in debugging.
> Fix ASM->WASM builder for stack machine.
> Reorganize asm.js foreign functions due to import indices change.
>
> R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
> BUG=chromium:575167
> LOG=Y
>
> Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9
> Cr-Commit-Position: refs/heads/master@{#39678}

TBR=ahaas@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,rossberg@chromium.org,bradnelson@google.com,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2361053004
Cr-Commit-Position: refs/heads/master@{#39685}
2016-09-23 17:58:24 +00:00
titzer
76eb976a67 [wasm] Master CL for Binary 0xC changes.
[0xC] Convert to stack machine semantics.
[0xC] Use section codes instead of names.
[0xC] Add elements section decoding.
[0xC] Decoding of globals section.
[0xC] Decoding of memory section.
[0xC] Decoding of imports section.
[0xC] Decoding of exports section.
[0xC] Decoding of data section.
[0xC] Remove CallImport bytecode.
[0xC] Function bodies have an implicit block.
[0xC] Remove the bottom label from loops.
[0xC] Add signatures to blocks.
[0xC] Remove arities from branches.
Add tests for init expression decoding.
Rework compilation of import wrappers and how they are patched.
Rework function indices in debugging.
Fix ASM->WASM builder for stack machine.
Reorganize asm.js foreign functions due to import indices change.

R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org
BUG=chromium:575167
LOG=Y

Review-Url: https://codereview.chromium.org/2345593003
Cr-Commit-Position: refs/heads/master@{#39678}
2016-09-23 15:56:54 +00:00
bmeurer
a0fb619621 [compiler] Bump --max-inlined-nodes default to 200.
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2361793002
Cr-Commit-Position: refs/heads/master@{#39622}
2016-09-22 10:58:14 +00:00
bmeurer
54b55e5f2e [turbofan] Ship store-store elimination.
R=hablich@chromium.org, jarin@chromium.org

Review-Url: https://codereview.chromium.org/2355113003
Cr-Commit-Position: refs/heads/master@{#39573}
2016-09-21 05:50:35 +00:00
jgruber
4f5695229e [d8] Fix the shared-library build
This commit ensures that the d8 shared library build uses the same logic as
the standard static build by exporting relevant functions and classes.

BUG=chromium:646337

Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65
Review-Url: https://codereview.chromium.org/2342563002
Cr-Original-Commit-Position: refs/heads/master@{#39503}
Cr-Commit-Position: refs/heads/master@{#39547}
2016-09-20 12:06:54 +00:00
machenbach
298ee9cde1 Revert of [d8] Fix the shared-library build (patchset #12 id:20002 of https://codereview.chromium.org/2342563002/ )
Reason for revert:
Unblocking roll

Original issue's description:
> [d8] Fix the shared-library build
>
> This commit ensures that the d8 shared library build uses the same logic as
> the standard static build by exporting relevant functions and classes.
>
> BUG=chromium:646337
>
> Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65
> Cr-Commit-Position: refs/heads/master@{#39503}

TBR=jochen@chromium.org,vogelheim@chromium.org,bmeurer@chromium.org,titzer@chromium.org,jgruber@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:646337

Review-Url: https://codereview.chromium.org/2356703003
Cr-Commit-Position: refs/heads/master@{#39526}
2016-09-20 07:13:27 +00:00
jgruber
2c10ca8086 [d8] Fix the shared-library build
This commit ensures that the d8 shared library build uses the same logic as
the standard static build by exporting relevant functions and classes.

BUG=chromium:646337

Review-Url: https://codereview.chromium.org/2342563002
Cr-Commit-Position: refs/heads/master@{#39503}
2016-09-19 12:47:22 +00:00
marja
7de8639e51 Revert of Preparse inner functions. (patchset #23 id:440001 of https://codereview.chromium.org/2322243002/ )
Reason for revert:
This approach is not good - breaks when we recompile.

Original issue's description:
> Preparse inner functions.
>
> This is an overly pessimistic approach where PreParser only keeps
> track of unresolved variables, but doesn't declare anything. This
> will result in context-allocating variables in the outer function
> unnecessarily, if the variable names clash with variable names
> used by the inner function (even if the variables are not the
> same). However, we have been unable to prove that this approach
> wouldn't be good enough for the practical purposes.
>
> Committed: https://crrev.com/e1341ca8fa486bb2c9e4236672a64ec7756a164d
> Cr-Commit-Position: refs/heads/master@{#39469}

TBR=adamk@chromium.org,vogelheim@chromium.org,nikolaos@chromium.org,nednguyen@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2349473004
Cr-Commit-Position: refs/heads/master@{#39471}
2016-09-16 10:44:04 +00:00
marja
e1341ca8fa Preparse inner functions.
This is an overly pessimistic approach where PreParser only keeps
track of unresolved variables, but doesn't declare anything. This
will result in context-allocating variables in the outer function
unnecessarily, if the variable names clash with variable names
used by the inner function (even if the variables are not the
same). However, we have been unable to prove that this approach
wouldn't be good enough for the practical purposes.

Review-Url: https://codereview.chromium.org/2322243002
Cr-Commit-Position: refs/heads/master@{#39469}
2016-09-16 10:02:38 +00:00
bakkot
fe6b76d491 Class fields, part 1 (parsing and infrastructure)
This is one part of a WIP implementation of the stage-2 proposal to add
fields to classes: https://github.com/tc39/proposal-class-public-fields

See design doc:
https://docs.google.com/document/d/1WRtNm3ZLNJT1WVr8aq4RJuByYgfuAFAhj20LwTW6JVE/

This adds support for parsing fields in classes, including
infrastructure. In particular, it adds:
* Two booleans on function literal AST nodes
* Two compiler hints on SharedFunctionInfos representing said bools
* A new type of ClassLiteralProperty, FIELD
* Parser support for the syntax
* Syntax tests
* A flag to enable it.

Currently the fields are parsed and then droppped. Subsequent
patches will add semantics, mostly by desugaring in the parser and
the remainder in the non-crankshaft backends.

BUG=v8:5367

Review-Url: https://codereview.chromium.org/2315733003
Cr-Commit-Position: refs/heads/master@{#39459}
2016-09-16 00:42:46 +00:00
littledan
915ca181cc Remove --intl-extra flag
This flag has been flipped off since 52, so it is due for removal.

R=adamk@chromium.org,caitp@igalia.com
BUG=v8:3785
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng

Review-Url: https://codereview.chromium.org/2268633002
Cr-Commit-Position: refs/heads/master@{#39435}
2016-09-15 02:55:33 +00:00
hablich
f85af183e4 Revert of [heap] Enable black allocation when finalizing incremental marking. (patchset #6 id:100001 of https://codereview.chromium.org/2239733002/ )
Reason for revert:
Suspecting this is a roll blocker: https://codereview.chromium.org/2332343002/

#
# Fatal error in ../../v8/src/heap/spaces.h, line 1618
# Check failed: capacity_ >= bytes (25429824 vs. 18446744073709551168).
#

Original issue's description:
> [heap] Enable black allocation when finalizing incremental marking.
>
> BUG=chromium:630386
>
> Committed: https://crrev.com/1ccc742dc326b063999670421e1da0ea124874c0
> Cr-Commit-Position: refs/heads/master@{#39382}

TBR=mlippautz@chromium.org,hpayer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:630386

Review-Url: https://codereview.chromium.org/2340463005
Cr-Commit-Position: refs/heads/master@{#39397}
2016-09-14 02:36:42 +00:00
hpayer
1ccc742dc3 [heap] Enable black allocation when finalizing incremental marking.
BUG=chromium:630386

Review-Url: https://codereview.chromium.org/2239733002
Cr-Commit-Position: refs/heads/master@{#39382}
2016-09-13 12:38:37 +00:00
weiliang.lin
e151c66013 [x64] supplement SSE insturctions for SIMD.js
Both legacy and AVX versions

BUG=

Review-Url: https://codereview.chromium.org/2328843003
Cr-Commit-Position: refs/heads/master@{#39327}
2016-09-12 06:25:00 +00:00
eholk
0027218e1a [wasm] Trap handling: ProtectedLoad instruction
This CL introduces a ProtectedLoad instruction with is needed for out
of bounds trap handling. ProtectedLoad behaves like a regular load,
but it takes a context and source position parameter as well. These
are used by an out of line code fragment to generate code to throw a
JS exception for an out of bounds memory reference in Wasm.

These changes a cleaned up subset of
https://codereview.chromium.org/2148743004/

The rest of this feature will follow in future CLs. This includes a
table mapping memory instructions to landing pads as well as the
actual signal handler.

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=5277

Review-Url: https://codereview.chromium.org/2301833004
Cr-Commit-Position: refs/heads/master@{#39318}
2016-09-09 17:41:11 +00:00
jshin
147c810cc7 Stage Intl.DateTimeFormat.formatToParts
Move it to HARMONY_STAGED bucket

Spec discussion:  https://github.com/tc39/ecma402/issues/30
It's in stage 4 and Firefox has already implemented it.

BUG=v8:5244
TEST=intl/date-format/date-format-to-parts.js
TEST=test262/intl402/DateTimeFormat/prototype/formatToParts/*

Review-Url: https://codereview.chromium.org/2317783003
Cr-Commit-Position: refs/heads/master@{#39258}
2016-09-07 17:17:39 +00:00
mstarzinger
8a1747d08c Revert of Remove --ignition-staging to --ignition-osr implication. (patchset #1 id:1 of https://codereview.chromium.org/2298613003/ )
Reason for revert:
Re-enable to get new data after recent changes.

Original issue's description:
> Remove --ignition-staging to --ignition-osr implication.
>
> Ignition OSR to turbofan seems to cause instruction selector crashes
> (where instructions selector gets simplified operators, probably
> because we break the effect chain somehow).
>
> BUG=chromium:641893
>
> Committed: https://crrev.com/26df3e230ebd8c7d1cd95ea54155959eee7cb830
> Cr-Commit-Position: refs/heads/master@{#39045}

TBR=bmeurer@chromium.org,jarin@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:641893

Review-Url: https://codereview.chromium.org/2318943002
Cr-Commit-Position: refs/heads/master@{#39231}
2016-09-07 08:02:53 +00:00
jshin
a3db819c9e Add support for DateTimeFormat.formatToParts
Spec discussion:  https://github.com/tc39/ecma402/issues/30

It's in stage 4 and Firefox has already implemented it.

For now, it's added to HARMONY_IN_PROGRESS bucket behind
'--datetime-format-to-parts' flag.

BUG=v8:5244
TEST=intl/date-format/date-format-to-parts.js
TEST=test262/intl402/DateTimeFormat/prototype/formatToParts/*

Review-Url: https://codereview.chromium.org/2273953003
Cr-Commit-Position: refs/heads/master@{#39225}
2016-09-06 22:57:11 +00:00
mlippautz
ce66eec800 [heap] Introduce hard limit for external memory
We introduce, similar to regular heap, a hard and a soft limit for external memory.
- Upon reaching the hard limit we do a full GC. The hard limit is a a delta from
  the size of external memory at last GC.
- Upon reaching the soft limit we start incremental marking. Each further
  AdjustAmountOfExternalMemory will trigger a marking step. The step size depends
  on how far we are away from the hard limit. Further away means we have still
  some wiggle room and the step will be small. Being closer to the hard limit
  makes it more likely to trigger a full GC, so we increase the step size.

BUG=chromium:621829

Review-Url: https://codereview.chromium.org/2256853003
Cr-Commit-Position: refs/heads/master@{#39133}
2016-09-02 12:13:14 +00:00
hlopko
883e0e7036 Turn off incremental wrapper tracing by default
With the flag on the blink tests fail because blink is not prepared for v8
behaving incrementally.

In order to land and enable incremental wrapper tracing both in v8 smoothly and
blink we need to:

1. Land ScriptWrappableVisitorTest (http://crrev.com/2301213003)
2. Land write barriers implementation with more tests
3. Land write barriers installations
4. Enable incremental wrapper tracing on v8 side
5. Canary the heck out of this :)

This way the tests should be passing and chrome shouldn't crash at any given
moment.

LOG=no
BUG=468240
NOTRY=true

Review-Url: https://codereview.chromium.org/2299193003
Cr-Commit-Position: refs/heads/master@{#39132}
2016-09-02 12:06:33 +00:00
jarin
26df3e230e Remove --ignition-staging to --ignition-osr implication.
Ignition OSR to turbofan seems to cause instruction selector crashes
(where instructions selector gets simplified operators, probably
because we break the effect chain somehow).

BUG=chromium:641893

Review-Url: https://codereview.chromium.org/2298613003
Cr-Commit-Position: refs/heads/master@{#39045}
2016-08-31 11:36:30 +00:00
jacob.bramley
76ea8f2f95 [arm] Simplify run-time CPU selection.
This replaces the target-selection options (such as "--enable-vfp3")
with a simpler, absolute "--arm-arch" option. This eliminates inferences
and avoids surprising behaviour in impossible situations (such as
"--enable-vfp3 --no-enable-armv7").

The available options are:
    --arm-arch=armv6          ARMv6 + VFPv2
    --arm-arch=armv7          ARMv7 + VFPv3-D32 + NEON
    --arm-arch=armv7+sudiv    ARMv7 + VFPv4-D32 + NEON + SUDIV
    --arm-arch=armv8          ARMv8 (+ all of the above)

For now, the default setting is "armv8", which results in behaviour very
similar to the existing defaults.

BUG=v8:5077

Review-Url: https://codereview.chromium.org/2223433002
Cr-Commit-Position: refs/heads/master@{#39004}
2016-08-30 10:02:23 +00:00
verwaest
1493bc8c8b Replace CollectVariables with locals(), update callsites to walk locals instead
This additionally gets rid of old approach to global shortcuts.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2287173002
Cr-Commit-Position: refs/heads/master@{#38980}
2016-08-29 12:49:35 +00:00
bgeron
791118fca5 [turbofan] Also inline into try blocks.
This removes test/webkit/fast/js/stack-overflow-arrity-catch.js, which tests that the stack overflows in a very particular way. It doesn't seem to test anything important, and only used to work because we didn't inline into try-blocks.

BUG=
R=jarin

Review-Url: https://codereview.chromium.org/2216353002
Cr-Commit-Position: refs/heads/master@{#38976}
2016-08-29 11:27:06 +00:00