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

Issue 10702167: Fix bug in recompilation handling. (Closed)

Created:
8 years, 5 months ago by Mads Ager (google)
Modified:
8 years, 5 months ago
Reviewers:
floitsch
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Fix bug in recompilation handling. The recompilation infrastructure would set the propagated type of operations just before code generation (skipping type propagation and check insertion). This fixes that by splitting the recompilation handling into two parts. One that is used only to register recompilation candidates and one that is used to propagate the field types for recompilation candidates. The one that propagates types is only used when directly followed by type-propagation and check insertion. Remove the graph.highTypeLikelyhood flag which forced the use of speculative type assumptions for everything if there was a field with a likely type. That seems too aggressive to me. R=floitsch@google.com BUG= TEST=language/field_optimization3_test.dart Committed: https://code.google.com/p/dart/source/detail?r=9591

Patch Set 1 #

Total comments: 2

Patch Set 2 : Address comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+173 lines, -145 lines) Patch
M lib/compiler/implementation/ssa/bailout.dart View 3 chunks +1 line, -3 lines 0 comments Download
M lib/compiler/implementation/ssa/nodes.dart View 1 chunk +0 lines, -1 line 0 comments Download
M lib/compiler/implementation/ssa/optimize.dart View 1 4 chunks +142 lines, -141 lines 0 comments Download
A tests/language/field_optimization3_test.dart View 1 chunk +30 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Mads Ager (google)
8 years, 5 months ago (2012-07-12 12:46:11 UTC) #1
floitsch
LGTM. https://chromiumcodereview.appspot.com/10702167/diff/1/lib/compiler/implementation/ssa/optimize.dart File lib/compiler/implementation/ssa/optimize.dart (right): https://chromiumcodereview.appspot.com/10702167/diff/1/lib/compiler/implementation/ssa/optimize.dart#newcode1208 lib/compiler/implementation/ssa/optimize.dart:1208: if (!node.element.enclosingElement.isClass()) return; if (!node.element.isInstanceMember()) return; ?
8 years, 5 months ago (2012-07-12 13:05:55 UTC) #2
Mads Ager (google)
8 years, 5 months ago (2012-07-12 13:09:58 UTC) #3
https://chromiumcodereview.appspot.com/10702167/diff/1/lib/compiler/implement...
File lib/compiler/implementation/ssa/optimize.dart (right):

https://chromiumcodereview.appspot.com/10702167/diff/1/lib/compiler/implement...
lib/compiler/implementation/ssa/optimize.dart:1208: if
(!node.element.enclosingElement.isClass()) return;
On 2012/07/12 13:05:55, floitsch wrote:
> if (!node.element.isInstanceMember()) return; ?

That looks better, thanks. Done.

Powered by Google App Engine
This is Rietveld 408576698