[clang] fc9369a - [LifetimeSafety] Disable canonicalization in immutable collections (#159850)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 25 09:11:59 PDT 2025
Author: Utkarsh Saxena
Date: 2025-09-25T16:11:55Z
New Revision: fc9369a70ecc9c260f3eb1af9cbc3ded24e9d4fb
URL: https://github.com/llvm/llvm-project/commit/fc9369a70ecc9c260f3eb1af9cbc3ded24e9d4fb
DIFF: https://github.com/llvm/llvm-project/commit/fc9369a70ecc9c260f3eb1af9cbc3ded24e9d4fb.diff
LOG: [LifetimeSafety] Disable canonicalization in immutable collections (#159850)
Disable canonicalization in immutable collections for lifetime analysis.
Modified the `LifetimeFactory` struct in `LifetimeSafety.cpp` to
explicitly initialize the immutable collection factories with
`canonicalize=false`. This prevents the factories from canonicalizing
their data structures, which can improve performance by avoiding
unnecessary comparisons and digest computations.
Added:
Modified:
clang/lib/Analysis/LifetimeSafety.cpp
Removed:
################################################################################
diff --git a/clang/lib/Analysis/LifetimeSafety.cpp b/clang/lib/Analysis/LifetimeSafety.cpp
index 0dd5716d93fb6..c22268a590791 100644
--- a/clang/lib/Analysis/LifetimeSafety.cpp
+++ b/clang/lib/Analysis/LifetimeSafety.cpp
@@ -966,9 +966,11 @@ using ExpiredLoanMap = llvm::ImmutableMap<LoanID, const ExpireFact *>;
/// An object to hold the factories for immutable collections, ensuring
/// that all created states share the same underlying memory management.
struct LifetimeFactory {
- OriginLoanMap::Factory OriginMapFactory;
- LoanSet::Factory LoanSetFactory;
- ExpiredLoanMap::Factory ExpiredLoanMapFactory;
+ llvm::BumpPtrAllocator Allocator;
+ OriginLoanMap::Factory OriginMapFactory{Allocator, /*canonicalize=*/false};
+ LoanSet::Factory LoanSetFactory{Allocator, /*canonicalize=*/false};
+ ExpiredLoanMap::Factory ExpiredLoanMapFactory{Allocator,
+ /*canonicalize=*/false};
};
/// Represents the dataflow lattice for loan propagation.
More information about the cfe-commits
mailing list