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

Issue 215363004: Support for multiple register values (Closed)

Created:
6 years, 9 months ago by Cutch
Modified:
6 years, 8 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Support for multiple register values - Adds a PairLocation type (Location is still a single word but now has two tags one for constants and one for pairs). - New representations: kPairOfTagged & kPairOfUnboxedDouble. - Register allocator uses second SSA index for Definitions that use two registers. - Fix LiveRange shape for kWritableRegister inputs. - Updated MergedMathInstr that returns a kPairOfTagged or kPairOfUnboxedDouble (depending on the merged math kind). - A new instruction (ExtractNthOutput) for extracting a single register from an instruction that has a output register pair. Open issues that need to be addressed in a follow up CL: - Adjust PhiInstr and handling of PhiInstr in the register allocator to work with output pairs (once unboxed mints are in GPRs). R=fschneider@google.com, srdjan@google.com Committed: https://code.google.com/p/dart/source/detail?r=34833

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Total comments: 6

Patch Set 8 : #

Total comments: 6

Patch Set 9 : #

Total comments: 18

Patch Set 10 : #

Patch Set 11 : #

Patch Set 12 : #

Total comments: 14

Patch Set 13 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+909 lines, -362 lines) Patch
M runtime/vm/flow_graph.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_allocator.h View 1 2 3 4 5 1 chunk +16 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_allocator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 26 chunks +343 lines, -167 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 3 4 5 6 7 8 9 10 6 chunks +39 lines, -26 lines 0 comments Download
M runtime/vm/flow_graph_type_propagator.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -8 lines 0 comments Download
M runtime/vm/il_printer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +16 lines, -3 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 4 5 6 7 8 9 10 7 chunks +67 lines, -10 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +7 lines, -5 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +58 lines, -16 lines 0 comments Download
M runtime/vm/intermediate_language_arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +11 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +72 lines, -42 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +57 lines, -17 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +71 lines, -42 lines 0 comments Download
M runtime/vm/locations.h View 1 2 3 4 5 6 7 8 9 10 11 9 chunks +109 lines, -19 lines 0 comments Download
M runtime/vm/locations.cc View 1 2 3 4 5 6 7 8 9 2 chunks +22 lines, -2 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
Cutch
PTAL
6 years, 8 months ago (2014-04-03 17:26:27 UTC) #1
Vyacheslav Egorov (Google)
overall I think we are moving in the right direction with this CL. I am ...
6 years, 8 months ago (2014-04-03 18:10:08 UTC) #2
Cutch
https://codereview.chromium.org/215363004/diff/120001/runtime/vm/flow_graph.cc File runtime/vm/flow_graph.cc (right): https://codereview.chromium.org/215363004/diff/120001/runtime/vm/flow_graph.cc#newcode121 runtime/vm/flow_graph.cc:121: defn->set_ssa_temp_index2(alloc_ssa_temp_index()); On 2014/04/03 18:10:09, Vyacheslav Egorov (Google) wrote: > ...
6 years, 8 months ago (2014-04-03 18:35:06 UTC) #3
srdjan
Early DBCs https://codereview.chromium.org/215363004/diff/140001/runtime/vm/flow_graph.h File runtime/vm/flow_graph.h (right): https://codereview.chromium.org/215363004/diff/140001/runtime/vm/flow_graph.h#newcode123 runtime/vm/flow_graph.h:123: void AssignSSAIndexes(Definition* def) { Optional: Why not ...
6 years, 8 months ago (2014-04-03 20:51:28 UTC) #4
Cutch
https://codereview.chromium.org/215363004/diff/140001/runtime/vm/flow_graph.h File runtime/vm/flow_graph.h (right): https://codereview.chromium.org/215363004/diff/140001/runtime/vm/flow_graph.h#newcode123 runtime/vm/flow_graph.h:123: void AssignSSAIndexes(Definition* def) { On 2014/04/03 20:51:29, srdjan wrote: ...
6 years, 8 months ago (2014-04-03 22:05:36 UTC) #5
Florian Schneider
https://codereview.chromium.org/215363004/diff/160001/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://codereview.chromium.org/215363004/diff/160001/runtime/vm/flow_graph_allocator.cc#newcode1131 runtime/vm/flow_graph_allocator.cc:1131: No need for extra \n. https://codereview.chromium.org/215363004/diff/160001/runtime/vm/flow_graph_allocator.cc#newcode2484 runtime/vm/flow_graph_allocator.cc:2484: LiveRange* parent ...
6 years, 8 months ago (2014-04-04 11:52:46 UTC) #6
Cutch
https://codereview.chromium.org/215363004/diff/160001/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://codereview.chromium.org/215363004/diff/160001/runtime/vm/flow_graph_allocator.cc#newcode1131 runtime/vm/flow_graph_allocator.cc:1131: On 2014/04/04 11:52:46, Florian Schneider wrote: > No need ...
6 years, 8 months ago (2014-04-04 16:34:45 UTC) #7
Cutch
I'm done all pending work and this is waiting on review. PTAL.
6 years, 8 months ago (2014-04-07 17:55:31 UTC) #8
srdjan
LGTM after fixing the printing of pairs. https://codereview.chromium.org/215363004/diff/220001/runtime/vm/flow_graph.cc File runtime/vm/flow_graph.cc (right): https://codereview.chromium.org/215363004/diff/220001/runtime/vm/flow_graph.cc#newcode119 runtime/vm/flow_graph.cc:119: AllocateSSAIndexes(defn); AllocateSSAIndexes(instr->AsDefinition()) ...
6 years, 8 months ago (2014-04-07 18:22:50 UTC) #9
Florian Schneider
LGTM. https://codereview.chromium.org/215363004/diff/220001/runtime/vm/flow_graph_allocator.cc File runtime/vm/flow_graph_allocator.cc (right): https://codereview.chromium.org/215363004/diff/220001/runtime/vm/flow_graph_allocator.cc#newcode131 runtime/vm/flow_graph_allocator.cc:131: current_def->ssa_temp_index() + kPairVirtualRegisterOffset); Maybe just add a helper ...
6 years, 8 months ago (2014-04-08 09:48:44 UTC) #10
Cutch
https://codereview.chromium.org/215363004/diff/220001/runtime/vm/flow_graph.cc File runtime/vm/flow_graph.cc (right): https://codereview.chromium.org/215363004/diff/220001/runtime/vm/flow_graph.cc#newcode119 runtime/vm/flow_graph.cc:119: AllocateSSAIndexes(defn); On 2014/04/07 18:22:50, srdjan wrote: > AllocateSSAIndexes(instr->AsDefinition()) .. ...
6 years, 8 months ago (2014-04-08 15:56:15 UTC) #11
Cutch
Will land Patch Set 13. Flow graph printing is fixed.
6 years, 8 months ago (2014-04-08 15:57:10 UTC) #12
Cutch
6 years, 8 months ago (2014-04-08 16:13:56 UTC) #13
Message was sent while issue was closed.
Committed patchset #13 manually as r34833 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698