On 4/26/23 21:26, Andrew MacLeod via Gcc-patches wrote: > This implements a sparse vector class for rangers cache and uses it bey > default except when the CFG is very small, in qhich case the original full > vectors are faster. It works like a normal vector cache (in fact it inherits > from it), but uses a sparse bitmap to determine whether a vector element is > set or not. This provide better performance for clearing the vector, as well > as during initialization. > > A new param is added for this transition "vrp_vector_threshold" which > defaults to 250. Anything function with fewer than 250 basic blocks will use > the simple vectors. Various timing runs have indicated this is about the > sweet spot where using the sparse bitmap overtakes the time required to clear > the vector initially. Should we make ranger live across functions in the > future, we'll probably want to lower this value again as clearing is > significantly cheaper. > > This patch also rename the "evrp_*" params to "vrp_*" as there really is not > a serperate EVRP pass any more, its all one vrp pass. Eventually we'll > probably want to change it to vrp1, vrp2 and vrp3 rather than evrp, vrp1 and > vrp2. But thats a task for later, perhaps when we reconsider pass > orderings.. > > Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. > > Andrew
Hello. Please adjust also the documentation for the params in gcc/doc/invoke.texi. Thanks, Martin