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

Issue 12529008: Collect type feedback for fields. (Closed)

Created:
7 years, 9 months ago by Vyacheslav Egorov (Google)
Modified:
7 years, 9 months ago
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Collect type feedback for fields. BUG= Committed: https://code.google.com/p/dart/source/detail?r=20235

Patch Set 1 #

Total comments: 29

Patch Set 2 : use WeakProperty #

Patch Set 3 : address comments #

Total comments: 10

Patch Set 4 : rewritten instruction pattern on ia32 #

Total comments: 9

Patch Set 5 : #

Patch Set 6 : address latest comments #

Patch Set 7 : ensure that not-null constraints are recomputed correctly #

Total comments: 20

Patch Set 8 : Address Srdjan's comments #

Patch Set 9 : #

Total comments: 21

Patch Set 10 : address Ivan's comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1042 lines, -85 lines) Patch
M runtime/vm/code_generator.h View 1 2 3 3 chunks +4 lines, -0 lines 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 5 6 7 2 chunks +15 lines, -1 line 0 comments Download
M runtime/vm/compiler.cc View 1 2 3 4 5 6 7 8 9 6 chunks +20 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph.h View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 2 3 4 5 6 7 8 9 1 chunk +35 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 1 chunk +14 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 3 4 5 6 7 3 chunks +20 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.h View 1 2 3 4 5 6 3 chunks +8 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 3 4 5 6 7 7 chunks +97 lines, -3 lines 0 comments Download
M runtime/vm/il_printer.cc View 3 chunks +39 lines, -1 line 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 4 5 6 7 13 chunks +126 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 4 5 6 7 4 chunks +34 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 chunk +11 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 4 5 7 chunks +187 lines, -32 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 chunk +11 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 5 7 chunks +187 lines, -32 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 5 6 7 8 9 2 chunks +46 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 6 7 8 9 4 chunks +146 lines, -0 lines 0 comments Download
M runtime/vm/parser.cc View 1 2 6 chunks +12 lines, -3 lines 0 comments Download
M runtime/vm/raw_object.h View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -1 line 0 comments Download
M runtime/vm/raw_object_snapshot.cc View 2 chunks +4 lines, -0 lines 0 comments Download

Messages

Total messages: 19 (0 generated)
Vyacheslav Egorov (Google)
Please start taking a look.
7 years, 9 months ago (2013-03-11 17:59:26 UTC) #1
Kevin Millikin (Google)
Overall, I think the big picture is the right way to do it. I have ...
7 years, 9 months ago (2013-03-12 12:14:56 UTC) #2
Vyacheslav Egorov (Google)
Switched field dependencies tracking to use WeakProperty instead of bidirectional linking.
7 years, 9 months ago (2013-03-12 13:00:27 UTC) #3
Vyacheslav Egorov (Google)
I have addressed first round of Kevin's comments. The biggest change is that GuardField for ...
7 years, 9 months ago (2013-03-12 16:54:40 UTC) #4
Kevin Millikin (Google)
Thanks. Another round of comments on the generated code. I still find the template disturbing ...
7 years, 9 months ago (2013-03-13 16:03:36 UTC) #5
Vyacheslav Egorov (Google)
I have rewritten instruction pattern on ia32 to manually generate all possibilities. (I am leaving ...
7 years, 9 months ago (2013-03-14 20:36:57 UTC) #6
Kevin Millikin (Google)
I've got a few comments, but otherwise this LGTM. Keep in mind that I have ...
7 years, 9 months ago (2013-03-15 12:17:21 UTC) #7
Vyacheslav Egorov (Google)
Comments addressed. Spaghetti are still there. https://codereview.chromium.org/12529008/diff/19001/runtime/vm/intermediate_language_ia32.cc File runtime/vm/intermediate_language_ia32.cc (right): https://codereview.chromium.org/12529008/diff/19001/runtime/vm/intermediate_language_ia32.cc#newcode1528 runtime/vm/intermediate_language_ia32.cc:1528: static void LoadValueCid(FlowGraphCompiler* ...
7 years, 9 months ago (2013-03-15 13:01:10 UTC) #8
Vyacheslav Egorov (Google)
Kevin, can you take another look please? I updated type propagator to ensure that not-nullable ...
7 years, 9 months ago (2013-03-18 17:18:06 UTC) #9
srdjan
DBC https://codereview.chromium.org/12529008/diff/27001/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/12529008/diff/27001/runtime/vm/code_generator.cc#newcode1383 runtime/vm/code_generator.cc:1383: void DeoptimizeAt(const Code& optimized_code, uword pc) { ASSERT ...
7 years, 9 months ago (2013-03-18 18:54:35 UTC) #10
Vyacheslav Egorov (Google)
Comments addressed. Please take another look. https://codereview.chromium.org/12529008/diff/27001/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/12529008/diff/27001/runtime/vm/code_generator.cc#newcode1383 runtime/vm/code_generator.cc:1383: void DeoptimizeAt(const Code& ...
7 years, 9 months ago (2013-03-18 19:41:18 UTC) #11
Ivan Posva
https://codereview.chromium.org/12529008/diff/32003/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/12529008/diff/32003/runtime/vm/code_generator.cc#newcode1747 runtime/vm/code_generator.cc:1747: field.UpdateCid(Class::Handle(value.clazz()).id()); Do you think it would be useful to ...
7 years, 9 months ago (2013-03-19 04:42:05 UTC) #12
Vyacheslav Egorov (Google)
https://codereview.chromium.org/12529008/diff/32003/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/12529008/diff/32003/runtime/vm/code_generator.cc#newcode1747 runtime/vm/code_generator.cc:1747: field.UpdateCid(Class::Handle(value.clazz()).id()); On 2013/03/19 04:42:05, Ivan Posva wrote: > Do ...
7 years, 9 months ago (2013-03-19 06:58:59 UTC) #13
Kevin Millikin (Google)
All LGTM now.
7 years, 9 months ago (2013-03-19 11:40:55 UTC) #14
srdjan
https://codereview.chromium.org/12529008/diff/32003/runtime/vm/flow_graph.h File runtime/vm/flow_graph.h (right): https://codereview.chromium.org/12529008/diff/32003/runtime/vm/flow_graph.h#newcode147 runtime/vm/flow_graph.h:147: const ZoneGrowableArray<Field*>& FieldDependencies() const; On 2013/03/19 06:58:59, Vyacheslav Egorov ...
7 years, 9 months ago (2013-03-19 14:35:19 UTC) #15
Ivan Posva
https://codereview.chromium.org/12529008/diff/32003/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/12529008/diff/32003/runtime/vm/code_generator.cc#newcode1747 runtime/vm/code_generator.cc:1747: field.UpdateCid(Class::Handle(value.clazz()).id()); On 2013/03/19 06:58:59, Vyacheslav Egorov (Google) wrote: > ...
7 years, 9 months ago (2013-03-19 15:48:51 UTC) #16
Ivan Posva
LGTM with comments about comments. -Ivan https://codereview.chromium.org/12529008/diff/32003/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/12529008/diff/32003/runtime/vm/object.cc#newcode4759 runtime/vm/object.cc:4759: if (!dependent.IsNull()) { ...
7 years, 9 months ago (2013-03-19 16:00:48 UTC) #17
Vyacheslav Egorov (Google)
More comments added. Rebasing and landing. https://codereview.chromium.org/12529008/diff/32003/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/12529008/diff/32003/runtime/vm/object.cc#newcode4759 runtime/vm/object.cc:4759: if (!dependent.IsNull()) { ...
7 years, 9 months ago (2013-03-19 19:57:50 UTC) #18
Vyacheslav Egorov (Google)
7 years, 9 months ago (2013-03-19 20:15:45 UTC) #19
Message was sent while issue was closed.
Committed patchset #10 manually as r20235 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698