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

Issue 848363002: Allow LetCont to bind multiple continuations. (Closed)

Created:
5 years, 11 months ago by Kevin Millikin (Google)
Modified:
5 years, 10 months ago
Reviewers:
asgerf, karlklose, sigurdm
CC:
reviews_dartlang.org
Target Ref:
refs/remotes/git-svn
Visibility:
Public.

Description

Allow LetCont to bind multiple continuations. LetCont can now bind multiple continuations in the same scope. As an example, the 'then' and 'else' continuations of a branch are siblings in the expression, and neither is in the scope of the other. None of the LetCont-bound continuations are in scope for any of the continuation bodies. Recursive continuations are still recursive values, not recursive bindings, so there is no direct way to have mutually recursive continuations. This matches the JavaScript semantics. R=asgerf@google.com, sigurdm@google.com, karlklose@google.com BUG= Committed: https://code.google.com/p/dart/source/detail?r=42945

Patch Set 1 #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+1078 lines, -890 lines) Patch
M pkg/analyzer2dart/test/sexpr_data.dart View 61 chunks +310 lines, -310 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart View 16 chunks +69 lines, -60 lines 2 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart View 2 chunks +3 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart View 8 chunks +30 lines, -19 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart View 2 chunks +25 lines, -14 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart View 2 chunks +5 lines, -3 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/optimizers.dart View 1 chunk +1 line, -1 line 2 comments Download
M pkg/compiler/lib/src/cps_ir/redundant_phi.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart View 12 chunks +60 lines, -34 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/type_propagation.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart View 1 chunk +20 lines, -8 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/opt_constprop_test.dart View 11 chunks +287 lines, -225 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/opt_redundant_phi_test.dart View 8 chunks +168 lines, -123 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart View 7 chunks +68 lines, -68 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart View 4 chunks +20 lines, -11 lines 0 comments Download
M tests/compiler/dart2js/js_backend_cps_ir_basic_test.dart View 1 chunk +10 lines, -10 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Kevin Millikin (Google)
5 years, 11 months ago (2015-01-15 15:03:18 UTC) #1
asgerf
LGTM. https://codereview.chromium.org/848363002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart (right): https://codereview.chromium.org/848363002/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart#newcode400 pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart:400: add(new ir.LetCont(<ir.Continuation>[k], expression)); It may be nicer to ...
5 years, 11 months ago (2015-01-15 15:29:45 UTC) #2
sigurdm
lgtm https://codereview.chromium.org/848363002/diff/1/pkg/compiler/lib/src/cps_ir/optimizers.dart File pkg/compiler/lib/src/cps_ir/optimizers.dart (right): https://codereview.chromium.org/848363002/diff/1/pkg/compiler/lib/src/cps_ir/optimizers.dart#newcode54 pkg/compiler/lib/src/cps_ir/optimizers.dart:54: } Did anything change here?
5 years, 11 months ago (2015-01-16 08:01:57 UTC) #3
Kevin Millikin (Google)
https://codereview.chromium.org/848363002/diff/1/pkg/compiler/lib/src/cps_ir/optimizers.dart File pkg/compiler/lib/src/cps_ir/optimizers.dart (right): https://codereview.chromium.org/848363002/diff/1/pkg/compiler/lib/src/cps_ir/optimizers.dart#newcode54 pkg/compiler/lib/src/cps_ir/optimizers.dart:54: } On 2015/01/16 08:01:57, sigurdm wrote: > Did anything ...
5 years, 11 months ago (2015-01-16 08:46:54 UTC) #4
Kevin Millikin (Google)
Committed patchset #1 (id:1) manually as 42945 (presubmit successful).
5 years, 11 months ago (2015-01-16 08:55:34 UTC) #5
asgerf
5 years, 11 months ago (2015-01-16 09:58:42 UTC) #6
Message was sent while issue was closed.
On 2015/01/16 08:55:34, kmillikin wrote:
> Committed patchset #1 (id:1) manually as 42945 (presubmit successful).

Seems the commit broke one of the tests:
python tools/test.py --checked -mrelease -t60
dart2js/js_backend_cps_ir_operators_test

The assertion in the _ReductionTask constructor seems to be out of date:

  _ReductionTask(this.kind, this.node) {
    // If new node types are added, they must be marked as deleted in
    // [[_RemovalRedexVisitor]].
    assert(node is LetCont || node is LetPrim);
  }

The node is now a Continuation instead of a LetCont.

Powered by Google App Engine
This is Rietveld 408576698