don't get confused by temporary empty nodes when calculating assigns in the loop variable optimizer