; LLVM IR from vczh/herodb :: Kernel/Source (Vlpp)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.vl::ObjectString" = type { %"class.vl::Object", ptr, ptr, i64, i64, i64 }
%"class.vl::Object" = type { ptr }
%"class.vl::collections::LazyList.180" = type { %"class.vl::Object", %"class.vl::collections::IEnumerable.176", %"class.vl::Ptr.181" }
%"class.vl::collections::IEnumerable.176" = type { %"class.vl::Interface" }
%"class.vl::Interface" = type { ptr }
%"class.vl::Ptr.181" = type { ptr, ptr, ptr, ptr }
%"struct.vl::parsing::tabling::ParsingState::TransitionResult" = type { i32, i64, %"class.vl::ObjectString", i64, i64, i64, i64, ptr, ptr, i64, i64, %"class.vl::Ptr.140" }
%"class.vl::Ptr.140" = type { ptr, ptr, ptr, ptr }
%"class.vl::collections::List.172" = type { %"class.vl::collections::ListBase.base.178", %"class.vl::collections::IEnumerable.176" }
%"class.vl::collections::ListBase.base.178" = type <{ %"class.vl::collections::ArrayBase.base.177", i64, i8 }>
%"class.vl::collections::ArrayBase.base.177" = type { %"class.vl::collections::ListStore.175", ptr, i64 }
%"class.vl::collections::ListStore.175" = type { %"class.vl::Object" }
%"class.vl::collections::Array.198" = type { %"class.vl::collections::ArrayBase.base.121", %"class.vl::collections::IEnumerable.120" }
%"class.vl::collections::ArrayBase.base.121" = type { %"class.vl::collections::ListStore.119", ptr, i64 }
%"class.vl::collections::ListStore.119" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.120" = type { %"class.vl::Interface" }
%"class.vl::Ptr.61" = type { ptr, ptr, ptr, ptr }
%"class.vl::Ptr.137" = type { ptr, ptr, ptr, ptr }
%"class.vl::Ptr.63" = type { ptr, ptr, ptr, ptr }
%"struct.vl::parsing::tabling::ParsingState::Future" = type { i64, i64, %"class.vl::collections::List.116", ptr, i64, ptr, ptr, ptr }
%"class.vl::collections::List.116" = type { %"class.vl::collections::ListBase.base.122", %"class.vl::collections::IEnumerable.120" }
%"class.vl::collections::ListBase.base.122" = type <{ %"class.vl::collections::ArrayBase.base.121", i64, i8 }>
%"class.vl::parsing::tabling::ParsingTable::TransitionItem" = type { i64, i64, %"class.vl::collections::List.182", %"class.vl::collections::List.116", %"class.vl::collections::List.190" }
%"class.vl::collections::List.182" = type { %"class.vl::collections::ListBase.base.188", %"class.vl::collections::IEnumerable.186" }
%"class.vl::collections::ListBase.base.188" = type <{ %"class.vl::collections::ArrayBase.base.187", i64, i8 }>
%"class.vl::collections::ArrayBase.base.187" = type { %"class.vl::collections::ListStore.185", ptr, i64 }
%"class.vl::collections::ListStore.185" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.186" = type { %"class.vl::Interface" }
%"class.vl::collections::List.190" = type { %"class.vl::collections::ListBase.base.196", %"class.vl::collections::IEnumerable.194" }
%"class.vl::collections::ListBase.base.196" = type <{ %"class.vl::collections::ArrayBase.base.195", i64, i8 }>
%"class.vl::collections::ArrayBase.base.195" = type { %"class.vl::collections::ListStore.193", ptr, i64 }
%"class.vl::collections::ListStore.193" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.194" = type { %"class.vl::Interface" }
%"class.vl::parsing::tabling::ParsingTable::StateInfo" = type { %"class.vl::ObjectString", %"class.vl::ObjectString", %"class.vl::ObjectString", %"class.vl::ObjectString" }
%"class.vl::parsing::tabling::ParsingTable::Instruction" = type { i32, i64, %"class.vl::ObjectString", %"class.vl::ObjectString", %"class.vl::ObjectString" }
%"class.vl::parsing::tabling::ParsingAmbiguousParser" = type { %"class.vl::parsing::tabling::ParsingGeneralParser", %"class.vl::collections::List.164", i64 }
%"class.vl::parsing::tabling::ParsingGeneralParser" = type { %"class.vl::Object", %"class.vl::Ptr.61" }
%"class.vl::collections::List.164" = type { %"class.vl::collections::ListBase.base.170", %"class.vl::collections::IEnumerable.168" }
%"class.vl::collections::ListBase.base.170" = type <{ %"class.vl::collections::ArrayBase.base.169", i64, i8 }>
%"class.vl::collections::ArrayBase.base.169" = type { %"class.vl::collections::ListStore.167", ptr, i64 }
%"class.vl::collections::ListStore.167" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.168" = type { %"class.vl::Interface" }

@.str.2 = external hidden unnamed_addr constant [1 x i32], align 4
@.str.105 = external hidden unnamed_addr constant [39 x i32], align 4
@.str.106 = external hidden unnamed_addr constant [65 x i32], align 4
@.str.107 = external hidden unnamed_addr constant [88 x i32], align 4
@.str.108 = external hidden unnamed_addr constant [50 x i32], align 4

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl12ObjectStringIwEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #2 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(48)) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_3PtrINS_7parsing12ParsingErrorEEEPS4_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing12ParsingErrorC1EPKNS_5regex10RegexTokenERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing12ParsingErrorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN2vl7parsing7tabling12ParsingState8GetTokenEl(ptr noundef nonnull align 8 dereferenceable(256), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling12ParsingState15GetCurrentTokenEv(ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections8CopyFromINS0_4ListIPNS_7parsing7tabling12ParsingState6FutureES7_EENS0_8LazyListIS7_EEEEvRT_RKT0_b(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(48), i1 noundef zeroext) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections4FromIPNS_7parsing7tabling12ParsingState6FutureEEENS0_8LazyListIT_EERKNS0_11IEnumerableIS8_EE(ptr dead_on_unwind noalias writable sret(%"class.vl::collections::LazyList.180") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4SkipEl(ptr dead_on_unwind noalias writable sret(%"class.vl::collections::LazyList.180") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4TakeEl(ptr dead_on_unwind noalias writable sret(%"class.vl::collections::LazyList.180") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser22GetConflictReduceCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(33)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingTable11InstructionES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser24GetConflictReduceIndicesERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EElRNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(33), i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser25GetAffectedStackNodeCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EERNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(160)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState13RunTransitionEPNS1_12ParsingTable14TransitionItemEPNS_5regex10RegexTokenEllb(ptr dead_on_unwind noalias writable sret(%"struct.vl::parsing::tabling::ParsingState::TransitionResult") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, ptr noundef, i64 noundef, i64 noundef, i1 noundef zeroext) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildAmbiguousDecisionsERNS1_12ParsingStateERNS_11collections4ListIPNS3_6FutureES8_EElllRNS6_INS_3PtrINS0_12ParsingErrorEEEPSC_EE(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %3, i64 noundef %4, i64 noundef %5, ptr noundef nonnull align 8 dereferenceable(33) %6) #2 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.vl::collections::List.172", align 8
  %16 = alloca %"class.vl::collections::LazyList.180", align 8
  %17 = alloca %"class.vl::collections::LazyList.180", align 8
  %18 = alloca %"class.vl::collections::LazyList.180", align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca i32, align 4
  %23 = alloca i64, align 8
  %24 = alloca %"class.vl::collections::Array.198", align 8
  %25 = alloca i64, align 8
  %26 = alloca %"class.vl::ObjectString", align 8
  %27 = alloca %"class.vl::ObjectString", align 8
  %28 = alloca i64, align 8
  %29 = alloca %"class.vl::Ptr.61", align 8
  %30 = alloca %"class.vl::ObjectString", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.vl::Ptr.61", align 8
  %33 = alloca %"class.vl::Ptr.61", align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.vl::Ptr.137", align 8
  %36 = alloca %"class.vl::ObjectString", align 8
  %37 = alloca %"class.vl::ObjectString", align 8
  %38 = alloca %"class.vl::ObjectString", align 8
  %39 = alloca i1, align 1
  %40 = alloca i64, align 8
  %41 = alloca ptr, align 8
  %42 = alloca %"class.vl::Ptr.137", align 8
  %43 = alloca %"class.vl::ObjectString", align 8
  %44 = alloca i1, align 1
  %45 = alloca %"class.vl::Ptr.63", align 8
  %46 = alloca i64, align 8
  %47 = alloca %"class.vl::Ptr.63", align 8
  %48 = alloca %"class.vl::Ptr.63", align 8
  %49 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %50 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %51 = alloca i64, align 8
  %52 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %53 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store i64 %3, ptr %11, align 8, !tbaa !9
  store i64 %4, ptr %12, align 8, !tbaa !9
  store i64 %5, ptr %13, align 8, !tbaa !9
  store ptr %6, ptr %14, align 8, !tbaa !5
  %57 = load ptr, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr %15) #7
  call void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %15)
  call void @llvm.lifetime.start.p0(i64 48, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %18) #7
  %58 = load ptr, ptr %10, align 8, !tbaa !5
  %59 = load ptr, ptr %58, align 8, !tbaa !11
  %60 = getelementptr i8, ptr %59, i64 -24
  %61 = load i64, ptr %60, align 8
  %62 = getelementptr inbounds i8, ptr %58, i64 %61
  invoke void @_ZN2vl11collections4FromIPNS_7parsing7tabling12ParsingState6FutureEEENS0_8LazyListIT_EERKNS0_11IEnumerableIS8_EE(ptr dead_on_unwind writable sret(%"class.vl::collections::LazyList.180") align 8 %18, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %63 unwind label %76

63:                                               ; preds = %7
  %64 = load i64, ptr %11, align 8, !tbaa !9
  invoke void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4SkipEl(ptr dead_on_unwind writable sret(%"class.vl::collections::LazyList.180") align 8 %17, ptr noundef nonnull align 8 dereferenceable(48) %18, i64 noundef %64)
          to label %65 unwind label %80

65:                                               ; preds = %63
  %66 = load i64, ptr %12, align 8, !tbaa !9
  %67 = load i64, ptr %11, align 8, !tbaa !9
  %68 = sub nsw i64 %66, %67
  invoke void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4TakeEl(ptr dead_on_unwind writable sret(%"class.vl::collections::LazyList.180") align 8 %16, ptr noundef nonnull align 8 dereferenceable(48) %17, i64 noundef %68)
          to label %69 unwind label %84

69:                                               ; preds = %65
  invoke void @_ZN2vl11collections8CopyFromINS0_4ListIPNS_7parsing7tabling12ParsingState6FutureES7_EENS0_8LazyListIS7_EEEEvRT_RKT0_b(ptr noundef nonnull align 8 dereferenceable(33) %15, ptr noundef nonnull align 8 dereferenceable(48) %16, i1 noundef zeroext false)
          to label %70 unwind label %88

70:                                               ; preds = %69
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #7
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #7
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %18) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %71

71:                                               ; preds = %120, %70
  %72 = load i64, ptr %21, align 8, !tbaa !9
  %73 = load i64, ptr %13, align 8, !tbaa !9
  %74 = icmp slt i64 %72, %73
  br i1 %74, label %95, label %75

75:                                               ; preds = %71
  store i32 2, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %123

76:                                               ; preds = %7
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %19, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %20, align 4
  br label %94

80:                                               ; preds = %63
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %19, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %20, align 4
  br label %93

84:                                               ; preds = %65
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %19, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %20, align 4
  br label %92

88:                                               ; preds = %69
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %19, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %20, align 4
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #7
  br label %92

92:                                               ; preds = %88, %84
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #7
  br label %93

93:                                               ; preds = %92, %80
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %18) #7
  br label %94

94:                                               ; preds = %93, %76
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %16) #7
  br label %578

95:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  store i64 0, ptr %23, align 8, !tbaa !9
  br label %96

96:                                               ; preds = %116, %95
  %97 = load i64, ptr %23, align 8, !tbaa !9
  %98 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %99 unwind label %102

99:                                               ; preds = %96
  %100 = icmp slt i64 %97, %98
  br i1 %100, label %106, label %101

101:                                              ; preds = %99
  store i32 5, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %119

102:                                              ; preds = %109, %106, %96
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %19, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %578

106:                                              ; preds = %99
  %107 = load i64, ptr %23, align 8, !tbaa !9
  %108 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %15, i64 noundef %107)
          to label %109 unwind label %102

109:                                              ; preds = %106
  %110 = load ptr, ptr %108, align 8, !tbaa !5
  %111 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::Future", ptr %110, i32 0, i32 6
  %112 = load ptr, ptr %111, align 8, !tbaa !13
  %113 = load i64, ptr %23, align 8, !tbaa !9
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %15, i64 noundef %113)
          to label %115 unwind label %102

115:                                              ; preds = %109
  store ptr %112, ptr %114, align 8, !tbaa !5
  br label %116

116:                                              ; preds = %115
  %117 = load i64, ptr %23, align 8, !tbaa !9
  %118 = add nsw i64 %117, 1
  store i64 %118, ptr %23, align 8, !tbaa !9
  br label %96, !llvm.loop !21

119:                                              ; preds = %101
  br label %120

120:                                              ; preds = %119
  %121 = load i64, ptr %21, align 8, !tbaa !9
  %122 = add nsw i64 %121, 1
  store i64 %122, ptr %21, align 8, !tbaa !9
  br label %71, !llvm.loop !23

123:                                              ; preds = %75
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #7
  invoke void @_ZN2vl11collections5ArrayIllEC1El(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef 0)
          to label %124 unwind label %161

124:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %125 = invoke noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser22GetConflictReduceCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EE(ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(33) %15)
          to label %126 unwind label %165

126:                                              ; preds = %124
  store i64 %125, ptr %25, align 8, !tbaa !9
  %127 = load i64, ptr %25, align 8, !tbaa !9
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser24GetConflictReduceIndicesERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EElRNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(33) %15, i64 noundef %127, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %128 unwind label %165

128:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 48, ptr %26) #7
  invoke void @_ZN2vl12ObjectStringIwEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26)
          to label %129 unwind label %169

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 48, ptr %27) #7
  invoke void @_ZN2vl12ObjectStringIwEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27)
          to label %130 unwind label %173

130:                                              ; preds = %129
  %131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %15, i64 noundef 0)
          to label %132 unwind label %177

132:                                              ; preds = %130
  %133 = load ptr, ptr %131, align 8, !tbaa !5
  %134 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::Future", ptr %133, i32 0, i32 5
  %135 = load ptr, ptr %134, align 8, !tbaa !24
  %136 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::TransitionItem", ptr %135, i32 0, i32 4
  %137 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %136)
          to label %138 unwind label %177

138:                                              ; preds = %132
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef 0)
          to label %140 unwind label %177

140:                                              ; preds = %138
  %141 = load i64, ptr %139, align 8, !tbaa !9
  %142 = icmp eq i64 %137, %141
  br i1 %142, label %143, label %204

143:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %144 = load ptr, ptr %9, align 8, !tbaa !5
  %145 = invoke noundef i64 @_ZN2vl7parsing7tabling12ParsingState24GetParsingRuleStartStateEv(ptr noundef nonnull align 8 dereferenceable(256) %144)
          to label %146 unwind label %181

146:                                              ; preds = %143
  store i64 %145, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  %147 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind writable sret(%"class.vl::Ptr.61") align 8 %29, ptr noundef nonnull align 8 dereferenceable(256) %147)
          to label %148 unwind label %185

148:                                              ; preds = %146
  %149 = invoke noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %150 unwind label %189

150:                                              ; preds = %148
  %151 = load i64, ptr %28, align 8, !tbaa !9
  %152 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656) %149, i64 noundef %151)
          to label %153 unwind label %189

153:                                              ; preds = %150
  %154 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::StateInfo", ptr %152, i32 0, i32 3
  %155 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 8 dereferenceable(48) %154)
          to label %156 unwind label %189

156:                                              ; preds = %153
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %30) #7
  %157 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN2vl7parsing7tabling12ParsingState14GetParsingRuleEv(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %30, ptr noundef nonnull align 8 dereferenceable(256) %157)
          to label %158 unwind label %194

158:                                              ; preds = %156
  %159 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 8 dereferenceable(48) %30)
          to label %160 unwind label %198

160:                                              ; preds = %158
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %263

161:                                              ; preds = %123
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %19, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %20, align 4
  br label %577

165:                                              ; preds = %126, %124
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %19, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %20, align 4
  br label %576

169:                                              ; preds = %128
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %19, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %20, align 4
  br label %575

173:                                              ; preds = %129
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %19, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %20, align 4
  br label %574

177:                                              ; preds = %263, %138, %132, %130
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %19, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %20, align 4
  br label %573

181:                                              ; preds = %143
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %19, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %20, align 4
  br label %203

185:                                              ; preds = %146
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %19, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %20, align 4
  br label %193

189:                                              ; preds = %153, %150, %148
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %19, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %193

193:                                              ; preds = %189, %185
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  br label %203

194:                                              ; preds = %156
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %19, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %20, align 4
  br label %202

198:                                              ; preds = %158
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %19, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %20, align 4
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #7
  br label %202

202:                                              ; preds = %198, %194
  call void @llvm.lifetime.end.p0(i64 48, ptr %30) #7
  br label %203

203:                                              ; preds = %202, %193, %181
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %573

204:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %15, i64 noundef 0)
          to label %206 unwind label %240

206:                                              ; preds = %204
  %207 = load ptr, ptr %205, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::Future", ptr %207, i32 0, i32 5
  %209 = load ptr, ptr %208, align 8, !tbaa !24
  %210 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::TransitionItem", ptr %209, i32 0, i32 4
  %211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef 0)
          to label %212 unwind label %240

212:                                              ; preds = %206
  %213 = load i64, ptr %211, align 8, !tbaa !9
  %214 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingTable11InstructionES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %210, i64 noundef %213)
          to label %215 unwind label %240

215:                                              ; preds = %212
  store ptr %214, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  %216 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind writable sret(%"class.vl::Ptr.61") align 8 %32, ptr noundef nonnull align 8 dereferenceable(256) %216)
          to label %217 unwind label %244

217:                                              ; preds = %215
  %218 = invoke noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %219 unwind label %248

219:                                              ; preds = %217
  %220 = load ptr, ptr %31, align 8, !tbaa !5
  %221 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::Instruction", ptr %220, i32 0, i32 1
  %222 = load i64, ptr %221, align 8, !tbaa !25
  %223 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656) %218, i64 noundef %222)
          to label %224 unwind label %248

224:                                              ; preds = %219
  %225 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::StateInfo", ptr %223, i32 0, i32 3
  %226 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 8 dereferenceable(48) %225)
          to label %227 unwind label %248

227:                                              ; preds = %224
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  %228 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind writable sret(%"class.vl::Ptr.61") align 8 %33, ptr noundef nonnull align 8 dereferenceable(256) %228)
          to label %229 unwind label %253

229:                                              ; preds = %227
  %230 = invoke noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %231 unwind label %257

231:                                              ; preds = %229
  %232 = load ptr, ptr %31, align 8, !tbaa !5
  %233 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::Instruction", ptr %232, i32 0, i32 1
  %234 = load i64, ptr %233, align 8, !tbaa !25
  %235 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656) %230, i64 noundef %234)
          to label %236 unwind label %257

236:                                              ; preds = %231
  %237 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::StateInfo", ptr %235, i32 0, i32 0
  %238 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %27, ptr noundef nonnull align 8 dereferenceable(48) %237)
          to label %239 unwind label %257

239:                                              ; preds = %236
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %263

240:                                              ; preds = %212, %206, %204
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %19, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %20, align 4
  br label %262

244:                                              ; preds = %215
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %19, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %20, align 4
  br label %252

248:                                              ; preds = %224, %219, %217
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %19, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %252

252:                                              ; preds = %248, %244
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  br label %262

253:                                              ; preds = %227
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %19, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %20, align 4
  br label %261

257:                                              ; preds = %236, %231, %229
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %19, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %261

261:                                              ; preds = %257, %253
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %262

262:                                              ; preds = %261, %252, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %573

263:                                              ; preds = %239, %160
  %264 = invoke noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef @.str.2)
          to label %265 unwind label %177

265:                                              ; preds = %263
  br i1 %264, label %266, label %321

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %267 = load ptr, ptr %9, align 8, !tbaa !5
  %268 = load ptr, ptr %9, align 8, !tbaa !5
  %269 = invoke noundef i64 @_ZN2vl7parsing7tabling12ParsingState15GetCurrentTokenEv(ptr noundef nonnull align 8 dereferenceable(256) %268)
          to label %270 unwind label %284

270:                                              ; preds = %266
  %271 = invoke noundef ptr @_ZN2vl7parsing7tabling12ParsingState8GetTokenEl(ptr noundef nonnull align 8 dereferenceable(256) %267, i64 noundef %269)
          to label %272 unwind label %284

272:                                              ; preds = %270
  store ptr %271, ptr %34, align 8, !tbaa !5
  %273 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  %274 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #8
          to label %275 unwind label %288

275:                                              ; preds = %272
  store i1 true, ptr %39, align 1
  %276 = load ptr, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr %37) #7
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %37, ptr noundef @.str.105, ptr noundef nonnull align 8 dereferenceable(48) %27)
          to label %277 unwind label %292

277:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 48, ptr %38) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %38, ptr noundef @.str.106, i1 noundef zeroext true)
          to label %278 unwind label %296

278:                                              ; preds = %277
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind writable sret(%"class.vl::ObjectString") align 8 %36, ptr noundef nonnull align 8 dereferenceable(48) %37, ptr noundef nonnull align 8 dereferenceable(48) %38)
          to label %279 unwind label %300

279:                                              ; preds = %278
  invoke void @_ZN2vl7parsing12ParsingErrorC1EPKNS_5regex10RegexTokenERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(136) %274, ptr noundef %276, ptr noundef nonnull align 8 dereferenceable(48) %36)
          to label %280 unwind label %304

280:                                              ; preds = %279
  store i1 false, ptr %39, align 1
  invoke void @_ZN2vl3PtrINS_7parsing12ParsingErrorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %274)
          to label %281 unwind label %304

281:                                              ; preds = %280
  %282 = invoke noundef i64 @_ZN2vl11collections4ListINS_3PtrINS_7parsing12ParsingErrorEEEPS4_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %273, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %283 unwind label %308

283:                                              ; preds = %281
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  store i32 1, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %566

284:                                              ; preds = %270, %266
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %19, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %20, align 4
  br label %320

288:                                              ; preds = %272
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %19, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %20, align 4
  br label %319

292:                                              ; preds = %275
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %19, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %20, align 4
  br label %315

296:                                              ; preds = %277
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %19, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %20, align 4
  br label %314

300:                                              ; preds = %278
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %19, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %20, align 4
  br label %313

304:                                              ; preds = %280, %279
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %19, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %20, align 4
  br label %312

308:                                              ; preds = %281
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %19, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %312

312:                                              ; preds = %308, %304
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #7
  br label %313

313:                                              ; preds = %312, %300
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #7
  br label %314

314:                                              ; preds = %313, %296
  call void @llvm.lifetime.end.p0(i64 48, ptr %38) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #7
  br label %315

315:                                              ; preds = %314, %292
  call void @llvm.lifetime.end.p0(i64 48, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #7
  %316 = load i1, ptr %39, align 1
  br i1 %316, label %317, label %318

317:                                              ; preds = %315
  call void @_ZdlPvm(ptr noundef %274, i64 noundef 208) #9
  br label %318

318:                                              ; preds = %317, %315
  br label %319

319:                                              ; preds = %318, %288
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %320

320:                                              ; preds = %319, %284
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  br label %573

321:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %322 = invoke noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser25GetAffectedStackNodeCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EERNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(33) %15, ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %323 unwind label %346

323:                                              ; preds = %321
  store i64 %322, ptr %40, align 8, !tbaa !9
  %324 = load i64, ptr %40, align 8, !tbaa !9
  %325 = icmp eq i64 %324, -1
  br i1 %325, label %326, label %377

326:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %327 = load ptr, ptr %9, align 8, !tbaa !5
  %328 = load ptr, ptr %9, align 8, !tbaa !5
  %329 = invoke noundef i64 @_ZN2vl7parsing7tabling12ParsingState15GetCurrentTokenEv(ptr noundef nonnull align 8 dereferenceable(256) %328)
          to label %330 unwind label %350

330:                                              ; preds = %326
  %331 = invoke noundef ptr @_ZN2vl7parsing7tabling12ParsingState8GetTokenEl(ptr noundef nonnull align 8 dereferenceable(256) %327, i64 noundef %329)
          to label %332 unwind label %350

332:                                              ; preds = %330
  store ptr %331, ptr %41, align 8, !tbaa !5
  %333 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #7
  %334 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #8
          to label %335 unwind label %354

335:                                              ; preds = %332
  store i1 true, ptr %44, align 1
  %336 = load ptr, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %43) #7
  %337 = load ptr, ptr %41, align 8, !tbaa !5
  %338 = icmp eq ptr %337, null
  %339 = zext i1 %338 to i64
  %340 = select i1 %338, ptr @.str.107, ptr @.str.108
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %43, ptr noundef %340, i1 noundef zeroext true)
          to label %341 unwind label %358

341:                                              ; preds = %335
  invoke void @_ZN2vl7parsing12ParsingErrorC1EPKNS_5regex10RegexTokenERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(136) %334, ptr noundef %336, ptr noundef nonnull align 8 dereferenceable(48) %43)
          to label %342 unwind label %362

342:                                              ; preds = %341
  store i1 false, ptr %44, align 1
  invoke void @_ZN2vl3PtrINS_7parsing12ParsingErrorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef %334)
          to label %343 unwind label %362

343:                                              ; preds = %342
  %344 = invoke noundef i64 @_ZN2vl11collections4ListINS_3PtrINS_7parsing12ParsingErrorEEEPS4_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %333, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %345 unwind label %366

345:                                              ; preds = %343
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  store i32 1, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %565

346:                                              ; preds = %321
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %19, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %20, align 4
  br label %572

350:                                              ; preds = %330, %326
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %19, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %20, align 4
  br label %376

354:                                              ; preds = %332
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %19, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %20, align 4
  br label %375

358:                                              ; preds = %335
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %19, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %20, align 4
  br label %371

362:                                              ; preds = %342, %341
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %19, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %20, align 4
  br label %370

366:                                              ; preds = %343
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %19, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %370

370:                                              ; preds = %366, %362
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #7
  br label %371

371:                                              ; preds = %370, %358
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #7
  %372 = load i1, ptr %44, align 1
  br i1 %372, label %373, label %374

373:                                              ; preds = %371
  call void @_ZdlPvm(ptr noundef %334, i64 noundef 208) #9
  br label %374

374:                                              ; preds = %373, %371
  br label %375

375:                                              ; preds = %374, %354
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #7
  br label %376

376:                                              ; preds = %375, %350
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %572

377:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  invoke void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %378 unwind label %385

378:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  store i64 0, ptr %46, align 8, !tbaa !9
  br label %379

379:                                              ; preds = %524, %378
  %380 = load i64, ptr %46, align 8, !tbaa !9
  %381 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %382 unwind label %389

382:                                              ; preds = %379
  %383 = icmp slt i64 %380, %381
  br i1 %383, label %393, label %384

384:                                              ; preds = %382
  store i32 8, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %528

385:                                              ; preds = %377
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %19, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %20, align 4
  br label %571

389:                                              ; preds = %446, %444, %440, %436, %396, %393, %379
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %19, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %20, align 4
  br label %527

393:                                              ; preds = %382
  %394 = invoke noundef zeroext i1 @_ZNK2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %395 unwind label %389

395:                                              ; preds = %393
  br i1 %394, label %396, label %404

396:                                              ; preds = %395
  %397 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %398 unwind label %389

398:                                              ; preds = %396
  invoke void @_ZN2vl7parsing7tabling12ParsingState15RestoreSnapshotENS_3PtrINS2_10StateGroupEEE(ptr noundef nonnull align 8 dereferenceable(256) %397, ptr noundef %47)
          to label %399 unwind label %400

399:                                              ; preds = %398
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %418

400:                                              ; preds = %398
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %19, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %527

404:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #7
  %405 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN2vl7parsing7tabling12ParsingState12TakeSnapshotEv(ptr dead_on_unwind writable sret(%"class.vl::Ptr.63") align 8 %48, ptr noundef nonnull align 8 dereferenceable(256) %405)
          to label %406 unwind label %409

406:                                              ; preds = %404
  %407 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %408 unwind label %413

408:                                              ; preds = %406
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  br label %418

409:                                              ; preds = %404
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %19, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %20, align 4
  br label %417

413:                                              ; preds = %406
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %19, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %20, align 4
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  br label %417

417:                                              ; preds = %413, %409
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  br label %527

418:                                              ; preds = %408, %399
  call void @llvm.lifetime.start.p0(i64 160, ptr %49) #7
  %419 = load i64, ptr %46, align 8, !tbaa !9
  %420 = icmp eq i64 %419, 0
  %421 = zext i1 %420 to i64
  %422 = select i1 %420, i32 1, i32 2
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160) %49, i32 noundef %422)
          to label %423 unwind label %429

423:                                              ; preds = %418
  %424 = load i64, ptr %46, align 8, !tbaa !9
  %425 = icmp eq i64 %424, 0
  br i1 %425, label %426, label %433

426:                                              ; preds = %423
  %427 = load i64, ptr %40, align 8, !tbaa !9
  %428 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::TransitionResult", ptr %49, i32 0, i32 1
  store i64 %427, ptr %428, align 8, !tbaa !29
  br label %433

429:                                              ; preds = %418
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %19, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %20, align 4
  br label %493

433:                                              ; preds = %426, %423
  %434 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingAmbiguousParser", ptr %57, i32 0, i32 1
  %435 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %434, ptr noundef nonnull align 8 dereferenceable(160) %49)
          to label %436 unwind label %489

436:                                              ; preds = %433
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %49) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %49) #7
  %437 = load ptr, ptr %9, align 8, !tbaa !5
  %438 = load i64, ptr %46, align 8, !tbaa !9
  %439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %15, i64 noundef %438)
          to label %440 unwind label %389

440:                                              ; preds = %436
  %441 = load ptr, ptr %439, align 8, !tbaa !5
  %442 = load i64, ptr %46, align 8, !tbaa !9
  %443 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %442)
          to label %444 unwind label %389

444:                                              ; preds = %440
  %445 = load i64, ptr %443, align 8, !tbaa !9
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(256) %437, ptr noundef %441, i64 noundef %445)
          to label %446 unwind label %389

446:                                              ; preds = %444
  %447 = load i64, ptr %46, align 8, !tbaa !9
  %448 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %449 unwind label %389

449:                                              ; preds = %446
  %450 = sub nsw i64 %448, 1
  %451 = icmp eq i64 %447, %450
  br i1 %451, label %452, label %523

452:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 160, ptr %50) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160) %50, i32 noundef 3)
          to label %453 unwind label %494

453:                                              ; preds = %452
  %454 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::TransitionResult", ptr %50, i32 0, i32 2
  %455 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %454, ptr noundef nonnull align 8 dereferenceable(48) %26)
          to label %456 unwind label %498

456:                                              ; preds = %453
  %457 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingAmbiguousParser", ptr %57, i32 0, i32 1
  %458 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %457, ptr noundef nonnull align 8 dereferenceable(160) %50)
          to label %459 unwind label %498

459:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %460 = load i64, ptr %46, align 8, !tbaa !9
  %461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %460)
          to label %462 unwind label %502

462:                                              ; preds = %459
  %463 = load i64, ptr %461, align 8, !tbaa !9
  store i64 %463, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 160, ptr %52) #7
  %464 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingAmbiguousParser", ptr %57, i32 0, i32 1
  %465 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingAmbiguousParser", ptr %57, i32 0, i32 1
  %466 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingState16TransitionResultEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %465)
          to label %467 unwind label %506

467:                                              ; preds = %462
  %468 = sub nsw i64 %466, 2
  %469 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %464, i64 noundef %468)
          to label %470 unwind label %506

470:                                              ; preds = %467
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(160) %52, ptr noundef nonnull align 8 dereferenceable(160) %469)
          to label %471 unwind label %506

471:                                              ; preds = %470
  %472 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingAmbiguousParser", ptr %57, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 160, ptr %53) #7
  %473 = load ptr, ptr %9, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::TransitionResult", ptr %52, i32 0, i32 8
  %475 = load ptr, ptr %474, align 8, !tbaa !33
  %476 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::TransitionResult", ptr %52, i32 0, i32 7
  %477 = load ptr, ptr %476, align 8, !tbaa !34
  %478 = load i64, ptr %51, align 8, !tbaa !9
  %479 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::TransitionResult", ptr %52, i32 0, i32 8
  %480 = load ptr, ptr %479, align 8, !tbaa !33
  %481 = getelementptr inbounds %"class.vl::parsing::tabling::ParsingTable::TransitionItem", ptr %480, i32 0, i32 4
  %482 = invoke noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %481)
          to label %483 unwind label %510

483:                                              ; preds = %471
  %484 = load i64, ptr %51, align 8, !tbaa !9
  %485 = sub nsw i64 %482, %484
  invoke void @_ZN2vl7parsing7tabling12ParsingState13RunTransitionEPNS1_12ParsingTable14TransitionItemEPNS_5regex10RegexTokenEllb(ptr dead_on_unwind writable sret(%"struct.vl::parsing::tabling::ParsingState::TransitionResult") align 8 %53, ptr noundef nonnull align 8 dereferenceable(256) %473, ptr noundef %475, ptr noundef %477, i64 noundef %478, i64 noundef %485, i1 noundef zeroext true)
          to label %486 unwind label %510

486:                                              ; preds = %483
  %487 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %472, ptr noundef nonnull align 8 dereferenceable(160) %53)
          to label %488 unwind label %514

488:                                              ; preds = %486
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %53) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %53) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %52) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %50) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %50) #7
  br label %523

489:                                              ; preds = %433
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %19, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %20, align 4
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %49) #7
  br label %493

493:                                              ; preds = %489, %429
  call void @llvm.lifetime.end.p0(i64 160, ptr %49) #7
  br label %527

494:                                              ; preds = %452
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  store ptr %496, ptr %19, align 8
  %497 = extractvalue { ptr, i32 } %495, 1
  store i32 %497, ptr %20, align 4
  br label %522

498:                                              ; preds = %456, %453
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  store ptr %500, ptr %19, align 8
  %501 = extractvalue { ptr, i32 } %499, 1
  store i32 %501, ptr %20, align 4
  br label %521

502:                                              ; preds = %459
  %503 = landingpad { ptr, i32 }
          cleanup
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %19, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %20, align 4
  br label %520

506:                                              ; preds = %470, %467, %462
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %19, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %20, align 4
  br label %519

510:                                              ; preds = %483, %471
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %19, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %20, align 4
  br label %518

514:                                              ; preds = %486
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %19, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %20, align 4
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %53) #7
  br label %518

518:                                              ; preds = %514, %510
  call void @llvm.lifetime.end.p0(i64 160, ptr %53) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %52) #7
  br label %519

519:                                              ; preds = %518, %506
  call void @llvm.lifetime.end.p0(i64 160, ptr %52) #7
  br label %520

520:                                              ; preds = %519, %502
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %521

521:                                              ; preds = %520, %498
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %50) #7
  br label %522

522:                                              ; preds = %521, %494
  call void @llvm.lifetime.end.p0(i64 160, ptr %50) #7
  br label %527

523:                                              ; preds = %488, %449
  br label %524

524:                                              ; preds = %523
  %525 = load i64, ptr %46, align 8, !tbaa !9
  %526 = add nsw i64 %525, 1
  store i64 %526, ptr %46, align 8, !tbaa !9
  br label %379, !llvm.loop !35

527:                                              ; preds = %522, %493, %417, %400, %389
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %570

528:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %529 = load ptr, ptr %10, align 8, !tbaa !5
  %530 = load i64, ptr %12, align 8, !tbaa !9
  %531 = sub nsw i64 %530, 1
  %532 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %529, i64 noundef %531)
          to label %533 unwind label %541

533:                                              ; preds = %528
  %534 = load ptr, ptr %532, align 8, !tbaa !5
  store ptr %534, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  store ptr %54, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  store i32 1, ptr %56, align 4, !tbaa !36
  br label %535

535:                                              ; preds = %549, %533
  %536 = load i32, ptr %56, align 4, !tbaa !36
  %537 = sext i32 %536 to i64
  %538 = load i64, ptr %13, align 8, !tbaa !9
  %539 = icmp slt i64 %537, %538
  br i1 %539, label %545, label %540

540:                                              ; preds = %535
  store i32 11, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %552

541:                                              ; preds = %528
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %19, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %20, align 4
  br label %569

545:                                              ; preds = %535
  %546 = load ptr, ptr %55, align 8, !tbaa !5
  %547 = load ptr, ptr %546, align 8, !tbaa !5
  %548 = getelementptr inbounds %"struct.vl::parsing::tabling::ParsingState::Future", ptr %547, i32 0, i32 6
  store ptr %548, ptr %55, align 8, !tbaa !5
  br label %549

549:                                              ; preds = %545
  %550 = load i32, ptr %56, align 4, !tbaa !36
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr %56, align 4, !tbaa !36
  br label %535, !llvm.loop !38

552:                                              ; preds = %540
  %553 = load ptr, ptr %55, align 8, !tbaa !5
  store ptr null, ptr %553, align 8, !tbaa !5
  %554 = load ptr, ptr %54, align 8, !tbaa !5
  %555 = icmp ne ptr %554, null
  br i1 %555, label %556, label %564

556:                                              ; preds = %552
  %557 = load ptr, ptr %9, align 8, !tbaa !5
  %558 = load ptr, ptr %54, align 8, !tbaa !5
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96) %57, ptr noundef nonnull align 8 dereferenceable(256) %557, ptr noundef %558, i64 noundef -1)
          to label %559 unwind label %560

559:                                              ; preds = %556
  br label %564

560:                                              ; preds = %556
  %561 = landingpad { ptr, i32 }
          cleanup
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %19, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %569

564:                                              ; preds = %559, %552
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  store i32 0, ptr %22, align 4
  br label %565

565:                                              ; preds = %564, %345
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %566

566:                                              ; preds = %565, %283
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @_ZN2vl11collections5ArrayIllED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %15) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #7
  %567 = load i32, ptr %22, align 4
  switch i32 %567, label %584 [
    i32 0, label %568
    i32 1, label %568
  ]

568:                                              ; preds = %566, %566
  ret void

569:                                              ; preds = %560, %541
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %570

570:                                              ; preds = %569, %527
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %571

571:                                              ; preds = %570, %385
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  br label %572

572:                                              ; preds = %571, %376, %346
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  br label %573

573:                                              ; preds = %572, %320, %262, %203, %177
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %27) #7
  br label %574

574:                                              ; preds = %573, %173
  call void @llvm.lifetime.end.p0(i64 48, ptr %27) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #7
  br label %575

575:                                              ; preds = %574, %169
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #7
  br label %576

576:                                              ; preds = %575, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @_ZN2vl11collections5ArrayIllED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  br label %577

577:                                              ; preds = %576, %161
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  br label %578

578:                                              ; preds = %577, %102, %94
  call void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %15) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr %15) #7
  br label %579

579:                                              ; preds = %578
  %580 = load ptr, ptr %19, align 8
  %581 = load i32, ptr %20, align 4
  %582 = insertvalue { ptr, i32 } poison, ptr %580, 0
  %583 = insertvalue { ptr, i32 } %582, i32 %581, 1
  resume { ptr, i32 } %583

584:                                              ; preds = %566
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections5ArrayIllEC1El(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling12ParsingState24GetParsingRuleStartStateEv(ptr noundef nonnull align 8 dereferenceable(256)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind noalias writable sret(%"class.vl::Ptr.61") align 8, ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState14GetParsingRuleEv(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState15RestoreSnapshotENS_3PtrINS2_10StateGroupEEE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState12TakeSnapshotEv(ptr dead_on_unwind noalias writable sret(%"class.vl::Ptr.63") align 8, ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingState16TransitionResultEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections5ArrayIllED1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

attributes #0 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { builtin allocsize(0) }
attributes #9 = { builtin nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !6, i64 88}
!14 = !{!"_ZTSN2vl7parsing7tabling12ParsingState6FutureE", !10, i64 0, !10, i64 8, !15, i64 16, !6, i64 64, !10, i64 72, !6, i64 80, !6, i64 88, !6, i64 96}
!15 = !{!"_ZTSN2vl11collections4ListIllEE", !16, i64 0}
!16 = !{!"_ZTSN2vl11collections8ListBaseIllEE", !17, i64 0, !10, i64 24, !20, i64 32}
!17 = !{!"_ZTSN2vl11collections9ArrayBaseIlEE", !18, i64 0, !6, i64 8, !10, i64 16}
!18 = !{!"_ZTSN2vl11collections9ListStoreIlLb1EEE", !19, i64 0}
!19 = !{!"_ZTSN2vl6ObjectE"}
!20 = !{!"bool", !7, i64 0}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = !{!14, !6, i64 80}
!25 = !{!26, !10, i64 8}
!26 = !{!"_ZTSN2vl7parsing7tabling12ParsingTable11InstructionE", !27, i64 0, !10, i64 8, !28, i64 16, !28, i64 64, !28, i64 112}
!27 = !{!"_ZTSN2vl7parsing7tabling12ParsingTable11Instruction15InstructionTypeE", !7, i64 0}
!28 = !{!"_ZTSN2vl12ObjectStringIwEE", !19, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!30, !10, i64 8}
!30 = !{!"_ZTSN2vl7parsing7tabling12ParsingState16TransitionResultE", !31, i64 0, !10, i64 8, !28, i64 16, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !6, i64 104, !10, i64 112, !10, i64 120, !32, i64 128}
!31 = !{!"_ZTSN2vl7parsing7tabling12ParsingState16TransitionResult14TransitionTypeE", !7, i64 0}
!32 = !{!"_ZTSN2vl3PtrINS_11collections4ListINS_7parsing7tabling12ParsingState16ShiftReduceRangeES6_EEEE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!33 = !{!30, !6, i64 104}
!34 = !{!30, !6, i64 96}
!35 = distinct !{!35, !22}
!36 = !{!37, !37, i64 0}
!37 = !{!"int", !7, i64 0}
!38 = distinct !{!38, !22}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.vl::ObjectString" = type { %"class.vl::Object", ptr, ptr, i64, i64, i64 }
%"class.vl::Object" = type { ptr }
%"class.vl::collections::LazyList.180" = type { %"class.vl::Object", %"class.vl::collections::IEnumerable.176", %"class.vl::Ptr.181" }
%"class.vl::collections::IEnumerable.176" = type { %"class.vl::Interface" }
%"class.vl::Interface" = type { ptr }
%"class.vl::Ptr.181" = type { ptr, ptr, ptr, ptr }
%"struct.vl::parsing::tabling::ParsingState::TransitionResult" = type { i32, i64, %"class.vl::ObjectString", i64, i64, i64, i64, ptr, ptr, i64, i64, %"class.vl::Ptr.140" }
%"class.vl::Ptr.140" = type { ptr, ptr, ptr, ptr }
%"class.vl::collections::List.172" = type { %"class.vl::collections::ListBase.base.178", %"class.vl::collections::IEnumerable.176" }
%"class.vl::collections::ListBase.base.178" = type <{ %"class.vl::collections::ArrayBase.base.177", i64, i8 }>
%"class.vl::collections::ArrayBase.base.177" = type { %"class.vl::collections::ListStore.175", ptr, i64 }
%"class.vl::collections::ListStore.175" = type { %"class.vl::Object" }
%"class.vl::collections::Array.198" = type { %"class.vl::collections::ArrayBase.base.121", %"class.vl::collections::IEnumerable.120" }
%"class.vl::collections::ArrayBase.base.121" = type { %"class.vl::collections::ListStore.119", ptr, i64 }
%"class.vl::collections::ListStore.119" = type { %"class.vl::Object" }
%"class.vl::collections::IEnumerable.120" = type { %"class.vl::Interface" }
%"class.vl::Ptr.61" = type { ptr, ptr, ptr, ptr }
%"class.vl::Ptr.137" = type { ptr, ptr, ptr, ptr }
%"class.vl::Ptr.63" = type { ptr, ptr, ptr, ptr }

@.str.2 = external hidden unnamed_addr constant [1 x i32], align 4
@.str.105 = external hidden unnamed_addr constant [39 x i32], align 4
@.str.106 = external hidden unnamed_addr constant [65 x i32], align 4
@.str.107 = external hidden unnamed_addr constant [88 x i32], align 4
@.str.108 = external hidden unnamed_addr constant [50 x i32], align 4

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i1 noundef zeroext) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl12ObjectStringIwEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_3PtrINS_7parsing12ParsingErrorEEEPS4_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing12ParsingErrorC1EPKNS_5regex10RegexTokenERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(136), ptr noundef, ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing12ParsingErrorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN2vl7parsing7tabling12ParsingState8GetTokenEl(ptr noundef nonnull align 8 dereferenceable(256), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling12ParsingState15GetCurrentTokenEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections8CopyFromINS0_4ListIPNS_7parsing7tabling12ParsingState6FutureES7_EENS0_8LazyListIS7_EEEEvRT_RKT0_b(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(48), i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections4FromIPNS_7parsing7tabling12ParsingState6FutureEEENS0_8LazyListIT_EERKNS0_11IEnumerableIS8_EE(ptr dead_on_unwind noalias writable sret(%"class.vl::collections::LazyList.180") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4SkipEl(ptr dead_on_unwind noalias writable sret(%"class.vl::collections::LazyList.180") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4TakeEl(ptr dead_on_unwind noalias writable sret(%"class.vl::collections::LazyList.180") align 8, ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser22GetConflictReduceCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(33)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingTable11InstructionES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser24GetConflictReduceIndicesERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EElRNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(33), i64 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser25GetAffectedStackNodeCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EERNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState13RunTransitionEPNS1_12ParsingTable14TransitionItemEPNS_5regex10RegexTokenEllb(ptr dead_on_unwind noalias writable sret(%"struct.vl::parsing::tabling::ParsingState::TransitionResult") align 8, ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, ptr noundef, i64 noundef, i64 noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildAmbiguousDecisionsERNS1_12ParsingStateERNS_11collections4ListIPNS3_6FutureES8_EElllRNS6_INS_3PtrINS0_12ParsingErrorEEEPSC_EE(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %3, i64 noundef %4, i64 noundef %5, ptr noundef nonnull align 8 dereferenceable(33) %6) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.vl::collections::List.172", align 8
  %9 = alloca %"class.vl::collections::LazyList.180", align 8
  %10 = alloca %"class.vl::collections::LazyList.180", align 8
  %11 = alloca %"class.vl::collections::LazyList.180", align 8
  %12 = alloca %"class.vl::collections::Array.198", align 8
  %13 = alloca %"class.vl::ObjectString", align 8
  %14 = alloca %"class.vl::ObjectString", align 8
  %15 = alloca %"class.vl::Ptr.61", align 8
  %16 = alloca %"class.vl::ObjectString", align 8
  %17 = alloca %"class.vl::Ptr.61", align 8
  %18 = alloca %"class.vl::Ptr.61", align 8
  %19 = alloca %"class.vl::Ptr.137", align 8
  %20 = alloca %"class.vl::ObjectString", align 8
  %21 = alloca %"class.vl::ObjectString", align 8
  %22 = alloca %"class.vl::ObjectString", align 8
  %23 = alloca %"class.vl::Ptr.137", align 8
  %24 = alloca %"class.vl::ObjectString", align 8
  %25 = alloca %"class.vl::Ptr.63", align 8
  %26 = alloca %"class.vl::Ptr.63", align 8
  %27 = alloca %"class.vl::Ptr.63", align 8
  %28 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %29 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %30 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %31 = alloca %"struct.vl::parsing::tabling::ParsingState::TransitionResult", align 8
  %32 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) #7
  call void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EC1Ev(ptr noundef nonnull align 8 dereferenceable(33) %8)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #7
  %33 = load ptr, ptr %2, align 8, !tbaa !5
  %34 = getelementptr i8, ptr %33, i64 -24
  %35 = load i64, ptr %34, align 8
  %36 = getelementptr inbounds i8, ptr %2, i64 %35
  invoke void @_ZN2vl11collections4FromIPNS_7parsing7tabling12ParsingState6FutureEEENS0_8LazyListIT_EERKNS0_11IEnumerableIS8_EE(ptr dead_on_unwind nonnull writable sret(%"class.vl::collections::LazyList.180") align 8 %11, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %37 unwind label %45

37:                                               ; preds = %7
  invoke void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4SkipEl(ptr dead_on_unwind nonnull writable sret(%"class.vl::collections::LazyList.180") align 8 %10, ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %3)
          to label %38 unwind label %47

38:                                               ; preds = %37
  %39 = sub nsw i64 %4, %3
  invoke void @_ZNK2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEE4TakeEl(ptr dead_on_unwind nonnull writable sret(%"class.vl::collections::LazyList.180") align 8 %9, ptr noundef nonnull align 8 dereferenceable(48) %10, i64 noundef %39)
          to label %40 unwind label %49

40:                                               ; preds = %38
  invoke void @_ZN2vl11collections8CopyFromINS0_4ListIPNS_7parsing7tabling12ParsingState6FutureES7_EENS0_8LazyListIS7_EEEEvRT_RKT0_b(ptr noundef nonnull align 8 dereferenceable(33) %8, ptr noundef nonnull align 8 dereferenceable(48) %9, i1 noundef zeroext false)
          to label %41 unwind label %51

41:                                               ; preds = %40
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #7
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #7
  %42 = icmp sgt i64 %5, 1
  br i1 %42, label %.preheader, label %._crit_edge167

.preheader:                                       ; preds = %41, %._crit_edge
  %.096166 = phi i64 [ %56, %._crit_edge ], [ 1, %41 ]
  %43 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %44 = icmp sgt i64 %43, 0
  br i1 %44, label %.lr.ph, label %._crit_edge

._crit_edge167:                                   ; preds = %._crit_edge, %41
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  invoke void @_ZN2vl11collections5ArrayIllEC1El(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0)
          to label %69 unwind label %95

45:                                               ; preds = %7
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %55

47:                                               ; preds = %37
  %48 = landingpad { ptr, i32 }
          cleanup
  br label %54

49:                                               ; preds = %38
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %53

51:                                               ; preds = %40
  %52 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #7
  br label %53

53:                                               ; preds = %51, %49
  %.pn = phi { ptr, i32 } [ %52, %51 ], [ %50, %49 ]
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  br label %54

54:                                               ; preds = %53, %47
  %.pn.pn = phi { ptr, i32 } [ %.pn, %53 ], [ %48, %47 ]
  call void @_ZN2vl11collections8LazyListIPNS_7parsing7tabling12ParsingState6FutureEED1Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #7
  br label %55

55:                                               ; preds = %54, %45
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %54 ], [ %46, %45 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #7
  br label %361

._crit_edge:                                      ; preds = %65, %.preheader
  %56 = add nuw nsw i64 %.096166, 1
  %exitcond.not = icmp eq i64 %56, %5
  br i1 %exitcond.not, label %._crit_edge167, label %.preheader, !llvm.loop !8

57:                                               ; preds = %60, %.lr.ph
  %58 = landingpad { ptr, i32 }
          cleanup
  br label %361

.lr.ph:                                           ; preds = %.preheader, %65
  %.0102165 = phi i64 [ %66, %65 ], [ 0, %.preheader ]
  %59 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef %.0102165)
          to label %60 unwind label %57

60:                                               ; preds = %.lr.ph
  %61 = load ptr, ptr %59, align 8, !tbaa !10
  %62 = getelementptr inbounds i8, ptr %61, i64 88
  %63 = load ptr, ptr %62, align 8, !tbaa !13
  %64 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef %.0102165)
          to label %65 unwind label %57

65:                                               ; preds = %60
  store ptr %63, ptr %64, align 8, !tbaa !10
  %66 = add nuw nsw i64 %.0102165, 1
  %67 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %68 = icmp slt i64 %66, %67
  br i1 %68, label %.lr.ph, label %._crit_edge, !llvm.loop !22

69:                                               ; preds = %._crit_edge167
  %70 = invoke noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser22GetConflictReduceCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EE(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(33) %8)
          to label %71 unwind label %97

71:                                               ; preds = %69
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser24GetConflictReduceIndicesERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EElRNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef %70, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %72 unwind label %97

72:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %13) #7
  call void @_ZN2vl12ObjectStringIwEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %13)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #7
  call void @_ZN2vl12ObjectStringIwEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14)
  %73 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef 0)
          to label %74 unwind label %99

74:                                               ; preds = %72
  %75 = load ptr, ptr %73, align 8, !tbaa !10
  %76 = getelementptr inbounds i8, ptr %75, i64 80
  %77 = load ptr, ptr %76, align 8, !tbaa !23
  %78 = getelementptr inbounds i8, ptr %77, i64 112
  %79 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %78)
  %80 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0)
          to label %81 unwind label %99

81:                                               ; preds = %74
  %82 = load i64, ptr %80, align 8, !tbaa !24
  %83 = icmp eq i64 %79, %82
  br i1 %83, label %84, label %108

84:                                               ; preds = %81
  %85 = call noundef i64 @_ZN2vl7parsing7tabling12ParsingState24GetParsingRuleStartStateEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr.61") align 8 %15, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %86 unwind label %101

86:                                               ; preds = %84
  %87 = call noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %15)
  %88 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656) %87, i64 noundef %85)
          to label %89 unwind label %103

89:                                               ; preds = %86
  %90 = getelementptr inbounds i8, ptr %88, i64 144
  %91 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %13, ptr noundef nonnull align 8 dereferenceable(48) %90)
          to label %92 unwind label %103

92:                                               ; preds = %89
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %16) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState14GetParsingRuleEv(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %16, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %93 unwind label %106

93:                                               ; preds = %92
  %94 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull align 8 dereferenceable(48) %16)
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %16) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %16) #7
  br label %148

95:                                               ; preds = %._crit_edge167
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %360

97:                                               ; preds = %71, %69
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %359

99:                                               ; preds = %148, %74, %72
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %358

101:                                              ; preds = %84
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %105

103:                                              ; preds = %89, %86
  %104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %105

105:                                              ; preds = %103, %101
  %.pn114 = phi { ptr, i32 } [ %104, %103 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %358

106:                                              ; preds = %92
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %16) #7
  br label %358

108:                                              ; preds = %81
  %109 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef 0)
          to label %110 unwind label %136

110:                                              ; preds = %108
  %111 = load ptr, ptr %109, align 8, !tbaa !10
  %112 = getelementptr inbounds i8, ptr %111, i64 80
  %113 = load ptr, ptr %112, align 8, !tbaa !23
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0)
          to label %115 unwind label %136

115:                                              ; preds = %110
  %116 = getelementptr inbounds i8, ptr %113, i64 112
  %117 = load i64, ptr %114, align 8, !tbaa !24
  %118 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingTable11InstructionES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %116, i64 noundef %117)
          to label %119 unwind label %136

119:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr.61") align 8 %17, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %120 unwind label %138

120:                                              ; preds = %119
  %121 = call noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %17)
  %122 = getelementptr inbounds i8, ptr %118, i64 8
  %123 = load i64, ptr %122, align 8, !tbaa !25
  %124 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656) %121, i64 noundef %123)
          to label %125 unwind label %140

125:                                              ; preds = %120
  %126 = getelementptr inbounds i8, ptr %124, i64 144
  %127 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %13, ptr noundef nonnull align 8 dereferenceable(48) %126)
          to label %128 unwind label %140

128:                                              ; preds = %125
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr.61") align 8 %18, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %129 unwind label %143

129:                                              ; preds = %128
  %130 = call noundef ptr @_ZNK2vl3PtrINS_7parsing7tabling12ParsingTableEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %18)
  %131 = load i64, ptr %122, align 8, !tbaa !25
  %132 = invoke noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656) %130, i64 noundef %131)
          to label %133 unwind label %145

133:                                              ; preds = %129
  %134 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %14, ptr noundef nonnull align 8 dereferenceable(48) %132)
          to label %135 unwind label %145

135:                                              ; preds = %133
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %148

136:                                              ; preds = %115, %110, %108
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %358

138:                                              ; preds = %119
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %125, %120
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %142

142:                                              ; preds = %140, %138
  %.pn109 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %358

143:                                              ; preds = %128
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %147

145:                                              ; preds = %133, %129
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingTableEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %147

147:                                              ; preds = %145, %143
  %.pn111 = phi { ptr, i32 } [ %146, %145 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %358

148:                                              ; preds = %135, %93
  %149 = invoke noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48) %13, ptr noundef nonnull @.str.2)
          to label %150 unwind label %99

150:                                              ; preds = %148
  br i1 %149, label %151, label %181

151:                                              ; preds = %150
  %152 = invoke noundef i64 @_ZN2vl7parsing7tabling12ParsingState15GetCurrentTokenEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %153 unwind label %165

153:                                              ; preds = %151
  %154 = invoke noundef ptr @_ZN2vl7parsing7tabling12ParsingState8GetTokenEl(ptr noundef nonnull align 8 dereferenceable(256) %1, i64 noundef %152)
          to label %155 unwind label %165

155:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  %156 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #8
          to label %157 unwind label %167

157:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %21) #7
  invoke void @_ZN2vlplEPKwRKNS_12ObjectStringIwEE(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %21, ptr noundef nonnull @.str.105, ptr noundef nonnull align 8 dereferenceable(48) %14)
          to label %158 unwind label %.thread

158:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #7
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull @.str.106, i1 noundef zeroext true)
          to label %159 unwind label %.thread153

159:                                              ; preds = %158
  invoke void @_ZNK2vl12ObjectStringIwEplERKS1_(ptr dead_on_unwind nonnull writable sret(%"class.vl::ObjectString") align 8 %20, ptr noundef nonnull align 8 dereferenceable(48) %21, ptr noundef nonnull align 8 dereferenceable(48) %22)
          to label %160 unwind label %171

160:                                              ; preds = %159
  invoke void @_ZN2vl7parsing12ParsingErrorC1EPKNS_5regex10RegexTokenERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(136) %156, ptr noundef %154, ptr noundef nonnull align 8 dereferenceable(48) %20)
          to label %161 unwind label %173

161:                                              ; preds = %160
  invoke void @_ZN2vl3PtrINS_7parsing12ParsingErrorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull %156)
          to label %162 unwind label %173

162:                                              ; preds = %161
  %163 = invoke noundef i64 @_ZN2vl11collections4ListINS_3PtrINS_7parsing12ParsingErrorEEEPS4_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %6, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %164 unwind label %175

164:                                              ; preds = %162
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %355

165:                                              ; preds = %153, %151
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %358

167:                                              ; preds = %155
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %180

.thread:                                          ; preds = %157
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  br label %179

.thread153:                                       ; preds = %158
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  br label %179

171:                                              ; preds = %159
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %178

173:                                              ; preds = %161, %160
  %.097 = phi i1 [ false, %161 ], [ true, %160 ]
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %177

175:                                              ; preds = %162
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %177

177:                                              ; preds = %175, %173
  %.198 = phi i1 [ false, %175 ], [ %.097, %173 ]
  %.pn138 = phi { ptr, i32 } [ %176, %175 ], [ %174, %173 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #7
  br label %178

178:                                              ; preds = %171, %177
  %.299 = phi i1 [ %.198, %177 ], [ true, %171 ]
  %.pn138.pn = phi { ptr, i32 } [ %.pn138, %177 ], [ %172, %171 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %20) #7
  br i1 %.299, label %179, label %180

179:                                              ; preds = %.thread153, %.thread, %178
  %.pn138.pn.pn.pn152 = phi { ptr, i32 } [ %169, %.thread ], [ %.pn138.pn, %178 ], [ %170, %.thread153 ]
  call void @_ZdlPvm(ptr noundef nonnull %156, i64 noundef 208) #9
  br label %180

180:                                              ; preds = %178, %179, %167
  %.pn138.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn138.pn.pn.pn152, %179 ], [ %.pn138.pn, %178 ], [ %168, %167 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %358

181:                                              ; preds = %150
  %182 = invoke noundef i64 @_ZN2vl7parsing7tabling22ParsingAmbiguousParser25GetAffectedStackNodeCountERNS_11collections4ListIPNS1_12ParsingState6FutureES7_EERNS3_5ArrayIllEE(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(33) %8, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %183 unwind label %200

183:                                              ; preds = %181
  %184 = icmp eq i64 %182, -1
  br i1 %184, label %185, label %212

185:                                              ; preds = %183
  %186 = invoke noundef i64 @_ZN2vl7parsing7tabling12ParsingState15GetCurrentTokenEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %187 unwind label %202

187:                                              ; preds = %185
  %188 = invoke noundef ptr @_ZN2vl7parsing7tabling12ParsingState8GetTokenEl(ptr noundef nonnull align 8 dereferenceable(256) %1, i64 noundef %186)
          to label %189 unwind label %202

189:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  %190 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #8
          to label %191 unwind label %204

191:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %24) #7
  %192 = icmp eq ptr %188, null
  %193 = select i1 %192, ptr @.str.107, ptr @.str.108
  invoke void @_ZN2vl12ObjectStringIwEC2EPKwb(ptr noundef nonnull align 8 dereferenceable(48) %24, ptr noundef nonnull %193, i1 noundef zeroext true)
          to label %194 unwind label %.thread156

194:                                              ; preds = %191
  invoke void @_ZN2vl7parsing12ParsingErrorC1EPKNS_5regex10RegexTokenERKNS_12ObjectStringIwEE(ptr noundef nonnull align 8 dereferenceable(136) %190, ptr noundef %188, ptr noundef nonnull align 8 dereferenceable(48) %24)
          to label %196 unwind label %.thread163

.thread163:                                       ; preds = %194
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  br label %210

196:                                              ; preds = %194
  invoke void @_ZN2vl3PtrINS_7parsing12ParsingErrorEEC2EPS2_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull %190)
          to label %197 unwind label %208

197:                                              ; preds = %196
  %198 = invoke noundef i64 @_ZN2vl11collections4ListINS_3PtrINS_7parsing12ParsingErrorEEEPS4_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %6, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %199 unwind label %.thread160

199:                                              ; preds = %197
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %355

200:                                              ; preds = %181
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %358

202:                                              ; preds = %187, %185
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %358

204:                                              ; preds = %189
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %211

.thread156:                                       ; preds = %191
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  br label %210

.thread160:                                       ; preds = %197
  %207 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl3PtrINS_7parsing12ParsingErrorEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  br label %211

208:                                              ; preds = %196
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #7
  br label %211

210:                                              ; preds = %.thread163, %.thread156
  %.pn132.pn159 = phi { ptr, i32 } [ %206, %.thread156 ], [ %195, %.thread163 ]
  call void @_ZdlPvm(ptr noundef nonnull %190, i64 noundef 208) #9
  br label %211

211:                                              ; preds = %208, %.thread160, %210, %204
  %.pn132.pn.pn = phi { ptr, i32 } [ %.pn132.pn159, %210 ], [ %209, %208 ], [ %205, %204 ], [ %207, %.thread160 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %358

212:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25)
  %213 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %214 = icmp sgt i64 %213, 0
  br i1 %214, label %.lr.ph170, label %._crit_edge171

.lr.ph170:                                        ; preds = %212
  %215 = getelementptr inbounds i8, ptr %28, i64 8
  %216 = getelementptr inbounds i8, ptr %0, i64 40
  %217 = getelementptr inbounds i8, ptr %29, i64 16
  %218 = getelementptr inbounds i8, ptr %30, i64 104
  %219 = getelementptr inbounds i8, ptr %30, i64 96
  %220 = call noundef zeroext i1 @_ZNK2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %25)
  br i1 %220, label %225, label %221

221:                                              ; preds = %.lr.ph170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState12TakeSnapshotEv(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr.63") align 8 %27, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %222 unwind label %.loopexit.split-lp

222:                                              ; preds = %221
  %223 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %224 unwind label %.loopexit.split-lp179

224:                                              ; preds = %222
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %228

225:                                              ; preds = %.lr.ph170
  invoke void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %226 unwind label %.loopexit.split-lp184

226:                                              ; preds = %225
  invoke void @_ZN2vl7parsing7tabling12ParsingState15RestoreSnapshotENS_3PtrINS2_10StateGroupEEE(ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef nonnull %26)
          to label %227 unwind label %.loopexit.split-lp189

227:                                              ; preds = %226
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %228

228:                                              ; preds = %227, %224
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %28) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160) %28, i32 noundef 1)
          to label %229 unwind label %.loopexit.split-lp194

229:                                              ; preds = %228
  store i64 %182, ptr %215, align 8, !tbaa !29
  %230 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %216, ptr noundef nonnull align 8 dereferenceable(160) %28)
          to label %231 unwind label %.loopexit.split-lp199

231:                                              ; preds = %229
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %28) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %28) #7
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef 0)
          to label %233 unwind label %.loopexit.split-lp184

233:                                              ; preds = %231
  %234 = load ptr, ptr %232, align 8, !tbaa !10
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0)
          to label %236 unwind label %.loopexit.split-lp184

236:                                              ; preds = %233
  %237 = load i64, ptr %235, align 8, !tbaa !24
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef %234, i64 noundef %237)
          to label %238 unwind label %.loopexit.split-lp184

238:                                              ; preds = %236
  %239 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %240 = icmp eq i64 %239, 1
  br i1 %240, label %241, label %263

241:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %29) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160) %29, i32 noundef 3)
          to label %242 unwind label %.loopexit.split-lp204

242:                                              ; preds = %241
  %243 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %217, ptr noundef nonnull align 8 dereferenceable(48) %13)
          to label %244 unwind label %.loopexit.split-lp209

244:                                              ; preds = %242
  %245 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %216, ptr noundef nonnull align 8 dereferenceable(160) %29)
          to label %246 unwind label %.loopexit.split-lp209

246:                                              ; preds = %244
  %247 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0)
          to label %248 unwind label %.loopexit.split-lp214

248:                                              ; preds = %246
  %249 = load i64, ptr %247, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %30) #7
  %250 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingState16TransitionResultEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %216)
  %251 = add nsw i64 %250, -2
  %252 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %216, i64 noundef %251)
          to label %253 unwind label %.loopexit.split-lp219

253:                                              ; preds = %248
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(160) %30, ptr noundef nonnull align 8 dereferenceable(160) %252)
          to label %254 unwind label %.loopexit.split-lp219

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %31) #7
  %255 = load ptr, ptr %218, align 8, !tbaa !33
  %256 = load ptr, ptr %219, align 8, !tbaa !34
  %257 = getelementptr inbounds i8, ptr %255, i64 112
  %258 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %257)
  %259 = sub nsw i64 %258, %249
  invoke void @_ZN2vl7parsing7tabling12ParsingState13RunTransitionEPNS1_12ParsingTable14TransitionItemEPNS_5regex10RegexTokenEllb(ptr dead_on_unwind nonnull writable sret(%"struct.vl::parsing::tabling::ParsingState::TransitionResult") align 8 %31, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef %255, ptr noundef %256, i64 noundef %249, i64 noundef %259, i1 noundef zeroext true)
          to label %260 unwind label %.loopexit.split-lp224

260:                                              ; preds = %254
  %261 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %216, ptr noundef nonnull align 8 dereferenceable(160) %31)
          to label %262 unwind label %.loopexit.split-lp229

262:                                              ; preds = %260
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %31) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %31) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %30) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %30) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %29) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %29) #7
  br label %263

263:                                              ; preds = %262, %238
  %264 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %265 = icmp sgt i64 %264, 1
  br i1 %265, label %.peel.next, label %._crit_edge171

._crit_edge171:                                   ; preds = %322, %263, %212
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32)
  %266 = add nsw i64 %4, -1
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %2, i64 noundef %266)
          to label %326 unwind label %333

.loopexit183:                                     ; preds = %269, %282, %284, %287
  %lpad.loopexit185 = landingpad { ptr, i32 }
          cleanup
  br label %357

.loopexit.split-lp184:                            ; preds = %225, %231, %233, %236
  %lpad.loopexit.split-lp186 = landingpad { ptr, i32 }
          cleanup
  br label %357

.peel.next:                                       ; preds = %263, %322
  %.059168 = phi i64 [ %323, %322 ], [ 1, %263 ]
  %268 = call noundef zeroext i1 @_ZNK2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %25)
  br i1 %268, label %269, label %273

269:                                              ; preds = %.peel.next
  invoke void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %270 unwind label %.loopexit183

270:                                              ; preds = %269
  invoke void @_ZN2vl7parsing7tabling12ParsingState15RestoreSnapshotENS_3PtrINS2_10StateGroupEEE(ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef nonnull %26)
          to label %271 unwind label %.loopexit188

271:                                              ; preds = %270
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %279

.loopexit188:                                     ; preds = %270
  %lpad.loopexit190 = landingpad { ptr, i32 }
          cleanup
  br label %272

.loopexit.split-lp189:                            ; preds = %226
  %lpad.loopexit.split-lp191 = landingpad { ptr, i32 }
          cleanup
  br label %272

272:                                              ; preds = %.loopexit.split-lp189, %.loopexit188
  %lpad.phi192 = phi { ptr, i32 } [ %lpad.loopexit190, %.loopexit188 ], [ %lpad.loopexit.split-lp191, %.loopexit.split-lp189 ]
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %357

273:                                              ; preds = %.peel.next
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState12TakeSnapshotEv(ptr dead_on_unwind nonnull writable sret(%"class.vl::Ptr.63") align 8 %27, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %274 unwind label %.loopexit

274:                                              ; preds = %273
  %275 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %276 unwind label %.loopexit178

276:                                              ; preds = %274
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %279

.loopexit:                                        ; preds = %273
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %278

.loopexit.split-lp:                               ; preds = %221
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %278

.loopexit178:                                     ; preds = %274
  %lpad.loopexit180 = landingpad { ptr, i32 }
          cleanup
  br label %277

.loopexit.split-lp179:                            ; preds = %222
  %lpad.loopexit.split-lp181 = landingpad { ptr, i32 }
          cleanup
  br label %277

277:                                              ; preds = %.loopexit.split-lp179, %.loopexit178
  %lpad.phi182 = phi { ptr, i32 } [ %lpad.loopexit180, %.loopexit178 ], [ %lpad.loopexit.split-lp181, %.loopexit.split-lp179 ]
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %278

278:                                              ; preds = %.loopexit, %.loopexit.split-lp, %277
  %.pn120 = phi { ptr, i32 } [ %lpad.phi182, %277 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %357

279:                                              ; preds = %276, %271
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %28) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160) %28, i32 noundef 2)
          to label %280 unwind label %.loopexit193

.loopexit193:                                     ; preds = %279
  %lpad.loopexit195 = landingpad { ptr, i32 }
          cleanup
  br label %316

.loopexit.split-lp194:                            ; preds = %228
  %lpad.loopexit.split-lp196 = landingpad { ptr, i32 }
          cleanup
  br label %316

280:                                              ; preds = %279
  %281 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %216, ptr noundef nonnull align 8 dereferenceable(160) %28)
          to label %282 unwind label %.loopexit198

282:                                              ; preds = %280
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %28) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %28) #7
  %283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %8, i64 noundef %.059168)
          to label %284 unwind label %.loopexit183

284:                                              ; preds = %282
  %285 = load ptr, ptr %283, align 8, !tbaa !10
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.059168)
          to label %287 unwind label %.loopexit183

287:                                              ; preds = %284
  %288 = load i64, ptr %286, align 8, !tbaa !24
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef %285, i64 noundef %288)
          to label %289 unwind label %.loopexit183

289:                                              ; preds = %287
  %290 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %291 = add nsw i64 %290, -1
  %292 = icmp eq i64 %.059168, %291
  br i1 %292, label %293, label %322

293:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %29) #7
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ENS3_14TransitionTypeE(ptr noundef nonnull align 8 dereferenceable(160) %29, i32 noundef 3)
          to label %294 unwind label %.loopexit203

294:                                              ; preds = %293
  %295 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48) %217, ptr noundef nonnull align 8 dereferenceable(48) %13)
          to label %296 unwind label %.loopexit208

296:                                              ; preds = %294
  %297 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %216, ptr noundef nonnull align 8 dereferenceable(160) %29)
          to label %298 unwind label %.loopexit208

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN2vl11collections5ArrayIllEixEl(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.059168)
          to label %300 unwind label %.loopexit213

300:                                              ; preds = %298
  %301 = load i64, ptr %299, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %30) #7
  %302 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingState16TransitionResultEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %216)
  %303 = add nsw i64 %302, -2
  %304 = invoke noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33) %216, i64 noundef %303)
          to label %305 unwind label %.loopexit218

305:                                              ; preds = %300
  invoke void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(160) %30, ptr noundef nonnull align 8 dereferenceable(160) %304)
          to label %306 unwind label %.loopexit218

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %31) #7
  %307 = load ptr, ptr %218, align 8, !tbaa !33
  %308 = load ptr, ptr %219, align 8, !tbaa !34
  %309 = getelementptr inbounds i8, ptr %307, i64 112
  %310 = call noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingTable11InstructionEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %309)
  %311 = sub nsw i64 %310, %301
  invoke void @_ZN2vl7parsing7tabling12ParsingState13RunTransitionEPNS1_12ParsingTable14TransitionItemEPNS_5regex10RegexTokenEllb(ptr dead_on_unwind nonnull writable sret(%"struct.vl::parsing::tabling::ParsingState::TransitionResult") align 8 %31, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef %307, ptr noundef %308, i64 noundef %301, i64 noundef %311, i1 noundef zeroext true)
          to label %312 unwind label %.loopexit223

312:                                              ; preds = %306
  %313 = invoke noundef i64 @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_E3AddERKS5_(ptr noundef nonnull align 8 dereferenceable(33) %216, ptr noundef nonnull align 8 dereferenceable(160) %31)
          to label %314 unwind label %.loopexit228

314:                                              ; preds = %312
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %31) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %31) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %30) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %30) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %29) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %29) #7
  br label %322

.loopexit198:                                     ; preds = %280
  %lpad.loopexit200 = landingpad { ptr, i32 }
          cleanup
  br label %315

.loopexit.split-lp199:                            ; preds = %229
  %lpad.loopexit.split-lp201 = landingpad { ptr, i32 }
          cleanup
  br label %315

315:                                              ; preds = %.loopexit.split-lp199, %.loopexit198
  %lpad.phi202 = phi { ptr, i32 } [ %lpad.loopexit200, %.loopexit198 ], [ %lpad.loopexit.split-lp201, %.loopexit.split-lp199 ]
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %28) #7
  br label %316

316:                                              ; preds = %.loopexit193, %.loopexit.split-lp194, %315
  %.pn122 = phi { ptr, i32 } [ %lpad.phi202, %315 ], [ %lpad.loopexit195, %.loopexit193 ], [ %lpad.loopexit.split-lp196, %.loopexit.split-lp194 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %28) #7
  br label %357

.loopexit203:                                     ; preds = %293
  %lpad.loopexit205 = landingpad { ptr, i32 }
          cleanup
  br label %321

.loopexit.split-lp204:                            ; preds = %241
  %lpad.loopexit.split-lp206 = landingpad { ptr, i32 }
          cleanup
  br label %321

.loopexit208:                                     ; preds = %294, %296
  %lpad.loopexit210 = landingpad { ptr, i32 }
          cleanup
  br label %320

.loopexit.split-lp209:                            ; preds = %242, %244
  %lpad.loopexit.split-lp211 = landingpad { ptr, i32 }
          cleanup
  br label %320

.loopexit213:                                     ; preds = %298
  %lpad.loopexit215 = landingpad { ptr, i32 }
          cleanup
  br label %320

.loopexit.split-lp214:                            ; preds = %246
  %lpad.loopexit.split-lp216 = landingpad { ptr, i32 }
          cleanup
  br label %320

.loopexit218:                                     ; preds = %300, %305
  %lpad.loopexit220 = landingpad { ptr, i32 }
          cleanup
  br label %319

.loopexit.split-lp219:                            ; preds = %248, %253
  %lpad.loopexit.split-lp221 = landingpad { ptr, i32 }
          cleanup
  br label %319

.loopexit223:                                     ; preds = %306
  %lpad.loopexit225 = landingpad { ptr, i32 }
          cleanup
  br label %318

.loopexit.split-lp224:                            ; preds = %254
  %lpad.loopexit.split-lp226 = landingpad { ptr, i32 }
          cleanup
  br label %318

.loopexit228:                                     ; preds = %312
  %lpad.loopexit230 = landingpad { ptr, i32 }
          cleanup
  br label %317

.loopexit.split-lp229:                            ; preds = %260
  %lpad.loopexit.split-lp231 = landingpad { ptr, i32 }
          cleanup
  br label %317

317:                                              ; preds = %.loopexit.split-lp229, %.loopexit228
  %lpad.phi232 = phi { ptr, i32 } [ %lpad.loopexit230, %.loopexit228 ], [ %lpad.loopexit.split-lp231, %.loopexit.split-lp229 ]
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %31) #7
  br label %318

318:                                              ; preds = %.loopexit223, %.loopexit.split-lp224, %317
  %.pn124 = phi { ptr, i32 } [ %lpad.phi232, %317 ], [ %lpad.loopexit225, %.loopexit223 ], [ %lpad.loopexit.split-lp226, %.loopexit.split-lp224 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %31) #7
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %30) #7
  br label %319

319:                                              ; preds = %.loopexit218, %.loopexit.split-lp219, %318
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %318 ], [ %lpad.loopexit220, %.loopexit218 ], [ %lpad.loopexit.split-lp221, %.loopexit.split-lp219 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %30) #7
  br label %320

320:                                              ; preds = %.loopexit213, %.loopexit.split-lp214, %.loopexit208, %.loopexit.split-lp209, %319
  %.pn124.pn.pn.pn = phi { ptr, i32 } [ %.pn124.pn, %319 ], [ %lpad.loopexit210, %.loopexit208 ], [ %lpad.loopexit.split-lp211, %.loopexit.split-lp209 ], [ %lpad.loopexit215, %.loopexit213 ], [ %lpad.loopexit.split-lp216, %.loopexit.split-lp214 ]
  call void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %29) #7
  br label %321

321:                                              ; preds = %.loopexit203, %.loopexit.split-lp204, %320
  %.pn124.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn124.pn.pn.pn, %320 ], [ %lpad.loopexit205, %.loopexit203 ], [ %lpad.loopexit.split-lp206, %.loopexit.split-lp204 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %29) #7
  br label %357

322:                                              ; preds = %289, %314
  %323 = add nuw nsw i64 %.059168, 1
  %324 = call noundef i64 @_ZNK2vl11collections9ArrayBaseIPNS_7parsing7tabling12ParsingState6FutureEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24) %8)
  %325 = icmp slt i64 %323, %324
  br i1 %325, label %.peel.next, label %._crit_edge171, !llvm.loop !35

326:                                              ; preds = %._crit_edge171
  %327 = load ptr, ptr %267, align 8, !tbaa !10
  store ptr %327, ptr %32, align 8, !tbaa !10
  br i1 %42, label %.lr.ph175.preheader, label %._crit_edge176

.lr.ph175.preheader:                              ; preds = %326
  %328 = add nsw i64 %5, -1
  %329 = add nsw i64 %5, -2
  %xtraiter = and i64 %328, 7
  %330 = icmp ult i64 %329, 7
  br i1 %330, label %._crit_edge176.loopexit.unr-lcssa, label %.lr.ph175.preheader.new

.lr.ph175.preheader.new:                          ; preds = %.lr.ph175.preheader
  %unroll_iter = and i64 %328, -8
  br label %.lr.ph175

._crit_edge176.loopexit.unr-lcssa:                ; preds = %.lr.ph175, %.lr.ph175.preheader
  %.lcssa.ph = phi ptr [ poison, %.lr.ph175.preheader ], [ %350, %.lr.ph175 ]
  %.057172.unr = phi ptr [ %32, %.lr.ph175.preheader ], [ %350, %.lr.ph175 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge176, label %.lr.ph175.epil

.lr.ph175.epil:                                   ; preds = %._crit_edge176.loopexit.unr-lcssa, %.lr.ph175.epil
  %.057172.epil = phi ptr [ %332, %.lr.ph175.epil ], [ %.057172.unr, %._crit_edge176.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph175.epil ], [ 0, %._crit_edge176.loopexit.unr-lcssa ]
  %331 = load ptr, ptr %.057172.epil, align 8, !tbaa !10
  %332 = getelementptr inbounds i8, ptr %331, i64 88
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge176, label %.lr.ph175.epil, !llvm.loop !37

._crit_edge176:                                   ; preds = %._crit_edge176.loopexit.unr-lcssa, %.lr.ph175.epil, %326
  %.057.lcssa = phi ptr [ %32, %326 ], [ %.lcssa.ph, %._crit_edge176.loopexit.unr-lcssa ], [ %332, %.lr.ph175.epil ]
  store ptr null, ptr %.057.lcssa, align 8, !tbaa !10
  %.0..0..0..0. = load ptr, ptr %32, align 8, !tbaa !10
  %.not = icmp eq ptr %.0..0..0..0., null
  br i1 %.not, label %354, label %351

333:                                              ; preds = %._crit_edge171
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %356

.lr.ph175:                                        ; preds = %.lr.ph175, %.lr.ph175.preheader.new
  %.057172 = phi ptr [ %32, %.lr.ph175.preheader.new ], [ %350, %.lr.ph175 ]
  %niter = phi i64 [ 0, %.lr.ph175.preheader.new ], [ %niter.next.7, %.lr.ph175 ]
  %335 = load ptr, ptr %.057172, align 8, !tbaa !10
  %336 = getelementptr inbounds i8, ptr %335, i64 88
  %337 = load ptr, ptr %336, align 8, !tbaa !10
  %338 = getelementptr inbounds i8, ptr %337, i64 88
  %339 = load ptr, ptr %338, align 8, !tbaa !10
  %340 = getelementptr inbounds i8, ptr %339, i64 88
  %341 = load ptr, ptr %340, align 8, !tbaa !10
  %342 = getelementptr inbounds i8, ptr %341, i64 88
  %343 = load ptr, ptr %342, align 8, !tbaa !10
  %344 = getelementptr inbounds i8, ptr %343, i64 88
  %345 = load ptr, ptr %344, align 8, !tbaa !10
  %346 = getelementptr inbounds i8, ptr %345, i64 88
  %347 = load ptr, ptr %346, align 8, !tbaa !10
  %348 = getelementptr inbounds i8, ptr %347, i64 88
  %349 = load ptr, ptr %348, align 8, !tbaa !10
  %350 = getelementptr inbounds i8, ptr %349, i64 88
  %niter.next.7 = add i64 %niter, 8
  %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
  br i1 %niter.ncmp.7, label %._crit_edge176.loopexit.unr-lcssa, label %.lr.ph175, !llvm.loop !39

351:                                              ; preds = %._crit_edge176
  invoke void @_ZN2vl7parsing7tabling22ParsingAmbiguousParser23BuildSingleDecisionPathERNS1_12ParsingStateEPNS3_6FutureEl(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef nonnull %.0..0..0..0., i64 noundef -1)
          to label %354 unwind label %352

352:                                              ; preds = %351
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %356

354:                                              ; preds = %351, %._crit_edge176
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32)
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %355

355:                                              ; preds = %199, %354, %164
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %13) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #7
  call void @_ZN2vl11collections5ArrayIllED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  call void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %8) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #7
  ret void

356:                                              ; preds = %352, %333
  %.pn118 = phi { ptr, i32 } [ %353, %352 ], [ %334, %333 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32)
  br label %357

357:                                              ; preds = %.loopexit183, %.loopexit.split-lp184, %272, %278, %316, %321, %356
  %.pn124.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn118, %356 ], [ %.pn124.pn.pn.pn.pn, %321 ], [ %.pn122, %316 ], [ %lpad.phi192, %272 ], [ %.pn120, %278 ], [ %lpad.loopexit185, %.loopexit183 ], [ %lpad.loopexit.split-lp186, %.loopexit.split-lp184 ]
  call void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %358

358:                                              ; preds = %200, %357, %211, %202, %165, %180, %136, %142, %147, %105, %106, %99
  %.pn138.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %100, %99 ], [ %107, %106 ], [ %.pn114, %105 ], [ %.pn111, %147 ], [ %.pn109, %142 ], [ %137, %136 ], [ %.pn138.pn.pn.pn.pn, %180 ], [ %166, %165 ], [ %.pn124.pn.pn.pn.pn.pn.pn, %357 ], [ %201, %200 ], [ %.pn132.pn.pn, %211 ], [ %203, %202 ]
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #7
  call void @_ZN2vl12ObjectStringIwED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %13) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %13) #7
  br label %359

359:                                              ; preds = %358, %97
  %.pn138.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn138.pn.pn.pn.pn.pn.pn, %358 ], [ %98, %97 ]
  call void @_ZN2vl11collections5ArrayIllED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %360

360:                                              ; preds = %359, %95
  %.pn138.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn138.pn.pn.pn.pn.pn.pn.pn, %359 ], [ %96, %95 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %361

361:                                              ; preds = %360, %57, %55
  %.pn148 = phi { ptr, i32 } [ %58, %57 ], [ %.pn138.pn.pn.pn.pn.pn.pn.pn.pn, %360 ], [ %.pn.pn.pn, %55 ]
  call void @_ZN2vl11collections4ListIPNS_7parsing7tabling12ParsingState6FutureES6_ED1Ev(ptr noundef nonnull align 8 dereferenceable(33) %8) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #7
  resume { ptr, i32 } %.pn148
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl11collections5ArrayIllEC1El(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN2vl7parsing7tabling12ParsingState24GetParsingRuleStartStateEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState8GetTableEv(ptr dead_on_unwind noalias writable sret(%"class.vl::Ptr.61") align 8, ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(192) ptr @_ZN2vl7parsing7tabling12ParsingTable12GetStateInfoEl(ptr noundef nonnull align 8 dereferenceable(656), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZN2vl12ObjectStringIwEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState14GetParsingRuleEv(ptr dead_on_unwind noalias writable sret(%"class.vl::ObjectString") align 8, ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl12ObjectStringIwEeqEPKw(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState15RestoreSnapshotENS_3PtrINS2_10StateGroupEEE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState12TakeSnapshotEv(ptr dead_on_unwind noalias writable sret(%"class.vl::Ptr.63") align 8, ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN2vl3PtrINS_7parsing7tabling12ParsingState10StateGroupEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(160) ptr @_ZN2vl11collections4ListINS_7parsing7tabling12ParsingState16TransitionResultES5_EixEl(ptr noundef nonnull align 8 dereferenceable(33), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK2vl11collections9ArrayBaseINS_7parsing7tabling12ParsingState16TransitionResultEE5CountEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2vl7parsing7tabling12ParsingState16TransitionResultC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2vl11collections5ArrayIllED1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

attributes #0 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { builtin allocsize(0) }
attributes #9 = { builtin nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = distinct !{!8, !9}
!9 = !{!"llvm.loop.mustprogress"}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !12, i64 0}
!12 = !{!"omnipotent char", !7, i64 0}
!13 = !{!14, !11, i64 88}
!14 = !{!"_ZTSN2vl7parsing7tabling12ParsingState6FutureE", !15, i64 0, !15, i64 8, !16, i64 16, !11, i64 64, !15, i64 72, !11, i64 80, !11, i64 88, !11, i64 96}
!15 = !{!"long", !12, i64 0}
!16 = !{!"_ZTSN2vl11collections4ListIllEE", !17, i64 0}
!17 = !{!"_ZTSN2vl11collections8ListBaseIllEE", !18, i64 0, !15, i64 24, !21, i64 32}
!18 = !{!"_ZTSN2vl11collections9ArrayBaseIlEE", !19, i64 0, !11, i64 8, !15, i64 16}
!19 = !{!"_ZTSN2vl11collections9ListStoreIlLb1EEE", !20, i64 0}
!20 = !{!"_ZTSN2vl6ObjectE"}
!21 = !{!"bool", !12, i64 0}
!22 = distinct !{!22, !9}
!23 = !{!14, !11, i64 80}
!24 = !{!15, !15, i64 0}
!25 = !{!26, !15, i64 8}
!26 = !{!"_ZTSN2vl7parsing7tabling12ParsingTable11InstructionE", !27, i64 0, !15, i64 8, !28, i64 16, !28, i64 64, !28, i64 112}
!27 = !{!"_ZTSN2vl7parsing7tabling12ParsingTable11Instruction15InstructionTypeE", !12, i64 0}
!28 = !{!"_ZTSN2vl12ObjectStringIwEE", !20, i64 0, !11, i64 8, !11, i64 16, !15, i64 24, !15, i64 32, !15, i64 40}
!29 = !{!30, !15, i64 8}
!30 = !{!"_ZTSN2vl7parsing7tabling12ParsingState16TransitionResultE", !31, i64 0, !15, i64 8, !28, i64 16, !15, i64 64, !15, i64 72, !15, i64 80, !15, i64 88, !11, i64 96, !11, i64 104, !15, i64 112, !15, i64 120, !32, i64 128}
!31 = !{!"_ZTSN2vl7parsing7tabling12ParsingState16TransitionResult14TransitionTypeE", !12, i64 0}
!32 = !{!"_ZTSN2vl3PtrINS_11collections4ListINS_7parsing7tabling12ParsingState16ShiftReduceRangeES6_EEEE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!33 = !{!30, !11, i64 104}
!34 = !{!30, !11, i64 96}
!35 = distinct !{!35, !9, !36}
!36 = !{!"llvm.loop.peeled.count", i32 1}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.unroll.disable"}
!39 = distinct !{!39, !9}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SCCPPass,SROAPass,SimplifyCFGPass