external doesn't need empty basic blocks