Last active
August 29, 2015 14:22
-
-
Save yuyichao/08a9fc9d1c5506fc3b31 to your computer and use it in GitHub Desktop.
#11284 Helper function
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 i64 @julia_f0_20978(i64, i64) { | |
top: | |
ret i64 %0 | |
} | |
define i64 @julia_f1_20980(i64, i64) { | |
top: | |
%2 = icmp eq i64 %1, 0 | |
br i1 %2, label %if, label %L | |
if: ; preds = %top | |
%3 = load %jl_value_t** inttoptr (i64 140063145420952 to %jl_value_t**), align 8 | |
call void @julia_throw1_20981(%jl_value_t* %3, i64 %0, i64 0) | |
br label %L | |
L: ; preds = %if, %top | |
ret i64 %0 | |
} | |
define i64 @julia_f2_20982(i64, i64) { | |
top: | |
%2 = icmp eq i64 %1, 0 | |
br i1 %2, label %if, label %L | |
if: ; preds = %top | |
%3 = load %jl_value_t** inttoptr (i64 140063145420952 to %jl_value_t**), align 8 | |
%4 = icmp eq %jl_value_t* %3, null | |
br i1 %4, label %err, label %ok | |
err: ; preds = %if | |
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140071829897360 to %jl_value_t*)) | |
unreachable | |
ok: ; preds = %if | |
call void @julia_throw_with_args_20983(%jl_value_t* %3, i64 %0, i64 0) | |
br label %L | |
L: ; preds = %ok, %top | |
ret i64 %0 | |
} | |
define i64 @julia_f3_20984(i64, i64) { | |
top: | |
%2 = icmp eq i64 %1, 0 | |
br i1 %2, label %if, label %L | |
if: ; preds = %top | |
%3 = load %jl_value_t** inttoptr (i64 140063162192360 to %jl_value_t**), align 8 | |
call void @julia_throw_interp_20985(%jl_value_t* %3, i64 %0, i64 0) | |
br label %L | |
L: ; preds = %if, %top | |
ret i64 %0 | |
} | |
define i64 @julia_f4_20986(i64, i64) { | |
top: | |
%2 = alloca [7 x %jl_value_t*], align 8 | |
%.sub = getelementptr inbounds [7 x %jl_value_t*]* %2, i64 0, i64 0 | |
%3 = getelementptr [7 x %jl_value_t*]* %2, i64 0, i64 2 | |
%4 = bitcast [7 x %jl_value_t*]* %2 to i64* | |
store i64 10, i64* %4, align 8 | |
%5 = getelementptr [7 x %jl_value_t*]* %2, i64 0, i64 1 | |
%6 = bitcast %jl_value_t** %5 to %jl_value_t*** | |
%7 = load %jl_value_t*** @jl_pgcstack, align 8 | |
store %jl_value_t** %7, %jl_value_t*** %6, align 8 | |
store %jl_value_t** %.sub, %jl_value_t*** @jl_pgcstack, align 8 | |
store %jl_value_t* null, %jl_value_t** %3, align 8 | |
%8 = getelementptr [7 x %jl_value_t*]* %2, i64 0, i64 3 | |
store %jl_value_t* null, %jl_value_t** %8, align 8 | |
%9 = getelementptr [7 x %jl_value_t*]* %2, i64 0, i64 4 | |
store %jl_value_t* null, %jl_value_t** %9, align 8 | |
%10 = getelementptr [7 x %jl_value_t*]* %2, i64 0, i64 5 | |
store %jl_value_t* null, %jl_value_t** %10, align 8 | |
%11 = getelementptr [7 x %jl_value_t*]* %2, i64 0, i64 6 | |
store %jl_value_t* null, %jl_value_t** %11, align 8 | |
%12 = icmp eq i64 %1, 0 | |
br i1 %12, label %if, label %L | |
if: ; preds = %top | |
%13 = load %jl_value_t** inttoptr (i64 140063180602488 to %jl_value_t**), align 8 | |
%14 = icmp eq %jl_value_t* %13, null | |
br i1 %14, label %err, label %ok | |
err: ; preds = %if | |
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140071829891384 to %jl_value_t*)) | |
unreachable | |
ok: ; preds = %if | |
store %jl_value_t* %13, %jl_value_t** %3, align 8 | |
store %jl_value_t* inttoptr (i64 140063179874464 to %jl_value_t*), %jl_value_t** %8, align 8 | |
%15 = call %jl_value_t* @jl_box_int64(i64 signext %0) | |
store %jl_value_t* %15, %jl_value_t** %9, align 8 | |
store %jl_value_t* inttoptr (i64 140063179874480 to %jl_value_t*), %jl_value_t** %10, align 8 | |
%16 = call %jl_value_t* @jl_box_int64(i64 signext 0) | |
store %jl_value_t* %16, %jl_value_t** %11, align 8 | |
%17 = call %jl_value_t* @julia_print_to_string(%jl_value_t* inttoptr (i64 140063166698704 to %jl_value_t*), %jl_value_t** %8, i32 4) | |
store %jl_value_t* %17, %jl_value_t** %8, align 8 | |
%18 = getelementptr inbounds %jl_value_t* %13, i64 -1, i32 0 | |
%19 = load %jl_value_t** %18, align 8 | |
%20 = ptrtoint %jl_value_t* %19 to i64 | |
%21 = and i64 %20, -4 | |
%22 = inttoptr i64 %21 to %jl_value_t* | |
%23 = icmp eq %jl_value_t* %22, inttoptr (i64 140063145427184 to %jl_value_t*) | |
br i1 %23, label %isf, label %notf | |
isf: ; preds = %ok | |
%24 = bitcast %jl_value_t* %13 to %jl_value_t* (%jl_value_t*, %jl_value_t**, i32)** | |
%25 = load %jl_value_t* (%jl_value_t*, %jl_value_t**, i32)** %24, align 8 | |
%26 = call %jl_value_t* %25(%jl_value_t* %13, %jl_value_t** %8, i32 1) | |
br label %mergef | |
notf: ; preds = %ok | |
%27 = call %jl_value_t* @jl_apply_generic(%jl_value_t* inttoptr (i64 140063171404528 to %jl_value_t*), %jl_value_t** %3, i32 2) | |
br label %mergef | |
mergef: ; preds = %notf, %isf | |
%28 = phi %jl_value_t* [ %26, %isf ], [ %27, %notf ] | |
call void @jl_throw_with_superfluous_argument(%jl_value_t* %28, i32 41) | |
br label %L | |
L: ; preds = %mergef, %top | |
%29 = load %jl_value_t*** %6, align 8 | |
store %jl_value_t** %29, %jl_value_t*** @jl_pgcstack, align 8 | |
ret i64 %0 | |
} | |
define %jl_value_t* @julia_getindex_20990(%jl_value_t*, i64) { | |
top: | |
%2 = alloca [3 x %jl_value_t*], align 8 | |
%.sub = getelementptr inbounds [3 x %jl_value_t*]* %2, i64 0, i64 0 | |
%3 = getelementptr [3 x %jl_value_t*]* %2, i64 0, i64 2 | |
%4 = bitcast [3 x %jl_value_t*]* %2 to i64* | |
store i64 2, i64* %4, align 8 | |
%5 = getelementptr [3 x %jl_value_t*]* %2, i64 0, i64 1 | |
%6 = bitcast %jl_value_t** %5 to %jl_value_t*** | |
%7 = load %jl_value_t*** @jl_pgcstack, align 8 | |
store %jl_value_t** %7, %jl_value_t*** %6, align 8 | |
store %jl_value_t** %.sub, %jl_value_t*** @jl_pgcstack, align 8 | |
store %jl_value_t* null, %jl_value_t** %3, align 8 | |
%8 = icmp slt i64 %1, 1 | |
br i1 %8, label %if2, label %L1 | |
L1: ; preds = %top | |
%9 = bitcast %jl_value_t* %0 to i64* | |
%10 = load i64* %9, align 8 | |
%phitmp9 = icmp slt i64 %10, %1 | |
br i1 %phitmp9, label %if2, label %L3 | |
if2: ; preds = %L1, %top | |
%11 = load %jl_value_t** inttoptr (i64 140063145420952 to %jl_value_t**), align 8 | |
%12 = icmp eq %jl_value_t* %11, null | |
br i1 %12, label %err, label %ok | |
err: ; preds = %if2 | |
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140071829897360 to %jl_value_t*)) | |
unreachable | |
ok: ; preds = %if2 | |
call void @julia_throw_with_args5294(%jl_value_t* %11, %jl_value_t* %0, i64 %1) | |
br label %L3 | |
L3: ; preds = %ok, %L1 | |
%13 = ptrtoint %jl_value_t* %0 to i64 | |
%14 = shl i64 %1, 3 | |
%15 = add i64 %14, %13 | |
%16 = inttoptr i64 %15 to i8** | |
%17 = load i8** %16, align 1 | |
%18 = icmp eq i8* %17, null | |
br i1 %18, label %if4, label %L8 | |
if4: ; preds = %L3 | |
%19 = load %jl_value_t** inttoptr (i64 140063145417928 to %jl_value_t**), align 8 | |
%20 = icmp eq %jl_value_t* %19, null | |
br i1 %20, label %err5, label %ok6 | |
err5: ; preds = %if4 | |
call void @jl_undefined_var_error(%jl_value_t* inttoptr (i64 140071829911056 to %jl_value_t*)) | |
unreachable | |
ok6: ; preds = %if4 | |
store %jl_value_t* %19, %jl_value_t** %3, align 8 | |
%21 = call %jl_value_t* @julia_throw_with_args5268(%jl_value_t* inttoptr (i64 140063176961584 to %jl_value_t*), %jl_value_t** %3, i32 1) | |
br label %L8 | |
L8: ; preds = %ok6, %L3 | |
%22 = bitcast i8* %17 to %jl_value_t* | |
%23 = load %jl_value_t*** %6, align 8 | |
store %jl_value_t** %23, %jl_value_t*** @jl_pgcstack, align 8 | |
ret %jl_value_t* %22 | |
} | |
f0(Int64,Int64) | |
1.603 seconds | |
f1(Int64,Int64) | |
2.230 seconds | |
f2(Int64,Int64) | |
1.918 seconds | |
f3(Int64,Int64) | |
2.287 seconds | |
f4(Int64,Int64) | |
4.149 seconds | |
getindex(SimpleVector,Int64) | |
5.266 seconds |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment