OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/flow_graph_allocator.h" | 5 #include "vm/flow_graph_allocator.h" |
6 | 6 |
7 #include "vm/bit_vector.h" | 7 #include "vm/bit_vector.h" |
8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
9 #include "vm/il_printer.h" | 9 #include "vm/il_printer.h" |
10 #include "vm/flow_graph.h" | 10 #include "vm/flow_graph.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 BitVector* kill = kill_[i]; | 161 BitVector* kill = kill_[i]; |
162 BitVector* live_in = live_in_[i]; | 162 BitVector* live_in = live_in_[i]; |
163 | 163 |
164 // Iterate backwards starting at the last instruction. | 164 // Iterate backwards starting at the last instruction. |
165 for (BackwardInstructionIterator it(block); !it.Done(); it.Advance()) { | 165 for (BackwardInstructionIterator it(block); !it.Done(); it.Advance()) { |
166 Instruction* current = it.Current(); | 166 Instruction* current = it.Current(); |
167 | 167 |
168 // Initialize location summary for instruction. | 168 // Initialize location summary for instruction. |
169 current->InitializeLocationSummary(zone(), true); // opt | 169 current->InitializeLocationSummary(zone(), true); // opt |
170 LocationSummary* locs = current->locs(); | 170 LocationSummary* locs = current->locs(); |
171 #if DEBUG | 171 #if defined(DEBUG) |
172 locs->DiscoverWritableInputs(); | 172 locs->DiscoverWritableInputs(); |
173 #endif | 173 #endif |
174 | 174 |
175 // Handle definitions. | 175 // Handle definitions. |
176 Definition* current_def = current->AsDefinition(); | 176 Definition* current_def = current->AsDefinition(); |
177 if ((current_def != NULL) && current_def->HasSSATemp()) { | 177 if ((current_def != NULL) && current_def->HasSSATemp()) { |
178 kill->Add(current_def->ssa_temp_index()); | 178 kill->Add(current_def->ssa_temp_index()); |
179 live_in->Remove(current_def->ssa_temp_index()); | 179 live_in->Remove(current_def->ssa_temp_index()); |
180 if (current_def->HasPairRepresentation()) { | 180 if (current_def->HasPairRepresentation()) { |
181 kill->Add(ToSecondPairVreg(current_def->ssa_temp_index())); | 181 kill->Add(ToSecondPairVreg(current_def->ssa_temp_index())); |
(...skipping 2789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2971 ISL_Print("-- [after ssa allocator] ir [%s] -------------\n", | 2971 ISL_Print("-- [after ssa allocator] ir [%s] -------------\n", |
2972 function.ToFullyQualifiedCString()); | 2972 function.ToFullyQualifiedCString()); |
2973 FlowGraphPrinter printer(flow_graph_, true); | 2973 FlowGraphPrinter printer(flow_graph_, true); |
2974 printer.PrintBlocks(); | 2974 printer.PrintBlocks(); |
2975 ISL_Print("----------------------------------------------\n"); | 2975 ISL_Print("----------------------------------------------\n"); |
2976 } | 2976 } |
2977 } | 2977 } |
2978 | 2978 |
2979 | 2979 |
2980 } // namespace dart | 2980 } // namespace dart |
OLD | NEW |