On Sat, Jul 29, 2017 at 6:25 PM, Christopher Li <sparse@xxxxxxxxxxx> wrote: > On Sat, Jul 29, 2017 at 12:04 PM, Luc Van Oostenryck > <luc.vanoostenryck@xxxxxxxxx> wrote: >> >> You can't do that once cycles are involved. You need something >> like the marking algorithm used by kill_unreachable_bbs() for that. >> And it was such a cycle that created the problem with the false >> "crazy programmer" warning. > > No I don't think so. The find dominator already taking the cycles into > account. By definition if X dominate Y, means every execution flow > from entry point to Y will need to go through X. If X was not reachable, > nor does Y. It does not change where the block get deleted. It just don't > not need to do the marking algorithm. That is the point of dominator tree. OK, I misread and misunderstood that you was talking about the dominator *tree*. The real problem with such a tree is that you need to maintain it as it potentially changes each time there is a change in the CFG. And of course, building this tree is not linear (in the number of BBs) while finding the dead BBs is linear. -- Luc -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html