[cfe-dev] How to configurate the Clang Static Analyzer to tuning its IPA?

Arthur Yoo phjy007 at gmail.com
Fri Jun 27 10:28:14 PDT 2014


Hi all,

I find that Clang Static Analyzer can support Inter-Procedural Analysis
(IPA) in one single TranslationUnit. But I was confused by its IPA's result
for my testcase (C program) with the default arguments and configuration of
Static Analyzer. For example, one function was called again in the middle
of its evaluation. And the function itself is not a recursive function.
My testcase contains three functions in one single file. And there are some
loops in two of functions. There is no any recursive function in my
testcase.

I guess the default analysis-related arguments/configuration will guarantee
that the Static Analyzer will archieve precise analysis results, in the
meanwhile it will also guarantee an appropriate memory space utilization.

However, for my testcase, I feel that the default configuration spent too
much attention on the memory aspect, so that it scarificed the integrity of
the analysis. In this way, the result of the IPA evaluation confused me. My
test machine has 32GB RAM. So for the primary tests current, I paid more
attention on the correctness of my checker than the low memory utilization.
So I began to search the arguments of Static Analyzer, which may/will limit
the scale of the evaluation. I tuned the values of analyzer_max_loop and
analyzer_inline_max_stack_depth with bigger number values. And I also set
UserMode from UMK_NotSet to UMK_Deep, and set IPAMode from IPAK_NotSet to
IPAK_Inlining. However, it seems that it doesn't work and the results still
cunfused me.

Now I'm wondering that whether there is any other argument that will
limit/modify the function's evaluation according to scale or the number of
the ExplodedNodes of the function.

What's more, are there any other arguments I can tune, which can
loose/relax the limitations of the Static Analyzer, so that it can archieve
more precise analysis results, in spite of the fact that it may
protentially lead to more memory occupation? If there are, where and what
are they?

Thanks a lot.

-- 
Best regards,
Arthur Yoo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140628/3151a88e/attachment.html>


More information about the cfe-dev mailing list