Chromium Code Reviews| Index: runtime/vm/flow_graph_allocator.h |
| =================================================================== |
| --- runtime/vm/flow_graph_allocator.h (revision 12765) |
| +++ runtime/vm/flow_graph_allocator.h (working copy) |
| @@ -33,6 +33,8 @@ |
| LiveRange* GetLiveRange(intptr_t vreg); |
| private: |
| + void CollectRepresentations(); |
| + |
| // Eliminate unnecessary environments from the IL. |
| void EliminateEnvironmentUses(); |
| @@ -191,13 +193,14 @@ |
| MoveOperands* AddMoveAt(intptr_t pos, Location to, Location from); |
| - Location MakeRegisterLocation(intptr_t reg) { |
| - return Location::MachineRegisterLocation(register_kind_, reg); |
| + Location MakeRegisterLocation(intptr_t reg, Location::Representation rep) { |
| + return Location::MachineRegisterLocation(register_kind_, reg, rep); |
| } |
| void PrintLiveRanges(); |
| const FlowGraph& flow_graph_; |
| + BitVector* reps_; |
|
Vyacheslav Egorov (Google)
2012/09/24 14:53:42
I find name reps_ confusing. Consider:
mint_range
Florian Schneider
2012/09/26 11:51:32
Done.
|
| const GrowableArray<BlockEntryInstr*>& block_order_; |
| const GrowableArray<BlockEntryInstr*>& postorder_; |
| @@ -449,8 +452,9 @@ |
| // LiveRange represents a sequence of UseIntervals for a given SSA value. |
| class LiveRange : public ZoneAllocated { |
| public: |
| - explicit LiveRange(intptr_t vreg) |
| + explicit LiveRange(intptr_t vreg, Location::Representation rep) |
| : vreg_(vreg), |
| + representation_(rep), |
| assigned_location_(), |
| spill_slot_(), |
| uses_(NULL), |
| @@ -465,6 +469,7 @@ |
| static LiveRange* MakeTemp(intptr_t pos, Location* location_slot); |
| intptr_t vreg() const { return vreg_; } |
| + Location::Representation representation() const { return representation_; } |
| LiveRange* next_sibling() const { return next_sibling_; } |
| UsePosition* first_use() const { return uses_; } |
| void set_first_use(UsePosition* use) { uses_ = use; } |
| @@ -517,12 +522,14 @@ |
| private: |
| LiveRange(intptr_t vreg, |
| + Location::Representation rep, |
| UsePosition* uses, |
| UseInterval* first_use_interval, |
| UseInterval* last_use_interval, |
| SafepointPosition* first_safepoint, |
| LiveRange* next_sibling) |
| : vreg_(vreg), |
| + representation_(rep), |
| assigned_location_(), |
| uses_(uses), |
| first_use_interval_(first_use_interval), |
| @@ -534,6 +541,7 @@ |
| } |
| const intptr_t vreg_; |
| + Location::Representation representation_; |
| Location assigned_location_; |
| Location spill_slot_; |