[cfe-dev] Clang CFG - To build a variant of CFG

Shamiek Mangipudi via cfe-dev cfe-dev at lists.llvm.org
Thu Jun 14 21:45:50 PDT 2018


Hi,

I recently started working on control flow analysis of C programs using CFG
generated by clang. I noticed that clang generates basic blocks for each
condition of a compound condition it encounters in if statment (or in loop
conditions). I wanted to have only one basic basic with the entire compound
condition instead of having basic blocks for each condition.

I am outlining my attempts and the direction in which I tried. Please let
me know if there is a better way to what I am trying to achieve or I should
take an entirely new direction.

Thanks.
Shamiek

My attempts:
I first looked at CFG::BuildOptions() (https://clang.llvm.org/doxyge
n/classclang_1_1CFG_1_1BuildOptions.html) and did not find anything there.

Then I went to to CFGBuilder::VisitIfStmt and found the line that causes
creation of basic blocks for individual conditions of the compound
condition (https://clang.llvm.org/doxygen/CFG_8cpp_source.html#l02180).
Should I try and change the code here or there might be deeper implications
for changing code here. Please suggest.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180615/abe1901f/attachment.html>


More information about the cfe-dev mailing list