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

Issue 10905182: Refactor building of StoreStaticField and StoreLocal to manually preserve value. (Closed)

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

Description

Refactor building of StoreStaticField and StoreLocal to manually preserve value. This is first step towards eliminating manual value preservation in the write barrier's fast-path. R=fschneider@google.com BUG= Committed: https://code.google.com/p/dart/source/detail?r=12124

Patch Set 1 #

Total comments: 8

Patch Set 2 : Address Florian's comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+123 lines, -70 lines) Patch
M runtime/vm/flow_graph_builder.h View 1 4 chunks +15 lines, -5 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 25 chunks +105 lines, -64 lines 0 comments Download
M runtime/vm/parser.cc View 1 chunk +3 lines, -1 line 0 comments Download

Messages

Total messages: 3 (0 generated)
Vyacheslav Egorov (Google)
8 years, 3 months ago (2012-09-10 14:07:11 UTC) #1
Florian Schneider
LGTM with comments. https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_builder.cc#newcode676 runtime/vm/flow_graph_builder.cc:676: kResultNotNeeded)); The parameter result_not_needed is not ...
8 years, 3 months ago (2012-09-10 14:38:21 UTC) #2
Vyacheslav Egorov (Google)
8 years, 3 months ago (2012-09-10 16:00:14 UTC) #3
thank you for the review.

comments addressed, landing.

https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_...
File runtime/vm/flow_graph_builder.cc (right):

https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_...
runtime/vm/flow_graph_builder.cc:676: kResultNotNeeded));
On 2012/09/10 14:38:21, Florian Schneider wrote:
> The parameter result_not_needed is not needed when storing to expr_temp since
it
> is never captured.

Done.

https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_...
runtime/vm/flow_graph_builder.cc:1897: Value* allocated_value =
Bind(store_allocated);
On 2012/09/10 14:38:21, Florian Schneider wrote:
> Maybe rephrase this for consistency:
> 
> Value* allocated_value = Bind(BuildStoreLocal(node->allocated_object_var(),
> allocate, kResultNeeded);

Done.

https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_...
runtime/vm/flow_graph_builder.cc:2115: void
EffectGraphVisitor::VisitStoreLocal(StoreLocalNode* node,
On 2012/09/10 14:38:21, Florian Schneider wrote:
> Maybe HandleStoreLocal, otherwise it looks like a visitor function.

Done.

https://chromiumcodereview.appspot.com/10905182/diff/1/runtime/vm/flow_graph_...
runtime/vm/flow_graph_builder.cc:2205:
BuildStoreLocal(*owner()->parsed_function().expression_temp_var(),
On 2012/09/10 14:38:21, Florian Schneider wrote:
> I'd have a separate helper to avoid confusion:
> 
>  BuildStoreTempLocal(const LocalVariable& temp, Value* value)  and
BuildLoadTemp
> for storing/loading into temporary locals (they are never captured, and
> therefore don't need the result_is_needed parameter).

Done.

Powered by Google App Engine
This is Rietveld 408576698