This fixes a bug in SCF/AffineCanonicalizationUtils.cpp. Loop lb/ub were previously considered dimensions, which caused a crash when a (non-optimizable) affine.min / affine.max expression was processed (due to multiplication of two dims). Lb/ub are now considered symbols and symbols may be multiplied. (The scope of the analysis is "within the loop body", at which point lb/ub are constants.)
Depends On D131949
Thanks for fixing this bug! The behaviour should be to return the absolute position of the variable to match insertVar. Instead of doing this, could you change the doc of appendVar to say "Return the absolute column position (i.e., not relative to the kind of variable) of the first added variable"? Having different return behaviour for insertVar and appendVar could be confusing.