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

Issue 1330503003: dart2js cps: Add path-sensitive types by inserting refinement IR nodes. (Closed)

Created:
5 years, 3 months ago by asgerf
Modified:
5 years, 3 months ago
CC:
reviews_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

dart2js cps: Add path-sensitive types by inserting refinement IR nodes. Refinement nodes are inserted after an InvokeMethod, refining the type of the receiver to those that can respond to the selector. Refinements are also inserted in the arms of a branch with a condition of form 'x is T' or 'x == null'. R=kmillikin@google.com Committed: https://github.com/dart-lang/sdk/commit/998be61175eaa374c4a0596c2ba1e3391b388ac2

Patch Set 1 #

Total comments: 4

Patch Set 2 : Use IterableBase and isEmpty #

Total comments: 16

Patch Set 3 : Comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+448 lines, -23 lines) Patch
M pkg/compiler/lib/src/common/names.dart View 1 chunk +2 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart View 1 2 6 chunks +93 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart View 2 chunks +10 lines, -0 lines 0 comments Download
A pkg/compiler/lib/src/cps_ir/insert_refinements.dart View 1 2 1 chunk +222 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/optimizers.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/compiler/lib/src/cps_ir/remove_refinements.dart View 1 chunk +35 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/scalar_replacement.dart View 1 chunk +1 line, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart View 1 chunk +4 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/type_propagation.dart View 19 chunks +59 lines, -21 lines 0 comments Download
M pkg/compiler/lib/src/js_backend/codegen/task.dart View 1 chunk +4 lines, -0 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart View 1 chunk +5 lines, -0 lines 0 comments Download
M tests/compiler/dart2js/js_backend_cps_ir_interceptors_test.dart View 1 chunk +5 lines, -2 lines 0 comments Download

Messages

Total messages: 9 (3 generated)
asgerf
There were so many fixes and rebasings of the original incarnation that I started a ...
5 years, 3 months ago (2015-09-02 17:08:40 UTC) #2
sra1
https://codereview.chromium.org/1330503003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart File pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart (right): https://codereview.chromium.org/1330503003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart#newcode216 pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart:216: return !effectiveUses.iterator.moveNext(); effectiveUses.isEmpty does the same. https://codereview.chromium.org/1330503003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart#newcode519 pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart:519: bool ...
5 years, 3 months ago (2015-09-02 18:24:52 UTC) #4
asgerf
https://codereview.chromium.org/1330503003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart File pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart (right): https://codereview.chromium.org/1330503003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart#newcode216 pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart:216: return !effectiveUses.iterator.moveNext(); On 2015/09/02 18:24:52, sra1 wrote: > effectiveUses.isEmpty ...
5 years, 3 months ago (2015-09-02 18:46:58 UTC) #6
Kevin Millikin (Google)
Refinements are more generally just copies or renamings, and refinement elimination is copy propagation. Even ...
5 years, 3 months ago (2015-09-03 10:21:06 UTC) #7
asgerf
I've assumed for a long time that only InvokeContinuation did not mandate complete ownership over ...
5 years, 3 months ago (2015-09-03 12:31:39 UTC) #8
asgerf
5 years, 3 months ago (2015-09-03 14:41:55 UTC) #9
Message was sent while issue was closed.
Committed patchset #3 (id:60001) manually as
998be61175eaa374c4a0596c2ba1e3391b388ac2 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698