compile loop, if