Commit Graph

1483 Commits

Author SHA1 Message Date
titzer
5e00cb5f08 [wasm] Introduce performance testing options.
Adds --wasm-no-bounds-checks and --wasm-no-stack-checks which
help in diagnosing potential sources of slowdown in WASM code.

R=ahaas@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2511113002
Cr-Commit-Position: refs/heads/master@{#41083}
2016-11-17 16:02:13 +00:00
bmeurer
b8c2035f26 [turbofan] Ship loop peeling.
R=jarin@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2507063003
Cr-Commit-Position: refs/heads/master@{#41058}
2016-11-17 05:57:55 +00:00
mvstanton
1006bd7172 Turn off shared function info-based optimization.
In order to address a performance issue.

BUG=v8:5512, chromium:664937

Review-Url: https://codereview.chromium.org/2506003002
Cr-Commit-Position: refs/heads/master@{#41041}
2016-11-16 15:26:49 +00:00
Miran.Karic
a18be72c8e Add v8_os_page_size flag for cross compilation
When generating snapshot on a machine with a different page size than
the target machine, we can run into problems as the v8 page area size
changes. This is because v8 has page guards which depend on os page
size, so if the target has larger os page, v8 page area is smaller and
may not fit the contents.

The solution proposed here is adding a flag, v8_os_page_size, that
would, if used, override local os page size and use the one specified
during snapshot generation.

BUG=

Review-Url: https://codereview.chromium.org/2488403003
Cr-Commit-Position: refs/heads/master@{#40997}
2016-11-15 14:41:03 +00:00
mlippautz
4cf8e2f121 [heap] Enable incremental marking of wrappers
BUG=chromium:468240
NOTRY=true

Review-Url: https://codereview.chromium.org/2498343002
Cr-Commit-Position: refs/heads/master@{#40991}
2016-11-15 13:32:02 +00:00
yangguo
f0b21ef72c [serializer] print use count of external references.
R=peria@chromium.org, vogelheim@chromium.org
BUG=chromium:617892
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2495213003
Cr-Commit-Position: refs/heads/master@{#40981}
2016-11-15 08:59:21 +00:00
machenbach
42d8a1d89b Revert of [serializer] print use count of external references. (patchset #2 id:20001 of https://codereview.chromium.org/2495213003/ )
Reason for revert:
Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20vtunejit/builds/14690 compile

Original issue's description:
> [serializer] print use count of external references.
>
> R=peria@chromium.org, vogelheim@chromium.org
> BUG=chromium:617892
> NOPRESUBMIT=true

TBR=peria@chromium.org,vogelheim@chromium.org,yangguo@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:617892

Review-Url: https://codereview.chromium.org/2498163003
Cr-Commit-Position: refs/heads/master@{#40980}
2016-11-15 07:43:19 +00:00
yangguo
e56bd9c332 [serializer] print use count of external references.
R=peria@chromium.org, vogelheim@chromium.org
BUG=chromium:617892
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2495213003
Cr-Commit-Position: refs/heads/master@{#40979}
2016-11-15 06:30:14 +00:00
jochen
0421924132 Define a flag --future to enable the most probable future shipping config
That way we don't have to update the perf tests whenever the exact
configuration changes.

R=mvstanton@chromium.org,hablich@chromium.org,danno@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2420053002
Cr-Commit-Position: refs/heads/master@{#40944}
2016-11-12 21:51:27 +00:00
jwolfe
87ca9283b0 Stage harmony trailing commas
BUG=v8:5051
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2484223004
Cr-Commit-Position: refs/heads/master@{#40942}
2016-11-11 23:42:55 +00:00
leszeks
6ddcbb1a9a Reland [compiler] Enable shared function marking by default
Previous: https://codereview.chromium.org/2491773006

BUG=v8:5512

Review-Url: https://codereview.chromium.org/2498643002
Cr-Commit-Position: refs/heads/master@{#40937}
2016-11-11 16:20:46 +00:00
mlippautz
df5b86de4c [heap] Add basic infrastructure for Minor Mark-Compact collector
BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2493803002
Cr-Commit-Position: refs/heads/master@{#40935}
2016-11-11 15:48:55 +00:00
ishell
f124edd97d [ic] Enable data handlers for all kinds of field stores.
BUG=v8:5561

Review-Url: https://codereview.chromium.org/2489433003
Cr-Commit-Position: refs/heads/master@{#40929}
2016-11-11 14:16:02 +00:00
rmcilroy
7b1a048407 Revert of [compiler] Enable shared function marking by default (patchset #1 id:1 of https://codereview.chromium.org/2491773006/ )
Reason for revert:
Revert because it depends on https://codereview.chromium.org/2478323002/ which has been reverted.

Original issue's description:
> [compiler] Enable shared function marking by default
>
> BUG=v8:5512

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

Review-Url: https://codereview.chromium.org/2491643006
Cr-Commit-Position: refs/heads/master@{#40926}
2016-11-11 13:15:53 +00:00
leszeks
556217427d [compiler] Enable shared function marking by default
BUG=v8:5512

Review-Url: https://codereview.chromium.org/2491773006
Cr-Commit-Position: refs/heads/master@{#40920}
2016-11-11 13:01:11 +00:00
mstarzinger
0a94ef09d4 [interpreter] Enable OSR for Ignition by default.
This enables the on-stack replacement mechanism from Ignition bytecode
to TurboFan optimized code by default. The runtime profiler is now
allowed to arm OSR points in bytecode.

R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2432413004
Cr-Commit-Position: refs/heads/master@{#40911}
2016-11-11 10:42:07 +00:00
mlippautz
58a753053c [api] Remove marking persistents as partially dependent
Also remove the flag scavenge_reclaim_unmodified_objects which has been
defaulted to true for quite some time now.

BUG=chromium:651354

Review-Url: https://codereview.chromium.org/2486173002
Cr-Commit-Position: refs/heads/master@{#40878}
2016-11-10 09:29:48 +00:00
mstarzinger
62688795ab [turbofan] Stage escape analysis optimization.
This stages escape analysis by implying --turbo-escape by the --turbo
flag. It broadens the exposure of the optimization in question.

R=jarin@chromium.org
BUG=v8:4586,v8:5267

Review-Url: https://codereview.chromium.org/1992913005
Cr-Commit-Position: refs/heads/master@{#40859}
2016-11-09 12:52:33 +00:00
neis
083e465f3b [compiler] Whenever we want source positions, record that in the CompilationInfo.
With this CL, we set the is_source_positions_enabled flag on CompilationInfo when
- a command line flag is enabled that requires Turbofan to preserve source position
  information (e.g. --trace-deopt), and
- when profiling is enabled.

This also removes the --turbo-source-positions flag.

The goal is to eventually only track source position information when needed.

R=mstarzinger@chromium.org
BUG=v8:5439

Review-Url: https://codereview.chromium.org/2484163003
Cr-Commit-Position: refs/heads/master@{#40836}
2016-11-08 14:02:08 +00:00
lpy
7d28301d0c [Tracing] Use TracingCategoryObserver in gc statistics
This patch is a follow-up patch to enable gc statistics to use
TracingCategoryObserver.

Previously we need to pass --track_gc_object_stats to v8 if we want to enable
gc statistics in tracing. In this patch, we introducce an integer flag
FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats
will set it to 0x01, tracing will set it to 0x10 when we start tracing and
reset the bit when we stop tracing.

BUG=v8:5590

Review-Url: https://codereview.chromium.org/2459903003
Cr-Commit-Position: refs/heads/master@{#40817}
2016-11-08 03:14:22 +00:00
machenbach
146c52ef2c Revert of [Tracing] Use TracingCategoryObserver in gc statistics (patchset #5 id:100001 of https://codereview.chromium.org/2459903003/ )
Reason for revert:
Speculative revert for blocking roll:
https://codereview.chromium.org/2473003006/

E.g.:
https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/331898

Original issue's description:
> [Tracing] Use TracingCategoryObserver in gc statistics
>
> This patch is a follow-up patch to enable gc statistics to use
> TracingCategoryObserver.
>
> Previously we need to pass --track_gc_object_stats to v8 if we want to enable
> gc statistics in tracing. In this patch, we introducce an integer flag
> FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats
> will set it to 0x01, tracing will set it to 0x10 when we start tracing and
> reset the bit when we stop tracing.
>
> BUG=v8:5590

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

Review-Url: https://codereview.chromium.org/2477143002
Cr-Commit-Position: refs/heads/master@{#40785}
2016-11-05 13:28:01 +00:00
adamk
010770085b Remove always-true --harmony-restrictive-declarations flag
The flag has been on since at least Chrome 53.

R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/2478883002
Cr-Commit-Position: refs/heads/master@{#40780}
2016-11-04 18:50:41 +00:00
littledan
3d0b227493 Stage ES2015 duplicate generator restrictions
R=adamk@chromium.org
BUG=v8:4806

Review-Url: https://codereview.chromium.org/2475383003
Cr-Commit-Position: refs/heads/master@{#40779}
2016-11-04 18:48:20 +00:00
lpy
75f1473880 [Tracing] Use TracingCategoryObserver in gc statistics
This patch is a follow-up patch to enable gc statistics to use
TracingCategoryObserver.

Previously we need to pass --track_gc_object_stats to v8 if we want to enable
gc statistics in tracing. In this patch, we introducce an integer flag
FLAG_gc_stats, and FLAG_track_gc_object_stats and FLAG_trace_gc_object_stats
will set it to 0x01, tracing will set it to 0x10 when we start tracing and
reset the bit when we stop tracing.

BUG=v8:5590

Review-Url: https://codereview.chromium.org/2459903003
Cr-Commit-Position: refs/heads/master@{#40777}
2016-11-04 17:38:45 +00:00
mstarzinger
0121988134 [compiler] Remove --ignition-preserve-bytecode flag.
This removes the deprecated flag in question which has been enabled by
default a while ago. All components can by now deal with activations of
a single function being mixed between Ignition and other compilers. The
maintenance overhead to support a mode that clears bytecode is no longer
warranted.

R=rmcilroy@chromium.org
BUG=v8:4280

Review-Url: https://codereview.chromium.org/2475203003
Cr-Commit-Position: refs/heads/master@{#40776}
2016-11-04 16:09:01 +00:00
rmcilroy
ea5d4c1525 [Interpreter] Remove unused --ignition-eager flag.
BUG=v8:4280

Review-Url: https://codereview.chromium.org/2463353002
Cr-Commit-Position: refs/heads/master@{#40697}
2016-11-02 11:17:48 +00:00
adamk
a1381990a7 Remove --harmony-* flags for new Object static methods
Both --harmony-object-values-entries and --harmony-object-own-property-descriptors
are on by default in v8 5.4, which has now shipped to
stable as Chrome 54.

R=caitp@igalia.com

Review-Url: https://codereview.chromium.org/2464733003
Cr-Commit-Position: refs/heads/master@{#40683}
2016-10-31 22:53:35 +00:00
bmeurer
639abf4fd4 [turbofan] Ship inlining into try blocks.
R=mstarzinger@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2460333002
Cr-Commit-Position: refs/heads/master@{#40665}
2016-10-31 10:22:13 +00:00
lpy
6df8096a00 [Tracing] Implement TracingCategoryObserver.
This patch implements TracingCategoryObserver to set global flag when a V8
specific category is enabled. Previously, we set a global flag each time when we
encounter a top level trace event, and use it as a global check. With this
patch, we can set a group of flags when tracing is enabled; besides, we make
V8 tracing feature use V8 flags instead of defining its own flag in a messy way.

With this patch, whatever V8 flag we want to imply in tracing, we define another
integer flag, and the original V8 flag will set it to 0x01 when passing by
commandline, tracing will set it to 0x10 when we start tracing and reset the bit
when we stop tracing.

Review-Url: https://codereview.chromium.org/2436273002
Cr-Commit-Position: refs/heads/master@{#40659}
2016-10-28 20:44:04 +00:00
ulan
f2b60e9af2 Fix flag implications for --predictable.
The order is important for DEFINE_IMPLICATION to ensure transitive
implication: predictable => single_threaded => !concurrent_sweeping.

BUG=5580

Review-Url: https://codereview.chromium.org/2456323002
Cr-Commit-Position: refs/heads/master@{#40644}
2016-10-28 12:50:46 +00:00
mstarzinger
ae24992839 [turbofan] Remove deprecated --turbo-from-bytecode flag.
This flag is on by default for now. Whenever heuristics in the compiler
pipeline decide to use Ignition+TurboFan, then {BytecodeGraphBuilder} is
active. Removing the flag reduces maintenance overhead.

R=mvstanton@chromium.org

Review-Url: https://codereview.chromium.org/2437103002
Cr-Commit-Position: refs/heads/master@{#40639}
2016-10-28 09:54:04 +00:00
leszeks
a5ed05aa8b [compiler] Make SFI "optimize" flag a "tier up" flag
Reuses (and renames) the SFI "mark for optimization" flag to also permit
marking for baseline recompilation. The flag now represents a "tier up"
request, and CompileLazy can get baseline code as well as optimized
code.

BUG=v8:5512

Review-Url: https://codereview.chromium.org/2448933002
Cr-Commit-Position: refs/heads/master@{#40612}
2016-10-27 10:08:09 +00:00
aseemgarg
4156d940e4 [wasm] add atomic opcodes
R=titzer@chromium.org,binji@chromium.org
BUG=v8:4614

Review-Url: https://codereview.chromium.org/2423883003
Cr-Commit-Position: refs/heads/master@{#40606}
2016-10-26 20:28:44 +00:00
leszeks
f97b28f8b9 [compiler] Put shared function marking behind a flag
This lets us investigate regressions caused by this marking while
letting others continue their work without being impacted.

BUG=v8:5512

Review-Url: https://codereview.chromium.org/2446673002
Cr-Commit-Position: refs/heads/master@{#40563}
2016-10-25 12:34:34 +00:00
ishell
c2a5dc81c7 [ic] Support data handlers that represent simple field stores.
BUG=

Review-Url: https://codereview.chromium.org/2438553003
Review-Url: https://codereview.chromium.org/2438553003
Cr-Original-Original-Commit-Position: refs/heads/master@{#40503}
Cr-Original-Commit-Position: refs/heads/master@{#40511}
Cr-Commit-Position: refs/heads/master@{#40524}
2016-10-24 10:00:49 +00:00
ishell
80f163ce34 Revert of [ic] Support data handlers that represent simple field stores. (patchset #2 id:40001 of https://codereview.chromium.org/2438553003/ )
Reason for revert:
http://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/9306 "V8 Mac GC Stress"

Original issue's description:
> [ic] Support data handlers that represent simple field stores.
>
> BUG=
>
> Review-Url: https://codereview.chromium.org/2438553003
> Cr-Commit-Position: refs/heads/master@{#40503}

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

Review-Url: https://chromiumcodereview.appspot.com/2442523003
Cr-Commit-Position: refs/heads/master@{#40512}
2016-10-21 17:54:27 +00:00
ishell
d2557f2e9d [ic] Support data handlers that represent simple field stores.
BUG=

Review-Url: https://codereview.chromium.org/2438553003
Review-Url: https://chromiumcodereview.appspot.com/2438553003
Cr-Original-Commit-Position: refs/heads/master@{#40503}
Cr-Commit-Position: refs/heads/master@{#40511}
2016-10-21 16:42:40 +00:00
jgruber
a4ff04ab13 Revert of [ic] Support data handlers that represent simple field stores. (patchset #1 id:20001 of https://chromiumcodereview.appspot.com/2438553003/ )
Reason for revert:
http://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/9299

Original issue's description:
> [ic] Support data handlers that represent simple field stores.
>
> BUG=

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

Review-Url: https://chromiumcodereview.appspot.com/2439053002
Cr-Commit-Position: refs/heads/master@{#40505}
2016-10-21 12:46:44 +00:00
ishell
1f697f4231 [ic] Support data handlers that represent simple field stores.
BUG=

Review-Url: https://chromiumcodereview.appspot.com/2438553003
Cr-Commit-Position: refs/heads/master@{#40503}
2016-10-21 12:09:12 +00:00
mlippautz
da2f61030c Add flag --single-threaded
BUG=

Review-Url: https://chromiumcodereview.appspot.com/2420063002
Cr-Commit-Position: refs/heads/master@{#40500}
2016-10-21 11:47:36 +00:00
verwaest
c4e7992cf7 Add support to trace preparsing decisions
BUG=v8:5501

Review-Url: https://codereview.chromium.org/2424013002
Cr-Commit-Position: refs/heads/master@{#40383}
2016-10-18 08:00:35 +00:00
jkummerow
3f6e0a4ef9 [ic] Delete old KeyedLoadIC code
RIP, handwritten KeyedLoadICStub, handwritten KeyedLoadIC_Megamorphic,
and hydrogenized KeyedLoadGeneric!

Review-Url: https://codereview.chromium.org/2424433002
Cr-Commit-Position: refs/heads/master@{#40354}
2016-10-17 10:31:18 +00:00
clemensh
8bb1e6d06b Add option to print all exceptions
When DevTools calls to JavaScript, it often ignores exceptions and just
fails since no value was returned.
The new --print-all-exceptions flag makes it easy to spot the location
and the reason for the thrown exception.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2417743004
Cr-Commit-Position: refs/heads/master@{#40340}
2016-10-17 08:37:41 +00:00
epertoso
3653261931 [turbofan] Modifies the --turbo-verify-machine-graph flag to act as a filter.
This allows people writing code stubs to just verify the graph of the stub they're working on, at least until we fix all of the issues we have and enable the verification by default.

Also fixes representations in CodeStubAssembler::SmiOr and InterpreterAssembler::StarDispatchLookahead.

R=bmeurer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2413653006
Cr-Commit-Position: refs/heads/master@{#40320}
2016-10-14 14:22:36 +00:00
yangguo
b3852ab3b4 Remove --log-regexp.
There is no user for this log entry, and a large part of regexp log
output has long been removed already.

R=jgruber@chromium.org

Review-Url: https://codereview.chromium.org/2422593003
Cr-Commit-Position: refs/heads/master@{#40316}
2016-10-14 13:26:33 +00:00
ishell
9a99cc4732 [stubs] Drop LoadICStub and LoadICTrampolineStub (the non-TurboFan implementations of LoadIC dispatchers).
Because of the planned improvements of IC system it does not make sense to
keep the old platform version of the stub around.

Review-Url: https://codereview.chromium.org/2418513002
Cr-Commit-Position: refs/heads/master@{#40211}
2016-10-12 11:57:01 +00:00
adamk
d4c4618174 Remove --harmony-for-in flag which is always false
The ES spec has been updated to include this legacy syntax in Annex B:
https://tc39.github.io/ecma262/#sec-initializers-in-forin-statement-heads

R=neis@chromium.org
BUG=v8:4942

Review-Url: https://codereview.chromium.org/2407863003
Cr-Commit-Position: refs/heads/master@{#40189}
2016-10-11 23:20:58 +00:00
mstarzinger
1c1138388c [interpreter] Preserve bytecode by default.
This enables preservation of bytecode by default. Thus far bytecode was
cleared during tier-up by default and was only preserved in the staging
configuration.

R=rmcilroy@chromium.org

Review-Url: https://codereview.chromium.org/2384063010
Cr-Commit-Position: refs/heads/master@{#40158}
2016-10-11 09:15:53 +00:00
bmeurer
f6bd23f244 [turbofan] Enforce native context specialization.
There were once plans to generate cross-context code with TurboFan,
however that doesn't fit into the model anymore, and so all of this
is essentially dead untested code (and thus most likely already broken
in subtle ways). With this mode still in place it would also be a lot
harder to make inlining based on SharedFunctionInfo work.

BUG=v8:2206,v8:5499
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2406803002
Cr-Commit-Position: refs/heads/master@{#40109}
2016-10-10 05:53:51 +00:00
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