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

Issue 10828018: Add support for fixed parameters in the register allocator. (Closed)

Created:
8 years, 5 months ago by Vyacheslav Egorov (Google)
Modified:
8 years, 5 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Add support for fixed parameters in the register allocator. This remove bailout for functions with non-zero number of non-fixed parameters and increases our coverage. SpillSlot location was renamed into StackSlot location and now allows to address spill slots (positive stack index) and incoming parameters (negative stack index). Environment was reordered to match order of values on the stack (previously it was inversed). Correctly reserve spill slots in the prologue of the code. Previously register allocator was allocating spill slots, but generated code did not reserve any space for them on the stack so they might have been overwritten by calls. Fix off by one in DeoptimizationStub::GenerateCode - we were reserving one slot too many. Change --optimization-filter flag to use substring search instead of prefix comparison, this is much more useful when VM prefixes function name with a path to the file. BUG= TEST= Committed: https://code.google.com/p/dart/source/detail?r=9934

Patch Set 1 #

Total comments: 30

Patch Set 2 : address Srdjan's and Kevin's comments #

Patch Set 3 : rebase, fix off by one in deopt stub generation #

Unified diffs Side-by-side diffs Delta from patch set Stats (+271 lines, -132 lines) Patch
M runtime/vm/code_generator.cc View 1 2 1 chunk +2 lines, -3 lines 0 comments Download
M runtime/vm/flow_graph_allocator.cc View 1 7 chunks +57 lines, -11 lines 0 comments Download
M runtime/vm/flow_graph_builder.h View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 9 chunks +22 lines, -12 lines 0 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 chunk +6 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 2 5 chunks +43 lines, -25 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 2 5 chunks +43 lines, -25 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 11 chunks +36 lines, -11 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 10 chunks +29 lines, -24 lines 0 comments Download
M runtime/vm/locations.h View 3 chunks +24 lines, -10 lines 0 comments Download
M runtime/vm/locations.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M runtime/vm/scopes.cc View 1 2 1 chunk +4 lines, -5 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Vyacheslav Egorov (Google)
Please take a look.
8 years, 5 months ago (2012-07-25 19:06:27 UTC) #1
srdjan
LGTM https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc#newcode142 runtime/vm/flow_graph_allocator.cc:142: // Process incomming parameters. s/incomming/incoming/ https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc#newcode411 runtime/vm/flow_graph_allocator.cc:411: // ...
8 years, 5 months ago (2012-07-26 00:33:56 UTC) #2
Kevin Millikin (Google)
https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc#newcode148 runtime/vm/flow_graph_allocator.cc:148: kill_[0]->Add(vreg); It probably doesn't make a big difference to ...
8 years, 5 months ago (2012-07-26 09:29:08 UTC) #3
Vyacheslav Egorov (Google)
comments addressed, new version uploaded. rebasing with Kevin's change. https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://chromiumcodereview.appspot.com/10828018/diff/1/runtime/vm/flow_graph_allocator.cc#newcode142 runtime/vm/flow_graph_allocator.cc:142: ...
8 years, 5 months ago (2012-07-26 11:33:53 UTC) #4
Vyacheslav Egorov (Google)
8 years, 5 months ago (2012-07-26 13:16:23 UTC) #5
Rebased, fixed off by 1 in DeoptimizationStub::GenerateCode.

Going to land.

Powered by Google App Engine
This is Rietveld 408576698