mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
a29bc1a45f
This patch allows iterating typed enum via the ADT/Sequence utility. It also changes the original design to better separate concerns: - `StrongInt` only deals with safe `intmax_t` operations, - `SafeIntIterator` presents the iterator and reverse iterator interface but only deals with safe `StrongInt` internally. - `iota_range` only deals with `SafeIntIterator` internally. This design ensures that operations are always valid. In particular, "Out of bounds" assertions fire when: - the `value_type` is not representable as an `intmax_t` - iterator operations make internal computation underflow/overflow - the internal representation cannot be converted back to `value_type` Differential Revision: https://reviews.llvm.org/D106279 |
||
---|---|---|
.. | ||
Delta.cpp | ||
Delta.h | ||
ReduceAliases.cpp | ||
ReduceAliases.h | ||
ReduceArguments.cpp | ||
ReduceArguments.h | ||
ReduceAttributes.cpp | ||
ReduceAttributes.h | ||
ReduceBasicBlocks.cpp | ||
ReduceBasicBlocks.h | ||
ReduceFunctionBodies.cpp | ||
ReduceFunctionBodies.h | ||
ReduceFunctions.cpp | ||
ReduceFunctions.h | ||
ReduceGlobalValues.cpp | ||
ReduceGlobalValues.h | ||
ReduceGlobalVarInitializers.cpp | ||
ReduceGlobalVarInitializers.h | ||
ReduceGlobalVars.cpp | ||
ReduceGlobalVars.h | ||
ReduceInstructions.cpp | ||
ReduceInstructions.h | ||
ReduceMetadata.cpp | ||
ReduceMetadata.h | ||
ReduceModuleInlineAsm.cpp | ||
ReduceModuleInlineAsm.h | ||
ReduceOperandBundles.cpp | ||
ReduceOperandBundles.h | ||
ReduceSpecialGlobals.cpp | ||
ReduceSpecialGlobals.h |