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 was archived by the owner on Apr 28, 2023. It is now read-only.
emitLLVMKernel: avoid relying on isl set variable names
codegenISL relied on set variable names in two ways.
First, it assumed that the variable names of the domain
of the schedule were preserved through the entire
AST generation process.
Explicitly set the names of the space sent to
halide2isl::makeIslAffFromExpr instead of assuming
they are still available in the schedule.
halide2isl::makeIslAffFromExpr itself still relies on
the names in the space itself being preserved, but
the space does not get modified in between,
so the risk of the names disappearing is reduced.
Second, codegenISL would manually set the names of the range
of the schedule, expecting them to be preserved across subsequent operations,
but this is again not guaranteed.
Convert the corresponding expressions to isl::ast_expr objects instead.
As a nice bonus, the code generation for subscripts and variables
now share the same mechanism, while before one used isl::ast_expr
objects, while the other used an isl::pw_multi_aff.
As a result, a lot of code can be removed.
0 commit comments