[lldb/Utility] Simplify and generalize Scalar class
The class contains an enum listing all host integer types as well as some non-host types. This setup is a remnant of a time when this class was actually implemented in terms of host integer types. Now that we are using llvm::APInt, they are mostly useless and mean that each function needs to enumerate all of these cases even though it treats most of them identically. I only leave e_sint and e_uint to denote the integer signedness, but I want to remove that in a follow-up as well. Removing these cases simplifies most of these functions, with the only exception being PromoteToMaxType, which can no longer rely on a simple enum comparison to determine what needs to be promoted. This also makes the class ready to work with arbitrary integer sizes, so it does not need to be modified when someone needs to add a larger integer size. Differential Revision: https://reviews.llvm.org/D85836
Loading
Please sign in to comment