Commit graph

60714 commits

Author SHA1 Message Date
Konstantin Shcheglov
570205c2b8 Unwrap OverlayResourceProvider in createByteStore().
Otherwise we did not use persistent EvictingFileByteStore, and used
MemoryCachingByteStore, so no much smaller cache, and no sharing
between restarts. Ouch...

R=brianwilkerson@google.com

Change-Id: I88774cfe97e4a55be591105dbc5e337b7d992c3f
Reviewed-on: https://dart-review.googlesource.com/c/87522
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-12-18 15:06:42 +00:00
Clement Skau
01a9c1bd11 Adds simple native ServiceStream consumer API.
This enables metric collection of e.g. garbage collection by listening to all GC events.

Bug: b/117604553
Change-Id: Ic36fd2446cba90be0253ec5e24eddd1c16629c4b
Reviewed-on: https://dart-review.googlesource.com/c/85922
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-12-18 14:58:42 +00:00
Peter von der Ahé
68d41b9547 Disable type inference: don't store initializer tokens
Change-Id: Ib47282b5187a5d0b95d9a068dab1645b15aa7abe
Reviewed-on: https://dart-review.googlesource.com/c/86348
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-12-18 14:45:52 +00:00
Peter von der Ahé
0c084022af Disable type inference: don't create a type inference engine
Change-Id: Icb143279adbf7a5b83384e5de8b3856d884ac5ef
Reviewed-on: https://dart-review.googlesource.com/c/86347
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-18 14:45:52 +00:00
Peter von der Ahé
12085156c1 Disable type inference: types of initializing formals
Change-Id: I20887336af4596ad3ed1d83e82767d27f1a4d589
Reviewed-on: https://dart-review.googlesource.com/c/86346
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-18 14:45:52 +00:00
Dan Rubel
48093f5f9d Revert "Add support for parsing simple nullable types"
This reverts commit c5fd11b5d6.

Reason for revert: Conditional expression lookahead may modify the token stream

Original change's description:
> Add support for parsing simple nullable types
> 
> ... as part of adding NNBD as outlined in
> https://github.com/dart-lang/language/issues/110
> 
> This only supports parsing simple nullable types
> such as int? and List<int>? while subsequent CLs
> will add support for parsing more complex types.
> 
> Change-Id: I144858946cb115755af437299899c2631105bf8c
> Reviewed-on: https://dart-review.googlesource.com/c/87501
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Commit-Queue: Dan Rubel <danrubel@google.com>

TBR=brianwilkerson@google.com,danrubel@google.com

Change-Id: Ie1f47e7384ff51159aa2ebeb21561455b8e6287f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/87620
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-12-18 14:32:33 +00:00
Danny Tuppeny
c7e7cbddca Remove workaround for LSP spec issue
+ regen the file, which updated comments that were improved in the spec since the last time.

Change-Id: Ib46cabcbc6e22d778847891f309f9be5e354720c
Reviewed-on: https://dart-review.googlesource.com/c/87580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-12-18 14:30:03 +00:00
Martin Kustermann
b9170ffb83 Add new "dartkp-bare-linux-release-x64" configuration to test_matrix.json
This configuration will run the AOT compiler/runtime with the new
--use-bare-instructions support.

Change-Id: I029c4098f17e194d14e1b213173f2c6907e69f98
Reviewed-on: https://dart-review.googlesource.com/c/87408
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2018-12-18 14:14:34 +00:00
Johnni Winther
8c7be910d0 Support compilation with the trivial abstract value domain
Change-Id: I1b42ee48f440db9e424448e794a8f8cc9d8f5f3a
Reviewed-on: https://dart-review.googlesource.com/c/86921
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-12-18 12:20:36 +00:00
danrubel
c5fd11b5d6 Add support for parsing simple nullable types
... as part of adding NNBD as outlined in
https://github.com/dart-lang/language/issues/110

This only supports parsing simple nullable types
such as int? and List<int>? while subsequent CLs
will add support for parsing more complex types.

Change-Id: I144858946cb115755af437299899c2631105bf8c
Reviewed-on: https://dart-review.googlesource.com/c/87501
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-12-18 11:29:33 +00:00
Johnni Winther
6d4d3c6b07 Remove TrustTypeAnnotations
Change-Id: I7404d10c30642f5282d079e36cb4a20ee2066060
Reviewed-on: https://dart-review.googlesource.com/c/87401
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-12-18 11:00:09 +00:00
Danny Tuppeny
ecccc0d94e Fix some LSP TODOs, remove some redundant code, add comments
Change-Id: Ibd51b17919245f4215fa49a64fd008ba268ca174
Reviewed-on: https://dart-review.googlesource.com/c/87442
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-12-18 07:33:35 +00:00
Liam Appelbe
dcf24df2bb Shorten the script URI in stack traces for URI encoded scripts.
Closes https://github.com/dart-lang/sdk/issues/34091

Bug: https://github.com/dart-lang/sdk/issues/34091
Change-Id: I1dbf0c8ff282f617f3503265f7e3a24ab56dd57f
Reviewed-on: https://dart-review.googlesource.com/c/87421
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
2018-12-17 23:36:09 +00:00
Ryan Macnak
e92c7678a7 [vm, observatory] Respect requested tag order even when --profile-vm=false.
Blame time waiting for service or kernel isolate startup against LoadWait instead of VM.

In the table profile view, include VM tags. Because of the flattening nature of this view, it is less intrusive than in the tree view.

Bug: https://github.com/dart-lang/sdk/issues/35394
Change-Id: If13c57daa96cb69c5e5a009dfd973b491b694d04
Reviewed-on: https://dart-review.googlesource.com/c/87380
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-12-17 23:35:24 +00:00
Brian Wilkerson
0fb5974ba0 Improve the error reporting when the same-named types are used as type arguments (issue 33946)
Change-Id: Ic83dea89e4ad51d923f1d147fe4c54e129549fa8
Reviewed-on: https://dart-review.googlesource.com/c/87425
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-12-17 21:10:34 +00:00
Mike Fairhurst
457222053a Remove two unused imports
Change-Id: I6fc676fd7c70076048d07d1d6e0f53ef6e0bb0f9
Reviewed-on: https://dart-review.googlesource.com/c/87481
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-12-17 20:58:54 +00:00
Alexander Markov
80412dcf6a [vm/kernel] Accept URIs in --packages option if multi-root filesystem is used
Change-Id: I0558a8feed81f895e75f2d9f73a5f737d8b4f085
Reviewed-on: https://dart-review.googlesource.com/c/86460
Auto-Submit: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-12-17 20:06:44 +00:00
Sigmund Cherem
b7a1eb4aea Simplify co19_2-dart2js status file to only track skips
Yay new workflow!!! Woo hoo!

Change-Id: I2218468c4acbe42d0a079c88153ec0a1797ba2b7
Reviewed-on: https://dart-review.googlesource.com/c/87166
Auto-Submit: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-12-17 20:04:14 +00:00
pq
02cdda28c5 bump to linter 0.1.76
* `unnecessary_parenthesis` updated to allow wrapping a `!` argument
* miscellaneous documentation grammar and spelling fixes
* improved error messages for `always_declare_return_types`
* fix `prefer_final_fields ` to work with classes that have generic type arguments
* (internal): deprecated code cleanup
* fixed false positives in `unrelated_type_equality_checks`


Change-Id: I375a70aa86d5816881ea5d8faac65e5c3e72c80b
Reviewed-on: https://dart-review.googlesource.com/c/87422
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2018-12-17 18:19:47 +00:00
Stevie Strickland
4afb45f5b8 Change default target to "create_sdk".
Currently the "all" target can lead to build errors and is unsupported,
so fall back to a supported target instead.

Change-Id: I925a785e4b81ab92e99c3842cb81c338c5a1d990
Reviewed-on: https://dart-review.googlesource.com/c/87403
Auto-Submit: Stevie Strickland <sstrickl@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Stevie Strickland <sstrickl@google.com>
2018-12-17 18:09:07 +00:00
Danny Tuppeny
666eee40c7 Updates to pase tuples in LSP spec
Change-Id: Ia1ce7579e954a8000b3460445859a2d221cf1a8c
Reviewed-on: https://dart-review.googlesource.com/c/87441
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
2018-12-17 17:58:17 +00:00
Jonas Termansen
988a376803 [infra] Fix batch mode crashes uploading crash dumps.
Batch mode crashes were treated as if they exited -10 (SIGUSR1 on Linux),
however these are all Dart unhandled exceptions, and no crash dumps were
produced. Exit 253 instead, which dart2js uses to signify an internal
compiler error, which is considered a crash but inhibits uploading crash
reports.

Change-Id: I3779ec1c511c1bcd31967254d3e0cee9a347a9bd
Reviewed-on: https://dart-review.googlesource.com/c/87440
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-12-17 17:53:07 +00:00
William Hesse
d03b79178c [infra] Test suite filenames should match that suite's selector only.
Change-Id: Ica318db0167914ac3e268396210014bcbb55f4c2
Reviewed-on: https://dart-review.googlesource.com/c/87069
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2018-12-17 17:44:07 +00:00
Erik Ernst
5d8501a07e Integrated invalid_returns.md
Also marked feature spec as background material.

Change-Id: I130d60aea7825cbb42738e31d0a262fb18446f67
Reviewed-on: https://dart-review.googlesource.com/c/85959
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-12-17 15:01:46 +00:00
Danny Tuppeny
c7e8a37cf3 Add a divider between the element description and docs in hovers
Change-Id: I08dc275fd343dc7eaa0f0c6033b8889882889cd2
Reviewed-on: https://dart-review.googlesource.com/c/87406
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Danny Tuppeny <dantup@google.com>
2018-12-17 14:58:20 +00:00
Peter von der Ahé
54d1118a66 Remove Loader.typeInferenceEngine
Change-Id: I5ecbb3308436bc7ecee98ea7b15a1ec669a5c621
Reviewed-on: https://dart-review.googlesource.com/c/86344
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-12-17 14:33:49 +00:00
Peter von der Ahé
8dea395b18 isEligibleForTopLevelInference accounts for type inference disabled
Change-Id: Ibffdf6b25dab39522868f2a927929f86deecb7d6
Reviewed-on: https://dart-review.googlesource.com/c/86343
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-17 14:33:49 +00:00
Peter von der Ahé
472bf29904 Disable type inference: Don't generate shadow wrappers
Change-Id: Ibab49c3614f5e54fe15bdcb135f25db7070d84ca
Reviewed-on: https://dart-review.googlesource.com/c/86342
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-17 14:33:49 +00:00
Peter von der Ahé
f504d61c96 Generate optional parameter initializers in BodyBuilder
Change-Id: I3f33c660e25564dbdf907d6331cf391537113549
Reviewed-on: https://dart-review.googlesource.com/c/86341
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-17 14:33:49 +00:00
Peter von der Ahé
b46077332b Disable type inference: local function return types
Change-Id: I5491150ccf4ddcb8c7905c66b5fc2b5b17d1239d
Reviewed-on: https://dart-review.googlesource.com/c/86340
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-17 14:33:49 +00:00
Peter von der Ahé
6ec321f2b7 Sort classes topologically when checking for cycles
Change-Id: I4d2fd8a1d3f2d369e69ed93665ce43ca4747b02d
Reviewed-on: https://dart-review.googlesource.com/c/86204
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-12-17 14:33:49 +00:00
Samir Jindel
77889c10e3 [vm] Fix unmatched asyncLevel with retry() helper in socket tests.
Change-Id: Ia2cba787ff02e1b3d26b8fbab9cc4057842bd4cc
Reviewed-on: https://dart-review.googlesource.com/c/87067
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Auto-Submit: Samir Jindel <sjindel@google.com>
2018-12-17 13:38:28 +00:00
William Hesse
5c916afad9 [testing] Stop ignoring flaky IE11 timeouts
BUG=dartbug.com/28955

Change-Id: I74b11ad41fd1061a847c0f5c2d58d63189033cdc
Reviewed-on: https://dart-review.googlesource.com/c/87405
Reviewed-by: Alexander Thomas <athom@google.com>
2018-12-17 13:30:15 +00:00
Martin Kustermann
52f7e9ed71 [VM] Ensure the start of the entrypoints is also 2-byte aligned
Fixes https://github.com/dart-lang/sdk/issues/35419

Change-Id: I1e4478573c6fc032485ad7c1ec3069e4fa946733
Reviewed-on: https://dart-review.googlesource.com/c/87404
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-12-17 12:45:35 +00:00
danrubel
93306f5ec0 Add dartfix integration test
... and update changelog and tweak SDK constraints

Change-Id: Ifb3e733b84c3aecad0ff8fe805f77ef497248f3b
Reviewed-on: https://dart-review.googlesource.com/c/86600
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-17 04:37:07 +00:00
danrubel
e54ae42106 Add more conditional expression parser tests
This also addresses a comment in https://dart-review.googlesource.com/c/sdk/+/87083

Change-Id: Id2398bdf0e2ece76c74e0b0afdb6aa166dd687ac
Reviewed-on: https://dart-review.googlesource.com/c/87340
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-17 03:23:06 +00:00
Martin Kustermann
03549b5a17 [infra] Let tool/test.py fail if the configuration supplied with -n does not exist
This will result in:

    tools/test.py -n foobar
    The named configuration "foobar" does not exist. The following configurations are available:
      * analyzer-asserts-linux
      * analyzer-asserts-mac
      * analyzer-asserts-win
      * ...


Change-Id: I2fadc2ab3ae6f2b34dd373d84365d44ef27c7b8b
Reviewed-on: https://dart-review.googlesource.com/c/87325
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-12-16 18:57:23 +00:00
Mike Fairhurst
91cd0b4b83 Test that e2e constant is check works, pass experiments around more
Change-Id: I6252d9215ab322c75a5b83ac0a3047a9dc90a360
Reviewed-on: https://dart-review.googlesource.com/c/87420
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-15 00:15:47 +00:00
Alexander Aprelev
7d14785115 This relands "Load isolate from parent's kernel in Isolate.spawn calls.".
Original PR was reverted because it broke hot-reload bots. This CL adds steps to initialize kernel_service compiler for child isolate. Compiler is needed to support hot-reload request. Child isolate's compiler is created from full kernel file produced by main isolate's compiler. Changes since original PR are pkg/vm/bin/kernel_service.dart in pkg/vm/lib/incremental_compiler.dart.

Further this CL changes kernel fingerprint calculation for interface types so it calculates the hash of the canonical names themselves, rather than indices(that might change from one compilation to another).

This reverts commit 63fd8f63e6.

Change-Id: I6fe5b2ef99f209b32cd4087dfd1c8cac229c2d8b
Reviewed-on: https://dart-review.googlesource.com/c/87265
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
2018-12-14 23:45:57 +00:00
Konstantin Shcheglov
c91a245e30 Use ChangeWorkspace to limit where DartChangeBuilder(s) can edit.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/35402
Change-Id: If5f78b44b69f01d9ddc235401f70cc4aefd3ca37
Reviewed-on: https://dart-review.googlesource.com/c/87382
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-14 22:32:35 +00:00
asiva
f0babb648b [VM] status file for dartkp failure for issue 35419
Change-Id: I4a285dc8d4763cbacde02d89f6d237a05a198ac9
Reviewed-on: https://dart-review.googlesource.com/c/87383
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-12-14 21:26:12 +00:00
Ryan Macnak
d9c8f29b48 [vm, dbc] Remove bad assert from DBC deoptimization.
DBC's "FPU registers" are in fact stack slots.

Bug: https://github.com/dart-lang/sdk/issues/35395
Change-Id: I64f90f29b55f3f9bb0fec863e1a13c651f364ee7
Reviewed-on: https://dart-review.googlesource.com/c/87271
Reviewed-by: Aart Bik <ajcbik@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-12-14 20:18:46 +00:00
Konstantin Shcheglov
f96a7fbc7d Create AnalysisDriver using AnalysisContextCollectionImpl in pkg/analyzer_plugin tests.
Mostly to ensure that AnalysisDriver/Session knows its AnalysisContext,
so we can check that a file path belongs to the context root.

R=brianwilkerson@google.com

Change-Id: I45798bcf2441716ade89e9f6ee40f2053ab18bad
Reviewed-on: https://dart-review.googlesource.com/c/87268
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-14 19:18:44 +00:00
Konstantin Shcheglov
fd4ae6eda6 Augment AST/element type matchers to include (almost) all types.
R=brianwilkerson@google.com

Change-Id: I6650ed6fd40ca794b04bacb643bef2c3a578ba43
Reviewed-on: https://dart-review.googlesource.com/c/87270
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-12-14 19:04:34 +00:00
Konstantin Shcheglov
6146095f73 Make FindElement more self-consistent.
R=brianwilkerson@google.com

Change-Id: I74bc21a5e6ead36c9a631fc529497108001947ef
Reviewed-on: https://dart-review.googlesource.com/c/87269
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-12-14 18:50:40 +00:00
danrubel
9de66d87b8 Revert support for parsing simple nullable types
This reverts commit bc8c7cf782

Reason for revert: Breaks parsing less common conditionals (e.g. b ? c = true : g();)

Original change's description:
> Add support for parsing simple nullable types
>
> ... as part of adding NNBD as outlined in
> https://github.com/dart-lang/language/issues/110
>
> This only supports parsing simple nullable types
> such as int? and List<int>? while subsequent CLs
> will add support for parsing more complex types.

Change-Id: I49a21a85dca19241e3b23ed5c9fb6084e70f2000
Reviewed-on: https://dart-review.googlesource.com/c/87284
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-12-14 18:47:42 +00:00
Konstantin Shcheglov
162d0d12b0 Remove EngineTestCase.assertInstanceOf and extract ast/element TypeMatcher(s).
R=brianwilkerson@google.com

Change-Id: I9c47b4a7426dccafb8d3ffc1b0652da0106f2184
Reviewed-on: https://dart-review.googlesource.com/c/87302
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-12-14 17:51:27 +00:00
Aart Bik
fa181d94ef [dart/compiler] Refactor negate/flip token utilities
Rationale:
Avoids code duplication, also for planned uses later.
Change-Id: I05b97809f016805a2692c1fca3ec5a26354c527a
Reviewed-on: https://dart-review.googlesource.com/c/87300
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
2018-12-14 17:29:44 +00:00
Martin Kustermann
5054079c7a [VM] Bare instructions - Part 6: Get rid of CODE_REG indirection in CallThroughCode/CallThroughFunction stubs
If the --use-bare-instructions flag is enabled we will:

  * Not load CODE_REG inside CallThroughCode (polymorphic case)

  * Not load CODE_REG inside CallThroughFunction (megamorphic case)

  * Store the EntryPoint of the function in the MegamorphicCache tables
    (instead of a Function pointer)

Issue https://github.com/dart-lang/sdk/issues/33274

Change-Id: I8aca689dc4e92ece897972da4ae202338527ac62
Reviewed-on: https://dart-review.googlesource.com/c/86928
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-12-14 16:52:41 +00:00
Régis Crelier
25851db73d [vm/bytecode] Replace InstanceCall instruction with InterfaceCall and DynamicCall.
Dispatch interface calls via hashtable rather than inline cache.
InterfaceCall doesn't need to take arguments descriptor into account
when doing method lookup.

Change-Id: I30eae6ea638d1d2ad2cf3ff073c653fee3377f31
Reviewed-on: https://dart-review.googlesource.com/c/86106
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-12-14 16:51:51 +00:00