Commit Graph

39957 Commits

Author SHA1 Message Date
pierre.langlois
2dc261e1c4 [turbolizer] Match instruction offsets as a hexadecimal numbers
The output of disassemblers was changed to display instruction offsets as
hexadecimal numbers instead of a decimal numbers. Reflect this change in
turbolizer.

BUG=

Review-Url: https://codereview.chromium.org/2885453002
Cr-Commit-Position: refs/heads/master@{#45315}
2017-05-15 17:43:26 +00:00
Leszek Swirski
f133bc8ad5 [ignition] Introduce Switch bytecode for generators
Introduce a new SwitchSmiTable bytecode for generators, which does a
table lookup for the accumulator value in a jump table stored in the
constant array pool. This removes the if-else chains at resumable
function/loop headers.

As a drive-by, add a scoped environment saving struct to the bytecode
graph builder.

Bug: v8:6351
Bug: v8:6366
Change-Id: I63be15a8b599d6684c7df19dedb8860562678fb0
Reviewed-on: https://chromium-review.googlesource.com/500271
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45314}
2017-05-15 17:43:17 +00:00
Clemens Hammacher
ae4216160d Revert "[builtins] port Promise.all to CSA"
This reverts commit 7ef1df858a.

Reason for revert: Breaks inspector/debugger/get-possible-breakpoints-restrict-to-function: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/13191/steps/Check/logs/get-possible-breakpoi..

Original change's description:
> [builtins] port Promise.all to CSA
> 
> Introduces CodeStubAssembler helpers for common Iterator operations
> (GetIterator, IteratorStep, IteratorClose).
> 
> Moves the Promise.all resolveElement closure and it's caller to
> builtins-promise-gen.cc.
> 
> Instead of creating an internal array (and copying its elements into a result
> array), a single JSArray is allocated, and appended with BuildAppendJSArray(),
> falling back to %CreateDataProperty(), and elements are updated in the resolve
> closure the same way. This should always be unobservable.
> 
> This CL increases the size of snapshot_blob.bin on an x64.debug build by 11.44kb
> 
> BUG=v8:5343
> R=​cbruni@chromium.org, gsathysa@chromium.org, jgruber@chromium.org
> 
> Change-Id: Id69b7f76866b29caccd97f35870154c4be85f418
> Reviewed-on: https://chromium-review.googlesource.com/497974
> Commit-Queue: Caitlin Potter <caitp@igalia.com>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45306}

TBR=adamk@chromium.org,cbruni@chromium.org,gsathya@chromium.org,caitp@igalia.com,jgruber@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5343

Change-Id: I831738003643561fa628266af2bcebbb18000e55
Reviewed-on: https://chromium-review.googlesource.com/506014
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45313}
2017-05-15 17:17:47 +00:00
dusan.simicic
b99a1ba0a6 MIPS[64]: Support for some SIMD operations (6)
Add support for I16x8Mul, I16x8MaxS, I16x8MinS, I16x8Eq, I16x8Ne,
I16x8LtS, I16x8LeS, I16x8AddSaturateU, I16x8SubSaturateU, I16x8MaxU,
I16x8MinU, I16x8LtU, I16x8LeU, I8x16Splat, I8x16ExtractLane,
I8x16ReplaceLane, I8x16Neg, I8x16Shl, I8x16ShrS, S16x8Select,
S8x16Select for mips32 and mips64 architectures.

BUG=

Review-Url: https://codereview.chromium.org/2791213003
Cr-Commit-Position: refs/heads/master@{#45312}
2017-05-15 15:46:04 +00:00
Camillo Bruni
02c032c601 [CSA] Improve error mesage when re-binding the same label
Change-Id: I102558ee4fac29e5bc259117129a47632cc8bd58
Reviewed-on: https://chromium-review.googlesource.com/505508
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45311}
2017-05-15 15:29:55 +00:00
martyn.capewell
f8a6c6c48e Add DEPS.chromium for recursive DEPS tracking.
DEPS.chromium allows the Chromium build system's DEPS to recurse into V8's own
dependencies. Initially, this is populated with some tests files for the ARM64
simulator.

BUG=chromium:718439

Review-Url: https://codereview.chromium.org/2880293002
Cr-Commit-Position: refs/heads/master@{#45310}
2017-05-15 15:23:48 +00:00
Michael Achenbach
260eb5bb9b Revert "[objects.h splitting] Move Map and related classes."
This reverts commit 7be0159e4b.

Reason for revert: Breaks node integration:
https://build.chromium.org/p/client.v8.fyi/builders/V8%20-%20node.js%20integration/builds/5555

Original change's description:
> [objects.h splitting] Move Map and related classes.
> 
> BUG=v8:5402
> 
> Change-Id: I64fae0a0271eb0f1b71f4ec5d9bd5d22deb1cf59
> Reviewed-on: https://chromium-review.googlesource.com/502808
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45305}

TBR=marja@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5402

Change-Id: I7abbe535484f89288f11d963317e1552e1dac17f
Reviewed-on: https://chromium-review.googlesource.com/506012
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45309}
2017-05-15 15:06:47 +00:00
Clemens Hammacher
79b075beb9 [wasm] Speed up LEB decoding
Speed up LEB decoding by forcing the decoding loop to be unrolled.
Even though the compiler was free to unroll the loop before, clang did
not do so. We now manually unroll by using a template function which
calls itself recursively, passing the byte index to be decoded next.
For efficient execution, we still depend on the compiler to inline the
recursive calls (which clang does).

This optimization speeds up interpreted execution of the Jetstream
benchmarks by 15 percent.
Speedup on module decoding is negligible though.

Drive-by: Change "unsigned" to "uint32_t".

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

Change-Id: I06d4230f92bfb2a80cdc5029d965fc3bf84ca1cc
Reviewed-on: https://chromium-review.googlesource.com/506188
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45308}
2017-05-15 15:02:36 +00:00
Marja Hölttä
cc2c11441c Revert "[objects.h splitting] Move Map and related classes."
This reverts commit 7be0159e4b.

Reason for revert: Broke node by generating a broken debug-support.cc

Original change's description:
> [objects.h splitting] Move Map and related classes.
> 
> BUG=v8:5402
> 
> Change-Id: I64fae0a0271eb0f1b71f4ec5d9bd5d22deb1cf59
> Reviewed-on: https://chromium-review.googlesource.com/502808
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45305}

TBR=marja@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5402

Change-Id: Ifa65537447eb0a1ef947b9d0dae6f07a8b150968
Reviewed-on: https://chromium-review.googlesource.com/506011
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45307}
2017-05-15 15:01:03 +00:00
Caitlin Potter
7ef1df858a [builtins] port Promise.all to CSA
Introduces CodeStubAssembler helpers for common Iterator operations
(GetIterator, IteratorStep, IteratorClose).

Moves the Promise.all resolveElement closure and it's caller to
builtins-promise-gen.cc.

Instead of creating an internal array (and copying its elements into a result
array), a single JSArray is allocated, and appended with BuildAppendJSArray(),
falling back to %CreateDataProperty(), and elements are updated in the resolve
closure the same way. This should always be unobservable.

This CL increases the size of snapshot_blob.bin on an x64.debug build by 11.44kb

BUG=v8:5343
R=cbruni@chromium.org, gsathysa@chromium.org, jgruber@chromium.org

Change-Id: Id69b7f76866b29caccd97f35870154c4be85f418
Reviewed-on: https://chromium-review.googlesource.com/497974
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45306}
2017-05-15 14:47:40 +00:00
Marja Hölttä
7be0159e4b [objects.h splitting] Move Map and related classes.
BUG=v8:5402

Change-Id: I64fae0a0271eb0f1b71f4ec5d9bd5d22deb1cf59
Reviewed-on: https://chromium-review.googlesource.com/502808
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45305}
2017-05-15 14:41:01 +00:00
Ross McIlroy
663a8ef470 [Compile] Fix test for marked for deopt in CompileLazy builtin.
BUG=chromium:721078,v8:6246

Change-Id: I10f20d9cc2c7cabff8a3fba02aff351fcecc0ce2
Reviewed-on: https://chromium-review.googlesource.com/505611
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45304}
2017-05-15 14:35:41 +00:00
Marja Hölttä
3e12ed1f78 [parser] Skipping inner funcs: Fix related to classes.
- Default constructor scopes won't need the scope data for deciding the scope
allocation of variables inside them. Also, PreParser doesn't construct them. So
they should be just skipped when applying the scope data.

- PreParser needs to declare the class name + have a proper end position for
the class scope.

- This makes all mjsunit tests pass with --experimental-preparser-scope-analysis.

- Also added several DCHECKs which were useful for debugging.

BUG=v8:5516

Change-Id: I5b3e6c60ed79efe25f33576a3547d707c700c6dd
Reviewed-on: https://chromium-review.googlesource.com/503208
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45303}
2017-05-15 14:22:34 +00:00
Michael Lippautz
6546bfe316 [heap] Factor out NumberOfAvailableCores
Bug: chromium:651354
Change-Id: Ie940c8715a33e5fc8e8859c4660ab14ecc6f9233
Reviewed-on: https://chromium-review.googlesource.com/505488
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45302}
2017-05-15 13:53:27 +00:00
Wiktor Garbacz
cea359906a Fix V8_NORETURN for MSVC
Change-Id: Ie141097c12ad578c752f51393bd5a5df176b3cad
Reviewed-on: https://chromium-review.googlesource.com/504528
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45301}
2017-05-15 13:33:59 +00:00
Clemens Hammacher
45d5dc8c02 [asm.js] Re-enable asm-wasm translation timer
This timer is disabled since the switch to the new validator.
This CL brings it back.

R=mstarzinger@chromium.org

Change-Id: Ie454af72205564d6fec05dd4b7b44c1e3d0c37d6
Reviewed-on: https://chromium-review.googlesource.com/505610
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45300}
2017-05-15 13:26:50 +00:00
Michael Starzinger
f2b9c5005c [asm.js] Fix evaluation of first for-statement expression.
This makes sure that the evaluation result of the first expression in
for-statements is properly dropped, to leave the stack in a balanced
state after the statement. It also makes sure validation failures in
said expression are handled correctly.

R=clemensh@chromium.org
TEST=mjsunit/regress/regress-crbug-721835
BUG=chromium:721835

Change-Id: I7e6cff4cea0bbf5aad6a3459e27a08ea814dbdbe
Reviewed-on: https://chromium-review.googlesource.com/506148
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45299}
2017-05-15 13:19:49 +00:00
Mythri
96b0928939 Remove crankshaft flag.
Crankshaft flag and opt flag mostly serve the same purpose. Using 
crankshaft to mean use optimizing compiler is a bit confusing.
This cl: https://chromium-review.googlesource.com/c/490206/ fixes 
the tests to use opt instead of crankshaft flag.

One difference between --no-crankshaft and --no-opt would be that 
--no-opt would mean no optimizations at all where as with --no-crankshaft
would mean we can force optimizations using %OptimizeFunctionOnNextCall.

Bug: v8:6325
Change-Id: If17393ac5b6af4ea6e9a98e092f0261c2e0899c5
Reviewed-on: https://chromium-review.googlesource.com/490307
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45298}
2017-05-15 12:34:20 +00:00
georgia.kouveli
9171d91c23 [arm] Print address for load literal instructions.
BUG=

Review-Url: https://codereview.chromium.org/2871863003
Cr-Commit-Position: refs/heads/master@{#45297}
2017-05-15 11:00:16 +00:00
Mythri
4acca5ba88 [Interpreter] Inline feedback collection in relational compare bytecode handlers.
This is the last in the series of simplifying the logic to collect feedback
in compare bytecode handlers. This cl inlines the type feedback collection
for the relational compare (lessthan, lessthan or equal, greater than,
gerater than or equal) bytecode handlers.

Bug: v8:4280
Change-Id: I4a896c9cbe5628c76785882c0632bfa07b18b099
Reviewed-on: https://chromium-review.googlesource.com/500309
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45296}
2017-05-15 10:28:13 +00:00
Camillo Bruni
5ce6090d1b [CSA] Improve CSA debuggability
- Add BasicBlock::Print method for easier inspection in gdb
- Print detailed error message in InstructionSelector::VisitControl instead
  of just a check failure

Change-Id: Ice9d70567114f014b244c1b4e41e450900030994
Reviewed-on: https://chromium-review.googlesource.com/504388
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45295}
2017-05-15 10:14:38 +00:00
bmeurer
130d7dc34c [turbofan] Properly merge compatible field access infos.
For a polymorphic access to o.x we would only merge it into a single
PropertyAccessInfo so far, if x is at the same offset in all maps and
the property index of x (in the descriptor arrays) is the same. But that
doesn't matter for code generation and blocks optimizations even.

BUG=v8:6278,v8:6344,v8:6396
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2883883002
Cr-Commit-Position: refs/heads/master@{#45294}
2017-05-15 09:03:58 +00:00
jing.bao
1073dc987b [ia32] Add rcpps, rsqrtps, cvtdq2ps, cvttps2dq
instr(xmm, xmm/mem)
vinstr(xmm, xmm/mem)

BUG=

Review-Url: https://codereview.chromium.org/2870253003
Cr-Commit-Position: refs/heads/master@{#45293}
2017-05-15 09:00:42 +00:00
jarin
168eb163a7 [turbofan] Ignore accumulator uses in frame state for the apply-argument optimization decision.
BUG=chromium:718820

Review-Url: https://codereview.chromium.org/2878343003
Cr-Commit-Position: refs/heads/master@{#45292}
2017-05-15 08:35:40 +00:00
bmeurer
558cee1d14 [turbofan] Always inline small functions directly.
Introduce a flag --max_inlined_nodes_small (defaults to 10), which gives
the upper limit of AST nodes for a function to be considered "small" by
the inlining heuristic. These functions will always be inlined
immediately, independent of the budget.

R=jarin@chromium.org
BUG=v8:6395,v8:6278,v8:6344,v8:6394

Review-Url: https://codereview.chromium.org/2883853002
Cr-Commit-Position: refs/heads/master@{#45291}
2017-05-15 08:33:46 +00:00
jgruber
e658bc575f [array] Simplify index calculation in Array.p.indexOf
No semantic changes, just a readability refactoring that removes
a couple of unnecessary variables and labels.

BUG=v8:6371

Review-Url: https://codereview.chromium.org/2881763003
Cr-Commit-Position: refs/heads/master@{#45290}
2017-05-15 08:32:32 +00:00
Michael Starzinger
6c75e145ec [asm.js] Remove dead nullptr check of signatures.
R=clemensh@chromium.org

Change-Id: I616a972283cc85ccaf63c46d0cc11ccbb7563a46
Reviewed-on: https://chromium-review.googlesource.com/504527
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45289}
2017-05-15 08:32:15 +00:00
jgruber
f0082e5631 [turbofan] Lower optimization size limit to 80K
250K was probably still too generous and 80K leads to improvements
locally.

BUG=v8:6348

Review-Url: https://codereview.chromium.org/2876413002
Cr-Commit-Position: refs/heads/master@{#45288}
2017-05-15 08:25:25 +00:00
jgruber
646fdacaa7 [csa] Add ToLength and ToString variants with inlined fast checks
Smis can easily be handled outside the stub call without adding much to code
size.

The ToString inlining adds overhead of repeated instance type loads and checks,
but under the assumption that it is called with mostly string values it should
speed things up (a local RegExp.p[@@replace] microbenchmark shows consistent
1.6% improvements).

Drive-by-fix: Remove duplication in ToString implementations.

BUG=

Review-Url: https://codereview.chromium.org/2874423003
Cr-Commit-Position: refs/heads/master@{#45287}
2017-05-15 07:51:15 +00:00
Camillo Bruni
3a80814d53 [runtime] Keep FAST_SLOPPY_ARGUMENTS packed
With this CL SloppyArguments immediately go to dictionary elements on
deletion, keeping the arguments backing store packed.

Bug: v8:6251
Change-Id: I90d1972179447bf6810e7fe2b8e0bc8703b38d9d
Reviewed-on: https://chromium-review.googlesource.com/486921
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45286}
2017-05-15 07:36:41 +00:00
v8-autoroll
252ca1a6b0 Update V8 DEPS.
Rolling v8/build: cb040e9..63fb52b

Rolling v8/third_party/icu: 4b06aad..87232d8

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

Change-Id: Ie82d5813078e93ce03eb5161199971efef264b7e
Reviewed-on: https://chromium-review.googlesource.com/505712
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45285}
2017-05-15 03:31:59 +00:00
v8-autoroll
a0f0a0bbfe Update V8 DEPS.
Rolling v8/build: 3639cca..cb040e9

Rolling v8/third_party/catapult: ff3b45d..37015fb

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

Change-Id: I8fa21ea36bec3f6f235b6c0a82eef358abceeb82
Reviewed-on: https://chromium-review.googlesource.com/505868
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45284}
2017-05-14 03:35:16 +00:00
v8-autoroll
1fa584336b Update V8 DEPS.
Rolling v8/build: 00764a8..3639cca

Rolling v8/third_party/catapult: 1ff6ffc..ff3b45d

Rolling v8/tools/clang: 4dfb853..162cac4

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

Change-Id: Ia06ca0b5c6f911d86fc6e6fdae197a79a84675a3
Reviewed-on: https://chromium-review.googlesource.com/505707
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45283}
2017-05-13 03:34:42 +00:00
Eric Holk
b9e4bbb0a0 Remove CcTestArrayBufferAllocator
This is almost identical to V8's default array buffer allocator.  The only
difference is that 0 byte allocations are changed into 1 byte allocations.  We
do not seem to need this behavior, so it does not seem worth maintaining yet
another allocator.

Bug: 
Change-Id: I94f45f1276958791be9a6f2405fcfba8fa6eaa38
Reviewed-on: https://chromium-review.googlesource.com/505199
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Eric Holk <eholk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45282}
2017-05-12 22:07:56 +00:00
Adam Klein
68f0a47b28 [ignition] Move generator object creation to BytecodeGenerator
This lets us avoid allocating the "this" variable for every
generator, since the BytecodeGenerator can directly read
the receiver via BytecodeArrayBuilder::Receive() when passing
it into %_CreateJSGeneratorObject.

Bug: v8:6351
Change-Id: Ib5e1f3303b6b5d5fc051ce76ea62129fd6afac65
Reviewed-on: https://chromium-review.googlesource.com/500507
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Caitlin Potter <caitp@igalia.com>
Cr-Commit-Position: refs/heads/master@{#45281}
2017-05-12 18:07:02 +00:00
Michael Lippautz
fc5765ce79 [heap] Simplify PageParallelJob
Remove FinalizePageSequentially as it had only a single use case that
was tied to the full collector.

Bug: chromium:651354
Change-Id: I03299ddbd439ea273e02dd33f12c005371694130
Reviewed-on: https://chromium-review.googlesource.com/504508
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45280}
2017-05-12 13:41:14 +00:00
ivica.bogosavljevic
dd9ac62cd3 MIPS: Fix unaligned memory access for 64-bit types in wasm-external-refs
TEST=wasm-spec-tests/tests/set_local,wasm-spec-tests/tests/imports
BUG=

Review-Url: https://codereview.chromium.org/2859223004
Cr-Commit-Position: refs/heads/master@{#45279}
2017-05-12 13:17:37 +00:00
Ross McIlroy
4e43fc65f6 [Compiler] Only look in optimized code cache if function is compiled.
We make assumptions that baseline code exists if we run the optimized code
(e.g., to deopt to the baseline code). If the baseline code has been
cleared by code flushing (only full-codegen) then it might not exist
but there is still optimized code in the map.

BUG=v8:6389

Change-Id: Id4db664afee96c2da3a36a177f425293aae9a0a3
Reviewed-on: https://chromium-review.googlesource.com/503010
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45278}
2017-05-12 13:11:04 +00:00
Michael Starzinger
fe9c60c175 [asm.js] Maintain global order of exported functions.
This makes sure that the order of exports as they appear in asm.js
modules is maintained globally (not just per function) while being
translated to a WASM module.

R=clemensh@chromium.org
TEST=mjsunit/asm/asm-validation
BUG=chromium:720586

Change-Id: I8b26d717ae2f88467d41670bced901f196c7b3fc
Reviewed-on: https://chromium-review.googlesource.com/503708
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45277}
2017-05-12 12:11:06 +00:00
jgruber
11d80c95ca [array] Fast allocation in Array.p.map and Array.p.filter
No need to call through ConstructJS -> ArrayCode -> ArrayConstructorStub
-> AllocateJSArray if we can call AllocateJSArray directly.

This also moves ArraySpeciesCreate to builtins-array-gen to free
up space in the binary.

BUG=v8:6354

Review-Url: https://codereview.chromium.org/2874833004
Cr-Commit-Position: refs/heads/master@{#45276}
2017-05-12 11:37:21 +00:00
mvstanton
0e788e3291 [builtins] String.prototype.slice as a CSA builtin.
BUG=v8:6370

Review-Url: https://codereview.chromium.org/2870013004
Cr-Commit-Position: refs/heads/master@{#45275}
2017-05-12 11:35:32 +00:00
mvstanton
752bdcbf0f Remove outdated comment.
I just tried a local mac build, and the assert seems to be okay.
Let's see what the waterfall thinks.

R=mlippautz@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2875273002
Cr-Commit-Position: refs/heads/master@{#45274}
2017-05-12 10:47:43 +00:00
ivica.bogosavljevic
afd201f144 Update MIPS owners
Add Miran Karic and Dusan Simicic
Remove Paul Lind, Gergely Kis, Akos Palfi, Balasz Kilvady
and Dusan Milosavljevic

NOTRY=true

Review-Url: https://codereview.chromium.org/2881493003
Cr-Commit-Position: refs/heads/master@{#45273}
2017-05-12 10:06:35 +00:00
Loo Rong Jie
749840645b Concat help strings and print in one go
Compilers don't flatten os << const char* for you. Save a bit binary size.

Bug:NO

Change-Id: Iabe0de83fdf6394f223d0423e63bd5aadf1453b3
Reviewed-on: https://chromium-review.googlesource.com/503829
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Loo Rong Jie <loorongjie@gmail.com>
Cr-Commit-Position: refs/heads/master@{#45272}
2017-05-12 09:53:18 +00:00
Clemens Hammacher
eb18a5146b [base] Fix integer check in CHECK/DCHECK macros
The current implementation failed when comparing an integral type to a
reference to an integral type of different signedness (see updated
unittest).
This CL fixes the checks to actually test the std::decay<T>::type,
i.e. with all references, const or volatile modifiers stripped.

R=jochen@chromium.org, ishell@chromium.org
TEST=unittests/LoggingTest.CompareWithReferenceType

Change-Id: Ib0ac077a91e0409ada7a80b68150cb98cbdd32f1
Reviewed-on: https://chromium-review.googlesource.com/502814
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45271}
2017-05-12 09:39:48 +00:00
Mircea Trofin
ca370361d4 [wasm] use Vector's size_t members.
Bug: 
Change-Id: Ic5b96bfb6b8b468434c06aed5e12b4ddb278dd08
Reviewed-on: https://chromium-review.googlesource.com/503440
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45270}
2017-05-12 05:38:43 +00:00
v8-autoroll
c5246e6942 Update V8 DEPS.
Rolling v8/build: 2e68430..00764a8

Rolling v8/third_party/catapult: 27f7008..1ff6ffc

Rolling v8/tools/clang: ae881aa..4dfb853

Rolling v8/tools/swarming_client: e6fc938..a941a08

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

Change-Id: I5a68e9bc325e394b618e0f5605b3c4b13a80f263
Reviewed-on: https://chromium-review.googlesource.com/503869
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45269}
2017-05-12 03:38:32 +00:00
rayb
468f1958e0 For building v8 using gn on aix_ppc64, linux_s390x and linux_ppc64(both LE and BE).
Also add support for host_byteorder logic which is introduced in - https://codereview.chromium.org/2815453004/

Chromium_BUG=706728
R=machenbach@chromium.org, dpranke@chromium.org, adamk@chromium.org

Review-Url: https://codereview.chromium.org/2809963004
Cr-Commit-Position: refs/heads/master@{#45268}
2017-05-12 01:35:09 +00:00
Mircea Trofin
74543fedd8 Use size_t for Vector<T> size.
Conf. c++ coding guide (https://chromium.googlesource.com/chromium/src/+/master/styleguide/c++/c++.md#Types),
we may use size_t for vector indices, etc.

Bug: 
Change-Id: I578fb4199c061b006d03e1cc68e745868b40c227
Reviewed-on: https://chromium-review.googlesource.com/503590
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45267}
2017-05-12 00:56:14 +00:00
kozyatinskiy
f61facfdaf [inspector] use creation stack trace as parent for async call chains
Creation stack trace points to the place where callback was actually chained, scheduled points where parent promise was resolved.
For async tasks without creation stack (e.g. setTimeout) we continue to use scheduled as creation since usually they are the same.

BUG=v8:6189
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2868493002
Cr-Original-Commit-Position: refs/heads/master@{#45198}
Committed: e118462f18
Review-Url: https://codereview.chromium.org/2868493002
Cr-Commit-Position: refs/heads/master@{#45266}
2017-05-11 19:21:24 +00:00