8.7 루프 언롤링(Loop unrolling)
8.7 루프 언롤링(Loop unrolling)
Haxe 4.0.0 이후
컴파일러는 상수 범위에 대한 짧은 반복의 for 루프를 언롤하려고 합니다. 루프 없이 더 빠른 코드를 만들 수 있어요:
for (i in 0...4) {
test(i);
}
위 코드는 다음과 비슷한 것으로 바뀝니다:
test(0);
test(1);
test(2);
test(3);
루프가 언롤되는지 여부는 루프의 반복 수와 루프 본문 안의 표현식 수로 정의되는 루프 언롤링 비용에 따라 다릅니다. 이 임계값은 기본적으로 250이지만 -D loop_unroll_max_cost=... 컴파일 타임 define으로 구성할 수 있어요.
출처: Loop unrolling
본문
컴파일러는 상수 범위의 짧은 for 루프를 언롤해 더 빠른 코드를 만듭니다. 언롤 여부는 반복 수 x 본문 표현식 수 비용(기본 임계값 250)에 따라 달리지고 -D loop_unroll_max_cost로 조정합니다.