We'd like to avoid regenerating the control flow graph for every pass that uses it. This series adds a cfg pointer to the backend visitor class that we use to save the CFG across optimization passes. It's invalidated and recreated by invalidate/calculate_cfg and these functions are called by the similarly named live intervals functions.
Just by doing this, we reduce the number of times we calculate the CFG in a shader-db run by 55%. Ultimately I'd like the CFG to be a fundamental data structure in our backend, where each basic block contains its own list of instructions rather than basic blocks containing pointers into a large list. My WIP branch is getting a bit big, so here's a digestable chunk that's ready for master. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev