Author: Kazu Hirata Date: 2025-05-06T14:14:03-07:00 New Revision: 5c3ef62f64cc379b8c5a4cf23bcaf019d398fcc4
URL: https://github.com/llvm/llvm-project/commit/5c3ef62f64cc379b8c5a4cf23bcaf019d398fcc4 DIFF: https://github.com/llvm/llvm-project/commit/5c3ef62f64cc379b8c5a4cf23bcaf019d398fcc4.diff LOG: [lldb] Use llvm::bit_ceil (NFC) (#138723) This patch replaces a local implementation of bit_ceil with llvm::bit_ceil. Technically, the local implementation evaluates to 0 on input 0, whereas llvm::bit_ceil evaluates to 1, but that doesn't matter because we have: // Can't watch zero bytes. if (user_size == 0) return {}; Added: Modified: lldb/source/Breakpoint/WatchpointAlgorithms.cpp Removed: ################################################################################ diff --git a/lldb/source/Breakpoint/WatchpointAlgorithms.cpp b/lldb/source/Breakpoint/WatchpointAlgorithms.cpp index 3caf29b04317f..d65de13db1dad 100644 --- a/lldb/source/Breakpoint/WatchpointAlgorithms.cpp +++ b/lldb/source/Breakpoint/WatchpointAlgorithms.cpp @@ -58,16 +58,6 @@ WatchpointAlgorithms::AtomizeWatchpointRequest( return resources; } -// This should be `std::bit_ceil(aligned_size)` but -// that requires C++20. -// Calculates the smallest integral power of two that is not smaller than x. -static uint64_t bit_ceil(uint64_t input) { - if (input <= 1 || llvm::popcount(input) == 1) - return input; - - return 1ULL << (64 - llvm::countl_zero(input)); -} - /// Convert a user's watchpoint request (\a user_addr and \a user_size) /// into hardware watchpoints, for a target that can watch a power-of-2 /// region of memory (1, 2, 4, 8, etc), aligned to that same power-of-2 @@ -102,7 +92,7 @@ WatchpointAlgorithms::PowerOf2Watchpoints(addr_t user_addr, size_t user_size, /// Round up \a user_size to the next power-of-2 size /// user_size == 8 -> aligned_size == 8 /// user_size == 9 -> aligned_size == 16 - aligned_size = bit_ceil(aligned_size); + aligned_size = llvm::bit_ceil(aligned_size); addr_t aligned_start = user_addr & ~(aligned_size - 1); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits