Closed nchristensen closed 1 year ago
This is from a smoke_test_ks_3d run with the current default emirge package versions.
The kernel is actually fine. Loopy's representation of if-else statements appears to be ambiguous as there is no way to see where the else condition terminates from its string representation.
I've been dumping fused kernels at this point in the transformation process to look at them. Some of the kernels have assignment instructions of the following form (white space added for clarity)
Unless I misunderstand how conditionals work in loopy, it looks to me that all of the clauses after the second if-else are unreachable. This hurts prefetching because some of these unreachable clauses can involve dof arrays that compete take up local memory.