[PATCH] D24918: [ADCE] Add code to remove dead branches

Daniel Berlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 6 22:41:20 PST 2016


dberlin added inline comments.


================
Comment at: lib/Transforms/Scalar/ADCE.cpp:601
+// reverse top-sort order
+void AggressiveDeadCodeElimination::computeReversePostOrder() {
+
----------------
I think you should just be able to  output the PO iterator on Inverse<F> into an array, no?

I would just add

```

 template <class T>
 po_iterator<T> inverse_po_begin(const T &G) { return po_iterator<Inverse<T>>::begin(G); }
 template <class T>
 po_iterator<T> inverse_po_end  (const T &G) { return po_iterator<Inverse<T>>::end(G); }

 template <class T> iterator_range<po_iterator<T>> inverse_post_order(const T &G) {
   return make_range(inverse_po_begin(G), inverse_po_end(G));
 }

```

To PostOrderIterator.h
Then you can just use a nice range loop to fill in the numbers wherever you want them.



https://reviews.llvm.org/D24918





More information about the llvm-commits mailing list