On Sat, Jul 29, 2017 at 9:01 AM, Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> wrote: > > Interesting. > My measurements showed much smaller differences (around 1-2% > and smaller than the stdev). But I also saw that this difference > was significantly bigger on older/less performant machines > (which is not very surprising). I guess my laptop can qualify as older/less performance machines :-) A wild guess is that the modern CPU are better doing caching and branch predictions etcs. The iterator is doing a lot of memory store and load from the iterator struct, and a lot of call to the interator advance function. The reason it show up more on this C file is that, sparse is doing a lot of recursive find domanitor store etc. There are very deep level of nested ptrlist loop here. The performance penalty on the inner loop will amplify by the level of nested loop. BTW, I am writing some code to construct the dominator tree for basic blocks. I think it will be useful to avoid repeat finding dominator. It will also help you finding the dominator frontier for the phi locations. Another possible use is that, we can do incremental remove of dead blocks without visiting all the blocks. We can just find out what other blocks dominated by this dead block, mark them for delete and repeat. Some materials for the next release. Chris -- 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