Can you explain me how Profile-guided optimization works and why it works?