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
{{ message }}
This repository has been archived by the owner on Jun 17, 2024. It is now read-only.
When we reason about linalg.runRegion, we want to show that we can safely reorder running of regions.
errors can be reordered with anything
set can be reordered with set, because we enforce SSA: if two sets do not interfere, then they commute. If two sets try to set at the same key, and they don't set the same value, then it's an error, and this error commutes with anything. Thus, in SSA, set commutes with everything.
get need not commute, because get can ask for something that's defined later. But if a regions obeys dominance (under the constraint of IsIsolatedFromAbove), then runRegion commutes, because I can choose to run a region either now, or later, and the region "can't tell the difference" (it's completely isolated from above, so it only knows about its input arguments).
For this, we need a theorem about how dominance relates to getting/setting SSA values. I am unsure what precise shape this theorem must take, but it's going to be key to get a sensible version of eg. loop reversal.
The text was updated successfully, but these errors were encountered:
@math-fehr
When we reason about
linalg.runRegion
, we want to show that we can safely reorder running of regions.set
can be reordered withset
, because we enforce SSA: if twosets
do not interfere, then they commute. If twoset
s try to set at the same key, and they don't set the same value, then it's an error, and this error commutes with anything. Thus, in SSA,set
commutes with everything.get
need not commute, becauseget
can ask for something that's defined later. But if a regions obeys dominance (under the constraint ofIsIsolatedFromAbove
), thenrunRegion
commutes, because I can choose to run a region either now, or later, and the region "can't tell the difference" (it's completely isolated from above, so it only knows about its input arguments).For this, we need a theorem about how dominance relates to getting/setting SSA values. I am unsure what precise shape this theorem must take, but it's going to be key to get a sensible version of eg. loop reversal.
The text was updated successfully, but these errors were encountered: