llvm-project icon indicating copy to clipboard operation
llvm-project copied to clipboard

LLVM ERROR: Unsupported dynamic stack allocation

Open liusy58 opened this issue 3 years ago • 3 comments

I am getting core dump when I try to compile ebpf code.

The error message is below:

$ llc -march=bpf -filetype=obj -o dist/tracee.bpf.core.o ./dist/tracee.bpf.core.new.ll
LLVM ERROR: Unsupported dynamic stack allocation
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -march=bpf -filetype=obj -o dist/tracee.bpf.core.o ./dist/tracee.bpf.core.new.ll
1.      Running pass 'Function Pass Manager' on module './dist/tracee.bpf.core.new.ll'.
2.      Running pass 'BPF DAG->DAG Pattern Instruction Selection' on function '@tracepoint__raw_syscalls__sys_enter'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamEi+0x31)[0x7f853fc82871]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm3sys17RunSignalHandlersEv+0x50)[0x7f853fc809a0]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xd26f82)[0x7f853fc82f82]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x143c0)[0x7f853ef4d3c0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f853ea3e03b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f853ea1d859]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xc80b69)[0x7f853fbdcb69]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0xc80986)[0x7f853fbdc986]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0x2a4e68f)[0x7f85419aa68f]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(+0x130679b)[0x7f854026279b]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm12SelectionDAG8LegalizeEv+0x1a5)[0x7f8540261d45]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv+0x48d)[0x7f85403a1e9d]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE+0x185a)[0x7f85403a140a]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE+0x796)[0x7f854039ef96]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE+0xfe)[0x7f853ffa460e]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE+0x3a0)[0x7f853fdb64f0]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE+0x33)[0x7f853fdbc0a3]
/lib/x86_64-linux-gnu/libLLVM-12.so.1(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x3a8)[0x7f853fdb6af8]
llc(main+0x20b0)[0x40e990]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f853ea1f0b3]
llc(_start+0x2e)[0x40c38e]

In fact, I cannot find any instructions relating to dynamic stack allocation.

The IR
; Function Attrs: nounwind
define dso_local i32 @tracepoint__raw_syscalls__sys_enter(%struct.bpf_raw_tracepoint_args* %0) #1 section "raw_tracepoint/sys_enter" !dbg !1674 {
BB1:
  %1 = alloca i32, align 4
  %2 = bitcast i32* %1 to i8*
  store i32 1, i32* %1, align 4, !tbaa !1657
  %3 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon* @pin_counter to i8*), i8* nonnull %2) #7
  %4 = icmp eq i8* %3, null
  br i1 %4, label %BB2, label %BB3

BB2:                                              ; preds = %BB1
  %5 = getelementptr inbounds i8, i8* %3, i64 16
  %6 = bitcast i8* %5 to i64*
  %7 = load i64, i64* %6, align 8, !tbaa !1668
  %8 = add i64 %7, 1
  store i64 %8, i64* %6, align 8, !tbaa !1668
  br label %9

BB3:                                              ; preds = %BB1
  ret i32 -1

9:                                                ; preds = %BB2
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i32, align 4
  %20 = alloca %struct.kernfs_node*, align 8
  %21 = alloca i64, align 8
  %22 = alloca %struct.css_set*, align 8
  %23 = alloca %struct.cgroup_subsys_state*, align 8
  %24 = alloca %struct.cgroup*, align 8
  %25 = alloca %struct.nsproxy*, align 8
  %26 = alloca %struct.uts_namespace*, align 8
  %27 = alloca [65 x i8], align 1
  %28 = alloca %struct.pid*, align 8
  %29 = alloca %struct.pid*, align 8
  %30 = alloca i32, align 4
  %31 = alloca %struct.pid_namespace*, align 8
  %32 = alloca i32, align 4
  %33 = alloca %struct.mnt_namespace*, align 8
  %34 = alloca i32, align 4
  %35 = alloca %struct.nsproxy*, align 8
  %36 = alloca %struct.pid*, align 8
  %37 = alloca %struct.pid*, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.task_struct*, align 8
  %41 = alloca %struct.pid*, align 8
  %42 = alloca %struct.pid*, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.task_struct*, align 8
  %46 = alloca %struct.pid*, align 8
  %47 = alloca %struct.pid*, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.task_struct*, align 8
  %51 = alloca i32, align 4
  %52 = alloca i64, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca %struct.event_data, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  call void @llvm.dbg.value(metadata %struct.bpf_raw_tracepoint_args* %0, metadata !1679, metadata !DIExpression()), !dbg !1715
  %69 = bitcast %struct.event_data* %56 to i8*, !dbg !1716
  call void @llvm.lifetime.start.p0i8(i64 168, i8* nonnull %69) #7, !dbg !1716
  call void @llvm.dbg.declare(metadata %struct.event_data* %56, metadata !1680, metadata !DIExpression()), !dbg !1717
  call void @llvm.memset.p0i8.i64(i8* nonnull align 8 dereferenceable(168) %69, i8 0, i64 168, i1 false), !dbg !1717
  %70 = bitcast %struct.bpf_raw_tracepoint_args* %0 to i8*, !dbg !1718
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !1720, metadata !DIExpression()) #7, !dbg !1739
  call void @llvm.dbg.value(metadata i8* %70, metadata !1725, metadata !DIExpression()) #7, !dbg !1739
  %71 = bitcast i32* %53 to i8*, !dbg !1741
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %71) #7, !dbg !1741
  call void @llvm.dbg.value(metadata i32 0, metadata !1726, metadata !DIExpression()) #7, !dbg !1739
  store i32 0, i32* %53, align 4, !dbg !1742, !tbaa !1657
  call void @llvm.dbg.value(metadata i32* %53, metadata !1726, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1739
  %72 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.34* @config_map to i8*), i8* nonnull %71) #7, !dbg !1743
  %73 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 4, !dbg !1744
  %74 = bitcast %struct.config_entry** %73 to i8**, !dbg !1745
  store i8* %72, i8** %74, align 8, !dbg !1745, !tbaa !1746
  %75 = icmp eq i8* %72, null, !dbg !1752
  br i1 %75, label %76, label %77, !dbg !1754

76:                                               ; preds = %9
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %71) #7, !dbg !1755
  br label %1188, !dbg !1756

77:                                               ; preds = %9
  %78 = call i64 inttoptr (i64 35 to i64 ()*)() #7, !dbg !1757
  %79 = inttoptr i64 %78 to %struct.task_struct*, !dbg !1758
  %80 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 1, !dbg !1759
  store %struct.task_struct* %79, %struct.task_struct** %80, align 8, !dbg !1760, !tbaa !1761
  %81 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !1762, !tbaa !1746
  %82 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %81, i64 0, i32 1, !dbg !1763
  %83 = load i32, i32* %82, align 4, !dbg !1763, !tbaa !1764
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !1766, metadata !DIExpression()) #7, !dbg !1776
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1772, metadata !DIExpression()) #7, !dbg !1776
  call void @llvm.dbg.value(metadata i32 %83, metadata !1773, metadata !DIExpression()) #7, !dbg !1776
  %84 = call i64 inttoptr (i64 14 to i64 ()*)() #7, !dbg !1778
  call void @llvm.dbg.value(metadata i64 %84, metadata !1774, metadata !DIExpression()) #7, !dbg !1776
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1779, metadata !DIExpression()) #7, !dbg !1786
  %85 = bitcast i64* %52 to i8*, !dbg !1788
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %85) #7, !dbg !1788
  call void @llvm.dbg.value(metadata i64* %52, metadata !1784, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1789
  store i64 0, i64* %52, align 8, !dbg !1788
  %86 = load i64, i64* @"llvm.task_struct:0:72$0:10", align 8
  %87 = inttoptr i64 %78 to i8*
  %88 = getelementptr i8, i8* %87, i64 %86
  %89 = bitcast i8* %88 to i64*
  %90 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 22, i64* %89) #7
  %91 = bitcast i64* %90 to i8*, !dbg !1788
  %92 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %85, i32 8, i8* %91) #7, !dbg !1788
  %93 = load i64, i64* %52, align 8, !dbg !1788, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %93, metadata !1784, metadata !DIExpression()) #7, !dbg !1789
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %85) #7, !dbg !1790
  %94 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 0, !dbg !1791
  store i64 %93, i64* %94, align 8, !dbg !1792, !tbaa !1793
  %95 = trunc i64 %84 to i32, !dbg !1794
  %96 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 6, !dbg !1795
  store i32 %95, i32* %96, align 8, !dbg !1796, !tbaa !1797
  %97 = lshr i64 %84, 32, !dbg !1798
  %98 = trunc i64 %97 to i32, !dbg !1799
  %99 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 5, !dbg !1800
  store i32 %98, i32* %99, align 4, !dbg !1801, !tbaa !1802
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1803, metadata !DIExpression()) #7, !dbg !1813
  %100 = bitcast %struct.task_struct** %50 to i8*, !dbg !1815
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %100) #7, !dbg !1815
  call void @llvm.dbg.value(metadata %struct.task_struct** %50, metadata !1809, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1816
  %101 = bitcast %struct.task_struct** %50 to i64*, !dbg !1815
  store i64 0, i64* %101, align 8, !dbg !1815
  %102 = load i64, i64* @"llvm.task_struct:0:32$0:6", align 8
  %103 = getelementptr i8, i8* %87, i64 %102
  %104 = bitcast i8* %103 to %struct.task_struct**
  %105 = call %struct.task_struct** @llvm.bpf.passthrough.p0p0s_struct.task_structs.p0p0s_struct.task_structs(i32 379, %struct.task_struct** %104) #7
  %106 = bitcast %struct.task_struct** %105 to i8*, !dbg !1815
  %107 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %100, i32 8, i8* %106) #7, !dbg !1815
  %108 = bitcast %struct.task_struct** %50 to i8**, !dbg !1815
  %109 = load i8*, i8** %108, align 8, !dbg !1815, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.task_struct* undef, metadata !1809, metadata !DIExpression()) #7, !dbg !1816
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %100) #7, !dbg !1818
  call void @llvm.dbg.value(metadata %struct.task_struct* undef, metadata !1808, metadata !DIExpression()) #7, !dbg !1813
  %110 = bitcast i32* %51 to i8*, !dbg !1819
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %110) #7, !dbg !1819
  call void @llvm.dbg.value(metadata i32* %51, metadata !1811, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1820
  store i32 0, i32* %51, align 4, !dbg !1819
  %111 = load i64, i64* @"llvm.task_struct:0:24$0:5", align 8
  %112 = getelementptr i8, i8* %109, i64 %111
  %113 = bitcast i8* %112 to i32*
  %114 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 380, i32* %113) #7
  %115 = bitcast i32* %114 to i8*, !dbg !1819
  %116 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %110, i32 4, i8* %115) #7, !dbg !1819
  %117 = load i32, i32* %51, align 4, !dbg !1819, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %117, metadata !1811, metadata !DIExpression()) #7, !dbg !1820
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %110) #7, !dbg !1821
  %118 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 7, !dbg !1822
  store i32 %117, i32* %118, align 4, !dbg !1823, !tbaa !1824
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1825, metadata !DIExpression()) #7, !dbg !1828
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1830, metadata !DIExpression()) #7, !dbg !1848
  call void @llvm.dbg.value(metadata i32 0, metadata !1833, metadata !DIExpression()) #7, !dbg !1848
  call void @llvm.dbg.value(metadata %struct.pid* null, metadata !1834, metadata !DIExpression()) #7, !dbg !1848
  %119 = load i32, i32* @"llvm.pid_link:8:1$0", align 4
  %120 = call i32 @llvm.bpf.passthrough.i32.i32(i32 395, i32 %119) #7
  %121 = icmp eq i32 %120, 0, !dbg !1850
  br i1 %121, label %133, label %122, !dbg !1851

122:                                              ; preds = %77
  call void @llvm.dbg.value(metadata i8* %87, metadata !1835, metadata !DIExpression()) #7, !dbg !1852
  %123 = bitcast %struct.pid** %46 to i8*, !dbg !1853
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %123) #7, !dbg !1853
  call void @llvm.dbg.value(metadata %struct.pid** %46, metadata !1839, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1854
  %124 = bitcast %struct.pid** %46 to i64*, !dbg !1853
  store i64 0, i64* %124, align 8, !dbg !1853
  %125 = load i64, i64* @"llvm.task_struct___older_v50:0:16$0:0:0:1", align 8
  %126 = getelementptr i8, i8* %87, i64 %125
  %127 = bitcast i8* %126 to %struct.pid**
  %128 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 396, %struct.pid** %127) #7
  %129 = bitcast %struct.pid** %128 to i8*, !dbg !1853
  %130 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %123, i32 8, i8* %129) #7, !dbg !1853
  %131 = bitcast %struct.pid** %46 to i8**, !dbg !1853
  %132 = load i8*, i8** %131, align 8, !dbg !1853, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1839, metadata !DIExpression()) #7, !dbg !1854
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %123) #7, !dbg !1855
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1848
  br label %144, !dbg !1856

133:                                              ; preds = %77
  %134 = bitcast %struct.pid** %47 to i8*, !dbg !1857
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %134) #7, !dbg !1857
  call void @llvm.dbg.value(metadata %struct.pid** %47, metadata !1841, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1858
  %135 = bitcast %struct.pid** %47 to i64*, !dbg !1857
  store i64 0, i64* %135, align 8, !dbg !1857
  %136 = load i64, i64* @"llvm.task_struct:0:48$0:8", align 8
  %137 = getelementptr i8, i8* %87, i64 %136
  %138 = bitcast i8* %137 to %struct.pid**
  %139 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 397, %struct.pid** %138) #7
  %140 = bitcast %struct.pid** %139 to i8*, !dbg !1857
  %141 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %134, i32 8, i8* %140) #7, !dbg !1857
  %142 = bitcast %struct.pid** %47 to i8**, !dbg !1857
  %143 = load i8*, i8** %142, align 8, !dbg !1857, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1841, metadata !DIExpression()) #7, !dbg !1858
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %134) #7, !dbg !1859
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1848
  br label %144

144:                                              ; preds = %133, %122
  %145 = phi i8* [ %132, %122 ], [ %143, %133 ], !dbg !1860
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1848
  %146 = bitcast i32* %48 to i8*, !dbg !1861
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %146) #7, !dbg !1861
  call void @llvm.dbg.value(metadata i32* %48, metadata !1844, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1862
  store i32 0, i32* %48, align 4, !dbg !1861
  %147 = load i64, i64* @"llvm.pid:0:0$0:0", align 8
  %148 = getelementptr i8, i8* %145, i64 %147
  %149 = bitcast i8* %148 to i32*
  %150 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 398, i32* %149) #7
  %151 = bitcast i32* %150 to i8*, !dbg !1861
  %152 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %146, i32 4, i8* %151) #7, !dbg !1861
  %153 = load i32, i32* %48, align 4, !dbg !1861, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %153, metadata !1844, metadata !DIExpression()) #7, !dbg !1862
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %146) #7, !dbg !1863
  call void @llvm.dbg.value(metadata i32 %153, metadata !1833, metadata !DIExpression()) #7, !dbg !1848
  %154 = bitcast i32* %49 to i8*, !dbg !1864
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %154) #7, !dbg !1864
  call void @llvm.dbg.value(metadata i32* %49, metadata !1846, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1865
  store i32 0, i32* %49, align 4, !dbg !1864
  %155 = load i64, i64* @"llvm.pid:0:8$0:1", align 8
  %156 = getelementptr i8, i8* %145, i64 %155
  %157 = bitcast i8* %156 to [1 x %struct.upid]*
  %158 = call [1 x %struct.upid]* @llvm.bpf.passthrough.p0a1s_struct.upids.p0a1s_struct.upids(i32 399, [1 x %struct.upid]* %157) #7
  %159 = zext i32 %153 to i64, !dbg !1864
  %160 = getelementptr inbounds [1 x %struct.upid], [1 x %struct.upid]* %158, i64 0, i64 %159, !dbg !1864
  %161 = load i64, i64* @"llvm.upid:0:0$0:0", align 8
  %162 = bitcast %struct.upid* %160 to i8*
  %163 = getelementptr i8, i8* %162, i64 %161
  %164 = bitcast i8* %163 to i32*
  %165 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 400, i32* %164) #7
  %166 = bitcast i32* %165 to i8*, !dbg !1864
  %167 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %154, i32 4, i8* %166) #7, !dbg !1864
  %168 = load i32, i32* %49, align 4, !dbg !1864, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %168, metadata !1846, metadata !DIExpression()) #7, !dbg !1865
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %154) #7, !dbg !1866
  %169 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 3, !dbg !1867
  store i32 %168, i32* %169, align 4, !dbg !1868, !tbaa !1869
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1870, metadata !DIExpression()) #7, !dbg !1876
  %170 = bitcast %struct.task_struct** %45 to i8*, !dbg !1878
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %170) #7, !dbg !1878
  call void @llvm.dbg.value(metadata %struct.task_struct** %45, metadata !1874, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1879
  %171 = bitcast %struct.task_struct** %45 to i64*, !dbg !1878
  store i64 0, i64* %171, align 8, !dbg !1878
  %172 = load i64, i64* @"llvm.task_struct:0:40$0:7", align 8
  %173 = getelementptr i8, i8* %87, i64 %172
  %174 = bitcast i8* %173 to %struct.task_struct**
  %175 = call %struct.task_struct** @llvm.bpf.passthrough.p0p0s_struct.task_structs.p0p0s_struct.task_structs(i32 25, %struct.task_struct** %174) #7
  %176 = bitcast %struct.task_struct** %175 to i8*, !dbg !1878
  %177 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %170, i32 8, i8* %176) #7, !dbg !1878
  %178 = load %struct.task_struct*, %struct.task_struct** %45, align 8, !dbg !1878, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.task_struct* %178, metadata !1874, metadata !DIExpression()) #7, !dbg !1879
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %170) #7, !dbg !1880
  call void @llvm.dbg.value(metadata %struct.task_struct* %178, metadata !1873, metadata !DIExpression()) #7, !dbg !1876
  call void @llvm.dbg.value(metadata %struct.task_struct* %178, metadata !1830, metadata !DIExpression()) #7, !dbg !1881
  call void @llvm.dbg.value(metadata i32 0, metadata !1833, metadata !DIExpression()) #7, !dbg !1881
  call void @llvm.dbg.value(metadata %struct.pid* null, metadata !1834, metadata !DIExpression()) #7, !dbg !1881
  %179 = load i32, i32* @"llvm.pid_link:8:1$0", align 4
  %180 = call i32 @llvm.bpf.passthrough.i32.i32(i32 395, i32 %179) #7
  %181 = icmp eq i32 %180, 0, !dbg !1883
  br i1 %181, label %194, label %182, !dbg !1884

182:                                              ; preds = %144
  %183 = bitcast %struct.task_struct* %178 to i8*, !dbg !1885
  call void @llvm.dbg.value(metadata i8* %183, metadata !1835, metadata !DIExpression()) #7, !dbg !1886
  %184 = bitcast %struct.pid** %41 to i8*, !dbg !1887
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %184) #7, !dbg !1887
  call void @llvm.dbg.value(metadata %struct.pid** %41, metadata !1839, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1888
  %185 = bitcast %struct.pid** %41 to i64*, !dbg !1887
  store i64 0, i64* %185, align 8, !dbg !1887
  %186 = load i64, i64* @"llvm.task_struct___older_v50:0:16$0:0:0:1", align 8
  %187 = getelementptr i8, i8* %183, i64 %186
  %188 = bitcast i8* %187 to %struct.pid**
  %189 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 396, %struct.pid** %188) #7
  %190 = bitcast %struct.pid** %189 to i8*, !dbg !1887
  %191 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %184, i32 8, i8* %190) #7, !dbg !1887
  %192 = bitcast %struct.pid** %41 to i8**, !dbg !1887
  %193 = load i8*, i8** %192, align 8, !dbg !1887, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1839, metadata !DIExpression()) #7, !dbg !1888
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %184) #7, !dbg !1889
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1881
  br label %206, !dbg !1890

194:                                              ; preds = %144
  %195 = bitcast %struct.pid** %42 to i8*, !dbg !1891
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %195) #7, !dbg !1891
  call void @llvm.dbg.value(metadata %struct.pid** %42, metadata !1841, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1892
  %196 = bitcast %struct.pid** %42 to i64*, !dbg !1891
  store i64 0, i64* %196, align 8, !dbg !1891
  %197 = load i64, i64* @"llvm.task_struct:0:48$0:8", align 8
  %198 = bitcast %struct.task_struct* %178 to i8*
  %199 = getelementptr i8, i8* %198, i64 %197
  %200 = bitcast i8* %199 to %struct.pid**
  %201 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 397, %struct.pid** %200) #7
  %202 = bitcast %struct.pid** %201 to i8*, !dbg !1891
  %203 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %195, i32 8, i8* %202) #7, !dbg !1891
  %204 = bitcast %struct.pid** %42 to i8**, !dbg !1891
  %205 = load i8*, i8** %204, align 8, !dbg !1891, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1841, metadata !DIExpression()) #7, !dbg !1892
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %195) #7, !dbg !1893
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1881
  br label %206

206:                                              ; preds = %194, %182
  %207 = phi i8* [ %193, %182 ], [ %205, %194 ], !dbg !1894
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1881
  %208 = bitcast i32* %43 to i8*, !dbg !1895
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %208) #7, !dbg !1895
  call void @llvm.dbg.value(metadata i32* %43, metadata !1844, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1896
  store i32 0, i32* %43, align 4, !dbg !1895
  %209 = load i64, i64* @"llvm.pid:0:0$0:0", align 8
  %210 = getelementptr i8, i8* %207, i64 %209
  %211 = bitcast i8* %210 to i32*
  %212 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 398, i32* %211) #7
  %213 = bitcast i32* %212 to i8*, !dbg !1895
  %214 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %208, i32 4, i8* %213) #7, !dbg !1895
  %215 = load i32, i32* %43, align 4, !dbg !1895, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %215, metadata !1844, metadata !DIExpression()) #7, !dbg !1896
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %208) #7, !dbg !1897
  call void @llvm.dbg.value(metadata i32 %215, metadata !1833, metadata !DIExpression()) #7, !dbg !1881
  %216 = bitcast i32* %44 to i8*, !dbg !1898
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %216) #7, !dbg !1898
  call void @llvm.dbg.value(metadata i32* %44, metadata !1846, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1899
  store i32 0, i32* %44, align 4, !dbg !1898
  %217 = load i64, i64* @"llvm.pid:0:8$0:1", align 8
  %218 = getelementptr i8, i8* %207, i64 %217
  %219 = bitcast i8* %218 to [1 x %struct.upid]*
  %220 = call [1 x %struct.upid]* @llvm.bpf.passthrough.p0a1s_struct.upids.p0a1s_struct.upids(i32 399, [1 x %struct.upid]* %219) #7
  %221 = zext i32 %215 to i64, !dbg !1898
  %222 = getelementptr inbounds [1 x %struct.upid], [1 x %struct.upid]* %220, i64 0, i64 %221, !dbg !1898
  %223 = load i64, i64* @"llvm.upid:0:0$0:0", align 8
  %224 = bitcast %struct.upid* %222 to i8*
  %225 = getelementptr i8, i8* %224, i64 %223
  %226 = bitcast i8* %225 to i32*
  %227 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 400, i32* %226) #7
  %228 = bitcast i32* %227 to i8*, !dbg !1898
  %229 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %216, i32 4, i8* %228) #7, !dbg !1898
  %230 = load i32, i32* %44, align 4, !dbg !1898, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %230, metadata !1846, metadata !DIExpression()) #7, !dbg !1899
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %216) #7, !dbg !1900
  %231 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 2, !dbg !1901
  store i32 %230, i32* %231, align 8, !dbg !1902, !tbaa !1903
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1904, metadata !DIExpression()) #7, !dbg !1910
  %232 = bitcast %struct.task_struct** %40 to i8*, !dbg !1912
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %232) #7, !dbg !1912
  call void @llvm.dbg.value(metadata %struct.task_struct** %40, metadata !1908, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1913
  %233 = bitcast %struct.task_struct** %40 to i64*, !dbg !1912
  store i64 0, i64* %233, align 8, !dbg !1912
  %234 = load i64, i64* @"llvm.task_struct:0:32$0:6", align 8
  %235 = getelementptr i8, i8* %87, i64 %234
  %236 = bitcast i8* %235 to %struct.task_struct**
  %237 = call %struct.task_struct** @llvm.bpf.passthrough.p0p0s_struct.task_structs.p0p0s_struct.task_structs(i32 381, %struct.task_struct** %236) #7
  %238 = bitcast %struct.task_struct** %237 to i8*, !dbg !1912
  %239 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %232, i32 8, i8* %238) #7, !dbg !1912
  %240 = load %struct.task_struct*, %struct.task_struct** %40, align 8, !dbg !1912, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.task_struct* %240, metadata !1908, metadata !DIExpression()) #7, !dbg !1913
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %232) #7, !dbg !1914
  call void @llvm.dbg.value(metadata %struct.task_struct* %240, metadata !1907, metadata !DIExpression()) #7, !dbg !1910
  call void @llvm.dbg.value(metadata %struct.task_struct* %240, metadata !1830, metadata !DIExpression()) #7, !dbg !1915
  call void @llvm.dbg.value(metadata i32 0, metadata !1833, metadata !DIExpression()) #7, !dbg !1915
  call void @llvm.dbg.value(metadata %struct.pid* null, metadata !1834, metadata !DIExpression()) #7, !dbg !1915
  %241 = load i32, i32* @"llvm.pid_link:8:1$0", align 4
  %242 = call i32 @llvm.bpf.passthrough.i32.i32(i32 395, i32 %241) #7
  %243 = icmp eq i32 %242, 0, !dbg !1917
  br i1 %243, label %256, label %244, !dbg !1918

244:                                              ; preds = %206
  %245 = bitcast %struct.task_struct* %240 to i8*, !dbg !1919
  call void @llvm.dbg.value(metadata i8* %245, metadata !1835, metadata !DIExpression()) #7, !dbg !1920
  %246 = bitcast %struct.pid** %36 to i8*, !dbg !1921
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %246) #7, !dbg !1921
  call void @llvm.dbg.value(metadata %struct.pid** %36, metadata !1839, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1922
  %247 = bitcast %struct.pid** %36 to i64*, !dbg !1921
  store i64 0, i64* %247, align 8, !dbg !1921
  %248 = load i64, i64* @"llvm.task_struct___older_v50:0:16$0:0:0:1", align 8
  %249 = getelementptr i8, i8* %245, i64 %248
  %250 = bitcast i8* %249 to %struct.pid**
  %251 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 396, %struct.pid** %250) #7
  %252 = bitcast %struct.pid** %251 to i8*, !dbg !1921
  %253 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %246, i32 8, i8* %252) #7, !dbg !1921
  %254 = bitcast %struct.pid** %36 to i8**, !dbg !1921
  %255 = load i8*, i8** %254, align 8, !dbg !1921, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1839, metadata !DIExpression()) #7, !dbg !1922
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %246) #7, !dbg !1923
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1915
  br label %268, !dbg !1924

256:                                              ; preds = %206
  %257 = bitcast %struct.pid** %37 to i8*, !dbg !1925
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %257) #7, !dbg !1925
  call void @llvm.dbg.value(metadata %struct.pid** %37, metadata !1841, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1926
  %258 = bitcast %struct.pid** %37 to i64*, !dbg !1925
  store i64 0, i64* %258, align 8, !dbg !1925
  %259 = load i64, i64* @"llvm.task_struct:0:48$0:8", align 8
  %260 = bitcast %struct.task_struct* %240 to i8*
  %261 = getelementptr i8, i8* %260, i64 %259
  %262 = bitcast i8* %261 to %struct.pid**
  %263 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 397, %struct.pid** %262) #7
  %264 = bitcast %struct.pid** %263 to i8*, !dbg !1925
  %265 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %257, i32 8, i8* %264) #7, !dbg !1925
  %266 = bitcast %struct.pid** %37 to i8**, !dbg !1925
  %267 = load i8*, i8** %266, align 8, !dbg !1925, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1841, metadata !DIExpression()) #7, !dbg !1926
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %257) #7, !dbg !1927
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1915
  br label %268

268:                                              ; preds = %256, %244
  %269 = phi i8* [ %255, %244 ], [ %267, %256 ], !dbg !1928
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1834, metadata !DIExpression()) #7, !dbg !1915
  %270 = bitcast i32* %38 to i8*, !dbg !1929
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %270) #7, !dbg !1929
  call void @llvm.dbg.value(metadata i32* %38, metadata !1844, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1930
  store i32 0, i32* %38, align 4, !dbg !1929
  %271 = load i64, i64* @"llvm.pid:0:0$0:0", align 8
  %272 = getelementptr i8, i8* %269, i64 %271
  %273 = bitcast i8* %272 to i32*
  %274 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 398, i32* %273) #7
  %275 = bitcast i32* %274 to i8*, !dbg !1929
  %276 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %270, i32 4, i8* %275) #7, !dbg !1929
  %277 = load i32, i32* %38, align 4, !dbg !1929, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %277, metadata !1844, metadata !DIExpression()) #7, !dbg !1930
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %270) #7, !dbg !1931
  call void @llvm.dbg.value(metadata i32 %277, metadata !1833, metadata !DIExpression()) #7, !dbg !1915
  %278 = bitcast i32* %39 to i8*, !dbg !1932
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %278) #7, !dbg !1932
  call void @llvm.dbg.value(metadata i32* %39, metadata !1846, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1933
  store i32 0, i32* %39, align 4, !dbg !1932
  %279 = load i64, i64* @"llvm.pid:0:8$0:1", align 8
  %280 = getelementptr i8, i8* %269, i64 %279
  %281 = bitcast i8* %280 to [1 x %struct.upid]*
  %282 = call [1 x %struct.upid]* @llvm.bpf.passthrough.p0a1s_struct.upids.p0a1s_struct.upids(i32 399, [1 x %struct.upid]* %281) #7
  %283 = zext i32 %277 to i64, !dbg !1932
  %284 = getelementptr inbounds [1 x %struct.upid], [1 x %struct.upid]* %282, i64 0, i64 %283, !dbg !1932
  %285 = load i64, i64* @"llvm.upid:0:0$0:0", align 8
  %286 = bitcast %struct.upid* %284 to i8*
  %287 = getelementptr i8, i8* %286, i64 %285
  %288 = bitcast i8* %287 to i32*
  %289 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 400, i32* %288) #7
  %290 = bitcast i32* %289 to i8*, !dbg !1932
  %291 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %278, i32 4, i8* %290) #7, !dbg !1932
  %292 = load i32, i32* %39, align 4, !dbg !1932, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %292, metadata !1846, metadata !DIExpression()) #7, !dbg !1933
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %278) #7, !dbg !1934
  %293 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 4, !dbg !1935
  store i32 %292, i32* %293, align 8, !dbg !1936, !tbaa !1937
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1938, metadata !DIExpression()) #7, !dbg !1943
  %294 = bitcast %struct.nsproxy** %35 to i8*, !dbg !1945
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %294) #7, !dbg !1945
  call void @llvm.dbg.value(metadata %struct.nsproxy** %35, metadata !1941, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1946
  %295 = bitcast %struct.nsproxy** %35 to i64*, !dbg !1945
  store i64 0, i64* %295, align 8, !dbg !1945
  %296 = load i64, i64* @"llvm.task_struct:0:112$0:14", align 8
  %297 = getelementptr i8, i8* %87, i64 %296
  %298 = bitcast i8* %297 to %struct.nsproxy**
  %299 = call %struct.nsproxy** @llvm.bpf.passthrough.p0p0s_struct.nsproxys.p0p0s_struct.nsproxys(i32 29, %struct.nsproxy** %298) #7
  %300 = bitcast %struct.nsproxy** %299 to i8*, !dbg !1945
  %301 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %294, i32 8, i8* %300) #7, !dbg !1945
  %302 = bitcast %struct.nsproxy** %35 to i8**, !dbg !1945
  %303 = load i8*, i8** %302, align 8, !dbg !1945, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.nsproxy* undef, metadata !1941, metadata !DIExpression()) #7, !dbg !1946
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %294) #7, !dbg !1947
  call void @llvm.dbg.value(metadata %struct.nsproxy* undef, metadata !1948, metadata !DIExpression()) #7, !dbg !1958
  %304 = bitcast %struct.mnt_namespace** %33 to i8*, !dbg !1960
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %304) #7, !dbg !1960
  call void @llvm.dbg.value(metadata %struct.mnt_namespace** %33, metadata !1954, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1961
  %305 = bitcast %struct.mnt_namespace** %33 to i64*, !dbg !1960
  store i64 0, i64* %305, align 8, !dbg !1960
  %306 = load i64, i64* @"llvm.nsproxy:0:16$0:2", align 8
  %307 = getelementptr i8, i8* %303, i64 %306
  %308 = bitcast i8* %307 to %struct.mnt_namespace**
  %309 = call %struct.mnt_namespace** @llvm.bpf.passthrough.p0p0s_struct.mnt_namespaces.p0p0s_struct.mnt_namespaces(i32 404, %struct.mnt_namespace** %308) #7
  %310 = bitcast %struct.mnt_namespace** %309 to i8*, !dbg !1960
  %311 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %304, i32 8, i8* %310) #7, !dbg !1960
  %312 = bitcast %struct.mnt_namespace** %33 to i8**, !dbg !1960
  %313 = load i8*, i8** %312, align 8, !dbg !1960, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.mnt_namespace* undef, metadata !1954, metadata !DIExpression()) #7, !dbg !1961
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %304) #7, !dbg !1962
  call void @llvm.dbg.value(metadata %struct.mnt_namespace* undef, metadata !1953, metadata !DIExpression()) #7, !dbg !1958
  %314 = bitcast i32* %34 to i8*, !dbg !1963
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %314) #7, !dbg !1963
  call void @llvm.dbg.value(metadata i32* %34, metadata !1956, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1964
  store i32 0, i32* %34, align 4, !dbg !1963
  %315 = load i64, i64* @"llvm.mnt_namespace:0:0$0:0:0", align 8
  %316 = getelementptr i8, i8* %313, i64 %315
  %317 = bitcast i8* %316 to i32*
  %318 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 405, i32* %317) #7
  %319 = bitcast i32* %318 to i8*, !dbg !1963
  %320 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %314, i32 4, i8* %319) #7, !dbg !1963
  %321 = load i32, i32* %34, align 4, !dbg !1963, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %321, metadata !1956, metadata !DIExpression()) #7, !dbg !1964
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %314) #7, !dbg !1965
  %322 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 9, !dbg !1966
  store i32 %321, i32* %322, align 4, !dbg !1967, !tbaa !1968
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !1969, metadata !DIExpression()) #7, !dbg !1989
  call void @llvm.dbg.value(metadata i32 0, metadata !1972, metadata !DIExpression()) #7, !dbg !1989
  call void @llvm.dbg.value(metadata %struct.pid* null, metadata !1973, metadata !DIExpression()) #7, !dbg !1989
  call void @llvm.dbg.value(metadata %struct.pid_namespace* null, metadata !1974, metadata !DIExpression()) #7, !dbg !1989
  %323 = load i32, i32* @"llvm.pid_link:8:1$0", align 4
  %324 = call i32 @llvm.bpf.passthrough.i32.i32(i32 383, i32 %323) #7
  %325 = icmp eq i32 %324, 0, !dbg !1991
  br i1 %325, label %337, label %326, !dbg !1992

326:                                              ; preds = %268
  call void @llvm.dbg.value(metadata i8* %87, metadata !1975, metadata !DIExpression()) #7, !dbg !1993
  %327 = bitcast %struct.pid** %28 to i8*, !dbg !1994
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %327) #7, !dbg !1994
  call void @llvm.dbg.value(metadata %struct.pid** %28, metadata !1978, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1995
  %328 = bitcast %struct.pid** %28 to i64*, !dbg !1994
  store i64 0, i64* %328, align 8, !dbg !1994
  %329 = load i64, i64* @"llvm.task_struct___older_v50:0:16$0:0:0:1", align 8
  %330 = getelementptr i8, i8* %87, i64 %329
  %331 = bitcast i8* %330 to %struct.pid**
  %332 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 384, %struct.pid** %331) #7
  %333 = bitcast %struct.pid** %332 to i8*, !dbg !1994
  %334 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %327, i32 8, i8* %333) #7, !dbg !1994
  %335 = bitcast %struct.pid** %28 to i8**, !dbg !1994
  %336 = load i8*, i8** %335, align 8, !dbg !1994, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1978, metadata !DIExpression()) #7, !dbg !1995
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %327) #7, !dbg !1996
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1973, metadata !DIExpression()) #7, !dbg !1989
  br label %348, !dbg !1997

337:                                              ; preds = %268
  %338 = bitcast %struct.pid** %29 to i8*, !dbg !1998
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %338) #7, !dbg !1998
  call void @llvm.dbg.value(metadata %struct.pid** %29, metadata !1980, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1999
  %339 = bitcast %struct.pid** %29 to i64*, !dbg !1998
  store i64 0, i64* %339, align 8, !dbg !1998
  %340 = load i64, i64* @"llvm.task_struct:0:48$0:8", align 8
  %341 = getelementptr i8, i8* %87, i64 %340
  %342 = bitcast i8* %341 to %struct.pid**
  %343 = call %struct.pid** @llvm.bpf.passthrough.p0p0s_struct.pids.p0p0s_struct.pids(i32 382, %struct.pid** %342) #7
  %344 = bitcast %struct.pid** %343 to i8*, !dbg !1998
  %345 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %338, i32 8, i8* %344) #7, !dbg !1998
  %346 = bitcast %struct.pid** %29 to i8**, !dbg !1998
  %347 = load i8*, i8** %346, align 8, !dbg !1998, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1980, metadata !DIExpression()) #7, !dbg !1999
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %338) #7, !dbg !2000
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1973, metadata !DIExpression()) #7, !dbg !1989
  br label %348

348:                                              ; preds = %337, %326
  %349 = phi i8* [ %336, %326 ], [ %347, %337 ], !dbg !2001
  call void @llvm.dbg.value(metadata %struct.pid* undef, metadata !1973, metadata !DIExpression()) #7, !dbg !1989
  %350 = bitcast i32* %30 to i8*, !dbg !2002
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %350) #7, !dbg !2002
  call void @llvm.dbg.value(metadata i32* %30, metadata !1983, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2003
  store i32 0, i32* %30, align 4, !dbg !2002
  %351 = load i64, i64* @"llvm.pid:0:0$0:0", align 8
  %352 = getelementptr i8, i8* %349, i64 %351
  %353 = bitcast i8* %352 to i32*
  %354 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 385, i32* %353) #7
  %355 = bitcast i32* %354 to i8*, !dbg !2002
  %356 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %350, i32 4, i8* %355) #7, !dbg !2002
  %357 = load i32, i32* %30, align 4, !dbg !2002, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %357, metadata !1983, metadata !DIExpression()) #7, !dbg !2003
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %350) #7, !dbg !2004
  call void @llvm.dbg.value(metadata i32 %357, metadata !1972, metadata !DIExpression()) #7, !dbg !1989
  %358 = bitcast %struct.pid_namespace** %31 to i8*, !dbg !2005
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %358) #7, !dbg !2005
  call void @llvm.dbg.value(metadata %struct.pid_namespace** %31, metadata !1985, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2006
  %359 = bitcast %struct.pid_namespace** %31 to i64*, !dbg !2005
  store i64 0, i64* %359, align 8, !dbg !2005
  %360 = load i64, i64* @"llvm.pid:0:8$0:1", align 8
  %361 = getelementptr i8, i8* %349, i64 %360
  %362 = bitcast i8* %361 to [1 x %struct.upid]*
  %363 = call [1 x %struct.upid]* @llvm.bpf.passthrough.p0a1s_struct.upids.p0a1s_struct.upids(i32 386, [1 x %struct.upid]* %362) #7
  %364 = zext i32 %357 to i64, !dbg !2005
  %365 = getelementptr inbounds [1 x %struct.upid], [1 x %struct.upid]* %363, i64 0, i64 %364, !dbg !2005
  %366 = load i64, i64* @"llvm.upid:0:8$0:1", align 8
  %367 = bitcast %struct.upid* %365 to i8*
  %368 = getelementptr i8, i8* %367, i64 %366
  %369 = bitcast i8* %368 to %struct.pid_namespace**
  %370 = call %struct.pid_namespace** @llvm.bpf.passthrough.p0p0s_struct.pid_namespaces.p0p0s_struct.pid_namespaces(i32 387, %struct.pid_namespace** %369) #7
  %371 = bitcast %struct.pid_namespace** %370 to i8*, !dbg !2005
  %372 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %358, i32 8, i8* %371) #7, !dbg !2005
  %373 = bitcast %struct.pid_namespace** %31 to i8**, !dbg !2005
  %374 = load i8*, i8** %373, align 8, !dbg !2005, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.pid_namespace* undef, metadata !1985, metadata !DIExpression()) #7, !dbg !2006
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %358) #7, !dbg !2007
  call void @llvm.dbg.value(metadata %struct.pid_namespace* undef, metadata !1974, metadata !DIExpression()) #7, !dbg !1989
  %375 = bitcast i32* %32 to i8*, !dbg !2008
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %375) #7, !dbg !2008
  call void @llvm.dbg.value(metadata i32* %32, metadata !1987, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2009
  store i32 0, i32* %32, align 4, !dbg !2008
  %376 = load i64, i64* @"llvm.pid_namespace:0:4$0:1:0", align 8
  %377 = getelementptr i8, i8* %374, i64 %376
  %378 = bitcast i8* %377 to i32*
  %379 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 388, i32* %378) #7
  %380 = bitcast i32* %379 to i8*, !dbg !2008
  %381 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %375, i32 4, i8* %380) #7, !dbg !2008
  %382 = load i32, i32* %32, align 4, !dbg !2008, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %382, metadata !1987, metadata !DIExpression()) #7, !dbg !2009
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %375) #7, !dbg !2010
  %383 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 10, !dbg !2011
  store i32 %382, i32* %383, align 8, !dbg !2012, !tbaa !2013
  %384 = call i64 inttoptr (i64 15 to i64 ()*)() #7, !dbg !2014
  %385 = trunc i64 %384 to i32, !dbg !2014
  %386 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 8, !dbg !2015
  store i32 %385, i32* %386, align 8, !dbg !2016, !tbaa !2017
  %387 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 13, !dbg !2018
  store i32 0, i32* %387, align 4, !dbg !2019, !tbaa !2020
  %388 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 11, i64 0, !dbg !2021
  %389 = call i64 inttoptr (i64 16 to i64 (i8*, i32)*)(i8* nonnull %388, i32 16) #7, !dbg !2022
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !2023, metadata !DIExpression()) #7, !dbg !2036
  %390 = bitcast %struct.nsproxy** %25 to i8*, !dbg !2038
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %390) #7, !dbg !2038
  call void @llvm.dbg.value(metadata %struct.nsproxy** %25, metadata !2029, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2039
  %391 = bitcast %struct.nsproxy** %25 to i64*, !dbg !2038
  store i64 0, i64* %391, align 8, !dbg !2038
  %392 = load i64, i64* @"llvm.task_struct:0:112$0:14", align 8
  %393 = getelementptr i8, i8* %87, i64 %392
  %394 = bitcast i8* %393 to %struct.nsproxy**
  %395 = call %struct.nsproxy** @llvm.bpf.passthrough.p0p0s_struct.nsproxys.p0p0s_struct.nsproxys(i32 390, %struct.nsproxy** %394) #7
  %396 = bitcast %struct.nsproxy** %395 to i8*, !dbg !2038
  %397 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %390, i32 8, i8* %396) #7, !dbg !2038
  %398 = bitcast %struct.nsproxy** %25 to i8**, !dbg !2038
  %399 = load i8*, i8** %398, align 8, !dbg !2038, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.nsproxy* undef, metadata !2029, metadata !DIExpression()) #7, !dbg !2039
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %390) #7, !dbg !2040
  call void @llvm.dbg.value(metadata %struct.nsproxy* undef, metadata !2028, metadata !DIExpression()) #7, !dbg !2036
  %400 = bitcast %struct.uts_namespace** %26 to i8*, !dbg !2041
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %400) #7, !dbg !2041
  call void @llvm.dbg.value(metadata %struct.uts_namespace** %26, metadata !2032, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2042
  %401 = bitcast %struct.uts_namespace** %26 to i64*, !dbg !2041
  store i64 0, i64* %401, align 8, !dbg !2041
  %402 = load i64, i64* @"llvm.nsproxy:0:0$0:0", align 8
  %403 = getelementptr i8, i8* %399, i64 %402
  %404 = bitcast i8* %403 to %struct.uts_namespace**
  %405 = call %struct.uts_namespace** @llvm.bpf.passthrough.p0p0s_struct.uts_namespaces.p0p0s_struct.uts_namespaces(i32 389, %struct.uts_namespace** %404) #7
  %406 = bitcast %struct.uts_namespace** %405 to i8*, !dbg !2041
  %407 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %400, i32 8, i8* %406) #7, !dbg !2041
  %408 = bitcast %struct.uts_namespace** %26 to i8**, !dbg !2041
  %409 = load i8*, i8** %408, align 8, !dbg !2041, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.uts_namespace* undef, metadata !2032, metadata !DIExpression()) #7, !dbg !2042
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %400) #7, !dbg !2043
  call void @llvm.dbg.value(metadata %struct.uts_namespace* undef, metadata !2031, metadata !DIExpression()) #7, !dbg !2036
  %410 = getelementptr inbounds [65 x i8], [65 x i8]* %27, i64 0, i64 0, !dbg !2044
  call void @llvm.lifetime.start.p0i8(i64 65, i8* nonnull %410) #7, !dbg !2044
  call void @llvm.dbg.declare(metadata [65 x i8]* %27, metadata !2034, metadata !DIExpression()) #7, !dbg !2044
  call void @llvm.memset.p0i8.i64(i8* nonnull align 1 dereferenceable(65) %410, i8 0, i64 65, i1 false) #7, !dbg !2044
  %411 = load i64, i64* @"llvm.uts_namespace:0:0$0:0:0", align 8
  %412 = getelementptr i8, i8* %409, i64 %411
  %413 = bitcast i8* %412 to [65 x i8]*
  %414 = call [65 x i8]* @llvm.bpf.passthrough.p0a65i8.p0a65i8(i32 391, [65 x i8]* %413) #7
  %415 = getelementptr [65 x i8], [65 x i8]* %414, i64 0, i64 0, !dbg !2044
  %416 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %410, i32 65, i8* %415) #7, !dbg !2044
  call void @llvm.lifetime.end.p0i8(i64 65, i8* nonnull %410) #7, !dbg !2045
  call void @llvm.dbg.value(metadata i8* %410, metadata !1775, metadata !DIExpression()) #7, !dbg !1776
  %417 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 12, i64 0, !dbg !2046
  %418 = call i64 inttoptr (i64 45 to i64 (i8*, i32, i8*)*)(i8* nonnull %417, i32 16, i8* nonnull %410) #7, !dbg !2048
  %419 = and i32 %83, 128, !dbg !2049
  %420 = icmp eq i32 %419, 0, !dbg !2049
  br i1 %420, label %495, label %421, !dbg !2051

421:                                              ; preds = %348
  call void @llvm.dbg.value(metadata %struct.task_struct* %79, metadata !2052, metadata !DIExpression()) #7, !dbg !2066
  %422 = bitcast %struct.css_set** %22 to i8*, !dbg !2069
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %422) #7, !dbg !2069
  call void @llvm.dbg.value(metadata %struct.css_set** %22, metadata !2058, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2070
  %423 = bitcast %struct.css_set** %22 to i64*, !dbg !2069
  store i64 0, i64* %423, align 8, !dbg !2069
  %424 = load i64, i64* @"llvm.task_struct:0:120$0:15", align 8
  %425 = getelementptr i8, i8* %87, i64 %424
  %426 = bitcast i8* %425 to %struct.css_set**
  %427 = call %struct.css_set** @llvm.bpf.passthrough.p0p0s_struct.css_sets.p0p0s_struct.css_sets(i32 392, %struct.css_set** %426) #7
  %428 = bitcast %struct.css_set** %427 to i8*, !dbg !2069
  %429 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %422, i32 8, i8* %428) #7, !dbg !2069
  %430 = bitcast %struct.css_set** %22 to i8**, !dbg !2069
  %431 = load i8*, i8** %430, align 8, !dbg !2069, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.css_set* undef, metadata !2058, metadata !DIExpression()) #7, !dbg !2070
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %422) #7, !dbg !2071
  call void @llvm.dbg.value(metadata %struct.css_set* undef, metadata !2057, metadata !DIExpression()) #7, !dbg !2066
  %432 = bitcast %struct.cgroup_subsys_state** %23 to i8*, !dbg !2072
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %432) #7, !dbg !2072
  call void @llvm.dbg.value(metadata %struct.cgroup_subsys_state** %23, metadata !2061, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2073
  %433 = bitcast %struct.cgroup_subsys_state** %23 to i64*, !dbg !2072
  store i64 0, i64* %433, align 8, !dbg !2072
  %434 = load i64, i64* @"llvm.css_set:0:0$0:0:0", align 8
  %435 = getelementptr i8, i8* %431, i64 %434
  %436 = bitcast i8* %435 to %struct.cgroup_subsys_state**
  %437 = call %struct.cgroup_subsys_state** @llvm.bpf.passthrough.p0p0s_struct.cgroup_subsys_states.p0p0s_struct.cgroup_subsys_states(i32 393, %struct.cgroup_subsys_state** %436) #7
  %438 = bitcast %struct.cgroup_subsys_state** %437 to i8*, !dbg !2072
  %439 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %432, i32 8, i8* %438) #7, !dbg !2072
  %440 = bitcast %struct.cgroup_subsys_state** %23 to i8**, !dbg !2072
  %441 = load i8*, i8** %440, align 8, !dbg !2072, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.cgroup_subsys_state* undef, metadata !2061, metadata !DIExpression()) #7, !dbg !2073
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %432) #7, !dbg !2074
  call void @llvm.dbg.value(metadata %struct.cgroup_subsys_state* undef, metadata !2060, metadata !DIExpression()) #7, !dbg !2066
  %442 = bitcast %struct.cgroup** %24 to i8*, !dbg !2075
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %442) #7, !dbg !2075
  call void @llvm.dbg.value(metadata %struct.cgroup** %24, metadata !2064, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2076
  %443 = bitcast %struct.cgroup** %24 to i64*, !dbg !2075
  store i64 0, i64* %443, align 8, !dbg !2075
  %444 = load i64, i64* @"llvm.cgroup_subsys_state:0:0$0:0", align 8
  %445 = getelementptr i8, i8* %441, i64 %444
  %446 = bitcast i8* %445 to %struct.cgroup**
  %447 = call %struct.cgroup** @llvm.bpf.passthrough.p0p0s_struct.cgroups.p0p0s_struct.cgroups(i32 394, %struct.cgroup** %446) #7
  %448 = bitcast %struct.cgroup** %447 to i8*, !dbg !2075
  %449 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %442, i32 8, i8* %448) #7, !dbg !2075
  %450 = bitcast %struct.cgroup** %24 to i8**, !dbg !2075
  %451 = load i8*, i8** %450, align 8, !dbg !2075, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.cgroup* undef, metadata !2064, metadata !DIExpression()) #7, !dbg !2076
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %442) #7, !dbg !2077
  call void @llvm.dbg.value(metadata %struct.cgroup* undef, metadata !2063, metadata !DIExpression()) #7, !dbg !2066
  call void @llvm.dbg.value(metadata %struct.cgroup* undef, metadata !2078, metadata !DIExpression()) #7, !dbg !2093
  %452 = bitcast %struct.kernfs_node** %20 to i8*, !dbg !2095
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %452) #7, !dbg !2095
  call void @llvm.dbg.value(metadata %struct.kernfs_node** %20, metadata !2084, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2096
  %453 = bitcast %struct.kernfs_node** %20 to i64*, !dbg !2095
  store i64 0, i64* %453, align 8, !dbg !2095
  %454 = load i64, i64* @"llvm.cgroup:0:0$0:0", align 8
  %455 = getelementptr i8, i8* %451, i64 %454
  %456 = bitcast i8* %455 to %struct.kernfs_node**
  %457 = call %struct.kernfs_node** @llvm.bpf.passthrough.p0p0s_struct.kernfs_nodes.p0p0s_struct.kernfs_nodes(i32 113, %struct.kernfs_node** %456) #7
  %458 = bitcast %struct.kernfs_node** %457 to i8*, !dbg !2095
  %459 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %452, i32 8, i8* %458) #7, !dbg !2095
  %460 = load %struct.kernfs_node*, %struct.kernfs_node** %20, align 8, !dbg !2095, !tbaa !1817
  call void @llvm.dbg.value(metadata %struct.kernfs_node* %460, metadata !2084, metadata !DIExpression()) #7, !dbg !2096
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %452) #7, !dbg !2097
  call void @llvm.dbg.value(metadata %struct.kernfs_node* %460, metadata !2083, metadata !DIExpression()) #7, !dbg !2093
  %461 = icmp eq %struct.kernfs_node* %460, null, !dbg !2098
  br i1 %461, label %497, label %462, !dbg !2100

462:                                              ; preds = %421
  %463 = bitcast i64* %21 to i8*, !dbg !2101
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %463) #7, !dbg !2101
  %464 = load i32, i32* @"llvm.kernfs_node_id:8:1$0", align 4
  %465 = call i32 @llvm.bpf.passthrough.i32.i32(i32 114, i32 %464) #7
  %466 = icmp eq i32 %465, 0, !dbg !2102
  br i1 %466, label %484, label %467, !dbg !2103

467:                                              ; preds = %462
  %468 = bitcast %struct.kernfs_node* %460 to i8*, !dbg !2104
  call void @llvm.dbg.value(metadata i8* %468, metadata !2087, metadata !DIExpression()) #7, !dbg !2105
  call void @llvm.dbg.value(metadata i8* %468, metadata !2091, metadata !DIExpression()) #7, !dbg !2105
  %469 = load i32, i32* @"llvm.kernfs_node___rh8:2:1$0:1:0", align 4
  %470 = call i32 @llvm.bpf.passthrough.i32.i32(i32 112, i32 %469) #7
  %471 = icmp eq i32 %470, 0, !dbg !2106
  br i1 %471, label %478, label %472, !dbg !2108

472:                                              ; preds = %467
  %473 = load i64, i64* @"llvm.kernfs_node___rh8:0:8$0:1:0", align 8
  %474 = getelementptr i8, i8* %468, i64 %473
  %475 = bitcast i8* %474 to %union.anon.44*
  %476 = call %union.anon.44* @llvm.bpf.passthrough.p0s_union.anon.44s.p0s_union.anon.44s(i32 115, %union.anon.44* %475) #7
  %477 = bitcast %union.anon.44* %476 to i8*, !dbg !2109
  call void @llvm.dbg.value(metadata i64* %21, metadata !2086, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2093
  br label %491, !dbg !2111

478:                                              ; preds = %467
  %479 = load i64, i64* @"llvm.kernfs_node___older_v55:0:8$0:1", align 8
  %480 = getelementptr i8, i8* %468, i64 %479
  %481 = bitcast i8* %480 to %union.kernfs_node_id*
  %482 = call %union.kernfs_node_id* @llvm.bpf.passthrough.p0s_union.kernfs_node_ids.p0s_union.kernfs_node_ids(i32 111, %union.kernfs_node_id* %481) #7
  %483 = bitcast %union.kernfs_node_id* %482 to i8*, !dbg !2112
  call void @llvm.dbg.value(metadata i64* %21, metadata !2086, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2093
  br label %491

484:                                              ; preds = %462
  %485 = load i64, i64* @"llvm.kernfs_node:0:8$0:1", align 8
  %486 = bitcast %struct.kernfs_node* %460 to i8*
  %487 = getelementptr i8, i8* %486, i64 %485
  %488 = bitcast i8* %487 to i64*
  %489 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 116, i64* %488) #7
  %490 = bitcast i64* %489 to i8*, !dbg !2114
  call void @llvm.dbg.value(metadata i64* %21, metadata !2086, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2093
  br label %491

491:                                              ; preds = %484, %478, %472
  %492 = phi i8* [ %490, %484 ], [ %483, %478 ], [ %477, %472 ]
  %493 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %463, i32 8, i8* %492) #7, !dbg !2116
  %494 = load i64, i64* %21, align 8, !dbg !2117, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %494, metadata !2086, metadata !DIExpression()) #7, !dbg !2093
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %463) #7, !dbg !2118
  br label %497

495:                                              ; preds = %348
  %496 = call i64 inttoptr (i64 80 to i64 ()*)() #7, !dbg !2119
  br label %497

497:                                              ; preds = %495, %491, %421
  %498 = phi i64 [ %496, %495 ], [ %494, %491 ], [ 0, %421 ]
  %499 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 1, !dbg !2121
  store i64 %498, i64* %499, align 8, !dbg !2121, !tbaa !2122
  %500 = call i64 inttoptr (i64 5 to i64 ()*)() #7, !dbg !2123
  %501 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 0, !dbg !2124
  store i64 %500, i64* %501, align 8, !dbg !2125, !tbaa !2126
  %502 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 7, !dbg !2127
  store i8 0, i8* %502, align 2, !dbg !2128, !tbaa !2129
  %503 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 5, !dbg !2130
  store i32 0, i32* %503, align 8, !dbg !2131, !tbaa !2132
  %504 = call i32 inttoptr (i64 8 to i32 ()*)() #7, !dbg !2133
  %505 = trunc i32 %504 to i16, !dbg !2134
  %506 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 6, !dbg !2135
  store i16 %505, i16* %506, align 4, !dbg !2136, !tbaa !2137
  %507 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 3, !dbg !2138
  %508 = bitcast i8** %507 to %struct.bpf_raw_tracepoint_args**, !dbg !2139
  store %struct.bpf_raw_tracepoint_args* %0, %struct.bpf_raw_tracepoint_args** %508, align 8, !dbg !2139, !tbaa !2140
  %509 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 6, !dbg !2141
  store i32 120, i32* %509, align 8, !dbg !2142, !tbaa !2143
  %510 = bitcast i32* %54 to i8*, !dbg !2144
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %510) #7, !dbg !2144
  call void @llvm.dbg.value(metadata i32 0, metadata !1727, metadata !DIExpression()) #7, !dbg !1739
  store i32 0, i32* %54, align 4, !dbg !2145, !tbaa !1657
  call void @llvm.dbg.value(metadata i32* %54, metadata !1727, metadata !DIExpression(DW_OP_deref)) #7, !dbg !1739
  %511 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.36* @bufs to i8*), i8* nonnull %510) #7, !dbg !2146
  %512 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 5, !dbg !2147
  %513 = bitcast %struct.simple_buf** %512 to i8**, !dbg !2148
  store i8* %511, i8** %513, align 8, !dbg !2148, !tbaa !2149
  %514 = icmp eq i8* %511, null, !dbg !2150
  br i1 %514, label %620, label %515, !dbg !2152

515:                                              ; preds = %497
  %516 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, !dbg !2153
  %517 = bitcast i32* %96 to i8*, !dbg !2154
  %518 = call i64 inttoptr (i64 2 to i64 (i8*, i8*, i8*, i64)*)(i8* bitcast (%struct.anon.6* @task_info_map to i8*), i8* nonnull %517, i8* nonnull %511, i64 1) #7, !dbg !2155
  call void @llvm.dbg.value(metadata i64 %518, metadata !1728, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !1739
  %519 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.6* @task_info_map to i8*), i8* nonnull %517) #7, !dbg !2156
  %520 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 2, !dbg !2157
  %521 = bitcast %struct.task_info** %520 to i8**, !dbg !2158
  store i8* %519, i8** %521, align 8, !dbg !2158, !tbaa !2159
  %522 = icmp eq i8* %519, null, !dbg !2160
  br i1 %522, label %620, label %523, !dbg !2162

523:                                              ; preds = %515
  %524 = trunc i64 %518 to i32, !dbg !2155
  call void @llvm.dbg.value(metadata i32 %524, metadata !1728, metadata !DIExpression()) #7, !dbg !1739
  call void @llvm.dbg.value(metadata i8 1, metadata !1729, metadata !DIExpression()) #7, !dbg !1739
  %525 = icmp eq i32 %524, 0, !dbg !2163
  br i1 %525, label %526, label %534, !dbg !2164

526:                                              ; preds = %523
  %527 = getelementptr inbounds i8, i8* %519, i64 160, !dbg !2165
  store i8 0, i8* %527, align 8, !dbg !2167, !tbaa !2168
  %528 = getelementptr inbounds i8, i8* %519, i64 162, !dbg !2174
  store i8 0, i8* %528, align 2, !dbg !2175, !tbaa !2176
  %529 = getelementptr inbounds i8, i8* %519, i64 163, !dbg !2177
  store i8 0, i8* %529, align 1, !dbg !2178, !tbaa !2179
  %530 = getelementptr inbounds i8, i8* %519, i64 161, !dbg !2180
  store i8 1, i8* %530, align 1, !dbg !2181, !tbaa !2182
  %531 = getelementptr inbounds i8, i8* %519, i64 168, !dbg !2183
  store i8 0, i8* %531, align 8, !dbg !2184, !tbaa !2185
  call void @llvm.dbg.value(metadata i8 undef, metadata !1729, metadata !DIExpression()) #7, !dbg !1739
  %532 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 1
  %533 = load i64, i64* %532, align 8, !dbg !2186, !tbaa !2187
  br label %599, !dbg !2188

534:                                              ; preds = %523
  call void @llvm.dbg.value(metadata i8* %519, metadata !1730, metadata !DIExpression()) #7, !dbg !2189
  call void @llvm.dbg.value(metadata %struct.task_context* %516, metadata !1734, metadata !DIExpression()) #7, !dbg !2189
  %535 = getelementptr inbounds i8, i8* %519, i64 8, !dbg !2190
  %536 = bitcast i8* %535 to i64*, !dbg !2190
  %537 = load i64, i64* %536, align 8, !dbg !2190, !tbaa !2192
  %538 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 1, !dbg !2193
  %539 = load i64, i64* %538, align 8, !dbg !2193, !tbaa !2192
  %540 = icmp eq i64 %537, %539, !dbg !2194
  br i1 %540, label %541, label %591, !dbg !2195

541:                                              ; preds = %534
  %542 = getelementptr inbounds i8, i8* %519, i64 40, !dbg !2196
  %543 = bitcast i8* %542 to i32*, !dbg !2196
  %544 = load i32, i32* %543, align 8, !dbg !2196, !tbaa !2197
  %545 = load i32, i32* %386, align 8, !dbg !2198, !tbaa !2197
  %546 = icmp eq i32 %544, %545, !dbg !2199
  br i1 %546, label %547, label %591, !dbg !2200

547:                                              ; preds = %541
  %548 = getelementptr inbounds i8, i8* %519, i64 44, !dbg !2201
  %549 = bitcast i8* %548 to i32*, !dbg !2201
  %550 = load i32, i32* %549, align 4, !dbg !2201, !tbaa !2202
  %551 = load i32, i32* %322, align 4, !dbg !2203, !tbaa !2202
  %552 = icmp eq i32 %550, %551, !dbg !2204
  br i1 %552, label %553, label %591, !dbg !2205

553:                                              ; preds = %547
  %554 = getelementptr inbounds i8, i8* %519, i64 48, !dbg !2206
  %555 = bitcast i8* %554 to i32*, !dbg !2206
  %556 = load i32, i32* %555, align 8, !dbg !2206, !tbaa !2207
  %557 = load i32, i32* %383, align 8, !dbg !2208, !tbaa !2207
  %558 = icmp eq i32 %556, %557, !dbg !2209
  br i1 %558, label %559, label %591, !dbg !2210

559:                                              ; preds = %553
  %560 = getelementptr inbounds i8, i8* %519, i64 52, !dbg !2211
  %561 = bitcast i8* %560 to i64*, !dbg !2212
  %562 = load i64, i64* %561, align 4, !dbg !2212, !tbaa !1668
  %563 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 11, !dbg !2213
  %564 = bitcast [16 x i8]* %563 to i64*, !dbg !2214
  %565 = load i64, i64* %564, align 4, !dbg !2214, !tbaa !1668
  %566 = icmp eq i64 %562, %565, !dbg !2215
  br i1 %566, label %567, label %591, !dbg !2216

567:                                              ; preds = %559
  %568 = getelementptr inbounds i8, i8* %519, i64 60, !dbg !2217
  %569 = bitcast i8* %568 to i64*, !dbg !2218
  %570 = load i64, i64* %569, align 4, !dbg !2218, !tbaa !1668
  %571 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 11, i64 8, !dbg !2219
  %572 = bitcast i8* %571 to i64*, !dbg !2220
  %573 = load i64, i64* %572, align 4, !dbg !2220, !tbaa !1668
  %574 = icmp eq i64 %570, %573, !dbg !2221
  br i1 %574, label %575, label %591, !dbg !2222

575:                                              ; preds = %567
  %576 = getelementptr inbounds i8, i8* %519, i64 68, !dbg !2223
  %577 = bitcast i8* %576 to i64*, !dbg !2224
  %578 = load i64, i64* %577, align 4, !dbg !2224, !tbaa !1668
  %579 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 12, !dbg !2225
  %580 = bitcast [16 x i8]* %579 to i64*, !dbg !2226
  %581 = load i64, i64* %580, align 4, !dbg !2226, !tbaa !1668
  %582 = icmp eq i64 %578, %581, !dbg !2227
  br i1 %582, label %583, label %591, !dbg !2228

583:                                              ; preds = %575
  %584 = getelementptr inbounds i8, i8* %519, i64 76, !dbg !2229
  %585 = bitcast i8* %584 to i64*, !dbg !2230
  %586 = load i64, i64* %585, align 4, !dbg !2230, !tbaa !1668
  %587 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 12, i64 8, !dbg !2231
  %588 = bitcast i8* %587 to i64*, !dbg !2232
  %589 = load i64, i64* %588, align 4, !dbg !2232, !tbaa !1668
  %590 = icmp eq i64 %586, %589, !dbg !2233
  br i1 %590, label %593, label %591, !dbg !2234

591:                                              ; preds = %583, %575, %567, %559, %553, %547, %541, %534
  %592 = getelementptr inbounds i8, i8* %519, i64 161, !dbg !2235
  store i8 1, i8* %592, align 1, !dbg !2236, !tbaa !2182
  br label %593, !dbg !2237

593:                                              ; preds = %591, %583
  %594 = getelementptr inbounds i8, i8* %519, i64 168, !dbg !2238
  %595 = load i8, i8* %594, align 8, !dbg !2238, !tbaa !2185
  switch i8 %595, label %599 [
    i8 3, label %596
    i8 1, label %596
  ], !dbg !2240

596:                                              ; preds = %593, %593
  %597 = load i32, i32* %387, align 4, !dbg !2241, !tbaa !2243
  %598 = or i32 %597, 1, !dbg !2241
  store i32 %598, i32* %387, align 4, !dbg !2241, !tbaa !2243
  call void @llvm.dbg.value(metadata i8 0, metadata !1729, metadata !DIExpression()) #7, !dbg !1739
  call void @llvm.dbg.value(metadata i8 undef, metadata !1729, metadata !DIExpression()) #7, !dbg !1739
  br label %621, !dbg !2188

599:                                              ; preds = %593, %526
  %600 = phi i64 [ %539, %593 ], [ %533, %526 ], !dbg !2186
  %601 = bitcast i32* %55 to i8*, !dbg !2244
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %601) #7, !dbg !2244
  %602 = trunc i64 %600 to i32, !dbg !2245
  call void @llvm.dbg.value(metadata i32 %602, metadata !1735, metadata !DIExpression()) #7, !dbg !2246
  store i32 %602, i32* %55, align 4, !dbg !2247, !tbaa !1657
  call void @llvm.dbg.value(metadata i32* %55, metadata !1735, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2246
  %603 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.8* @containers_map to i8*), i8* nonnull %601) #7, !dbg !2248
  call void @llvm.dbg.value(metadata i8* %603, metadata !1738, metadata !DIExpression()) #7, !dbg !2246
  %604 = icmp eq i8* %603, null, !dbg !2249
  br i1 %604, label %605, label %607, !dbg !2251

605:                                              ; preds = %599
  %606 = load i8*, i8** %521, align 8, !dbg !2252, !tbaa !2159
  br label %618, !dbg !2251

607:                                              ; preds = %599
  %608 = load i8, i8* %603, align 1, !dbg !2253, !tbaa !2255
  %609 = load %struct.task_info*, %struct.task_info** %520, align 8, !dbg !2256, !tbaa !2159
  %610 = getelementptr inbounds %struct.task_info, %struct.task_info* %609, i64 0, i32 7, !dbg !2257
  store i8 %608, i8* %610, align 8, !dbg !2258, !tbaa !2185
  %611 = load i8, i8* %603, align 1, !dbg !2259, !tbaa !2255
  %612 = add i8 %611, -1, !dbg !2261
  %613 = icmp ult i8 %612, 2, !dbg !2261
  %614 = bitcast %struct.task_info* %609 to i8*, !dbg !2261
  br i1 %613, label %615, label %618, !dbg !2261

615:                                              ; preds = %607
  %616 = load i32, i32* %387, align 4, !dbg !2262, !tbaa !2243
  %617 = or i32 %616, 1, !dbg !2262
  store i32 %617, i32* %387, align 4, !dbg !2262, !tbaa !2243
  br label %618, !dbg !2264

618:                                              ; preds = %615, %607, %605
  %619 = phi i8* [ %606, %605 ], [ %614, %607 ], [ %614, %615 ], !dbg !2252
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %601) #7, !dbg !2265
  br label %621, !dbg !2266

620:                                              ; preds = %515, %497
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %510) #7, !dbg !1755
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %71) #7, !dbg !1755
  br label %1188, !dbg !1756

621:                                              ; preds = %618, %596
  %622 = phi i8* [ %519, %596 ], [ %619, %618 ], !dbg !2252
  %623 = bitcast %struct.task_context* %516 to i8*, !dbg !2267
  %624 = call i64 inttoptr (i64 4 to i64 (i8*, i32, i8*)*)(i8* %622, i32 88, i8* nonnull %623) #7, !dbg !2268
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %510) #7, !dbg !1755
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %71) #7, !dbg !1755
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2269, metadata !DIExpression()) #7, !dbg !2274
  %625 = load %struct.task_info*, %struct.task_info** %520, align 8, !dbg !2277, !tbaa !2159
  %626 = getelementptr inbounds %struct.task_info, %struct.task_info* %625, i64 0, i32 3, !dbg !2279
  %627 = load i8, i8* %626, align 1, !dbg !2279, !tbaa !2182, !range !2280
  %628 = icmp eq i8 %627, 0, !dbg !2279
  br i1 %628, label %629, label %632, !dbg !2281

629:                                              ; preds = %621
  %630 = getelementptr inbounds %struct.task_info, %struct.task_info* %625, i64 0, i32 6
  %631 = load i32, i32* %630, align 4, !dbg !2282, !tbaa !2283
  br label %878, !dbg !2281

632:                                              ; preds = %621
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2284, metadata !DIExpression()) #7, !dbg !2336
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2287, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)) #7, !dbg !2336
  %633 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2339, !tbaa !1746
  %634 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %633, i64 0, i32 2, !dbg !2340
  %635 = load i32, i32* %634, align 8, !dbg !2340, !tbaa !2341
  call void @llvm.dbg.value(metadata i32 %635, metadata !2288, metadata !DIExpression()) #7, !dbg !2336
  %636 = and i32 %635, 16384, !dbg !2342
  %637 = icmp eq i32 %636, 0, !dbg !2342
  br i1 %637, label %642, label %638, !dbg !2344

638:                                              ; preds = %632
  %639 = getelementptr inbounds %struct.task_info, %struct.task_info* %625, i64 0, i32 5, !dbg !2345
  %640 = load i8, i8* %639, align 1, !dbg !2345, !tbaa !2179, !range !2280
  %641 = icmp eq i8 %640, 0, !dbg !2345
  br i1 %641, label %642, label %873, !dbg !2346

642:                                              ; preds = %638, %632
  %643 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %633, i64 0, i32 0, !dbg !2347
  %644 = load i32, i32* %643, align 8, !dbg !2347, !tbaa !2349
  %645 = load i32, i32* %99, align 4, !dbg !2350, !tbaa !2351
  %646 = icmp eq i32 %644, %645, !dbg !2352
  br i1 %646, label %873, label %647, !dbg !2353

647:                                              ; preds = %642
  %648 = and i32 %635, 4096, !dbg !2354
  %649 = icmp eq i32 %648, 0, !dbg !2354
  br i1 %649, label %659, label %650, !dbg !2355

650:                                              ; preds = %647
  call void @llvm.dbg.value(metadata i8 0, metadata !2289, metadata !DIExpression()) #7, !dbg !2356
  call void @llvm.dbg.value(metadata i64 undef, metadata !2292, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2356
  %651 = getelementptr inbounds %struct.task_info, %struct.task_info* %625, i64 0, i32 7, !dbg !2357
  %652 = load i8, i8* %651, align 8, !dbg !2357, !tbaa !2185
  call void @llvm.dbg.value(metadata i8 %652, metadata !2293, metadata !DIExpression()) #7, !dbg !2356
  switch i8 %652, label %653 [
    i8 3, label %656
    i8 1, label %656
  ], !dbg !2358

653:                                              ; preds = %650
  call void @llvm.dbg.value(metadata i8 undef, metadata !2289, metadata !DIExpression()) #7, !dbg !2356
  %654 = and i32 %635, 8192, !dbg !2360
  %655 = icmp eq i32 %654, 0, !dbg !2361
  call void @llvm.dbg.value(metadata i1 %658, metadata !2294, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2356
  br i1 %655, label %873, label %659

656:                                              ; preds = %650, %650
  call void @llvm.dbg.value(metadata i8 undef, metadata !2289, metadata !DIExpression()) #7, !dbg !2356
  %657 = and i32 %635, 8192, !dbg !2360
  %658 = icmp eq i32 %657, 0, !dbg !2361
  call void @llvm.dbg.value(metadata i1 %658, metadata !2294, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2356
  br i1 %658, label %659, label %873

659:                                              ; preds = %656, %653, %647
  %660 = and i32 %635, 131072, !dbg !2362
  %661 = icmp eq i32 %660, 0, !dbg !2362
  br i1 %661, label %669, label %662, !dbg !2363

662:                                              ; preds = %659
  call void @llvm.dbg.value(metadata i8 0, metadata !2295, metadata !DIExpression()) #7, !dbg !2364
  call void @llvm.dbg.value(metadata i64 undef, metadata !2298, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2364
  %663 = getelementptr inbounds %struct.task_info, %struct.task_info* %625, i64 0, i32 7, !dbg !2365
  %664 = load i8, i8* %663, align 8, !dbg !2365, !tbaa !2185
  %665 = icmp eq i8 %664, 3, !dbg !2367
  call void @llvm.dbg.value(metadata i8 undef, metadata !2295, metadata !DIExpression()) #7, !dbg !2364
  %666 = and i32 %635, 262144, !dbg !2368
  %667 = icmp eq i32 %666, 0, !dbg !2369
  call void @llvm.dbg.value(metadata i1 %667, metadata !2299, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2364
  %668 = xor i1 %667, %665, !dbg !2370
  br i1 %668, label %873, label %669

669:                                              ; preds = %662, %659
  %670 = and i32 %635, 1024, !dbg !2372
  %671 = icmp eq i32 %670, 0, !dbg !2372
  br i1 %671, label %700, label %672, !dbg !2373

672:                                              ; preds = %669
  call void @llvm.dbg.value(metadata i1 undef, metadata !2300, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2374
  %673 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %633, i64 0, i32 6, !dbg !2375
  %674 = load i64, i64* %673, align 8, !dbg !2375, !tbaa !2376
  call void @llvm.dbg.value(metadata i64 %674, metadata !2303, metadata !DIExpression()) #7, !dbg !2374
  %675 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %633, i64 0, i32 7, !dbg !2377
  %676 = load i64, i64* %675, align 8, !dbg !2377, !tbaa !2378
  call void @llvm.dbg.value(metadata i64 %676, metadata !2304, metadata !DIExpression()) #7, !dbg !2374
  %677 = load i32, i32* %96, align 8, !dbg !2379, !tbaa !2381
  %678 = zext i32 %677 to i64, !dbg !2382
  %679 = bitcast i64* %18 to i8*, !dbg !2383
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %679) #7, !dbg !2383
  call void @llvm.dbg.value(metadata i1 undef, metadata !2388, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2383
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.25* @pid_filter to i8*), metadata !2389, metadata !DIExpression()) #7, !dbg !2383
  call void @llvm.dbg.value(metadata i64 %678, metadata !2390, metadata !DIExpression()) #7, !dbg !2383
  store i64 %678, i64* %18, align 8, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %674, metadata !2391, metadata !DIExpression()) #7, !dbg !2383
  call void @llvm.dbg.value(metadata i64 %676, metadata !2392, metadata !DIExpression()) #7, !dbg !2383
  call void @llvm.dbg.value(metadata i64* %18, metadata !2390, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2383
  %680 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.25* @pid_filter to i8*), i8* nonnull %679) #7, !dbg !2395
  call void @llvm.dbg.value(metadata i8* %680, metadata !2393, metadata !DIExpression()) #7, !dbg !2383
  %681 = icmp eq i8* %680, null, !dbg !2396
  br i1 %681, label %685, label %682, !dbg !2398

682:                                              ; preds = %672
  %683 = load i8, i8* %680, align 1, !dbg !2399, !tbaa !2255
  %684 = zext i8 %683 to i32, !dbg !2399
  br label %697, !dbg !2400

685:                                              ; preds = %672
  %686 = load i64, i64* %18, align 8
  %687 = add i64 %674, -1, !dbg !2401
  %688 = icmp ult i64 %687, %686, !dbg !2401
  call void @llvm.dbg.value(metadata i64 %686, metadata !2390, metadata !DIExpression()) #7, !dbg !2383
  br i1 %688, label %696, label %689, !dbg !2401

689:                                              ; preds = %685
  %690 = icmp eq i64 %676, -1, !dbg !2403
  %691 = icmp ugt i64 %686, %676
  %692 = or i1 %690, %691, !dbg !2405
  call void @llvm.dbg.value(metadata i64 %686, metadata !2390, metadata !DIExpression()) #7, !dbg !2383
  br i1 %692, label %693, label %696, !dbg !2405

693:                                              ; preds = %689
  %694 = lshr i32 %635, 11, !dbg !2406
  %695 = and i32 %694, 1, !dbg !2406
  br label %697, !dbg !2407

696:                                              ; preds = %689, %685
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %679) #7, !dbg !2408
  br label %873

697:                                              ; preds = %693, %682
  %698 = phi i32 [ %684, %682 ], [ %695, %693 ], !dbg !2383
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %679) #7, !dbg !2408
  %699 = icmp eq i32 %698, 0, !dbg !2409
  br i1 %699, label %873, label %700

700:                                              ; preds = %697, %669
  %701 = and i32 %635, 32768, !dbg !2410
  %702 = icmp eq i32 %701, 0, !dbg !2410
  br i1 %702, label %711, label %703, !dbg !2411

703:                                              ; preds = %700
  %704 = and i32 %635, 65536, !dbg !2412
  %705 = icmp eq i32 %704, 0, !dbg !2413
  call void @llvm.dbg.value(metadata i1 %705, metadata !2305, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2414
  %706 = load %struct.task_info*, %struct.task_info** %520, align 8, !dbg !2415, !tbaa !2159
  %707 = getelementptr inbounds %struct.task_info, %struct.task_info* %706, i64 0, i32 4, !dbg !2417
  %708 = load i8, i8* %707, align 2, !dbg !2417, !tbaa !2176, !range !2280
  %709 = icmp ne i8 %708, 0, !dbg !2417
  %710 = xor i1 %705, %709, !dbg !2418
  br i1 %710, label %873, label %711

711:                                              ; preds = %703, %700
  %712 = and i32 %635, 1, !dbg !2419
  %713 = icmp eq i32 %712, 0, !dbg !2419
  br i1 %713, label %743, label %714, !dbg !2420

714:                                              ; preds = %711
  call void @llvm.dbg.value(metadata i1 undef, metadata !2308, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2421
  %715 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2422, !tbaa !1746
  %716 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %715, i64 0, i32 4, !dbg !2423
  %717 = load i64, i64* %716, align 8, !dbg !2423, !tbaa !2424
  call void @llvm.dbg.value(metadata i64 %717, metadata !2311, metadata !DIExpression()) #7, !dbg !2421
  %718 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %715, i64 0, i32 5, !dbg !2425
  %719 = load i64, i64* %718, align 8, !dbg !2425, !tbaa !2426
  call void @llvm.dbg.value(metadata i64 %719, metadata !2312, metadata !DIExpression()) #7, !dbg !2421
  %720 = load i32, i32* %386, align 8, !dbg !2427, !tbaa !2197
  %721 = zext i32 %720 to i64, !dbg !2429
  %722 = bitcast i64* %17 to i8*, !dbg !2430
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %722) #7, !dbg !2430
  call void @llvm.dbg.value(metadata i1 undef, metadata !2388, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2430
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.24* @uid_filter to i8*), metadata !2389, metadata !DIExpression()) #7, !dbg !2430
  call void @llvm.dbg.value(metadata i64 %721, metadata !2390, metadata !DIExpression()) #7, !dbg !2430
  store i64 %721, i64* %17, align 8, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %717, metadata !2391, metadata !DIExpression()) #7, !dbg !2430
  call void @llvm.dbg.value(metadata i64 %719, metadata !2392, metadata !DIExpression()) #7, !dbg !2430
  call void @llvm.dbg.value(metadata i64* %17, metadata !2390, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2430
  %723 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.24* @uid_filter to i8*), i8* nonnull %722) #7, !dbg !2432
  call void @llvm.dbg.value(metadata i8* %723, metadata !2393, metadata !DIExpression()) #7, !dbg !2430
  %724 = icmp eq i8* %723, null, !dbg !2433
  br i1 %724, label %728, label %725, !dbg !2434

725:                                              ; preds = %714
  %726 = load i8, i8* %723, align 1, !dbg !2435, !tbaa !2255
  %727 = zext i8 %726 to i32, !dbg !2435
  br label %740, !dbg !2436

728:                                              ; preds = %714
  %729 = load i64, i64* %17, align 8
  %730 = add i64 %717, -1, !dbg !2437
  %731 = icmp ult i64 %730, %729, !dbg !2437
  call void @llvm.dbg.value(metadata i64 %729, metadata !2390, metadata !DIExpression()) #7, !dbg !2430
  br i1 %731, label %739, label %732, !dbg !2437

732:                                              ; preds = %728
  %733 = icmp eq i64 %719, -1, !dbg !2438
  %734 = icmp ugt i64 %729, %719
  %735 = or i1 %733, %734, !dbg !2439
  call void @llvm.dbg.value(metadata i64 %729, metadata !2390, metadata !DIExpression()) #7, !dbg !2430
  br i1 %735, label %736, label %739, !dbg !2439

736:                                              ; preds = %732
  %737 = lshr i32 %635, 1, !dbg !2440
  %738 = and i32 %737, 1, !dbg !2440
  br label %740, !dbg !2441

739:                                              ; preds = %732, %728
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %722) #7, !dbg !2442
  br label %873

740:                                              ; preds = %736, %725
  %741 = phi i32 [ %727, %725 ], [ %738, %736 ], !dbg !2430
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %722) #7, !dbg !2442
  %742 = icmp eq i32 %741, 0, !dbg !2443
  br i1 %742, label %873, label %743

743:                                              ; preds = %740, %711
  %744 = and i32 %635, 4, !dbg !2444
  %745 = icmp eq i32 %744, 0, !dbg !2444
  br i1 %745, label %775, label %746, !dbg !2445

746:                                              ; preds = %743
  call void @llvm.dbg.value(metadata i1 undef, metadata !2313, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2446
  %747 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2447, !tbaa !1746
  %748 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %747, i64 0, i32 8, !dbg !2448
  %749 = load i64, i64* %748, align 8, !dbg !2448, !tbaa !2449
  call void @llvm.dbg.value(metadata i64 %749, metadata !2316, metadata !DIExpression()) #7, !dbg !2446
  %750 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %747, i64 0, i32 9, !dbg !2450
  %751 = load i64, i64* %750, align 8, !dbg !2450, !tbaa !2451
  call void @llvm.dbg.value(metadata i64 %751, metadata !2317, metadata !DIExpression()) #7, !dbg !2446
  %752 = load i32, i32* %322, align 4, !dbg !2452, !tbaa !2202
  %753 = zext i32 %752 to i64, !dbg !2454
  %754 = bitcast i64* %16 to i8*, !dbg !2455
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %754) #7, !dbg !2455
  call void @llvm.dbg.value(metadata i1 undef, metadata !2388, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2455
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.26* @mnt_ns_filter to i8*), metadata !2389, metadata !DIExpression()) #7, !dbg !2455
  call void @llvm.dbg.value(metadata i64 %753, metadata !2390, metadata !DIExpression()) #7, !dbg !2455
  store i64 %753, i64* %16, align 8, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %749, metadata !2391, metadata !DIExpression()) #7, !dbg !2455
  call void @llvm.dbg.value(metadata i64 %751, metadata !2392, metadata !DIExpression()) #7, !dbg !2455
  call void @llvm.dbg.value(metadata i64* %16, metadata !2390, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2455
  %755 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.26* @mnt_ns_filter to i8*), i8* nonnull %754) #7, !dbg !2457
  call void @llvm.dbg.value(metadata i8* %755, metadata !2393, metadata !DIExpression()) #7, !dbg !2455
  %756 = icmp eq i8* %755, null, !dbg !2458
  br i1 %756, label %760, label %757, !dbg !2459

757:                                              ; preds = %746
  %758 = load i8, i8* %755, align 1, !dbg !2460, !tbaa !2255
  %759 = zext i8 %758 to i32, !dbg !2460
  br label %772, !dbg !2461

760:                                              ; preds = %746
  %761 = load i64, i64* %16, align 8
  %762 = add i64 %749, -1, !dbg !2462
  %763 = icmp ult i64 %762, %761, !dbg !2462
  call void @llvm.dbg.value(metadata i64 %761, metadata !2390, metadata !DIExpression()) #7, !dbg !2455
  br i1 %763, label %771, label %764, !dbg !2462

764:                                              ; preds = %760
  %765 = icmp eq i64 %751, -1, !dbg !2463
  %766 = icmp ugt i64 %761, %751
  %767 = or i1 %765, %766, !dbg !2464
  call void @llvm.dbg.value(metadata i64 %761, metadata !2390, metadata !DIExpression()) #7, !dbg !2455
  br i1 %767, label %768, label %771, !dbg !2464

768:                                              ; preds = %764
  %769 = lshr i32 %635, 3, !dbg !2465
  %770 = and i32 %769, 1, !dbg !2465
  br label %772, !dbg !2466

771:                                              ; preds = %764, %760
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %754) #7, !dbg !2467
  br label %873

772:                                              ; preds = %768, %757
  %773 = phi i32 [ %759, %757 ], [ %770, %768 ], !dbg !2455
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %754) #7, !dbg !2467
  %774 = icmp eq i32 %773, 0, !dbg !2468
  br i1 %774, label %873, label %775

775:                                              ; preds = %772, %743
  %776 = and i32 %635, 16, !dbg !2469
  %777 = icmp eq i32 %776, 0, !dbg !2469
  br i1 %777, label %807, label %778, !dbg !2470

778:                                              ; preds = %775
  call void @llvm.dbg.value(metadata i1 undef, metadata !2318, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2471
  %779 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2472, !tbaa !1746
  %780 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %779, i64 0, i32 10, !dbg !2473
  %781 = load i64, i64* %780, align 8, !dbg !2473, !tbaa !2474
  call void @llvm.dbg.value(metadata i64 %781, metadata !2321, metadata !DIExpression()) #7, !dbg !2471
  %782 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %779, i64 0, i32 11, !dbg !2475
  %783 = load i64, i64* %782, align 8, !dbg !2475, !tbaa !2476
  call void @llvm.dbg.value(metadata i64 %783, metadata !2322, metadata !DIExpression()) #7, !dbg !2471
  %784 = load i32, i32* %383, align 8, !dbg !2477, !tbaa !2207
  %785 = zext i32 %784 to i64, !dbg !2479
  %786 = bitcast i64* %15 to i8*, !dbg !2480
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %786) #7, !dbg !2480
  call void @llvm.dbg.value(metadata i1 undef, metadata !2388, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2480
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.27* @pid_ns_filter to i8*), metadata !2389, metadata !DIExpression()) #7, !dbg !2480
  call void @llvm.dbg.value(metadata i64 %785, metadata !2390, metadata !DIExpression()) #7, !dbg !2480
  store i64 %785, i64* %15, align 8, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %781, metadata !2391, metadata !DIExpression()) #7, !dbg !2480
  call void @llvm.dbg.value(metadata i64 %783, metadata !2392, metadata !DIExpression()) #7, !dbg !2480
  call void @llvm.dbg.value(metadata i64* %15, metadata !2390, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2480
  %787 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.27* @pid_ns_filter to i8*), i8* nonnull %786) #7, !dbg !2482
  call void @llvm.dbg.value(metadata i8* %787, metadata !2393, metadata !DIExpression()) #7, !dbg !2480
  %788 = icmp eq i8* %787, null, !dbg !2483
  br i1 %788, label %792, label %789, !dbg !2484

789:                                              ; preds = %778
  %790 = load i8, i8* %787, align 1, !dbg !2485, !tbaa !2255
  %791 = zext i8 %790 to i32, !dbg !2485
  br label %804, !dbg !2486

792:                                              ; preds = %778
  %793 = load i64, i64* %15, align 8
  %794 = add i64 %781, -1, !dbg !2487
  %795 = icmp ult i64 %794, %793, !dbg !2487
  call void @llvm.dbg.value(metadata i64 %793, metadata !2390, metadata !DIExpression()) #7, !dbg !2480
  br i1 %795, label %803, label %796, !dbg !2487

796:                                              ; preds = %792
  %797 = icmp eq i64 %783, -1, !dbg !2488
  %798 = icmp ugt i64 %793, %783
  %799 = or i1 %797, %798, !dbg !2489
  call void @llvm.dbg.value(metadata i64 %793, metadata !2390, metadata !DIExpression()) #7, !dbg !2480
  br i1 %799, label %800, label %803, !dbg !2489

800:                                              ; preds = %796
  %801 = lshr i32 %635, 5, !dbg !2490
  %802 = and i32 %801, 1, !dbg !2490
  br label %804, !dbg !2491

803:                                              ; preds = %796, %792
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %786) #7, !dbg !2492
  br label %873

804:                                              ; preds = %800, %789
  %805 = phi i32 [ %791, %789 ], [ %802, %800 ], !dbg !2480
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %786) #7, !dbg !2492
  %806 = icmp eq i32 %805, 0, !dbg !2493
  br i1 %806, label %873, label %807

807:                                              ; preds = %804, %775
  %808 = and i32 %635, 64, !dbg !2494
  %809 = icmp eq i32 %808, 0, !dbg !2494
  br i1 %809, label %822, label %810, !dbg !2495

810:                                              ; preds = %807
  call void @llvm.dbg.value(metadata i1 undef, metadata !2323, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2496
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2505
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.28* @uts_ns_filter to i8*), metadata !2502, metadata !DIExpression()) #7, !dbg !2505
  call void @llvm.dbg.value(metadata i8* %417, metadata !2503, metadata !DIExpression()) #7, !dbg !2505
  %811 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.28* @uts_ns_filter to i8*), i8* nonnull %417) #7, !dbg !2508
  call void @llvm.dbg.value(metadata i8* %811, metadata !2504, metadata !DIExpression()) #7, !dbg !2505
  %812 = icmp eq i8* %811, null, !dbg !2509
  br i1 %812, label %816, label %813, !dbg !2511

813:                                              ; preds = %810
  %814 = bitcast i8* %811 to i32*, !dbg !2508
  call void @llvm.dbg.value(metadata i32* %814, metadata !2504, metadata !DIExpression()) #7, !dbg !2505
  %815 = load i32, i32* %814, align 4, !dbg !2512, !tbaa !1657
  br label %819, !dbg !2513

816:                                              ; preds = %810
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2505
  call void @llvm.dbg.value(metadata i1 undef, metadata !2323, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2496
  %817 = lshr i32 %635, 7, !dbg !2514
  %818 = and i32 %817, 1, !dbg !2514
  br label %819, !dbg !2515

819:                                              ; preds = %816, %813
  %820 = phi i32 [ %815, %813 ], [ %818, %816 ], !dbg !2505
  %821 = icmp eq i32 %820, 0, !dbg !2516
  br i1 %821, label %873, label %822

822:                                              ; preds = %819, %807
  %823 = and i32 %635, 256, !dbg !2517
  %824 = icmp eq i32 %823, 0, !dbg !2517
  br i1 %824, label %837, label %825, !dbg !2518

825:                                              ; preds = %822
  call void @llvm.dbg.value(metadata i1 undef, metadata !2326, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2519
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2520
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.29* @comm_filter to i8*), metadata !2502, metadata !DIExpression()) #7, !dbg !2520
  call void @llvm.dbg.value(metadata i8* %388, metadata !2503, metadata !DIExpression()) #7, !dbg !2520
  %826 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.29* @comm_filter to i8*), i8* nonnull %388) #7, !dbg !2523
  call void @llvm.dbg.value(metadata i8* %826, metadata !2504, metadata !DIExpression()) #7, !dbg !2520
  %827 = icmp eq i8* %826, null, !dbg !2524
  br i1 %827, label %831, label %828, !dbg !2525

828:                                              ; preds = %825
  %829 = bitcast i8* %826 to i32*, !dbg !2523
  call void @llvm.dbg.value(metadata i32* %829, metadata !2504, metadata !DIExpression()) #7, !dbg !2520
  %830 = load i32, i32* %829, align 4, !dbg !2526, !tbaa !1657
  br label %834, !dbg !2527

831:                                              ; preds = %825
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2520
  call void @llvm.dbg.value(metadata i1 undef, metadata !2326, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2519
  %832 = lshr i32 %635, 9, !dbg !2528
  %833 = and i32 %832, 1, !dbg !2528
  br label %834, !dbg !2529

834:                                              ; preds = %831, %828
  %835 = phi i32 [ %830, %828 ], [ %833, %831 ], !dbg !2520
  %836 = icmp eq i32 %835, 0, !dbg !2530
  br i1 %836, label %873, label %837

837:                                              ; preds = %834, %822
  %838 = and i32 %635, 524288, !dbg !2531
  %839 = icmp eq i32 %838, 0, !dbg !2531
  br i1 %839, label %853, label %840, !dbg !2532

840:                                              ; preds = %837
  call void @llvm.dbg.value(metadata i1 undef, metadata !2329, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2533
  %841 = bitcast i32* %231 to i8*, !dbg !2534
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2536
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.7* @process_tree_map to i8*), metadata !2502, metadata !DIExpression()) #7, !dbg !2536
  call void @llvm.dbg.value(metadata i8* %841, metadata !2503, metadata !DIExpression()) #7, !dbg !2536
  %842 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.7* @process_tree_map to i8*), i8* nonnull %841) #7, !dbg !2538
  call void @llvm.dbg.value(metadata i8* %842, metadata !2504, metadata !DIExpression()) #7, !dbg !2536
  %843 = icmp eq i8* %842, null, !dbg !2539
  br i1 %843, label %847, label %844, !dbg !2540

844:                                              ; preds = %840
  %845 = bitcast i8* %842 to i32*, !dbg !2538
  call void @llvm.dbg.value(metadata i32* %845, metadata !2504, metadata !DIExpression()) #7, !dbg !2536
  %846 = load i32, i32* %845, align 4, !dbg !2541, !tbaa !1657
  br label %850, !dbg !2542

847:                                              ; preds = %840
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2536
  call void @llvm.dbg.value(metadata i1 undef, metadata !2329, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2533
  %848 = lshr i32 %635, 20, !dbg !2543
  %849 = and i32 %848, 1, !dbg !2543
  br label %850, !dbg !2544

850:                                              ; preds = %847, %844
  %851 = phi i32 [ %846, %844 ], [ %849, %847 ], !dbg !2536
  %852 = icmp eq i32 %851, 0, !dbg !2545
  br i1 %852, label %873, label %853

853:                                              ; preds = %850, %837
  %854 = and i32 %635, 2097152, !dbg !2546
  %855 = icmp eq i32 %854, 0, !dbg !2546
  br i1 %855, label %872, label %856, !dbg !2547

856:                                              ; preds = %853
  call void @llvm.dbg.value(metadata i1 undef, metadata !2332, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2548
  %857 = bitcast i32* %19 to i8*, !dbg !2549
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %857) #7, !dbg !2549
  %858 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 1, i32 1, !dbg !2550
  %859 = load i64, i64* %858, align 8, !dbg !2550, !tbaa !2192
  %860 = trunc i64 %859 to i32, !dbg !2551
  call void @llvm.dbg.value(metadata i32 %860, metadata !2335, metadata !DIExpression()) #7, !dbg !2548
  store i32 %860, i32* %19, align 4, !dbg !2552, !tbaa !1657
  call void @llvm.dbg.value(metadata i32* %19, metadata !2335, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2548
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2553
  call void @llvm.dbg.value(metadata i8* bitcast (%struct.anon.30* @cgroup_id_filter to i8*), metadata !2502, metadata !DIExpression()) #7, !dbg !2553
  call void @llvm.dbg.value(metadata i8* %857, metadata !2503, metadata !DIExpression()) #7, !dbg !2553
  %861 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.30* @cgroup_id_filter to i8*), i8* nonnull %857) #7, !dbg !2556
  call void @llvm.dbg.value(metadata i8* %861, metadata !2504, metadata !DIExpression()) #7, !dbg !2553
  %862 = icmp eq i8* %861, null, !dbg !2557
  br i1 %862, label %866, label %863, !dbg !2558

863:                                              ; preds = %856
  %864 = bitcast i8* %861 to i32*, !dbg !2556
  call void @llvm.dbg.value(metadata i32* %864, metadata !2504, metadata !DIExpression()) #7, !dbg !2553
  %865 = load i32, i32* %864, align 4, !dbg !2559, !tbaa !1657
  br label %869, !dbg !2560

866:                                              ; preds = %856
  call void @llvm.dbg.value(metadata i1 undef, metadata !2497, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2553
  call void @llvm.dbg.value(metadata i1 undef, metadata !2332, metadata !DIExpression(DW_OP_LLVM_convert, 1, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)) #7, !dbg !2548
  %867 = lshr i32 %635, 22, !dbg !2561
  %868 = and i32 %867, 1, !dbg !2561
  br label %869, !dbg !2562

869:                                              ; preds = %866, %863
  %870 = phi i32 [ %865, %863 ], [ %868, %866 ], !dbg !2553
  %871 = icmp eq i32 %870, 0, !dbg !2563
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %857) #7, !dbg !2564
  br i1 %871, label %873, label %872

872:                                              ; preds = %869, %853
  br label %873, !dbg !2565

873:                                              ; preds = %872, %869, %850, %834, %819, %804, %803, %772, %771, %740, %739, %703, %697, %696, %662, %656, %653, %642, %638
  %874 = phi i32 [ 1, %872 ], [ 0, %869 ], [ 0, %850 ], [ 0, %834 ], [ 0, %819 ], [ 0, %804 ], [ 0, %772 ], [ 0, %740 ], [ 0, %703 ], [ 0, %697 ], [ 0, %662 ], [ 0, %656 ], [ 1, %638 ], [ 0, %642 ], [ 0, %696 ], [ 0, %739 ], [ 0, %771 ], [ 0, %803 ], [ 0, %653 ]
  %875 = load %struct.task_info*, %struct.task_info** %520, align 8, !dbg !2566, !tbaa !2159
  %876 = getelementptr inbounds %struct.task_info, %struct.task_info* %875, i64 0, i32 6, !dbg !2567
  store i32 %874, i32* %876, align 4, !dbg !2568, !tbaa !2283
  %877 = getelementptr inbounds %struct.task_info, %struct.task_info* %875, i64 0, i32 3, !dbg !2569
  store i8 0, i8* %877, align 1, !dbg !2570, !tbaa !2182
  br label %878, !dbg !2571

878:                                              ; preds = %873, %629
  %879 = phi %struct.task_info* [ %875, %873 ], [ %625, %629 ]
  %880 = phi i32 [ %874, %873 ], [ %631, %629 ], !dbg !2282
  %881 = icmp eq i32 %880, 0, !dbg !2572
  br i1 %881, label %1188, label %882, !dbg !2573

882:                                              ; preds = %878
  %883 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, !dbg !2574
  call void @llvm.dbg.value(metadata %struct.syscall_data* %883, metadata !1681, metadata !DIExpression()), !dbg !1715
  %884 = load i64, i64* @"llvm.bpf_raw_tracepoint_args:0:8$0:0:1", align 8
  %885 = getelementptr i8, i8* %70, i64 %884
  %886 = bitcast i8* %885 to i64*
  %887 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 0, i64* %886)
  %888 = load i64, i64* %887, align 8, !dbg !2575, !tbaa !1668
  %889 = trunc i64 %888 to i32, !dbg !2575
  %890 = getelementptr inbounds %struct.syscall_data, %struct.syscall_data* %883, i64 0, i32 0, !dbg !2576
  store i32 %889, i32* %890, align 8, !dbg !2577, !tbaa !2578
  %891 = bitcast i32* %14 to i8*, !dbg !2579
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %891), !dbg !2579
  call void @llvm.dbg.value(metadata i32 1000, metadata !2584, metadata !DIExpression()) #7, !dbg !2579
  store i32 1000, i32* %14, align 4, !tbaa !1657
  call void @llvm.dbg.value(metadata i32* %14, metadata !2584, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2579
  %892 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.22* @kconfig_map to i8*), i8* nonnull %891) #7, !dbg !2587
  call void @llvm.dbg.value(metadata i8* %892, metadata !2585, metadata !DIExpression()) #7, !dbg !2579
  %893 = icmp eq i8* %892, null, !dbg !2588
  br i1 %893, label %894, label %895, !dbg !2590

894:                                              ; preds = %882
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %891), !dbg !2591
  br label %1029, !dbg !2592

895:                                              ; preds = %882
  %896 = bitcast i8* %892 to i32*, !dbg !2587
  call void @llvm.dbg.value(metadata i32* %896, metadata !2585, metadata !DIExpression()) #7, !dbg !2579
  %897 = load i32, i32* %896, align 4, !dbg !2593, !tbaa !1657
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %891), !dbg !2591
  %898 = icmp eq i32 %897, 0, !dbg !2594
  br i1 %898, label %1029, label %899, !dbg !2592

899:                                              ; preds = %895
  %900 = load i64, i64* @"llvm.bpf_raw_tracepoint_args:0:0$0:0:0", align 8
  %901 = getelementptr i8, i8* %70, i64 %900
  %902 = bitcast i8* %901 to i64*
  %903 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 2, i64* %902)
  %904 = load i64, i64* %903, align 8, !dbg !2595, !tbaa !1668
  call void @llvm.dbg.value(metadata i64 %904, metadata !1682, metadata !DIExpression()), !dbg !2596
  %905 = bitcast %struct.task_struct** %80 to i8**, !dbg !2597
  %906 = load i8*, i8** %905, align 8, !dbg !2597, !tbaa !1761
  call void @llvm.dbg.value(metadata %struct.task_struct* undef, metadata !2598, metadata !DIExpression()) #7, !dbg !2605
  %907 = bitcast i32* %13 to i8*, !dbg !2607
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %907) #7, !dbg !2607
  call void @llvm.dbg.value(metadata i32* %13, metadata !2603, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2608
  store i32 0, i32* %13, align 4, !dbg !2607
  %908 = load i64, i64* @"llvm.task_struct:0:0$0:0:0", align 8
  %909 = getelementptr i8, i8* %906, i64 %908
  %910 = bitcast i8* %909 to i32*
  %911 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 15, i32* %910) #7
  %912 = bitcast i32* %911 to i8*, !dbg !2607
  %913 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %907, i32 4, i8* %912) #7, !dbg !2607
  %914 = load i32, i32* %13, align 4, !dbg !2607, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %914, metadata !2603, metadata !DIExpression()) #7, !dbg !2608
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %907) #7, !dbg !2609
  %915 = and i32 %914, 2, !dbg !2610
  %916 = icmp eq i32 %915, 0, !dbg !2609
  br i1 %916, label %973, label %917, !dbg !2611

917:                                              ; preds = %899
  call void @llvm.dbg.value(metadata i64 %904, metadata !1682, metadata !DIExpression()), !dbg !2596
  %918 = bitcast i64* %57 to i8*, !dbg !2612
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %918) #7, !dbg !2612
  call void @llvm.dbg.value(metadata i64* %57, metadata !1685, metadata !DIExpression(DW_OP_deref)), !dbg !2613
  store i64 0, i64* %57, align 8, !dbg !2612
  %919 = load i64, i64* @"llvm.pt_regs:0:40$0:5", align 8
  %920 = inttoptr i64 %904 to i8*
  %921 = getelementptr i8, i8* %920, i64 %919
  %922 = bitcast i8* %921 to i64*
  %923 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 4, i64* %922)
  %924 = bitcast i64* %923 to i8*, !dbg !2612
  %925 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %918, i32 8, i8* %924) #7, !dbg !2612
  %926 = load i64, i64* %57, align 8, !dbg !2612, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %926, metadata !1685, metadata !DIExpression()), !dbg !2613
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %918) #7, !dbg !2615
  %927 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 0, !dbg !2616
  store i64 %926, i64* %927, align 8, !dbg !2617, !tbaa !2614
  %928 = bitcast i64* %58 to i8*, !dbg !2618
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %928) #7, !dbg !2618
  call void @llvm.dbg.value(metadata i64* %58, metadata !1689, metadata !DIExpression(DW_OP_deref)), !dbg !2619
  store i64 0, i64* %58, align 8, !dbg !2618
  %929 = load i64, i64* @"llvm.pt_regs:0:88$0:11", align 8
  %930 = getelementptr i8, i8* %920, i64 %929
  %931 = bitcast i8* %930 to i64*
  %932 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 5, i64* %931)
  %933 = bitcast i64* %932 to i8*, !dbg !2618
  %934 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %928, i32 8, i8* %933) #7, !dbg !2618
  %935 = load i64, i64* %58, align 8, !dbg !2618, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %935, metadata !1689, metadata !DIExpression()), !dbg !2619
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %928) #7, !dbg !2620
  %936 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 1, !dbg !2621
  store i64 %935, i64* %936, align 8, !dbg !2622, !tbaa !2614
  %937 = bitcast i64* %59 to i8*, !dbg !2623
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %937) #7, !dbg !2623
  call void @llvm.dbg.value(metadata i64* %59, metadata !1691, metadata !DIExpression(DW_OP_deref)), !dbg !2624
  store i64 0, i64* %59, align 8, !dbg !2623
  %938 = load i64, i64* @"llvm.pt_regs:0:96$0:12", align 8
  %939 = getelementptr i8, i8* %920, i64 %938
  %940 = bitcast i8* %939 to i64*
  %941 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 1, i64* %940)
  %942 = bitcast i64* %941 to i8*, !dbg !2623
  %943 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %937, i32 8, i8* %942) #7, !dbg !2623
  %944 = load i64, i64* %59, align 8, !dbg !2623, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %944, metadata !1691, metadata !DIExpression()), !dbg !2624
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %937) #7, !dbg !2625
  %945 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 2, !dbg !2626
  store i64 %944, i64* %945, align 8, !dbg !2627, !tbaa !2614
  %946 = bitcast i64* %60 to i8*, !dbg !2628
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %946) #7, !dbg !2628
  call void @llvm.dbg.value(metadata i64* %60, metadata !1693, metadata !DIExpression(DW_OP_deref)), !dbg !2629
  store i64 0, i64* %60, align 8, !dbg !2628
  %947 = load i64, i64* @"llvm.pt_regs:0:104$0:13", align 8
  %948 = getelementptr i8, i8* %920, i64 %947
  %949 = bitcast i8* %948 to i64*
  %950 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 8, i64* %949)
  %951 = bitcast i64* %950 to i8*, !dbg !2628
  %952 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %946, i32 8, i8* %951) #7, !dbg !2628
  %953 = load i64, i64* %60, align 8, !dbg !2628, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %953, metadata !1693, metadata !DIExpression()), !dbg !2629
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %946) #7, !dbg !2630
  %954 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 3, !dbg !2631
  store i64 %953, i64* %954, align 8, !dbg !2632, !tbaa !2614
  %955 = bitcast i64* %61 to i8*, !dbg !2633
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %955) #7, !dbg !2633
  call void @llvm.dbg.value(metadata i64* %61, metadata !1695, metadata !DIExpression(DW_OP_deref)), !dbg !2634
  store i64 0, i64* %61, align 8, !dbg !2633
  %956 = load i64, i64* @"llvm.pt_regs:0:112$0:14", align 8
  %957 = getelementptr i8, i8* %920, i64 %956
  %958 = bitcast i8* %957 to i64*
  %959 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 9, i64* %958)
  %960 = bitcast i64* %959 to i8*, !dbg !2633
  %961 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %955, i32 8, i8* %960) #7, !dbg !2633
  %962 = load i64, i64* %61, align 8, !dbg !2633, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %962, metadata !1695, metadata !DIExpression()), !dbg !2634
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %955) #7, !dbg !2635
  %963 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 4, !dbg !2636
  store i64 %962, i64* %963, align 8, !dbg !2637, !tbaa !2614
  %964 = bitcast i64* %62 to i8*, !dbg !2638
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %964) #7, !dbg !2638
  call void @llvm.dbg.value(metadata i64* %62, metadata !1697, metadata !DIExpression(DW_OP_deref)), !dbg !2639
  store i64 0, i64* %62, align 8, !dbg !2638
  %965 = load i64, i64* @"llvm.pt_regs:0:32$0:4", align 8
  %966 = getelementptr i8, i8* %920, i64 %965
  %967 = bitcast i8* %966 to i64*
  %968 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 10, i64* %967)
  %969 = bitcast i64* %968 to i8*, !dbg !2638
  %970 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %964, i32 8, i8* %969) #7, !dbg !2638
  %971 = load i64, i64* %62, align 8, !dbg !2638, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %971, metadata !1697, metadata !DIExpression()), !dbg !2639
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %964) #7, !dbg !2640
  %972 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 5, !dbg !2641
  store i64 %971, i64* %972, align 8, !dbg !2642, !tbaa !2614
  br label %1039, !dbg !2643

973:                                              ; preds = %899
  %974 = bitcast i64* %63 to i8*, !dbg !2644
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %974) #7, !dbg !2644
  call void @llvm.dbg.value(metadata i64* %63, metadata !1699, metadata !DIExpression(DW_OP_deref)), !dbg !2645
  store i64 0, i64* %63, align 8, !dbg !2644
  %975 = load i64, i64* @"llvm.pt_regs:0:112$0:14", align 8
  %976 = inttoptr i64 %904 to i8*
  %977 = getelementptr i8, i8* %976, i64 %975
  %978 = bitcast i8* %977 to i64*
  %979 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 11, i64* %978)
  %980 = bitcast i64* %979 to i8*, !dbg !2644
  %981 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %974, i32 8, i8* %980) #7, !dbg !2644
  %982 = load i64, i64* %63, align 8, !dbg !2644, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %982, metadata !1699, metadata !DIExpression()), !dbg !2645
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %974) #7, !dbg !2646
  %983 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 0, !dbg !2647
  store i64 %982, i64* %983, align 8, !dbg !2648, !tbaa !2614
  %984 = bitcast i64* %64 to i8*, !dbg !2649
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %984) #7, !dbg !2649
  call void @llvm.dbg.value(metadata i64* %64, metadata !1702, metadata !DIExpression(DW_OP_deref)), !dbg !2650
  store i64 0, i64* %64, align 8, !dbg !2649
  %985 = load i64, i64* @"llvm.pt_regs:0:104$0:13", align 8
  %986 = getelementptr i8, i8* %976, i64 %985
  %987 = bitcast i8* %986 to i64*
  %988 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 12, i64* %987)
  %989 = bitcast i64* %988 to i8*, !dbg !2649
  %990 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %984, i32 8, i8* %989) #7, !dbg !2649
  %991 = load i64, i64* %64, align 8, !dbg !2649, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %991, metadata !1702, metadata !DIExpression()), !dbg !2650
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %984) #7, !dbg !2651
  %992 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 1, !dbg !2652
  store i64 %991, i64* %992, align 8, !dbg !2653, !tbaa !2614
  %993 = bitcast i64* %65 to i8*, !dbg !2654
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %993) #7, !dbg !2654
  call void @llvm.dbg.value(metadata i64* %65, metadata !1704, metadata !DIExpression(DW_OP_deref)), !dbg !2655
  store i64 0, i64* %65, align 8, !dbg !2654
  %994 = load i64, i64* @"llvm.pt_regs:0:96$0:12", align 8
  %995 = getelementptr i8, i8* %976, i64 %994
  %996 = bitcast i8* %995 to i64*
  %997 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 6, i64* %996)
  %998 = bitcast i64* %997 to i8*, !dbg !2654
  %999 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %993, i32 8, i8* %998) #7, !dbg !2654
  %1000 = load i64, i64* %65, align 8, !dbg !2654, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %1000, metadata !1704, metadata !DIExpression()), !dbg !2655
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %993) #7, !dbg !2656
  %1001 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 2, !dbg !2657
  store i64 %1000, i64* %1001, align 8, !dbg !2658, !tbaa !2614
  %1002 = bitcast i64* %66 to i8*, !dbg !2659
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1002) #7, !dbg !2659
  call void @llvm.dbg.value(metadata i64* %66, metadata !1706, metadata !DIExpression(DW_OP_deref)), !dbg !2660
  store i64 0, i64* %66, align 8, !dbg !2659
  %1003 = load i64, i64* @"llvm.pt_regs:0:56$0:7", align 8
  %1004 = getelementptr i8, i8* %976, i64 %1003
  %1005 = bitcast i8* %1004 to i64*
  %1006 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 7, i64* %1005)
  %1007 = bitcast i64* %1006 to i8*, !dbg !2659
  %1008 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %1002, i32 8, i8* %1007) #7, !dbg !2659
  %1009 = load i64, i64* %66, align 8, !dbg !2659, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %1009, metadata !1706, metadata !DIExpression()), !dbg !2660
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1002) #7, !dbg !2661
  %1010 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 3, !dbg !2662
  store i64 %1009, i64* %1010, align 8, !dbg !2663, !tbaa !2614
  %1011 = bitcast i64* %67 to i8*, !dbg !2664
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1011) #7, !dbg !2664
  call void @llvm.dbg.value(metadata i64* %67, metadata !1708, metadata !DIExpression(DW_OP_deref)), !dbg !2665
  store i64 0, i64* %67, align 8, !dbg !2664
  %1012 = load i64, i64* @"llvm.pt_regs:0:72$0:9", align 8
  %1013 = getelementptr i8, i8* %976, i64 %1012
  %1014 = bitcast i8* %1013 to i64*
  %1015 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 13, i64* %1014)
  %1016 = bitcast i64* %1015 to i8*, !dbg !2664
  %1017 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %1011, i32 8, i8* %1016) #7, !dbg !2664
  %1018 = load i64, i64* %67, align 8, !dbg !2664, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %1018, metadata !1708, metadata !DIExpression()), !dbg !2665
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1011) #7, !dbg !2666
  %1019 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 4, !dbg !2667
  store i64 %1018, i64* %1019, align 8, !dbg !2668, !tbaa !2614
  %1020 = bitcast i64* %68 to i8*, !dbg !2669
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1020) #7, !dbg !2669
  call void @llvm.dbg.value(metadata i64* %68, metadata !1710, metadata !DIExpression(DW_OP_deref)), !dbg !2670
  store i64 0, i64* %68, align 8, !dbg !2669
  %1021 = load i64, i64* @"llvm.pt_regs:0:64$0:8", align 8
  %1022 = getelementptr i8, i8* %976, i64 %1021
  %1023 = bitcast i8* %1022 to i64*
  %1024 = call i64* @llvm.bpf.passthrough.p0i64.p0i64(i32 14, i64* %1023)
  %1025 = bitcast i64* %1024 to i8*, !dbg !2669
  %1026 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %1020, i32 8, i8* %1025) #7, !dbg !2669
  %1027 = load i64, i64* %68, align 8, !dbg !2669, !tbaa !2614
  call void @llvm.dbg.value(metadata i64 %1027, metadata !1710, metadata !DIExpression()), !dbg !2670
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1020) #7, !dbg !2671
  %1028 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 5, !dbg !2672
  store i64 %1027, i64* %1028, align 8, !dbg !2673, !tbaa !2614
  br label %1039

1029:                                             ; preds = %895, %894
  %1030 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 0, !dbg !2674
  %1031 = bitcast i64* %1030 to i8*, !dbg !2674
  %1032 = load i64, i64* @"llvm.bpf_raw_tracepoint_args:0:0$0:0", align 8
  %1033 = getelementptr i8, i8* %70, i64 %1032
  %1034 = bitcast i8* %1033 to [0 x i64]*
  %1035 = call [0 x i64]* @llvm.bpf.passthrough.p0a0i64.p0a0i64(i32 3, [0 x i64]* %1034)
  %1036 = bitcast [0 x i64]* %1035 to i8*, !dbg !2676
  %1037 = call i64 inttoptr (i64 4 to i64 (i8*, i32, i8*)*)(i8* nonnull %1031, i32 8, i8* %1036) #7, !dbg !2677
  %1038 = bitcast %struct.task_struct** %80 to i8**, !dbg !2678
  br label %1039

1039:                                             ; preds = %1029, %973, %917
  %1040 = phi i8** [ %905, %917 ], [ %905, %973 ], [ %1038, %1029 ], !dbg !2678
  %1041 = load i8*, i8** %1040, align 8, !dbg !2678, !tbaa !1761
  call void @llvm.dbg.value(metadata %struct.task_struct* undef, metadata !2679, metadata !DIExpression()) #7, !dbg !2682
  call void @llvm.dbg.value(metadata %struct.task_struct* undef, metadata !2598, metadata !DIExpression()) #7, !dbg !2684
  %1042 = bitcast i32* %12 to i8*, !dbg !2686
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %1042) #7, !dbg !2686
  call void @llvm.dbg.value(metadata i32* %12, metadata !2603, metadata !DIExpression(DW_OP_deref)) #7, !dbg !2687
  store i32 0, i32* %12, align 4, !dbg !2686
  %1043 = load i64, i64* @"llvm.task_struct:0:0$0:0:0", align 8
  %1044 = getelementptr i8, i8* %1041, i64 %1043
  %1045 = bitcast i8* %1044 to i32*
  %1046 = call i32* @llvm.bpf.passthrough.p0i32.p0i32(i32 15, i32* %1045) #7
  %1047 = bitcast i32* %1046 to i8*, !dbg !2686
  %1048 = call i64 inttoptr (i64 113 to i64 (i8*, i32, i8*)*)(i8* nonnull %1042, i32 4, i8* %1047) #7, !dbg !2686
  %1049 = load i32, i32* %12, align 4, !dbg !2686, !tbaa !1657
  call void @llvm.dbg.value(metadata i32 %1049, metadata !2603, metadata !DIExpression()) #7, !dbg !2687
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %1042) #7, !dbg !2688
  %1050 = and i32 %1049, 2, !dbg !2689
  %1051 = icmp eq i32 %1050, 0, !dbg !2688
  br i1 %1051, label %1059, label %1052, !dbg !2690

1052:                                             ; preds = %1039
  %1053 = bitcast %struct.syscall_data* %883 to i8*, !dbg !2691
  %1054 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.anon.2* @sys_32_to_64_map to i8*), i8* nonnull %1053) #7, !dbg !2692
  call void @llvm.dbg.value(metadata i8* %1054, metadata !1712, metadata !DIExpression()), !dbg !2693
  %1055 = icmp eq i8* %1054, null, !dbg !2694
  br i1 %1055, label %1188, label %1056, !dbg !2696

1056:                                             ; preds = %1052
  %1057 = bitcast i8* %1054 to i32*, !dbg !2692
  call void @llvm.dbg.value(metadata i32* %1057, metadata !1712, metadata !DIExpression()), !dbg !2693
  %1058 = load i32, i32* %1057, align 4, !dbg !2697, !tbaa !1657
  store i32 %1058, i32* %890, align 8, !dbg !2698, !tbaa !2578
  br label %1059

1059:                                             ; preds = %1056, %1039
  %1060 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2699, !tbaa !1746
  call void @llvm.dbg.value(metadata i32 704, metadata !2701, metadata !DIExpression()), !dbg !2710
  call void @llvm.dbg.value(metadata %struct.config_entry* %1060, metadata !2706, metadata !DIExpression()), !dbg !2710
  call void @llvm.dbg.value(metadata i32 88, metadata !2707, metadata !DIExpression()), !dbg !2710
  call void @llvm.dbg.value(metadata i32 0, metadata !2708, metadata !DIExpression()), !dbg !2710
  %1061 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %1060, i64 0, i32 12, i64 88, !dbg !2712
  %1062 = load i8, i8* %1061, align 1, !dbg !2712, !tbaa !2255
  call void @llvm.dbg.value(metadata i8 %1062, metadata !2709, metadata !DIExpression()), !dbg !2710
  %1063 = and i8 %1062, 1, !dbg !2713
  %1064 = icmp eq i8 %1063, 0, !dbg !2714
  br i1 %1064, label %1117, label %1065, !dbg !2715

1065:                                             ; preds = %1059
  %1066 = bitcast %struct.syscall_data* %883 to i8*, !dbg !2716
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2718, metadata !DIExpression()) #7, !dbg !2728
  call void @llvm.dbg.value(metadata i8* %1066, metadata !2723, metadata !DIExpression()) #7, !dbg !2728
  call void @llvm.dbg.value(metadata i32 4, metadata !2724, metadata !DIExpression()) #7, !dbg !2728
  call void @llvm.dbg.value(metadata i8 0, metadata !2725, metadata !DIExpression()) #7, !dbg !2728
  %1067 = load i32, i32* %509, align 8, !dbg !2730, !tbaa !2143
  %1068 = icmp ugt i32 %1067, 32763, !dbg !2732
  br i1 %1068, label %1092, label %1069, !dbg !2733

1069:                                             ; preds = %1065
  %1070 = bitcast i32* %11 to i8*, !dbg !2734
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %1070), !dbg !2734
  call void @llvm.dbg.declare(metadata i32* %11, metadata !2726, metadata !DIExpression()) #7, !dbg !2735
  store volatile i32 %1067, i32* %11, align 4, !dbg !2735, !tbaa !1657
  %1071 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2736, !tbaa !2149
  %1072 = load volatile i32, i32* %11, align 4, !dbg !2737, !tbaa !1657
  %1073 = and i32 %1072, 32767, !dbg !2738
  %1074 = zext i32 %1073 to i64
  %1075 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1071, i64 0, i32 0, i64 %1074, !dbg !2739
  store i8 0, i8* %1075, align 1, !dbg !2740, !tbaa !2255
  %1076 = load i32, i32* %509, align 8, !dbg !2741, !tbaa !2143
  %1077 = add i32 %1076, 1, !dbg !2743
  %1078 = icmp ult i32 %1077, 32659, !dbg !2744
  br i1 %1078, label %1079, label %1090, !dbg !2745

1079:                                             ; preds = %1069
  %1080 = zext i32 %1077 to i64, !dbg !2746
  %1081 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2747, !tbaa !2149
  %1082 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1081, i64 0, i32 0, i64 %1080, !dbg !2750
  %1083 = call i64 inttoptr (i64 4 to i64 (i8*, i32, i8*)*)(i8* %1082, i32 4, i8* nonnull %1066) #7, !dbg !2751
  %1084 = icmp eq i64 %1083, 0, !dbg !2752
  br i1 %1084, label %1085, label %1090, !dbg !2753

1085:                                             ; preds = %1079
  %1086 = load i32, i32* %509, align 8, !dbg !2754, !tbaa !2143
  %1087 = add i32 %1086, 5, !dbg !2754
  store i32 %1087, i32* %509, align 8, !dbg !2754, !tbaa !2143
  %1088 = load i8, i8* %502, align 2, !dbg !2756, !tbaa !2757
  %1089 = add i8 %1088, 1, !dbg !2756
  store i8 %1089, i8* %502, align 2, !dbg !2756, !tbaa !2757
  br label %1090, !dbg !2758

1090:                                             ; preds = %1085, %1079, %1069
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %1070), !dbg !2759
  %1091 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2760, !tbaa !1746
  br label %1092

1092:                                             ; preds = %1090, %1065
  %1093 = phi %struct.config_entry* [ %1060, %1065 ], [ %1091, %1090 ], !dbg !2760
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2766, metadata !DIExpression()) #7, !dbg !2774
  call void @llvm.dbg.value(metadata i32 704, metadata !2767, metadata !DIExpression()) #7, !dbg !2774
  call void @llvm.dbg.value(metadata i64 0, metadata !2768, metadata !DIExpression()) #7, !dbg !2774
  %1094 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 2, !dbg !2775
  store i32 704, i32* %1094, align 8, !dbg !2776, !tbaa !2777
  %1095 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 4, !dbg !2778
  store i64 0, i64* %1095, align 8, !dbg !2779, !tbaa !2780
  %1096 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %1093, i64 0, i32 1, !dbg !2781
  %1097 = load i32, i32* %1096, align 4, !dbg !2781, !tbaa !1764
  %1098 = and i32 %1097, 16, !dbg !2782
  %1099 = icmp eq i32 %1098, 0, !dbg !2782
  br i1 %1099, label %1106, label %1100, !dbg !2783

1100:                                             ; preds = %1092
  %1101 = load i8*, i8** %507, align 8, !dbg !2784, !tbaa !2140
  %1102 = call i64 inttoptr (i64 27 to i64 (i8*, i8*, i64)*)(i8* %1101, i8* bitcast (%struct.anon.39* @stack_addresses to i8*), i64 256) #7, !dbg !2785
  %1103 = trunc i64 %1102 to i32, !dbg !2785
  call void @llvm.dbg.value(metadata i32 %1103, metadata !2769, metadata !DIExpression()) #7, !dbg !2786
  %1104 = icmp sgt i32 %1103, -1, !dbg !2787
  br i1 %1104, label %1105, label %1106, !dbg !2789

1105:                                             ; preds = %1100
  store i32 %1103, i32* %503, align 8, !dbg !2790, !tbaa !2792
  br label %1106, !dbg !2793

1106:                                             ; preds = %1105, %1100, %1092
  %1107 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2794, !tbaa !2149
  %1108 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1107, i64 0, i32 0, i64 0, !dbg !2795
  %1109 = call i64 inttoptr (i64 4 to i64 (i8*, i32, i8*)*)(i8* %1108, i32 120, i8* nonnull %69) #7, !dbg !2796
  %1110 = load i32, i32* %509, align 8, !dbg !2797, !tbaa !2143
  %1111 = and i32 %1110, 32767, !dbg !2798
  call void @llvm.dbg.value(metadata i32 %1111, metadata !2771, metadata !DIExpression()) #7, !dbg !2774
  %1112 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2799, !tbaa !2149
  %1113 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1112, i64 0, i32 0, i64 0, !dbg !2800
  call void @llvm.dbg.value(metadata i8* %1113, metadata !2772, metadata !DIExpression()) #7, !dbg !2774
  %1114 = load i8*, i8** %507, align 8, !dbg !2801, !tbaa !2140
  %1115 = zext i32 %1111 to i64
  %1116 = call i64 inttoptr (i64 25 to i64 (i8*, i8*, i64, i8*, i64)*)(i8* %1114, i8* bitcast (%struct.anon.41* @events to i8*), i64 4294967295, i8* %1113, i64 %1115) #7, !dbg !2802
  br label %1117, !dbg !2803

1117:                                             ; preds = %1106, %1059
  %1118 = load i32, i32* %890, align 8, !dbg !2804, !tbaa !2578
  switch i32 %1118, label %1119 [
    i32 15, label %1185
    i32 60, label %1124
    i32 231, label %1124
  ], !dbg !2806

1119:                                             ; preds = %1117
  %1120 = load i64, i64* %501, align 8, !dbg !2807, !tbaa !2809
  %1121 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 2, !dbg !2810
  store i64 %1120, i64* %1121, align 8, !dbg !2811, !tbaa !2812
  %1122 = load %struct.task_info*, %struct.task_info** %520, align 8, !dbg !2813, !tbaa !2159
  %1123 = getelementptr inbounds %struct.task_info, %struct.task_info* %1122, i64 0, i32 2, !dbg !2814
  store i8 1, i8* %1123, align 8, !dbg !2815, !tbaa !2168
  br label %1185, !dbg !2816

1124:                                             ; preds = %1117, %1117
  %1125 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2817, !tbaa !1746
  call void @llvm.dbg.value(metadata i32 %1118, metadata !2701, metadata !DIExpression()), !dbg !2819
  call void @llvm.dbg.value(metadata %struct.config_entry* %1125, metadata !2706, metadata !DIExpression()), !dbg !2819
  %1126 = lshr i32 %1118, 3, !dbg !2821
  call void @llvm.dbg.value(metadata i32 %1126, metadata !2707, metadata !DIExpression()), !dbg !2819
  %1127 = and i32 %1118, 7, !dbg !2822
  call void @llvm.dbg.value(metadata i32 %1127, metadata !2708, metadata !DIExpression()), !dbg !2819
  %1128 = zext i32 %1126 to i64, !dbg !2823
  %1129 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %1125, i64 0, i32 12, i64 %1128, !dbg !2823
  %1130 = load i8, i8* %1129, align 1, !dbg !2823, !tbaa !2255
  call void @llvm.dbg.value(metadata i8 %1130, metadata !2709, metadata !DIExpression()), !dbg !2819
  %1131 = zext i8 %1130 to i32, !dbg !2824
  %1132 = shl nuw nsw i32 1, %1127, !dbg !2825
  %1133 = and i32 %1132, %1131, !dbg !2826
  %1134 = icmp eq i32 %1133, 0, !dbg !2827
  br i1 %1134, label %1185, label %1135, !dbg !2828

1135:                                             ; preds = %1124
  store i32 120, i32* %509, align 8, !dbg !2829, !tbaa !2143
  store i8 0, i8* %502, align 2, !dbg !2831, !tbaa !2757
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2718, metadata !DIExpression()) #7, !dbg !2832
  call void @llvm.dbg.value(metadata %struct.task_info* %879, metadata !2723, metadata !DIExpression(DW_OP_plus_uconst, 96, DW_OP_stack_value)) #7, !dbg !2832
  call void @llvm.dbg.value(metadata i32 4, metadata !2724, metadata !DIExpression()) #7, !dbg !2832
  call void @llvm.dbg.value(metadata i8 0, metadata !2725, metadata !DIExpression()) #7, !dbg !2832
  %1136 = bitcast i32* %10 to i8*, !dbg !2834
  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %1136), !dbg !2834
  call void @llvm.dbg.declare(metadata i32* %10, metadata !2726, metadata !DIExpression()) #7, !dbg !2835
  store volatile i32 120, i32* %10, align 4, !dbg !2835, !tbaa !1657
  %1137 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2836, !tbaa !2149
  %1138 = load volatile i32, i32* %10, align 4, !dbg !2837, !tbaa !1657
  %1139 = and i32 %1138, 32767, !dbg !2838
  %1140 = zext i32 %1139 to i64
  %1141 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1137, i64 0, i32 0, i64 %1140, !dbg !2839
  store i8 0, i8* %1141, align 1, !dbg !2840, !tbaa !2255
  %1142 = load i32, i32* %509, align 8, !dbg !2841, !tbaa !2143
  %1143 = add i32 %1142, 1, !dbg !2842
  %1144 = icmp ult i32 %1143, 32659, !dbg !2843
  br i1 %1144, label %1145, label %1158, !dbg !2844

1145:                                             ; preds = %1135
  %1146 = getelementptr inbounds %struct.task_info, %struct.task_info* %879, i64 0, i32 1, i32 1, i32 0, i64 0, !dbg !2845
  call void @llvm.dbg.value(metadata i64* %1146, metadata !2723, metadata !DIExpression()) #7, !dbg !2832
  %1147 = bitcast i64* %1146 to i8*, !dbg !2846
  call void @llvm.dbg.value(metadata i8* %1147, metadata !2723, metadata !DIExpression()) #7, !dbg !2832
  %1148 = zext i32 %1143 to i64, !dbg !2847
  %1149 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2848, !tbaa !2149
  %1150 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1149, i64 0, i32 0, i64 %1148, !dbg !2849
  %1151 = call i64 inttoptr (i64 4 to i64 (i8*, i32, i8*)*)(i8* %1150, i32 4, i8* nonnull %1147) #7, !dbg !2850
  %1152 = icmp eq i64 %1151, 0, !dbg !2851
  br i1 %1152, label %1153, label %1158, !dbg !2852

1153:                                             ; preds = %1145
  %1154 = load i32, i32* %509, align 8, !dbg !2853, !tbaa !2143
  %1155 = add i32 %1154, 5, !dbg !2853
  store i32 %1155, i32* %509, align 8, !dbg !2853, !tbaa !2143
  %1156 = load i8, i8* %502, align 2, !dbg !2854, !tbaa !2757
  %1157 = add i8 %1156, 1, !dbg !2854
  store i8 %1157, i8* %502, align 2, !dbg !2854, !tbaa !2757
  br label %1158, !dbg !2855

1158:                                             ; preds = %1153, %1145, %1135
  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %1136), !dbg !2856
  %1159 = load i32, i32* %890, align 8, !dbg !2857, !tbaa !2578
  call void @llvm.dbg.value(metadata %struct.event_data* %56, metadata !2766, metadata !DIExpression()) #7, !dbg !2858
  call void @llvm.dbg.value(metadata i32 %1159, metadata !2767, metadata !DIExpression()) #7, !dbg !2858
  call void @llvm.dbg.value(metadata i64 0, metadata !2768, metadata !DIExpression()) #7, !dbg !2858
  %1160 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 2, !dbg !2860
  store i32 %1159, i32* %1160, align 8, !dbg !2861, !tbaa !2777
  %1161 = getelementptr inbounds %struct.event_data, %struct.event_data* %56, i64 0, i32 0, i32 4, !dbg !2862
  store i64 0, i64* %1161, align 8, !dbg !2863, !tbaa !2780
  %1162 = load %struct.config_entry*, %struct.config_entry** %73, align 8, !dbg !2864, !tbaa !1746
  %1163 = getelementptr inbounds %struct.config_entry, %struct.config_entry* %1162, i64 0, i32 1, !dbg !2865
  %1164 = load i32, i32* %1163, align 4, !dbg !2865, !tbaa !1764
  %1165 = and i32 %1164, 16, !dbg !2866
  %1166 = icmp eq i32 %1165, 0, !dbg !2866
  br i1 %1166, label %1173, label %1167, !dbg !2867

1167:                                             ; preds = %1158
  %1168 = load i8*, i8** %507, align 8, !dbg !2868, !tbaa !2140
  %1169 = call i64 inttoptr (i64 27 to i64 (i8*, i8*, i64)*)(i8* %1168, i8* bitcast (%struct.anon.39* @stack_addresses to i8*), i64 256) #7, !dbg !2869
  %1170 = trunc i64 %1169 to i32, !dbg !2869
  call void @llvm.dbg.value(metadata i32 %1170, metadata !2769, metadata !DIExpression()) #7, !dbg !2870
  %1171 = icmp sgt i32 %1170, -1, !dbg !2871
  br i1 %1171, label %1172, label %1173, !dbg !2872

1172:                                             ; preds = %1167
  store i32 %1170, i32* %503, align 8, !dbg !2873, !tbaa !2792
  br label %1173, !dbg !2874

1173:                                             ; preds = %1172, %1167, %1158
  %1174 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2875, !tbaa !2149
  %1175 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1174, i64 0, i32 0, i64 0, !dbg !2876
  %1176 = call i64 inttoptr (i64 4 to i64 (i8*, i32, i8*)*)(i8* %1175, i32 120, i8* nonnull %69) #7, !dbg !2877
  %1177 = load i32, i32* %509, align 8, !dbg !2878, !tbaa !2143
  %1178 = and i32 %1177, 32767, !dbg !2879
  call void @llvm.dbg.value(metadata i32 %1178, metadata !2771, metadata !DIExpression()) #7, !dbg !2858
  %1179 = load %struct.simple_buf*, %struct.simple_buf** %512, align 8, !dbg !2880, !tbaa !2149
  %1180 = getelementptr inbounds %struct.simple_buf, %struct.simple_buf* %1179, i64 0, i32 0, i64 0, !dbg !2881
  call void @llvm.dbg.value(metadata i8* %1180, metadata !2772, metadata !DIExpression()) #7, !dbg !2858
  %1181 = load i8*, i8** %507, align 8, !dbg !2882, !tbaa !2140
  %1182 = zext i32 %1178 to i64
  %1183 = call i64 inttoptr (i64 25 to i64 (i8*, i8*, i64, i8*, i64)*)(i8* %1181, i8* bitcast (%struct.anon.41* @events to i8*), i64 4294967295, i8* %1180, i64 %1182) #7, !dbg !2883
  %1184 = load i32, i32* %890, align 8, !dbg !2884, !tbaa !2578
  br label %1185, !dbg !2885

1185:                                             ; preds = %1173, %1124, %1119, %1117
  %1186 = phi i32 [ %1118, %1117 ], [ %1118, %1124 ], [ %1184, %1173 ], [ %1118, %1119 ], !dbg !2884
  %1187 = call i64 inttoptr (i64 12 to i64 (i8*, i8*, i32)*)(i8* %70, i8* bitcast (%struct.anon.3* @sys_enter_tails to i8*), i32 %1186) #7, !dbg !2886
  br label %1188, !dbg !2887

1188:                                             ; preds = %1185, %1052, %878, %620, %76
  call void @llvm.lifetime.end.p0i8(i64 168, i8* nonnull %69) #7, !dbg !2888
  ret i32 0, !dbg !2888
}

liusy58 avatar Aug 16 '22 07:08 liusy58

Could you please try 15 or main branch? https://godbolt.org should be helpful.

EugeneZelenko avatar Aug 16 '22 14:08 EugeneZelenko

Thank you. But it seems that some projects don't support llvm15. So I have not upgraded llvm. But I will have a try. In fact, I have a log file when I use the -debug flag. Will it be useful for you?

liusy58 avatar Aug 17 '22 02:08 liusy58

I have upgraded my llvm version to 15. But unluckily, I still got the error same message. The error comes when dealing with the basic block which I added using a pass.

BB2:                                              ; preds = %BB1
  %4 = getelementptr inbounds i64, ptr %2, i64 2
  %5 = load i64, ptr %4, align 8, !tbaa !1696
  %6 = add i64 %5, 1
  store i64 %6, ptr %4, align 8, !tbaa !1696
  br label %7

Any help is highly appreciated!!!

liusy58 avatar Aug 17 '22 07:08 liusy58

As error message mentioned, bpf backend does not support dynamic memory allocation.

LLVM ERROR: Unsupported dynamic stack allocation

Most likely you have some code like

int var = ...;
int  arr[var];
...

If the var is defined as a 'const' value, the compiler will be able to do constant propagation to allocate 'arr' on the stack statically. But if 'var' is not a const, it will be a dynamic allocation and the bpf backend will bail out.

Is this the case for your issue?

yonghong-song avatar Sep 21 '22 15:09 yonghong-song

Clang should refuse to compile this rather than die with a fatal error.

error: dynamic stack allocation is not supported

Here's a much simpler reproducer, similar to the code in the previous comment:

int foo(void);

int bar(void) {
  int n = foo();
  int a[n];
  return a[n - 1];
}
Stack dump:
0.      Program arguments: clang-15 -Wall -Wextra -target bpf -g -c variable_length.c -o /dev/null
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'variable_length.c'.
4.      Running pass 'BPF DAG->DAG Pattern Instruction Selection' on function '@bar'
 #0 0x00007f7f4735c1b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf5c1b1)
 #1 0x00007f7f47359ece llvm::sys::RunSignalHandlers() (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf59ece)
 #2 0x00007f7f4735b571 llvm::sys::CleanupOnSignal(unsigned long) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf5b571)
 #3 0x00007f7f4727992a (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe7992a)
 #4 0x00007f7f472798cb (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe798cb)
 #5 0x00007f7f473563f7 llvm::sys::Process::Exit(int, bool) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf563f7)
 #6 0x00005556e2ee9792 (/usr/lib/llvm-15/bin/clang+0x14792)
 #7 0x00007f7f4728bb49 llvm::report_fatal_error(llvm::Twine const&, bool) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe8bb49)
 #8 0x00007f7f4728ba36 (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe8ba36)
 #9 0x00007f7f49671b09 (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x3271b09)
#10 0x00007f7f47a4af93 (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x164af93)
#11 0x00007f7f47a4a6a5 llvm::SelectionDAG::Legalize() (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x164a6a5)
#12 0x00007f7f47b9fd7d llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x179fd7d)
#13 0x00007f7f47b9f2a1 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x179f2a1)
#14 0x00007f7f47b9ce0b llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x179ce0b)
#15 0x00007f7f476edcbc llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x12edcbc)
#16 0x00007f7f47498fd2 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1098fd2)
#17 0x00007f7f474a0593 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x10a0593)
#18 0x00007f7f47499b76 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0x1099b76)
#19 0x00007f7f4ef54991 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOpti
ons const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llv
m::raw_pwrite_stream> >) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1954991)
#20 0x00007f7f4f2b49e1 (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1cb49e1)
#21 0x00007f7f4e0bdb1b clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0xabdb1b)
#22 0x00007f7f4f2b0a05 clang::CodeGenAction::ExecuteAction() (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1cb0a05)
#23 0x00007f7f4fceea37 clang::FrontendAction::Execute() (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x26eea37)
#24 0x00007f7f4fc5fc36 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x265fc36)
#25 0x00007f7f4fd6cfea clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x276cfea)
#26 0x00005556e2ee9178 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-15/bin/clang+0x14178)
#27 0x00005556e2ee727b (/usr/lib/llvm-15/bin/clang+0x1227b)
#28 0x00007f7f4f8bef32 (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x22bef32)
#29 0x00007f7f472798ae llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xe798ae)
#30 0x00007f7f4f8bea08 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits
<char>, std::allocator<char> >*, bool*) const (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x22bea08)
#31 0x00007f7f4f88099a clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm-1
5/bin/../lib/libclang-cpp.so.15+0x228099a)
#32 0x00007f7f4f880bee clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command con
st*> >&, bool) const (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x2280bee)
#33 0x00007f7f4f89dcff clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command con
st*> >&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x229dcff)
#34 0x00005556e2ee69ff clang_main(int, char**) (/usr/lib/llvm-15/bin/clang+0x119ff)
#35 0x00007f7f45e456ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#36 0x00007f7f45e45785 call_init ./csu/../csu/libc-start.c:128:20
#37 0x00007f7f45e45785 __libc_start_main ./csu/../csu/libc-start.c:347:5
#38 0x00005556e2ee3ec1 _start (/usr/lib/llvm-15/bin/clang+0xeec1)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Debian clang version 15.0.7
Target: bpf
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: 

myxoid avatar Oct 10 '23 08:10 myxoid