<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>