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

Issue 81333003: Do not eagerly finalize classes in CHA, instead regard unfinalized classes as ’non-existent’ an… (Closed)

Created:
7 years, 1 month ago by srdjan
Modified:
7 years, 1 month ago
Reviewers:
regis, siva, Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org, Ivan Posva
Visibility:
Public.

Description

Do not eagerly finalize classes in CHA, instead regard unfinalized classes as ’non-existent’ and only invalidate optimized code at finalization of the class. Rename FinalizePendingClasses to FinalizePendingClassInterfaces as the class finalization occurs lazily. TODO: add dependency information to deoptimize/remove only relevant optimized code. R=regis@google.com Committed: https://code.google.com/p/dart/source/detail?r=30582

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Total comments: 14

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+100 lines, -54 lines) Patch
M runtime/vm/cha.cc View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -2 lines 0 comments Download
M runtime/vm/cha_test.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/class_finalizer.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/class_finalizer.cc View 1 2 3 4 5 6 7 8 8 chunks +23 lines, -29 lines 1 comment Download
M runtime/vm/class_finalizer_test.cc View 1 2 3 4 5 6 7 8 4 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/code_descriptors_test.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/code_generator_test.cc View 1 2 3 4 5 6 7 8 3 chunks +3 lines, -3 lines 0 comments Download
M runtime/vm/compiler_test.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/dart_api_impl.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/dart_entry_test.cc View 1 2 3 4 5 6 7 8 3 chunks +3 lines, -3 lines 0 comments Download
M runtime/vm/find_code_object_test.cc View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/isolate.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/object_test.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/parser_test.cc View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/resolver_test.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
A tests/language/deopt_lazy_finalization_test.dart View 1 2 3 4 1 chunk +48 lines, -0 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
srdjan
7 years, 1 month ago (2013-11-21 20:31:08 UTC) #1
regis
LGTM https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc File runtime/vm/cha.cc (right): https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc#newcode89 runtime/vm/cha.cc:89: direct_subclass.LookupDynamicFunction(function_name) != missing parenthesis https://codereview.chromium.org/81333003/diff/60003/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): ...
7 years, 1 month ago (2013-11-21 21:48:18 UTC) #2
srdjan
https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc File runtime/vm/cha.cc (right): https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc#newcode89 runtime/vm/cha.cc:89: direct_subclass.LookupDynamicFunction(function_name) != On 2013/11/21 21:48:18, regis wrote: > missing ...
7 years, 1 month ago (2013-11-21 22:25:00 UTC) #3
Ivan Posva
https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc File runtime/vm/cha.cc (right): https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc#newcode80 runtime/vm/cha.cc:80: if (cls_direct_subclasses.IsNull()) { We should initialize this with an ...
7 years, 1 month ago (2013-11-21 23:04:09 UTC) #4
srdjan
https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc File runtime/vm/cha.cc (right): https://codereview.chromium.org/81333003/diff/60003/runtime/vm/cha.cc#newcode80 runtime/vm/cha.cc:80: if (cls_direct_subclasses.IsNull()) { On 2013/11/21 23:04:09, Ivan Posva wrote: ...
7 years, 1 month ago (2013-11-22 00:08:14 UTC) #5
srdjan
Committed patchset #9 manually as r30582 (presubmit successful).
7 years, 1 month ago (2013-11-22 17:59:42 UTC) #6
siva
7 years, 1 month ago (2013-11-22 18:09:53 UTC) #7
Message was sent while issue was closed.
DBC

https://codereview.chromium.org/81333003/diff/880001/runtime/vm/class_finaliz...
File runtime/vm/class_finalizer.cc (right):

https://codereview.chromium.org/81333003/diff/880001/runtime/vm/class_finaliz...
runtime/vm/class_finalizer.cc:110: bool ClassFinalizer::FinalizeTypeHierarchy()
{
We collect all classes in a pending classes list
(object_store->pending_classes()) and this method was to process through this
pending_classes list. By renaming this to something that does not refer to
pending classes we lose that connection.

Can this be renamed to FinalizeTypeHierarchyOfPendingClasses or something like
that.

Powered by Google App Engine
This is Rietveld 408576698