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

Reply via email to