A DAGRootSet models an induction variable being used in a rerollable

loop. For example:

x[i*3+0] = y1 x[i*3+1] = y2 x[i*3+2] = y3 Base instruction -> i*3 +---+----+ / | \ ST[y1] +1 +2 <-- Roots | | ST[y2] ST[y3]

There may be multiple DAGRootSets, for example:

x[i*2+0] = ... (1) x[i*2+1] = ... (1) x[i*2+4] = ... (2) x[i*2+5] = ... (2) x[(i+1234)*2+5678] = ... (3) x[(i+1234)*2+5679] = ... (3)

This concept is similar to the "Scale" member used previously, but allows

multiple independent sets of roots based off the same induction variable.