Szelethus added a comment. I seem to have made good progress on this, although it did require a lot of code changes on LLVM side (basically turning `BasicBlock *` to template arguments). Here's a sample:
// <---------------------------------- // / <----------------- \ // / / \ \ // [B12 (ENTRY)] -> [B11] -> [B10]-> [B9] -> [B8] ---> [B7] -> [B6] | // | \ \ / // | \ -----> [B2] --------/ // | \ / // | -> [B5] -> [B4] -> [B3] // | \ / // | <------------ // \ // -> [B1] -> [B0 (EXIT)] Control dependencies (Node, Dependency): (2,10) (3,5) (3,9) (3,10) (4,5) (4,9) (4,10) (5,9) (5,5) (5,10) (6,8) (6,9) (6,10) (7,8) (7,9) (7,10) (8,9) (8,8) (8,10) (9,10) (10,10) My solution is inspired by In D62619#1521824 <https://reviews.llvm.org/D62619#1521824>, @kuhar wrote: > - > https://github.com/seahorn/seahorn/blob/deep-dev-5.0/include/seahorn/Analysis/ControlDependenceAnalysis.hh > - > https://github.com/seahorn/seahorn/blob/deep-dev-5.0/lib/Analysis/ControlDependenceAnalysis.cc , and I really like where this is going. I am yet to figure out how to deal with Clang's CFG containing null pointers in a not-too-invasive way (will probably end up doing something similar to `ChildrenGetter`), as it currently crashes. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62619/new/ https://reviews.llvm.org/D62619 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits