From c5add8b381e87dca0cfdb627207c8a7d8ea3127c Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Mon, 1 Sep 2025 17:46:00 -0700 Subject: [PATCH 1/2] [ADT] Deprecate a soft-deprecated APInt constructor This patch deprecates an APInt constructor that has been soft-deprecated via comments since: commit 7a16288157efc5fb85fbe3b8b4c37071da7609a6 Author: Jeffrey Yasskin Date: Mon Jul 18 21:45:40 2011 +0000 This patch updates a small number of remaining uses. --- lldb/source/Utility/RegisterValue.cpp | 8 +++++--- llvm/include/llvm/ADT/APInt.h | 1 + polly/lib/Support/GICHelper.cpp | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lldb/source/Utility/RegisterValue.cpp b/lldb/source/Utility/RegisterValue.cpp index 12c349a143c0f..8b2af4e3d4f0e 100644 --- a/lldb/source/Utility/RegisterValue.cpp +++ b/lldb/source/Utility/RegisterValue.cpp @@ -206,7 +206,7 @@ Status RegisterValue::SetValueFromData(const RegisterInfo ®_info, int128.x[0] = data2; int128.x[1] = data1; } - SetUInt128(llvm::APInt(128, 2, int128.x)); + SetUInt128(llvm::APInt(128, int128.x)); } break; case eEncodingIEEE754: @@ -596,8 +596,10 @@ llvm::APInt RegisterValue::GetAsUInt128(const llvm::APInt &fail_value, case 8: case 16: return llvm::APInt( - BITWIDTH_INT128, NUM_OF_WORDS_INT128, - (reinterpret_cast(buffer.bytes.data()))->x); + BITWIDTH_INT128, + llvm::ArrayRef( + (reinterpret_cast(buffer.bytes.data()))->x, + NUM_OF_WORDS_INT128)); } } break; } diff --git a/llvm/include/llvm/ADT/APInt.h b/llvm/include/llvm/ADT/APInt.h index 26283d2437d48..aa680efd291a9 100644 --- a/llvm/include/llvm/ADT/APInt.h +++ b/llvm/include/llvm/ADT/APInt.h @@ -154,6 +154,7 @@ class [[nodiscard]] APInt { /// Once all uses of this constructor are migrated to other constructors, /// consider marking this overload ""= delete" to prevent calls from being /// incorrectly bound to the APInt(unsigned, uint64_t, bool) constructor. + LLVM_DEPRECATED("Use other constructors of APInt", "APInt") LLVM_ABI APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]); /// Construct an APInt from a string representation. diff --git a/polly/lib/Support/GICHelper.cpp b/polly/lib/Support/GICHelper.cpp index 027e0194732f4..948bb6a9b9614 100644 --- a/polly/lib/Support/GICHelper.cpp +++ b/polly/lib/Support/GICHelper.cpp @@ -59,7 +59,7 @@ APInt polly::APIntFromVal(__isl_take isl_val *Val) { Data = (uint64_t *)malloc(NumChunks * ChunkSize); isl_val_get_abs_num_chunks(Val, ChunkSize, Data); int NumBits = CHAR_BIT * ChunkSize * NumChunks; - APInt A(NumBits, NumChunks, Data); + APInt A(NumBits, ArrayRef(Data, NumChunks)); // As isl provides only an interface to obtain data that describes the // absolute value of an isl_val, A at this point always contains a positive From b67824e97a8a9ec52272c358a104f74b15449c97 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Tue, 4 Nov 2025 06:50:27 -0800 Subject: [PATCH 2/2] Address a comment. --- llvm/include/llvm/ADT/APInt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/include/llvm/ADT/APInt.h b/llvm/include/llvm/ADT/APInt.h index aa680efd291a9..fdb3b84b73a1f 100644 --- a/llvm/include/llvm/ADT/APInt.h +++ b/llvm/include/llvm/ADT/APInt.h @@ -154,7 +154,7 @@ class [[nodiscard]] APInt { /// Once all uses of this constructor are migrated to other constructors, /// consider marking this overload ""= delete" to prevent calls from being /// incorrectly bound to the APInt(unsigned, uint64_t, bool) constructor. - LLVM_DEPRECATED("Use other constructors of APInt", "APInt") + [[deprecated("Use other constructors of APInt")]] LLVM_ABI APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]); /// Construct an APInt from a string representation.