Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Issue 10638013: Improve tracking of the type of fields after object construction (Closed)

Created:
8 years, 6 months ago by Søren Gjesse
Modified:
8 years, 5 months ago
Reviewers:
floitsch, ngeoffray, kasperl
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Improve tracking of the type of fields after object construction Based on the guarenteed types a field is initialized to in both the initializer lists and constructor bodies give an optimistic type for this field. Based on all the field setters and invoked setters for that field turn this optimistic type into either a propagated type or a guarenteed type. R=kasperl@google.com, floitsch@google.com BUG= TEST= Committed: https://code.google.com/p/dart/source/detail?r=9019

Patch Set 1 #

Total comments: 7
Unified diffs Side-by-side diffs Delta from patch set Stats (+93 lines, -0 lines) Patch
M lib/compiler/implementation/compiler.dart View 3 chunks +48 lines, -0 lines 4 comments Download
M lib/compiler/implementation/elements/elements.dart View 1 chunk +2 lines, -0 lines 0 comments Download
M lib/compiler/implementation/ssa/codegen.dart View 1 chunk +7 lines, -0 lines 1 comment Download
M lib/compiler/implementation/ssa/optimize.dart View 2 chunks +36 lines, -0 lines 2 comments Download

Messages

Total messages: 4 (0 generated)
Søren Gjesse
8 years, 6 months ago (2012-06-22 07:36:37 UTC) #1
floitsch
LGTM with one question/comment (null-inits). https://chromiumcodereview.appspot.com/10638013/diff/1/lib/compiler/implementation/compiler.dart File lib/compiler/implementation/compiler.dart (right): https://chromiumcodereview.appspot.com/10638013/diff/1/lib/compiler/implementation/compiler.dart#newcode60 lib/compiler/implementation/compiler.dart:60: final Map<Element, Map<Element, HType>> ...
8 years, 6 months ago (2012-06-22 08:18:12 UTC) #2
Søren Gjesse
https://chromiumcodereview.appspot.com/10638013/diff/1/lib/compiler/implementation/compiler.dart File lib/compiler/implementation/compiler.dart (right): https://chromiumcodereview.appspot.com/10638013/diff/1/lib/compiler/implementation/compiler.dart#newcode60 lib/compiler/implementation/compiler.dart:60: final Map<Element, Map<Element, HType>> fieldConstructorSetters; On 2012/06/22 08:18:12, floitsch ...
8 years, 6 months ago (2012-06-22 09:22:36 UTC) #3
ngeoffray
8 years, 5 months ago (2012-07-09 21:17:41 UTC) #4
DBC

https://chromiumcodereview.appspot.com/10638013/diff/1/lib/compiler/implement...
File lib/compiler/implementation/ssa/codegen.dart (right):

https://chromiumcodereview.appspot.com/10638013/diff/1/lib/compiler/implement...
lib/compiler/implementation/ssa/codegen.dart:1729:
node.block.dominates(currentGraph.exit)) {
We should probably have a helper method for this instead. Something like
HBasicBlock.isAlwaysExecuted.

Powered by Google App Engine
This is Rietveld 408576698