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

Issue 10918212: Prohibit inlining of functions containing throw. Inliner does not handle abnormal control flow. (Closed)

Created:
8 years, 3 months ago by Vyacheslav Egorov (Google)
Modified:
8 years, 3 months ago
Reviewers:
srdjan
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Prohibit inlining of functions containing throw. Inliner does not handle abnormal control flow. In StrictCompareInstr::Canonicalize don't remove right_constant from the graph. It might leave the graph in the inconsistent state. R=srdjan@google.com BUG=dart:5136 Committed: https://code.google.com/p/dart/source/detail?r=12497

Patch Set 1 #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+3 lines, -3 lines) Patch
M runtime/vm/flow_graph_builder.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 chunk +0 lines, -3 lines 2 comments Download

Messages

Total messages: 3 (0 generated)
Vyacheslav Egorov (Google)
8 years, 3 months ago (2012-09-13 12:36:31 UTC) #1
srdjan
LGTM https://codereview.chromium.org/10918212/diff/1/runtime/vm/intermediate_language.cc File runtime/vm/intermediate_language.cc (left): https://codereview.chromium.org/10918212/diff/1/runtime/vm/intermediate_language.cc#oldcode1145 runtime/vm/intermediate_language.cc:1145: right_defn->RemoveFromGraph(); Why don't you remove the right hand ...
8 years, 3 months ago (2012-09-13 12:51:09 UTC) #2
Vyacheslav Egorov (Google)
8 years, 3 months ago (2012-09-13 13:15:57 UTC) #3
Thanks. Landing.

https://codereview.chromium.org/10918212/diff/1/runtime/vm/intermediate_langu...
File runtime/vm/intermediate_language.cc (left):

https://codereview.chromium.org/10918212/diff/1/runtime/vm/intermediate_langu...
runtime/vm/intermediate_language.cc:1145: right_defn->RemoveFromGraph();
On 2012/09/13 12:51:09, srdjan wrote:
> Why don't you remove the right hand side?

It can still have uses. It's not for canonicalization pass to remove it. In any
case register allocator will ignore constants that are not used.

Powered by Google App Engine
This is Rietveld 408576698