summaryrefslogtreecommitdiffstats
path: root/compiler/dex/dataflow_iterator.h
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-06-19 14:59:05 +0100
committerVladimir Marko <vmarko@google.com>2014-06-19 17:01:02 +0100
commit622bdbe6c295b08d06dfaa8d896b9ca152aa899c (patch)
treeb4f48348ef21ebc58641ffe776ff5d975e3d0a78 /compiler/dex/dataflow_iterator.h
parent995b32cc8e94a9730d6cf663a23afc9c997c1771 (diff)
downloadart-622bdbe6c295b08d06dfaa8d896b9ca152aa899c.zip
art-622bdbe6c295b08d06dfaa8d896b9ca152aa899c.tar.gz
art-622bdbe6c295b08d06dfaa8d896b9ca152aa899c.tar.bz2
Fix topological ordering and use it for optimizations.
Use the topological sort order for ClassInitCheckElimination and NullCheckEliminationAndTypeInference. Change-Id: I315ca7f300dd11390f48aefebfe988baf91bdcf1
Diffstat (limited to 'compiler/dex/dataflow_iterator.h')
-rw-r--r--compiler/dex/dataflow_iterator.h16
1 files changed, 2 insertions, 14 deletions
diff --git a/compiler/dex/dataflow_iterator.h b/compiler/dex/dataflow_iterator.h
index 62973af..66c524f 100644
--- a/compiler/dex/dataflow_iterator.h
+++ b/compiler/dex/dataflow_iterator.h
@@ -337,16 +337,10 @@ namespace art {
* @param mir_graph The MIRGraph considered.
*/
explicit TopologicalSortIterator(MIRGraph* mir_graph)
- : DataflowIterator(mir_graph, 0, mir_graph->GetTopologicalSortOrder() != nullptr ?
- mir_graph->GetTopologicalSortOrder()->Size() : 0) {
+ : DataflowIterator(mir_graph, 0, mir_graph->GetTopologicalSortOrder()->Size()) {
// Extra setup for TopologicalSortIterator.
idx_ = start_idx_;
block_id_list_ = mir_graph->GetTopologicalSortOrder();
-
- if (mir_graph->GetTopologicalSortOrder() == nullptr) {
- /* Compute the topological order */
- mir_graph->ComputeTopologicalSortOrder();
- }
}
/**
@@ -375,16 +369,10 @@ namespace art {
* @param mir_graph The MIRGraph considered.
*/
explicit RepeatingTopologicalSortIterator(MIRGraph* mir_graph)
- : DataflowIterator(mir_graph, 0, mir_graph->GetTopologicalSortOrder() != nullptr ?
- mir_graph->GetTopologicalSortOrder()->Size() : 0) {
+ : DataflowIterator(mir_graph, 0, mir_graph->GetTopologicalSortOrder()->Size()) {
// Extra setup for RepeatingTopologicalSortIterator.
idx_ = start_idx_;
block_id_list_ = mir_graph->GetTopologicalSortOrder();
-
- if (mir_graph->GetTopologicalSortOrder() == nullptr) {
- /* Compute the topological order */
- mir_graph->ComputeTopologicalSortOrder();
- }
}
/**