Subzero: Clean up a few areas. 1. Use a reverse_range() adaptor for range-based reverse iteration through containers. 2. Remove the emitting of the commented llvm-mc command line. 3. Remove a few TODOs. 4. For commented-out declarations within a class T like this: // T(const T&) = delete; // T &operator=(const T &) = delete; Replace them with this: T(const T&) = default; T &operator=(const T &) = default; And try to keep them private where possible. 5. Make LivenessNode and TimerTreeNode into internal classes. BUG= none R=jvoung@chromium.org Review URL: https://codereview.chromium.org/830303003
diff --git a/src/IceDefs.h b/src/IceDefs.h index 8aafbfd..f5147c6 100644 --- a/src/IceDefs.h +++ b/src/IceDefs.h
@@ -29,6 +29,7 @@ #include "llvm/ADT/BitVector.h" #include "llvm/ADT/ilist.h" #include "llvm/ADT/ilist_node.h" +#include "llvm/ADT/iterator_range.h" #include "llvm/ADT/SmallBitVector.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/STLExtras.h" @@ -157,6 +158,17 @@ typedef llvm::raw_ostream Ostream; typedef llvm::raw_fd_ostream Fdstream; +// Reverse range adaptors written in terms of llvm::make_range(). +template <typename T> +llvm::iterator_range<typename T::const_reverse_iterator> +reverse_range(const T &Container) { + return llvm::make_range(Container.rbegin(), Container.rend()); +} +template <typename T> +llvm::iterator_range<typename T::reverse_iterator> reverse_range(T &Container) { + return llvm::make_range(Container.rbegin(), Container.rend()); +} + } // end of namespace Ice #endif // SUBZERO_SRC_ICEDEFS_H