| Index: src/IceDefs.h
|
| diff --git a/src/IceDefs.h b/src/IceDefs.h
|
| index 8aafbfd6c44a5502829f9fc0fd40a0d92e40ba4e..f5147c668c5afc86c99dfc8e8f576567a807db8f 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 uint32_t VerboseMask;
|
| 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
|
|
|