[PATCH] D117012: [clang][dataflow] Add transfer functions data members and this pointers

2022-01-11 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added a subscriber: rnkovacs. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis

[PATCH] D117012: [clang][dataflow] Add transfer functions data members and this pointers

2022-01-11 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 398907. sgatev added a comment. Add missing include. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117012/new/ https://reviews.llvm.org/D117012 Files: clang/include/clang/Analysis/FlowSensitive/DataflowAnalys

[PATCH] D117012: [clang][dataflow] Add transfer functions for data members and this pointers

2022-01-11 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 399094. sgatev marked 12 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117012/new/ https://reviews.llvm.org/D117012 Files: clang/i

[PATCH] D117012: [clang][dataflow] Add transfer functions for data members and this pointers

2022-01-11 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added a comment. Thank you both for the reviews! Comment at: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp:52 + setStorageLocation(*ParamDecl, ParamLoc); + initValueInStorageLocation(ParamLoc, ParamDecl->getType()); +} xazax.hun

[PATCH] D117012: [clang][dataflow] Add transfer functions for data members and this pointers

2022-01-11 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 399219. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117012/new/ https://reviews.llvm.org/D117012 Files: clang/include/clang/Analysis/FlowSensitive/Datafl

[PATCH] D117012: [clang][dataflow] Add transfer functions for data members and this pointers

2022-01-11 Thread Stanislav Gatev via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG99f7d55c: [clang][dataflow] Add transfer functions for data members and this pointers (authored by sgatev). Repository: rG LLVM Github Monorep

[PATCH] D117123: [clang][dataflow] Add transfer functions for initializers

2022-01-12 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added a subscriber: rnkovacs. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis

[PATCH] D117123: [clang][dataflow] Add transfer functions for initializers

2022-01-12 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked an inline comment as done. sgatev added inline comments. Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:171 + +Value *InitExprVal = Env.getValue(*InitExpr, SkipPast::None); +if (InitExprVal == nullptr) ymandel wrote: > why `None`?

[PATCH] D117123: [clang][dataflow] Add transfer functions for initializers

2022-01-12 Thread Stanislav Gatev via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. sgatev marked an inline comment as done. Closed by commit rG963f40051a42: [clang][dataflow] Add transfer functions for initializers (authored by sgatev). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION ht

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-13 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added a subscriber: rnkovacs. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-13 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked an inline comment as done. sgatev added inline comments. Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:114 +} else if (S->getCastKind() == CK_NoOp) { + auto *SubExprLoc = Env.getStorageLocation(*SubExpr, SkipPast::None); + if (SubExprLoc ==

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-13 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 399707. sgatev marked 2 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117218/new/ https://reviews.llvm.org/D117218 Files: clang/li

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-13 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 399714. sgatev marked 2 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117218/new/ https://reviews.llvm.org/D117218 Files: clang/li

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-13 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added inline comments. Comment at: clang/unittests/Analysis/FlowSensitive/TransferTest.cpp:1362 + LangStandard::lang_cxx17); +} + xazax.hun wrote: > I think this changed from 14 to 17 in the last revision. Is this intentional? Not intentional. Thanks

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-14 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 399968. sgatev marked an inline comment as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117218/new/ https://reviews.llvm.org/D117218 Files: clang/li

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-14 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added inline comments. Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:105 - assert(SubExpr != nullptr); +if (S->getCastKind() == CK_LValueToRValue) { auto *SubExprVal = Env.getValue(*SubExpr, SkipPast::Reference); ymandel wrote

[PATCH] D117218: [clang][dataflow] Add transfer functions for constructors

2022-01-14 Thread Stanislav Gatev via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG7d941d6d21e9: [clang][dataflow] Add transfer functions for constructors (authored by sgatev). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117218/new/ http

[PATCH] D117339: [clang][dataflow] Add transfer functions for bind temporary and static cast

2022-01-14 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added a subscriber: rnkovacs. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis

[PATCH] D117339: [clang][dataflow] Add transfer functions for bind temporary and static cast

2022-01-14 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked an inline comment as done. sgatev added inline comments. Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:90 void VisitDeclStmt(const DeclStmt *S) { -// FIXME: Add support for group decls, e.g: `int a, b;` -if (S->isSingleDecl()) { - if (con

[PATCH] D117339: [clang][dataflow] Add transfer functions for bind temporary and static cast

2022-01-16 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 400392. sgatev marked 2 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117339/new/ https://reviews.llvm.org/D117339 Files: clang/li

[PATCH] D117339: [clang][dataflow] Add transfer functions for bind temporary and static cast

2022-01-16 Thread Stanislav Gatev via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG37e6496c800b: [clang][dataflow] Add transfer functions for bind temporary and static cast (authored by sgatev). Repository: rG LLVM Github Monorep

[PATCH] D117493: [clang][dataflow] Replace initValueInStorageLocation with createValue

2022-01-17 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added a subscriber: rnkovacs. sgatev requested review of this revision. Herald added a project: clang. Since Environment's setValue method already does part of the work that initValueInStorageLocation does

[PATCH] D117496: [clang][dataflow] Add transfer function for addrof

2022-01-17 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added a subscriber: rnkovacs. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis

[PATCH] D115235: [clang][dataflow] Implement a basic algorithm for dataflow analysis

2021-12-07 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, NoQ, xazax.hun, gribozavr2. Herald added subscribers: rnkovacs, mgorny. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A datafl

[PATCH] D115235: [clang][dataflow] Implement a basic algorithm for dataflow analysis

2021-12-07 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 392346. sgatev added a comment. Minor changes to parameter names. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D115235/new/ https://reviews.llvm.org/D115235 Files: clang/include/clang/Analysis/FlowSensitive/D

[PATCH] D115235: [clang][dataflow] Implement a basic algorithm for dataflow analysis

2021-12-08 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 392772. sgatev marked 8 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D115235/new/ https://reviews.llvm.org/D115235 Files: clang/in

[PATCH] D115235: [clang][dataflow] Implement a basic algorithm for dataflow analysis

2021-12-08 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added a comment. Thanks everyone! Comment at: clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp:32 +TypeErasedDataflowAnalysisState computeBlockInputState( +std::vector> &BlockStates, +const CFGBlock &Block, const Environment &InitEnv, -

[PATCH] D115235: [clang][dataflow] Implement a basic algorithm for dataflow analysis

2021-12-09 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 393156. sgatev added a comment. Declare transferBlock in the header. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D115235/new/ https://reviews.llvm.org/D115235 Files: clang/include/clang/Analysis/FlowSensitiv

[PATCH] D115235: [clang][dataflow] Implement a basic algorithm for dataflow analysis

2021-12-09 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked 4 inline comments as done. sgatev added inline comments. Comment at: clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp:31 +/// states of its predecessor basic blocks. +TypeErasedDataflowAnalysisState computeBlockInputState( +std::vector> &BlockStat

[PATCH] D115740: [clang][dataflow] Add simplistic constant-propagation analysis.

2021-12-15 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added inline comments. Comment at: clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp:69 + + friend bool operator==(ConstantPropagationLattice Element1, + ConstantPropagationLattice Element2) { Should this

[PATCH] D115740: [clang][dataflow] Add simplistic constant-propagation analysis.

2021-12-15 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev accepted this revision. sgatev added inline comments. This revision is now accepted and ready to land. Comment at: clang/unittests/Analysis/FlowSensitive/SingleVarConstantPropagationTest.cpp:145 +const BoundNodes &Nodes = Results[0]; +const ASTContext &Context = g

[PATCH] D116022: [clang][dataflow] Add support for terminating virtual destructors

2021-12-20 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added subscribers: rnkovacs, mgorny. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow an

[PATCH] D116022: [clang][dataflow] Add support for terminating virtual destructors

2021-12-20 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 395393. sgatev added a comment. Remove anonymous namespace. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116022/new/ https://reviews.llvm.org/D116022 Files: clang/include/clang/Analysis/FlowSensitive/Control

[PATCH] D116022: [clang][dataflow] Add support for terminating virtual destructors

2021-12-22 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 395841. sgatev marked 2 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116022/new/ https://reviews.llvm.org/D116022 Files: clang/in

[PATCH] D116022: [clang][dataflow] Add support for terminating virtual destructors

2021-12-22 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked 3 inline comments as done. sgatev added a comment. I also agree that the current approach isn't robust. I think that a proper solution would involve patching the CFG because in some cases it seems to be incorrect. For example, the call to `qux` is incorrectly deemed to be unreacha

[PATCH] D116022: [clang][dataflow] Add support for terminating noreturn destructors

2021-12-22 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 395845. sgatev marked 3 inline comments as done. sgatev added a comment. Change commit message. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116022/new/ https://reviews.llvm.org/D116022 Files: clang/include/

[PATCH] D116022: [clang][dataflow] Add support for noreturn destructor calls

2021-12-22 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 395979. sgatev marked an inline comment as done. sgatev added a comment. Rename a test. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116022/new/ https://reviews.llvm.org/D116022 Files: clang/include/clang/An

[PATCH] D116022: [clang][dataflow] Add support for noreturn destructor calls

2021-12-22 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked an inline comment as done. sgatev added inline comments. Comment at: clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp:196 + +class VirtualDestructorTest : public ::testing::Test { +protected: gribozavr2 wrote: > DYM "Noretu

[PATCH] D116022: [clang][dataflow] Add support for noreturn destructor calls

2021-12-22 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev marked an inline comment as done. sgatev added a comment. Thanks for the reviews! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116022/new/ https://reviews.llvm.org/D116022 ___ cfe-commits mailing

[PATCH] D116022: [clang][dataflow] Add support for noreturn destructor calls

2021-12-27 Thread Stanislav Gatev via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGb5c5d8912e07: [clang][dataflow] Add support for noreturn destructor calls (authored by sgatev). Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D116368: [clang][dataflow] Add transfer function for VarDecl statements

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev created this revision. sgatev added reviewers: ymandel, xazax.hun, gribozavr2. Herald added subscribers: rnkovacs, mgorny. sgatev requested review of this revision. Herald added a project: clang. This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow an

[PATCH] D116368: [clang][dataflow] Add transfer function for VarDecl statements

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 396516. sgatev added a comment. Minor changes to names and comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116368/new/ https://reviews.llvm.org/D116368 Files: clang/include/clang/Analysis/FlowSensitiv

[PATCH] D116369: [clang][dataflow] Add parameterized map lattice.

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added a comment. It seems unnecessary to deal with AST elements in the tests for `MapLattice`. I think testing it with integer or string keys would be simpler. Given that `VarMapLattice` is just an alias, I don't think it's necessary to add dedicated tests for it. What do you think? =

[PATCH] D116368: [clang][dataflow] Add transfer function for VarDecl statements

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 396529. sgatev marked 8 inline comments as done. sgatev added a comment. Address reviewers' comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116368/new/ https://reviews.llvm.org/D116368 Files: clang/in

[PATCH] D116368: [clang][dataflow] Add transfer function for VarDecl statements

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added inline comments. Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h:56 + + /// Assigns `Loc` to `D`. + /// ymandel wrote: > The term "assignment" is overloaded. :) Maybe instead "Associates `Loc` with > `D`"? Or, exp

[PATCH] D116370: [clang][dataflow] Add multi-variable constant propagation example.

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev added inline comments. Comment at: clang/unittests/Analysis/FlowSensitive/MultiVarConstantPropagationTest.cpp:375-376 + Pair("p2", HoldsCPLattice(UnorderedElementsAre( + Pair(Var("target"), HasConstantVal(2)), +

[PATCH] D116368: [clang][dataflow] Add transfer function for VarDecl statements

2021-12-29 Thread Stanislav Gatev via Phabricator via cfe-commits
sgatev updated this revision to Diff 396537. sgatev added a comment. Convert pointers to references. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116368/new/ https://reviews.llvm.org/D116368 Files: clang/include/clang/Analysis/FlowSensitive/Dat

<    1   2   3   4