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

Issue 10900024: Fix bug in flow graph builder that caused invalid optimization. (Closed)

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

Description

Fix bug in flow graph builder that caused invalid optimization. Using type-feedback in the flow graph builder to generate optimized code violates the invariant that the initial flow graph of the non-optimized version and the optimized version of a function have to be identical. Eliminating type checks based on type feedback has to be done later. (e.g. after the flow graph optimizer and after type propagation where we specialized operation based on type feedback) BUG=dart:4797 Committed: https://code.google.com/p/dart/source/detail?r=11515

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+0 lines, -6 lines) Patch
M runtime/vm/intermediate_language.cc View 2 chunks +0 lines, -6 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Florian Schneider
8 years, 3 months ago (2012-08-29 12:31:20 UTC) #1
Vyacheslav Egorov (Google)
lgtm
8 years, 3 months ago (2012-08-29 12:32:23 UTC) #2
srdjan
8 years, 3 months ago (2012-08-29 15:19:14 UTC) #3
The problem is that we eliminate type checks too eagerly, i.e. during flow graph
building. I believe this happens only for type checks of checked mode (CC-ing
Regis). All usage of cids (ResultCids) occurs in optimization pass, AFAIK. I.e.,
the change to ResultCid is probably not necessary, but is needed for
ComputeTypes until the type elimination has been moved to a later stage.

Powered by Google App Engine
This is Rietveld 408576698