inducer / islpy

Python wrapper for isl, an integer set library
http://pypi.python.org/pypi/islpy
73 stars 19 forks source link

reenable optimizations #111

Closed matthiasdiener closed 1 year ago

matthiasdiener commented 1 year ago

islpy compilation times are still an issue (see the Ubuntu 20.04 CI build), but this seems to provide a substantial speedup over an unoptimized build:

(Mac M1, clang 14.0.6):

from timeit import timeit

print(timeit('isl.BasicSet.universe(space) \
        .add_constraint(isl.Constraint.ineq_from_names(space, {1: -1, "x": 1})) \
        .add_constraint(isl.Constraint.ineq_from_names(space, {1: 5, "x": -1})) \
        .add_constraint(isl.Constraint.ineq_from_names(space, {1: -1, "y": 1})) \
        .add_constraint(isl.Constraint.ineq_from_names(space, {1: 5, "y": -1}))',
       setup='import islpy as isl; space = isl.Space.create_from_names(isl.DEFAULT_CONTEXT, set=["x", "y"])',number=10000))

Maybe we could blacklist a specific compiler version, instead of disabling optimizations for everyone? What do you think @inducer?