[cfe-dev] Adding more analysis algorithms to Clang?

Guoping Long longguoping at gmail.com
Fri Oct 21 10:25:16 PDT 2011


Hi, Ted

  TopologicallySortedCFG implements a post ordering of all CFG nodes. Maybe
renaming it into POSortedCFG is better. Similarly, some algorithms may need
something like pre-ordered CFG. I believe more analysis algorithms may need
either of these. It may be nice to have such a class as an basic
functionality in the infrastructure. Analysis algorithms will just *use*
this basic functionality, rather than implement/copy-paste such classes in a
somewhat ad-hoc way.

----
Guoping

2011/10/21 Ted Kremenek <kremenek at apple.com>

> Hi Guoping,
>
> This looks great to me.  My main concern is that we are
> copy-pasting TopologicallySortedCFG and CFGBlockSet yet again.  This is a
> very bad trend.  Before this patch goes in, I'd like to see that common code
> refactored.  I'll look into fixing that today.
>
> Cheers,
> Ted
>
> On Oct 20, 2011, at 11:57 AM, Guoping Long wrote:
>
> Hi
>
>    Thanks Anna. Thanks for all who help point issues in my code!
>
>     The FileCheck logic has been added. Now I believe the code is at least
> in a reasonable shape. Attached is the revised patch.  Please let me know if
> there are additional issues. I shall fix them.
>
> ----
> Guoping
>
> 2011/10/18 Anna Zaks <ganna at apple.com>
>
>> Hi Guoping,
>>
>> To automate testing, you should check the expected output of the
>> dominators analysis checker with FileCheck. Inside the test, you specify the
>> command which should be applied on it as well as the expected output. It
>> will get tested when you run the following from the clang build directory
>> (see the Testing section on http://clang.llvm.org/hacking.html):
>> $ make test
>> or if you only want to test the tests from the analysis folder:
>> $ TESTDIRS=Analysis make test
>>
>> Your test is probably going to look similar to the following example,
>> which tests CFG builder:
>> test/Analysis/initializers-cfg-output.cpp
>>
>> You can find the documentation on FileCheck here:
>> http://llvm.org/docs/TestingGuide.html The document might be a bit
>> outdated but it does a good job explaining the concepts.
>>
>> Cheers,
>> Anna.
>> On Oct 18, 2011, at 9:08 AM, Guoping Long wrote:
>>
>> Hi, clang
>>
>>   Thanks Joerg and Arash. Attached is the new patch with everything
>> contained.  Please let me know if there are any further issues. I shall
>> continue working to improve it.
>>
>> --Guoping
>>
>> 2011/10/18 Joerg Sonnenberger <joerg at britannica.bec.de>
>>
>>> On Mon, Oct 17, 2011 at 10:59:27PM -0700, Guoping Long wrote:
>>> > 1 The patch file is generated by running svn diff under the
>>> llvm/tools/clang
>>> > directory. I do not know why this patch only contains information for
>>> > existing file modifications, not including new added files
>>> (dominators.cpp
>>> > (should be in clang/lib/Analysis/), dominators.h (should be in
>>> > clang/include/clang/Analysis/Analyses/), domtest.c (should be in
>>> > clang/test/Analysis)). So I included the patch in together with the
>>> three
>>> > new files as attached.
>>>
>>> Did you run "svn add" on them first?
>>>
>>> Joerg
>>>
>>
>> <dominators.patch>_______________________________________________
>>
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>>
>>
> <dominators.patch>_______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20111021/a6aafe83/attachment.html>


More information about the cfe-dev mailing list