szepet (Peter Szecsi)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 16 2016, 2:39 AM (66 w, 3 d)

Recent Activity

Tue, Sep 12

szepet committed rL313016: [clang-tidy] SuspiciousEnumUsageCheck bugfix.
[clang-tidy] SuspiciousEnumUsageCheck bugfix
Tue, Sep 12, 2:41 AM
szepet closed D37572: [clang-tidy] SuspiciousEnumUsageCheck bugfix by committing rL313016: [clang-tidy] SuspiciousEnumUsageCheck bugfix.
Tue, Sep 12, 2:41 AM

Mon, Sep 11

szepet updated the diff for D37572: [clang-tidy] SuspiciousEnumUsageCheck bugfix.

Updates based on the comments. Thanks for the reduced test case and the fast review!

Mon, Sep 11, 4:31 AM
szepet added a comment to D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

ping~2

Mon, Sep 11, 1:04 AM

Thu, Sep 7

szepet created D37572: [clang-tidy] SuspiciousEnumUsageCheck bugfix.
Thu, Sep 7, 8:12 AM

Wed, Sep 6

szepet added a comment to D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

ping

Wed, Sep 6, 4:14 AM

Thu, Aug 31

szepet added a comment to D37187: [Analyzer] Fix Bug 25609 - Assertion UNREACHABLE: 'Unexpected ProgramPoint' with widen-loops=true.

Thanks for the update!
It looks good to me! (Probably somebody else (most likely NoQ) will have some additional comment but I think it's great!)

Thu, Aug 31, 10:28 AM

Wed, Aug 30

szepet added a reviewer for D37187: [Analyzer] Fix Bug 25609 - Assertion UNREACHABLE: 'Unexpected ProgramPoint' with widen-loops=true: szepet.

Hello MTC,

Wed, Aug 30, 2:13 PM

Mon, Aug 28

szepet updated the summary of D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.
Mon, Aug 28, 6:27 PM
szepet updated the diff for D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

Update patch to not add a new flag but change the functionality of the old one. (If Sean still agrees.)

Mon, Aug 28, 6:22 PM
szepet committed rL311883: [StaticAnalyzer] LoopUnrolling: Keep track the maximum number of steps for each….
[StaticAnalyzer] LoopUnrolling: Keep track the maximum number of steps for each…
Mon, Aug 28, 3:52 AM
szepet closed D37181: {StaticAnalyzer} LoopUnrolling: Keep track the maximum number of steps for each loop by committing rL311883: [StaticAnalyzer] LoopUnrolling: Keep track the maximum number of steps for each….
Mon, Aug 28, 3:52 AM
szepet committed rL311881: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state.
[StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state
Mon, Aug 28, 3:36 AM
szepet closed D36962: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state (make more branches) by committing rL311881: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state.
Mon, Aug 28, 3:36 AM
szepet committed rL311880: [StaticAnalyzer] LoopUnrolling fixes.
[StaticAnalyzer] LoopUnrolling fixes
Mon, Aug 28, 3:22 AM
szepet closed D37103: [StaticAnalyzer] LoopUnrolling fixes by committing rL311880: [StaticAnalyzer] LoopUnrolling fixes.
Mon, Aug 28, 3:22 AM
szepet updated the diff for D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

Addressed comments.

Mon, Aug 28, 3:17 AM
szepet updated the diff for D37181: {StaticAnalyzer} LoopUnrolling: Keep track the maximum number of steps for each loop.

Updated to use static int.

Mon, Aug 28, 2:57 AM

Sun, Aug 27

szepet added reviewers for D37187: [Analyzer] Fix Bug 25609 - Assertion UNREACHABLE: 'Unexpected ProgramPoint' with widen-loops=true: NoQ, dcoughlin, zaks.anna.
Sun, Aug 27, 8:54 PM
szepet updated the diff for D37103: [StaticAnalyzer] LoopUnrolling fixes.

Update based on comments.

Sun, Aug 27, 6:43 AM

Sat, Aug 26

szepet created D37181: {StaticAnalyzer} LoopUnrolling: Keep track the maximum number of steps for each loop.
Sat, Aug 26, 8:10 AM
szepet updated subscribers of D37103: [StaticAnalyzer] LoopUnrolling fixes.
Sat, Aug 26, 6:57 AM
szepet updated subscribers of D36962: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state (make more branches).
Sat, Aug 26, 6:57 AM

Fri, Aug 25

szepet updated the diff for D37103: [StaticAnalyzer] LoopUnrolling fixes.

Test added.

Fri, Aug 25, 10:32 AM

Aug 25 2017

szepet added inline comments to D36962: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state (make more branches).
Aug 25 2017, 10:24 AM
szepet updated the diff for D36962: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state (make more branches).

Testfiles and function updated.

Aug 25 2017, 10:23 AM

Aug 24 2017

szepet updated the summary of D37108: [StaticAnalyzer] LoopWidening: Adding replayWithWidening in case of maxBlockVisitOnPath exceeded.
Aug 24 2017, 7:17 AM
szepet updated the diff for D37108: [StaticAnalyzer] LoopWidening: Adding replayWithWidening in case of maxBlockVisitOnPath exceeded.

Unnecessary comment removed.

Aug 24 2017, 7:07 AM
szepet created D37108: [StaticAnalyzer] LoopWidening: Adding replayWithWidening in case of maxBlockVisitOnPath exceeded.
Aug 24 2017, 7:05 AM
szepet updated the diff for D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

Format test file.

Aug 24 2017, 6:57 AM
szepet updated the diff for D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

Added a more general approach for collecting changed variables.

Aug 24 2017, 6:15 AM
szepet added a comment to D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

Nice! Thanks again for working on this.

Personally I would prefer modifying or replacing widen-loops, so we don't end up with two different approaches (and options) at the same time. Certainly that should be the end goal, but I think it might be worth doing now.

At a glance I would say that the behavior difference when there are no pointers is:

widen-loopsInvalidate everything
widen-loops-conservativeOnly invalidate modified variables

And when there are pointers the difference is:

widen-loopsInvalidate everything
widen-loops-conservativeInvalidate nothing

As far as I can tell widen-loops-conservative is better (in every sense) in the no pointer case. If we can agree on what to do when there are pointers (Invalidate everything or nothing), then we would only need one option. I would guess we want to invalidate nothing, which will probably give less false positives, rather than everything which probably gives more coverage.

Aug 24 2017, 4:36 AM
szepet updated the summary of D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.
Aug 24 2017, 4:26 AM
szepet created D37103: [StaticAnalyzer] LoopUnrolling fixes.
Aug 24 2017, 4:02 AM

Aug 21 2017

szepet committed rL311346: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll….
[StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll…
Aug 21 2017, 9:35 AM
szepet closed D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops by committing rL311346: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll….
Aug 21 2017, 9:35 AM
szepet committed rL311344: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.
[StaticAnalyzer] Handle LoopExit CFGElement in the analyzer
Aug 21 2017, 9:11 AM
szepet closed D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer by committing rL311344: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.
Aug 21 2017, 9:11 AM
szepet added reviewers for D36962: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state (make more branches): NoQ, zaks.anna, dcoughlin.
Aug 21 2017, 8:21 AM
szepet created D36962: [StaticAnalyzer] LoopUnrolling: Excluding loops which splits the state (make more branches).
Aug 21 2017, 8:20 AM

Aug 19 2017

szepet committed rL311235: [CFG] Add LoopExit information to CFG.
[CFG] Add LoopExit information to CFG
Aug 19 2017, 4:20 AM
szepet closed D35668: [CFG] Add LoopExit information to CFG by committing rL311235: [CFG] Add LoopExit information to CFG.
Aug 19 2017, 4:20 AM
szepet committed rL311234: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped….
[StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped…
Aug 19 2017, 3:25 AM
szepet closed D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop by committing rL311234: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped….
Aug 19 2017, 3:25 AM

Aug 14 2017

szepet added a comment to D34812: [StaticAnalyzer] LoopUnrolling: Handling conditions with known value variables.
In D34812#822645, @NoQ wrote:

Am i understanding correctly that this patch is waiting to be rebased on top of D35684?

Aug 14 2017, 9:43 AM
szepet updated the diff for D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.

Test cases added.

Aug 14 2017, 9:35 AM
szepet added inline comments to D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.
Aug 14 2017, 9:35 AM
szepet created D36690: [StaticAnalyzer] LoopWidening: Invalidate only the possibly changed regions.
Aug 14 2017, 9:15 AM
szepet retitled D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops from [StaticAnalyzer] LoopUnrolling: Change the maxVisitOnPath dynamically in order to unroll loops to [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops.
Aug 14 2017, 8:50 AM
szepet updated the diff for D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops.
  • Descriptions updated.
  • The structure of LoopStack made more clear and recursion bug fixed by storing LocationContext.
  • other updates and TODOs added based on comments.
Aug 14 2017, 8:49 AM
szepet added inline comments to D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.
Aug 14 2017, 8:44 AM
szepet updated the diff for D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.

Updates based on comments.

Aug 14 2017, 8:40 AM
szepet updated the diff for D35668: [CFG] Add LoopExit information to CFG.

Updates based on comments.

Aug 14 2017, 8:35 AM

Jul 27 2017

szepet added inline comments to D35668: [CFG] Add LoopExit information to CFG.
Jul 27 2017, 6:57 PM
szepet updated the diff for D35668: [CFG] Add LoopExit information to CFG.

Test file re-added.
CFGElement::LoopExit and LifetimeEnds separated into their own caseStmt.

Jul 27 2017, 6:55 PM
szepet updated the diff for D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Requested changes made.
Description updated.

Jul 27 2017, 6:11 PM
szepet updated the diff for D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Good idea, thanks!
Using matchers to identify possible escape stmts.
Test cases updated.

Jul 27 2017, 3:51 AM

Jul 26 2017

szepet updated the diff for D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops.

Update to fit to the trunk.
All tests passed. Only marking loops as unrolled (1) and not unrolled (0). Keep track of 2 stack in the ProgramState (1 for the loopstmt, 1 for the mark if its unrolled or not).

Jul 26 2017, 11:51 AM
szepet updated the diff for D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.

Accidentally left debug print removed.

Jul 26 2017, 9:46 AM
szepet updated the diff for D35668: [CFG] Add LoopExit information to CFG.

Wrong diff updated last time, fixed it.

Jul 26 2017, 9:40 AM
szepet updated the diff for D35668: [CFG] Add LoopExit information to CFG.

Accidentally left debug print removed.

Jul 26 2017, 9:40 AM
szepet updated the diff for D35668: [CFG] Add LoopExit information to CFG.

Updated test cases to fit on trunk.

Jul 26 2017, 9:05 AM
szepet added a comment to D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.

Because I was not sure about the implementation detail of that. I dont want to write duplicated code so I tried to come up with a solution that the parameter of the matchers could be llvm::PointerUnion<const Decl *, const char *>. So I could define an equalsNode function which seems something like this: static internal::Matcher<Decl> equalsNode(llvm::PointerUnion<const Decl *, const char *> PU){..} and returns the suitable matcher and this could be used by the other matchers. However, PointerUnion does not let me to store char*. (This triggers the following assert in /home/Project/gsoc/llvm/include/llvm/ADT/PointerIntPair.h :
static_assert(IntBits <= PtrTraits::NumLowBitsAvailable, ,"PointerIntPair with integer size too large for pointer");)

Jul 26 2017, 6:22 AM
szepet closed D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

So the fixes seem to work. The problem was the line 'StackFrame = StackFrame->getParent()->getCurrentStackFrame();' since I havent checked if the parent of the StackFrame is nullptr. (It is quite interesting that it just not crashed on my computer.)

Jul 26 2017, 3:19 AM
szepet added 3 commit(s) for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option : rL309061: [StaticAnalyzer] LoopUnrolling - Attempt #2 to fix a crash in r309006., rL309036: [StaticAnalyzer] LoopUnrolling - Attempt to fix a crash in r309006., rL309006: [StaticAnalyzer] Completely unrolling specific loops with known bound option.
Jul 26 2017, 12:53 AM
szepet added an edge to rL309036: [StaticAnalyzer] LoopUnrolling - Attempt to fix a crash in r309006.: D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 26 2017, 12:53 AM
szepet added an edge to rL309061: [StaticAnalyzer] LoopUnrolling - Attempt #2 to fix a crash in r309006.: D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 26 2017, 12:53 AM
szepet added an edge to rL309006: [StaticAnalyzer] Completely unrolling specific loops with known bound option: D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 26 2017, 12:53 AM
szepet added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Try fixing this invalid read and the buildbots (and my builds :) ) should be working again.

Jul 26 2017, 12:07 AM

Jul 25 2017

szepet committed rL309061: [StaticAnalyzer] LoopUnrolling - Attempt #2 to fix a crash in r309006..
[StaticAnalyzer] LoopUnrolling - Attempt #2 to fix a crash in r309006.
Jul 25 2017, 4:50 PM
szepet committed rL309036: [StaticAnalyzer] LoopUnrolling - Attempt to fix a crash in r309006..
[StaticAnalyzer] LoopUnrolling - Attempt to fix a crash in r309006.
Jul 25 2017, 2:55 PM
szepet committed rL309006: [StaticAnalyzer] Completely unrolling specific loops with known bound option.
[StaticAnalyzer] Completely unrolling specific loops with known bound option
Jul 25 2017, 12:24 PM
szepet added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
In D34260#819721, @NoQ wrote:

... and add the extra run-line that'd show you the backtrace. We made changes, so the issue might have been wiped out accidentally (or maybe you're actually right!), and if it wasn't, at least we'd have the backtrace for the crash.

Jul 25 2017, 3:04 AM

Jul 24 2017

szepet updated the diff for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Accidentally left typo removed.
OK so I am not sure but am I allowed to commit it again? I mean I made some notable changes. Not on the functionality of the feature but the stored data.
So should i wait for a quick review or could I commit it right now? (It is something that would be useful to know for future commits too.)

Jul 24 2017, 3:21 PM

Jul 20 2017

szepet removed an edge from rL308558: This feature allows the analyzer to consider loops to completely unroll. New: D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 20 2017, 5:15 PM
szepet removed 1 commit(s) for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option : rL308558: This feature allows the analyzer to consider loops to completely unroll. New.
Jul 20 2017, 5:15 PM
szepet updated the diff for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

Removed REQUIRE ASSERT from test file.

Jul 20 2017, 5:08 PM
szepet updated the diff for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

I suspect that the usage of the CFGStmtMap* caused the undefined behaviour since its lifetime was depending on its LocationContext.
In this version the isUnrolledLoopBlock creates the CFGStmtMap based on the CFG of the function which contains the unrolled loop. So the State stores FunctionDecl* instead of CFGStmtMap*.

Jul 20 2017, 4:56 PM
szepet updated the diff for D35668: [CFG] Add LoopExit information to CFG.

Adding new block when the loop successor is the ExitBlock.
Test cases updated.

Jul 20 2017, 2:25 PM
szepet removed reviewers for D35687: [StaticAnalyzer] Skip simulating branches where for-loops take 0 unrolled step: whisperity, baloghadamsoftware.
Jul 20 2017, 8:29 AM
szepet created D35687: [StaticAnalyzer] Skip simulating branches where for-loops take 0 unrolled step.
Jul 20 2017, 8:29 AM
szepet added a dependency for D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop: D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 20 2017, 8:12 AM
szepet added a dependent revision for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option : D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.
Jul 20 2017, 8:12 AM
szepet added a dependent revision for D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer: D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops.
Jul 20 2017, 8:08 AM
szepet added a dependency for D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops: D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.
Jul 20 2017, 8:08 AM
szepet added a dependent revision for D35668: [CFG] Add LoopExit information to CFG: D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.
Jul 20 2017, 8:07 AM
szepet added a dependency for D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer: D35668: [CFG] Add LoopExit information to CFG.
Jul 20 2017, 8:07 AM
szepet reopened D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 20 2017, 8:02 AM
szepet added a comment to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
In D34260#814856, @NoQ wrote:

The new tests look great, thanks. I think it's time to land :) You do already have commit access, don't you?

Jul 20 2017, 8:02 AM
szepet created D35684: [StaticAnalyzer] LoopUnrolling: Track a LoopStack in order to completely unroll specific loops.
Jul 20 2017, 7:57 AM
szepet created D35670: [StaticAnalyzer] Handle LoopExit CFGElement in the analyzer.
Jul 20 2017, 2:57 AM
szepet created D35668: [CFG] Add LoopExit information to CFG.
Jul 20 2017, 2:34 AM
szepet committed rL308592: Revert "[StaticAnalyzer] Completely unrolling specific loops with known bound….
Revert "[StaticAnalyzer] Completely unrolling specific loops with known bound…
Jul 20 2017, 12:36 AM

Jul 19 2017

szepet created D35657: [StaticAnalyzer] LoopUnrolling: Exclude cases where the counter is escaped before the loop.
Jul 19 2017, 6:03 PM
szepet committed rL308561: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
[StaticAnalyzer] Completely unrolling specific loops with known bound option
Jul 19 2017, 5:06 PM
szepet committed rL308558: This feature allows the analyzer to consider loops to completely unroll. New.
This feature allows the analyzer to consider loops to completely unroll. New
Jul 19 2017, 4:50 PM
szepet closed D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option by committing rL308558: This feature allows the analyzer to consider loops to completely unroll. New.
Jul 19 2017, 4:50 PM
szepet updated the diff for D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .

updated the test files

Jul 19 2017, 6:14 AM

Jul 13 2017

szepet added inline comments to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 13 2017, 11:51 AM
szepet added inline comments to D34260: [StaticAnalyzer] Completely unrolling specific loops with known bound option .
Jul 13 2017, 11:29 AM