Commit Graph

59367 Commits

Author SHA1 Message Date
Clemens Backes
04f0785292 [wasm] Add two more trace events
{AsyncCompileJob::FinishCompile} sometimes takes a long time, especially
if DevTools is open. A lot of time can be spent making the script(s)
available to DevTools, or executing the {CompilationResultResolver}.
This CL adds new trace scopes around these two sections to make this
visible in the trace.

R=mstarzinger@chromium.org

Change-Id: Ia97f43e493dfb9ea5468710b877ec9ea8a0714b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889881
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64675}
2019-10-31 11:22:17 +00:00
Clemens Backes
d9e37a84ce [Liftoff] Emit better code for clz and ctz
The {TurboAssembler} already has logic to use the {lzcnt} and {tzcnt}
instructions if available, and otherwise falls back to a slightly
optimized variant of the previous code. Thus, we just call these
methods.

Drive-by: Use {movl} instead of {Set} for constant values, for
          consistency, readability and performance.

R=jkummerow@chromium.org

Bug: v8:9919
Change-Id: I6028fa63c0adc70e8b4a3e61b8377a1eacce5040
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1891350
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64674}
2019-10-31 11:20:07 +00:00
Santiago Aboy Solanes
8edda904f0 [deoptimizer] Accept the use of compressed heap constants
Change-Id: I338ca9de7609eb0855054fe776b32c4e9321ac7c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890104
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64673}
2019-10-31 10:22:27 +00:00
Andreas Haas
45b8e3e9be [wasm] update spec tests
Update the WebAssembly spec tests.

Additional changes:
* Enable tests that pass now: some proposals had out-dated tests. With
  the proposals being rebased, these tests pass now.
* Run the multi-value proposal tests with
  --no-experimental-wasm-bulk-memory. We already enabled bulk-memory by
  default, but it includes some breaking changes.

R=thibaudm@chromium.org

Bug: v8:9673
Change-Id: Ic6de44fc01cee640c741d825dc70b1bdfb1297f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890096
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64672}
2019-10-31 10:09:46 +00:00
Mythri A
efc0c14dbd [ic] Adds a builtin to handle LdaGlobal when there is no feedback
With lazy feedback allocation we always miss to runtime for LdaGlobal till
the feedback vector is allocated. This cl adds and uses a new builtin to
handle some of the common cases in builtins instead of missing to runtime.

Bug: chromium:988402
Change-Id: I5fe0a157234007d8771501df9f2a5ea3a9116862
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1841354
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64671}
2019-10-31 10:08:37 +00:00
Mythri A
9cba7a853b [runtime] Handle when JSProxy::HasProperty returns Nothing
JSProxy::HasProperty returns Nothing<bool>() when there is an
exception when executing has trap handler. We should not treat
these cases similar to not found cases.

Bug: chromium:1018871
Change-Id: I5510e707c96576d2dca4c8402e21a89065cc9b90
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886919
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64670}
2019-10-31 09:57:06 +00:00
Michael Achenbach
e6f62a41f5 [build] Remove jumbo build configs
Bug: chromium:994387
Change-Id: I7b37a416ce6cc79903fe04923e86af1d0065ac37
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890090
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64669}
2019-10-31 09:43:47 +00:00
Clemens Backes
6032db48b9 [Liftoff] Cleanup unop macros
Merge CASE_I32_SIGN_EXTENSION with the identical CASE_I32_UNOP, and
rename CASE_I64_SIGN_EXTENSION to CASE_I64_UNOP. This prepares the
addition of more opcodes.

R=ahaas@chromium.org

Bug: v8:9919
Change-Id: Ie1611e2b937dffab221bfd9911e8b7f2350b9d19
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889882
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64668}
2019-10-31 09:13:31 +00:00
Jakob Gruber
d4b39accba [utils] Fix BitVector::Count with an inline backing store
The condition to detect an inline backing store was wrong and we would
try to access the heap-allocated store even for inline stores.

Drive-by: Use kBitsPerSystemPointer and the new
kBitsPerSystemPointerLog2 constants.

Change-Id: I19d0245ae82642a788c967534ab2a84464d56a67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890093
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64667}
2019-10-31 08:51:18 +00:00
Tobias Tebbi
dcfc453e38 [csa] check arity when calling
Add information to CallInterfaceDescriptor if additional implicit arguments
can be passed on the stack, that is, if it is a varargs calling convention.

With this information, we can have a proper DCHECK in CSA to avoid passing
the wrong number of arguments to builtins that don't support it.
Previously, this lead to difficult to investigate crashes with misaligned
stacks.

Drive-by cleanup: Reduce duplication between DEFINE_PARAMETERS_... macros.

Change-Id: I449af6713a3cdd72e098d3481dfee62e01343f14
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888932
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64666}
2019-10-31 08:16:07 +00:00
Milad Farazmand
dba86292af PPC/s390: [builtins] Remove ParameterCount uses from InvokeFunction(Code)
Port 46648402d0

Original Commit Message:

    CallDebugOnFunctionCall was always using Registers and not Immediates.
    Then ParameterCount is not really needed. Since updating that, we
    could update other functions, e.g InvokeFunction, to only use
    registers too.

    Also removed now irrelevant variables, e.g definitely_mismatches.

R=solanes@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ie0348998503bf4f416440f056e4296d22d064d4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1892171
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64665}
2019-10-31 03:48:34 +00:00
Bill Budge
f27919c343 Revert "[heap] Promote young objects by default in MC"
This reverts commit e2376aed6d.

Reason for revert: Causes failures on multiple bots of regress-678917
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20cfi/22459

Original change's description:
> [heap] Promote young objects by default in MC
> 
> Start experiment with promoting all young live objects during
> mark-compact. This CL sets always_promote_young_mc to true by default.
> 
> Change-Id: I306527ad2a361fc3e0edcf684c5ccec2b1d6e491
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879938
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64630}

TBR=ulan@chromium.org,dinfuehr@chromium.org

Change-Id: I439dfee84a6795caa47f4c9a869ccef44a46a73f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1891512
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64664}
2019-10-30 21:12:09 +00:00
Frank Tang
6a44b75098 Remove keyword/value "ca" and "nu" from locale
Remove unicode keyword/value "ca" and "nu" from
the resolvedOptions().locale, if it does not match
the option "calendar" / "numberingSystem".

Bug: v8:9887
Change-Id: Idabc7e266e8e5f847f919324a93e39df4df440c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1877708
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64663}
2019-10-30 21:00:08 +00:00
Milad Farazmand
d93dab6b4a Revert "PPC/s390: [codegen] Removed ParameterCount class"
This reverts commit 2da05dfcf5.

Reason for revert: Will need to commit some of the changes as a port of  46648402d0

Original change's description:
> PPC/s390: [codegen] Removed ParameterCount class
> 
> Port 1e696896ed
> 
> Original Commit Message:
> 
>     It was used only with Register inputs, so we can replace its uses with
>     the Registers themselves.
> 
> R=​solanes@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
> BUG=
> LOG=N
> 
> Change-Id: I95c0e6fc19ea5f9579d022756a4693ea0140d2f7
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890543
> Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#64661}

TBR=michael_dawson@ca.ibm.com,jyan@ca.ibm.com,joransiu@ca.ibm.com,miladfar@ca.ibm.com,solanes@chromium.org

Change-Id: I10f0a7f3c81f7c5c396df1e26ead50c5f8755231
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1891073
Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64662}
2019-10-30 20:35:58 +00:00
Milad Farazmand
2da05dfcf5 PPC/s390: [codegen] Removed ParameterCount class
Port 1e696896ed

Original Commit Message:

    It was used only with Register inputs, so we can replace its uses with
    the Registers themselves.

R=solanes@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I95c0e6fc19ea5f9579d022756a4693ea0140d2f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890543
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64661}
2019-10-30 20:04:26 +00:00
Deepti Gandluri
3097891464 Reduce some duplication in the x64 assembler
Bug: v8:9810
Change-Id: I585d35d01acf77d15ccb0e7334786d15ba07fb41
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876634
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64660}
2019-10-30 19:53:36 +00:00
Santiago Aboy Solanes
93c8a25339 Regex replaced "TNode<_> const" to "const TNode<_>"
Bug: v8:9810
Change-Id: I2893c3066616b8fb5b3bebde4797adb0dac109c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889878
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64659}
2019-10-30 18:34:36 +00:00
Ng Zhi An
71958d2abf Create a macro list for X-ss instructions
These are SSE instructions that deal with scalar single precision
values, and look like the packed single precision variant of the
instructions, but with a prefix.

E.g. sqrtps is NP 0F 51, sqrtss is F3 0F 51.

Bug: v8:9810
Change-Id: I417ea6d4d85d8618ad6602a1b32d4428db0d66d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874509
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64658}
2019-10-30 18:27:58 +00:00
Michael Starzinger
18afb44ff4 [wasm] Extend streaming-error-position test coverage.
R=clemensb@chromium.org
TEST=mjsunit/wasm/streaming-error-position

Change-Id: Ia1e95f5c5b0f90a98848951333c4c4aa4ebafefe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889880
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64657}
2019-10-30 17:37:46 +00:00
Joshua Litt
5a0e3df6f3 [promises] Port NewPromiseCapability to torque.
Bug: v8:9838
Change-Id: Ibdb985243fe121057f982712b2909f45e0ae175c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1869490
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64656}
2019-10-30 17:24:05 +00:00
Georg Neis
0fb929af25 [turbofan] Don't unconditionally read heap when printing types
... since we may be in the background. Print the HeapObjectRef instead,
which will read the heap when it's allowed to do so.

Bug: v8:9541
Change-Id: I201c6dcd83e1b050393d633e4d59aec636772da6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889876
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64655}
2019-10-30 16:31:35 +00:00
Michael Starzinger
179a2a51a5 [wasm] Fix streaming decoding position reporting.
This fixes the streaming decoder to report the correct error position
for repeating code sections (i.e. only one code section per module).

R=clemensb@chromium.org

Change-Id: Ie02d704d74b4e051fa9b00288dd6d1e46e2418a5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890094
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64654}
2019-10-30 16:20:56 +00:00
Clemens Backes
0f8fb0c2e4 [wasm] Reduce calls to {TriggerCallbacks}
Each run of {OnFinishedUnits} can only trigger baseline completion or
top tier completion at most once, so we can pull the call out of the
loop.

R=ahaas@chromium.org

Change-Id: I7eaf42addbbaa9600cb9bf95dce76399be683971
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889879
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64653}
2019-10-30 15:45:06 +00:00
Milad Farazmand
0591865471 PPC/s390: Reland "[compiler] Optionally apply an offset to stack checks"
Port b875f4661a

Original Commit Message:

    This is a reland of 4a16305b65

    The original CL adjust only one part of the stack check, namely the
    comparison of the stack pointer against the stack limit in generated code.
    There is a second part: Runtime::kStackGuard repeats this check to
    distinguish between a stack overflow and an interrupt request.

    This second part in runtime must apply the offset just like in generated
    code. It is implemented in this reland by the StackCheckOffset operator
    and a new StackGuardWithGap runtime function.

    Original change's description:
    > [compiler] Optionally apply an offset to stack checks
    >
    > The motivation behind this change is that the frame size of an optimized
    > function and its unoptimized version may differ, and deoptimization
    > may thus trigger a stack overflow. The solution implemented in this CL
    > is to optionally apply an offset to the stack check s.t. the check
    > becomes 'sp - offset > limit'. The offset is applied to stack checks at
    > function-entry, and is set to the difference between the optimized and
    > unoptimized frame size.
    >
    > A caveat: OSR may not be fully handled by this fix since we've already
    > passed the function-entry stack check. A possible solution would be to
    > *not* skip creation of function-entry stack checks for inlinees.
    >
    > This CL: 1. annotates stack check nodes with the stack check kind, where
    > kind is one of {function-entry,iteration-body,unknown}. 2. potentially
    > allocates a temporary register to store the result of the 'sp - offset'
    > in instruction selection (and switches input registers to 'unique'
    > mode). 3. Applies the offset in code generation.
    >
    > Drive-by: Add src/compiler/globals.h for compiler-specific globals.
    >
    > Bug: v8:9534,chromium:1000887
    > Change-Id: I257191c4a4978ccb60cfa5805ef421f30f0e9826
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762521
    > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#63701}

R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I37bf1d9157a96a5d3538108703f2d7469a11bffe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890535
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64652}
2019-10-30 15:34:30 +00:00
Sigurd Schneider
d88988b1a8 [debuger/deoptimizer] Remove GC invocation
This CL removes a GC invocation which might not be needed anymore.

This CL picks up on a previous attempt to remove this invocation:
crrev.com/c/928241

Bug: chromium:1005906, chromium:1019613
Change-Id: I487b5bfd51532fe60cd71444b53874f20eecdf16
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1883566
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64651}
2019-10-30 15:33:25 +00:00
Santiago Aboy Solanes
5f1eed24bf [turbolizer] Only add offsets if they are available
In the case where we fail on the 'before register allocation' phase,
we will have the instructions to print, but turbolizer will fail to
show them because it will look for the non-existent offsets.

Bug: v8:7327
Change-Id: I52e520dcb662fe9931f1bb29cd2c16cd62913158
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889883
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64650}
2019-10-30 15:27:05 +00:00
Nico Hartmann
d7d44e69c7 [mjsunit] Disable flaky regress-678917 on windows
Bug: v8:9192
Change-Id: Idd89fd36d4b334b46505bf0b35b7ce2472e6bf08
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890098
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64649}
2019-10-30 14:57:15 +00:00
Santiago Aboy Solanes
16dd7381d1 [ptr-compr] DecompressionOptimizer unit test cleanup
Test for the HeapConstant reduction.

Move heap_constants to a scope where it can be reused by other tests.

Bug: v8:7703
Change-Id: I1da1dd7ad65670980867aa5319b96cc9c701c5a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876064
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64648}
2019-10-30 14:03:16 +00:00
Ingvar Stepanyan
d8f95c4b79 [wasm] Prefer source map over DWARF info if present
Some tools that transform Wasm today, already support encoding the
transforms and correctly updating locations in source maps, but not yet
in DWARF (although this is being worked on).

Until they catch up, it's best to consistently prefer source maps over
DWARF when both are present, and not just rely on order of sections as
accidentally done in the previous CL that introduced DWARF info.

Ref: crrev.com/c/v8/v8/+/1834341
Bug: chromium:1016772
Change-Id: I769311e2096ae0e4ca304bef0a0453c7e0776aae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888930
Commit-Queue: Ingvar Stepanyan <rreverser@google.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64647}
2019-10-30 13:12:35 +00:00
Clemens Backes
ba370876ca [wasm][cleanup] Remove minor debug-only flag
The same functionality can be achieved by just setting a breakpoint in
that function.

R=ahaas@chromium.org

Bug: v8:9810
Change-Id: Ieb5e99b5c2f0b492e32e75cae0c0b9292accd932
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888072
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64646}
2019-10-30 12:48:55 +00:00
Liviu Rau
5a7c5879da Revert "Activate is_offcial_build option for perf builders"
This reverts commit b3c6e1acc1.

Reason for revert: The build time incresed significantly. We want to investigate if we can reduce it by removing the 'packaging' step.

Original change's description:
> Activate is_offcial_build option for perf builders
> 
> Bug: v8:9898
> Change-Id: I41e1fcb37755906e29e6937b805cfb3018e90438
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888937
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Liviu Rau <liviurau@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64640}

TBR=machenbach@chromium.org,tmrts@chromium.org,liviurau@chromium.org

Change-Id: Ifbae1d7aedbfb7e4f7622c5a2bec74bc2f06e7f6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9898
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890092
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64645}
2019-10-30 12:39:58 +00:00
Santiago Aboy Solanes
f0292299f0 [ptr-compr] Add Word32Sar test case to DecompressionOptimizer
Bug: v8:7703
Change-Id: I33e0c82c25d0c43f940d6cf0aff0abc04403b095
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876058
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64644}
2019-10-30 12:11:35 +00:00
Santiago Aboy Solanes
af2a52bbff [ptr-compr] Add Smi tag test case to DecompressionOptimizer
Bug: v8:7703
Change-Id: I06c47aa4057362d52e53b6a45d4e8a5febb92c82
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876055
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64643}
2019-10-30 12:08:37 +00:00
Santiago Aboy Solanes
24c4b32bbe [ptr-compr] Temporarily enable the turbo_decompression_elimination flag
Temporarily enable the flag to test the performance of the
DecompressionOptimization reducer.

Bug: v8:7703
Change-Id: Ia55d732a73f2aef7ef6e3da329c19b2752a41459
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890091
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64642}
2019-10-30 12:06:26 +00:00
Jakob Gruber
8b807ad3d8 Unskip mjsunit/compiler/regress-9017 in is_full_debug
The test was originally skipped due to slowness. This might have been
fixed by reduced store-store zone allocations (see the linked bug).

Locally, this now runs in less than 20 seconds in full x64 debug mode.

The largest zone is < 100MB:

12089344, "V8.TFAllocateGeneralRegisters"
21954208, "graph-zone"
26181688, "../../src/compiler/verifier.cc:2000"
57895456, "instruction-zone"
98933872, "register-allocation-zone"

Drive-by: Remove tsan SLOW annotation, it's already marked SLOW in the
ALWAYS block.

Bug: v8:9572
Change-Id: Ic3ffd3de732e262f412f1d7a66448ea7228582f2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889872
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64641}
2019-10-30 11:41:43 +00:00
Liviu Rau
b3c6e1acc1 Activate is_offcial_build option for perf builders
Bug: v8:9898
Change-Id: I41e1fcb37755906e29e6937b805cfb3018e90438
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888937
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64640}
2019-10-30 11:33:33 +00:00
Santiago Aboy Solanes
1e696896ed [codegen] Removed ParameterCount class
It was used only with Register inputs, so we can replace its uses with
the Registers themselves.

Change-Id: I1ea3ed88ee41177b696a7281cdf3b90fefdc5870
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886916
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64639}
2019-10-30 11:26:27 +00:00
Santiago Aboy Solanes
0f87242806 [ptr-compr] Add Word32And case for DecompressionOptimizer
Smi checks get lowered to Word32And, so they are important to consider
in the reducer.

Bug: v8:7703
Change-Id: Ie6e2403db84f83808edcc1e44ecb60ecd72ae34d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876053
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64638}
2019-10-30 11:17:12 +00:00
Santiago Aboy Solanes
2b9c0b3c51 [turbofan] Adding missing DecompressionElimination flag check
Effect control linearization knows about compressed values only when
DecompressionElimination is active.

Bug: v8:7703
Change-Id: I7854488322f846f94c644e057ab1c32641adf662
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1883896
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64637}
2019-10-30 11:06:17 +00:00
Gus Caplan
7bd4068101 Rename and retype Symbol name to description
Change-Id: I2a1ad1835b751237b350e56d64e3475459bfb7a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1873715
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64636}
2019-10-30 10:38:55 +00:00
Dominik Inführ
572f536a54 [heap] Change SlotSet representation to store dynamic number of buckets
Change SlotSet representation to a variable-sized array of pointers to
buckets. The length of the array/number of buckets depends on the size
of the page.
Before this change the SlotSet always stored a fixed number of
buckets. Large pages needed a SlotSet-Array to cover the whole object.

Now both regular and large pages both use a single SlotSet object,
which contains all bucket pointers.

Change-Id: I2d8d62fad54b58409cd39ae7a52c64497ee7c261
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876811
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64635}
2019-10-30 10:36:35 +00:00
Jakob Gruber
b875f4661a Reland "[compiler] Optionally apply an offset to stack checks"
This is a reland of 4a16305b65

The original CL adjust only one part of the stack check, namely the
comparison of the stack pointer against the stack limit in generated code.
There is a second part: Runtime::kStackGuard repeats this check to
distinguish between a stack overflow and an interrupt request.

This second part in runtime must apply the offset just like in generated
code. It is implemented in this reland by the StackCheckOffset operator
and a new StackGuardWithGap runtime function.

Original change's description:
> [compiler] Optionally apply an offset to stack checks
>
> The motivation behind this change is that the frame size of an optimized
> function and its unoptimized version may differ, and deoptimization
> may thus trigger a stack overflow. The solution implemented in this CL
> is to optionally apply an offset to the stack check s.t. the check
> becomes 'sp - offset > limit'. The offset is applied to stack checks at
> function-entry, and is set to the difference between the optimized and
> unoptimized frame size.
>
> A caveat: OSR may not be fully handled by this fix since we've already
> passed the function-entry stack check. A possible solution would be to
> *not* skip creation of function-entry stack checks for inlinees.
>
> This CL: 1. annotates stack check nodes with the stack check kind, where
> kind is one of {function-entry,iteration-body,unknown}. 2. potentially
> allocates a temporary register to store the result of the 'sp - offset'
> in instruction selection (and switches input registers to 'unique'
> mode). 3. Applies the offset in code generation.
>
> Drive-by: Add src/compiler/globals.h for compiler-specific globals.
>
> Bug: v8:9534,chromium:1000887
> Change-Id: I257191c4a4978ccb60cfa5805ef421f30f0e9826
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762521
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63701}

Bug: v8:9534, chromium:1000887
Change-Id: I71771c281afd7d57c09aa48ea1b182d01e6dee2a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1822037
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64634}
2019-10-30 10:23:05 +00:00
Clemens Backes
6a18b44b0d [cleanup] Remove SMI_VALUE macro
{Smi::ToInt} has only one character more.

R=mstarzinger@chromium.org

Bug: v8:9810
Change-Id: I1e91bb3623a354ceeee1dc93822011a6809281d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886922
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64633}
2019-10-30 10:12:55 +00:00
Ulan Degenbaev
52a7ae362a [heap] Extracts parts of ConcurrentMarkingVisitor into a base class
This is the first step in unification of concurrent and main thread
marking visitors. The new MarkingVisitorBase will become a base class
for all marking visitors and will remove the existing code duplication.

This is a refactoring without behavior change.

Subsequent CL will change the main thread marking visitor to derive
from the new base class.

Bug: chromium:1019218

Change-Id: I3d47030d396e0ba6706882fbd922bbcac46181b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886920
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64632}
2019-10-30 10:05:45 +00:00
Clemens Backes
1dea7e42f7 [wasm][liftoff] Remove dead macros
The macros were probably duplicated when splitting off
liftoff-assembler.cc from liftoff-compiler.cc, but are dead now.

R=mstarzinger@chromium.org

Bug: v8:9810
Change-Id: I668ce598815c45cc690653b5a12d90ab44937204
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1888070
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64631}
2019-10-30 09:35:14 +00:00
Dominik Inführ
e2376aed6d [heap] Promote young objects by default in MC
Start experiment with promoting all young live objects during
mark-compact. This CL sets always_promote_young_mc to true by default.

Change-Id: I306527ad2a361fc3e0edcf684c5ccec2b1d6e491
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879938
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64630}
2019-10-30 08:38:34 +00:00
Jakob Gruber
5d5a659539 [regexp] Fix invalid DCHECK in named capture logic
The `capture_ix` refers to all captures while `capture_count` only
refers to named captures. Clarified by renaming `capture_count` to
`named_capture_count` and removing the incorrect part of the DCHECK.

The `>= 1` part of the condition must still hold since named captures
can only refer to explicit capture groups, which start at index 1.

Tbr: petermarshall@chromium.org
Bug: chromium:1018592
Change-Id: If8a26f6661ba0483d585f74270b3b4a3853e2ca8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886810
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64629}
2019-10-30 07:09:24 +00:00
Zhao Jiazhong
3358bb0445 [mips] [codegen] Better load of receiver in CheckDebugHook
Port 1e4bb08 https://crrev.com/c/1826728

Change-Id: If977914ef55eb65228f92fecd1c9e9d0f625fa2b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886716
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64628}
2019-10-30 02:25:33 +00:00
Johannes Henkel
1c219e5a04 [DevTools] Remove unused from utf16 method.
Change-Id: Ie73b21c284052a66ce18f0686030ee0a11f49d3c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1887631
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64627}
2019-10-29 23:51:33 +00:00
Johannes Henkel
21c7245074 [DevTools] Make V8's ProtocolMessage a std::vector<uint8_t> for now.
Also we're not creating these any more via StringUtil in blink,
so these two helpers can go.

Change-Id: Ifdf700171ebc46cfbd6ce0af9a6f6ba73419a5a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1887689
Auto-Submit: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64626}
2019-10-29 23:31:53 +00:00