Index: src/IceUtils.h |
diff --git a/src/IceUtils.h b/src/IceUtils.h |
index 35dd7f75a03b5751cc0815f5e61e57ce3bb989aa..dc3a5ff1d77ef160d2b321038f17db3ed64cdbde 100644 |
--- a/src/IceUtils.h |
+++ b/src/IceUtils.h |
@@ -53,6 +53,14 @@ public: |
return ((X > 0 && Y > 0 && (X > std::numeric_limits<T>::max() - Y)) || |
(X < 0 && Y < 0 && (X < std::numeric_limits<T>::min() - Y))); |
} |
+ |
+ static inline uint64_t OffsetToAlignment(uint64_t Pos, uint64_t Align) { |
+ assert(llvm::isPowerOf2_64(Align)); |
+ uint64_t Mod = Pos & (Align - 1); |
+ if (Mod == 0) |
+ return 0; |
+ return Align - Mod; |
+ } |
}; |
// BoundedProducerConsumerQueue is a work queue that allows multiple |