Created
November 2, 2018 23:18
-
-
Save nasser/273a6e30b9fd16c17239f0a5b6223ff9 to your computer and use it in GitHub Desktop.
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 characters
; Function Attrs: uwtable | |
define hidden cc16 float @DynVsIface_Benches_ThroughExact_DynVsIface_TaskDoer(i64* %this, i64* %arg_doer) #3 { | |
BB0: | |
br label %BB3 | |
BB3: ; preds = %BB0 | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
%0 = load volatile i64* %arg_doer | |
br label %BB1 | |
BB1: ; preds = %BB2 | |
ret float 1.500000e+02 | |
} | |
; Function Attrs: uwtable | |
define hidden cc16 float @DynVsIface_Benches_ThroughInterface_DynVsIface_IDoTask(i64* %this, i64* %arg_doer) #3 { | |
BB0: | |
br label %BB3 | |
BB3: ; preds = %BB0 | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
%t26 = load volatile i64* %arg_doer | |
%METHODCONST_26 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 26), !invariant.load !26 | |
%0 = inttoptr i64 %t26 to i64** | |
%1 = getelementptr i64** %0, i32 -17 | |
%2 = load i64** %1 | |
%3 = bitcast i64* %2 to float (i64*, i64*, float, float)* | |
%4 = call cc16 float %3(i64* inreg %METHODCONST_26, i64* %arg_doer, float 1.000000e+01, float 1.500000e+01) | |
%5 = fpext float %4 to double | |
%6 = fptrunc double %5 to float | |
br label %BB1 | |
BB1: ; preds = %BB2 | |
ret float %6 | |
} | |
; Function Attrs: uwtable | |
define hidden cc16 float @DynVsIface_Benches_ThroughDynamic_object(i64* %this, i64* %arg_doer) #3 { | |
BB0: | |
br label %BB3 | |
BB3: ; preds = %BB0 | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
%SFLDA_27 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27), !invariant.load !26 | |
%t20 = load i64* %SFLDA_27 | |
%0 = icmp ne i64 %t20, 0 | |
br i1 %0, label %BB4, label %BB5 | |
BB5: ; preds = %BB2 | |
%TYPE_FROM_HANDLE_33 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 33), !invariant.load !26 | |
%TYPE_FROM_HANDLE_306 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 30), !invariant.load !26 | |
%1 = call cc16 i64* @.Lp_6_plt_Microsoft_CSharp_RuntimeBinder_Binder_Convert_Microsoft_CSharp_RuntimeBinder_CSharpBinderFlags_System_Type_System_Type_llvm(i32 0, i64* %TYPE_FROM_HANDLE_33, i64* %TYPE_FROM_HANDLE_306) | |
%VTABLE_34 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 34), !invariant.load !26 | |
%2 = call cc16 i64* @.Lp_7_plt_System_Runtime_CompilerServices_CallSite_1_System_Func_3_System_Runtime_CompilerServices_CallSite_object_single_Create_System_Runtime_CompilerServices_CallSiteBinder_llvm(i64* inreg %VTABLE_34, i64* %1) | |
%SFLDA_277 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27), !invariant.load !26 | |
%3 = getelementptr i64* %SFLDA_277, i32 0 | |
%4 = ptrtoint i64* %2 to i64 | |
store i64 %4, i64* %3 | |
br label %BB4 | |
BB4: ; preds = %BB5, %BB2 | |
%SFLDA_271 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27), !invariant.load !26 | |
%t34 = load i64* %SFLDA_271 | |
%5 = inttoptr i64 %t34 to i64* | |
%6 = getelementptr i64* %5, i32 4 | |
%t35 = load volatile i64* %6 | |
%SFLDA_272 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27), !invariant.load !26 | |
%t37 = load i64* %SFLDA_272 | |
%SFLDA_28 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28), !invariant.load !26 | |
%t39 = load i64* %SFLDA_28 | |
%7 = icmp ne i64 %t39, 0 | |
br i1 %7, label %BB6, label %BB7 | |
BB7: ; preds = %BB4 | |
%LDSTR_29 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 29), !invariant.load !26 | |
%TYPE_FROM_HANDLE_30 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 30), !invariant.load !26 | |
%VTABLE_31 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 31), !invariant.load !26 | |
%8 = ptrtoint i64* %VTABLE_31 to i64 | |
%9 = call cc16 i64* @.Lp_2_plt_wrapper_alloc_object_AllocVector_intptr_intptr_llvm(i64 %8, i64 3) | |
%10 = call cc16 i64* @.Lp_3_plt_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_Create_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfoFlags_string_llvm(i32 0, i64* null) | |
%t75 = load i64* %9 | |
%11 = inttoptr i64 %t75 to i64** | |
%12 = getelementptr i64** %11, i32 32 | |
%13 = load i64** %12 | |
%14 = bitcast i64* %13 to void (i64*, i64, i64*)* | |
call cc16 void %14(i64* %9, i64 0, i64* %10) | |
%15 = call cc16 i64* @.Lp_3_plt_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_Create_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfoFlags_string_llvm(i32 3, i64* null) | |
%t101 = load volatile i64* %9 | |
%16 = inttoptr i64 %t101 to i64** | |
%17 = getelementptr i64** %16, i32 32 | |
%18 = load i64** %17 | |
%19 = bitcast i64* %18 to void (i64*, i64, i64*)* | |
call cc16 void %19(i64* %9, i64 1, i64* %15) | |
%20 = call cc16 i64* @.Lp_3_plt_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_Create_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfoFlags_string_llvm(i32 3, i64* null) | |
%t127 = load volatile i64* %9 | |
%21 = inttoptr i64 %t127 to i64** | |
%22 = getelementptr i64** %21, i32 32 | |
%23 = load i64** %22 | |
%24 = bitcast i64* %23 to void (i64*, i64, i64*)* | |
call cc16 void %24(i64* %9, i64 2, i64* %20) | |
%25 = call cc16 i64* @.Lp_4_plt_Microsoft_CSharp_RuntimeBinder_Binder_InvokeMember_Microsoft_CSharp_RuntimeBinder_CSharpBinderFlags_string_System_Collections_Generic_IEnumerable_1_System_Type_System_Type_System_Collections_Generic_IEnumerable_1_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_llvm(i32 0, i64* %LDSTR_29, i64* null, i64* %TYPE_FROM_HANDLE_30, i64* %9) | |
%VTABLE_32 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 32), !invariant.load !26 | |
%26 = call cc16 i64* @.Lp_5_plt_System_Runtime_CompilerServices_CallSite_1_System_Func_5_System_Runtime_CompilerServices_CallSite_object_int_int_object_Create_System_Runtime_CompilerServices_CallSiteBinder_llvm(i64* inreg %VTABLE_32, i64* %25) | |
%SFLDA_285 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28), !invariant.load !26 | |
%27 = getelementptr i64* %SFLDA_285, i32 0 | |
%28 = ptrtoint i64* %26 to i64 | |
store i64 %28, i64* %27 | |
br label %BB6 | |
BB6: ; preds = %BB7, %BB4 | |
%SFLDA_283 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28), !invariant.load !26 | |
%t142 = load i64* %SFLDA_283 | |
%29 = inttoptr i64 %t142 to i64* | |
%30 = getelementptr i64* %29, i32 4 | |
%t143 = load volatile i64* %30 | |
%SFLDA_284 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28), !invariant.load !26 | |
%t145 = load i64* %SFLDA_284 | |
%31 = inttoptr i64 %t143 to i64** | |
%32 = getelementptr i64** %31, i32 3 | |
%33 = load i64** %32 | |
%34 = bitcast i64* %33 to i64* (i64*, i64*, i64*, i32, i32)* | |
%35 = inttoptr i64 %t143 to i64* | |
%36 = inttoptr i64 %t145 to i64* | |
%37 = call cc16 i64* %34(i64* %35, i64* %36, i64* %arg_doer, i32 10, i32 15) | |
%38 = inttoptr i64 %t35 to i64** | |
%39 = getelementptr i64** %38, i32 3 | |
%40 = load i64** %39 | |
%41 = bitcast i64* %40 to float (i64*, i64*, i64*)* | |
%42 = inttoptr i64 %t35 to i64* | |
%43 = inttoptr i64 %t37 to i64* | |
%44 = call cc16 float %41(i64* %42, i64* %43, i64* %37) | |
%45 = fpext float %44 to double | |
%46 = fptrunc double %45 to float | |
br label %BB1 | |
BB1: ; preds = %BB6 | |
ret float %46 | |
} |
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 characters
; Function Attrs: uwtable | |
define hidden cc16 float @DynVsIface_Benches_ThroughExact_DynVsIface_TaskDoer(i64* %this, i64* %arg_doer) #1 { | |
BB0: | |
%0 = load volatile i64* %arg_doer | |
ret float 1.500000e+02 | |
} | |
; Function Attrs: uwtable | |
define hidden cc16 float @DynVsIface_Benches_ThroughInterface_DynVsIface_IDoTask(i64* %this, i64* %arg_doer) #1 { | |
BB0: | |
%t26 = load volatile i64* %arg_doer | |
%METHODCONST_26 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 26), !invariant.load !26 | |
%0 = inttoptr i64 %t26 to i64** | |
%1 = getelementptr i64** %0, i32 -17 | |
%2 = load i64** %1 | |
%3 = bitcast i64* %2 to float (i64*, i64*, float, float)* | |
%4 = call cc16 float %3(i64* inreg %METHODCONST_26, i64* %arg_doer, float 1.000000e+01, float 1.500000e+01) | |
ret float %4 | |
} | |
; Function Attrs: uwtable | |
define hidden cc16 float @DynVsIface_Benches_ThroughDynamic_object(i64* %this, i64* %arg_doer) #1 { | |
BB0: | |
%SFLDA_27 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27), !invariant.load !26 | |
%t20 = load i64* %SFLDA_27 | |
%0 = icmp eq i64 %t20, 0 | |
br i1 %0, label %BB5, label %BB4 | |
BB5: ; preds = %BB0 | |
%TYPE_FROM_HANDLE_33 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 33), !invariant.load !26 | |
%TYPE_FROM_HANDLE_306 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 30), !invariant.load !26 | |
%1 = call cc16 i64* @.Lp_6_plt_Microsoft_CSharp_RuntimeBinder_Binder_Convert_Microsoft_CSharp_RuntimeBinder_CSharpBinderFlags_System_Type_System_Type_llvm(i32 0, i64* %TYPE_FROM_HANDLE_33, i64* %TYPE_FROM_HANDLE_306) | |
%VTABLE_34 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 34), !invariant.load !26 | |
%2 = call cc16 i64* @.Lp_7_plt_System_Runtime_CompilerServices_CallSite_1_System_Func_3_System_Runtime_CompilerServices_CallSite_object_single_Create_System_Runtime_CompilerServices_CallSiteBinder_llvm(i64* inreg %VTABLE_34, i64* %1) | |
%SFLDA_277 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27), !invariant.load !26 | |
%3 = ptrtoint i64* %2 to i64 | |
store i64 %3, i64* %SFLDA_277 | |
%SFLDA_271.pre = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 27) | |
%t34.pre = load i64* %SFLDA_271.pre | |
br label %BB4 | |
BB4: ; preds = %BB5, %BB0 | |
%t34 = phi i64 [ %t20, %BB0 ], [ %t34.pre, %BB5 ] | |
%4 = inttoptr i64 %t34 to i64* | |
%5 = getelementptr i64* %4, i32 4 | |
%t35 = load volatile i64* %5 | |
%SFLDA_28 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28), !invariant.load !26 | |
%t39 = load i64* %SFLDA_28 | |
%6 = icmp eq i64 %t39, 0 | |
br i1 %6, label %BB7, label %BB6 | |
BB7: ; preds = %BB4 | |
%LDSTR_29 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 29), !invariant.load !26 | |
%TYPE_FROM_HANDLE_30 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 30), !invariant.load !26 | |
%VTABLE_31 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 31), !invariant.load !26 | |
%7 = ptrtoint i64* %VTABLE_31 to i64 | |
%8 = call cc16 i64* @.Lp_2_plt_wrapper_alloc_object_AllocVector_intptr_intptr_llvm(i64 %7, i64 3) | |
%9 = call cc16 i64* @.Lp_3_plt_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_Create_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfoFlags_string_llvm(i32 0, i64* null) | |
%t75 = load i64* %8 | |
%10 = inttoptr i64 %t75 to i64** | |
%11 = getelementptr i64** %10, i32 32 | |
%12 = load i64** %11 | |
%13 = bitcast i64* %12 to void (i64*, i64, i64*)* | |
call cc16 void %13(i64* %8, i64 0, i64* %9) | |
%14 = call cc16 i64* @.Lp_3_plt_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_Create_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfoFlags_string_llvm(i32 3, i64* null) | |
%t101 = load volatile i64* %8 | |
%15 = inttoptr i64 %t101 to i64** | |
%16 = getelementptr i64** %15, i32 32 | |
%17 = load i64** %16 | |
%18 = bitcast i64* %17 to void (i64*, i64, i64*)* | |
call cc16 void %18(i64* %8, i64 1, i64* %14) | |
%19 = call cc16 i64* @.Lp_3_plt_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_Create_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfoFlags_string_llvm(i32 3, i64* null) | |
%t127 = load volatile i64* %8 | |
%20 = inttoptr i64 %t127 to i64** | |
%21 = getelementptr i64** %20, i32 32 | |
%22 = load i64** %21 | |
%23 = bitcast i64* %22 to void (i64*, i64, i64*)* | |
call cc16 void %23(i64* %8, i64 2, i64* %19) | |
%24 = call cc16 i64* @.Lp_4_plt_Microsoft_CSharp_RuntimeBinder_Binder_InvokeMember_Microsoft_CSharp_RuntimeBinder_CSharpBinderFlags_string_System_Collections_Generic_IEnumerable_1_System_Type_System_Type_System_Collections_Generic_IEnumerable_1_Microsoft_CSharp_RuntimeBinder_CSharpArgumentInfo_llvm(i32 0, i64* %LDSTR_29, i64* null, i64* %TYPE_FROM_HANDLE_30, i64* %8) | |
%VTABLE_32 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 32), !invariant.load !26 | |
%25 = call cc16 i64* @.Lp_5_plt_System_Runtime_CompilerServices_CallSite_1_System_Func_5_System_Runtime_CompilerServices_CallSite_object_int_int_object_Create_System_Runtime_CompilerServices_CallSiteBinder_llvm(i64* inreg %VTABLE_32, i64* %24) | |
%SFLDA_285 = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28), !invariant.load !26 | |
%26 = ptrtoint i64* %25 to i64 | |
store i64 %26, i64* %SFLDA_285 | |
%SFLDA_283.pre = load i64** getelementptr inbounds ([43 x i64*]* @mono_aot_ConsoleApplication1_llvm_got, i32 0, i32 28) | |
%t142.pre = load i64* %SFLDA_283.pre | |
br label %BB6 | |
BB6: ; preds = %BB7, %BB4 | |
%t142 = phi i64 [ %t39, %BB4 ], [ %t142.pre, %BB7 ] | |
%27 = inttoptr i64 %t142 to i64* | |
%28 = getelementptr i64* %27, i32 4 | |
%t143 = load volatile i64* %28 | |
%29 = inttoptr i64 %t143 to i64** | |
%30 = getelementptr i64** %29, i32 3 | |
%31 = load i64** %30 | |
%32 = bitcast i64* %31 to i64* (i64*, i64*, i64*, i32, i32)* | |
%33 = inttoptr i64 %t143 to i64* | |
%34 = call cc16 i64* %32(i64* %33, i64* %27, i64* %arg_doer, i32 10, i32 15) | |
%35 = inttoptr i64 %t35 to i64** | |
%36 = getelementptr i64** %35, i32 3 | |
%37 = load i64** %36 | |
%38 = bitcast i64* %37 to float (i64*, i64*, i64*)* | |
%39 = inttoptr i64 %t35 to i64* | |
%40 = call cc16 float %38(i64* %39, i64* %4, i64* %34) | |
ret float %40 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment