Created
December 20, 2011 09:12
-
-
Save afeinberg/1500902 to your computer and use it in GitHub Desktop.
Revisions
-
afeinberg created this gist
Dec 20, 2011 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,106 @@ .file "unroll.cc" .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "%d\n" .text .p2align 4,,15 .globl _Z3bari .type _Z3bari, @function _Z3bari: ;; (would still get unrolled -funroll-loops) .LFB48: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movl %edi, %ebp pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 subq $8, %rsp .cfi_def_cfa_offset 32 testl %edi, %edi jle .L1 xorl %ebx, %ebx .p2align 4,,10 .p2align 3 .L3: movl %ebx, %edx xorl %eax, %eax movl $.LC0, %esi movl $1, %edi addl $1, %ebx call __printf_chk cmpl %ebp, %ebx jne .L3 .L1: addq $8, %rsp .cfi_def_cfa_offset 24 popq %rbx .cfi_def_cfa_offset 16 popq %rbp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE48: .size _Z3bari, .-_Z3bari .section .text.startup,"ax",@progbits .p2align 4,,15 .globl main .type main, @function main: .LFB49: .cfi_startproc ;; (-O3 auto unrolls and inlines foo) subq $8, %rsp .cfi_def_cfa_offset 16 xorl %edx, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $1, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $2, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $3, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $4, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $5, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $6, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $7, %edx movl $.LC0, %esi movl $1, %edi xorl %eax, %eax call __printf_chk movl $8, %edi call _Z3bari xorl %eax, %eax addq $8, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE49: .size main, .-main .ident "GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1" .section .note.GNU-stack,"",@progbits This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,21 @@ #include <cstdio> #include <cstdlib> template<int N> void foo() { for (int i = 0; i < N; ++i) { printf("%d\n", i); } } void bar(int n) { for (int i = 0; i < n; ++i) { printf("%d\n", i); } } int main(int argc, char **argv) { foo<8>(); bar(8); return EXIT_SUCCESS; }