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

Issue 1084783004: tree-ir: Treat getInterceptor and identical as effectively constant. (Closed)

Created:
5 years, 8 months ago by asgerf
Modified:
5 years, 8 months ago
CC:
reviews_dartlang.org
Target Ref:
refs/remotes/git-svn
Visibility:
Public.

Description

tree-ir: Treat getInterceptor and identical as effectively constant. Calls to getInterceptor would often block another expression from propagating, which in turn can block other optimizations. Before: while (true) { v0 = foo(); if (P.identical(J.getInterceptor$n(i).$lt(i, v0), true)) { S1 } else { S2 [no continue] } The call to J.getInterceptor prevents v0 = foo() from inlining. After: while(P.identical(J.getInterceptor$n(i).$lt(i, foo()), true)) { S1 } S2 BUG= R=kmillikin@google.com Committed: https://code.google.com/p/dart/source/detail?r=45161

Patch Set 1 #

Total comments: 1

Patch Set 2 : Update test cases #

Unified diffs Side-by-side diffs Delta from patch set Stats (+24 lines, -25 lines) Patch
M pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart View 2 chunks +2 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/optimization/statement_rewriter.dart View 3 chunks +3 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart View 1 chunk +8 lines, -0 lines 0 comments Download
M tests/compiler/dart2js/js_backend_cps_ir_interceptors_test.dart View 1 1 chunk +10 lines, -19 lines 0 comments Download
M tests/compiler/dart2js/js_backend_cps_ir_supercall_test.dart View 1 1 chunk +1 line, -2 lines 0 comments Download

Messages

Total messages: 4 (1 generated)
asgerf
https://codereview.chromium.org/1084783004/diff/1/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart File pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart (right): https://codereview.chromium.org/1084783004/diff/1/pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart#newcode182 pkg/compiler/lib/src/tree_ir/tree_ir_nodes.dart:182: bool isEffectivelyConstant = false; I am not overly enthusiastic ...
5 years, 8 months ago (2015-04-14 13:45:48 UTC) #2
Kevin Millikin (Google)
LGTM. I imagine we will evolve it into something more general, but this is fine ...
5 years, 8 months ago (2015-04-15 09:57:52 UTC) #3
asgerf
5 years, 8 months ago (2015-04-15 11:24:41 UTC) #4
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as 45161 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698