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

Issue 2772143002: Reland "VM: Handle null-comparisons in the flow graph type propagation" (Closed)

Created:
3 years, 9 months ago by Florian Schneider
Modified:
3 years, 8 months ago
CC:
reviews_dartlang.org, rmacnak, vm-dev_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Reland "VM: Handle null-comparisons in the flow graph type propagation" This reverts commit 30a942f7287e67d4bcf43f2959428033612b1a70. Plus: 1. Fixes integer type propagation in the optimizer by introducing a _int64 marker interface 2. Fixes calculation of whether an instructions can deoptimize: This has to be stable so that once determined that an instructions can't deoptimize, it will stay that way and not flip back later in the optimization 3. Address comments to improve CompileType::CopyNonNullable() R=vegorov@google.com Committed: https://github.com/dart-lang/sdk/commit/e7afde47e9afc981e9609ea14770debc18479bb1

Patch Set 1 #

Patch Set 2 : fix CopyNonNullable #

Patch Set 3 : clean up #

Patch Set 4 : add another regression test #

Patch Set 5 : ia32 only fix #

Patch Set 6 : fix CanDeoptimize #

Total comments: 6

Patch Set 7 : address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+304 lines, -181 lines) Patch
M runtime/lib/integers.dart View 1 2 3 4 5 6 3 chunks +6 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 3 4 5 6 4 chunks +28 lines, -10 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 4 5 6 138 chunks +152 lines, -160 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 4 5 4 chunks +5 lines, -5 lines 0 comments Download
M runtime/vm/intrinsifier.cc View 1 2 3 4 5 3 chunks +16 lines, -2 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 5 2 chunks +6 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 3 chunks +20 lines, -0 lines 0 comments Download
M runtime/vm/object_store.h View 1 2 2 chunks +4 lines, -0 lines 0 comments Download
M runtime/vm/object_store.cc View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/symbols.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
A tests/language/vm/integer_type_propagation2_test.dart View 1 2 3 1 chunk +36 lines, -0 lines 0 comments Download
A tests/language/vm/integer_type_propagation_test.dart View 1 2 1 chunk +27 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (3 generated)
Florian Schneider
Not for landing yet. I added regression tests and a quick fix for ia32 only. ...
3 years, 8 months ago (2017-03-29 20:47:28 UTC) #2
Florian Schneider
Ready for review
3 years, 8 months ago (2017-03-30 22:09:14 UTC) #3
Vyacheslav Egorov (Google)
LGTM I think we could have made _int64 purely a CompileType without an underlying real ...
3 years, 8 months ago (2017-03-31 10:39:44 UTC) #4
Florian Schneider
https://codereview.chromium.org/2772143002/diff/100001/runtime/lib/integers.dart File runtime/lib/integers.dart (right): https://codereview.chromium.org/2772143002/diff/100001/runtime/lib/integers.dart#newcode5 runtime/lib/integers.dart:5: abstract class _int64 implements int {} On 2017/03/31 10:39:44, ...
3 years, 8 months ago (2017-03-31 16:39:31 UTC) #5
Florian Schneider
3 years, 8 months ago (2017-03-31 17:13:06 UTC) #7
Message was sent while issue was closed.
Committed patchset #7 (id:120001) manually as
e7afde47e9afc981e9609ea14770debc18479bb1 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698