diff options
author | Vladimir Marko <vmarko@google.com> | 2014-06-19 14:59:05 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2014-06-19 17:01:02 +0100 |
commit | 622bdbe6c295b08d06dfaa8d896b9ca152aa899c (patch) | |
tree | b4f48348ef21ebc58641ffe776ff5d975e3d0a78 /compiler/dex/dataflow_iterator.h | |
parent | 995b32cc8e94a9730d6cf663a23afc9c997c1771 (diff) | |
download | art-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.h | 16 |
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(); - } } /** |