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

Issue 138523004: Inline recognized List factory in the flow graph optimizer. (Closed)

Created:
6 years, 10 months ago by Florian Schneider
Modified:
6 years, 10 months ago
Reviewers:
Cutch, srdjan
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Inline recognized List factory in the flow graph optimizer. The call to the native List factory is lowered into IL instructions if the length is known to be a valid smi. This is mostly performance neutral. The acutal allocation now takes place in the array allocation stub instead of the intrinsic code (and the runtime List_allocate in case the fast case path fails). This is a preparation for enabling allocation sinking for arrays and will be extended to handle type list allocation as well. This way the allocation site is explicitly represented as a CreateArrayInstr, instead of just being a static call. Another benefit is that this allows to simplify the special handling of recognized factory calls in the optimizer once all array types are handled this way. R=johnmccutchan@google.com, srdjan@google.com Committed: https://code.google.com/p/dart/source/detail?r=32194

Patch Set 1 #

Total comments: 6

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+103 lines, -67 lines) Patch
M runtime/vm/flow_graph_builder.h View 1 chunk +26 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 2 chunks +5 lines, -30 lines 0 comments Download
M runtime/vm/flow_graph_inliner.cc View 1 chunk +1 line, -3 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 2 chunks +33 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/intermediate_language.h View 2 chunks +13 lines, -16 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 2 chunks +9 lines, -3 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 2 chunks +5 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 2 chunks +3 lines, -2 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Florian Schneider
6 years, 10 months ago (2014-01-30 17:03:43 UTC) #1
srdjan
lgtm https://codereview.chromium.org/138523004/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/138523004/diff/1/runtime/vm/flow_graph_builder.cc#newcode2177 runtime/vm/flow_graph_builder.cc:2177: Bind(new ConstantInstr(Smi::ZoneHandle(Smi::New(node->length())))); Indent 4 spaces https://codereview.chromium.org/138523004/diff/1/runtime/vm/flow_graph_optimizer.cc File runtime/vm/flow_graph_optimizer.cc ...
6 years, 10 months ago (2014-01-30 17:55:23 UTC) #2
Cutch
lgtm
6 years, 10 months ago (2014-01-30 19:07:36 UTC) #3
Florian Schneider
https://codereview.chromium.org/138523004/diff/1/runtime/vm/flow_graph_builder.cc File runtime/vm/flow_graph_builder.cc (right): https://codereview.chromium.org/138523004/diff/1/runtime/vm/flow_graph_builder.cc#newcode2177 runtime/vm/flow_graph_builder.cc:2177: Bind(new ConstantInstr(Smi::ZoneHandle(Smi::New(node->length())))); On 2014/01/30 17:55:23, srdjan wrote: > Indent ...
6 years, 10 months ago (2014-01-31 12:43:33 UTC) #4
Florian Schneider
6 years, 10 months ago (2014-01-31 13:26:58 UTC) #5
Message was sent while issue was closed.
Committed patchset #2 manually as r32194 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698