You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
isl uses an arbitrary precision integer library to be able to reason about integers and constraints that exceed 64 bit.
HOWEVER, almost all computations in isl are performed on numbers that require significantly less than 32 bits to be computed. When profiling isl a significant amount of time (30-50% is spent in libgmp), with most of this time used for
basic functionality such as isl_int_init, isl_int_set, isl_int_add and isl_int_clear. Reducing the unnecessary function call and malloc traffic may significantly speed up isl.
For Polly, it would be great if a proof of concept patch for isl is written that transforms isl_int to type 'long long' and replaces isl_init_init, isl_int_set, isl_int_add with normal operations on 'long long'. All other computations can be implemented by converting the 'long long' to gmp, performing the original operation and converting back to 'long long. For this proof of concept it is OK
to not even cosider the case where a value may exceed 64 bit.
This patch should enable us to get an idea of the performance benefits that could gained by optimizing isl for small numbers.
Test case
The following is a test case on which isl spends several 100 mseconds, but which should not require integers larger than 64 bit. It might be good to evaluate a possible patch.
The text was updated successfully, but these errors were encountered: