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

Issue 2751103003: VM: Propagate non-nullness from instance calls. (Closed)

Created:
3 years, 9 months ago by Florian Schneider
Modified:
3 years, 9 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org, Vyacheslav Egorov (Google)
Target Ref:
refs/heads/master
Visibility:
Public.

Description

VM: Propagate non-nullness from instance calls. After a call to a selector that is not defined on null, we can propagate the non-nullness of the receiver. A redefinition is inserted after the call to ensure that only safe code motion occurs. Also, adjust instructions count in the inliner to account for redefinitions. R=rmacnak@google.com, vegorov@google.com Committed: https://github.com/dart-lang/sdk/commit/8acc787d0874708750ee9deb85095cae15fc17f2

Patch Set 1 #

Patch Set 2 : fix build #

Total comments: 6

Patch Set 3 : canonicalize redundant redefinitions #

Unified diffs Side-by-side diffs Delta from patch set Stats (+89 lines, -23 lines) Patch
M runtime/vm/flow_graph.h View 1 chunk +4 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 2 2 chunks +7 lines, -6 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 2 1 chunk +5 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_type_propagator.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 4 chunks +51 lines, -8 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 2 chunks +6 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 1 chunk +12 lines, -0 lines 0 comments Download

Messages

Total messages: 12 (4 generated)
Florian Schneider
3 years, 9 months ago (2017-03-15 23:06:25 UTC) #2
rmacnak
lgtm https://codereview.chromium.org/2751103003/diff/20001/runtime/vm/flow_graph_type_propagator.cc File runtime/vm/flow_graph_type_propagator.cc (right): https://codereview.chromium.org/2751103003/diff/20001/runtime/vm/flow_graph_type_propagator.cc#newcode260 runtime/vm/flow_graph_type_propagator.cc:260: const Class& null_class = Probably cheaper to check ...
3 years, 9 months ago (2017-03-15 23:14:49 UTC) #3
Vyacheslav Egorov (Google)
https://codereview.chromium.org/2751103003/diff/20001/runtime/vm/flow_graph_type_propagator.cc File runtime/vm/flow_graph_type_propagator.cc (right): https://codereview.chromium.org/2751103003/diff/20001/runtime/vm/flow_graph_type_propagator.cc#newcode330 runtime/vm/flow_graph_type_propagator.cc:330: void FlowGraphTypePropagator::VisitBranch(BranchInstr* instr) { Should not we also handle ...
3 years, 9 months ago (2017-03-16 06:21:48 UTC) #5
Florian Schneider
ptal https://codereview.chromium.org/2751103003/diff/20001/runtime/vm/flow_graph_type_propagator.cc File runtime/vm/flow_graph_type_propagator.cc (right): https://codereview.chromium.org/2751103003/diff/20001/runtime/vm/flow_graph_type_propagator.cc#newcode260 runtime/vm/flow_graph_type_propagator.cc:260: const Class& null_class = On 2017/03/15 23:14:49, rmacnak ...
3 years, 9 months ago (2017-03-17 01:12:40 UTC) #7
Florian Schneider
Ping
3 years, 9 months ago (2017-03-20 16:41:53 UTC) #8
Vyacheslav Egorov (Google)
lgtm
3 years, 9 months ago (2017-03-20 16:44:53 UTC) #9
rmacnak
lgtm
3 years, 9 months ago (2017-03-20 17:09:16 UTC) #10
Florian Schneider
3 years, 9 months ago (2017-03-20 17:22:23 UTC) #12
Message was sent while issue was closed.
Committed patchset #3 (id:40001) manually as
8acc787d0874708750ee9deb85095cae15fc17f2 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698