Author: Nilay Vaish
Date: 2021-09-09T20:31:06Z
New Revision: e976fc61ecd9c789783129c1294e096f8b4b11b0
URL:
https://github.com/llvm/llvm-project/commit/e976fc61ecd9c789783129c1294e096f8b4b11b0
DIFF:
https://github.com/llvm/llvm-project/commit/e976fc61ecd9c789783129c1294e096f8b4b11b0.diff
LOG: A
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/104459
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand closed https://github.com/llvm/llvm-project/pull/104459
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/96731
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/95901
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -28,12 +28,24 @@
#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
+#include "clang/Support/Compiler.h"
#include "llvm/ADT/STLExtras.h"
@@ -28,12 +28,24 @@
#include "clang/Analysis/FlowSensitive/MatchSwitch.h"
#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
+#include "clang/Support/Compiler.h"
#include "llvm/ADT/STLExtras.h"
https://github.com/ymand requested changes to this pull request.
https://github.com/llvm/llvm-project/pull/108051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
modulo the requests for tests. This looks great!
https://github.com/llvm/llvm-project/pull/111006
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listin
@@ -0,0 +1,217 @@
+//===- unittests/Analysis/FlowSensitive/CachedConstAccessorsLatticeTest.cpp
==//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
@@ -0,0 +1,218 @@
+//===-- CachedConstAccessorsLattice.h ---*- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
@@ -0,0 +1,218 @@
+//===-- CachedConstAccessorsLattice.h ---*- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/111006
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/111006
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -523,6 +544,99 @@ void transferCallReturningOptional(const CallExpr *E,
setHasValue(*Loc, State.Env.makeAtomicBoolValue(), State.Env);
}
+void handleConstMemberCall(const CallExpr *CE,
+ dataflow::RecordStorageLocation *RecordLoc,
+
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/112605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/112605
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/110870
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> > What are the implications/requirements for users of DataflowAnalysis? Every
> > instance specifices it's own lattice, which is converted to/from llvm::Any.
> > Will every lattice definition require these new declarations?
>
> If you think they will be used from external from t
ymand wrote:
What are the implications/requirements for users of DataflowAnalysis? Every
instance specifices it's own lattice, which is converted to/from llvm::Any.
Will every lattice definition require these new declarations?
https://github.com/llvm/llvm-project/pull/108051
__
ymand wrote:
> @ymand, is your concern resolved?
Sorry, it isn't -- a) we still need comments with at least minimal explanation
and b) I'm not sure why the definition is now in TypeErasedDataflowAnalysis.cpp
-- is this because we lack NoopAnalysis.cpp? If so, why is
TypeErasedDataflowAnalysis
https://github.com/ymand approved this pull request.
Sorry for the delay! I missed the notification...
https://github.com/llvm/llvm-project/pull/107366
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listi
https://github.com/ymand approved this pull request.
I would suggest a brief comment explaining the choice not to filter.
https://github.com/llvm/llvm-project/pull/112457
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cg
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/115051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/113698
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/113922
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/113922
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
I discussed with other code owners -- we think our best option is to remove our
use of llvm::Any entirely. So, I think you can go ahead with the changes here
(no need for a new NoopLattice.cpp), but please add some comments explaining
what's going on (even a pointer to some explan
ymand wrote:
> idk if this was kinda the explanation you were after or not
> https://discourse.llvm.org/t/supporting-llvm-build-llvm-dylib-on-windows/58891
Indeed, thank you!
https://github.com/llvm/llvm-project/pull/108051
___
cfe-commits mailing li
https://github.com/ymand approved this pull request.
Thanks for the discussion/explanation and the comments!
https://github.com/llvm/llvm-project/pull/108051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman
@@ -281,6 +282,17 @@ ReferencedDecls getReferencedDecls(const FunctionDecl &FD)
{
Visitor.TraverseStmt(FD.getBody());
if (const auto *CtorDecl = dyn_cast(&FD))
Visitor.traverseConstructorInits(CtorDecl);
+ if (const auto *Method = dyn_cast(&FD);
ymand
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/117771
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand requested changes to this pull request.
I think the comments could be a bit stronger, but the code looks fine.
https://github.com/llvm/llvm-project/pull/117771
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lis
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/117771
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -281,6 +282,17 @@ ReferencedDecls getReferencedDecls(const FunctionDecl &FD)
{
Visitor.TraverseStmt(FD.getBody());
if (const auto *CtorDecl = dyn_cast(&FD))
Visitor.traverseConstructorInits(CtorDecl);
+ if (const auto *Method = dyn_cast(&FD);
ymand
@@ -146,6 +146,10 @@ struct ReferencedDecls {
/// Free functions and member functions which are referenced (but not
/// necessarily called).
llvm::DenseSet Functions;
+ /// Parameters of other functions, captured by reference by a lambda. This is
ymand w
@@ -146,6 +146,10 @@ struct ReferencedDecls {
/// Free functions and member functions which are referenced (but not
/// necessarily called).
llvm::DenseSet Functions;
+ /// Parameters of other functions, captured by reference by a lambda. This is
+ /// empty except when
ymand wrote:
> I am still confused why your team did not just disable this rule for test
> folder? It is normal cases that source code and test code have different
> quality metrics.
Our codebase doesn't use test folders. We have no foolproof way of
distinguishing code from test based on the
ymand wrote:
This review has been going on for longer than a month so, as one of the
reviewers and the original author of this check, I wanted to jump in and see if
we can bring it to an agreeable conclusion. I’d like to start with some
background:
* This check was introduced in 2020 with the
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/120249
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -58,6 +63,106 @@ ast_matchers::StatementMatcher
isSmartPointerLikeOperatorArrow();
ast_matchers::StatementMatcher isSmartPointerLikeValueMethodCall();
ast_matchers::StatementMatcher isSmartPointerLikeGetMethodCall();
+// Common transfer functions.
+
+/// Returns the "canon
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From db206514c03a58065e24afccd55886a012b2abcc Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
ymand wrote:
> Yes, indeed the original match happens in separate context, but all contexts
> share one `NodesMap`, which values are overriden with a consecutive match
> ('clash').
I see -- I'd missed the reuse of the MatchResult. Now that I understand the
problem, I don't think that you're s
ymand wrote:
> @ymand, could you please take a look?
Yes -- sorry, missed the notification. I'll try to review within 24h.
https://github.com/llvm/llvm-project/pull/117658
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/117858
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -143,6 +143,15 @@ const Formula &getFormula(const ValueDecl &D, const
Environment &Env) {
return cast(Env.getValue(D))->formula();
}
+const BindingDecl *findBindingDecl(const char *Name, ASTContext &ASTCtx) {
ymand wrote:
why place this parameter second
@@ -143,6 +143,15 @@ const Formula &getFormula(const ValueDecl &D, const
Environment &Env) {
return cast(Env.getValue(D))->formula();
}
+const BindingDecl *findBindingDecl(const char *Name, ASTContext &ASTCtx) {
ymand wrote:
nit: Please use StringRef.
htt
ymand wrote:
Gentle ping, since it's been a week since my last post.
https://github.com/llvm/llvm-project/pull/115051
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> > Can you expand on your concern about the clash?
>
> The clash is happening in `NodesMap`. See,
>
> 1. the matcher which is associated with `rewriteDescendants` gets "Tag0",
> 2. tags for matchers from `applyfirst` are shifted, they get "Tag1", ...
> 3. that is why `transformer:
@@ -0,0 +1,134 @@
+#include "clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h"
+
+#include "clang/AST/CanonicalType.h"
+#include "clang/AST/DeclCXX.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+#include "clang/Basic/OperatorKinds.h"
+
+namespace clang::dataflow {
+
+na
@@ -0,0 +1,63 @@
+//===-- SmartPointerAccessorCaching.h ---*- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
@@ -0,0 +1,133 @@
+#include "clang/Analysis/FlowSensitive/SmartPointerAccessorCaching.h"
+
+#include "clang/AST/CanonicalType.h"
+#include "clang/AST/DeclCXX.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+#include "clang/Basic/OperatorKinds.h"
+
+namespace clang::dataflow {
+
+na
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/120102
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ymand wrote:
> Without these changes a clash appears between a Tag, which is bound to
> enclosing match, and a Tag, which is associated with first Case of applyFirst
> in rewriteDescendands.
Can you expand on your concern about the clash? Your approach of using the
matcher ID seems like an im
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/124964
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand created
https://github.com/llvm/llvm-project/pull/120967
This PR has 2 related goals:
*Remove dependency on `llvm::Any`*. For some platforms, use of `llvm::Any`
forces users to explicitly define internal details related to `Any`. Aside from
aesthetics, this places an ob
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From 27ef09ae6f7a83fa3cf9ee98a46b02880607add8 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From 3792a385b1ecd2dd029fc6321bacac1de5d8eb46 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand updated
https://github.com/llvm/llvm-project/pull/120967
>From 2273b56b783b7923108dbb3a5857d256fc4a44ca Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Mon, 23 Dec 2024 13:42:21 +
Subject: [PATCH] Introduce virtual interface for lattices and remove
dependen
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/127001
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -577,57 +580,62 @@ void handleConstMemberCall(const CallExpr *CE,
auto &ResultLoc = State.Env.getResultObjectLocation(*CE);
copyRecord(cast(Loc), ResultLoc, State.Env);
}
-return;
+return true;
}
// Cache if the const method returns a referenc
@@ -577,57 +580,62 @@ void handleConstMemberCall(const CallExpr *CE,
auto &ResultLoc = State.Env.getResultObjectLocation(*CE);
copyRecord(cast(Loc), ResultLoc, State.Env);
}
-return;
+return true;
}
// Cache if the const method returns a referenc
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/129930
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/129930
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -551,91 +551,92 @@ void transferCallReturningOptional(const CallExpr *E,
setHasValue(*Loc, State.Env.makeAtomicBoolValue(), State.Env);
}
+// Returns true if the const accessor is handled by caching.
+// Returns false if we could not cache. We should perform default handl
@@ -551,91 +551,92 @@ void transferCallReturningOptional(const CallExpr *E,
setHasValue(*Loc, State.Env.makeAtomicBoolValue(), State.Env);
}
+// Returns true if the const accessor is handled by caching.
+// Returns false if we could not cache. We should perform default handl
@@ -551,15 +551,18 @@ void transferCallReturningOptional(const CallExpr *E,
setHasValue(*Loc, State.Env.makeAtomicBoolValue(), State.Env);
}
-void handleConstMemberCall(const CallExpr *CE,
+bool handleConstMemberCall(const CallExpr *CE,
ymand wrote:
Please
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/131055
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
601 - 668 of 668 matches
Mail list logo