Wpis z mikrobloga

@psi-nos: na moje kompilator to zoptymalizuje, ale nie wiem czy można powiedzieć to na pewno. Jak masz zaparcie to przeanalizuj taki skrawek w kodzie maszynowym.
  • Odpowiedz
@psi-nos: Najprawdopodobniej zoptymalizuje (świta mi coś w głowie technika optymalizacyjna co się zowie "hoisting" najczęściej stosowana przy optymalizowaniu pętli).

Możemy to sprawdzić, np. tutaj: http://assembly.ynh.io/ (pamiętaj, żeby włączyć opcję optymalizacji).

Po sprawdzeniu w narzędziu podanym powyżej wynika, że kompilator faktycznie nie liczy tej wartości dwa razy, ale stosując trójargumentowy operator warunkowy zyskaliśmy na innej, bardzo ważnej rzeczy: całkowicie pozbyliśmy się branchingu na rzecz instrukcji z rodziny CMOV (co prawdopodobnie da większy
  • Odpowiedz