Skip to content

Instantly share code, notes, and snippets.

@vext01
Created December 9, 2021 16:13
Show Gist options
  • Save vext01/67b75ebaaef189a85ea2ef8e4c630df0 to your computer and use it in GitHub Desktop.
Save vext01/67b75ebaaef189a85ea2ef8e4c630df0 to your computer and use it in GitHub Desktop.
control point
define %YkCtrlPointVars @yk_new_control_point(%struct.YkLocation* %0, %YkCtrlPointVars %1) {
%3 = bitcast %struct.YkLocation* %0 to i8*
%4 = call i64 @__ykrt_transition_location(i8* %3)
switch i64 %4, label %5 [
i64 1, label %10
i64 2, label %9
i64 3, label %12
]
5: ; preds = %5, %2
%6 = inttoptr i64 %4 to i8*
%7 = bitcast i8* %6 to %YkCtrlPointVars (%YkCtrlPointVars)*
call void (i8*, ...) @__yk_debug_print(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @1, i32 0, i32 0))
%8 = tail call %YkCtrlPointVars %7(%YkCtrlPointVars %1)
call void (i8*, ...) @__yk_debug_print(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @2, i32 0, i32 0))
br label %5
9: ; preds = %2
call void (i8*, ...) @__yk_debug_print(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @0, i32 0, i32 0))
call void @__yktrace_start_tracing(i64 1)
br label %10
10: ; preds = %12, %9, %2
%11 = phi %YkCtrlPointVars [ %1, %2 ], [ %1, %9 ], [ %1, %12 ]
ret %YkCtrlPointVars %11
12: ; preds = %2
%13 = call i8* @__yktrace_stop_tracing()
%14 = call i8* @__yktrace_irtrace_compile(i8* %13)
call void @__ykrt_set_loc_code_ptr(i8* %3, i8* %14)
call void (i8*, ...) @__yk_debug_print(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @3, i32 0, i32 0))
br label %10
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment