The reducer's structured-loop-to-selection pass uses functions to create undef values and dummy variables on-demand, to fix up cases where reducing a module has created dominance problems that need to be rectified. This functionality will likely be useful to other passes, and if so should be factored out.