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

Issue 24096018: Fix bug in field type tracking and polymorphic inlining. (Closed)

Created:
7 years, 3 months ago by Florian Schneider
Modified:
7 years, 3 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fix bug in field type tracking and polymorphic inlining. When inlining implicit getters via the polymorphic inliner (and not through the flow graph optimizer) the fields loaded must be added to the list of guarded fields that trigger deoptimization when a store violated the field type guard. Also, this CL avoids adding fields to the list from inlining candidates that do not get inlined after all. Previously, the optimizer pass on the callee graph would add guarded fields even if the final graph does not get inlined. TEST=tests/language/vm/optimized_guarded_field_test.dart R=kmillikin@google.com Committed: https://code.google.com/p/dart/source/detail?r=27655

Patch Set 1 #

Total comments: 2

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+97 lines, -36 lines) Patch
M runtime/vm/compiler.cc View 1 4 chunks +4 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph.h View 2 chunks +5 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/flow_graph_builder.h View 3 chunks +8 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 4 chunks +27 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_inliner.h View 1 2 chunks +1 line, -4 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 7 chunks +13 lines, -7 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 2 chunks +2 lines, -7 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 2 chunks +1 line, -15 lines 0 comments Download
A tests/language/vm/optimized_guarded_field_test.dart View 1 chunk +35 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Florian Schneider
Instead of only passing the list of guarded fields to the FlowGraphOptimizer, I pass it ...
7 years, 3 months ago (2013-09-18 12:49:55 UTC) #1
Kevin Millikin (Google)
https://codereview.chromium.org/24096018/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/24096018/diff/1/runtime/vm/flow_graph_builder.cc#newcode3058 runtime/vm/flow_graph_builder.cc:3058: if (owner()->exit_collector() != NULL) { Won't this register too ...
7 years, 3 months ago (2013-09-18 13:03:59 UTC) #2
Florian Schneider
https://codereview.chromium.org/24096018/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/24096018/diff/1/runtime/vm/flow_graph_builder.cc#newcode3058 runtime/vm/flow_graph_builder.cc:3058: if (owner()->exit_collector() != NULL) { On 2013/09/18 13:03:59, kmillikin ...
7 years, 3 months ago (2013-09-18 13:32:37 UTC) #3
Florian Schneider
Uploaded new patch. Please take a look.
7 years, 3 months ago (2013-09-19 10:45:33 UTC) #4
Kevin Millikin (Google)
lgtm
7 years, 3 months ago (2013-09-19 10:52:38 UTC) #5
Florian Schneider
7 years, 3 months ago (2013-09-19 11:21:54 UTC) #6
Message was sent while issue was closed.
Committed patchset #2 manually as r27655 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698