Johnni Winther
28faf8c7ca
Merge GraphBuilder into KernelSsaGraphBuilder
...
+ avoid use of `compiler` and `backend`
+ make members of KernelSsaGraphBuilder private when possible
Change-Id: Ia069a8c3b4167c1ae55554baadb857975aeff67f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101287
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-06 08:53:24 +00:00
Johnni Winther
8053c43dde
Compute static types for for-in loops
...
Change-Id: I47e98eaf6df7d04286cb737bfdff135e6c0d34d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100843
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-05-01 14:06:39 +00:00
Johnni Winther
58ff41ad33
Add test for static tear-off
...
- to document the change (for the better) with CFE constant
Change-Id: I9b6673497fe07ccd4f92fc4c22df0ae3205f72a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99152
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-04-16 07:06:12 +00:00
Johnni Winther
45a5349175
Track constant field initializers for field analysis.
...
Change-Id: I536975d235cbf7722b03aa7b0e2c9edd7c206484
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98852
Commit-Queue: Sigmund Cherem <sigmund@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-04-09 16:30:27 +00:00
Johnni Winther
7ef28f0b03
Handle constant field init registration correctly.
...
+ avoid side-effects of checking enqueuer invariants
Change-Id: Id327371bc70e4b1b5fd4d326b8c8cf8caf50ea0e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98142
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-03-29 16:44:15 +00:00
Johnni Winther
eb6f1b6abd
Handle effectively constant fields in class stub generator
...
Closes #36222
Change-Id: Ic8b7a3963e1364903b4b2d7871ff0b12cb134572
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97082
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-03-15 20:15:25 +00:00
Johnni Winther
1720704594
Recognize effectively constant static fields
...
Change-Id: Ic8f7a014a6af2f9d8854e0731fe0d2df11b554da
Reviewed-on: https://dart-review.googlesource.com/c/94281
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-02-28 09:12:26 +00:00
Johnni Winther
edcaa05375
Support @pragma('dart2js:noElision') on non-internal methods
...
Change-Id: Ifae3f76107086f6ad47de2f9eda7b7aec589fc89
Reviewed-on: https://dart-review.googlesource.com/c/94284
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-02-27 09:46:52 +00:00
Johnni Winther
8e2fcf7782
Advanced tracking of field initialization
...
Change-Id: I8c8edb517bc3a3805ac0d72388f4e5c7fc34247f
Reviewed-on: https://dart-review.googlesource.com/c/93680
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-02-22 16:08:16 +00:00
Johnni Winther
60e4f194b0
Recognize and inline effectively constant fields
...
Change-Id: I243ee80ebc45d9cdab2f7c944cf5eceb26185b2c
Reviewed-on: https://dart-review.googlesource.com/c/93436
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Stephen Adams <sra@google.com >
2019-02-22 14:06:05 +00:00
Johnni Winther
33bc628235
Treeshake unread fields
...
Change-Id: I188df5fd18163e5b32213a364d0fc163300db7b9
Reviewed-on: https://dart-review.googlesource.com/c/92130
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-02-07 09:58:19 +00:00
Johnni Winther
c591454dd3
Inline unprovided optional parameters
...
Change-Id: I61c82216965062feee8e01ba2533d0ea7c0052ef
Reviewed-on: https://dart-review.googlesource.com/c/90700
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-02-07 08:44:49 +00:00
Johnni Winther
0fd1679620
Sort named parameters in native methods by declaration.
...
Change-Id: Ic4a7f9ad6cf0d362b6582a59c783cc05cc404a31
Reviewed-on: https://dart-review.googlesource.com/c/91828
Reviewed-by: Sigmund Cherem <sigmund@google.com >
Commit-Queue: Johnni Winther <johnniwinther@google.com >
2019-02-04 10:02:23 +00:00
Johnni Winther
68d110ac2a
Add test for codegen of optional parameters on native functions.
...
Change-Id: Ice329d52be74f98653e5434b148b2b2c8f46c7d6
Reviewed-on: https://dart-review.googlesource.com/c/91661
Commit-Queue: Johnni Winther <johnniwinther@google.com >
Reviewed-by: Sigmund Cherem <sigmund@google.com >
2019-02-01 09:23:55 +00:00
Johnni Winther
e14472c46b
Use getters/setters found through the static types.
...
This uses the information from the static types now used in inference which
can improve the precision in particular for generic classes. Since type
masks lose the type argument information, we cannot expect locating members
based on the type mask to be more precise than what has been found through
the static types.
This CL also expands the unit test framework to support unit test of
optimizations and the emission model, including tests of the improved
field access handling.
Closes #35433
Change-Id: Ia5de15efaf8b60c8723943bb34de6eec7d380798
Reviewed-on: https://dart-review.googlesource.com/c/88440
Reviewed-by: Stephen Adams <sra@google.com >
2019-01-07 15:01:10 +00:00