[cfe-dev] Idea for better invoking static analysis via command line
Craig, Ben via cfe-dev
cfe-dev at lists.llvm.org
Tue Feb 2 08:49:55 PST 2016
The judgment of "how much slower is too much slower" is pretty
subjective, and depends on the project. Increasing a project's build
from 30 seconds to 5 minutes is probably too much for that project.
Increasing a project's build from 45 minutes to 55 minutes is probably
fine though.
Adding a flag to a build is also a much lower barrier to entry to get
started. There are a lot of build systems out there, and scan-build and
compilation databases only work easily with a few of those systems.
Adding a build flag is pretty easy on every build system that I've ever
worked with.
If the work is done right, then the combined compile+analyze execution
could be faster than a compile action followed by an analyze action. If
you're willing to give up "#ifndef __clang_analyzer__", then the AST
from the compile can be reused by the analyzer. Even if you aren't
willing to give up that feature, doing a compile of a file immediately
followed by an analysis of the same file is probably going to be faster
than doing all the compiles then all the analyzes due to disk caching
effects.
On 2/2/2016 10:23 AM, David Blaikie wrote:
> Another possible (not mutually exclusive) extension point to add
> static analysis into would be through the Tooling interface and
> compilation databases - this would allow just the analysis to be run,
> without making it part of a build (no one would make static analysis
> part of an interactive build, it's too slow, right? the only reason it
> was integrated into the build with scan-build was because it was the
> best way to discover the build commands - but the Tooling/Compilation
> Database system allows us to separate build discovery from tool execution)
>
> On Tue, Feb 2, 2016 at 6:19 AM, Craig, Ben via cfe-dev
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
> I'm all for this idea. There is precedent for this in other tools
> (Visual Studio's /analyze). I think it also greatly reduces the
> need for build interposition via scan-build.
>
> I would ask that you think carefully about the output format of
> the detailed analysis for -enable-analyze-pass. If people are
> using -enable-analyze-pass on most of their builds, then plist and
> html reports are likely to go unread for the most part. Consider
> making "no detailed analysis" an option for -enable-analyze-pass
> to help with these use cases.
>
>
> On 1/29/2016 9:04 PM, <Alexander G. Riccio> via cfe-dev wrote:
>> As mentioned by myself, Aaron Ballman, and Philip Reames, in a
>> reply to "Proposal: Integrate static analysis test suites", the
>> fact that static analysis generates a totally different set of
>> warnings than compilation (not a superset), is surprising to some.
>>
>> One possibility, in order to preserve the current behavior for
>> any tools that rely on this, is to add an option to clang,
>> something like "-enable-analyze-pass" that the user can specify
>> to run analysis AND compilation.
>>
>> Thoughts?
>>
>> Sincerely,
>> Alexander Riccio
>> --
>> "Change the world or go home."
>> about.me/ariccio <http://about.me/ariccio>
>>
>> <http://about.me/ariccio>
>> If left to my own devices, I will build more.
>> ⁂
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160202/e3ce5c8a/attachment.html>
More information about the cfe-dev
mailing list