Aboudek/ASM_TO_LLVM_V2
0
1; ModuleID = 'tmux/extr_input.c_input_input.c'2source_filename = "tmux/extr_input.c_input_input.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.input_ctx = type { i64, i32, ptr, i8, i32 }7 8@INPUT_BUF_LIMIT = dso_local global i64 0, align 89@INPUT_DISCARD = dso_local global i32 0, align 410@llvm.compiler.used = appending global [1 x ptr] [ptr @input_input], section "llvm.metadata"11 12; Function Attrs: noinline nounwind optnone uwtable13define internal i32 @input_input(ptr noundef %0) #0 {14 %2 = alloca i32, align 415 %3 = alloca ptr, align 816 %4 = alloca i64, align 817 store ptr %0, ptr %3, align 818 %5 = load ptr, ptr %3, align 819 %6 = getelementptr inbounds %struct.input_ctx, ptr %5, i32 0, i32 020 %7 = load i64, ptr %6, align 821 store i64 %7, ptr %4, align 822 br label %823 248: ; preds = %28, %125 %9 = load ptr, ptr %3, align 826 %10 = getelementptr inbounds %struct.input_ctx, ptr %9, i32 0, i32 127 %11 = load i32, ptr %10, align 828 %12 = add nsw i32 %11, 129 %13 = sext i32 %12 to i6430 %14 = load i64, ptr %4, align 831 %15 = icmp uge i64 %13, %1432 br i1 %15, label %16, label %3933 3416: ; preds = %835 %17 = load i64, ptr %4, align 836 %18 = mul i64 %17, 237 store i64 %18, ptr %4, align 838 %19 = load i64, ptr %4, align 839 %20 = load i64, ptr @INPUT_BUF_LIMIT, align 840 %21 = icmp ugt i64 %19, %2041 br i1 %21, label %22, label %2842 4322: ; preds = %1644 %23 = load i32, ptr @INPUT_DISCARD, align 445 %24 = load ptr, ptr %3, align 846 %25 = getelementptr inbounds %struct.input_ctx, ptr %24, i32 0, i32 447 %26 = load i32, ptr %25, align 448 %27 = or i32 %26, %2349 store i32 %27, ptr %25, align 450 store i32 0, ptr %2, align 451 br label %6052 5328: ; preds = %1654 %29 = load ptr, ptr %3, align 855 %30 = getelementptr inbounds %struct.input_ctx, ptr %29, i32 0, i32 256 %31 = load ptr, ptr %30, align 857 %32 = load i64, ptr %4, align 858 %33 = call ptr @xrealloc(ptr noundef %31, i64 noundef %32)59 %34 = load ptr, ptr %3, align 860 %35 = getelementptr inbounds %struct.input_ctx, ptr %34, i32 0, i32 261 store ptr %33, ptr %35, align 862 %36 = load i64, ptr %4, align 863 %37 = load ptr, ptr %3, align 864 %38 = getelementptr inbounds %struct.input_ctx, ptr %37, i32 0, i32 065 store i64 %36, ptr %38, align 866 br label %8, !llvm.loop !667 6839: ; preds = %869 %40 = load ptr, ptr %3, align 870 %41 = getelementptr inbounds %struct.input_ctx, ptr %40, i32 0, i32 371 %42 = load i8, ptr %41, align 872 %43 = load ptr, ptr %3, align 873 %44 = getelementptr inbounds %struct.input_ctx, ptr %43, i32 0, i32 274 %45 = load ptr, ptr %44, align 875 %46 = load ptr, ptr %3, align 876 %47 = getelementptr inbounds %struct.input_ctx, ptr %46, i32 0, i32 177 %48 = load i32, ptr %47, align 878 %49 = add nsw i32 %48, 179 store i32 %49, ptr %47, align 880 %50 = sext i32 %48 to i6481 %51 = getelementptr inbounds i8, ptr %45, i64 %5082 store i8 %42, ptr %51, align 183 %52 = load ptr, ptr %3, align 884 %53 = getelementptr inbounds %struct.input_ctx, ptr %52, i32 0, i32 285 %54 = load ptr, ptr %53, align 886 %55 = load ptr, ptr %3, align 887 %56 = getelementptr inbounds %struct.input_ctx, ptr %55, i32 0, i32 188 %57 = load i32, ptr %56, align 889 %58 = sext i32 %57 to i6490 %59 = getelementptr inbounds i8, ptr %54, i64 %5891 store i8 0, ptr %59, align 192 store i32 0, ptr %2, align 493 br label %6094 9560: ; preds = %39, %2296 %61 = load i32, ptr %2, align 497 ret i32 %6198}99 100declare ptr @xrealloc(ptr noundef, i64 noundef) #1101 102attributes #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" }103attributes #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" }104 105!llvm.module.flags = !{!0, !1, !2, !3, !4}106!llvm.ident = !{!5}107 108!0 = !{i32 1, !"wchar_size", i32 4}109!1 = !{i32 7, !"PIC Level", i32 2}110!2 = !{i32 7, !"PIE Level", i32 2}111!3 = !{i32 7, !"uwtable", i32 2}112!4 = !{i32 7, !"frame-pointer", i32 2}113!5 = !{!"clang version 15.0.3"}114!6 = distinct !{!6, !7}115!7 = !{!"llvm.loop.mustprogress"}116 