Aboudek/ASM_TO_LLVM_V2
0
1; ModuleID = 'tg/extr_loop.c_write_state_file.c'2source_filename = "tg/extr_loop.c_write_state_file.c"3target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-unknown-linux-gnu"5 6%struct.TYPE_2__ = type { i32, i32, i32, i32 }7 8@binlog_enabled = dso_local global i64 0, align 89@write_state_file.wseq = internal global i32 0, align 410@write_state_file.wpts = internal global i32 0, align 411@write_state_file.wqts = internal global i32 0, align 412@write_state_file.wdate = internal global i32 0, align 413@TLS = dso_local global ptr null, align 814@O_CREAT = dso_local global i32 0, align 415@O_RDWR = dso_local global i32 0, align 416@.str = private unnamed_addr constant [35 x i8] c"Can not write state file '%s': %m\0A\00", align 117@STATE_FILE_MAGIC = dso_local global i32 0, align 418 19; Function Attrs: noinline nounwind optnone uwtable20define dso_local void @write_state_file() #0 {21 %1 = alloca i32, align 422 %2 = alloca [6 x i32], align 1623 %3 = load i64, ptr @binlog_enabled, align 824 %4 = icmp ne i64 %3, 025 br i1 %4, label %5, label %626 275: ; preds = %028 br label %7529 306: ; preds = %031 %7 = load i32, ptr @write_state_file.wseq, align 432 %8 = load ptr, ptr @TLS, align 833 %9 = getelementptr inbounds %struct.TYPE_2__, ptr %8, i32 0, i32 034 %10 = load i32, ptr %9, align 435 %11 = icmp sge i32 %7, %1036 br i1 %11, label %12, label %3137 3812: ; preds = %639 %13 = load i32, ptr @write_state_file.wpts, align 440 %14 = load ptr, ptr @TLS, align 841 %15 = getelementptr inbounds %struct.TYPE_2__, ptr %14, i32 0, i32 142 %16 = load i32, ptr %15, align 443 %17 = icmp sge i32 %13, %1644 br i1 %17, label %18, label %3145 4618: ; preds = %1247 %19 = load i32, ptr @write_state_file.wqts, align 448 %20 = load ptr, ptr @TLS, align 849 %21 = getelementptr inbounds %struct.TYPE_2__, ptr %20, i32 0, i32 250 %22 = load i32, ptr %21, align 451 %23 = icmp sge i32 %19, %2252 br i1 %23, label %24, label %3153 5424: ; preds = %1855 %25 = load i32, ptr @write_state_file.wdate, align 456 %26 = load ptr, ptr @TLS, align 857 %27 = getelementptr inbounds %struct.TYPE_2__, ptr %26, i32 0, i32 358 %28 = load i32, ptr %27, align 459 %29 = icmp sge i32 %25, %2860 br i1 %29, label %30, label %3161 6230: ; preds = %2463 br label %7564 6531: ; preds = %24, %18, %12, %666 %32 = load ptr, ptr @TLS, align 867 %33 = getelementptr inbounds %struct.TYPE_2__, ptr %32, i32 0, i32 068 %34 = load i32, ptr %33, align 469 store i32 %34, ptr @write_state_file.wseq, align 470 %35 = load ptr, ptr @TLS, align 871 %36 = getelementptr inbounds %struct.TYPE_2__, ptr %35, i32 0, i32 172 %37 = load i32, ptr %36, align 473 store i32 %37, ptr @write_state_file.wpts, align 474 %38 = load ptr, ptr @TLS, align 875 %39 = getelementptr inbounds %struct.TYPE_2__, ptr %38, i32 0, i32 276 %40 = load i32, ptr %39, align 477 store i32 %40, ptr @write_state_file.wqts, align 478 %41 = load ptr, ptr @TLS, align 879 %42 = getelementptr inbounds %struct.TYPE_2__, ptr %41, i32 0, i32 380 %43 = load i32, ptr %42, align 481 store i32 %43, ptr @write_state_file.wdate, align 482 %44 = call i32 (...) @get_state_filename()83 %45 = load i32, ptr @O_CREAT, align 484 %46 = load i32, ptr @O_RDWR, align 485 %47 = or i32 %45, %4686 %48 = call i32 @open(i32 noundef %44, i32 noundef %47, i32 noundef 384)87 store i32 %48, ptr %1, align 488 %49 = load i32, ptr %1, align 489 %50 = icmp slt i32 %49, 090 br i1 %50, label %51, label %5591 9251: ; preds = %3193 %52 = call i32 (...) @get_state_filename()94 %53 = call i32 @logprintf(ptr noundef @.str, i32 noundef %52)95 %54 = call i32 @do_halt(i32 noundef 1)96 br label %5597 9855: ; preds = %51, %3199 %56 = load i32, ptr @STATE_FILE_MAGIC, align 4100 %57 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 0101 store i32 %56, ptr %57, align 16102 %58 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 1103 store i32 0, ptr %58, align 4104 %59 = load i32, ptr @write_state_file.wpts, align 4105 %60 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 2106 store i32 %59, ptr %60, align 8107 %61 = load i32, ptr @write_state_file.wqts, align 4108 %62 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 3109 store i32 %61, ptr %62, align 4110 %63 = load i32, ptr @write_state_file.wseq, align 4111 %64 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 4112 store i32 %63, ptr %64, align 16113 %65 = load i32, ptr @write_state_file.wdate, align 4114 %66 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 5115 store i32 %65, ptr %66, align 4116 %67 = load i32, ptr %1, align 4117 %68 = getelementptr inbounds [6 x i32], ptr %2, i64 0, i64 0118 %69 = call i32 @write(i32 noundef %67, ptr noundef %68, i32 noundef 24)119 %70 = icmp eq i32 %69, 24120 %71 = zext i1 %70 to i32121 %72 = call i32 @assert(i32 noundef %71)122 %73 = load i32, ptr %1, align 4123 %74 = call i32 @close(i32 noundef %73)124 br label %75125 12675: ; preds = %55, %30, %5127 ret void128}129 130declare i32 @open(i32 noundef, i32 noundef, i32 noundef) #1131 132declare i32 @get_state_filename(...) #1133 134declare i32 @logprintf(ptr noundef, i32 noundef) #1135 136declare i32 @do_halt(i32 noundef) #1137 138declare i32 @assert(i32 noundef) #1139 140declare i32 @write(i32 noundef, ptr noundef, i32 noundef) #1141 142declare i32 @close(i32 noundef) #1143 144attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }145attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }146 147!llvm.module.flags = !{!0, !1, !2, !3, !4}148!llvm.ident = !{!5}149 150!0 = !{i32 1, !"wchar_size", i32 4}151!1 = !{i32 7, !"PIC Level", i32 2}152!2 = !{i32 7, !"PIE Level", i32 2}153!3 = !{i32 7, !"uwtable", i32 2}154!4 = !{i32 7, !"frame-pointer", i32 2}155!5 = !{!"clang version 15.0.3"}156 