Created
May 15, 2016 04:22
-
-
Save yuyichao/bdff579131fcd35701a0ce114a3b7573 to your computer and use it in GitHub Desktop.
This file contains 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 characters
define %jl_value_t* @julia_eu78_49781(i64) #0 !dbg !6 { | |
top: | |
%1 = icmp sgt i64 %0, 0 | |
%2 = select i1 %1, i64 %0, i64 0 | |
%3 = add i64 %2, 1 | |
br label %L | |
L: ; preds = %if, %top | |
%"#temp#.0" = phi i64 [ 1, %top ], [ %5, %if ] | |
%4 = icmp eq i64 %"#temp#.0", %3 | |
br i1 %4, label %L2, label %if | |
L2: ; preds = %L | |
ret %jl_value_t* inttoptr (i64 140217202278416 to %jl_value_t*) | |
if: ; preds = %L | |
%5 = add i64 %"#temp#.0", 1 | |
%6 = call i64 @julia_p_49782(i64 %"#temp#.0") #0 | |
%7 = call i64 @jlsys_mod_35080(i64 %6, i64 1000000) | |
%8 = icmp eq i64 %7, 0 | |
br i1 %8, label %if3, label %L | |
if3: ; preds = %if | |
%9 = insertvalue [2 x i64] undef, i64 %"#temp#.0", 0 | |
%10 = insertvalue [2 x i64] %9, i64 %6, 1 | |
%11 = call %jl_value_t* @jl_gc_alloc_2w() | |
%12 = getelementptr inbounds %jl_value_t, %jl_value_t* %11, i64 -1, i32 0 | |
store %jl_value_t* inttoptr (i64 140217202273008 to %jl_value_t*), %jl_value_t** %12, align 8 | |
%13 = bitcast %jl_value_t* %11 to [2 x i64]* | |
store [2 x i64] %10, [2 x i64]* %13, align 8 | |
ret %jl_value_t* %11 | |
} | |
define i64 @julia_p_49782.1(i64) #0 !dbg !6 { | |
top: | |
%1 = icmp sgt i64 %0, -1 | |
br i1 %1, label %L1, label %if | |
L1: ; preds = %top | |
%2 = icmp eq i64 %0, 0 | |
br i1 %2, label %if, label %L3 | |
L3: ; preds = %L1 | |
%3 = add i64 %0, -1 | |
%4 = load i64*, i64** inttoptr (i64 140217275491728 to i64**), align 16 | |
%5 = getelementptr i64, i64* %4, i64 %3 | |
%6 = load i64, i64* %5, align 8 | |
%7 = icmp slt i64 %6, 1 | |
br i1 %7, label %pass15.preheader, label %if11 | |
pass15.preheader: ; preds = %L3 | |
br label %pass15 | |
L8: ; preds = %pass15 | |
%8 = call i64 @jlsys_mod_35080(i64 %26, i64 1000000000) | |
%9 = load i64*, i64** inttoptr (i64 140217275491728 to i64**), align 16 | |
%10 = getelementptr i64, i64* %9, i64 %3 | |
store i64 %8, i64* %10, align 8 | |
ret i64 %8 | |
if: ; preds = %L1, %top | |
%merge = phi i64 [ 0, %top ], [ 1, %L1 ] | |
ret i64 %merge | |
if11: ; preds = %L3 | |
ret i64 %6 | |
pass15: ; preds = %pass15.preheader, %pass15 | |
%s.019 = phi i64 [ %26, %pass15 ], [ 0, %pass15.preheader ] | |
%f.018 = phi i64 [ %12, %pass15 ], [ -1, %pass15.preheader ] | |
%"#temp#.017" = phi i64 [ %11, %pass15 ], [ 1, %pass15.preheader ] | |
%11 = add i64 %"#temp#.017", 1 | |
%12 = sub i64 0, %f.018 | |
%13 = mul i64 %"#temp#.017", 3 | |
%14 = add i64 %13, 1 | |
%15 = mul i64 %14, %"#temp#.017" | |
%16 = add i64 %13, -1 | |
%17 = mul i64 %16, %"#temp#.017" | |
%18 = sdiv i64 %17, 2 | |
%19 = sdiv i64 %15, 2 | |
%20 = sub i64 %0, %18 | |
%21 = call i64 @julia_p_49782(i64 %20) #0 | |
%22 = sub i64 %0, %19 | |
%23 = call i64 @julia_p_49782(i64 %22) #0 | |
%24 = add i64 %23, %21 | |
%25 = mul i64 %24, %12 | |
%26 = add i64 %25, %s.019 | |
%27 = icmp eq i64 %"#temp#.017", %0 | |
br i1 %27, label %L8, label %pass15 | |
} |
This file contains 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 characters
.text | |
Filename: euler.jl | |
Source line: 0 | |
pushq %rbp | |
movq %rsp, %rbp | |
pushq %r15 | |
pushq %r14 | |
pushq %r13 | |
pushq %r12 | |
pushq %rbx | |
pushq %rax | |
movq %rdi, %r15 | |
xorl %ebx, %ebx | |
Source line: 29 | |
cmpq $0, %r15 | |
cmovleq %rbx, %r15 | |
Source line: 30 | |
movabsq $p, %r13 | |
Source line: 31 | |
movabsq $mod, %r14 | |
nop | |
Source line: 29 | |
L48: | |
cmpq %rbx, %r15 | |
leaq 1(%rbx), %rbx | |
je L131 | |
Source line: 30 | |
movq %rbx, %rdi | |
callq *%r13 | |
movq %rax, %r12 | |
Source line: 31 | |
movl $1000000, %esi # imm = 0xF4240 | |
movq %r12, %rdi | |
callq *%r14 | |
Source line: 248 | |
cmpq $0, %rax | |
jne L48 | |
Source line: 32 | |
movabsq $jl_gc_alloc_2w, %rax | |
callq *%rax | |
movabsq $140217202273008, %rcx # imm = 0x7F86DC886AF0 | |
movq %rcx, -8(%rax) | |
movq %r12, 8(%rax) | |
movq %rbx, (%rax) | |
addq $8, %rsp | |
popq %rbx | |
popq %r12 | |
popq %r13 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
retq | |
L131: | |
movabsq $140217202273008, %rax # imm = 0x7F86DC886AF0 | |
addq $5408, %rax # imm = 0x1520 | |
addq $8, %rsp | |
popq %rbx | |
popq %r12 | |
popq %r13 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
retq | |
nopw %cs:(%rax,%rax) | |
.text | |
Filename: euler.jl | |
Source line: 0 | |
pushq %rbp | |
movq %rsp, %rbp | |
pushq %r15 | |
pushq %r14 | |
pushq %r13 | |
pushq %r12 | |
pushq %rbx | |
subq $24, %rsp | |
movq %rdi, %r15 | |
xorl %eax, %eax | |
Source line: 9 | |
cmpq $-1, %r15 | |
jle L87 | |
movl $1, %eax | |
Source line: 10 | |
cmpq $0, %r15 | |
je L87 | |
movl $2, %r13d | |
xorl %r14d, %r14d | |
movabsq $140217275491728, %rax # imm = 0x7F86E0E5A590 | |
Source line: 12 | |
movq (%rax), %rax | |
movq -8(%rax,%r15,8), %rax | |
Source line: 40 | |
cmpq $1, %rax | |
jl L102 | |
addq $24, %rsp | |
popq %rbx | |
popq %r12 | |
popq %r13 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
retq | |
Source line: 9 | |
L87: | |
addq $24, %rsp | |
popq %rbx | |
popq %r12 | |
popq %r13 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
retq | |
L102: | |
movq $-1, %rdx | |
Source line: 20 | |
movabsq $p, %rbx | |
xorl %edi, %edi | |
nopl (%rax) | |
L128: | |
movq %rdi, -48(%rbp) | |
xorl %r12d, %r12d | |
Source line: 19 | |
addq $1, %r14 | |
leaq 2(%r13), %rcx | |
imulq %r14, %rcx | |
Source line: 18 | |
movq %r13, %rax | |
imulq %r14, %rax | |
Source line: 17 | |
subq %rdx, %r12 | |
Source line: 18 | |
cqto | |
Source line: 20 | |
movq %r15, %rdi | |
movl $2, %esi | |
Source line: 18 | |
idivq %rsi | |
Source line: 20 | |
subq %rax, %rdi | |
Source line: 19 | |
movq %rcx, %rax | |
cqto | |
idivq %rsi | |
movq %rax, -64(%rbp) | |
Source line: 20 | |
callq *%rbx | |
movq %rax, -56(%rbp) | |
movq %r15, %rdi | |
subq -64(%rbp), %rdi | |
callq *%rbx | |
movq -48(%rbp), %rdi | |
Source line: 32 | |
addq -56(%rbp), %rax | |
imulq %r12, %rax | |
addq %rax, %rdi | |
Source line: 16 | |
addq $3, %r13 | |
movq %r12, %rdx | |
cmpq %r14, %r15 | |
jne L128 | |
Source line: 24 | |
movabsq $mod, %rax | |
movl $1000000000, %esi # imm = 0x3B9ACA00 | |
callq *%rax | |
shlq $3, %r15 | |
movabsq $140217275491728, %rcx # imm = 0x7F86E0E5A590 | |
addq (%rcx), %r15 | |
movq %rax, -8(%r15) | |
addq $24, %rsp | |
popq %rbx | |
popq %r12 | |
popq %r13 | |
popq %r14 | |
popq %r15 | |
popq %rbp | |
retq | |
nopl (%rax,%rax) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment