[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-25 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ updated this revision to Diff 148684. NoQ added a comment. Add an explicit brute-force protection against re-entering `simplifySVal()`. Remove the threshold completely. https://reviews.llvm.org/D47155 Files: include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-25 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ added a comment. I only essentially did one optimization - introduce a short path that returns the original value if visiting its sub-values changed nothing, which is a relatively common case. The reason it works though is that `evalBinOp()` will be called later to combine the sub-values,

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-25 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ updated this revision to Diff 148681. NoQ added a comment. Optimize `simplifySVal()` instead of reducing the threshold. I'll address the memoization separately. https://reviews.llvm.org/D47155 Files: include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-23 Thread Balogh , Ádám via Phabricator via cfe-commits
baloghadamsoftware added a comment. Hello! Thank you for addressing this problem. Are these kinds of symbols common in real code? For me it seems very artificial. However, I agree with George, it would be better to have this value as an analyzer option with a default value (of 20).

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-21 Thread George Karpenkov via Phabricator via cfe-commits
george.karpenkov added a comment. Also we should make sure that all recursive transformations on expressions represented as DAGs should be memoized. Repository: rC Clang https://reviews.llvm.org/D47155 ___ cfe-commits mailing list

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-21 Thread George Karpenkov via Phabricator via cfe-commits
george.karpenkov added a comment. @NoQ I'm really wary of magic numbers. - We should expose it through an analyzer-config flag. We already do so for the budget. - We should probably have both positive and negative tests. What scenarios _stop_ working after the threshold is decreased? [point 1

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-21 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ added a reviewer: mikhail.ramalho. NoQ added a subscriber: mikhail.ramalho. NoQ added a comment. @mikhail.ramalho Does it solve your problems with ffmpeg as well? :) Repository: rC Clang https://reviews.llvm.org/D47155 ___ cfe-commits

[PATCH] D47155: [analyzer] Reduce simplifySVal complexity threshold further.

2018-05-21 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ created this revision. NoQ added reviewers: dcoughlin, xazax.hun, a.sidorin, george.karpenkov, szepet, rnkovacs. Herald added subscribers: cfe-commits, baloghadamsoftware. Reported by Mikael Holmén on http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20180416/225349.html - a