Commit Graph

9475 Commits

Author SHA1 Message Date
Zachary Anderson e2729705ff Rolls back fix of SecurityContext method names.
R=iposva@google.com

Review URL: https://codereview.chromium.org/1757453002 .
2016-03-01 10:34:15 -08:00
Ryan Macnak 7b6463b708 Exception handlers may have null type arrays.
Fixes crash introduced by e1cd55dc8f.

R=regis@google.com

Review URL: https://codereview.chromium.org/1755713002 .
2016-03-01 10:14:03 -08:00
Ivan Posva 890c86251a - Add binary size analysis tool from Chromium.
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1754443002 .
2016-03-01 10:06:07 -08:00
Regis Crelier 699890db11 Introduce experimental flag --reify in the vm.
Note that many tests will fail when using --no-reify, since expected type errors
are not reported.

R=iposva@google.com

Review URL: https://codereview.chromium.org/1517153004 .
2016-03-01 10:03:18 -08:00
John McCutchan b2249f30fd Add persistent handles to service protocol and Observatory UI
VM Changes:

- Add private _getPersistentHandles service RPC.
- Add service_test for _getPersistentHandles.

Observatory Changes:

- Add Persistent Handles page.
- Display persistent handles in a curly-block
- Display weak persistent handles in a sortable table.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1719313002 .
2016-03-01 07:31:29 -08:00
Srdjan Mitrovic cd1112a382 Factor out code that looks up a canonical type and adds it to the canonical_types_ array if necessary.
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org/1748913002 .
2016-02-29 15:49:07 -08:00
Ryan Macnak e1cd55dc8f Precompilation: also trace types of exception handlers.
Cf. 4b112c6d25

R=regis@google.com

Review URL: https://codereview.chromium.org/1746313002 .
2016-02-29 15:34:59 -08:00
Regis Crelier e66d65f7b9 Change function source fingerprint calculation to rely on tokens exclusively and
not on the signature type hash anymore. This makes fingerprints insensitive to
implementation details of the type system. The signature type hash was included
because, in the early days, the token stream of a function started at the
opening brace and did not include tokens representing the signature.

R=srdjan@google.com

Review URL: https://codereview.chromium.org/1752503002 .
2016-02-29 14:59:21 -08:00
Florian Schneider 248b70a40f Exclude deoptimization-related runtime functions from precompiled runtime.
Deopt instructions and deferred object classes are not needed there.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1749973002 .
2016-02-29 13:34:48 -08:00
Ryan Macnak ad01f0fb41 Don't expand inline frames in stacktraces under noopt to match full precompiled behavior.
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1748793002 .
2016-02-29 13:28:09 -08:00
John McCutchan d08d4d8dba Dump functions on circular dependency parser error
Help with: https://github.com/dart-lang/sdk/issues/25545

R=turnidge@google.com

Review URL: https://codereview.chromium.org/1751523003 .
2016-02-29 12:32:20 -08:00
Florian Loitsch 55630a5e90 Support 'dart.library.X' env variables in the VM.
BUG= http://dartbug.com/24587
R=iposva@google.com, johnmccutchan@google.com

Committed: https://github.com/dart-lang/sdk/commit/c2a06e22cb83f491fd3accc33d7738c87490c26d
Reverted: https://github.com/dart-lang/sdk/commit/5eb5b429895987519a00daa81b5ab261debbca3f

Review URL: https://codereview.chromium.org/1640853004 .
2016-02-29 20:58:32 +01:00
Matthias Hausner 11767827db Add comment to async* support code
Addresses review comment.

Review URL: https://codereview.chromium.org/1751503002 .
2016-02-29 11:22:04 -08:00
Ryan Macnak cb210e3997 Enable concurrent sweep on MIPS and ARM64.
Compare ARM from commit f78517a5ba.

Closes #25651.

R=zra@google.com

Review URL: https://codereview.chromium.org/1722013002 .
2016-02-29 09:23:25 -08:00
Regis Crelier a8d71a461d Stop prefixing the library name to type names when reporting a type error with
identical names. The library name is not always helpful, and the prefix confuses
users when the types are function types.
Instead, enumerate all appearing types with their URIs.
This should help debug issue #27229258.

R=srdjan@google.com

Review URL: https://codereview.chromium.org/1743653002 .
2016-02-26 15:11:50 -08:00
Srdjan Mitrovic 20c17d9e41 More fixes for background compilation
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1745453002 .
2016-02-26 10:58:17 -08:00
Zachary Anderson e03a9d54c7 Don't compile in root certs when SSL is disabled in GN build.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1739023005 .
2016-02-26 10:37:53 -08:00
John McCutchan e40a443bbf Fix Flutter Dart role
BUG=
R=zra@google.com

Review URL: https://codereview.chromium.org/1744573002 .
2016-02-26 10:30:14 -08:00
Srdjan Mitrovic 5a69e3661b In background compilation make a copy of Field in order to freeze its state. Add flag --force_clone_compiler_objects for debugging purpose.
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1722733002 .
2016-02-26 09:07:49 -08:00
John McCutchan 761e6a5963 Build CodeSourceMap for each code object
- Add helpers for building CodeSourceMap to FlowGraphCompiler. Ensure that no duplicate pc offsets are added to a CodeSourceMap.
- Add a CodeSourceMap debug printer which incorporates inlining information.
- Add some new classifying token positions.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1740503002 .
2016-02-26 07:59:48 -08:00
Florian Schneider 944aed203a Remove left-over compiler-code from precompiled runtime.
Only instantiate IR classes in compiled regexp mode.

Remove remaining stub generation code.

BUG=
R=vegorov@google.com

Review URL: https://codereview.chromium.org/1739173002 .
2016-02-26 06:59:36 -08:00
Ivan Posva 8d18298fed - Remove Isolate::Flags structure and store flags directly in isolate.
- Make enable_asserts, enable_type_checks, error_on_bad_override and
  error_on_bad_type release mode flags only.

BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1737693003 .
2016-02-25 18:06:56 -08:00
William Hesse 47b2253866 Update status for VM crash on address sanitizer (asan) bot.
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1739023003 .
2016-02-26 00:53:25 +01:00
John McCutchan 3b0104732b Remember token position where a function was inlined
When inlining a function, remember the token position of the call. I need this information for source level profiling.

R=srdjan@google.com

Review URL: https://codereview.chromium.org/1739963002 .
2016-02-25 14:47:11 -08:00
Florian Schneider 289157044a Add libdart_precompiled_runtime target to runtime/BUILD.gn
This allows the embedder using the gn build files build a VM runtime without compiler-related code, used to run a precompiled snapshot.

It is a copy of libdart, but has the macro DART_PRECOMPILED_RUNTIME defined which excludes all
 compiler-related code, not needed to run precompiled code from the binary.

BUG=
R=chinmaygarde@google.com

Review URL: https://codereview.chromium.org/1738503002 .
2016-02-25 13:44:28 -08:00
John McCutchan 003fa8863f Fix analysis bots
BUG=

Review URL: https://codereview.chromium.org/1732303003 .
2016-02-25 12:51:16 -08:00
Regis Crelier 3ffe9922b7 Simplify various name flavors in VM.
R=asiva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1723733002 .
2016-02-25 11:21:27 -08:00
John McCutchan 5d50f1c64a Fix bots: Only load class if the isolate is runnable.
BUG=

Review URL: https://codereview.chromium.org/1735993002 .
2016-02-25 08:58:04 -08:00
Florian Schneider d8677964a3 Move precompilation-related flags to flags list.
They become compile-time constants in the precompiled runtime, and in product mode.

In precompiled product mode, the precompiled value has precedence.

BUG=
R=rmacnak@google.com

Committed: https://github.com/dart-lang/sdk/commit/5c9f18c6c87284395564051a052cc4acc9b6f59a

Review URL: https://codereview.chromium.org/1731743003 .
2016-02-25 07:53:39 -08:00
John McCutchan b482480b65 Improve behaviour when we hit a stack overflow / OOM error
Fixes #25815

VM changes:

- Don't crash in SignalExceptionThrown when we have no stack frames.

- Notify the debugger about an unhandled stack overflow / OOM *after* setting the sticky error. This allows Observatory to display it.

- When pausing without a debugger attached, print the sticky error if one is set.

- Improve stack trace frame numbers when printing for a stack overflow.

Observatory changes:

- Report the sticky error for pause at unhandled exception as well as exit.

- Let the user know that we cannot pause for unhandled stack overflow / OOM exceptions.

- Don't show the "at <func> (<script location>)" string in the isolate summary, if we don't have a top frame.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1709383002 .
2016-02-25 07:33:01 -08:00
Siva Annamalai 5c53e14d55 - Skip tests which use dart:mirrors in product mode
Review URL: https://codereview.chromium.org/1728663002 .
2016-02-24 18:13:20 -08:00
Ryan Macnak bd85deaf4e Revert "Move precompilation-related flags to flags list."
The default value of print_stop_message was architecture specific.

TBR=fschneider@google.com

Review URL: https://codereview.chromium.org/1739593002 .
2016-02-24 18:08:01 -08:00
Florian Schneider 5c9f18c6c8 Move precompilation-related flags to flags list.
They become compile-time constants in the precompiled runtime, and in product mode.

In precompiled product mode, the precompiled value has precedence.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1731743003 .
2016-02-24 17:31:08 -08:00
Ryan Macnak 04e8382cec VM: Share object pool entries for optimized static calls.
Independently patchable entries are not required for debugging because breakpoints are only added to unoptimized code, nor for deopt because deopt patches the instruction stream and not the object pool.

Future work: Reduce the static call table from (pc offset, function, code) triples to (pc offset, function or allocation stub) pairs.

precompiled dart2js arm 20747140 -> 20674954 (-0.34%)

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1713853003 .
2016-02-24 13:57:19 -08:00
Ryan Macnak d377a817a5 Fix running on debug + clang + ARM64 + --link-natives-lazily.
Don't expect the C compiler to maintain ABI alignment on calls within a
compilation unit.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1728913002 .
2016-02-24 09:38:24 -08:00
John McCutchan b39b2c8cfb Add ability to save and load timelines from Observatory
Fixes #25180

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1722373002 .
2016-02-24 09:12:30 -08:00
Florian Schneider df4f508483 Rename FlowGraphOptimizer -> JitOptimizer, clean up optimizer code.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1732483002 .
2016-02-24 07:18:12 -08:00
Florian Schneider 39bd867da6 Fix assertion in precompiler.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1726063002 .
2016-02-23 15:13:36 -08:00
Florian Schneider 843cbca427 VM: Fix product build.
R=asiva@google.com
TBR=asiva@google.com

BUG=

Review URL: https://codereview.chromium.org/1728713002 .
2016-02-23 12:54:33 -08:00
John McCutchan 543a7af08c Fix checked mode failures in service tests
BUG=

Review URL: https://codereview.chromium.org/1725993002 .
2016-02-23 12:35:48 -08:00
John McCutchan 7656cedf47 Refactor service tests in preparation of running on sky_shell
- Split service test common helper into separate file.
- Make many tests easier to adapt to line number changes.
- Refactor test launching in preparation of running these tests against sky_shell
- Pass --testee-mode as an environment variable instead of of a command line flag because Flutter applications cannot receive command line arguments.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1726773002 .
2016-02-23 10:51:48 -08:00
Florian Schneider b870dafa4f VM: Separate precompilation-specific code, make flags const.
Move optimizations for precompilation into separate file.

Remove precompilation-specific code from flow_graph_optimizer.cc.

Add precompilation-flags: They are const in the precompiled runtime. Started moving flags to use the new flag-definition macros.

Add libdart_lib_precompiled target.

Define PRECOMPILED_RUNTIME_MACRO in more places (dart_precompiled_runtime)

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1714743002 .
2016-02-23 08:48:08 -08:00
Siva Annamalai 809c205cae - Fix --run-fullsnapshot flag processing issue in non product mode.
- Adjust status files for product mode issues (Process.run, SpawnUri,
  test expecting line numbers)

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1720193002 .
2016-02-22 15:33:34 -08:00
Ryan Macnak 4b112c6d25 Precompilation: drop unused types and type arguments and empty classes and libraries.
precompiled dart2js arm 20748837 -> 20639848 (-0.52%)
precompiled flutter asteriods arm64 8926398 -> 8782136 (-1.6%)

R=regis@google.com

Review URL: https://codereview.chromium.org/1686773002 .
2016-02-22 14:05:03 -08:00
Siva Annamalai 2964f9e750 Change return value of ObjectStore::PreallocateObjects to return the error object or null instead of a bool. Most of the times the sticky error is cleared and returned as an error so returning a bool and querying the sticky error here does not work as the sticky error is a null object.
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1721053002 .
2016-02-22 13:37:22 -08:00
Jacob Richman 6a0b321026 Allow factory constructors on mixin classes.
This mitigates a breaking change impacting real users caused by 851b4a995c.
The spec will be updated to allow factory constructors on mixins.

R=gbracha@google.com, iposva@google.com

Review URL: https://codereview.chromium.org/1699233002 .
2016-02-22 10:19:49 -08:00
John McCutchan 8266501a72 Remove mirrors in product mode
(stripped) dart_product before: 5307888
(stripped) dart_product after: 5232976

Reduction in size: 74912 bytes.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1712843002 .
2016-02-22 09:55:20 -08:00
John McCutchan d9a8e40b74 Fix windows build failures
BUG=

Review URL: https://codereview.chromium.org/1722713002 .
2016-02-22 09:45:34 -08:00
John McCutchan fda3a9bc2b Remove more things
(stripped) dart_product before: 5307888
(stripped) dart_product after: 5275088

Reduction in size: 32800 bytes.

Removed entirely:

- debuginfo*
- elfgen*
- gdbjit*
- TraceBuffer
- vtune support

Removed in product:

- Compiler stats
- Code observers

R=asiva@google.com

Review URL: https://codereview.chromium.org/1711163002 .
2016-02-22 08:53:11 -08:00
Ivan Posva c822c34af6 - Add DEBUG_ONLY and NOT_IN_PRODUCT macros.
- Remove user_name_ field from RawClass using macros.
- Consolidate "#ifndef PRODUCT" and "#ifdef DEBUG" code using macros.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1715123003 .
2016-02-19 17:48:08 -08:00