Commit Graph

39731 Commits

Author SHA1 Message Date
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
Camillo Bruni
0559966781 Clear up confusion between enum cache and enum cache bridge
Bug: v8:6325
Change-Id: I20f59cfd4f309f456ff95aa8eb0aa4c8f9a55da6
Reviewed-on: https://chromium-review.googlesource.com/490066
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44967}
2017-04-28 09:17:08 +00:00
Clemens Hammacher
1a8e7d13a1 [wasm] Reduce test-specific code
This reduces the amount of special paths for testing.
Setup the memory used for testing exactly the same way as in real world.
Also, always connect the interpreter to the instance being executed,
and to the existing WasmInstance struct. This keeps information
synchronized between interpreter and test runner.
These changes allow us to execute e.g. GrowMemory from cctests either
in the interpreter or in compiled code.

R=ahaas@chromium.org

Change-Id: Id4726d061f3cdba789275350f500d769d27d2d63
Reviewed-on: https://chromium-review.googlesource.com/488561
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44966}
2017-04-28 09:00:32 +00:00
Clemens Hammacher
81253a5296 [wasm] Refactor async compile tasks
Make each compile phase a separate task. This allows us to store
additional information in each task instead of "globally" on the
AsyncCompileJob.
This CL only does the initial refactoring, without changing where data
is actually stored.

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

Change-Id: Iad73de7b7d09f716c527e6d241314fde52aa55f8
Reviewed-on: https://chromium-review.googlesource.com/488142
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44965}
2017-04-28 08:14:15 +00:00
Benedikt Meurer
1320666798 [cleanup] Handle JSFunction::prototype and string length in CallGetterIfAccessor.
Also add support for JSFunction::prototype and JSString::length
accessors to CodeStubAssembler::CallGetterIfAccessor and remove
the special case hack from the LoadIC_Uninitialized.

Also address the TODO to unify the implementation with the
LoadIC_FunctionPrototype handler.

BUG=v8:5269,v8:6325
R=ishell@chromium.org

Change-Id: Ic51221e35a051c403d3a86dc41213c913e8f9d85
Reviewed-on: https://chromium-review.googlesource.com/489946
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44964}
2017-04-28 08:05:15 +00:00
Jochen Eisinger
32124f3b13 Free Isolate in ValueSerializerUnittest
BUG=v8:6316
R=jbroman@chromium.org,yangguo@chromium.org

Change-Id: Icfc33e3e51cdbfad246a971a5a2737a8fdfba058
Reviewed-on: https://chromium-review.googlesource.com/488941
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44963}
2017-04-28 07:40:24 +00:00
Michael Achenbach
e3d93222d6 [test] Skip slow tests
TBR=yangguo@chromium.org,ahaas@chromium.org
NOTRY=true

Change-Id: I1612d95a3782b23371b70d3a8fed600945988486
Reviewed-on: https://chromium-review.googlesource.com/489522
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44962}
2017-04-28 07:38:13 +00:00
Benedikt Meurer
26fdb617f5 [stubs] Properly convert the receiver for GetPropertyStub.
Call ToObject on the GetPropertyStub input first, so that lookups on
Strings and other primitives don't automatically hit the runtime, i.e.
as the stub is also used to lookup the special @@split and @@replace
symbols for various String builtins.

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

Change-Id: I5dbbc84aa2051173bf10be71c782fbe448481034
Reviewed-on: https://chromium-review.googlesource.com/488441
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44961}
2017-04-28 07:02:51 +00:00
Michael Achenbach
1090331331 [build] Turn off slow dchecks on arm64 nosnap debug
The bot is too slow in it's current configuration.

TBR=bmeurer@chromium.org
NOTRY=true

Change-Id: Ic0318894c4501e47f441c0298a46474afdc45026
Reviewed-on: https://chromium-review.googlesource.com/489502
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44960}
2017-04-28 06:47:22 +00:00
jgruber
2814885477 [string] Fix null handling in MaybeCallFunctionAtSymbol
The spec requires that a null @@split / @@replace symbol is treated exactly the
same as if it were undefined, i.e. execution should move on to the default
implementation instead of throwing a TypeError.

BUG=v8:6313

Review-Url: https://codereview.chromium.org/2845153002
Cr-Commit-Position: refs/heads/master@{#44959}
2017-04-28 05:58:16 +00:00
bmeurer
53d31d0623 Revert of [turbofan] General consolidation of element access. (patchset #1 id:1 of https://codereview.chromium.org/2836913004/ )
Reason for revert:
Breaks load:tools:drive story

Original issue's description:
> [turbofan] General consolidation of element access.
>
> Avoid TransitionElementsKind when storing to objects which only differ
> in holeyness of their elements kind. Instead go for polymorphic
> CheckMaps, which can often by optimized and avoid the mutation of the
> array map.
>
> This generalizes the approach https://codereview.chromium.org/2836943003
> which covered only element loads.
>
> R=yangguo@chromium.org
> BUG=v8:5267
>
> Review-Url: https://codereview.chromium.org/2836913004
> Cr-Commit-Position: refs/heads/master@{#44828}
> Committed: ed573cee5c

TBR=yangguo@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:5267,chromium:715936

Review-Url: https://codereview.chromium.org/2852623002
Cr-Commit-Position: refs/heads/master@{#44958}
2017-04-28 05:40:46 +00:00
bmeurer
0be5596cdb [ic] Handle JSArray::length in CodeStubAssembler::CallGetterIfAccessor.
When accessing JSArray::length property from GenericPropertyLoad
(i.e. via a megamorphic KEYED_LOAD_IC), we'd always go to the runtime
at this point, because the CallGetterIfAccessor method didn't support
AccessorInfos at all. Now there's initial support for JSArray::length,
which reduces the number of %KeyedGetProperty calls we see in the
Speedometer/EmberJS test by 5000.

Also-By: ishell@chromium.org
BUG=v8:5269
TBR=ishell@chromium.org

Review-Url: https://codereview.chromium.org/2842373005
Cr-Commit-Position: refs/heads/master@{#44957}
2017-04-28 04:20:22 +00:00
v8-autoroll
874d77b9cb Update V8 DEPS.
Rolling v8/build: 8ed22b4..02044bf

Rolling v8/third_party/catapult: 8062a57..9c9ac13

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

Change-Id: I5203736e8ea4c799f3ff90cedafcb50bb9bdfd18
Reviewed-on: https://chromium-review.googlesource.com/489828
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44956}
2017-04-28 03:31:45 +00:00
jing.bao
0e0e1aa81a [ia32] Add cmpps/vcmpps for eq/lt/le/neq
BUG=

Review-Url: https://codereview.chromium.org/2847683002
Cr-Commit-Position: refs/heads/master@{#44955}
2017-04-28 01:56:26 +00:00
kozyatinskiy
aed22ad12f Roll third_party/inspector_protocol to efefa86c3183d307f0a0e53bf568fe57c5b58849
This roll includes:
  - [inspector_protocol] added StringUtil::toDouble method as requirement [1]

[1] https://codereview.chromium.org/2843223005/

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

Review-Url: https://codereview.chromium.org/2846673005
Cr-Commit-Position: refs/heads/master@{#44954}
2017-04-28 01:43:03 +00:00
Adam Klein
8f0c2949c1 [cctest] Add one more GC to a flaky test
It now passes on both 32-bit and 64-bit nosnap bots.

TBR=ulan@chromium.org
NOTREECHECKS=true

Change-Id: Id797c88f1eb32868433e112883c2c64b8640eb2c
Reviewed-on: https://chromium-review.googlesource.com/489682
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44953}
2017-04-27 22:10:59 +00:00
Adam Klein
4afa9110e0 [cctest] Fix more flakiness in Heap-related cctests on nosnap builds
These tests assume that a newly-created Isolate is pristine, but that's
not true for nosnap builds.

TBR=ulan@chromium.org

Change-Id: Ie5d0fb0450f285c8eeb8e088feef6729102c0f14
Reviewed-on: https://chromium-review.googlesource.com/489063
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44952}
2017-04-27 19:17:29 +00:00
Clemens Hammacher
a32cd1c710 Reland "[base] Introduce RoundUpToPowerOfTwo64"
With fix for architectures where x<<32 != x.

Original change's description:
> [base] Introduce RoundUpToPowerOfTwo64
>
> And fix RoundUpToPowerOfTwo32 to return 1 for the input 0.
> 0 is no power of two.
> Beside being the correct value, this also avoids a special case in the
> (new) fast path using the number of leading zeros.
>
> R=​jochen@chromium.org, ahaas@chromium.org
>
> Change-Id: I87173495e13b334954bcebbb55724fb666dfa809
> Reviewed-on: https://chromium-review.googlesource.com/488143
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#44925}

TBR=ahaas@chromium.org,jochen@chromium.org,clemensh@chromium.org,v8-reviews@googlegroups.com

Change-Id: I7b4719d84a419bb7b38e3b5c9d6d183275087ace
Reviewed-on: https://chromium-review.googlesource.com/488981
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44951}
2017-04-27 17:43:38 +00:00
Adam Klein
b3887f8a2c [cctest] Simplify the majority of callers of CcTest::CollectAllGarbage
Most callers passed kFinalizeIncrementalMarkingMask, so use that as
a default argument (not using default argument syntax to avoid including
heap.h in cctest.h).

Change-Id: I904f1eb3a0f5fdbe63eab16f6a6f01d04618645d
Reviewed-on: https://chromium-review.googlesource.com/488104
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44950}
2017-04-27 17:20:54 +00:00
Clemens Hammacher
9bdabfd649 [wasm] [interpreter] Fix stack transfer to loop labels
When branching to a loop header, we were trying to copy over {arity}
values from the value stack. This is correct for block labels, but not
for loops. When branching back to a loop header, no values need to be
transferred.

R=ahaas@chromium.org
BUG=chromium:715454

Change-Id: I90d806de63d039abf8dcac1abec057860c8f69ca
Reviewed-on: https://chromium-review.googlesource.com/488146
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44949}
2017-04-27 16:04:47 +00:00
ulan
8ff8d674d3 [heap] Introduce HeapVisitor interface.
HeapVisitor is similar to StaticVisitor but uses virtual dispatch
instead of static function table. It is intended as replacement
of StaticVisitor using the CRTP.

This CL also changes the concurrent marker to use the HeapVisitor.

BUG=chromium:709075

Review-Url: https://codereview.chromium.org/2808093003
Cr-Commit-Position: refs/heads/master@{#44948}
2017-04-27 15:43:54 +00:00
jbroman
0f82f0d3a4 ValueSerializer: Add a warning about making wire format changes near branch.
BUG=chromium:715232

Review-Url: https://codereview.chromium.org/2839903003
Cr-Commit-Position: refs/heads/master@{#44947}
2017-04-27 15:39:23 +00:00
mlippautz
1f3a95f1f7 [heap] Filter out non-heap values when tracing wrappers
We used to rely on the fact that all values kept alive through wrapper
tracing were materialized as heap objects. Smis break this invariant and
need to be filter out.

BUG=chromium:716031

Review-Url: https://codereview.chromium.org/2852463003
Cr-Commit-Position: refs/heads/master@{#44946}
2017-04-27 15:33:04 +00:00
jbroman
a16c3c9105 Expose the ValueSerializer data format version as a compile-time constant.
BUG=chromium:704293

Review-Url: https://codereview.chromium.org/2804643006
Cr-Commit-Position: refs/heads/master@{#44945}
2017-04-27 15:14:41 +00:00
Clemens Hammacher
5317d43e0c Reland "[wasm] [cleanup] Remove unused parameter from SyncValidate""
Accidental revert...

Original change's description:
> [wasm] [cleanup] Remove unused parameter from SyncValidate
> 
> R=​ahaas@chromium.org
> 
> Change-Id: I952c5461ef44d4b01e99390e668bfc0d7f7ba25b
> Reviewed-on: https://chromium-review.googlesource.com/488341
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#44931}

TBR=ahaas@chromium.org,clemensh@chromium.org,v8-reviews@googlegroups.com

Change-Id: I7e57ccec6c58aa61052613c14d2fd7936e3fb6da
Reviewed-on: https://chromium-review.googlesource.com/488366
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44944}
2017-04-27 14:50:19 +00:00
yangguo
2b7a431ea3 [tools] backport_node.py increments V8 version in target.
R=franzih@chromium.org, machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2846883002
Cr-Commit-Position: refs/heads/master@{#44943}
2017-04-27 14:50:10 +00:00
Michael Achenbach
1dfcc4b687 [foozzie] Remove obsolete suppressions
Most of these suppressions were for the old asm-validator or for the old compiler pipeline. Some more are just optimistically removed.

Bug: chromium:681088, chromium:681241, chromium:681806, chromium:662840
NOTRY=true

Change-Id: I4c6851a72d22070026eeaca90ad3394cfce10f90
Reviewed-on: https://chromium-review.googlesource.com/488641
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44942}
2017-04-27 14:49:13 +00:00
cbruni
3f73fecb13 [runtime] Ensure slow properties for simple {__proto__:null} literals.
With this CL we reduce the difference between directly using a null prototype
in a literal or using Object.create(null).
- The EmitFastCloneShallowObject builtin now supports cloning slow
  object boilerplates.
- Unified behavior to find the matching Map and instantiating it for
  Object.create(null) and literals with a null prototype.
- Cleanup of literal type parameter of CompileTimeValue, now in sync with
  ObjectLiteral flags.

Review-Url: https://codereview.chromium.org/2445333002
Cr-Commit-Position: refs/heads/master@{#44941}
2017-04-27 14:48:32 +00:00
Andreas Haas
dc713be87d [wasm] Move update scripts to tools/wasm
I moved the wasm update scripts from tools/ to tools/wasm. In addition
I cleaned up the scripts a bit.

R=machenbach@chromium.org

Change-Id: I545dd556712e272e6509b78e343e9063346abe56
Reviewed-on: https://chromium-review.googlesource.com/488601
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44940}
2017-04-27 14:48:08 +00:00