Commit Graph

113 Commits

Author SHA1 Message Date
Kevin Moore 440f190a34 Cleanup CompilerTask
make a number of fields private

Change-Id: Ib44aa3459e5d286004de7cb08e07039dc115894a
Reviewed-on: https://dart-review.googlesource.com/c/85645
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
2018-11-29 22:43:09 +00:00
Sigmund Cherem d9c6bc0316 Improvements to verbose timing data printing.
- format is padded and includes  %
- measure explicitly subtasks of deferred load
- use shorter names for other tasks


Sample output on swarm:

Info: Timings:
    kernel loader:                                 1.407s (17.1%)
    Front end:                                     0.736s  (8.9%)
    Front end > closures:                          0.102s  (1.2%)
    Front end > worldImpact:                       0.586s  (7.1%)
    Type inference:                                1.143s (13.9%)
    Deferred Loading:                              0.002s  (0.0%)
    Deferred Loading > prepare:                    0.002s  (0.0%)
    Enqueue:                                       0.455s  (5.5%)
    self:                                          0.914s (11.1%)
   *self > impl.run:                               0.034s  (0.4%)
    self > run:                                    0.206s  (2.5%)
    self > compileFromKernel:                      0.012s  (0.1%)
    self > computeClosedWorld:                     0.364s  (4.4%)
    self > processQueue:                           0.033s  (0.4%)
    self > emptyQueue:                             0.040s  (0.5%)
    self > applyImpact:                            0.146s  (1.8%)
    self > work.run:                               0.076s  (0.9%)
    SSA builder:                                   1.002s (12.2%)
    SSA optimizer:                                 1.302s (15.8%)
    SSA optimizer > SsaInstructionSimplifier:      0.421s  (5.1%)
    SSA optimizer > SsaTypeconversionInserter:     0.036s  (0.4%)
    SSA optimizer > SsaRedundantPhiEliminator:     0.012s  (0.1%)
    SSA optimizer > SsaDeadPhiEliminator:          0.010s  (0.1%)
    SSA optimizer > SsaTypePropagator:             0.261s  (3.2%)
    SSA optimizer > SsaCheckInserter:              0.030s  (0.4%)
    SSA optimizer > SsaDeadCodeEliminator:         0.067s  (0.8%)
    SSA optimizer > SsaGlobalValueNumberer:        0.071s  (0.9%)
    SSA optimizer > SsaCodeMotion:                 0.024s  (0.3%)
    SSA optimizer > SsaLoadElimination:            0.083s  (1.0%)
    SSA optimizer > SSA value range builder:       0.099s  (1.2%)
    SSA optimizer > SsaSimplifyInterceptors:       0.048s  (0.6%)
    SSA code generator:                            0.623s  (7.6%)
    Code emitter:                                  0.586s  (7.1%)
    Diagnostic handler:                            0.001s  (0.0%)
Change-Id: I4af3ff04954b28ee12354bc79eae517169a3b96e
Reviewed-on: https://dart-review.googlesource.com/c/85550
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-29 18:09:20 +00:00
Sigmund Cherem e9e70f0922 Reduce dependency on library spec from dart2js
Change-Id: I0d55b380f135d2e45a0dd112336bd87085e38c76
Reviewed-on: https://dart-review.googlesource.com/c/85471
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-28 17:12:11 +00:00
Sigmund Cherem 5a14f9e619 Remove unnecessary setupPackages step.
Since we switched to the CFE we no longer use this, the CFE recomputes the package-configuration internally.

Change-Id: Icdc2a3eeff1aa75e560157ecf0d5320208096d21
Reviewed-on: https://dart-review.googlesource.com/c/84362
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-11-14 19:28:40 +00:00
Sigmund Cherem b484aada21 Remove library-root option - replace it with a libraries-spec option instead
Change-Id: Ie1df52cdaa7ab4381a4c1b94c61a1210f0f31b5f
Reviewed-on: https://dart-review.googlesource.com/c/83641
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-11-09 22:40:28 +00:00
Stephen Adams 9146cea63a Print times in seconds
Change-Id: I4adcb9847d7a1ce4e91f93e7c484a3fd59310f52
Reviewed-on: https://dart-review.googlesource.com/62001
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2018-06-23 00:50:15 +00:00
Emily Fortuna 0e3ca9a668 Fix strong mode runtime error in dart2js.
Change-Id: Ib736576a094388f88183c981f9d04733142c8860
Reviewed-on: https://dart-review.googlesource.com/57480
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-05-30 20:13:10 +00:00
Emily Fortuna 552680b7f0 First round of changes to dart2js to make it strong mode clean.
Change-Id: Idc3612072c3cf28a4f58bbb890908f67473d8292
Reviewed-on: https://dart-review.googlesource.com/56284
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-23 21:26:04 +00:00
Johnni Winther d5719cae62 Small cleanup in compiler.dart
Change-Id: I2b3d3ce5925d6c7078250ab3fdadfc3daef90d73
Reviewed-on: https://dart-review.googlesource.com/55462
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-05-17 08:40:03 +00:00
Johnni Winther 944ce140e2 Remove most imports of elements/elements.dart
Change-Id: I4ecd45286fab1171eab1e2d3d443a0441bbdc883
Reviewed-on: https://dart-review.googlesource.com/55180
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-16 09:54:18 +00:00
Johnni Winther df9af04061 Remove CompilerOptions.useKernel
Change-Id: I9ea69addeb18e061280329c233a110fe2d8ca763
Reviewed-on: https://dart-review.googlesource.com/54240
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-05-09 10:13:32 +00:00
Lasse R.H. Nielsen 973a1a0219 Remove uses of upper-case constants in remaining SDK code.
This includes Fasta, tools and observatory, so the checked-in SDK must
have the lower-case constants.

Change-Id: I8380ad041ad058f7d02ae19caccfecd434d13d75
Reviewed-on: https://dart-review.googlesource.com/50201
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-16 16:11:57 +00:00
Sigmund Cherem 823dfda5a5 Delete serialization, except for equivalence and helpers used in other tests.
Move such helpers under the test folders.

Change-Id: Ic8718374741b1e3e46e63ae552fa57e49fc97bb2
Reviewed-on: https://dart-review.googlesource.com/51203
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-04-13 21:31:51 +00:00
Sigmund Cherem f9e12f1116 step 3 of ??: ignore old options from old FE
* preserve-comments: unused, only used for source-mirrors & dartdoc long long ago
* preserve-uris: ignored, mirrors-only flag
* allow-native-extensions: error, was only used for analyze-only with the old FE

Change-Id: Ic93c31edf188cdab3aa658c13018a432baf14742
Reviewed-on: https://dart-review.googlesource.com/48457
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-03-27 20:18:37 +00:00
Sigmund Cherem 751357d630 Make dart.library.isolate false in consts and config imports
Closes #30539

Change-Id: I037ae91d66ad32059d096d3db8890c456230bb96
Reviewed-on: https://dart-review.googlesource.com/48062
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-03-23 20:21:19 +00:00
Sigmund Cherem 09ff1b56f7 Add support for compiling Dart via the FE in dart2js.
This also:
 - replaces --use-kernel with --use-kernel-in-ssa
 - replaces --load-dill with --use-kernel
 - makes --use-kernel support both: compiling from .dill or from .dart
 - change the default of other options that are currently disabled when --use-kernel is on.
 - adds .status lines for all tests in language/corelib/dart2js_extra/dart2js_native

R=efortuna@google.com

 Note: this CL is built on top of another change
 (https://codereview.chromium.org/2981403002/) that adds preview_dart_2 to
 test.dart
Review-Url: https://codereview.chromium.org/2989453002 .
2017-07-24 17:10:11 -07:00
Peter von der Ahé 87700d381c Start making dart2js strong mode clean.
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2938823002 .
2017-06-14 20:34:07 +02:00
Stephen Adams d5f2138349 Use failedAt in more places
BUG=
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2898403002 .
2017-05-31 03:12:11 -07:00
Johnni Winther ebe69e6060 Support loading binary data in dart2js
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2897903003 .
2017-05-23 10:43:20 +02:00
Emily Fortuna 4156ca6a2b Eliminate multi-callback structure for LibraryLoader.
BUG=
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2760923004 .
2017-03-24 12:20:46 -07:00
Johnni Winther 52efadefc2 Replace Backend with JavaScriptBackend.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2685573002 .
2017-02-08 10:50:55 +01:00
Sigmund Cherem ac6bf5926f Temporarily allow to import dart:io in client apps.
Disclaimer: I am not in favor of this approach, but it appears to be the least
worst option at the time.

Reach out to kevmoo@ or dgrove@ for details.

R=lrn@google.com, sra@google.com, dgrove@google.com, kevmoo@google.com

Review-Url: https://codereview.chromium.org/2675023002 .
2017-02-07 14:02:04 -08:00
Johnni Winther a78e2e9806 Remove code supporting incremental compilation in dart2js
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2668233002 .
2017-02-02 09:48:19 +01:00
Johnni Winther 3f977cb5d1 Extract ClosedWorldImpl from WorldImpl.
R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2580403002 .
2016-12-21 09:45:57 +01:00
Johnni Winther 33303ffea5 Resolve type arguments to generic methods.
R=eernst@google.com

Review URL: https://codereview.chromium.org/2535373003 .
2016-11-30 12:44:29 +01:00
Lasse R.H. Nielsen bcdf0a1f12 Make dart2js not consider dart:io there if the library is unsupported.
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2321973002 .
2016-09-13 09:21:54 +02:00
Kevin Moore 406d5e0c48 pkg/compiler: fix imports
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2221893003 .
2016-08-08 14:41:50 -07:00
Sigmund Cherem b741e3f0df Make CompilerTask independent of compiler.
Now this base class only has logic for measuring time.

R=het@google.com, johnniwinther@google.com

Review URL: https://codereview.chromium.org/2000323006 .
2016-05-25 09:11:08 -07:00
Johnni Winther 42435f2643 Support multiple resolution inputs from command line.
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/2004833003 .
2016-05-25 11:02:34 +02:00
Johnni Winther 6571bdb95e Support (de)serialization from command-line
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1975153002 .
2016-05-18 11:52:32 +02:00
Johnni Winther b361d8ce97 Support compilation of Hello World
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1927963002 .
2016-04-29 12:57:45 +02:00
Johnni Winther 4acfa253d3 Add toStructuredText to ConstantExpression and align method names with ConstantValue
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1916053003 .
2016-04-27 12:48:50 +02:00
Peter von der Ahé 33253905e7 Use Zone to correctly measure async operations.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1898043004 .
2016-04-26 14:27:41 +02:00
Peter von der Ahé 74144aece4 Make backend and reporter customizable.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1897863007 .
2016-04-25 14:31:09 +02:00
Johnni Winther 09c242e729 Reinsert (and test) handling of exceptions from user code.
Closes issue #26304

R=ahe@google.com

Review URL: https://codereview.chromium.org/1914973002 .
2016-04-25 12:56:10 +02:00
Harry Terkelsen 8f3e4cff01 dart2js: remove references to compiler in ResolvedUriTranslator
BUG=
R=johnniwinther@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org/1884793002 .
2016-04-13 13:49:59 -07:00
Harry Terkelsen 29cf477139 dartfmt pkg/compiler
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1859343004 .
2016-04-07 10:00:53 -07:00
Erik Ernst 586c43ac7e Repeats and fixes the changes landed & reverted as CL 1789553003.
When landed, CL 1789553003 turned out to cause bot failures because
some libraries outside the compiler are importing compiler libraries
which have been updated. For instance, the tests in 'compiler/dart2js'
depend on several internal elements of the 'dart2js' compiler.

This CL updates these external dependents to work with the modified
library structure and class APIs of the compiler. A small adjustment
was applied to 'dart2js_incremental' as well.

No further dependents are believed to exist: Grepping in sdk for
relevant imports does not reveal any further imports of any of the
libraries in the compiler where the "interface" has changed, and
external clients are not supported (that is, imports in arbitrary
github repositories may or may not break if they use the compiler
internals, but we do not support this type of dependency so we won't
do anything to protect them against that type of breakage).

R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1864433004 .
2016-04-05 17:26:07 +02:00
Erik Ernst 355888457a Revert "Introduces ParserOptions."
This reverts commit d4c9a499d5.

Review URL: https://codereview.chromium.org/1859543002 .
2016-04-04 15:16:13 +02:00
Erik Ernst d4c9a499d5 Introduces ParserOptions.
In preparation for support for generic methods (with an associated
command line option), this CL introduces a `ParserOptions` class and
uses that to pass the existing option `enableConditionalDirectives` to
all parsers. With that, the addition of an `enableGenericMethodSyntax`
option will be concise and well localized.

It is necessary to keep a `ParserOptions` object in `Parsing`, because
that's the only convenient channel for providing the options to the new
`Parser` and `ClassElementParser` created from the top-level function
`parse` in 'partial_elements.dart', and a from
`PartialClassElement.parseNode`, respectively.

The `ParserOptions` class is located in 'parser.dart'; from the current
import structure the most natural choice might be to put it in
'element_listener.dart', but considering the nature of that file it
seems less natural: What does `ParserOptions` have to do with element
listeners? So I put it in 'parser.dart', even though this causes a few
additional import statements.

R=johnniwinther@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org/1789553003 .
2016-04-04 14:45:20 +02:00
Sigmund Cherem bada3cac9d Split loader from the rest of the compiler. This adds several abstractions to
make the decoupling easier. Some of the new abstractions should be revisited,
but it's a step forward :).

R=het@google.com

Review URL: https://codereview.chromium.org/1819053002 .
2016-03-23 16:02:33 -07:00
Sigmund Cherem 4f3a7cb86e Move all flags to CompilerOptions (first step to stop passing the compiler to
just get the options in the future).

BUG=
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1803303002 .
2016-03-17 16:42:02 -07:00
Johnni Winther 0a3de942ee Add --use-new-source-info option
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1750393002 .
2016-03-02 10:19:04 +01:00
Florian Loitsch a9b8efcd0d Don't expose private libraries with dart.library.X.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/1674613002 .
2016-02-05 17:36:14 +01:00
Florian Loitsch e775fa0932 Add support for 'dart.library.X' environment variables in dart2js.
R=johnniwinther@google.com, sigurdm@google.com

Committed: https://github.com/dart-lang/sdk/commit/369899c8ffca28f28a1af3cc323d1111c1a4a48a
Reverted: https://github.com/dart-lang/sdk/commit/b80994d6ad63ac30b400590cf51815e862c0e8a1

Review URL: https://codereview.chromium.org/1404183002 .
2016-01-13 16:34:46 +01:00
Florian Loitsch b80994d6ad Revert "Add support for 'dart.library.X' environment variables in dart2js."
This reverts commit 369899c8ff.

Review URL: https://codereview.chromium.org/1573243004 .
2016-01-12 14:41:00 +01:00
Florian Loitsch 369899c8ff Add support for 'dart.library.X' environment variables in dart2js.
R=johnniwinther@google.com, sigurdm@google.com

Review URL: https://codereview.chromium.org/1404183002 .
2016-01-12 13:58:46 +01:00
Johnni Winther 306537be79 Add test of unittests.
BUG=
R=sigurdm@google.com

Review URL: https://codereview.chromium.org/1562023002.
2016-01-06 13:19:41 +01:00
Johnni Winther 212ba4afbe Support optional package name arguments to --show-package-warnings
In response to dartbug.com/18661 and dartbug.com/21651.

Dart2js doesn't know pubspec.yaml or the directory structure but pub does. Next step is to pass arguments from pub.

BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1513263002.
2015-12-15 10:52:19 +01:00
Florian Loitsch af4983c6b2 dart2js: add support for configuration-specific imports.
R=johnniwinther@google.com, rnystrom@google.com

Committed: https://github.com/dart-lang/sdk/commit/64edfaf21af3153f32e1229dd97c9b3d40cbfb2b
Reverted: https://github.com/dart-lang/sdk/commit/f38b810d334900317ee6c919b45ebd0c673fdb02

Review URL: https://codereview.chromium.org/1388523002 .
2015-12-11 06:17:15 +01:00