Skip to content
Commit 957948fa authored by Matt Wala's avatar Matt Wala
Browse files

Improve generation of loop bounds for sequential loops by generating

non-static loop bounds.

This is intended to help the case when one loop's bounds depend on
another loop, such as the domain

{ [i,j]: 0 <= i <= n and i <= j <= i }

In this case we want the generated code to look like

    for (i = 1; i <= n; ++i)
        for (j = i; j <= i; ++i)
            ...

rather than "for (j = 1; j <= n; ++j)" which are the static loop
bounds for j.

Additional changes that help realize this are as follows:

* Enable code generation of piecewise affine loop bounds, so that
piecewise affine constraints on the "j" loop may be expressed as
conditional expressions.

* Additionally, if "i" is marked local-parallel, we allow the "j" loop
bounds to depend on "i" as long as there are no barriers inside the
"j" loop.
parent 1a00a385
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment