Commit Graph

37649 Commits

Author SHA1 Message Date
Marja Hölttä
8c449e39b5 [parsing/test] Skipping inner funcs: add more (structured tests).
Test both cases where the interesting constructs occur at the
laziness boundary and cases where they occur deeper.

BUG=v8:5501
R=vogelheim@chromium.org

Change-Id: I99e32cb0c829616011bf7d1f389a8d309b54d67e
Reviewed-on: https://chromium-review.googlesource.com/441844
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43157}
2017-02-13 15:04:34 +00:00
Marja Hölttä
cb7e3d39fd Disable flaky debugger/debug/harmony/modules-debug-scopes1
BUG=v8:5950
NOTRY=true

Change-Id: I735e9be997167aa9f7252ad592c0881f6f5f621d
Reviewed-on: https://chromium-review.googlesource.com/441726
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43156}
2017-02-13 14:44:55 +00:00
Michael Achenbach
163ff9943e [foozzie] Ignore OOM
BUG=chromium:691458
NOTRY=true
TBR=tandrii@chromium.org

Change-Id: I252f8624e18d54e0ba60800a2c4f3bf50c30c661
Reviewed-on: https://chromium-review.googlesource.com/441704
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43155}
2017-02-13 13:00:40 +00:00
Michael Achenbach
6096d03449 Whitespace change to trigger bots.
BUG=chromium:689886

Change-Id: I4fd0cacd8b1a2de6507a4f33dfa5a01df8a3b2bf
Reviewed-on: https://chromium-review.googlesource.com/441725
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43154}
2017-02-13 11:36:31 +00:00
Michael Achenbach
f3b5f70cd2 [foozzie] Add more architectures for correctness comparisons
BUG=chromium:673246
NOTRY=true
TBR=jarin@chromium.org,ahaas@chromium.org

Change-Id: Ie2000f543e017dbef27c3faa49565fe838eddcee
Reviewed-on: https://chromium-review.googlesource.com/441345
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43153}
2017-02-13 10:49:25 +00:00
bmeurer
949d65252d [builtins] Add support for ExternalOneByteStrings to StringEqual.
The StringEqual builtin can now deal with ExternalOneByteStrings
without going to the runtime. It still needs to go to the runtime
if the external string is short, i.e. if the resource data pointer
is not cached.

R=yangguo@chromium.org
BUG=v8:4913

Review-Url: https://codereview.chromium.org/2690853004
Cr-Commit-Position: refs/heads/master@{#43152}
2017-02-13 10:43:30 +00:00
vabr
1dd803f9d3 Fix error message for invalid buffer offset
The constructor for TypedArray in js/typedarray.js emitted
kInvalidTypedArrayAlignment if the array offset exceeded the size of the
underlying buffer. This seems like a typo introduced in
https://codereview.chromium.org/2090353003.

The error message to be emitted instead coincides with the already existing
kInvalidDataViewOffset. The message string is independent of whether the
object in question is a DataView or a typed array, so this CL:
  (1) renames kInvalidDataViewOffset to just kInvalidOffset, and
  (2) uses kInvalidOffset instead of kInvalidTypedArrayAlignment for cases
      when the TypedArray is constructed with an offset exceeding the buffer
      size.

BUG=v8:5733
TEST=Run d8, execute "new Uint8Array(new ArrayBuffer(1),2)", see the error message mention the invalid offset 2.

Review-Url: https://codereview.chromium.org/2692753002
Cr-Commit-Position: refs/heads/master@{#43151}
2017-02-13 10:28:34 +00:00
vabr
e08f85fcfe Unify TypeError messages
This CL fixes some nits in TypeError messages, unifying the form of
kDefineDisallowed and kObjectNotExtensible to match what is used by the
majority of the other messages:
  * "Cannot" vs. "Can't" -> choose "Cannot"
  * "property:%" -> "property %"
  * omit the full-stop at the end of the message

BUG=v8:5673

Review-Url: https://codereview.chromium.org/2686233008
Cr-Commit-Position: refs/heads/master@{#43150}
2017-02-13 10:27:03 +00:00
Michael Starzinger
6ee0b6cec6 [turbofan] Correct lazy deopt by {JSCreate} operation.
This adds support for deoptimizing into the JSConstructStub after the
receiver instantiation but before the actual constructor invocation.
Such a deoptimization point is needed for cases where instantiation
might be observed (e.g. when new.target is a proxy) and hence might
trigger a deopt.

We use this new deoptimization point for the "after" frame-state the
inliner attaches to {JSCreate} nodes being inserted when constructor
calls are being inlined.

R=jarin@chromium.org
TEST=mjsunit/regress/regress-5638b
BUG=v8:5638

Change-Id: I7c72c807ee8fb76d12e0e9ccab86d970ab1a0efd
Reviewed-on: https://chromium-review.googlesource.com/440125
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43149}
2017-02-13 10:14:54 +00:00
Leszek Swirski
6c5cd4d21d [turbofan] Allow registers/accum/params to share state value nodes
Previously, accumulators and registers each had a single element cache,
distinct from the local register cache. This meant that

 a) Dead accumulator state nodes were not re-used if the accumulator
    became live.
 b) Functions with only one parameter (the this object) or only one
    local register could not reuse the single-valued state value node
    of the accumulator.

This patch introduces heavier re-use of state-value nodes, decreasing
memory use when building the graph and decreasing the number of nodes
created overall.

Change-Id: Ie3cc6913483aab0819d99be382eb2cb42de8c3d2
Reviewed-on: https://chromium-review.googlesource.com/440926
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43148}
2017-02-13 10:13:36 +00:00
Marja Hölttä
d1055c1fbd [iwyu] Remove unallowed include arguments.h -> objects-inl.h
After this, only 2 illegal includes to objects-inl.h remain (some wasm stuff).

R=​mstarzinger@chromium.org
BUG=v8:5294

Change-Id: I18682f42f0d2a7cc29a0a0be76f8e4eea26aafd9
Reviewed-on: https://chromium-review.googlesource.com/441744
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43147}
2017-02-13 10:06:48 +00:00
clemensh
45f1bf80ea [x64] Use smaller code sequence when pushing SMIs
If exactly one byte in the upper half of the pushed 8-byte value is
set, use a smaller code sequence to push this value on the stack.
Before, we did
  movq r10,<constant>
  push r10
Now, we do
  push 0x0
  movb [rsp+<offset>],<byte>

The old sequence had 12 bytes, the new one has 7.
Pushing such values is used a lot for stack frame markers, which are
small numbers (1-17) encoded as SMIs.

Review-Url: https://codereview.chromium.org/2685213004
Cr-Commit-Position: refs/heads/master@{#43146}
2017-02-13 10:03:05 +00:00
Michael Achenbach
c495421cc2 [foozzie] Add configuration for comparing lazy/non-lazy parsing
BUG=chromium:673246
NOTRY=true
TBR=marja@chromium.org

Change-Id: If1fe4e886f03b3d6df57fb55df4db7efe7c625fa
Reviewed-on: https://chromium-review.googlesource.com/441764
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43145}
2017-02-13 09:55:14 +00:00
adamk
0aa6414a93 [cleanup] Remove redundant block_scope argument from DeclareClassVariable
R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2690723002
Cr-Commit-Position: refs/heads/master@{#43144}
2017-02-13 09:39:49 +00:00
bmeurer
165b411f5f [csa] Make CSA::Assert depend on --debug-code.
This way it's possible to disable Assert() even in Debug
builds via --nodebug-code.

R=danno@chromium.org
BUG=v8:5268

Review-Url: https://codereview.chromium.org/2690983002
Cr-Commit-Position: refs/heads/master@{#43143}
2017-02-13 09:17:46 +00:00
Marja Hölttä
ba3f96f476 [parsing] Turn FLAG_lazy_inner_functions back on.
(The bug below is fixed.)

BUG=v8:5938

Change-Id: Ifa0213b1475b1f065238ffad77a03cdfdc49bd28
Reviewed-on: https://chromium-review.googlesource.com/441724
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43142}
2017-02-13 08:59:52 +00:00
Jochen Eisinger
38ceadab02 Make sure a pure list of headers is never turned into a static library
Windows won't create empty .lib files, and will subsequently fail to
find the library other rules expect

R=machenbach@chromium.org
BUG=

Change-Id: I8b848834a6957c2164f0eafc853587d39ccb6ca9
Reviewed-on: https://chromium-review.googlesource.com/440244
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43141}
2017-02-13 08:43:43 +00:00
ahaas
94c9a4fafd [fuzzer] Format README.md
NOTRY=true
R=hablich@chromium.org

Review-Url: https://codereview.chromium.org/2692443002
Cr-Original-Commit-Position: refs/heads/master@{#43138}
Committed: a3de4726c3
Review-Url: https://codereview.chromium.org/2692443002
Cr-Commit-Position: refs/heads/master@{#43140}
2017-02-13 08:42:26 +00:00
ahaas
68bcaf9be3 Revert of [fuzzer] Format README.md (patchset #2 id:20001 of https://codereview.chromium.org/2692443002/ )
Reason for revert:
Found another mistake

Original issue's description:
> [fuzzer] Format README.md
>
> NOTRY=true
> R=hablich@chromium.org
>
> Review-Url: https://codereview.chromium.org/2692443002
> Cr-Commit-Position: refs/heads/master@{#43138}
> Committed: a3de4726c3

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

Review-Url: https://codereview.chromium.org/2693863002
Cr-Commit-Position: refs/heads/master@{#43139}
2017-02-13 08:39:55 +00:00
ahaas
a3de4726c3 [fuzzer] Format README.md
NOTRY=true
R=hablich@chromium.org

Review-Url: https://codereview.chromium.org/2692443002
Cr-Commit-Position: refs/heads/master@{#43138}
2017-02-13 08:37:47 +00:00
bmeurer
1a2362089c [es2015] Remove the @@hasInstance protector cell.
We cannot skip the @@hasInstance lookup in instanceof depending on a
global protector cell, as the lookup of the property is observable
via proxies or accessors. So remove the global protector and properly
implement CSA::InstanceOf via GetPropertyStub, with an appropriate
fast-path for Function.prototype[@@hasInstance] where we call the
builtin code object directly if the function matches, skipping all
the checks from the call sequence, and also avoid the redundant
ToBoolean conversion on the result.

R=yangguo@chromium.org
TBR=ulan@chromium.org
BUG=v8:5958

Review-Url: https://codereview.chromium.org/2684033012
Cr-Commit-Position: refs/heads/master@{#43137}
2017-02-13 07:16:27 +00:00
kozyatinskiy
ff10ed5520 [inspector] migrated Debugger.setBreakpointsActive to native
BUG=none
R=pfeldman@chromium.org,yangguo@chromium.org,jgruber@chromium.org

Review-Url: https://codereview.chromium.org/2688243004
Cr-Commit-Position: refs/heads/master@{#43136}
2017-02-13 07:13:43 +00:00
gsathya
31bc17f006 [promises] cleanup default promise handlers
Use private symbols to mark default promise handler, instead of calling out to default
handlers defined in JS. We check for this symbol in PromiseHandle and perform the
appropriate behavior as the default handlers.

Catch prediction logic is updated to account for a symbol.

BUG=v8:5343

Review-Url: https://codereview.chromium.org/2695593002
Cr-Commit-Position: refs/heads/master@{#43135}
2017-02-13 06:31:11 +00:00
v8-autoroll
299f834058 Update V8 DEPS.
Rolling v8/third_party/catapult: a6b2121..67cf0dc

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

Change-Id: Ife98ccbac145d280c8db845586dc73f14c20ad9f
Reviewed-on: https://chromium-review.googlesource.com/441605
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43134}
2017-02-13 04:27:13 +00:00
chunyang.dai
e5168c7929 [build] Enable gn build for vtune support in v8.
BUG=

Review-Url: https://codereview.chromium.org/2688483004
Cr-Commit-Position: refs/heads/master@{#43133}
2017-02-13 02:54:05 +00:00
littledan
4530f0dc0c Revert of [typedarrays] move %TypedArray%.prototype.copyWithin to C++ (patchset #6 id:100001 of https://codereview.chromium.org/2671233002/ )
Reason for revert:
Due to security issue described in review thread.

Original issue's description:
> [typedarrays] move %TypedArray%.prototype.copyWithin to C++
>
> - Removes shared InnerArrayCopyWithin JS builtin from src/js/array.js
> - Implements %TypedArray%.prototype.copyWithin as a C++ builtin, which
> relies on std::memmove rather than accessing individual eleements.
> - Fixes the case where copyWithin is invoked on a TypedArray with a
> detached buffer.
> - Add tests to ensure that +/-Infinity (for all 3 parameters) is handled correctly by the
> algorithm
>
> The C++ version gets through the benchmark more than 25000 times as
> quickly as the JS implementation.
>
> BUG=v8:5925, v8:5929, v8:4648
> R=cbruni@chromium.org, adamk@chromium.org, littledan@chromium.org
>
> Review-Url: https://codereview.chromium.org/2671233002
> Cr-Commit-Position: refs/heads/master@{#42975}
> Committed: 0f1c626d55

TBR=cbruni@chromium.org,adamk@chromium.org,bmeurer@chromium.org,cwhan.tunz@gmail.com,caitp@igalia.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:5925, v8:5929, v8:4648

Review-Url: https://codereview.chromium.org/2693753002
Cr-Commit-Position: refs/heads/master@{#43132}
2017-02-12 21:16:18 +00:00
bmeurer
32ed62911f [intrinsics] Remove unused %_RegExpExec and %_NumberToString.
These intrinsics are no longer required, but their runtime call pendants
are still in use. So remove support for those from all compilers.

BUG=v8:5049
R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2694623002
Cr-Commit-Position: refs/heads/master@{#43131}
2017-02-12 19:04:39 +00:00
bmeurer
a8758ddb5c [turbofan] Add support for JSArrayBufferView intrinsics.
A couple of the builtins in src/js/typedarray.js still depends on these
intrinsics, so if we don't want to regress all of them, we'll have to
support these trivial intrinsics until the JS builtins are migrated.

R=yangguo@chromium.org
BUG=v8:5267

Review-Url: https://codereview.chromium.org/2695553002
Cr-Commit-Position: refs/heads/master@{#43130}
2017-02-12 19:01:22 +00:00
ahaas
2860c48370 [wasm] Introduce the --print-wasm-code flag to print wasm code.
R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2663433003
Cr-Commit-Position: refs/heads/master@{#43129}
2017-02-12 17:26:48 +00:00
shiyu.zhang
d401543f84 [ia32] Optimize index calculation for certain checked load/stores.
It reduces the add operation for certain checked load/stores by pre-do
the add in compiling phase.

BUG=

Review-Url: https://codereview.chromium.org/2593483002
Cr-Commit-Position: refs/heads/master@{#43128}
2017-02-12 16:24:13 +00:00
v8-autoroll
340c64af4b Update V8 DEPS.
Rolling v8/build: 0d29448..3e5cfce

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

Change-Id: Id55df9c6550a29e463e64b6db43fbc25e661424d
Reviewed-on: https://chromium-review.googlesource.com/441604
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43127}
2017-02-12 04:27:29 +00:00
cwhan.tunz
48dff523f7 Throw when a holey property is set in Array.sort
Do not allow that holey properties are defined in Array sort.
Throw a type error if the array is not extensible and there are holey
properties in the middle of the array.

BUG=v8:4888

Review-Url: https://codereview.chromium.org/2664173002
Cr-Commit-Position: refs/heads/master@{#43126}
2017-02-11 13:00:40 +00:00
adamk
c9950faf47 [cleanup] Remove useless/outdated comment from parser-base.h
R=neis@chromium.org

Review-Url: https://codereview.chromium.org/2686413002
Cr-Commit-Position: refs/heads/master@{#43125}
2017-02-11 12:19:22 +00:00
adamk
f1f610178f Un-stage tail calls
This patch removes the implication from --harmony to --harmony-tailcalls.

R=ishell@chromium.org
BUG=v8:4698

Review-Url: https://codereview.chromium.org/2691483004
Cr-Commit-Position: refs/heads/master@{#43124}
2017-02-11 11:45:50 +00:00
v8-autoroll
cc5ce96878 Update V8 DEPS.
Rolling v8/build: 9d467bb..0d29448

Rolling v8/third_party/catapult: df42e55..a6b2121

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

Change-Id: If3df9091dd68f09541748bf31ff4eff512cb8534
Reviewed-on: https://chromium-review.googlesource.com/441405
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43123}
2017-02-11 04:30:10 +00:00
kozyatinskiy
7cc1694f51 [inspector] exposed ExecutionContextId getter by context
BUG=none
R=pfeldman@chromium.org

Review-Url: https://codereview.chromium.org/2690663003
Cr-Commit-Position: refs/heads/master@{#43122}
2017-02-11 02:42:17 +00:00
Ross McIlroy
96009d28dc [Compiler] Avoid stepping a job in EnqueueAndStep if job is already enqueued.
If a job was already enqueued, EnqueueAndStep would still step the job one
more step. However, since it didn't take the job out of the
pending_background_jobs pool, the job could get picked up by a background
thread which would try to step it, but it the job is now at a step which
can't be run on the background.

BUG=v8:5203,chromium:685515

Change-Id: I2cee2a33625ba455aca49a8037601be9ff8bb73f
Reviewed-on: https://chromium-review.googlesource.com/441084
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43121}
2017-02-10 22:40:24 +00:00
jwolfe
9675811a60 Heuristic for eager parsing works for async functions
The heuristic checks for "(function", and now it also checks for
"(async function".

BUG=v8:4230

Review-Url: https://codereview.chromium.org/2682173005
Cr-Commit-Position: refs/heads/master@{#43120}
2017-02-10 20:55:57 +00:00
ssid
21523c7832 [tracing] The CPU profiler should only be enabled for specific modes of tracing
We have different modes of tracing: recording, event callback and
filtering. The cpu profiler should not be enabled when tracing is
enabled with filtering mode.

BUG=688651

Review-Url: https://codereview.chromium.org/2676403002
Cr-Commit-Position: refs/heads/master@{#43119}
2017-02-10 19:23:30 +00:00
littledan
91b79fb789 test262 roll
This roll includes the SharedArrayBuffer tests (skipping for now)
but doesn't include the $ renaming.

This is a reland; previously, I reverted because I was confused about why
the rename of $ to $262 didn't break tests; it now seems that the
previous patch left it as an alias. This patch does not do the renaming
yet, as the renaming usage has not landed upstream yet.

R=adamk

Review-Url: https://codereview.chromium.org/2685603003
Cr-Commit-Position: refs/heads/master@{#43118}
2017-02-10 19:05:55 +00:00
Marja Hölttä
ded4cae2c2 [parsing] Fix rest parameter handling in preparser.
Since preparser creates different scopes than the parser, the invariant "at most one rest parameter" doesn't hold when the rest param is a destructuring param.

No new tests added; the problem is visible w/ existing tests with FLAG_lazy_inner_functions on.

R=​vogelheim@chromium.org
BUG=chromium:690919

Change-Id: I525b8dfee92acd0733702c5a940a1a83a94712df
Reviewed-on: https://chromium-review.googlesource.com/440925
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43117}
2017-02-10 18:49:06 +00:00
rmcilroy
53c11006e5 [Compiler] Avoid blocking on inner function parallel compilation.
Don't block on inner function compilation before competing outer function
compilation. Instead wait for the compilation to complete when the function
is called.

BUG=v8:5203

Review-Url: https://codereview.chromium.org/2686673002
Cr-Commit-Position: refs/heads/master@{#43116}
2017-02-10 18:46:31 +00:00
Leszek Swirski
2bfd8a7cb7 [ignition] Remove handles from bytecode generation
Removes handles from bytecode generation, instead storing
un-internalized AstValues (and other, similar values such as Scopes and
AstRawStrings) in the constant array builder.

This will allow us in the future to generate the bytecode before
internalizing the AST.

BUG=v8:5832

Change-Id: I3b8be8f7329a484eb1e5d12808b001d3475239da
Reviewed-on: https://chromium-review.googlesource.com/439326
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43115}
2017-02-10 17:52:39 +00:00
yangguo
588ed4b3c4 [debugger] expose side-effect free evaluate to inspector.
R=jgruber@chromium.org, kozyatinskiy@chromium.org
BUG=v8:5821

Review-Url: https://codereview.chromium.org/2685483002
Cr-Original-Commit-Position: refs/heads/master@{#43049}
Committed: 1a989bdeef
Review-Url: https://codereview.chromium.org/2685483002
Cr-Commit-Position: refs/heads/master@{#43114}
2017-02-10 17:06:22 +00:00
Ross McIlroy
cdf73ea484 [Interpreter] Remove --ignition-filter and replace with --print-bytecode-filter.
The --ignition-filter hasn't worked properly for a while due to some functions
only being supported by Ignition. Remove it and add a --print-bytecode-filter
to allow the main use-case of limiting bytecode printing to a particular
function.

BUG=chromium:685476,v8:5203

Change-Id: Id41eeb3083ae9f713433d3a30227cd4c5d0d47dd
Reviewed-on: https://chromium-review.googlesource.com/441047
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43113}
2017-02-10 17:04:35 +00:00
rmcilroy
a98b60004c [Parser] Cache and clone initial AstValueFactory string_table_.
Avoid reinserting the ast constant string values into the string_table_ of
each AstValueFactory that is created, instead clone an initial copy created
in AstStringConstants.

BUG=686658

Review-Url: https://codereview.chromium.org/2687933003
Cr-Commit-Position: refs/heads/master@{#43112}
2017-02-10 16:29:21 +00:00
rmcilroy
10e628eb1f [Compiler] Ensure we enter the correct context for compiler-dispatcher jobs.
When running main-thread compiler-dispatcher jobs, ensure that we enter the
correct Context. Also adds a test for compiling an extension in the compiler
dispatcher to ensure that idle tasks enter the correct context before
finalizing the compilation.

BUG=v8:5203

Review-Url: https://codereview.chromium.org/2679193004
Cr-Commit-Position: refs/heads/master@{#43111}
2017-02-10 16:01:38 +00:00
bjaideep
13042c9a19 PPC/s390: [wasm] Do not use setjmp/longjmp in cctests.
Port 79570f87a1

Original Commit Message:

    The use of setjmp/longjmp makes the cctests in test-run-wasm and
    test-run-wasm-64 flaky on Windows, and I think that it is better not
    to use it. With this CL I replace it as follows:

    Similar to the setjmp/longjmp implementation we still call a C
    function when a trap happens. However, instead of calling longjmp in
    this C function we just set a flag which indicates that a trap
    happened and then return. After we return from the C function we leave
    the frame of the current wasm function and return with a RET
    instruction. At the end of a test the wasm test runner checks the flag
    to see if a trap happened.

    Please take a special look at the LeaveFrame function on arm64.

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

Review-Url: https://codereview.chromium.org/2685303003
Cr-Commit-Position: refs/heads/master@{#43110}
2017-02-10 15:36:45 +00:00
bjaideep
218e3ed09f PPC/s390: [compiler] Pass deoptimization_kind through DeoptimizeParameters and FlagsContinuation
Port b8c7870c1e

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

Review-Url: https://codereview.chromium.org/2684353003
Cr-Commit-Position: refs/heads/master@{#43109}
2017-02-10 15:35:26 +00:00
jarin
36ed494784 Count closures using the feedback vector cell map, specialize if count==1.
This introduces new maps to track whether we have created at most one
closure. If we have created just one closure, Turbofan will
specialize the code to its context.

Review-Url: https://codereview.chromium.org/2680313002
Cr-Commit-Position: refs/heads/master@{#43108}
2017-02-10 15:19:19 +00:00