LINUX.ORG.RU

История изменений

Исправление quasimoto, (текущая версия) :

    for (auto i = 0; i < 10; ++i)
        printf("%d\n", i);
	xorl	%ebx, %ebx
.L3:
	movl	%ebx, %edx
	xorl	%eax, %eax
	movl	$.LC0, %esi
	movl	$1, %edi
	addl	$1, %ebx
	call	__printf_chk
	cmpl	$10, %ebx
	jne	.L3

Потому что мешают оптимизации. Вон dotimes тупо разорачивается в goto. После чего компилятору нужно понять что это цикл, догадаться где условие выхода и тд

0_o

Исходная версия quasimoto, :

    for (auto i = 1; i <= 10; ++i)
        printf("%d\n", i);
	movl	$1, %ebx
.L3:
	movl	%ebx, %edx
	xorl	%eax, %eax
	movl	$.LC0, %esi
	movl	$1, %edi
	addl	$1, %ebx
	call	__printf_chk
	cmpl	$11, %ebx
	jne	.L3

Потому что мешают оптимизации. Вон dotimes тупо разорачивается в goto. После чего компилятору нужно понять что это цикл, догадаться где условие выхода и тд

0_o