[clang] [clang][LifetimeSafety] Split live origins into persistent and block-local (PR #213543)

Utkarsh Saxena via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 5 05:01:39 PDT 2026


================
@@ -401,6 +410,7 @@ class FactManager {
   /// Facts for each CFG block, indexed by block ID.
   llvm::SmallVector<llvm::SmallVector<const Fact *>> BlockToFacts;
   llvm::BumpPtrAllocator FactAllocator;
+  std::optional<llvm::BitVector> PersistentOrigins;
----------------
usx95 wrote:

Since `LoanPropagation` and `LiveOrigins` are not optional analyses, I think we can
- remove the optional here. 
- construct this unconditionally in `FactManager::computePersistentOrigins(const CFG&)`
- make `FactManager::getPersistentOrigins()` simply a getter instead of current getOrCreate semantics.

https://github.com/llvm/llvm-project/pull/213543


More information about the cfe-commits mailing list