Files
sdk/pkg/front_end
Jens Johansen 97742f827a [CFE] Avoid AllocateContext in Scope.recordUse
Replacing putIfAbsent with containsKey (and inserting if not) gives an
improvement.

When compiling dart2js with fasta (from source), measuring only calls
to `recordUse` (which is called 1,549,231 times) (but measured
'outside' the method itself to include the `AllocateContext` cost)
I get the following:

Difference at 95.0% confidence
        -37.2 +/- 18.2218
        -18.5814% +/- 9.10179%
        (Student's t, pooled s = 12.494)

i.e. almost 40 ms faster.
(this should be seen in a context of the entire compile taking
10+ seconds, but still).

Change-Id: I96cf521bb3cf760f14e4a407ff24638f019a8e21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194760
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-04-13 15:06:36 +00:00
..
2021-04-07 10:28:38 +00:00
2020-12-07 15:02:57 +00:00

Front end for Dart

This package provides a low-level API for use by compiler back ends that wish to implement the Dart language. It is intended for eventual use by dev_compiler, dart2js, and the Dart VM. In addition, it will share implementation details with the analyzer package--this will be accomplished by having the analyzer package import (and re-export) parts of this package's private implementation.

End-users should use the dart analyze command-line tool to analyze their Dart code.

Integrators that want to write tools that analyze Dart code should use the analyzer package.

Note: A previous version of this package was published on pub.dev. It has now been marked DISCONTINUED as it is not intended for direct consumption, as per the notes above.