[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