Skip to content

Instantly share code, notes, and snippets.

@Amanieu
Last active March 19, 2020 23:00
Show Gist options
  • Select an option

  • Save Amanieu/8b809982906bf291133a72363d3662ee to your computer and use it in GitHub Desktop.

Select an option

Save Amanieu/8b809982906bf291133a72363d3662ee to your computer and use it in GitHub Desktop.

Revisions

  1. Amanieu revised this gist Mar 19, 2020. 1 changed file with 448 additions and 472 deletions.
    920 changes: 448 additions & 472 deletions proc_macro2.ll
    Original file line number Diff line number Diff line change
    @@ -1,521 +1,497 @@
    ; std::panicking::try
    ; Function Attrs: nonlazybind uwtable
    define void @_ZN3std9panicking3try17h798c4ca7bded36a6E(%"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* noalias nocapture sret dereferenceable(24), i64* noalias readonly align 8 dereferenceable(16) %f) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !2890 {
    define void @_ZN3std9panicking3try17h2c4df7f3f9c79acfE(%"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>"* noalias nocapture sret dereferenceable(24)) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !2657 {
    start:
    %1 = alloca i8*, align 8
    %self.dbg.spill.i20 = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %self.dbg.spill.i20, metadata !2912, metadata !DIExpression()), !dbg !2919
    %self.dbg.spill.i17 = alloca i8**, align 8
    call void @llvm.dbg.declare(metadata i8*** %self.dbg.spill.i17, metadata !2931, metadata !DIExpression()), !dbg !2960
    %1 = alloca %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>", align 1
    %self.dbg.spill.i17 = alloca %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"*, align 8
    call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i17, metadata !2686, metadata !DIExpression()), !dbg !2695
    %self.dbg.spill.i = alloca %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"*, align 8
    call void @llvm.dbg.declare(metadata %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i, metadata !2709, metadata !DIExpression()), !dbg !2740
    %count.dbg.spill.i = alloca i64, align 8
    call void @llvm.dbg.declare(metadata i64* %count.dbg.spill.i, metadata !2961, metadata !DIExpression()), !dbg !2968
    %dst.dbg.spill.i = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %dst.dbg.spill.i, metadata !2967, metadata !DIExpression()), !dbg !2970
    %src.dbg.spill.i16 = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %src.dbg.spill.i16, metadata !2966, metadata !DIExpression()), !dbg !2971
    %slot.dbg.spill.i15 = alloca i64*, align 8
    call void @llvm.dbg.declare(metadata i64** %slot.dbg.spill.i15, metadata !2972, metadata !DIExpression()), !dbg !2977
    %self.dbg.spill.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %self.dbg.spill.i, metadata !2983, metadata !DIExpression()), !dbg !2985
    %src.dbg.spill.i = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %src.dbg.spill.i, metadata !2939, metadata !DIExpression()), !dbg !2986
    %tmp.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %tmp.i, metadata !2940, metadata !DIExpression()), !dbg !2987
    %slot.dbg.spill.i7 = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %slot.dbg.spill.i7, metadata !2946, metadata !DIExpression()), !dbg !2988
    %_2.i = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %2 = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    %3 = alloca i64, align 8
    %value.i = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    call void @llvm.dbg.declare(metadata %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i, metadata !2989, metadata !DIExpression()), !dbg !2994
    %4 = alloca i64, align 8
    %5 = alloca i64, align 8
    %f.dbg.spill.i = alloca i64*, align 8
    call void @llvm.dbg.declare(metadata i64** %f.dbg.spill.i, metadata !2957, metadata !DIExpression()), !dbg !2996
    %data.dbg.spill3.i2 = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2, metadata !2955, metadata !DIExpression()), !dbg !2997
    %data.dbg.spill2.i3 = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3, metadata !2953, metadata !DIExpression()), !dbg !2998
    %data.dbg.spill.i4 = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %data.dbg.spill.i4, metadata !2952, metadata !DIExpression()), !dbg !2999
    %_9.i = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %_8.i = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    %value.dbg.spill.i1 = alloca { {}*, [3 x i64]* }, align 8
    call void @llvm.dbg.declare(metadata { {}*, [3 x i64]* }* %value.dbg.spill.i1, metadata !2766, metadata !DIExpression()), !dbg !3000
    call void @llvm.dbg.declare(metadata i64* %count.dbg.spill.i, metadata !2741, metadata !DIExpression()), !dbg !2748
    %dst.dbg.spill.i = alloca %"imp::nightly_works::{{closure}}::{{closure}}"*, align 8
    call void @llvm.dbg.declare(metadata %"imp::nightly_works::{{closure}}::{{closure}}"** %dst.dbg.spill.i, metadata !2747, metadata !DIExpression()), !dbg !2750
    %src.dbg.spill.i14 = alloca %"imp::nightly_works::{{closure}}::{{closure}}"*, align 8
    call void @llvm.dbg.declare(metadata %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i14, metadata !2746, metadata !DIExpression()), !dbg !2751
    %src.dbg.spill.i = alloca %"imp::nightly_works::{{closure}}::{{closure}}"*, align 8
    call void @llvm.dbg.declare(metadata %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i, metadata !2717, metadata !DIExpression()), !dbg !2752
    %tmp.i = alloca %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>", align 1
    call void @llvm.dbg.declare(metadata %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %tmp.i, metadata !2718, metadata !DIExpression()), !dbg !2753
    %slot.dbg.spill.i6 = alloca %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"*, align 8
    call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %slot.dbg.spill.i6, metadata !2724, metadata !DIExpression()), !dbg !2754
    %_2.i = alloca %"proc_macro::Span", align 4
    %2 = alloca %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>", align 4
    %3 = alloca i32, align 4
    %value.i = alloca %"proc_macro::Span", align 4
    call void @llvm.dbg.declare(metadata %"proc_macro::Span"* %value.i, metadata !2755, metadata !DIExpression()), !dbg !2760
    %4 = alloca i32, align 4
    %5 = alloca i32, align 4
    %data.dbg.spill3.i1 = alloca %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i1, metadata !2735, metadata !DIExpression()), !dbg !2762
    %data.dbg.spill2.i2 = alloca %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i2, metadata !2733, metadata !DIExpression()), !dbg !2763
    %f.dbg.spill.i = alloca %"imp::nightly_works::{{closure}}::{{closure}}", align 1
    call void @llvm.dbg.declare(metadata %"imp::nightly_works::{{closure}}::{{closure}}"* %f.dbg.spill.i, metadata !2737, metadata !DIExpression()), !dbg !2764
    %data.dbg.spill.i3 = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %data.dbg.spill.i3, metadata !2732, metadata !DIExpression()), !dbg !2765
    %_9.i = alloca %"proc_macro::Span", align 4
    %_8.i = alloca %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>", align 4
    %value.dbg.spill.i = alloca { {}*, [3 x i64]* }, align 8
    call void @llvm.dbg.declare(metadata { {}*, [3 x i64]* }* %value.dbg.spill.i, metadata !2766, metadata !DIExpression()), !dbg !2771
    %6 = alloca { i8*, i64* }, align 8
    %obj.dbg.spill.i = alloca { {}*, [3 x i64]* }, align 8
    call void @llvm.dbg.declare(metadata { {}*, [3 x i64]* }* %obj.dbg.spill.i, metadata !3011, metadata !DIExpression()), !dbg !3013
    %data.dbg.spill3.i = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i, metadata !3010, metadata !DIExpression()), !dbg !3014
    %data.dbg.spill2.i = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i, metadata !3009, metadata !DIExpression()), !dbg !3015
    call void @llvm.dbg.declare(metadata { {}*, [3 x i64]* }* %obj.dbg.spill.i, metadata !2784, metadata !DIExpression()), !dbg !2786
    %data.dbg.spill3.i = alloca %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i, metadata !2783, metadata !DIExpression()), !dbg !2787
    %data.dbg.spill2.i = alloca %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i, metadata !2782, metadata !DIExpression()), !dbg !2788
    %payload.dbg.spill.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %payload.dbg.spill.i, metadata !3008, metadata !DIExpression()), !dbg !3016
    call void @llvm.dbg.declare(metadata i8** %payload.dbg.spill.i, metadata !2781, metadata !DIExpression()), !dbg !2789
    %data.dbg.spill.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %data.dbg.spill.i, metadata !3007, metadata !DIExpression()), !dbg !3017
    call void @llvm.dbg.declare(metadata i8** %data.dbg.spill.i, metadata !2780, metadata !DIExpression()), !dbg !2790
    %slot.dbg.spill.i = alloca { i8*, i64* }, align 8
    call void @llvm.dbg.declare(metadata { i8*, i64* }* %slot.dbg.spill.i, metadata !2791, metadata !DIExpression()), !dbg !3018
    %7 = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %8 = alloca i64, align 8
    %slot.i = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i, metadata !3020, metadata !DIExpression()), !dbg !3025
    %value.dbg.spill.i = alloca i64*, align 8
    call void @llvm.dbg.declare(metadata i64** %value.dbg.spill.i, metadata !3027, metadata !DIExpression()), !dbg !3032
    %9 = alloca i64*, align 8
    %10 = alloca i64, align 8
    call void @llvm.dbg.declare(metadata { i8*, i64* }* %slot.dbg.spill.i, metadata !2791, metadata !DIExpression()), !dbg !2796
    %7 = alloca %"proc_macro::Span", align 4
    %8 = alloca i32, align 4
    %slot.i = alloca %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>", align 4
    call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %slot.i, metadata !2798, metadata !DIExpression()), !dbg !2803
    %9 = alloca %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>", align 1
    %10 = alloca i32, align 4
    %11 = alloca i32, align 4
    %data_ptr.dbg.spill = alloca i8*, align 8
    %f.dbg.spill = alloca i64*, align 8
    %_15 = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    %_14 = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %data = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 8
    br label %12
    %f.dbg.spill = alloca %"imp::nightly_works::{{closure}}::{{closure}}", align 1
    %_15 = alloca %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>", align 4
    %_14 = alloca %"proc_macro::Span", align 4
    %data = alloca %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>", align 8
    call void @llvm.dbg.declare(metadata %"imp::nightly_works::{{closure}}::{{closure}}"* %f.dbg.spill, metadata !2659, metadata !DIExpression()), !dbg !2805
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data, metadata !2660, metadata !DIExpression()), !dbg !2806
    br label %12, !dbg !2807

    12: ; preds = %start
    %13 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 0), %start ]
    %14 = load i64, i64* %13
    %15 = add i64 %14, 1
    store i64 %15, i64* %13
    store i64* %f, i64** %f.dbg.spill, align 8
    call void @llvm.dbg.declare(metadata i64** %f.dbg.spill, metadata !2892, metadata !DIExpression()), !dbg !3034
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, metadata !2893, metadata !DIExpression()), !dbg !3035
    %16 = bitcast i64** %value.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %16)
    %17 = bitcast i64** %9 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %17)
    store i64* %f, i64** %value.dbg.spill.i, align 8, !noalias !3036
    store i64* %f, i64** %9, align 8, !dbg !3039, !noalias !3036
    %18 = load i64*, i64** %9, align 8, !dbg !3040, !noalias !3036, !nonnull !4
    %19 = bitcast i64** %value.dbg.spill.i to i8*, !dbg !3040
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %19), !dbg !3040
    %20 = bitcast i64** %9 to i8*, !dbg !3040
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %20), !dbg !3040
    br label %bb1, !dbg !3041
    %13 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 0), %start ], !dbg !2807
    %14 = load i64, i64* %13, !dbg !2807
    %15 = add i64 %14, 1, !dbg !2807
    store i64 %15, i64* %13, !dbg !2807
    %16 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %9 to i8*, !dbg !2807
    call void @llvm.lifetime.start.p0i8(i64 0, i8* %16), !dbg !2807
    call void @llvm.dbg.declare(metadata !4, metadata !2812, metadata !DIExpression()), !dbg !2807
    %17 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %9 to %"imp::nightly_works::{{closure}}::{{closure}}"*, !dbg !2814
    %18 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %9 to i8*, !dbg !2815
    call void @llvm.lifetime.end.p0i8(i64 0, i8* %18), !dbg !2815
    br label %bb1, !dbg !2816

    bb1: ; preds = %12
    %21 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 1), %12 ], !dbg !3042
    %22 = load i64, i64* %21, !dbg !3042
    %23 = add i64 %22, 1, !dbg !3042
    store i64 %23, i64* %21, !dbg !3042
    %24 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to i64**, !dbg !3042
    store i64* %18, i64** %24, align 8, !dbg !3042
    %data_ptr = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to i8*, !dbg !3043
    store i8* %data_ptr, i8** %data_ptr.dbg.spill, align 8, !dbg !3043
    call void @llvm.dbg.declare(metadata i8** %data_ptr.dbg.spill, metadata !2909, metadata !DIExpression()), !dbg !3044
    %25 = bitcast i64* %4 to i8*
    %19 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 1), %12 ], !dbg !2817
    %20 = load i64, i64* %19, !dbg !2817
    %21 = add i64 %20, 1, !dbg !2817
    store i64 %21, i64* %19, !dbg !2817
    %22 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"*, !dbg !2817
    %data_ptr = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to i8*, !dbg !2818
    store i8* %data_ptr, i8** %data_ptr.dbg.spill, align 8, !dbg !2818
    call void @llvm.dbg.declare(metadata i8** %data_ptr.dbg.spill, metadata !2683, metadata !DIExpression()), !dbg !2819
    %23 = bitcast i32* %4 to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %23)
    %24 = bitcast i32* %5 to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %24)
    %25 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i1 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %25)
    %26 = bitcast i64* %5 to i8*
    %26 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i2 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %26)
    %27 = bitcast i64** %f.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %27)
    %28 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2 to i8*
    %27 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"* %f.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 0, i8* %27)
    %28 = bitcast i8** %data.dbg.spill.i3 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %28)
    %29 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %29)
    %30 = bitcast i8** %data.dbg.spill.i4 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %30)
    %31 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i8*
    %29 = bitcast %"proc_macro::Span"* %_9.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %29)
    %30 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %_8.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %30)
    store i8* %data_ptr, i8** %data.dbg.spill.i3, align 8
    store %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data, %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i2, align 8, !dbg !2820
    store %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data, %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i1, align 8, !dbg !2821
    %_7.i = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"*, !dbg !2822
    %31 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %slot.dbg.spill.i6 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %31)
    %32 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*
    store %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %_7.i, %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %slot.dbg.spill.i6, align 8
    %_3.i = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %_7.i to %"imp::nightly_works::{{closure}}::{{closure}}"*, !dbg !2823
    %32 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %32)
    store i8* %data_ptr, i8** %data.dbg.spill.i4, align 8
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3, align 8, !dbg !3045
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2, align 8, !dbg !3046
    %_7.i = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to i64**, !dbg !3047
    %33 = bitcast i64*** %slot.dbg.spill.i7 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %33)
    store i64** %_7.i, i64*** %slot.dbg.spill.i7, align 8
    %34 = bitcast i64*** %src.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %34)
    %35 = bitcast i8** %tmp.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %35)
    store i64** %_7.i, i64*** %src.dbg.spill.i, align 8
    %36 = bitcast i8** %1 to i8*, !dbg !3048
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %36), !dbg !3048
    %37 = bitcast i8** %1 to {}*, !dbg !3048
    %38 = load i8*, i8** %1, align 8, !dbg !3053
    %39 = bitcast i8** %1 to i8*, !dbg !3053
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %39), !dbg !3053
    br label %.noexc10, !dbg !3053
    %33 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %tmp.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 0, i8* %33)
    store %"imp::nightly_works::{{closure}}::{{closure}}"* %_3.i, %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i, align 8
    %34 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %1 to i8*, !dbg !2824
    call void @llvm.lifetime.start.p0i8(i64 0, i8* %34), !dbg !2824
    %35 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %1 to {}*, !dbg !2824
    %36 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %1 to i8*, !dbg !2829
    call void @llvm.lifetime.end.p0i8(i64 0, i8* %36), !dbg !2829
    br label %.noexc8, !dbg !2829

    .noexc10: ; preds = %bb1
    %40 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 2), %bb1 ], !dbg !3054
    %41 = load i64, i64* %40, !dbg !3054
    %42 = add i64 %41, 1, !dbg !3054
    store i64 %42, i64* %40, !dbg !3054
    store i8* %38, i8** %tmp.i, align 8, !dbg !3054
    %43 = bitcast i8*** %self.dbg.spill.i17 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %43)
    store i8** %tmp.i, i8*** %self.dbg.spill.i17, align 8
    %_4.i = bitcast i8** %tmp.i to i64**, !dbg !3055
    %44 = bitcast i64*** %self.dbg.spill.i20 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %44)
    store i64** %_4.i, i64*** %self.dbg.spill.i20, align 8
    %45 = bitcast i64*** %self.dbg.spill.i20 to i8*, !dbg !3056
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %45), !dbg !3056
    br label %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit", !dbg !3056
    .noexc8: ; preds = %bb1
    %37 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 2), %bb1 ]
    %38 = load i64, i64* %37
    %39 = add i64 %38, 1
    store i64 %39, i64* %37
    %40 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %40)
    store %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %tmp.i, %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i, align 8
    %_4.i = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %tmp.i to %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"*, !dbg !2830
    %41 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i17 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %41)
    store %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %_4.i, %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i17, align 8
    %_3.i18 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"* %_4.i to %"imp::nightly_works::{{closure}}::{{closure}}"*, !dbg !2831
    %42 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i17 to i8*, !dbg !2832
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %42), !dbg !2832
    br label %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17hf722aeb96a111a56E.exit", !dbg !2832

    "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit": ; preds = %.noexc10
    %46 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 3), %.noexc10 ], !dbg !3057
    %47 = load i64, i64* %46, !dbg !3057
    %48 = add i64 %47, 1, !dbg !3057
    store i64 %48, i64* %46, !dbg !3057
    %49 = bitcast i8*** %self.dbg.spill.i17 to i8*, !dbg !3057
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %49), !dbg !3057
    br label %_5.i.noexc, !dbg !3057
    "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17hf722aeb96a111a56E.exit": ; preds = %.noexc8
    %43 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 3), %.noexc8 ], !dbg !2833
    %44 = load i64, i64* %43, !dbg !2833
    %45 = add i64 %44, 1, !dbg !2833
    store i64 %45, i64* %43, !dbg !2833
    %46 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"** %self.dbg.spill.i to i8*, !dbg !2833
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %46), !dbg !2833
    br label %_5.i.noexc, !dbg !2833

    _5.i.noexc: ; preds = %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit"
    %50 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 4), %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit" ]
    %51 = load i64, i64* %50
    %52 = add i64 %51, 1
    store i64 %52, i64* %50
    %53 = bitcast i64* %count.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %53)
    %54 = bitcast i64*** %dst.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %54)
    %55 = bitcast i64*** %src.dbg.spill.i16 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %55)
    store i64** %_7.i, i64*** %src.dbg.spill.i16, align 8
    store i64** %_4.i, i64*** %dst.dbg.spill.i, align 8
    _5.i.noexc: ; preds = %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17hf722aeb96a111a56E.exit"
    %47 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 4), %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17hf722aeb96a111a56E.exit" ]
    %48 = load i64, i64* %47
    %49 = add i64 %48, 1
    store i64 %49, i64* %47
    %50 = bitcast i64* %count.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %50)
    %51 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"** %dst.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %51)
    %52 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i14 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %52)
    store %"imp::nightly_works::{{closure}}::{{closure}}"* %_3.i, %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i14, align 8
    store %"imp::nightly_works::{{closure}}::{{closure}}"* %_3.i18, %"imp::nightly_works::{{closure}}::{{closure}}"** %dst.dbg.spill.i, align 8
    store i64 1, i64* %count.dbg.spill.i, align 8
    %56 = bitcast i64** %_4.i to i8*, !dbg !3058
    %57 = bitcast i64** %_7.i to i8*, !dbg !3058
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %56, i8* align 8 %57, i64 8, i1 false), !dbg !3058
    %58 = bitcast i64* %count.dbg.spill.i to i8*, !dbg !3059
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %58), !dbg !3059
    %59 = bitcast i64*** %dst.dbg.spill.i to i8*, !dbg !3059
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %59), !dbg !3059
    %60 = bitcast i64*** %src.dbg.spill.i16 to i8*, !dbg !3059
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %60), !dbg !3059
    br label %.noexc12, !dbg !3059
    %53 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"* %_3.i18 to i8*, !dbg !2834
    %54 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"* %_3.i to i8*, !dbg !2834
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %53, i8* align 1 %54, i64 0, i1 false), !dbg !2834
    %55 = bitcast i64* %count.dbg.spill.i to i8*, !dbg !2835
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %55), !dbg !2835
    %56 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"** %dst.dbg.spill.i to i8*, !dbg !2835
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %56), !dbg !2835
    %57 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i14 to i8*, !dbg !2835
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %57), !dbg !2835
    br label %.noexc10, !dbg !2835

    .noexc12: ; preds = %_5.i.noexc
    %61 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 5), %_5.i.noexc ], !dbg !3060
    %62 = load i64, i64* %61, !dbg !3060
    %63 = add i64 %62, 1, !dbg !3060
    store i64 %63, i64* %61, !dbg !3060
    %_7.i9 = load i8*, i8** %tmp.i, align 8, !dbg !3060
    %64 = bitcast i8** %self.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %64)
    store i8* %_7.i9, i8** %self.dbg.spill.i, align 8
    %_3.i = bitcast i8* %_7.i9 to i64*, !dbg !3061
    %65 = bitcast i64** %slot.dbg.spill.i15 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %65)
    store i64* %_3.i, i64** %slot.dbg.spill.i15, align 8, !noalias !3062
    %66 = bitcast i64** %slot.dbg.spill.i15 to i8*, !dbg !3065
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %66), !dbg !3065
    br label %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit", !dbg !3065
    .noexc10: ; preds = %_5.i.noexc
    %58 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 5), %_5.i.noexc ], !dbg !2836
    %59 = load i64, i64* %58, !dbg !2836
    %60 = add i64 %59, 1, !dbg !2836
    store i64 %60, i64* %58, !dbg !2836
    call void @llvm.dbg.declare(metadata !4, metadata !2841, metadata !DIExpression()), !dbg !2836
    call void @llvm.dbg.declare(metadata !4, metadata !2843, metadata !DIExpression()), !dbg !2848
    br label %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h2ab98d4d58a1c1e5E.exit", !dbg !2850

    "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit": ; preds = %.noexc12
    %67 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 6), %.noexc12 ], !dbg !3066
    %68 = load i64, i64* %67, !dbg !3066
    %69 = add i64 %68, 1, !dbg !3066
    store i64 %69, i64* %67, !dbg !3066
    %70 = bitcast i8** %self.dbg.spill.i to i8*, !dbg !3066
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %70), !dbg !3066
    br label %_ZN4core3ptr4read17h87039b83fe842100E.exit, !dbg !3066
    "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h2ab98d4d58a1c1e5E.exit": ; preds = %.noexc10
    %61 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 6), %.noexc10 ], !dbg !2851
    %62 = load i64, i64* %61, !dbg !2851
    %63 = add i64 %62, 1, !dbg !2851
    store i64 %63, i64* %61, !dbg !2851
    br label %_ZN4core3ptr4read17h90aeca10dfe636a6E.exit, !dbg !2851

    _ZN4core3ptr4read17h87039b83fe842100E.exit: ; preds = %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit"
    %71 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 7), %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit" ], !dbg !3067
    %72 = load i64, i64* %71, !dbg !3067
    %73 = add i64 %72, 1, !dbg !3067
    store i64 %73, i64* %71, !dbg !3067
    %74 = bitcast i64*** %src.dbg.spill.i to i8*, !dbg !3067
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %74), !dbg !3067
    %75 = bitcast i8** %tmp.i to i8*, !dbg !3067
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %75), !dbg !3067
    br label %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit", !dbg !3067
    _ZN4core3ptr4read17h90aeca10dfe636a6E.exit: ; preds = %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h2ab98d4d58a1c1e5E.exit"
    %64 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 7), %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h2ab98d4d58a1c1e5E.exit" ], !dbg !2852
    %65 = load i64, i64* %64, !dbg !2852
    %66 = add i64 %65, 1, !dbg !2852
    store i64 %66, i64* %64, !dbg !2852
    %67 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"** %src.dbg.spill.i to i8*, !dbg !2852
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %67), !dbg !2852
    %68 = bitcast %"core::mem::maybe_uninit::MaybeUninit<imp::nightly_works::{{closure}}::{{closure}}>"* %tmp.i to i8*, !dbg !2852
    call void @llvm.lifetime.end.p0i8(i64 0, i8* %68), !dbg !2852
    br label %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hcb3d321b87fdb138E.exit", !dbg !2852

    "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit": ; preds = %_ZN4core3ptr4read17h87039b83fe842100E.exit
    %76 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 8), %_ZN4core3ptr4read17h87039b83fe842100E.exit ], !dbg !3068
    %77 = load i64, i64* %76, !dbg !3068
    %78 = add i64 %77, 1, !dbg !3068
    store i64 %78, i64* %76, !dbg !3068
    %79 = bitcast i64*** %slot.dbg.spill.i7 to i8*, !dbg !3068
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %79), !dbg !3068
    br label %f.i.noexc, !dbg !3068
    "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hcb3d321b87fdb138E.exit": ; preds = %_ZN4core3ptr4read17h90aeca10dfe636a6E.exit
    %69 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 8), %_ZN4core3ptr4read17h90aeca10dfe636a6E.exit ], !dbg !2853
    %70 = load i64, i64* %69, !dbg !2853
    %71 = add i64 %70, 1, !dbg !2853
    store i64 %71, i64* %69, !dbg !2853
    %72 = bitcast %"core::mem::manually_drop::ManuallyDrop<imp::nightly_works::{{closure}}::{{closure}}>"** %slot.dbg.spill.i6 to i8*, !dbg !2853
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %72), !dbg !2853
    br label %.noexc, !dbg !2853

    f.i.noexc: ; preds = %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit"
    %80 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 9), %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit" ], !dbg !3069
    %81 = load i64, i64* %80, !dbg !3069
    %82 = add i64 %81, 1, !dbg !3069
    store i64 %82, i64* %80, !dbg !3069
    store i64* %_3.i, i64** %f.dbg.spill.i, align 8, !dbg !3069
    ; invoke proc_macro2::imp::proc_macro_parse::{{closure}}
    %83 = invoke i64 @"_ZN11proc_macro23imp16proc_macro_parse28_$u7b$$u7b$closure$u7d$$u7d$17h2474aa3ead5f269eE"(i64* noalias readonly align 8 dereferenceable(16) %_3.i)
    to label %.noexc unwind label %catch.i, !dbg !3070
    .noexc: ; preds = %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hcb3d321b87fdb138E.exit"
    %73 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 9), %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hcb3d321b87fdb138E.exit" ], !dbg !2854
    %74 = load i64, i64* %73, !dbg !2854
    %75 = add i64 %74, 1, !dbg !2854
    store i64 %75, i64* %73, !dbg !2854
    ; invoke proc_macro2::imp::nightly_works::{{closure}}::{{closure}}
    %76 = invoke i32 @"_ZN11proc_macro23imp13nightly_works28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h918411ad0b79ae9fE"()
    to label %.noexc4 unwind label %catch.i, !dbg !2854

    .noexc: ; preds = %f.i.noexc
    %84 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 10), %f.i.noexc ], !dbg !3070
    %85 = load i64, i64* %84, !dbg !3070
    %86 = add i64 %85, 1, !dbg !3070
    store i64 %86, i64* %84, !dbg !3070
    store i64 %83, i64* %5, align 8, !dbg !3070
    %87 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i8*, !dbg !3070
    %88 = bitcast i64* %5 to i8*, !dbg !3070
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %87, i8* align 8 %88, i64 8, i1 false), !dbg !3070
    %89 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i64*, !dbg !3071
    %90 = load i64, i64* %89, align 4, !dbg !3071
    %91 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %91)
    %92 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %92)
    %93 = bitcast i64* %3 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %93)
    %94 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %94)
    store i64 %90, i64* %3, align 8
    %95 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*
    %96 = bitcast i64* %3 to i8*
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %95, i8* align 8 %96, i64 8, i1 false)
    %97 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*, !dbg !3072
    %98 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*, !dbg !3072
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %97, i8* align 4 %98, i64 8, i1 false), !dbg !3072
    %99 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to %"core::result::Result<proc_macro::TokenStream, imp::LexError>"*, !dbg !3073
    %100 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %99 to i8*, !dbg !3073
    %101 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*, !dbg !3073
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %100, i8* align 4 %101, i64 8, i1 false), !dbg !3073
    %102 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to i64*, !dbg !3074
    %103 = load i64, i64* %102, align 4, !dbg !3074
    %104 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %104), !dbg !3074
    %105 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %105), !dbg !3074
    %106 = bitcast i64* %3 to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %106), !dbg !3074
    %107 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %107), !dbg !3074
    br label %_ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit, !dbg !3074
    .noexc4: ; preds = %.noexc
    %77 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 10), %.noexc ], !dbg !2854
    %78 = load i64, i64* %77, !dbg !2854
    %79 = add i64 %78, 1, !dbg !2854
    store i64 %79, i64* %77, !dbg !2854
    store i32 %76, i32* %5, align 4, !dbg !2854
    %80 = bitcast %"proc_macro::Span"* %_9.i to i8*, !dbg !2854
    %81 = bitcast i32* %5 to i8*, !dbg !2854
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %80, i8* align 4 %81, i64 4, i1 false), !dbg !2854
    %82 = bitcast %"proc_macro::Span"* %_9.i to i32*, !dbg !2855
    %83 = load i32, i32* %82, align 4, !dbg !2855
    %84 = bitcast %"proc_macro::Span"* %_2.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %84)
    %85 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %2 to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %85)
    %86 = bitcast i32* %3 to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %86)
    %87 = bitcast %"proc_macro::Span"* %value.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %87)
    store i32 %83, i32* %3, align 4
    %88 = bitcast %"proc_macro::Span"* %value.i to i8*
    %89 = bitcast i32* %3 to i8*
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %88, i8* align 4 %89, i64 4, i1 false)
    %90 = bitcast %"proc_macro::Span"* %_2.i to i8*, !dbg !2856
    %91 = bitcast %"proc_macro::Span"* %value.i to i8*, !dbg !2856
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %90, i8* align 4 %91, i64 4, i1 false), !dbg !2856
    %92 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %2 to %"proc_macro::Span"*, !dbg !2857
    %93 = bitcast %"proc_macro::Span"* %92 to i8*, !dbg !2857
    %94 = bitcast %"proc_macro::Span"* %_2.i to i8*, !dbg !2857
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %93, i8* align 4 %94, i64 4, i1 false), !dbg !2857
    %95 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %2 to i32*, !dbg !2858
    %96 = load i32, i32* %95, align 4, !dbg !2858
    %97 = bitcast %"proc_macro::Span"* %_2.i to i8*, !dbg !2858
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %97), !dbg !2858
    %98 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %2 to i8*, !dbg !2858
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %98), !dbg !2858
    %99 = bitcast i32* %3 to i8*, !dbg !2858
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %99), !dbg !2858
    %100 = bitcast %"proc_macro::Span"* %value.i to i8*, !dbg !2858
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %100), !dbg !2858
    br label %_ZN3std9panicking3try7do_call17h16e99b926c5155e9E.exit, !dbg !2858

    _ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit: ; preds = %.noexc
    %108 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 12), %.noexc ], !dbg !3071
    %109 = load i64, i64* %108, !dbg !3071
    %110 = add i64 %109, 1, !dbg !3071
    store i64 %110, i64* %108, !dbg !3071
    store i64 %103, i64* %4, align 8, !dbg !3071
    %111 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*, !dbg !3071
    %112 = bitcast i64* %4 to i8*, !dbg !3071
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %111, i8* align 8 %112, i64 8, i1 false), !dbg !3071
    %113 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, !dbg !3075
    %114 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %113 to i8*, !dbg !3075
    %115 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*, !dbg !3075
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %114, i8* align 4 %115, i64 8, i1 false), !dbg !3075
    %116 = bitcast i64* %4 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %116), !dbg !3076
    %117 = bitcast i64* %5 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %117), !dbg !3076
    %118 = bitcast i64** %f.dbg.spill.i to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %118), !dbg !3076
    %119 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %119), !dbg !3076
    %120 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %120), !dbg !3076
    %121 = bitcast i8** %data.dbg.spill.i4 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %121), !dbg !3076
    %122 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %122), !dbg !3076
    %123 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %123), !dbg !3076
    br label %then.i, !dbg !3076
    _ZN3std9panicking3try7do_call17h16e99b926c5155e9E.exit: ; preds = %.noexc4
    %101 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 12), %.noexc4 ], !dbg !2855
    %102 = load i64, i64* %101, !dbg !2855
    %103 = add i64 %102, 1, !dbg !2855
    store i64 %103, i64* %101, !dbg !2855
    store i32 %96, i32* %4, align 4, !dbg !2855
    %104 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %_8.i to i8*, !dbg !2855
    %105 = bitcast i32* %4 to i8*, !dbg !2855
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %104, i8* align 4 %105, i64 4, i1 false), !dbg !2855
    %106 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"*, !dbg !2859
    %107 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %106 to i8*, !dbg !2859
    %108 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %_8.i to i8*, !dbg !2859
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %107, i8* align 4 %108, i64 4, i1 false), !dbg !2859
    %109 = bitcast i32* %4 to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %109), !dbg !2860
    %110 = bitcast i32* %5 to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %110), !dbg !2860
    %111 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i1 to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %111), !dbg !2860
    %112 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i2 to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %112), !dbg !2860
    %113 = bitcast %"imp::nightly_works::{{closure}}::{{closure}}"* %f.dbg.spill.i to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 0, i8* %113), !dbg !2860
    %114 = bitcast i8** %data.dbg.spill.i3 to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %114), !dbg !2860
    %115 = bitcast %"proc_macro::Span"* %_9.i to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %115), !dbg !2860
    %116 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %_8.i to i8*, !dbg !2860
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %116), !dbg !2860
    br label %then.i, !dbg !2860

    then.i: ; preds = %_ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit
    %124 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 13), %_ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit ], !dbg !3077
    %125 = load i64, i64* %124, !dbg !3077
    %126 = add i64 %125, 1, !dbg !3077
    store i64 %126, i64* %124, !dbg !3077
    br label %__rust_try.exit, !dbg !3077
    then.i: ; preds = %_ZN3std9panicking3try7do_call17h16e99b926c5155e9E.exit
    %117 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 13), %_ZN3std9panicking3try7do_call17h16e99b926c5155e9E.exit ], !dbg !2861
    %118 = load i64, i64* %117, !dbg !2861
    %119 = add i64 %118, 1, !dbg !2861
    store i64 %119, i64* %117, !dbg !2861
    br label %__rust_try.exit, !dbg !2861

    catch.i: ; preds = %f.i.noexc
    %127 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 11), %f.i.noexc ], !dbg !3077
    %128 = landingpad { i8*, i32 }
    catch i8* null, !dbg !3077
    %129 = load i64, i64* %127, !dbg !3077
    %130 = add i64 %129, 1, !dbg !3077
    store i64 %130, i64* %127, !dbg !3077
    %131 = extractvalue { i8*, i32 } %128, 0, !dbg !3077
    %132 = bitcast { {}*, [3 x i64]* }* %obj.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %132)
    %133 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %133)
    %134 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %134)
    %135 = bitcast i8** %payload.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %135)
    %136 = bitcast i8** %data.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %136)
    catch.i: ; preds = %.noexc
    %120 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 11), %.noexc ], !dbg !2861
    %121 = landingpad { i8*, i32 }
    catch i8* null, !dbg !2861
    %122 = load i64, i64* %120, !dbg !2861
    %123 = add i64 %122, 1, !dbg !2861
    store i64 %123, i64* %120, !dbg !2861
    %124 = extractvalue { i8*, i32 } %121, 0, !dbg !2861
    %125 = bitcast { {}*, [3 x i64]* }* %obj.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %125)
    %126 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %126)
    %127 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %127)
    %128 = bitcast i8** %payload.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %128)
    %129 = bitcast i8** %data.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %129)
    store i8* %data_ptr, i8** %data.dbg.spill.i, align 8
    store i8* %131, i8** %payload.dbg.spill.i, align 8
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i, align 8, !dbg !3078
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i, align 8, !dbg !3079
    store i8* %124, i8** %payload.dbg.spill.i, align 8
    store %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data, %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i, align 8, !dbg !2862
    store %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data, %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i, align 8, !dbg !2863
    ; call std::panicking::try::cleanup
    %137 = call { {}*, [3 x i64]* } @_ZN3std9panicking3try7cleanup17h97268322f249355eE(i8* %131), !dbg !3080
    %obj.0.i = extractvalue { {}*, [3 x i64]* } %137, 0, !dbg !3080
    %obj.1.i = extractvalue { {}*, [3 x i64]* } %137, 1, !dbg !3080
    %138 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %obj.dbg.spill.i, i32 0, i32 0, !dbg !3080
    store {}* %obj.0.i, {}** %138, align 8, !dbg !3080
    %139 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %obj.dbg.spill.i, i32 0, i32 1, !dbg !3080
    store [3 x i64]* %obj.1.i, [3 x i64]** %139, align 8, !dbg !3080
    %140 = bitcast { {}*, [3 x i64]* }* %value.dbg.spill.i1 to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %140)
    %141 = bitcast { i8*, i64* }* %6 to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %141)
    %142 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %value.dbg.spill.i1, i32 0, i32 0
    store {}* %obj.0.i, {}** %142, align 8, !noalias !3081
    %143 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %value.dbg.spill.i1, i32 0, i32 1
    store [3 x i64]* %obj.1.i, [3 x i64]** %143, align 8, !noalias !3081
    %144 = bitcast { i8*, i64* }* %6 to { {}*, [3 x i64]* }*, !dbg !3085
    %145 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %144, i32 0, i32 0, !dbg !3085
    store {}* %obj.0.i, {}** %145, align 8, !dbg !3085, !noalias !3081
    %146 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %144, i32 0, i32 1, !dbg !3085
    store [3 x i64]* %obj.1.i, [3 x i64]** %146, align 8, !dbg !3085, !noalias !3081
    %147 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %6, i32 0, i32 0, !dbg !3086
    %148 = load i8*, i8** %147, align 8, !dbg !3086, !noalias !3081, !nonnull !4
    %149 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %6, i32 0, i32 1, !dbg !3086
    %150 = load i64*, i64** %149, align 8, !dbg !3086, !noalias !3081, !nonnull !4
    %151 = insertvalue { i8*, i64* } undef, i8* %148, 0, !dbg !3086
    %152 = insertvalue { i8*, i64* } %151, i64* %150, 1, !dbg !3086
    %153 = bitcast { {}*, [3 x i64]* }* %value.dbg.spill.i1 to i8*, !dbg !3086
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %153), !dbg !3086
    %154 = bitcast { i8*, i64* }* %6 to i8*, !dbg !3086
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %154), !dbg !3086
    %_8.0.i = extractvalue { i8*, i64* } %152, 0, !dbg !3087
    %_8.1.i = extractvalue { i8*, i64* } %152, 1, !dbg !3087
    %155 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to { i8*, i64* }*, !dbg !3088
    %156 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %155, i32 0, i32 0, !dbg !3088
    store i8* %_8.0.i, i8** %156, align 8, !dbg !3088
    %157 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %155, i32 0, i32 1, !dbg !3088
    store i64* %_8.1.i, i64** %157, align 8, !dbg !3088
    %158 = bitcast { {}*, [3 x i64]* }* %obj.dbg.spill.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %158), !dbg !3089
    %159 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %159), !dbg !3089
    %160 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %160), !dbg !3089
    %161 = bitcast i8** %payload.dbg.spill.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %161), !dbg !3089
    %162 = bitcast i8** %data.dbg.spill.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %162), !dbg !3089
    br label %__rust_try.exit, !dbg !3077
    %130 = call { {}*, [3 x i64]* } @_ZN3std9panicking3try7cleanup17h97268322f249355eE(i8* %124), !dbg !2864
    %obj.0.i = extractvalue { {}*, [3 x i64]* } %130, 0, !dbg !2864
    %obj.1.i = extractvalue { {}*, [3 x i64]* } %130, 1, !dbg !2864
    %131 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %obj.dbg.spill.i, i32 0, i32 0, !dbg !2864
    store {}* %obj.0.i, {}** %131, align 8, !dbg !2864
    %132 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %obj.dbg.spill.i, i32 0, i32 1, !dbg !2864
    store [3 x i64]* %obj.1.i, [3 x i64]** %132, align 8, !dbg !2864
    %133 = bitcast { {}*, [3 x i64]* }* %value.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %133)
    %134 = bitcast { i8*, i64* }* %6 to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %134)
    %135 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %value.dbg.spill.i, i32 0, i32 0
    store {}* %obj.0.i, {}** %135, align 8, !noalias !2865
    %136 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %value.dbg.spill.i, i32 0, i32 1
    store [3 x i64]* %obj.1.i, [3 x i64]** %136, align 8, !noalias !2865
    %137 = bitcast { i8*, i64* }* %6 to { {}*, [3 x i64]* }*, !dbg !2869
    %138 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %137, i32 0, i32 0, !dbg !2869
    store {}* %obj.0.i, {}** %138, align 8, !dbg !2869, !noalias !2865
    %139 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %137, i32 0, i32 1, !dbg !2869
    store [3 x i64]* %obj.1.i, [3 x i64]** %139, align 8, !dbg !2869, !noalias !2865
    %140 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %6, i32 0, i32 0, !dbg !2870
    %141 = load i8*, i8** %140, align 8, !dbg !2870, !noalias !2865, !nonnull !4
    %142 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %6, i32 0, i32 1, !dbg !2870
    %143 = load i64*, i64** %142, align 8, !dbg !2870, !noalias !2865, !nonnull !4
    %144 = insertvalue { i8*, i64* } undef, i8* %141, 0, !dbg !2870
    %145 = insertvalue { i8*, i64* } %144, i64* %143, 1, !dbg !2870
    %146 = bitcast { {}*, [3 x i64]* }* %value.dbg.spill.i to i8*, !dbg !2870
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %146), !dbg !2870
    %147 = bitcast { i8*, i64* }* %6 to i8*, !dbg !2870
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %147), !dbg !2870
    %_8.0.i = extractvalue { i8*, i64* } %145, 0, !dbg !2871
    %_8.1.i = extractvalue { i8*, i64* } %145, 1, !dbg !2871
    %148 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to { i8*, i64* }*, !dbg !2872
    %149 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %148, i32 0, i32 0, !dbg !2872
    store i8* %_8.0.i, i8** %149, align 8, !dbg !2872
    %150 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %148, i32 0, i32 1, !dbg !2872
    store i64* %_8.1.i, i64** %150, align 8, !dbg !2872
    %151 = bitcast { {}*, [3 x i64]* }* %obj.dbg.spill.i to i8*, !dbg !2873
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %151), !dbg !2873
    %152 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill3.i to i8*, !dbg !2873
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %152), !dbg !2873
    %153 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"** %data.dbg.spill2.i to i8*, !dbg !2873
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %153), !dbg !2873
    %154 = bitcast i8** %payload.dbg.spill.i to i8*, !dbg !2873
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %154), !dbg !2873
    %155 = bitcast i8** %data.dbg.spill.i to i8*, !dbg !2873
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %155), !dbg !2873
    br label %__rust_try.exit, !dbg !2861

    __rust_try.exit: ; preds = %catch.i, %then.i
    %163 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 15), %catch.i ], [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 14), %then.i ]
    %164 = phi i32 [ 0, %then.i ], [ 1, %catch.i ]
    %165 = load i64, i64* %163, !dbg !3077
    %166 = add i64 %165, 1, !dbg !3077
    store i64 %166, i64* %163, !dbg !3077
    store i32 %164, i32* %11, align 4, !dbg !3077
    %_10 = load i32, i32* %11, align 4, !dbg !3077
    br label %bb2, !dbg !3077
    %156 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 15), %catch.i ], [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 14), %then.i ]
    %157 = phi i32 [ 0, %then.i ], [ 1, %catch.i ]
    %158 = load i64, i64* %156, !dbg !2861
    %159 = add i64 %158, 1, !dbg !2861
    store i64 %159, i64* %156, !dbg !2861
    store i32 %157, i32* %11, align 4, !dbg !2861
    %_10 = load i32, i32* %11, align 4, !dbg !2861
    br label %bb2, !dbg !2861

    bb2: ; preds = %__rust_try.exit
    %167 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 16), %__rust_try.exit ], !dbg !3077
    %168 = load i64, i64* %167, !dbg !3077
    %169 = add i64 %168, 1, !dbg !3077
    store i64 %169, i64* %167, !dbg !3077
    %_9 = icmp eq i32 %_10, 0, !dbg !3077
    br i1 %_9, label %bb4, label %bb3, !dbg !3090
    %160 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 16), %__rust_try.exit ], !dbg !2861
    %161 = load i64, i64* %160, !dbg !2861
    %162 = add i64 %161, 1, !dbg !2861
    store i64 %162, i64* %160, !dbg !2861
    %_9 = icmp eq i32 %_10, 0, !dbg !2861
    br i1 %_9, label %bb4, label %bb3, !dbg !2874

    bb3: ; preds = %bb2
    %170 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 18), %bb2 ], !dbg !3091
    %171 = load i64, i64* %170, !dbg !3091
    %172 = add i64 %171, 1, !dbg !3091
    store i64 %172, i64* %170, !dbg !3091
    %173 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to { i8*, i64* }*, !dbg !3091
    %174 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %173, i32 0, i32 0, !dbg !3091
    %_18.0 = load i8*, i8** %174, align 8, !dbg !3091, !nonnull !4
    %175 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %173, i32 0, i32 1, !dbg !3091
    %_18.1 = load i64*, i64** %175, align 8, !dbg !3091, !nonnull !4
    %176 = bitcast { i8*, i64* }* %slot.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %176)
    %177 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %slot.dbg.spill.i, i32 0, i32 0
    store i8* %_18.0, i8** %177, align 8, !noalias !3092
    %178 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %slot.dbg.spill.i, i32 0, i32 1
    store i64* %_18.1, i64** %178, align 8, !noalias !3092
    %179 = bitcast i8* %_18.0 to {}*, !dbg !3096
    %180 = bitcast i64* %_18.1 to [3 x i64]*, !dbg !3096
    %181 = insertvalue { {}*, [3 x i64]* } undef, {}* %179, 0, !dbg !3097
    %182 = insertvalue { {}*, [3 x i64]* } %181, [3 x i64]* %180, 1, !dbg !3097
    %183 = bitcast { i8*, i64* }* %slot.dbg.spill.i to i8*, !dbg !3097
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %183), !dbg !3097
    %_17.0 = extractvalue { {}*, [3 x i64]* } %182, 0, !dbg !3098
    %_17.1 = extractvalue { {}*, [3 x i64]* } %182, 1, !dbg !3098
    br label %bb6, !dbg !3098
    %163 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 18), %bb2 ], !dbg !2875
    %164 = load i64, i64* %163, !dbg !2875
    %165 = add i64 %164, 1, !dbg !2875
    store i64 %165, i64* %163, !dbg !2875
    %166 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to { i8*, i64* }*, !dbg !2875
    %167 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %166, i32 0, i32 0, !dbg !2875
    %_18.0 = load i8*, i8** %167, align 8, !dbg !2875, !nonnull !4
    %168 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %166, i32 0, i32 1, !dbg !2875
    %_18.1 = load i64*, i64** %168, align 8, !dbg !2875, !nonnull !4
    %169 = bitcast { i8*, i64* }* %slot.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %169)
    %170 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %slot.dbg.spill.i, i32 0, i32 0
    store i8* %_18.0, i8** %170, align 8, !noalias !2876
    %171 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %slot.dbg.spill.i, i32 0, i32 1
    store i64* %_18.1, i64** %171, align 8, !noalias !2876
    %172 = bitcast i8* %_18.0 to {}*, !dbg !2880
    %173 = bitcast i64* %_18.1 to [3 x i64]*, !dbg !2880
    %174 = insertvalue { {}*, [3 x i64]* } undef, {}* %172, 0, !dbg !2881
    %175 = insertvalue { {}*, [3 x i64]* } %174, [3 x i64]* %173, 1, !dbg !2881
    %176 = bitcast { i8*, i64* }* %slot.dbg.spill.i to i8*, !dbg !2881
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %176), !dbg !2881
    %_17.0 = extractvalue { {}*, [3 x i64]* } %175, 0, !dbg !2882
    %_17.1 = extractvalue { {}*, [3 x i64]* } %175, 1, !dbg !2882
    br label %bb6, !dbg !2882

    bb4: ; preds = %bb2
    %184 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 17), %bb2 ], !dbg !3099
    %185 = load i64, i64* %184, !dbg !3099
    %186 = add i64 %185, 1, !dbg !3099
    store i64 %186, i64* %184, !dbg !3099
    %187 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, !dbg !3099
    %188 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_15 to i8*, !dbg !3099
    %189 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %187 to i8*, !dbg !3099
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %188, i8* align 8 %189, i64 8, i1 false), !dbg !3099
    %190 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_15 to i64*, !dbg !3100
    %191 = load i64, i64* %190, align 4, !dbg !3100
    %192 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %192)
    %193 = bitcast i64* %8 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %193)
    %194 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %194)
    store i64 %191, i64* %8, align 8
    %195 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to i8*
    %196 = bitcast i64* %8 to i8*
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %195, i8* align 8 %196, i64 8, i1 false)
    %197 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to %"core::result::Result<proc_macro::TokenStream, imp::LexError>"*, !dbg !3101
    %198 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i8*, !dbg !3101
    %199 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %197 to i8*, !dbg !3101
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %198, i8* align 4 %199, i64 8, i1 false), !dbg !3101
    %200 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i64*, !dbg !3102
    %201 = load i64, i64* %200, align 4, !dbg !3102
    %202 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i8*, !dbg !3102
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %202), !dbg !3102
    %203 = bitcast i64* %8 to i8*, !dbg !3102
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %203), !dbg !3102
    %204 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to i8*, !dbg !3102
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %204), !dbg !3102
    store i64 %201, i64* %10, align 8, !dbg !3100
    %205 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_14 to i8*, !dbg !3100
    %206 = bitcast i64* %10 to i8*, !dbg !3100
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %205, i8* align 8 %206, i64 8, i1 false), !dbg !3100
    br label %bb5, !dbg !3100
    %177 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 17), %bb2 ], !dbg !2883
    %178 = load i64, i64* %177, !dbg !2883
    %179 = add i64 %178, 1, !dbg !2883
    store i64 %179, i64* %177, !dbg !2883
    %180 = bitcast %"std::panicking::try::Data<imp::nightly_works::{{closure}}::{{closure}}, proc_macro::Span>"* %data to %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"*, !dbg !2883
    %181 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %_15 to i8*, !dbg !2883
    %182 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %180 to i8*, !dbg !2883
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %181, i8* align 8 %182, i64 4, i1 false), !dbg !2883
    %183 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %_15 to i32*, !dbg !2884
    %184 = load i32, i32* %183, align 4, !dbg !2884
    %185 = bitcast %"proc_macro::Span"* %7 to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %185)
    %186 = bitcast i32* %8 to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %186)
    %187 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %slot.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %187)
    store i32 %184, i32* %8, align 4
    %188 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %slot.i to i8*
    %189 = bitcast i32* %8 to i8*
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %188, i8* align 4 %189, i64 4, i1 false)
    %190 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %slot.i to %"proc_macro::Span"*, !dbg !2885
    %191 = bitcast %"proc_macro::Span"* %7 to i8*, !dbg !2885
    %192 = bitcast %"proc_macro::Span"* %190 to i8*, !dbg !2885
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %191, i8* align 4 %192, i64 4, i1 false), !dbg !2885
    %193 = bitcast %"proc_macro::Span"* %7 to i32*, !dbg !2886
    %194 = load i32, i32* %193, align 4, !dbg !2886
    %195 = bitcast %"proc_macro::Span"* %7 to i8*, !dbg !2886
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %195), !dbg !2886
    %196 = bitcast i32* %8 to i8*, !dbg !2886
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %196), !dbg !2886
    %197 = bitcast %"core::mem::manually_drop::ManuallyDrop<proc_macro::Span>"* %slot.i to i8*, !dbg !2886
    call void @llvm.lifetime.end.p0i8(i64 4, i8* %197), !dbg !2886
    store i32 %194, i32* %10, align 4, !dbg !2884
    %198 = bitcast %"proc_macro::Span"* %_14 to i8*, !dbg !2884
    %199 = bitcast i32* %10 to i8*, !dbg !2884
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %198, i8* align 4 %199, i64 4, i1 false), !dbg !2884
    br label %bb5, !dbg !2884

    bb5: ; preds = %bb4
    %207 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 20), %bb4 ], !dbg !3103
    %208 = load i64, i64* %207, !dbg !3103
    %209 = add i64 %208, 1, !dbg !3103
    store i64 %209, i64* %207, !dbg !3103
    %210 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Ok"*, !dbg !3103
    %211 = getelementptr inbounds %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Ok", %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Ok"* %210, i32 0, i32 1, !dbg !3103
    %212 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %211 to i8*, !dbg !3103
    %213 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_14 to i8*, !dbg !3103
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %212, i8* align 4 %213, i64 8, i1 false), !dbg !3103
    %214 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to i32*, !dbg !3103
    store i32 0, i32* %214, align 8, !dbg !3103
    br label %bb7, !dbg !3090
    %200 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 20), %bb4 ], !dbg !2887
    %201 = load i64, i64* %200, !dbg !2887
    %202 = add i64 %201, 1, !dbg !2887
    store i64 %202, i64* %200, !dbg !2887
    %203 = bitcast %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>"* %0 to %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>::Ok"*, !dbg !2887
    %204 = getelementptr inbounds %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>::Ok", %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>::Ok"* %203, i32 0, i32 1, !dbg !2887
    %205 = bitcast %"proc_macro::Span"* %204 to i8*, !dbg !2887
    %206 = bitcast %"proc_macro::Span"* %_14 to i8*, !dbg !2887
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %205, i8* align 4 %206, i64 4, i1 false), !dbg !2887
    %207 = bitcast %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>"* %0 to i32*, !dbg !2887
    store i32 0, i32* %207, align 8, !dbg !2887
    br label %bb7, !dbg !2874

    bb6: ; preds = %bb3
    %215 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 19), %bb3 ], !dbg !3104
    %216 = load i64, i64* %215, !dbg !3104
    %217 = add i64 %216, 1, !dbg !3104
    store i64 %217, i64* %215, !dbg !3104
    %218 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Err"*, !dbg !3104
    %219 = getelementptr inbounds %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Err", %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Err"* %218, i32 0, i32 1, !dbg !3104
    %220 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %219, i32 0, i32 0, !dbg !3104
    store {}* %_17.0, {}** %220, align 8, !dbg !3104
    %221 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %219, i32 0, i32 1, !dbg !3104
    store [3 x i64]* %_17.1, [3 x i64]** %221, align 8, !dbg !3104
    %222 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to i32*, !dbg !3104
    store i32 1, i32* %222, align 8, !dbg !3104
    br label %bb7, !dbg !3090
    %208 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 19), %bb3 ], !dbg !2888
    %209 = load i64, i64* %208, !dbg !2888
    %210 = add i64 %209, 1, !dbg !2888
    store i64 %210, i64* %208, !dbg !2888
    %211 = bitcast %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>"* %0 to %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>::Err"*, !dbg !2888
    %212 = getelementptr inbounds %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>::Err", %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>::Err"* %211, i32 0, i32 1, !dbg !2888
    %213 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %212, i32 0, i32 0, !dbg !2888
    store {}* %_17.0, {}** %213, align 8, !dbg !2888
    %214 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %212, i32 0, i32 1, !dbg !2888
    store [3 x i64]* %_17.1, [3 x i64]** %214, align 8, !dbg !2888
    %215 = bitcast %"core::result::Result<proc_macro::Span, alloc::boxed::Box<core::any::Any>>"* %0 to i32*, !dbg !2888
    store i32 1, i32* %215, align 8, !dbg !2888
    br label %bb7, !dbg !2874

    bb7: ; preds = %bb6, %bb5
    %223 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 22), %bb6 ], [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 21), %bb5 ], !dbg !3105
    %224 = load i64, i64* %223, !dbg !3105
    %225 = add i64 %224, 1, !dbg !3105
    store i64 %225, i64* %223, !dbg !3105
    %226 = load i64, i64* getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 23), !dbg !3105
    %227 = add i64 %226, 1, !dbg !3105
    store i64 %227, i64* getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 23), !dbg !3105
    ret void, !dbg !3105
    }
    %216 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 22), %bb6 ], [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 21), %bb5 ], !dbg !2889
    %217 = load i64, i64* %216, !dbg !2889
    %218 = add i64 %217, 1, !dbg !2889
    store i64 %218, i64* %216, !dbg !2889
    %219 = load i64, i64* getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 23), !dbg !2889
    %220 = add i64 %219, 1, !dbg !2889
    store i64 %220, i64* getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.27, i64 0, i64 23), !dbg !2889
    ret void, !dbg !2889
    }
  2. Amanieu created this gist Mar 19, 2020.
    521 changes: 521 additions & 0 deletions proc_macro2.ll
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,521 @@
    ; std::panicking::try
    ; Function Attrs: nonlazybind uwtable
    define void @_ZN3std9panicking3try17h798c4ca7bded36a6E(%"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* noalias nocapture sret dereferenceable(24), i64* noalias readonly align 8 dereferenceable(16) %f) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !2890 {
    start:
    %1 = alloca i8*, align 8
    %self.dbg.spill.i20 = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %self.dbg.spill.i20, metadata !2912, metadata !DIExpression()), !dbg !2919
    %self.dbg.spill.i17 = alloca i8**, align 8
    call void @llvm.dbg.declare(metadata i8*** %self.dbg.spill.i17, metadata !2931, metadata !DIExpression()), !dbg !2960
    %count.dbg.spill.i = alloca i64, align 8
    call void @llvm.dbg.declare(metadata i64* %count.dbg.spill.i, metadata !2961, metadata !DIExpression()), !dbg !2968
    %dst.dbg.spill.i = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %dst.dbg.spill.i, metadata !2967, metadata !DIExpression()), !dbg !2970
    %src.dbg.spill.i16 = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %src.dbg.spill.i16, metadata !2966, metadata !DIExpression()), !dbg !2971
    %slot.dbg.spill.i15 = alloca i64*, align 8
    call void @llvm.dbg.declare(metadata i64** %slot.dbg.spill.i15, metadata !2972, metadata !DIExpression()), !dbg !2977
    %self.dbg.spill.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %self.dbg.spill.i, metadata !2983, metadata !DIExpression()), !dbg !2985
    %src.dbg.spill.i = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %src.dbg.spill.i, metadata !2939, metadata !DIExpression()), !dbg !2986
    %tmp.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %tmp.i, metadata !2940, metadata !DIExpression()), !dbg !2987
    %slot.dbg.spill.i7 = alloca i64**, align 8
    call void @llvm.dbg.declare(metadata i64*** %slot.dbg.spill.i7, metadata !2946, metadata !DIExpression()), !dbg !2988
    %_2.i = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %2 = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    %3 = alloca i64, align 8
    %value.i = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    call void @llvm.dbg.declare(metadata %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i, metadata !2989, metadata !DIExpression()), !dbg !2994
    %4 = alloca i64, align 8
    %5 = alloca i64, align 8
    %f.dbg.spill.i = alloca i64*, align 8
    call void @llvm.dbg.declare(metadata i64** %f.dbg.spill.i, metadata !2957, metadata !DIExpression()), !dbg !2996
    %data.dbg.spill3.i2 = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2, metadata !2955, metadata !DIExpression()), !dbg !2997
    %data.dbg.spill2.i3 = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3, metadata !2953, metadata !DIExpression()), !dbg !2998
    %data.dbg.spill.i4 = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %data.dbg.spill.i4, metadata !2952, metadata !DIExpression()), !dbg !2999
    %_9.i = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %_8.i = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    %value.dbg.spill.i1 = alloca { {}*, [3 x i64]* }, align 8
    call void @llvm.dbg.declare(metadata { {}*, [3 x i64]* }* %value.dbg.spill.i1, metadata !2766, metadata !DIExpression()), !dbg !3000
    %6 = alloca { i8*, i64* }, align 8
    %obj.dbg.spill.i = alloca { {}*, [3 x i64]* }, align 8
    call void @llvm.dbg.declare(metadata { {}*, [3 x i64]* }* %obj.dbg.spill.i, metadata !3011, metadata !DIExpression()), !dbg !3013
    %data.dbg.spill3.i = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i, metadata !3010, metadata !DIExpression()), !dbg !3014
    %data.dbg.spill2.i = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, align 8
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i, metadata !3009, metadata !DIExpression()), !dbg !3015
    %payload.dbg.spill.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %payload.dbg.spill.i, metadata !3008, metadata !DIExpression()), !dbg !3016
    %data.dbg.spill.i = alloca i8*, align 8
    call void @llvm.dbg.declare(metadata i8** %data.dbg.spill.i, metadata !3007, metadata !DIExpression()), !dbg !3017
    %slot.dbg.spill.i = alloca { i8*, i64* }, align 8
    call void @llvm.dbg.declare(metadata { i8*, i64* }* %slot.dbg.spill.i, metadata !2791, metadata !DIExpression()), !dbg !3018
    %7 = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %8 = alloca i64, align 8
    %slot.i = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i, metadata !3020, metadata !DIExpression()), !dbg !3025
    %value.dbg.spill.i = alloca i64*, align 8
    call void @llvm.dbg.declare(metadata i64** %value.dbg.spill.i, metadata !3027, metadata !DIExpression()), !dbg !3032
    %9 = alloca i64*, align 8
    %10 = alloca i64, align 8
    %11 = alloca i32, align 4
    %data_ptr.dbg.spill = alloca i8*, align 8
    %f.dbg.spill = alloca i64*, align 8
    %_15 = alloca %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 4
    %_14 = alloca %"core::result::Result<proc_macro::TokenStream, imp::LexError>", align 4
    %data = alloca %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>", align 8
    br label %12

    12: ; preds = %start
    %13 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 0), %start ]
    %14 = load i64, i64* %13
    %15 = add i64 %14, 1
    store i64 %15, i64* %13
    store i64* %f, i64** %f.dbg.spill, align 8
    call void @llvm.dbg.declare(metadata i64** %f.dbg.spill, metadata !2892, metadata !DIExpression()), !dbg !3034
    call void @llvm.dbg.declare(metadata %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, metadata !2893, metadata !DIExpression()), !dbg !3035
    %16 = bitcast i64** %value.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %16)
    %17 = bitcast i64** %9 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %17)
    store i64* %f, i64** %value.dbg.spill.i, align 8, !noalias !3036
    store i64* %f, i64** %9, align 8, !dbg !3039, !noalias !3036
    %18 = load i64*, i64** %9, align 8, !dbg !3040, !noalias !3036, !nonnull !4
    %19 = bitcast i64** %value.dbg.spill.i to i8*, !dbg !3040
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %19), !dbg !3040
    %20 = bitcast i64** %9 to i8*, !dbg !3040
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %20), !dbg !3040
    br label %bb1, !dbg !3041

    bb1: ; preds = %12
    %21 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 1), %12 ], !dbg !3042
    %22 = load i64, i64* %21, !dbg !3042
    %23 = add i64 %22, 1, !dbg !3042
    store i64 %23, i64* %21, !dbg !3042
    %24 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to i64**, !dbg !3042
    store i64* %18, i64** %24, align 8, !dbg !3042
    %data_ptr = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to i8*, !dbg !3043
    store i8* %data_ptr, i8** %data_ptr.dbg.spill, align 8, !dbg !3043
    call void @llvm.dbg.declare(metadata i8** %data_ptr.dbg.spill, metadata !2909, metadata !DIExpression()), !dbg !3044
    %25 = bitcast i64* %4 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %25)
    %26 = bitcast i64* %5 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %26)
    %27 = bitcast i64** %f.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %27)
    %28 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %28)
    %29 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %29)
    %30 = bitcast i8** %data.dbg.spill.i4 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %30)
    %31 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %31)
    %32 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %32)
    store i8* %data_ptr, i8** %data.dbg.spill.i4, align 8
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3, align 8, !dbg !3045
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2, align 8, !dbg !3046
    %_7.i = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to i64**, !dbg !3047
    %33 = bitcast i64*** %slot.dbg.spill.i7 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %33)
    store i64** %_7.i, i64*** %slot.dbg.spill.i7, align 8
    %34 = bitcast i64*** %src.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %34)
    %35 = bitcast i8** %tmp.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %35)
    store i64** %_7.i, i64*** %src.dbg.spill.i, align 8
    %36 = bitcast i8** %1 to i8*, !dbg !3048
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %36), !dbg !3048
    %37 = bitcast i8** %1 to {}*, !dbg !3048
    %38 = load i8*, i8** %1, align 8, !dbg !3053
    %39 = bitcast i8** %1 to i8*, !dbg !3053
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %39), !dbg !3053
    br label %.noexc10, !dbg !3053

    .noexc10: ; preds = %bb1
    %40 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 2), %bb1 ], !dbg !3054
    %41 = load i64, i64* %40, !dbg !3054
    %42 = add i64 %41, 1, !dbg !3054
    store i64 %42, i64* %40, !dbg !3054
    store i8* %38, i8** %tmp.i, align 8, !dbg !3054
    %43 = bitcast i8*** %self.dbg.spill.i17 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %43)
    store i8** %tmp.i, i8*** %self.dbg.spill.i17, align 8
    %_4.i = bitcast i8** %tmp.i to i64**, !dbg !3055
    %44 = bitcast i64*** %self.dbg.spill.i20 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %44)
    store i64** %_4.i, i64*** %self.dbg.spill.i20, align 8
    %45 = bitcast i64*** %self.dbg.spill.i20 to i8*, !dbg !3056
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %45), !dbg !3056
    br label %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit", !dbg !3056

    "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit": ; preds = %.noexc10
    %46 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 3), %.noexc10 ], !dbg !3057
    %47 = load i64, i64* %46, !dbg !3057
    %48 = add i64 %47, 1, !dbg !3057
    store i64 %48, i64* %46, !dbg !3057
    %49 = bitcast i8*** %self.dbg.spill.i17 to i8*, !dbg !3057
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %49), !dbg !3057
    br label %_5.i.noexc, !dbg !3057

    _5.i.noexc: ; preds = %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit"
    %50 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 4), %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h3aa36a16b4891551E.exit" ]
    %51 = load i64, i64* %50
    %52 = add i64 %51, 1
    store i64 %52, i64* %50
    %53 = bitcast i64* %count.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %53)
    %54 = bitcast i64*** %dst.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %54)
    %55 = bitcast i64*** %src.dbg.spill.i16 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %55)
    store i64** %_7.i, i64*** %src.dbg.spill.i16, align 8
    store i64** %_4.i, i64*** %dst.dbg.spill.i, align 8
    store i64 1, i64* %count.dbg.spill.i, align 8
    %56 = bitcast i64** %_4.i to i8*, !dbg !3058
    %57 = bitcast i64** %_7.i to i8*, !dbg !3058
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %56, i8* align 8 %57, i64 8, i1 false), !dbg !3058
    %58 = bitcast i64* %count.dbg.spill.i to i8*, !dbg !3059
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %58), !dbg !3059
    %59 = bitcast i64*** %dst.dbg.spill.i to i8*, !dbg !3059
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %59), !dbg !3059
    %60 = bitcast i64*** %src.dbg.spill.i16 to i8*, !dbg !3059
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %60), !dbg !3059
    br label %.noexc12, !dbg !3059

    .noexc12: ; preds = %_5.i.noexc
    %61 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 5), %_5.i.noexc ], !dbg !3060
    %62 = load i64, i64* %61, !dbg !3060
    %63 = add i64 %62, 1, !dbg !3060
    store i64 %63, i64* %61, !dbg !3060
    %_7.i9 = load i8*, i8** %tmp.i, align 8, !dbg !3060
    %64 = bitcast i8** %self.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %64)
    store i8* %_7.i9, i8** %self.dbg.spill.i, align 8
    %_3.i = bitcast i8* %_7.i9 to i64*, !dbg !3061
    %65 = bitcast i64** %slot.dbg.spill.i15 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %65)
    store i64* %_3.i, i64** %slot.dbg.spill.i15, align 8, !noalias !3062
    %66 = bitcast i64** %slot.dbg.spill.i15 to i8*, !dbg !3065
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %66), !dbg !3065
    br label %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit", !dbg !3065

    "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit": ; preds = %.noexc12
    %67 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 6), %.noexc12 ], !dbg !3066
    %68 = load i64, i64* %67, !dbg !3066
    %69 = add i64 %68, 1, !dbg !3066
    store i64 %69, i64* %67, !dbg !3066
    %70 = bitcast i8** %self.dbg.spill.i to i8*, !dbg !3066
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %70), !dbg !3066
    br label %_ZN4core3ptr4read17h87039b83fe842100E.exit, !dbg !3066

    _ZN4core3ptr4read17h87039b83fe842100E.exit: ; preds = %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit"
    %71 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 7), %"_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h07d6920d6d98d12bE.exit" ], !dbg !3067
    %72 = load i64, i64* %71, !dbg !3067
    %73 = add i64 %72, 1, !dbg !3067
    store i64 %73, i64* %71, !dbg !3067
    %74 = bitcast i64*** %src.dbg.spill.i to i8*, !dbg !3067
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %74), !dbg !3067
    %75 = bitcast i8** %tmp.i to i8*, !dbg !3067
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %75), !dbg !3067
    br label %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit", !dbg !3067

    "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit": ; preds = %_ZN4core3ptr4read17h87039b83fe842100E.exit
    %76 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 8), %_ZN4core3ptr4read17h87039b83fe842100E.exit ], !dbg !3068
    %77 = load i64, i64* %76, !dbg !3068
    %78 = add i64 %77, 1, !dbg !3068
    store i64 %78, i64* %76, !dbg !3068
    %79 = bitcast i64*** %slot.dbg.spill.i7 to i8*, !dbg !3068
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %79), !dbg !3068
    br label %f.i.noexc, !dbg !3068

    f.i.noexc: ; preds = %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit"
    %80 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 9), %"_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$4take17hadd935f24105f1b0E.exit" ], !dbg !3069
    %81 = load i64, i64* %80, !dbg !3069
    %82 = add i64 %81, 1, !dbg !3069
    store i64 %82, i64* %80, !dbg !3069
    store i64* %_3.i, i64** %f.dbg.spill.i, align 8, !dbg !3069
    ; invoke proc_macro2::imp::proc_macro_parse::{{closure}}
    %83 = invoke i64 @"_ZN11proc_macro23imp16proc_macro_parse28_$u7b$$u7b$closure$u7d$$u7d$17h2474aa3ead5f269eE"(i64* noalias readonly align 8 dereferenceable(16) %_3.i)
    to label %.noexc unwind label %catch.i, !dbg !3070

    .noexc: ; preds = %f.i.noexc
    %84 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 10), %f.i.noexc ], !dbg !3070
    %85 = load i64, i64* %84, !dbg !3070
    %86 = add i64 %85, 1, !dbg !3070
    store i64 %86, i64* %84, !dbg !3070
    store i64 %83, i64* %5, align 8, !dbg !3070
    %87 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i8*, !dbg !3070
    %88 = bitcast i64* %5 to i8*, !dbg !3070
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %87, i8* align 8 %88, i64 8, i1 false), !dbg !3070
    %89 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i64*, !dbg !3071
    %90 = load i64, i64* %89, align 4, !dbg !3071
    %91 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %91)
    %92 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %92)
    %93 = bitcast i64* %3 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %93)
    %94 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %94)
    store i64 %90, i64* %3, align 8
    %95 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*
    %96 = bitcast i64* %3 to i8*
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %95, i8* align 8 %96, i64 8, i1 false)
    %97 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*, !dbg !3072
    %98 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*, !dbg !3072
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %97, i8* align 4 %98, i64 8, i1 false), !dbg !3072
    %99 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to %"core::result::Result<proc_macro::TokenStream, imp::LexError>"*, !dbg !3073
    %100 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %99 to i8*, !dbg !3073
    %101 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*, !dbg !3073
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %100, i8* align 4 %101, i64 8, i1 false), !dbg !3073
    %102 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to i64*, !dbg !3074
    %103 = load i64, i64* %102, align 4, !dbg !3074
    %104 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_2.i to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %104), !dbg !3074
    %105 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %2 to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %105), !dbg !3074
    %106 = bitcast i64* %3 to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %106), !dbg !3074
    %107 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %value.i to i8*, !dbg !3074
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %107), !dbg !3074
    br label %_ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit, !dbg !3074

    _ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit: ; preds = %.noexc
    %108 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 12), %.noexc ], !dbg !3071
    %109 = load i64, i64* %108, !dbg !3071
    %110 = add i64 %109, 1, !dbg !3071
    store i64 %110, i64* %108, !dbg !3071
    store i64 %103, i64* %4, align 8, !dbg !3071
    %111 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*, !dbg !3071
    %112 = bitcast i64* %4 to i8*, !dbg !3071
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %111, i8* align 8 %112, i64 8, i1 false), !dbg !3071
    %113 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, !dbg !3075
    %114 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %113 to i8*, !dbg !3075
    %115 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*, !dbg !3075
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %114, i8* align 4 %115, i64 8, i1 false), !dbg !3075
    %116 = bitcast i64* %4 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %116), !dbg !3076
    %117 = bitcast i64* %5 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %117), !dbg !3076
    %118 = bitcast i64** %f.dbg.spill.i to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %118), !dbg !3076
    %119 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i2 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %119), !dbg !3076
    %120 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i3 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %120), !dbg !3076
    %121 = bitcast i8** %data.dbg.spill.i4 to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %121), !dbg !3076
    %122 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_9.i to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %122), !dbg !3076
    %123 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_8.i to i8*, !dbg !3076
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %123), !dbg !3076
    br label %then.i, !dbg !3076

    then.i: ; preds = %_ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit
    %124 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 13), %_ZN3std9panicking3try7do_call17hcfe14690490a6707E.exit ], !dbg !3077
    %125 = load i64, i64* %124, !dbg !3077
    %126 = add i64 %125, 1, !dbg !3077
    store i64 %126, i64* %124, !dbg !3077
    br label %__rust_try.exit, !dbg !3077

    catch.i: ; preds = %f.i.noexc
    %127 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 11), %f.i.noexc ], !dbg !3077
    %128 = landingpad { i8*, i32 }
    catch i8* null, !dbg !3077
    %129 = load i64, i64* %127, !dbg !3077
    %130 = add i64 %129, 1, !dbg !3077
    store i64 %130, i64* %127, !dbg !3077
    %131 = extractvalue { i8*, i32 } %128, 0, !dbg !3077
    %132 = bitcast { {}*, [3 x i64]* }* %obj.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %132)
    %133 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %133)
    %134 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %134)
    %135 = bitcast i8** %payload.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %135)
    %136 = bitcast i8** %data.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %136)
    store i8* %data_ptr, i8** %data.dbg.spill.i, align 8
    store i8* %131, i8** %payload.dbg.spill.i, align 8
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i, align 8, !dbg !3078
    store %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data, %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i, align 8, !dbg !3079
    ; call std::panicking::try::cleanup
    %137 = call { {}*, [3 x i64]* } @_ZN3std9panicking3try7cleanup17h97268322f249355eE(i8* %131), !dbg !3080
    %obj.0.i = extractvalue { {}*, [3 x i64]* } %137, 0, !dbg !3080
    %obj.1.i = extractvalue { {}*, [3 x i64]* } %137, 1, !dbg !3080
    %138 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %obj.dbg.spill.i, i32 0, i32 0, !dbg !3080
    store {}* %obj.0.i, {}** %138, align 8, !dbg !3080
    %139 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %obj.dbg.spill.i, i32 0, i32 1, !dbg !3080
    store [3 x i64]* %obj.1.i, [3 x i64]** %139, align 8, !dbg !3080
    %140 = bitcast { {}*, [3 x i64]* }* %value.dbg.spill.i1 to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %140)
    %141 = bitcast { i8*, i64* }* %6 to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %141)
    %142 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %value.dbg.spill.i1, i32 0, i32 0
    store {}* %obj.0.i, {}** %142, align 8, !noalias !3081
    %143 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %value.dbg.spill.i1, i32 0, i32 1
    store [3 x i64]* %obj.1.i, [3 x i64]** %143, align 8, !noalias !3081
    %144 = bitcast { i8*, i64* }* %6 to { {}*, [3 x i64]* }*, !dbg !3085
    %145 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %144, i32 0, i32 0, !dbg !3085
    store {}* %obj.0.i, {}** %145, align 8, !dbg !3085, !noalias !3081
    %146 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %144, i32 0, i32 1, !dbg !3085
    store [3 x i64]* %obj.1.i, [3 x i64]** %146, align 8, !dbg !3085, !noalias !3081
    %147 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %6, i32 0, i32 0, !dbg !3086
    %148 = load i8*, i8** %147, align 8, !dbg !3086, !noalias !3081, !nonnull !4
    %149 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %6, i32 0, i32 1, !dbg !3086
    %150 = load i64*, i64** %149, align 8, !dbg !3086, !noalias !3081, !nonnull !4
    %151 = insertvalue { i8*, i64* } undef, i8* %148, 0, !dbg !3086
    %152 = insertvalue { i8*, i64* } %151, i64* %150, 1, !dbg !3086
    %153 = bitcast { {}*, [3 x i64]* }* %value.dbg.spill.i1 to i8*, !dbg !3086
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %153), !dbg !3086
    %154 = bitcast { i8*, i64* }* %6 to i8*, !dbg !3086
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %154), !dbg !3086
    %_8.0.i = extractvalue { i8*, i64* } %152, 0, !dbg !3087
    %_8.1.i = extractvalue { i8*, i64* } %152, 1, !dbg !3087
    %155 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to { i8*, i64* }*, !dbg !3088
    %156 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %155, i32 0, i32 0, !dbg !3088
    store i8* %_8.0.i, i8** %156, align 8, !dbg !3088
    %157 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %155, i32 0, i32 1, !dbg !3088
    store i64* %_8.1.i, i64** %157, align 8, !dbg !3088
    %158 = bitcast { {}*, [3 x i64]* }* %obj.dbg.spill.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %158), !dbg !3089
    %159 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill3.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %159), !dbg !3089
    %160 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"** %data.dbg.spill2.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %160), !dbg !3089
    %161 = bitcast i8** %payload.dbg.spill.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %161), !dbg !3089
    %162 = bitcast i8** %data.dbg.spill.i to i8*, !dbg !3089
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %162), !dbg !3089
    br label %__rust_try.exit, !dbg !3077

    __rust_try.exit: ; preds = %catch.i, %then.i
    %163 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 15), %catch.i ], [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 14), %then.i ]
    %164 = phi i32 [ 0, %then.i ], [ 1, %catch.i ]
    %165 = load i64, i64* %163, !dbg !3077
    %166 = add i64 %165, 1, !dbg !3077
    store i64 %166, i64* %163, !dbg !3077
    store i32 %164, i32* %11, align 4, !dbg !3077
    %_10 = load i32, i32* %11, align 4, !dbg !3077
    br label %bb2, !dbg !3077

    bb2: ; preds = %__rust_try.exit
    %167 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 16), %__rust_try.exit ], !dbg !3077
    %168 = load i64, i64* %167, !dbg !3077
    %169 = add i64 %168, 1, !dbg !3077
    store i64 %169, i64* %167, !dbg !3077
    %_9 = icmp eq i32 %_10, 0, !dbg !3077
    br i1 %_9, label %bb4, label %bb3, !dbg !3090

    bb3: ; preds = %bb2
    %170 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 18), %bb2 ], !dbg !3091
    %171 = load i64, i64* %170, !dbg !3091
    %172 = add i64 %171, 1, !dbg !3091
    store i64 %172, i64* %170, !dbg !3091
    %173 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to { i8*, i64* }*, !dbg !3091
    %174 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %173, i32 0, i32 0, !dbg !3091
    %_18.0 = load i8*, i8** %174, align 8, !dbg !3091, !nonnull !4
    %175 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %173, i32 0, i32 1, !dbg !3091
    %_18.1 = load i64*, i64** %175, align 8, !dbg !3091, !nonnull !4
    %176 = bitcast { i8*, i64* }* %slot.dbg.spill.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 16, i8* %176)
    %177 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %slot.dbg.spill.i, i32 0, i32 0
    store i8* %_18.0, i8** %177, align 8, !noalias !3092
    %178 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %slot.dbg.spill.i, i32 0, i32 1
    store i64* %_18.1, i64** %178, align 8, !noalias !3092
    %179 = bitcast i8* %_18.0 to {}*, !dbg !3096
    %180 = bitcast i64* %_18.1 to [3 x i64]*, !dbg !3096
    %181 = insertvalue { {}*, [3 x i64]* } undef, {}* %179, 0, !dbg !3097
    %182 = insertvalue { {}*, [3 x i64]* } %181, [3 x i64]* %180, 1, !dbg !3097
    %183 = bitcast { i8*, i64* }* %slot.dbg.spill.i to i8*, !dbg !3097
    call void @llvm.lifetime.end.p0i8(i64 16, i8* %183), !dbg !3097
    %_17.0 = extractvalue { {}*, [3 x i64]* } %182, 0, !dbg !3098
    %_17.1 = extractvalue { {}*, [3 x i64]* } %182, 1, !dbg !3098
    br label %bb6, !dbg !3098

    bb4: ; preds = %bb2
    %184 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 17), %bb2 ], !dbg !3099
    %185 = load i64, i64* %184, !dbg !3099
    %186 = add i64 %185, 1, !dbg !3099
    store i64 %186, i64* %184, !dbg !3099
    %187 = bitcast %"std::panicking::try::Data<imp::proc_macro_parse::{{closure}}, core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %data to %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"*, !dbg !3099
    %188 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_15 to i8*, !dbg !3099
    %189 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %187 to i8*, !dbg !3099
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %188, i8* align 8 %189, i64 8, i1 false), !dbg !3099
    %190 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %_15 to i64*, !dbg !3100
    %191 = load i64, i64* %190, align 4, !dbg !3100
    %192 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %192)
    %193 = bitcast i64* %8 to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %193)
    %194 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to i8*
    call void @llvm.lifetime.start.p0i8(i64 8, i8* %194)
    store i64 %191, i64* %8, align 8
    %195 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to i8*
    %196 = bitcast i64* %8 to i8*
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %195, i8* align 8 %196, i64 8, i1 false)
    %197 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to %"core::result::Result<proc_macro::TokenStream, imp::LexError>"*, !dbg !3101
    %198 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i8*, !dbg !3101
    %199 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %197 to i8*, !dbg !3101
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %198, i8* align 4 %199, i64 8, i1 false), !dbg !3101
    %200 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i64*, !dbg !3102
    %201 = load i64, i64* %200, align 4, !dbg !3102
    %202 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %7 to i8*, !dbg !3102
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %202), !dbg !3102
    %203 = bitcast i64* %8 to i8*, !dbg !3102
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %203), !dbg !3102
    %204 = bitcast %"core::mem::manually_drop::ManuallyDrop<core::result::Result<proc_macro::TokenStream, imp::LexError>>"* %slot.i to i8*, !dbg !3102
    call void @llvm.lifetime.end.p0i8(i64 8, i8* %204), !dbg !3102
    store i64 %201, i64* %10, align 8, !dbg !3100
    %205 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_14 to i8*, !dbg !3100
    %206 = bitcast i64* %10 to i8*, !dbg !3100
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %205, i8* align 8 %206, i64 8, i1 false), !dbg !3100
    br label %bb5, !dbg !3100

    bb5: ; preds = %bb4
    %207 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 20), %bb4 ], !dbg !3103
    %208 = load i64, i64* %207, !dbg !3103
    %209 = add i64 %208, 1, !dbg !3103
    store i64 %209, i64* %207, !dbg !3103
    %210 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Ok"*, !dbg !3103
    %211 = getelementptr inbounds %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Ok", %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Ok"* %210, i32 0, i32 1, !dbg !3103
    %212 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %211 to i8*, !dbg !3103
    %213 = bitcast %"core::result::Result<proc_macro::TokenStream, imp::LexError>"* %_14 to i8*, !dbg !3103
    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %212, i8* align 4 %213, i64 8, i1 false), !dbg !3103
    %214 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to i32*, !dbg !3103
    store i32 0, i32* %214, align 8, !dbg !3103
    br label %bb7, !dbg !3090

    bb6: ; preds = %bb3
    %215 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 19), %bb3 ], !dbg !3104
    %216 = load i64, i64* %215, !dbg !3104
    %217 = add i64 %216, 1, !dbg !3104
    store i64 %217, i64* %215, !dbg !3104
    %218 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Err"*, !dbg !3104
    %219 = getelementptr inbounds %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Err", %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>::Err"* %218, i32 0, i32 1, !dbg !3104
    %220 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %219, i32 0, i32 0, !dbg !3104
    store {}* %_17.0, {}** %220, align 8, !dbg !3104
    %221 = getelementptr inbounds { {}*, [3 x i64]* }, { {}*, [3 x i64]* }* %219, i32 0, i32 1, !dbg !3104
    store [3 x i64]* %_17.1, [3 x i64]** %221, align 8, !dbg !3104
    %222 = bitcast %"core::result::Result<core::result::Result<proc_macro::TokenStream, imp::LexError>, alloc::boxed::Box<core::any::Any>>"* %0 to i32*, !dbg !3104
    store i32 1, i32* %222, align 8, !dbg !3104
    br label %bb7, !dbg !3090

    bb7: ; preds = %bb6, %bb5
    %223 = phi i64* [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 22), %bb6 ], [ getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 21), %bb5 ], !dbg !3105
    %224 = load i64, i64* %223, !dbg !3105
    %225 = add i64 %224, 1, !dbg !3105
    store i64 %225, i64* %223, !dbg !3105
    %226 = load i64, i64* getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 23), !dbg !3105
    %227 = add i64 %226, 1, !dbg !3105
    store i64 %227, i64* getelementptr inbounds ([24 x i64], [24 x i64]* @__llvm_gcov_ctr.28, i64 0, i64 23), !dbg !3105
    ret void, !dbg !3105
    }
    405 changes: 405 additions & 0 deletions proc_macro2.s
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,405 @@
    .section .text._ZN3std9panicking3try17h2c4df7f3f9c79acfE,"ax",@progbits
    .globl _ZN3std9panicking3try17h2c4df7f3f9c79acfE
    .p2align 4, 0x90
    .type _ZN3std9panicking3try17h2c4df7f3f9c79acfE,@function
    _ZN3std9panicking3try17h2c4df7f3f9c79acfE:
    .Lfunc_begin27:
    .loc 27 240 0
    .cfi_startproc
    .cfi_personality 155, DW.ref.rust_eh_personality
    .cfi_lsda 27, .Lexception8
    subq $616, %rsp
    .cfi_def_cfa_offset 624
    movq %rdi, %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    movq %rdi, 280(%rsp)
    movq %rax, 272(%rsp)
    movq %rcx, 264(%rsp)
    movq 264(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $8, %rcx
    .Ltmp380:
    .file 28 "/rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/mem/manually_drop.rs"
    .loc 28 68 22 prologue_end
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq %rcx, 256(%rsp)
    .Ltmp381:
    .loc 28 0 22 is_stmt 0
    movq 256(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $16, %rcx
    .loc 27 271 20 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    .Ltmp382:
    .loc 27 273 20
    leaq 288(%rsp), %rax
    movq %rax, %rdx
    movq %rdx, 328(%rsp)
    movq %rdx, 480(%rsp)
    .Ltmp383:
    .loc 27 328 24
    movq %rax, 496(%rsp)
    .Ltmp384:
    .loc 27 329 24
    movq %rax, 504(%rsp)
    movq %rax, 544(%rsp)
    movq %rax, 560(%rsp)
    movq %rdx, 248(%rsp)
    movq %rax, 240(%rsp)
    movq %rcx, 232(%rsp)
    .loc 27 0 24 is_stmt 0
    movq 232(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $24, %rcx
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    leaq 552(%rsp), %rax
    movq %rax, 592(%rsp)
    movq %rax, 600(%rsp)
    movq %rax, 224(%rsp)
    movq %rcx, 216(%rsp)
    movq 216(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $32, %rcx
    .Ltmp385:
    .file 29 "/rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src/libcore/mem/maybe_uninit.rs"
    .loc 29 449 6 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq %rcx, 208(%rsp)
    .Ltmp386:
    .loc 29 0 6 is_stmt 0
    movq 208(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $40, %rcx
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq 240(%rsp), %rax
    movq %rax, 568(%rsp)
    movq 224(%rsp), %rdx
    movq %rdx, 576(%rsp)
    movq $1, 584(%rsp)
    movq %rcx, 200(%rsp)
    movq 200(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $48, %rcx
    .Ltmp387:
    .loc 29 497 31 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq %rcx, 192(%rsp)
    .loc 29 0 31 is_stmt 0
    movq 192(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $56, %rcx
    .loc 29 503 6 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq %rcx, 184(%rsp)
    .Ltmp388:
    .loc 29 0 6 is_stmt 0
    movq 184(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $64, %rcx
    .loc 4 630 2 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq %rcx, 176(%rsp)
    .Ltmp389:
    .loc 4 0 2 is_stmt 0
    movq 176(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $72, %rcx
    .loc 28 112 6 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq %rcx, 168(%rsp)
    .Ltmp390:
    .loc 28 0 6 is_stmt 0
    movq 168(%rsp), %rax
    .Ltmp391:
    .loc 27 331 40 is_stmt 1
    movq (%rax), %rcx
    addq $1, %rcx
    movq %rcx, (%rax)
    leaq __llvm_gcov_ctr.27+88(%rip), %rax
    leaq __llvm_gcov_ctr.27+80(%rip), %rcx
    .Ltmp377:
    movq %rax, 160(%rsp)
    movq %rcx, 152(%rsp)
    callq _ZN11proc_macro23imp13nightly_works28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h918411ad0b79ae9fE
    .Ltmp378:
    movq 152(%rsp), %rcx
    movl %eax, 148(%rsp)
    movq %rcx, 136(%rsp)
    jmp .LBB27_11
    .LBB27_11:
    .loc 27 0 40 is_stmt 0
    movq 136(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $96, %rcx
    .loc 27 331 40
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movl 148(%rsp), %esi
    movl %esi, 512(%rsp)
    movl 512(%rsp), %edi
    movl %edi, 472(%rsp)
    .loc 27 331 22
    movl 472(%rsp), %edi
    movl %edi, 524(%rsp)
    movl 524(%rsp), %edi
    movl %edi, 520(%rsp)
    .Ltmp392:
    .loc 28 69 24 is_stmt 1
    movl 520(%rsp), %edi
    movl %edi, 536(%rsp)
    .loc 28 69 9 is_stmt 0
    movl 536(%rsp), %edi
    movl %edi, 528(%rsp)
    .loc 28 70 6 is_stmt 1
    movl 528(%rsp), %edi
    movl %edi, 132(%rsp)
    movq %rcx, 120(%rsp)
    .Ltmp393:
    .loc 28 0 6 is_stmt 0
    movq 120(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $104, %rcx
    .loc 27 331 22 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movl 132(%rsp), %esi
    movl %esi, 516(%rsp)
    movl 516(%rsp), %edi
    movl %edi, 464(%rsp)
    .loc 27 331 13 is_stmt 0
    movl 464(%rsp), %edi
    movl %edi, 288(%rsp)
    movq %rcx, 112(%rsp)
    .Ltmp394:
    .loc 27 0 13
    movq 112(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $112, %rcx
    xorl %edx, %edx
    .loc 27 274 15 is_stmt 1
    movq (%rax), %rsi
    addq $1, %rsi
    movq %rsi, (%rax)
    movq %rcx, 104(%rsp)
    movl %edx, 100(%rsp)
    jmp .LBB27_15
    .LBB27_14:
    .loc 27 0 15 is_stmt 0
    movq 160(%rsp), %rcx
    movl $1, %esi
    .Ltmp379:
    leaq __llvm_gcov_ctr.27(%rip), %rdi
    addq $120, %rdi
    .loc 27 274 15
    movq (%rcx), %r8
    addq $1, %r8
    movq %r8, (%rcx)
    movq 248(%rsp), %rcx
    movq %rcx, 384(%rsp)
    movq %rax, 392(%rsp)
    leaq 288(%rsp), %r8
    .Ltmp395:
    .loc 27 341 24 is_stmt 1
    movq %r8, 400(%rsp)
    .Ltmp396:
    .loc 27 342 24
    movq %r8, 408(%rsp)
    .Ltmp397:
    .loc 27 343 23
    movq _ZN3std9panicking3try7cleanup17h97268322f249355eE@GOTPCREL(%rip), %r8
    movq %rdi, 88(%rsp)
    movq %rax, %rdi
    movl %esi, 84(%rsp)
    movq %rdx, 72(%rsp)
    callq *%r8
    movq %rax, 416(%rsp)
    movq %rdx, 424(%rsp)
    movq %rax, 448(%rsp)
    movq %rdx, 456(%rsp)
    .Ltmp398:
    .loc 28 69 9
    movq %rax, 432(%rsp)
    movq %rdx, 440(%rsp)
    .loc 28 70 6
    movq 432(%rsp), %rax
    movq 440(%rsp), %rcx
    .Ltmp399:
    .loc 27 344 13
    movq %rax, 288(%rsp)
    movq %rcx, 296(%rsp)
    movq 88(%rsp), %rax
    movl 84(%rsp), %esi
    movq %rax, 104(%rsp)
    movl %esi, 100(%rsp)
    .Ltmp400:
    .LBB27_15:
    .loc 27 0 13 is_stmt 0
    movl 100(%rsp), %eax
    movq 104(%rsp), %rcx
    leaq __llvm_gcov_ctr.27(%rip), %rdx
    addq $128, %rdx
    .loc 27 274 15 is_stmt 1
    movq (%rcx), %rsi
    addq $1, %rsi
    movq %rsi, (%rcx)
    movl %eax, 336(%rsp)
    movl 336(%rsp), %eax
    movl %eax, 68(%rsp)
    movq %rdx, 56(%rsp)
    .loc 27 0 15 is_stmt 0
    movq 56(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    movq %rcx, %rdx
    addq $136, %rdx
    addq $144, %rcx
    .loc 27 274 15
    movq (%rax), %rsi
    addq $1, %rsi
    movq %rsi, (%rax)
    movl 68(%rsp), %edi
    cmpl $0, %edi
    movq %rcx, 48(%rsp)
    movq %rdx, 40(%rsp)
    .loc 27 274 12
    je .LBB27_18
    .loc 27 0 12
    movq 48(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $152, %rcx
    .loc 27 277 38 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq 288(%rsp), %rax
    movq 296(%rsp), %rdx
    movq %rax, 368(%rsp)
    movq %rdx, 376(%rsp)
    movq %rax, 32(%rsp)
    movq %rdx, 24(%rsp)
    movq %rcx, 16(%rsp)
    .loc 27 277 13 is_stmt 0
    jmp .LBB27_20
    .LBB27_18:
    .loc 27 0 13
    movq 40(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $160, %rcx
    .loc 27 275 37 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movl 288(%rsp), %esi
    movl %esi, 312(%rsp)
    .loc 27 275 12 is_stmt 0
    movl 312(%rsp), %esi
    movl %esi, 356(%rsp)
    movl 356(%rsp), %esi
    movl %esi, 352(%rsp)
    .Ltmp401:
    .loc 28 87 9 is_stmt 1
    movl 352(%rsp), %esi
    movl %esi, 360(%rsp)
    .loc 28 88 6
    movl 360(%rsp), %esi
    .Ltmp402:
    .loc 27 275 12
    movl %esi, 340(%rsp)
    movl 340(%rsp), %esi
    movl %esi, 304(%rsp)
    movq %rcx, 8(%rsp)
    .loc 27 0 12 is_stmt 0
    movq 8(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $168, %rcx
    .loc 27 275 9
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movl 304(%rsp), %esi
    movq 280(%rsp), %rax
    movl %esi, 4(%rax)
    movl $0, (%rax)
    movq %rcx, (%rsp)
    .loc 27 274 12 is_stmt 1
    jmp .LBB27_21
    .LBB27_20:
    .loc 27 0 12 is_stmt 0
    movq 16(%rsp), %rax
    leaq __llvm_gcov_ctr.27(%rip), %rcx
    addq $176, %rcx
    .loc 27 277 9 is_stmt 1
    movq (%rax), %rdx
    addq $1, %rdx
    movq %rdx, (%rax)
    movq 280(%rsp), %rax
    movq 32(%rsp), %rdx
    movq %rdx, 8(%rax)
    movq 24(%rsp), %rsi
    movq %rsi, 16(%rax)
    movl $1, (%rax)
    movq %rcx, (%rsp)
    .Ltmp403:
    .LBB27_21:
    .loc 27 0 9 is_stmt 0
    movq (%rsp), %rax
    .loc 27 347 2 is_stmt 1
    movq (%rax), %rcx
    addq $1, %rcx
    movq %rcx, (%rax)
    movq __llvm_gcov_ctr.27+184(%rip), %rax
    addq $1, %rax
    movq %rax, __llvm_gcov_ctr.27+184(%rip)
    movq 272(%rsp), %rax
    addq $616, %rsp
    .cfi_def_cfa_offset 8
    retq
    .Ltmp404:
    .Lfunc_end27:
    .size _ZN3std9panicking3try17h2c4df7f3f9c79acfE, .Lfunc_end27-_ZN3std9panicking3try17h2c4df7f3f9c79acfE
    .cfi_endproc
    .section .gcc_except_table,"a",@progbits
    .p2align 2
    GCC_except_table27:
    .Lexception8:
    .byte 255
    .byte 156
    .uleb128 .Lttbase0-.Lttbaseref0
    .Lttbaseref0:
    .byte 1
    .uleb128 .Lcst_end8-.Lcst_begin8
    .Lcst_begin8:
    .uleb128 .Ltmp377-.Lfunc_begin27
    .uleb128 .Ltmp378-.Ltmp377
    .uleb128 .Ltmp379-.Lfunc_begin27
    .byte 1
    .uleb128 .Ltmp378-.Lfunc_begin27
    .uleb128 .Lfunc_end27-.Ltmp378
    .byte 0
    .byte 0
    .Lcst_end8:
    .byte 1
    .byte 0
    .p2align 2
    .quad 0
    .Lttbase0:
    .p2align 2