Commit Graph

43255 Commits

Author SHA1 Message Date
Mike Stanton
9b2a8c2255 [TurboFan] Model TypeOf as a simplified operator
Because the typeof operator may lower to a builtin call (which is
effectful in turbofan parlance after effect control linearization),
it really should be encoded as a simplified operator, which can
be optimized with respect for the effect chain in linearization.

No new functionality here, rather a furniture rearrangement in
the TurboFan node structure.

BUG=v8:6929

Change-Id: I38593e10956ebd57cecdd606c35f3f73efb1327e
Reviewed-on: https://chromium-review.googlesource.com/718745
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48613}
2017-10-16 19:15:00 +00:00
Jakob Kummerow
6627b0aaf7 [bigint] Call NonNumberToNumeric where applicable
This supports {valueOf() { return BigInt(...) }} objects as
operands in binary and unary operations.

Bug: v8:6791
Change-Id: I30ec9983ff611477742f9ea0bc6d04972fe21d3c
Reviewed-on: https://chromium-review.googlesource.com/716863
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48612}
2017-10-16 18:53:19 +00:00
Adam Klein
2d60b72890 [ast cleanup] Remove unnecessary macro magic in AstValueFactory
We can use member initializers instead of the OTHER_CONSTANTS macro to
handle the declaration of oddball AstValue members in AstValueFactory.

Bug: v8:6921
Change-Id: I701e2fd36f854cfc0d835981d060622070b5bfba
Reviewed-on: https://chromium-review.googlesource.com/719395
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48611}
2017-10-16 18:15:31 +00:00
Junliang Yan
112918919f Reland "PPC/s390: Fix arguement handling"
This is a reland of af49af006f
Original change's description:
> PPC/s390: Fix arguement handling
> 
> 1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float
> 2. in 32-bit mode, double needs to be counted as 2 slots in stack
> 
> R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com
> 
> Bug: 
> Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27
> Reviewed-on: https://chromium-review.googlesource.com/720676
> Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
> Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#48593}

Change-Id: If91125e71b82c92f54f537345e4c213bd185e786
Reviewed-on: https://chromium-review.googlesource.com/721419
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#48610}
2017-10-16 18:10:47 +00:00
Ben Smith
e60edd9505 Support postMessage of shared WebAssembly.Memory
This is only enabled when --experimental-wasm-threads is enabled.

In addition, only shared WebAssembly.Memory may be sent, as specified
here: https://github.com/WebAssembly/design/pull/1074/files#diff-8e85308ab5cc1e83e91ef59233648be2R227

Bug: v8:6895
Change-Id: Id009a7f890d15fa6c98e93f03806f7e7eff30c2a
Reviewed-on: https://chromium-review.googlesource.com/719417
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48609}
2017-10-16 17:43:51 +00:00
Benedikt Meurer
4213af64b6 [es2015] Optimize Reflect.has builtin.
Port the baseline version of Reflect.has to the CodeStubAssembler and
reuse the existing logic for HasProperty (i.e. the HasProperty builtin).
Also inline the Reflect.has builtin into TurboFan, by adding a check
on the target in front of a use of the JSHasProperty operator.
Technically this additional check is not necessary, because the
JSHasProperty operator already throws if the target is not a JSReceiver,
but the exception message is confusing then.

This improves the performance of the micro-benchmark from

  reflectHasPresent: 337 ms.
  reflectHasAbsent: 472 ms.

to

  reflectHasPresent: 121 ms.
  reflectHasAbsent: 216 ms.

which is a nice 2.8x improvement in the best case. It also improves the
chai test on the web-tooling-benchmark by around 1-2%, which is roughly
the expected win (since Reflect.has overall accounts for around 3-4%).

Bug: v8:5996, v8:6936, v8:6937
Change-Id: I856183229677a71c19936f06f2a4fc7a794a9a4a
Reviewed-on: https://chromium-review.googlesource.com/720959
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48608}
2017-10-16 17:27:41 +00:00
Andreas Haas
efa038361d [wasm][cleanup] Use enums for template parameter values instead of bool
Calls like read_leb<int32_t, true, true, true>(...) can be hard to read
and understand. This CL replaces the three boolean template parameters
with enums so that the call is read_leb<int32_t, kChecked, kAdvancePC, kTrace>(...)
now.

R=clemensh@chromium.org

Bug: v8:6921
Change-Id: Id876a727d5e17df721444e7e5a117ad5395071aa
Reviewed-on: https://chromium-review.googlesource.com/718204
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48607}
2017-10-16 17:03:41 +00:00
Ali Ijaz Sheikh
d0e3fb4f2e Reland: [heap] Add missing steps for Add/Remove observers
This is a reland of https://chromium-review.googlesource.com/c/v8/v8/+/715118.
The UI doesn't allow me to reland this automatically due to merge conflicts
so I ended up doing this manually.

Change-Id: Ic013b61f459cb1e91e24203fb31ae7c14f3754f8
Reviewed-on: https://chromium-review.googlesource.com/720136
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com>
Cr-Commit-Position: refs/heads/master@{#48606}
2017-10-16 16:40:39 +00:00
Jakob Gruber
f7b09b3bdd Reland "[snapshot] Ship lazy TFJ builtins"
This is a reland of 56da97bb41
Original change's description:
> [snapshot] Ship lazy TFJ builtins
> 
> Design doc: goo.gl/dxkYDZ
> 
> Bug: v8:6624
> Change-Id: I8813f79e415843ffe8d33a605a2662dbfc0c9764
> Reviewed-on: https://chromium-review.googlesource.com/674883
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Michael Hablich <hablich@chromium.org>
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#48590}

TBR=yangguo@chromium.org,hablich@chromium.org

Bug: v8:6624, v8:6942
Change-Id: I1af6b0982f7e129127f2714c27a74b7e39207065
Reviewed-on: https://chromium-review.googlesource.com/721179
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48605}
2017-10-16 16:04:12 +00:00
Andreas Haas
972d460f4f [wasm] Use 64-bit comparison for bounds checks on 64-bit platforms
By using 64-bit comparison we make sure that there will be no out of
memory accesses even if there are stale values in the high word of a
register.

R=titzer@chromium.org

Change-Id: I2627b15e1598f35cc480d7028031e8de405164ea
Reviewed-on: https://chromium-review.googlesource.com/721323
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48604}
2017-10-16 15:36:29 +00:00
Michael Lippautz
d88e3a7a9f [heap] Pause Sweeper tasks on Scavenge
Pause sweeper tasks when entering the Scavenger. In future CLs this
enables removing the page lock for the Scavenger.

CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Bug: v8:6923, chromium:774108
Change-Id: Idcb7e14b94704dead70c33a49e67047b88bb6c4c
Reviewed-on: https://chromium-review.googlesource.com/718200
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48603}
2017-10-16 15:27:09 +00:00
Clemens Hammacher
0738f0f668 [wasm] Move "thread in wasm" flag handling out of compiled code
Instead of modifying this flag in compiled wasm code, we can just
change it in the caller / called code. This saves code space and
compilation time and fixes the referenced bug.

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

Bug: chromium:773631, v8:5277
Change-Id: I095158ac01eecd21a92649a3990e8d7c593db912
Reviewed-on: https://chromium-review.googlesource.com/712597
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Eric Holk <eholk@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48602}
2017-10-16 15:17:29 +00:00
Junliang Yan
76b73c4c75 PPC: Add EmitConstantPool to FinishCode
R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com

Bug: 
Change-Id: I30c5bba9380d71d1ea2fc0391aa90adca9330eb2
Reviewed-on: https://chromium-review.googlesource.com/721339
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#48601}
2017-10-16 15:13:40 +00:00
Junliang Yan
34ba7e9484 Revert "PPC/s390: Fix arguement handling"
This reverts commit af49af006f.

Reason for revert: <INSERT REASONING HERE>

There is a mistake in codegen to cause error in snapshot.

Original change's description:
> PPC/s390: Fix arguement handling
> 
> 1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float
> 2. in 32-bit mode, double needs to be counted as 2 slots in stack
> 
> R=​joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com
> 
> Bug: 
> Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27
> Reviewed-on: https://chromium-review.googlesource.com/720676
> Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
> Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#48593}

TBR=michael_dawson@ca.ibm.com,jyan@ca.ibm.com,joransiu@ca.ibm.com,jbarboza@ca.ibm.com,mmallick@ca.ibm.com

Change-Id: I76b7eb96e7bfc15e3d2b07474543e996b9ea5f86
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/721140
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#48600}
2017-10-16 14:59:32 +00:00
Georg Neis
7a7639e594 Fix type feedback recording in CodeStubAssembler::Equal.
R=bmeurer@chromium.org, jarin@chromium.org

Bug: v8:6941
Change-Id: Ic1062e1c5f181ab5041fb7b7cb1487683a36c300
Reviewed-on: https://chromium-review.googlesource.com/721020
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48599}
2017-10-16 14:41:20 +00:00
Michal Majewski
8e23c4b7f6 Build options moved to the BaseTestRunner.
Bug: v8:6917
Change-Id: Ife79f1d3c60f591c00bb1ecd340a9f1b31b02039
Reviewed-on: https://chromium-review.googlesource.com/720808
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michał Majewski <majeski@google.com>
Cr-Commit-Position: refs/heads/master@{#48598}
2017-10-16 14:35:41 +00:00
Michael Achenbach
e1003825a2 [tools] Post-filter clusterfuzz test cases with bugs
NOTRY=true
TBR=titzer@chromium.org

Bug: chromium:775027
Change-Id: I0bd4a55e3530e1e2f26bbe416587f1421f6cdbae
Reviewed-on: https://chromium-review.googlesource.com/721180
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48597}
2017-10-16 14:29:49 +00:00
Clemens Hammacher
0932510f2e [cleanup] Fix (D)CHECK macros in src/{ast,parsing}
Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an
embedded comparison. This gives better error messages and also does the
right comparison for signed/unsigned mismatches.

This will allow us to reenable the readability/check cpplint check.

R=marja@chromium.org

Bug: v8:6837, v8:6921
Change-Id: I17cf5cbbac3d2992c3b3588cc66e8564982453b6
Reviewed-on: https://chromium-review.googlesource.com/681355
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48596}
2017-10-16 14:22:59 +00:00
peterwmwong
33b23529f4 [builtins] Port String.prototype.{padStart, padEnd} to CSA
- Extract core StringPrototypeRepeat code into a TFS builtin (StringRepeat)
  - Assumes arguments are a string and smi (no range checks)
- Add StringPrototypePadStart and StringPrototypePadEnd TFJ builtins
  - Added StringPadAssembler to ensure common behavior
- Removed functionality from string.js

A quick benchmark shows significant performance gains for unoptimized
code (2.1x to 2.46x) and optimized code (1.03x - 1.56x).

https: //github.com/peterwmwong/v8-perf/blob/master/string-pad/README.md
Bug: v8:5049
Change-Id: I6e4fe99fb62a3edb3d6906fd4f78b3576b5b0d13
Reviewed-on: https://chromium-review.googlesource.com/720067
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48595}
2017-10-16 14:19:19 +00:00
Clemens Hammacher
61c7af2e97 [cleanup] Fix (D)CHECK macros in src/snapshot
Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an
embedded comparison. This gives better error messages and also does the
right comparison for signed/unsigned mismatches.

This will allow us to reenable the readability/check cpplint check.

R=yangguo@chromium.org

Bug: v8:6837, v8:6921
Change-Id: I0c2deaea3f2ff5b5b25ba658470850534f1900ac
Reviewed-on: https://chromium-review.googlesource.com/681435
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48594}
2017-10-16 14:14:19 +00:00
Junliang Yan
af49af006f PPC/s390: Fix arguement handling
1. in AssembleMove and AssembleSwap, we need to distinguish Double and Float
2. in 32-bit mode, double needs to be counted as 2 slots in stack

R=joransiu@ca.ibm.com, jbarboza@ca.ibm.com, michael_dawson@ca.ibm.com, mmallick@ca.ibm.com

Bug: 
Change-Id: Iffe1844aa72e9d4c9492034c3df9a994e1304a27
Reviewed-on: https://chromium-review.googlesource.com/720676
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#48593}
2017-10-16 14:10:20 +00:00
Marja Hölttä
d69159d52d [parser] Skipping inner funcs: fix related to aborting preparsing.
When skipping inner funcs is enabled, we also track variables for top level
funcs. Thus, we also declared the function name for the function scope, even
though it was the function scope for a function whose preparsing was
aborted. This lead into declaring the function name twice.

The fix is to declare the function name only in the success case.

The code was "wrong" before too, but this was never a problem, since variable
tracking and aborting preparsing were enabled for disjoint sets of
functions (aborting preparsing only for top-level, and variable tracking for
non-top-level).

BUG=v8:5516,chromium:774475

Change-Id: Ie6c321cc834cd946e8843f73916fa7dd75e9cd09
Reviewed-on: https://chromium-review.googlesource.com/720920
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48592}
2017-10-16 13:31:49 +00:00
Michael Achenbach
47fabf362b Revert "[snapshot] Ship lazy TFJ builtins"
This reverts commit 56da97bb41.

Reason for revert:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/15579

Original change's description:
> [snapshot] Ship lazy TFJ builtins
> 
> Design doc: goo.gl/dxkYDZ
> 
> Bug: v8:6624
> Change-Id: I8813f79e415843ffe8d33a605a2662dbfc0c9764
> Reviewed-on: https://chromium-review.googlesource.com/674883
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Michael Hablich <hablich@chromium.org>
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#48590}

TBR=yangguo@chromium.org,hablich@chromium.org,jgruber@chromium.org

Change-Id: I5513d2d20444a95937465ab86df295b031849f99
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6624
Reviewed-on: https://chromium-review.googlesource.com/721079
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48591}
2017-10-16 13:29:52 +00:00
Jakob Gruber
56da97bb41 [snapshot] Ship lazy TFJ builtins
Design doc: goo.gl/dxkYDZ

Bug: v8:6624
Change-Id: I8813f79e415843ffe8d33a605a2662dbfc0c9764
Reviewed-on: https://chromium-review.googlesource.com/674883
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48590}
2017-10-16 12:08:31 +00:00
Ben L. Titzer
829670e16a [wasm] Canonicalize signatures per module at module decode time.
This is needed for proper deserialization of code and has the nice
side effect of fixing the nasty race condition that led us to
introducing a lock on the signature map.

R=mtrofin@chromium.org
CC=clemensh@chromium.org

Bug: 
Change-Id: I6a018344ad8b58b088b20756d3b00ae08232bbb9
Reviewed-on: https://chromium-review.googlesource.com/718937
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48589}
2017-10-16 12:03:21 +00:00
Ivica Bogosavljevic
aab1df6de2 [wasm] Add missing parameters to MachineOperatorBuilder.
MachineOperatorBuilder was instantiated with default parameters
and this caused unaligned memory access errors.

Bug: 
Change-Id: Id95d074b2641ba4f002171b5c2990a520879f490
Reviewed-on: https://chromium-review.googlesource.com/720812
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com>
Cr-Commit-Position: refs/heads/master@{#48588}
2017-10-16 11:45:07 +00:00
Leszek Swirski
e659f45610 [cleanup] Make LanguageMode an enum class
Bug: v8:6921
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: I3294568a550b829b0ec90147a4cdaefe169bb7cb
Reviewed-on: https://chromium-review.googlesource.com/718206
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48587}
2017-10-16 11:44:01 +00:00
Clemens Hammacher
ae9c77a20a [cleanup] [presubmit] Remove left-over comment
This comment was left over in
https://codereview.chromium.org/2601043002.

R=machenbach@chromium.org
NOTRY=true

Bug: v8:6921
Change-Id: I5182fc624129948172ce436dc9b04c6fcd299d18
Reviewed-on: https://chromium-review.googlesource.com/720924
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48586}
2017-10-16 11:37:52 +00:00
Clemens Hammacher
5a53ea5ec8 [cleanup] [presubmit] Remove non-existing cpplint category
The readability/streams category is gone since
https://codereview.chromium.org/777533005.

R=machenbach@chromium.org

Bug: v8:6921
Change-Id: If0e0f978275ad20278ccedcdd607c31ae30d3133
Reviewed-on: https://chromium-review.googlesource.com/720925
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48585}
2017-10-16 11:35:51 +00:00
Ben L. Titzer
5820041884 [wasm] Use WasmContext in the WasmInterpreter.
With the introduction of the WasmContext, compiled code is no longer
specialized to the memory start and size (or recently, globals_start).
This CL uses the same WasmContext between the interpreter and compiled
code, removing the need for UpdateMemory() and cached instance info.

R=clemensh@chromium.org

Bug: 
Change-Id: I0bd52352c9b6f3029246e94e239dc29f635e7920
Reviewed-on: https://chromium-review.googlesource.com/712734
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48584}
2017-10-16 10:51:07 +00:00
Michael Achenbach
089dd7d244 [test] Add output for investigating win-asan failures
Also fix asan environment for testing on windows.

TBR=sergiyb@chromium.org

Bug: chromium:726584
Change-Id: Ic9e6afa714f4757ad1b0f2ebfa742e742e1c04b9
Reviewed-on: https://chromium-review.googlesource.com/720811
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48583}
2017-10-16 10:30:27 +00:00
Michael Lippautz
4b42656dd6 [heap] Unify incremental and main marking visitor
With parallel marking enabled, both visitors have to be equal wrt. to
actual visitation.

The differences are captured by template parameters:
- Retaining path tracing which we only do for full GCs.
- Incremental marking of FixedArray.

CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Bug: chromium:694255, chromium:750084
Change-Id: I177aeb0ee4f6a35e2f592ba257c9ddc14f88fd99
Reviewed-on: https://chromium-review.googlesource.com/704935
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48582}
2017-10-16 10:00:08 +00:00
Ben L. Titzer
c02f5e3ab3 [wasm] Store the globals_start in WasmContext.
This CL removes the code specialization for WASM functions that access
globals. Previously, we were embedding the start address of the globals
memory (globals_start) as a constant in the code, which required
patching for every instance. We now put this base in to the WasmContext,
which is available as a parameter to every WasmFunction.

R=ahaas@chromium.org,
CC=mtrofin@chromium.org

Bug: 
Change-Id: I04bb739e898cc5a3b7dd081cc166483022d113fd
Reviewed-on: https://chromium-review.googlesource.com/712595
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48581}
2017-10-16 09:35:47 +00:00
Mike Stanton
cf9d3d52eb [Turbofan] operator!= unnecessary in simplified-operator.
They can be...eliminated.

Bug: 
Change-Id: I234dddfb059fa15daf09c2095f1ea1813aa8428f
Reviewed-on: https://chromium-review.googlesource.com/720802
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48580}
2017-10-16 09:20:48 +00:00
Mike Stanton
c7990226ec [Turbofan] Introduce TransitionAndStore[Non]NumberElement
In Array.prototype.map, we have to store the map result in an output array.
If we know we are storing objects, or special objects like boolean, rather
than a number, then we can reduce the amount of checks we have to do to
transition the output array to the appropriate ElementsKind.

Likewise, if we know we've got floating point values, we can specialize 
appropriately to a double array.

Bug: v8:6896
Change-Id: I375daf604562b53638ea749945c1a4c907e33547
Reviewed-on: https://chromium-review.googlesource.com/711845
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48579}
2017-10-16 08:57:18 +00:00
Mathias Bynens
361bb1a047 [test] Refactor assertPromiseResult
This patch introduces assertPromiseFulfills and assertPromiseFulfills as
a replacement for assertPromiseResult because it’s more JavaScript-y.

BUG=v8:6921
R=ahaas@chromium.org

Also-By: ahaas@chromium.org
Change-Id: I2f865dba3992ddf3b58987bf0b376d143edb5c31
Reviewed-on: https://chromium-review.googlesource.com/718746
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48578}
2017-10-16 08:39:15 +00:00
Michael Achenbach
73c4f6c828 [build] Fix win-asan compilation
ASAN compilation expects a blacklist file.

NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:726584
Change-Id: I1755dc20d3e91f9b15f15e0d34886a4fb03d97c1
Reviewed-on: https://chromium-review.googlesource.com/720804
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48577}
2017-10-16 08:37:15 +00:00
Michael Achenbach
30b7cffade [build] Fix build configs for win-asan
Win asan needs separate "clang" config as clang is not the default on windows.

TBR=sergiyb@chromium.org
NOTRY=true

Bug: chromium:726584
Change-Id: Ic49eedf9a229eb3f81774c8d03c9d19ba1211c3d
Reviewed-on: https://chromium-review.googlesource.com/720801
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48576}
2017-10-16 08:21:13 +00:00
Michael Achenbach
bc1794c6db [build] Switch win asan bots to 32 bits
V8 side for:
https://chromium-review.googlesource.com/c/chromium/tools/build/+/720373

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

Bug: chromium:726584
Change-Id: I240be307c1072a2fce354b4eda8a60e1c65b1607
Reviewed-on: https://chromium-review.googlesource.com/720796
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48575}
2017-10-16 08:06:33 +00:00
Benedikt Meurer
776a7ceefd [platform] Properly account for the library offset.
When looking at /proc/self/maps, we need to take into account the offset
in addition to the start and end addresses, otherwise --prof get's
confused with binaries produced by lld.

Change-Id: If6b484a8080a0393e91174c114dafe9a11964e8d
Reviewed-on: https://chromium-review.googlesource.com/720371
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48574}
2017-10-16 07:22:51 +00:00
Michael Achenbach
21821447c9 [build] Add new trybots to CQ experiment
NOTRY=true
TBR=sergiyb@chromium.org

Bug: v8:6918
Change-Id: I16d44acd8c5cf57d472e4e8ffebf08b3d316441c
Reviewed-on: https://chromium-review.googlesource.com/720370
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48573}
2017-10-16 06:30:28 +00:00
v8-autoroll
164efde1b2 Update V8 DEPS.
Rolling v8/build: fc1d428..0db5732

TBR=machenbach@chromium.org,hablich@chromium.org

Change-Id: I0fe5fdbdf90af216756c848c08d1b3b2b166c0f9
Reviewed-on: https://chromium-review.googlesource.com/720400
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48572}
2017-10-16 03:55:17 +00:00
Michael Achenbach
df04f80a6f [build] Add configs for linux-shared and win64-clang trybots
V8 side configs for:
https://chromium-review.googlesource.com/c/chromium/tools/build/+/718938

NOTRY=true

Bug: v8:6918
Change-Id: Ie375a65611c4426baafd352c0cca37d38d1a53b7
Reviewed-on: https://chromium-review.googlesource.com/718750
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48571}
2017-10-15 14:14:36 +00:00
v8-autoroll
57b1a9bf43 Update V8 DEPS.
Rolling v8/build: f630878..fc1d428

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/03a5bff..c0f385b

Rolling v8/tools/clang: 0235fed..d1283a8

TBR=machenbach@chromium.org,hablich@chromium.org

Change-Id: I8c2f52e0b625f79f22dee31a704edefee1676d75
Reviewed-on: https://chromium-review.googlesource.com/720398
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48570}
2017-10-15 03:51:07 +00:00
Georg Neis
e346d05cf3 [collections] Fix error message.
R=gsathya@chromium.org

Bug: 
Change-Id: I66bc6cffddea540e382b7f59f519a4d902a0c1b6
Reviewed-on: https://chromium-review.googlesource.com/712050
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48569}
2017-10-14 11:29:09 +00:00
Sathya Gunasekaran
2941eb0684 [Compiler] Delete dead code
Bug: v8:6921
Change-Id: I0ce0a285181561f1940a0a1823134fbc87e698bc
Reviewed-on: https://chromium-review.googlesource.com/720237
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48568}
2017-10-14 11:00:19 +00:00
Michael Achenbach
f485f44ad9 Revert "[inspector] breakpoint after last break position should not jump to first line"
This reverts commit 61292f0b60.

Reason for revert: Breaks layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/18913

Original change's description:
> [inspector] breakpoint after last break position should not jump to first line
> 
> R=​jgruber@chromium.org
> 
> Bug: chromium:730177
> Change-Id: I0f3666a333604cb80bb51410c5edf2aceb0c6ef5
> Reviewed-on: https://chromium-review.googlesource.com/717717
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#48556}

TBR=kozyatinskiy@chromium.org,jgruber@chromium.org

Change-Id: Ic4e961bf9c82e43281779c79e22660a55bfcb29d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:730177
Reviewed-on: https://chromium-review.googlesource.com/720376
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48567}
2017-10-14 10:53:30 +00:00
v8-autoroll
041de0aa1a Update V8 DEPS.
Rolling v8/build: c6001bd..f630878

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/67c0157..03a5bff

Rolling v8/tools/clang: 0c09c7a..0235fed

TBR=machenbach@chromium.org,hablich@chromium.org

Change-Id: I22871ddb4330486a03333983b9e832d071ed2720
Reviewed-on: https://chromium-review.googlesource.com/720278
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48566}
2017-10-14 04:30:36 +00:00
Mike Stanton
a8db822577 Better comment for a bailout case in the SafeStackFrameIterator.
We should explain why we default to StackFrame::OPTIMIZED rather
than StackFrame::INTERPRETED when we don't have a great idea
about what kind of frame we are looking at.

Bug: 
Change-Id: I9d3cc84def6164ef79a4792822d52c11dfe8a448
Reviewed-on: https://chromium-review.googlesource.com/668450
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48565}
2017-10-14 01:41:16 +00:00
Adam Klein
31cde16eee [parser cleanup] Replace redundant GetLiteral*() helpers with factory calls
Bug: v8:6092, v8:6921
Change-Id: I321ecc661832f2212d16260aa6b863cef56b7676
Reviewed-on: https://chromium-review.googlesource.com/719414
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48564}
2017-10-13 23:20:19 +00:00