[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-29 Thread Marco Elver via cfe-commits
@@ -1012,6 +1030,107 @@ void SExprBuilder::exitCFG(const CFGBlock *Last) { IncompleteArgs.clear(); } +bool SExprBuilder::isVariableReassigned(const VarDecl *VD) { + // Note: The search is performed lazily per-variable and result is cached. An + // alternative would have be

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-29 Thread Marco Elver via cfe-commits
@@ -241,7 +242,21 @@ CapabilityExpr SExprBuilder::translateAttrExpr(const Expr *AttrExp, return CapabilityExpr(E, AttrExp->getType(), Neg); } -til::LiteralPtr *SExprBuilder::createVariable(const VarDecl *VD) { +til::SExpr *SExprBuilder::translateVarDecl(const VarDecl *VD, +

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-27 Thread Aaron Puchert via cfe-commits
@@ -241,7 +242,21 @@ CapabilityExpr SExprBuilder::translateAttrExpr(const Expr *AttrExp, return CapabilityExpr(E, AttrExp->getType(), Neg); } -til::LiteralPtr *SExprBuilder::createVariable(const VarDecl *VD) { +til::SExpr *SExprBuilder::translateVarDecl(const VarDecl *VD, +

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-27 Thread Aaron Puchert via cfe-commits
https://github.com/aaronpuchert commented: Sorry for the delay, but I still need to wrap my head around this. For now just some very high-level comments. https://github.com/llvm/llvm-project/pull/142955 ___ cfe-commits mailing list cfe-commits@lists.l

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-27 Thread Aaron Puchert via cfe-commits
@@ -1012,6 +1030,107 @@ void SExprBuilder::exitCFG(const CFGBlock *Last) { IncompleteArgs.clear(); } +bool SExprBuilder::isVariableReassigned(const VarDecl *VD) { + // Note: The search is performed lazily per-variable and result is cached. An + // alternative would have be

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-27 Thread Aaron Puchert via cfe-commits
https://github.com/aaronpuchert edited https://github.com/llvm/llvm-project/pull/142955 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-04 Thread Marco Elver via cfe-commits
melver wrote: Some more self-review, and fixes: - Rename createVariable() -> translateVarDecl() for clarify. - Reintroduce createThisPlaceholder() for clarify. - Handle escaping aliases through pass by-non-const-ref (or pointer), and add more tests. https://github.com/llvm/llvm-project/pull/14

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-04 Thread Marco Elver via cfe-commits
https://github.com/melver updated https://github.com/llvm/llvm-project/pull/142955 >From ff8f6e28e3adca1877ff2d16292aa8e23b7bfb9c Mon Sep 17 00:00:00 2001 From: Marco Elver Date: Wed, 21 May 2025 23:49:48 +0200 Subject: [PATCH] Thread Safety Analysis: Very basic capability alias-analysis Add a

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-07-04 Thread Marco Elver via cfe-commits
https://github.com/melver updated https://github.com/llvm/llvm-project/pull/142955 >From 0964bd446b730fd7c832bc8e3645320d3777627d Mon Sep 17 00:00:00 2001 From: Marco Elver Date: Wed, 21 May 2025 23:49:48 +0200 Subject: [PATCH] Thread Safety Analysis: Very basic capability alias-analysis Add a

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-23 Thread Marco Elver via cfe-commits
melver wrote: Gentle ping. https://github.com/llvm/llvm-project/pull/142955 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-17 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang @llvm/pr-subscribers-clang-analysis Author: Marco Elver (melver) Changes Add a simple form of alias analysis for capabilities by substituting local pointer variables with their initializers if they are `const` or never reassigned. For example, t

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-17 Thread Marco Elver via cfe-commits
melver wrote: Cleaned it up some more. https://github.com/llvm/llvm-project/pull/142955 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-17 Thread Marco Elver via cfe-commits
https://github.com/melver ready_for_review https://github.com/llvm/llvm-project/pull/142955 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-17 Thread Marco Elver via cfe-commits
https://github.com/melver updated https://github.com/llvm/llvm-project/pull/142955 >From 608c4f657e2bcc0591e2fc32606a6738445cade6 Mon Sep 17 00:00:00 2001 From: Marco Elver Date: Wed, 21 May 2025 23:49:48 +0200 Subject: [PATCH] Thread Safety Analysis: Very basic capability alias-analysis Add a

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-17 Thread Marco Elver via cfe-commits
https://github.com/melver updated https://github.com/llvm/llvm-project/pull/142955 >From c2dcde6db1d853bc4b30e8c5daf6165f7b45c6c6 Mon Sep 17 00:00:00 2001 From: Marco Elver Date: Wed, 21 May 2025 23:49:48 +0200 Subject: [PATCH] Thread Safety Analysis: Very basic capability alias-analysis Add a

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-05 Thread Marco Elver via cfe-commits
https://github.com/melver created https://github.com/llvm/llvm-project/pull/142955 Add a simple form of alias analysis for capabilities by substituting local pointer variables with their initializers if they are `const` or never reassigned. For example, the analysis will no longer generate fa

[clang] Thread Safety Analysis: Very basic capability alias-analysis (PR #142955)

2025-06-05 Thread Marco Elver via cfe-commits
melver wrote: @aaronpuchert - RFC regarding basic capability alias analysis. For the bare minimum this would work, and likely covers 90% of the cases I worry about. I believe later enhancements could be built on top. There might be something I'm missing though. Kindly take a look. Many thanks!