<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
I had a look and i don't observe any regressions here. Both this
test alone and the whole test suite in general take as much time as
on r369520 for me. Additionally, -analyzer-stats doesn't indicate
that any significant amount of time was spent in bug report
post-processing.<br>
<br>
<div class="moz-cite-prefix">On 8/23/19 11:41 AM, Kristóf Umann
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAGcXOD7qtr+ZjorW9KxkDaiykFzubWrMnS021UzLTP5FWH4jDg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">
<div>Totally possible, thanks for letting me know! There should
be plenty of room for caching, because I do calculate control
dependencies in an excess for the same CFG, and the retrieval
of a basic block from an ExplodedNode is anything but
efficient, though I honestly didnt expect a performance hit
that drastic (and havent experienced it either).
<div dir="auto"><br>
</div>
<div dir="auto">I'll roll out some fixes during the weekend.
If the problem persists after that, I'd be happy to dig
deeper.</div>
<br>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, 23 Aug 2019, 20:33
Alexander Kornienko, <<a
href="mailto:alexfh@google.com" moz-do-not-send="true">alexfh@google.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">I suspect that this patch makes analysis
much slower in certain cases. For example,
the clang/test/Analysis/pr37802.cpp test has become ~5
times slower in some configurations in our environment.
This happened somewhere between r369520 and r369679, and
your series of patches seems most suspicious :). Is it
expected? Can it be improved?</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Aug 22, 2019
at 5:07 AM Kristof Umann via cfe-commits <<a
href="mailto:cfe-commits@lists.llvm.org"
target="_blank" rel="noreferrer"
moz-do-not-send="true">cfe-commits@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">Author: szelethus<br>
Date: Wed Aug 21 20:08:48 2019<br>
New Revision: 369616<br>
<br>
URL: <a
href="http://llvm.org/viewvc/llvm-project?rev=369616&view=rev"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">http://llvm.org/viewvc/llvm-project?rev=369616&view=rev</a><br>
Log:<br>
[analyzer] Enable control dependency condition
tracking by default<br>
<br>
This patch concludes my GSoC'19 project by enabling
track-conditions by default.<br>
<br>
Differential Revision: <a
href="https://reviews.llvm.org/D66381"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">https://reviews.llvm.org/D66381</a><br>
<br>
Modified:<br>
cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def<br>
cfe/trunk/test/Analysis/analyzer-config.c<br>
cfe/trunk/test/Analysis/diagnostics/no-store-func-path-notes.m<br>
cfe/trunk/test/Analysis/return-value-guaranteed.cpp<br>
cfe/trunk/test/Analysis/track-control-dependency-conditions.cpp<br>
<br>
Modified:
cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def<br>
URL: <a
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def?rev=369616&r1=369615&r2=369616&view=diff"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def?rev=369616&r1=369615&r2=369616&view=diff</a><br>
==============================================================================<br>
---
cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
(original)<br>
+++
cfe/trunk/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
Wed Aug 21 20:08:48 2019<br>
@@ -294,7 +294,7 @@ ANALYZER_OPTION(bool,
DisplayCTUProgress<br>
ANALYZER_OPTION(bool, ShouldTrackConditions,
"track-conditions",<br>
"Whether to track conditions that are
a control dependency of "<br>
"an already tracked variable.",<br>
- false)<br>
+ true)<br>
<br>
ANALYZER_OPTION(bool, ShouldTrackConditionsDebug,
"track-conditions-debug",<br>
"Whether to place an event at each
tracked condition.",<br>
<br>
Modified: cfe/trunk/test/Analysis/analyzer-config.c<br>
URL: <a
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/analyzer-config.c?rev=369616&r1=369615&r2=369616&view=diff"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/analyzer-config.c?rev=369616&r1=369615&r2=369616&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/Analysis/analyzer-config.c
(original)<br>
+++ cfe/trunk/test/Analysis/analyzer-config.c Wed Aug
21 20:08:48 2019<br>
@@ -87,7 +87,7 @@<br>
// CHECK-NEXT: suppress-c++-stdlib = true<br>
// CHECK-NEXT: suppress-inlined-defensive-checks =
true<br>
// CHECK-NEXT: suppress-null-return-paths = true<br>
-// CHECK-NEXT: track-conditions = false<br>
+// CHECK-NEXT: track-conditions = true<br>
// CHECK-NEXT: track-conditions-debug = false<br>
// CHECK-NEXT: unix.DynamicMemoryModeling:Optimistic
= false<br>
// CHECK-NEXT: unroll-loops = false<br>
<br>
Modified:
cfe/trunk/test/Analysis/diagnostics/no-store-func-path-notes.m<br>
URL: <a
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/diagnostics/no-store-func-path-notes.m?rev=369616&r1=369615&r2=369616&view=diff"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/diagnostics/no-store-func-path-notes.m?rev=369616&r1=369615&r2=369616&view=diff</a><br>
==============================================================================<br>
---
cfe/trunk/test/Analysis/diagnostics/no-store-func-path-notes.m
(original)<br>
+++
cfe/trunk/test/Analysis/diagnostics/no-store-func-path-notes.m
Wed Aug 21 20:08:48 2019<br>
@@ -16,6 +16,7 @@ extern int coin();<br>
return 0;<br>
}<br>
return 1; // expected-note{{Returning without
writing to '*var'}}<br>
+ // expected-note@-1{{Returning the value 1, which
participates in a condition later}}<br>
}<br>
@end<br>
<br>
<br>
Modified:
cfe/trunk/test/Analysis/return-value-guaranteed.cpp<br>
URL: <a
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/return-value-guaranteed.cpp?rev=369616&r1=369615&r2=369616&view=diff"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/return-value-guaranteed.cpp?rev=369616&r1=369615&r2=369616&view=diff</a><br>
==============================================================================<br>
---
cfe/trunk/test/Analysis/return-value-guaranteed.cpp
(original)<br>
+++
cfe/trunk/test/Analysis/return-value-guaranteed.cpp
Wed Aug 21 20:08:48 2019<br>
@@ -24,6 +24,7 @@ bool parseFoo(Foo &F) {<br>
// class-note@-1 {{The value 0 is assigned to
'F.Field'}}<br>
return !MCAsmParser::Error();<br>
// class-note@-1 {{'MCAsmParser::Error' returns
true}}<br>
+ // class-note@-2 {{Returning zero, which
participates in a condition later}}<br>
}<br>
<br>
bool parseFile() {<br>
@@ -57,6 +58,7 @@ namespace test_break {<br>
struct MCAsmParser {<br>
static bool Error() {<br>
return false; // class-note
{{'MCAsmParser::Error' returns false}}<br>
+ // class-note@-1 {{Returning zero, which
participates in a condition later}}<br>
}<br>
};<br>
<br>
@@ -72,6 +74,7 @@ bool parseFoo(Foo &F) {<br>
return MCAsmParser::Error();<br>
// class-note@-1 {{Calling 'MCAsmParser::Error'}}<br>
// class-note@-2 {{Returning from
'MCAsmParser::Error'}}<br>
+ // class-note@-3 {{Returning zero, which
participates in a condition later}}<br>
}<br>
<br>
bool parseFile() {<br>
<br>
Modified:
cfe/trunk/test/Analysis/track-control-dependency-conditions.cpp<br>
URL: <a
href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/track-control-dependency-conditions.cpp?rev=369616&r1=369615&r2=369616&view=diff"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/track-control-dependency-conditions.cpp?rev=369616&r1=369615&r2=369616&view=diff</a><br>
==============================================================================<br>
---
cfe/trunk/test/Analysis/track-control-dependency-conditions.cpp
(original)<br>
+++
cfe/trunk/test/Analysis/track-control-dependency-conditions.cpp
Wed Aug 21 20:08:48 2019<br>
@@ -6,6 +6,7 @@<br>
<br>
// RUN: not %clang_analyze_cc1 -verify %s \<br>
// RUN: -analyzer-checker=core \<br>
+// RUN: -analyzer-config track-conditions=false \<br>
// RUN: -analyzer-config
track-conditions-debug=true \<br>
// RUN: 2>&1 | FileCheck %s
-check-prefix=CHECK-INVALID-DEBUG<br>
<br>
@@ -22,6 +23,7 @@<br>
<br>
// RUN: %clang_analyze_cc1 %s -verify \<br>
// RUN: -analyzer-output=text \<br>
+// RUN: -analyzer-config track-conditions=false \<br>
// RUN: -analyzer-checker=core<br>
<br>
namespace example_1 {<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org"
target="_blank" rel="noreferrer"
moz-do-not-send="true">cfe-commits@lists.llvm.org</a><br>
<a
href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits"
rel="noreferrer noreferrer" target="_blank"
moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>