freenode/#sicl - IRC Chatlog
Search
14:48:13
beach
The average size for an invocation is just 73 nodes. But then, I also have many small source files.
14:48:19
Bike
there's not an exactly analogous operation to m-i-a-o. but the way traversals work now is just following "next" slots, so overhead is pretty low.
14:48:42
Bike
10% of execution time even with no inlining sounds like it could end up being problematic.
14:49:54
Bike
in more detail, how it works in BIR is that reverse postorder is computed and cached in the nodes, so iteration just needs to go through it. so traversal doesn't cons, and it also allows multiple traversals to go simultaneously (unlike if there was a mark slot in the node)
14:51:04
beach
Sounds good. But that order has to be computed once, right? And then maintained for every graph modification?
14:54:35
Bike
it can also be fully recomputed if there's some extensive modification. since the graph is traversed more often than modified, even doing a consing recomputation on modifications instead of traverses is still helpful for performance.
14:59:26
Bike
haven't been using meters much since external profiling has been working pretty well for us, but i could add them back in