Commit Graph

39659 Commits

Author SHA1 Message Date
Wiktor Garbacz
b8e9bd4051 [compiler-dispatcher] Finish jobs not running in background first.
As jobs are picked up in the same order by background tasks as they are
when FinishAll is called it may happen that the main thread just waits
for background threads without doing any work. So first run jobs, that
are not running in background, to completion and then wait for remaining
jobs to finish.

BUG=v8:6093

Change-Id: Ica83db2a504771b633cfdfc4e95e1ac8e43111d6
Reviewed-on: https://chromium-review.googlesource.com/488244
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Cr-Commit-Position: refs/heads/master@{#45017}
2017-05-02 10:12:30 +00:00
Wiktor Garbacz
00912d73f1 [parser] Inital parallel parse tasks implementation.
While parsing top-level code eager functions are skipped just like lazy
ones, but also a parse task is created for each.

The parse tasks are run by the compiler dispatcher and can be executed
either on background thread or in idle time.
After parsing of top-level code finishes it waits for all unfinished
parser tasks - possibly picking up and executing them on current thread.
Afterwards parse task results are stitched together with top-level AST,
in case of failures eager functions are treated just like lazy -
parsing/compilation is retriggered for them in the runtime and proper
errors are generated (performance is not optimized for error case at
all).

BUG=v8:6093

Change-Id: Ie6508211a04b90becfe44139cce1c8ecec386b6e
Reviewed-on: https://chromium-review.googlesource.com/486725
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Cr-Commit-Position: refs/heads/master@{#45016}
2017-05-02 09:44:20 +00:00
Clemens Hammacher
a39a833ad3 [wasm] Don't use ErrorThrower from background tasks
ErrorThrower is not concurrency safe, thus we should not use it from
background tasks. Instead, allocate an ErrorThrower whenever we
actually want (or might) throw.
Pass the ErrorThrower from step 4 to step 5 explicitly.

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

Change-Id: Ifb6b16cab7939ec9c81e4f2db59ee42d5ddd7f85
Reviewed-on: https://chromium-review.googlesource.com/489501
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45015}
2017-05-02 09:19:47 +00:00
neis
34e7945647 [simulator] Make reference redirection thread-safe.
In the simulators, the ExternalReference constructor rewrites external
addresses, which involves mutating a linked list rooted in the isolate.

We already construct external references concurrently (at least in Turbofan),
but the list mutation was not thread-safe (though no crashes are known). This
CL adds the necessary locking.

BUG=v8:6048

Review-Url: https://codereview.chromium.org/2852983002
Cr-Commit-Position: refs/heads/master@{#45014}
2017-05-02 09:11:46 +00:00
Wiktor Garbacz
8f4e8c0aee Fix runtime_call_stats for background parsing.
BUG=v8:6093

Change-Id: I365fbd7c3f33e2de47e0a84ee3ea631b4ffa6d35
Reviewed-on: https://chromium-review.googlesource.com/488243
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Cr-Commit-Position: refs/heads/master@{#45013}
2017-05-02 09:10:26 +00:00
jkummerow
c2f4498f46 Mark Number and String as strict functions
As required by #sec-built-in-function-objects.
They were strict functions before (see
e2f1c26982), but that got lost when they
were ported to ASM builtins.
This makes optimized and non-optimized code agree on the same behavior
in regress-105.js.

BUG=v8:105,v8:5778,v8:6325

Review-Url: https://codereview.chromium.org/2848313004
Cr-Commit-Position: refs/heads/master@{#45012}
2017-05-02 09:08:57 +00:00
Igor Sheludko
26cf06bbb1 [ic] Fix handling of JSArray.length accessor info.
Bug: chromium:716804
Change-Id: I0ef5169e2af34ec2d794c99e99d9e31035599744
Reviewed-on: https://chromium-review.googlesource.com/493146
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45011}
2017-05-02 08:55:51 +00:00
Wiktor Garbacz
3e9a7aff9d [mjsunit] Remove non-existing flags from tests.
BUG=v8:6325

Change-Id: I5a638c47b33d6e75d31f020c499ffd084348fea4
Reviewed-on: https://chromium-review.googlesource.com/489505
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45010}
2017-05-02 08:53:51 +00:00
wychen
c1e24b6087 Split GN target v8_headers for browser non-code dependency
This is for https://crrev.com/2851953002/

BUG= chromium:716359

Review-Url: https://codereview.chromium.org/2853783002
Cr-Commit-Position: refs/heads/master@{#45009}
2017-05-02 08:49:38 +00:00
Franziska Hinkelmann
c507fdaffc [cleanup] Include only what you use.
Bug:v8:6325

Change-Id: Ic829561c013673137c405538c6d7d854b07c36d3
Reviewed-on: https://chromium-review.googlesource.com/490110
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45008}
2017-05-02 08:38:33 +00:00
landell
d15687df02 Print error message if dumping wasm file fails
BUG=

Review-Url: https://codereview.chromium.org/2806313002
Cr-Commit-Position: refs/heads/master@{#45007}
2017-05-02 08:12:46 +00:00
v8-autoroll
0740168409 Update V8 DEPS.
Rolling v8/build: 3b48c72..4a81c96

Rolling v8/third_party/catapult: 1c3f4b9..9300a23

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

Change-Id: I47fa12dafc25c48be4f86c8d4324474be3019ec3
Reviewed-on: https://chromium-review.googlesource.com/492846
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45006}
2017-05-02 03:33:56 +00:00
gdeepti
4a604f2ffe [wasm] Implement Generic S128 Load/Store, logical ops and Horizontal add
- Ops: S128Load, S128Store, S128And, S128Or, S128Xor, S128Not, I32x4AddHoriz, I16x8AddHoriz
 - Add x64 assembler support for - phaddd, phaddw, pand, por
 - Enable tests for Globals, other tests applicable to x64 apart from tests for implemented ops

BUG=v8:6020

R=bbudge@chromium.org, bmeurer@chromium.org, zvi.rackover@intel.com

Review-Url: https://codereview.chromium.org/2849463003
Cr-Commit-Position: refs/heads/master@{#45005}
2017-05-02 00:05:53 +00:00
aseemgarg
cda2e2dd91 [wasm] Implement simd lowering for I16x8
R=bbudge@chromium.org,gdeepti@chromium.org,mtrofin@chromium.org
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2843523002
Cr-Commit-Position: refs/heads/master@{#45004}
2017-05-01 21:29:46 +00:00
kozyatinskiy
f79c3b5142 [inspector] entered into context before getPossibleBreakpoints call
getPossibleBreakpoints implementation can enforce function compilation which potentially can produce syntax error, we need to have a context to correctly report this error.

BUG=chromium:715334
R=dgozman@chromium.org

Review-Url: https://codereview.chromium.org/2851853002
Cr-Commit-Position: refs/heads/master@{#45003}
2017-05-01 19:44:13 +00:00
gdeepti
fc5079d34b [wasm] Move Table.Grow implementation to wasm-objects.cc, cleanup
BUG=v8:6325

R=bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2844163006
Cr-Commit-Position: refs/heads/master@{#45002}
2017-05-01 17:02:20 +00:00
stanisc
9ede481a8c Remove padding in v8::internal::compiler::Constant class.
This makes the size of the class smaller by 8 bytes on 64-bit. I looked at the usage
pattern. Even though it seems the number of instances doesn't get higher
than a few thousand, this class is still very hot because it is constructed and
passed by value a lot. So perhaps reducing the size would make passing this
class by value or growing arrays more optimal and might save some cycles.

Before:
    class v8::internal::compiler::Constant [sizeof = 24] {
      [sizeof=4] v8::internal::compiler::Constant::Type type_
      <padding> (4 bytes)
      [sizeof=8] __int64 value_
      [sizeof=4] v8::internal::RelocInfo::Mode rmode_
      <padding> (4 bytes)
    }

After:
    class v8::internal::compiler::Constant [sizeof = 16] {
      [sizeof=4] v8::internal::compiler::Constant::Type type_
      [sizeof=4] v8::internal::RelocInfo::Mode rmode_
      [sizeof=8] __int64 value_
    }

BUG=chromium:710933

Review-Url: https://codereview.chromium.org/2841343002
Cr-Commit-Position: refs/heads/master@{#45001}
2017-05-01 04:05:00 +00:00
Clemens Hammacher
e320783638 [wasm] Refactor and fix ErrorThrower
The error thrower did allocate the exception at the moment the error was
detected. For async compilation, this meant in another step than when
it was actually thrown. Since the HandleScope of the exception already
died at that point, this would have lead to memory errors.

With this refactoring, we only store the information needed to generate
the exception in the ErrorThrower, and only generate the exception
object once it is actually needed.

With regression test.

R=ahaas@chromium.org, mtrofin@chromium.org
Also-by: ahaas@chromium.org

Change-Id: Iffcab1f8d1cf5925e3643fcf0729ba9a84c7d277
Reviewed-on: https://chromium-review.googlesource.com/490085
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45000}
2017-04-30 11:16:34 +00:00
v8-autoroll
9fcf136afa Update V8 DEPS.
Rolling v8/build: 853f22f..3b48c72

Rolling v8/third_party/catapult: fa1d11d..1c3f4b9

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

Change-Id: Id2423842f165fdf342fc28453b7a5c80b1ebe9fe
Reviewed-on: https://chromium-review.googlesource.com/490730
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44999}
2017-04-30 03:30:47 +00:00
danno
455f9df04c [turbofan] Reland: Avoid going through ArgumentsAdaptorTrampoline for select CSA array builtins
This CL changes certain frequently-called Array builtins to use CodeStubArguments
rather than peek at the stack frames above array builtins to determine if options
arguments have been passed into them.

Previous failure likely due to unfortunate/unluckily timed GC that moved due to
changed timing/allocation from this CL. Test mitigation for allocation-site-info.js
included.

BUG=v8:1956
LOG=N

Review-Url: https://codereview.chromium.org/2829093004
Cr-Commit-Position: refs/heads/master@{#44998}
2017-04-29 11:40:48 +00:00
danno
6953bb4012 Revert of [turbofan] Avoid going through ArgumentsAdaptorTrampoline for CSA/C++ builtins (patchset #8 id:140001 of https://codereview.chromium.org/2829093004/ )
Reason for revert:
Still fails. Likely has to do with gc heap size for allocation site tests, mitigation pending...

Original issue's description:
> [turbofan] Reland: Avoid going through ArgumentsAdaptorTrampoline for select CSA array builtins
>
> This CL changes certain frequently-called Array builtins to use CodeStubArguments
> rather than peek at the stack frames above array builtins to determine if options
> arguments have been passed into them.
>
> Previous failure cannot be reproed with failing config. Flake?
>
> BUG=v8:1956
> LOG=N
>
> Review-Url: https://codereview.chromium.org/2829093004
> Cr-Commit-Position: refs/heads/master@{#44996}
> Committed: 7ca381e847

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

Review-Url: https://codereview.chromium.org/2851063002
Cr-Commit-Position: refs/heads/master@{#44997}
2017-04-29 10:58:50 +00:00
danno
7ca381e847 [turbofan] Reland: Avoid going through ArgumentsAdaptorTrampoline for select CSA array builtins
This CL changes certain frequently-called Array builtins to use CodeStubArguments
rather than peek at the stack frames above array builtins to determine if options
arguments have been passed into them.

Previous failure cannot be reproed with failing config. Flake?

BUG=v8:1956
LOG=N

Review-Url: https://codereview.chromium.org/2829093004
Cr-Commit-Position: refs/heads/master@{#44996}
2017-04-29 10:53:38 +00:00
danno
5896d38cfb Revert of [turbofan] Avoid going through ArgumentsAdaptorTrampoline for CSA/C++ builtins (patchset #8 id:140001 of https://codereview.chromium.org/2829093004/ )
Reason for revert:
Nosnap failure

Original issue's description:
> [turbofan] Avoid going through ArgumentsAdaptorTrampoline for select CSA/C++ builtins
>
> This CL changes certain frequently-called Array builtins to use CodeStubArguments
> rather than peek at the stack frames above array builtins to determine if options
> arguments have been passed into them.
>
> BUG=v8:1956
> LOG=N
>
> Review-Url: https://codereview.chromium.org/2829093004
> Cr-Commit-Position: refs/heads/master@{#44994}
> Committed: 680356278d

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

Review-Url: https://codereview.chromium.org/2851703005
Cr-Commit-Position: refs/heads/master@{#44995}
2017-04-29 09:44:07 +00:00
danno
680356278d [turbofan] Avoid going through ArgumentsAdaptorTrampoline for select CSA/C++ builtins
This CL changes certain frequently-called Array builtins to use CodeStubArguments
rather than peek at the stack frames above array builtins to determine if options
arguments have been passed into them.

BUG=v8:1956
LOG=N

Review-Url: https://codereview.chromium.org/2829093004
Cr-Commit-Position: refs/heads/master@{#44994}
2017-04-29 07:36:10 +00:00
v8-autoroll
91d757bdd7 Update V8 DEPS.
Rolling v8/build: 02044bf..853f22f

Rolling v8/third_party/catapult: 9c9ac13..fa1d11d

Rolling v8/third_party/instrumented_libraries: 05d5695..0ad2bcb

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

Change-Id: I0621ed2aba116528d4699e8407d20b16c6cd8ae9
Reviewed-on: https://chromium-review.googlesource.com/490867
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44993}
2017-04-29 03:32:51 +00:00
Daniel Ehrenberg
0ca84d06f5 Revert "[intl] Switch to using declared accessors"
This reverts commit 4968b2c4d1.

Reason for revert: Speculative revert for severe perf regression
https://bugs.chromium.org/p/chromium/issues/detail?id=716468#c3

Original change's description:
> [intl] Switch to using declared accessors
> 
> This patch cleans up the Intl code by switching to using declared
> accessors, rather than embedder fields, for holding references to
> ICU objects. Additionally:
> - Rename classes to be more similar to how other classes are named
> - Make some unreachable paths into check-fails, rather than throwing
>   JS exceptions
> - Move some macros from objects-inl.h into object-macros.h, to allow
>   the implementation here to not touch objects.h
> - Some setup logic is moved from runtime-i18n.cc to i18n.cc.
> 
> This patch leaves type tags as they are; a future patch should move
> from a special Intl type tagging system to object types as other system
> objects use. Future patches should also move more logic to i18n.cc
> 
> BUG=v8:5402,v8:5751,v8:6057
> CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
> 
> Change-Id: Ia9cbb25cf8f52662e3deb15e64179d792c10842c
> Reviewed-on: https://chromium-review.googlesource.com/479651
> Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#44804}

TBR=adamk@chromium.org,marja@chromium.org,mstarzinger@chromium.org,littledan@chromium.org,jwolfe@igalia.com
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=v8:5402,v8:5751,v8:6057
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng

Change-Id: I7a45d7def1f1de0f21e3efb7de9b31f6bcfea46d
Reviewed-on: https://chromium-review.googlesource.com/490328
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44992}
2017-04-29 00:21:27 +00:00
Andreas Haas
1f629aace8 [wasm] Move the wasm fuzzer corpus to a different directory
The current test/fuzzer/wasm directory is used for two things:
1) as the corpus directory for clusterfuzz
2) to test in v8 that the fuzzer runs correctly.

With the newly added files from the wasm spec tests this directory grew
quite big and adds unnecessary load on the trybots. Therefore I want to
do the following steps:
1) In this CL for V8: create a new directory for the clusterfuzz corpus
2) In chromium: use the new corpus directory
3) In v8: clean up the old directory to use it on the trybots.

R=bradnelson@chromium.org
CC=mmoroz@chromium.org

Change-Id: If690022558bb5780edf5a3649fb9745ef9c7407a
Reviewed-on: https://chromium-review.googlesource.com/490367
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44991}
2017-04-28 23:29:41 +00:00
kozyatinskiy
f2bd913cd4 [inspector] better stacks for promises
- we should always set creation async stack if it's available regardless existing of current parent async stack,
- we should cleanup parent link iff there is no creation and schedule async stack for parent.

Let's consider example: Promise.resolve().then(x => x).then(x => x), there is three promises which will call following instrumentation:
1) created #1 (Promise.resolve()) - collected stack #1
2) scheduled #1 - collected stack #2
3) created #2 with #1 as parent (first .then) - collected stack #3
4) created #3 with #2 as parent (first .then) - collected stack #4
5) started #2 - use stack #2 as scheduled
6) scheduled #2 - collected stack #6
7) finished #2
8) started #3 - use stack #6 as scheduled
9) scheduled #3 - collected stack #7
10) finished #3

If we collect stacks between step 4 and 5, it's possible to collect scheduled stack #2 but still have creation stack for #2 - stack #3 - so we always need to add creation event if scheduled is collected.

If we collect stacks between created and scheduled we should not remove parent link even if parent was not scheduled yet.

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

Review-Url: https://codereview.chromium.org/2844753002
Cr-Commit-Position: refs/heads/master@{#44990}
2017-04-28 21:07:01 +00:00
stanisc
6408032e61 Optimized layout padding in 4 classes in ast.h
This reduces sizeof of these classes by 8 bytes on 64-bit
(16 bytes considering allocation size granularity for some of these classes).

I don't know how many instances remain at the end of loading a page. These objects are Zone objects which makes it more difficult to count the number
of instances. But looking at allocations only on cnn.com I've got 70K for
BinaryOperation, 20K for CompareOperation, 1.5K for CaseClause. There aren't
not many allocations of NativeFunctionLiteral but I decided to fix it too to
keep the same layout pattern.

Before:
    class v8::internal::CaseClause [sizeof = 56]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      <padding> (4 bytes)
      [sizeof=8] v8::internal::Expression* label_
      [sizeof=8] v8::internal::Label body_target_
      [sizeof=8] v8::internal::ZoneList<v8::internal::Statement *>* statements_
      [sizeof=8] v8::internal::AstType* compare_type_
      [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
      <padding> (4 bytes)
    }

After:
    class v8::internal::CaseClause [sizeof = 48]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
      [sizeof=8] v8::internal::Expression* label_
      [sizeof=8] v8::internal::Label body_target_
      [sizeof=8] v8::internal::ZoneList<v8::internal::Statement *>* statements_
      [sizeof=8] v8::internal::AstType* compare_type_
    }

Before:
    class v8::internal::BinaryOperation [sizeof = 56]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      [sizeof=1] bool has_fixed_right_arg_
      <padding> (3 bytes)
      [sizeof=4] int fixed_right_arg_value_
      <padding> (4 bytes)
      [sizeof=8] v8::internal::Expression* left_
      [sizeof=8] v8::internal::Expression* right_
      [sizeof=8] v8::internal::Handle<v8::internal::AllocationSite> allocation_site_
      [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
      <padding> (4 bytes)
    }

After:
    class v8::internal::BinaryOperation [sizeof = 48]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
      [sizeof=8] v8::internal::Expression* left_
      [sizeof=8] v8::internal::Expression* right_
      [sizeof=8] v8::internal::Handle<v8::internal::AllocationSite> allocation_site_
      [sizeof=1] bool has_fixed_right_arg_
      <padding> (3 bytes)
      [sizeof=4] int fixed_right_arg_value_
    }

Before:
    class v8::internal::CompareOperation [sizeof = 48]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      <padding> (4 bytes)
      [sizeof=8] v8::internal::Expression* left_
      [sizeof=8] v8::internal::Expression* right_
      [sizeof=8] v8::internal::AstType* combined_type_
      [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
      <padding> (4 bytes)
    }

After:
    class v8::internal::CompareOperation [sizeof = 40]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      [sizeof=4] v8::internal::FeedbackSlot feedback_slot_
      [sizeof=8] v8::internal::Expression* left_
      [sizeof=8] v8::internal::Expression* right_
      [sizeof=8] v8::internal::AstType* combined_type_
    }

Before:
    class v8::internal::NativeFunctionLiteral [sizeof = 40]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      <padding> (4 bytes)
      [sizeof=8] v8::internal::AstRawString* name_
      [sizeof=8] v8::Extension* extension_
      [sizeof=4] v8::internal::FeedbackSlot literal_feedback_slot_
      <padding> (4 bytes)
    }

After:
    class v8::internal::NativeFunctionLiteral [sizeof = 32]
      : public v8::internal::Expression {
      [sizeof=12] v8::internal::Expression
      [sizeof=4] v8::internal::FeedbackSlot literal_feedback_slot_
      [sizeof=8] v8::internal::AstRawString* name_
      [sizeof=8] v8::Extension* extension_
    }

BUG=chromium:710933

Review-Url: https://codereview.chromium.org/2843293003
Cr-Commit-Position: refs/heads/master@{#44989}
2017-04-28 20:58:53 +00:00
kschimpf
7e4282d503 Remove collecting data on max memory pages for asm.js, not applicable.
Only WASM has the notion of changing the maximum memory pages. This
CL corrects the UMA stats to only collect this data for WASM only.

BUG=v8:6321
R=bradnelson@chromium.org,bbudge@chromium.org

Review-Url: https://codereview.chromium.org/2845163002
Cr-Commit-Position: refs/heads/master@{#44988}
2017-04-28 15:47:03 +00:00
Franziska Hinkelmann
b05ddffb37 [cleanup] Delete unused FindEntryById.
Bug:v8:6325

Change-Id: I8ab20111f53207178e4d17bfe5b55266d7c17916
Reviewed-on: https://chromium-review.googlesource.com/490306
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44987}
2017-04-28 14:46:45 +00:00
Franziska Hinkelmann
f2d0520c46 [cleanup] Add DCHECK for implicit assumption.
Bug:v8:6325

Change-Id: I0c66d24994a4b6811c7aec80f4aa298ba6d209e4
Reviewed-on: https://chromium-review.googlesource.com/490366
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44986}
2017-04-28 14:43:56 +00:00
Mythri
7371c34b6b Use --opt instead of --crankshaft in tests.
1. Replaces --crankshaft with --opt in tests.
2. Also fixes presubmit to check for --opt flag when
assertOptimized is used.
3. Updates testrunner/local/variants.py and 
v8_foozie.py to use --opt flag.
This would mean, nooptimize variant means there are
no optimizations. Not even with %OptimizeFunctionOnNextCall.

Bug:v8:6325

Change-Id: I638e743d0773a6729c6b9749e2ca1e2537f12ce6
Reviewed-on: https://chromium-review.googlesource.com/490206
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44985}
2017-04-28 14:20:39 +00:00
Toon Verwaest
7f67b98695 [cleanup] Rename global_object_template to global_proxy_template
Bug: v8:6325
Change-Id: I2f15a504690c334a43620bfd396a7fab10340b46
Reviewed-on: https://chromium-review.googlesource.com/489524
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44984}
2017-04-28 14:04:28 +00:00
mlippautz
df319447d4 [heap] Cleanup: Untangle marking state and deque in incremental marking
BUG=v8:6325, v8:6330

Review-Url: https://codereview.chromium.org/2847953002
Cr-Commit-Position: refs/heads/master@{#44983}
2017-04-28 13:33:47 +00:00
Igor Sheludko
0cd4ab717c [ic] Remove disabled --collect-megamorphic-maps-from-stub-cache option.
... and stop checking that the native contexts of maps recorded in feedback vector
match function's native context - the feedback vector machinery already guarantees
that.

BUG=v8:6325

Change-Id: Iacd3f3a5f703694ff57b774b9658e186ad66641b
Reviewed-on: https://chromium-review.googlesource.com/490084
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44982}
2017-04-28 13:31:24 +00:00
Franziska Hinkelmann
f63aaee990 [cleanup] Replace List::BinarySearch with std::lower_bound.
Also-by:ahaas@chromium.org
R:ahaas@chromium.org
Bug:v8:6325

Change-Id: I5fc7891a2201ac9a889bceec668b23b46e402545
Reviewed-on: https://chromium-review.googlesource.com/490109
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44981}
2017-04-28 13:15:24 +00:00
Franziska Hinkelmann
a93a769438 [cleanup] Make heap "Reservation" an std::vector.
There's no point in using our own implemention of List for this.

Bug:v8:6325

Change-Id: Idf3399bbaaf50f9e1fc7b16c67ea2c6246dd6574
Reviewed-on: https://chromium-review.googlesource.com/489949
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44980}
2017-04-28 13:08:28 +00:00
Marja Hölttä
95a7cfe0ea [cleanup & objects.h splitting] Move StringHasher
BUG=v8:6325,v8:5402

Change-Id: If0c975fe377c0178c488fc1bedd02f9c8289ebbc
Reviewed-on: https://chromium-review.googlesource.com/490086
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44979}
2017-04-28 13:07:24 +00:00
Franziska Hinkelmann
f05c09dd2e [cleanup] Delete unused function.
Also-by:ahaas@chromium.org
R:ahaas@chromium.org

Bug:v8:6325

Change-Id: If9212dc1d47789d0732b72b69532676907cb21ab
Reviewed-on: https://chromium-review.googlesource.com/490089
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44978}
2017-04-28 13:02:23 +00:00
ulan
1c54214456 [heap] Remove unused field of IterateAndScavengePromotedObjectsVisitor.
BUG=v8:6325

Review-Url: https://codereview.chromium.org/2849763004
Cr-Commit-Position: refs/heads/master@{#44977}
2017-04-28 12:57:02 +00:00
Clemens Hammacher
af85b62fc8 [wasm] [cleanup] Extract base class for Result<T>
This avoids generating redundant code for different template
instantiations.
I also introduce getters instead of accessing the fields directly.

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

Change-Id: I3e0eca9ef6a01e0a3ebb73f4f357bcb59e120f43
Reviewed-on: https://chromium-review.googlesource.com/490166
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44976}
2017-04-28 12:32:15 +00:00
hpayer
1e50277b9f [heap] Remove max executable size configuration.
BUG=chromium:716032

Review-Url: https://codereview.chromium.org/2842303003
Cr-Commit-Position: refs/heads/master@{#44975}
2017-04-28 11:41:04 +00:00
jarin
006240292e [turbofan] Rip out the unused OsrGuard node.
BUG=v8:6325

Review-Url: https://codereview.chromium.org/2851723002
Cr-Commit-Position: refs/heads/master@{#44974}
2017-04-28 11:22:05 +00:00
Michael Achenbach
8707c61542 [test] Skip debugger tests with old pipeline and mac asan
The bot is at its resource limits.

TBR=yangguo@chromium.org,jgruber@chromium.org
NOTRY=true

Change-Id: I40520aa7ec8a85a16cce2c9f17544d6fb68166bb
Reviewed-on: https://chromium-review.googlesource.com/490087
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44973}
2017-04-28 11:12:36 +00:00
Clemens Hammacher
3b46a9842b [wasm] Don't store the ModuleResult in the AsyncCompileJob
It's only needed to pass error information from step 1 to step 1b, thus
pass it explicitly to step 1b.

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

Change-Id: Icca5ef8f94dedad65e797a4fb5a4d83145b7dfbd
Reviewed-on: https://chromium-review.googlesource.com/489521
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44972}
2017-04-28 10:59:12 +00:00
Michael Achenbach
b88c2e47ee [test] Skip slowest tests on nosnap bots
TBR=bmeurer@chromium.org
NOTRY=true

Change-Id: Iceccd5660bf1d486dcdc60b7735fb1273d5718b6
Reviewed-on: https://chromium-review.googlesource.com/490107
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44971}
2017-04-28 10:03:44 +00:00
neis
9bfb0fef08 [runtime] Support proxies as return value of API constructors.
When a FunctionTemplate-based function is used as a constructor
and returns a JSProxy, we incorrectly treated that result the same
as a non-object result. Now it is treated like any other object
result, i.e., it becomes the result of the constructor call.

R=verwaest@chromium.org
BUG=v8:6294

Review-Url: https://codereview.chromium.org/2845123002
Cr-Commit-Position: refs/heads/master@{#44970}
2017-04-28 10:02:27 +00:00
Igor Sheludko
0655ee8fa1 [ic] Filter out deprecated maps from polymorphic keyed ICs.
BUG=chromium:715862

Change-Id: I072ad02ca3ff2fce67c05e0e27708da9763bec44
Reviewed-on: https://chromium-review.googlesource.com/490106
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44969}
2017-04-28 10:02:20 +00:00
Michael Achenbach
7d8e577403 [test] Skip failing tests
Bug: v8:6328
TBR=yangguo@chromium.org,bmeurer@chromium.org
NOTRY=true

Change-Id: Id0b01292635598fa8578dc2e6aa28ef104bcd878
Reviewed-on: https://chromium-review.googlesource.com/489987
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44968}
2017-04-28 09:50:37 +00:00