With small integer optimization (short: sio) enabled, ISL uses 32 bit integers for its arithmetic and only falls back to a big integer library (in the case of Polly: IMath) if an operation's result is too large. This gives a massive performance boost for most application using ISL. For instance, experiments with ppcg (polyhedral source2source compiler) show speed-ups of 5.8 (compared to plain IMath), respectively 2.7 (compared to GMP).
In Polly, a smaller fraction of the total compile time is taken by ISL, but the speed-ups are still very significant. The buildbots measure compilation speed-up up to 1.8 (oourafft, floyd-warshall, symm). All Polybench benchmarks compile in at least 9% less time, and about 20% less on average.
Detailed Polybench compile time results (median of 10):
correlation -25.51%
covariance -24.82%
2mm -26.64%
3mm -28.69%
atax -13.70%
bicg -10.78%
cholesky -40.67%
doitgen -11.60%
gemm -11.54%
gemver -10.63%
gesummv -11.54%
mvt -9.43%
symm -41.25%
syr2k -14.71%
syrk -14.52%
trisolv -17.65%
trmm -9.78%
durbin -19.32%
dynprog -9.09%
gramschmidt -15.38%
lu -21.77%
floyd-warshall -42.71%
reg_detect -41.17%
adi -36.69%
fdtd-2d -32.61%
fdtd-apml -21.90%
jacobi-1d-imper -9.41%
jacobi-2d-imper -27.65%
seidel-2d -31.00%