Skip to content

Instantly share code, notes, and snippets.

@eddyb
Created June 15, 2016 12:22
Show Gist options
  • Save eddyb/ab2e6b1604897e1033f51badb4c4b9fb to your computer and use it in GitHub Desktop.
Save eddyb/ab2e6b1604897e1033f51badb4c4b9fb to your computer and use it in GitHub Desktop.
*** IR Dump Before Simplify the CFG ***
; Function Attrs: uwtable
define internal fastcc void @"_ZN57_$LT$syntax..util..small_vector..SmallVector$LT$T$GT$$GT$10expect_one17h7e7554a24e39b76cE"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* noalias nocapture dereferenceable(28), %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* noalias nocapture readonly dereferenceable(32)) unnamed_addr #0 personality i32 (...)* @__CxxFrameHandler3 {
entry-block:
%_x.i.i7 = alloca %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", align 4
%self.i.sroa.4 = alloca [7 x i32], align 4
%_x.i.i = alloca %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", align 4
%self = alloca %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", align 4
%v = alloca %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", align 4
%temp1 = alloca %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", align 4
%temp5.sroa.2 = alloca [7 x i32], align 4
%2 = bitcast %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %1 to i8*
%3 = bitcast %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %2, i32 32, i32 4, i1 false)
%4 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 0
%5 = load i32, i32* %4, align 4, !range !39
switch i32 %5, label %unreachable [
i32 0, label %bb2
i32 1, label %bb3
i32 2, label %bb5
]
bb2: ; preds = %entry-block
invoke fastcc void @_ZN3std9panicking11begin_panic17h0bf39f6d43ab9349E(i8* noalias nonnull readonly getelementptr inbounds ([46 x i8], [46 x i8]* @str22285, i32 0, i32 0), i32 46, { %str_slice, i32 }* noalias nonnull readonly dereferenceable(12) @"_ZN57_$LT$syntax..util..small_vector..SmallVector$LT$T$GT$$GT$10expect_one10_FILE_LINE17h181b5545c5455233E")
to label %unreachable unwind label %bb20
bb3: ; preds = %entry-block
%6 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%7 = bitcast [7 x i32]* %6 to i8*
%8 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %v to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %8, i8* %7, i32 28, i32 4, i1 false)
%9 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %temp1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %9, i8* %8, i32 28, i32 4, i1 false)
%10 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %10, i8* %9, i32 28, i32 4, i1 false)
br label %bb26
bb5: ; preds = %entry-block
%v1.sroa.0.0..sroa_idx = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 0
%v1.sroa.0.0.copyload = load i32, i32* %v1.sroa.0.0..sroa_idx, align 4
%v1.sroa.5.0..sroa_idx113 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 1
%v1.sroa.5.0.copyload = load i32, i32* %v1.sroa.5.0..sroa_idx113, align 4
%v1.sroa.9.0..sroa_idx114 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 2
%v1.sroa.9.0.copyload = load i32, i32* %v1.sroa.9.0..sroa_idx114, align 4
%11 = icmp eq i32 %v1.sroa.9.0.copyload, 1
br i1 %11, label %bb8, label %bb7
bb7: ; preds = %bb5
invoke fastcc void @_ZN3std9panicking11begin_panic17h0bf39f6d43ab9349E(i8* noalias nonnull readonly getelementptr inbounds ([46 x i8], [46 x i8]* @str22285, i32 0, i32 0), i32 46, { %str_slice, i32 }* noalias nonnull readonly dereferenceable(12) @"_ZN57_$LT$syntax..util..small_vector..SmallVector$LT$T$GT$$GT$10expect_one10_FILE_LINE17h1f6965e2125b4bcfE")
to label %unreachable unwind label %bb20
bb8: ; preds = %bb5
%12 = inttoptr i32 %v1.sroa.0.0.copyload to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*
%13 = icmp ne i32 %v1.sroa.0.0.copyload, 0
tail call void @llvm.assume(i1 %13), !noalias !12007
%14 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %12, i32 %v1.sroa.9.0.copyload
%15 = icmp eq i32 %v1.sroa.9.0.copyload, 0
br i1 %15, label %bb3.i, label %cond.i8
cond.i: ; preds = %bb3.i
%cleanuppad = cleanuppad within none []
%16 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %_x.i.i to i8*
call void @llvm.lifetime.start(i64 28, i8* %16)
%17 = icmp eq i32 %v1.sroa.9.0.copyload, 0
br i1 %17, label %normal-return.i2, label %bb7.i.i
bb7.i.i: ; preds = %.noexc.i1, %cond.i
%18 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %19, %.noexc.i1 ], [ %12, %cond.i ]
%19 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %18, i32 1
%20 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %18 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %16, i8* %20, i32 28, i32 4, i1 false)
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* nonnull %_x.i.i) [ "funclet"(token %cleanuppad) ]
to label %.noexc.i1 unwind label %clean_custom_.i5
.noexc.i1: ; preds = %bb7.i.i
%21 = icmp eq %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %19, %14
br i1 %21, label %normal-return.i2, label %bb7.i.i
normal-return.i2: ; preds = %.noexc.i1, %cond.i
call void @llvm.lifetime.end(i64 28, i8* %16)
switch i32 %v1.sroa.5.0.copyload, label %bb11.i.i.i.i3 [
i32 0, label %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit"
i32 488447261, label %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit"
]
bb11.i.i.i.i3: ; preds = %normal-return.i2
%22 = mul i32 %v1.sroa.5.0.copyload, 28
%23 = inttoptr i32 %v1.sroa.0.0.copyload to i8*
tail call void @__rust_deallocate(i8* %23, i32 %22, i32 4) #2 [ "funclet"(token %cleanuppad) ]
br label %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit"
clean_custom_.i5: ; preds = %bb7.i.i
%cleanuppad2.i4 = cleanuppad within %cleanuppad []
%24 = mul i32 %v1.sroa.5.0.copyload, 28
%25 = inttoptr i32 %v1.sroa.0.0.copyload to i8*
tail call void @__rust_deallocate(i8* %25, i32 %24, i32 4) #2 [ "funclet"(token %cleanuppad2.i4) ]
unreachable
"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit": ; preds = %normal-return.i2, %normal-return.i2, %bb11.i.i.i.i3
cleanupret from %cleanuppad unwind label %bb20
bb3.i: ; preds = %bb8
%self.i.sroa.4.0..sroa_cast121 = bitcast [7 x i32]* %self.i.sroa.4 to i8*
call void @llvm.lifetime.start(i64 28, i8* %self.i.sroa.4.0..sroa_cast121)
%self.i.sroa.4.4.temp5.sroa.2.0..sroa_cast110.sroa_cast = bitcast [7 x i32]* %temp5.sroa.2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %self.i.sroa.4.0..sroa_cast121, i8* %self.i.sroa.4.4.temp5.sroa.2.0..sroa_cast110.sroa_cast, i32 28, i32 4, i1 false)
invoke void @_ZN4core9panicking5panic17h907815f47e914305E({ %str_slice, %str_slice, i32 }* noalias nonnull readonly dereferenceable(20) @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap14_MSG_FILE_LINE17ha19a12f56981672dE")
to label %.noexc unwind label %cond.i
.noexc: ; preds = %bb3.i
unreachable
cond.i8: ; preds = %bb8
%26 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %12, i32 1
%temp5.sroa.2.4..sroa_cast = inttoptr i32 %v1.sroa.0.0.copyload to i8*
%temp5.sroa.2.4..sroa_cast111 = bitcast [7 x i32]* %temp5.sroa.2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %temp5.sroa.2.4..sroa_cast111, i8* %temp5.sroa.2.4..sroa_cast, i32 28, i32 4, i1 false)
%self.i.sroa.4.0..sroa_cast121123 = bitcast [7 x i32]* %self.i.sroa.4 to i8*
call void @llvm.lifetime.start(i64 28, i8* %self.i.sroa.4.0..sroa_cast121123)
%self.i.sroa.4.4.temp5.sroa.2.0..sroa_cast110.sroa_cast124 = bitcast [7 x i32]* %temp5.sroa.2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %self.i.sroa.4.0..sroa_cast121123, i8* %self.i.sroa.4.4.temp5.sroa.2.0..sroa_cast110.sroa_cast124, i32 28, i32 4, i1 false)
%self.i.sroa.4.4..sroa_cast = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %self.i.sroa.4.4..sroa_cast, i8* %self.i.sroa.4.0..sroa_cast121123, i32 28, i32 4, i1 false)
call void @llvm.lifetime.end(i64 28, i8* %self.i.sroa.4.0..sroa_cast121123)
%27 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %_x.i.i7 to i8*
call void @llvm.lifetime.start(i64 28, i8* %27)
%28 = icmp eq i32 %v1.sroa.9.0.copyload, 1
br i1 %28, label %normal-return.i11, label %bb7.i.i9
bb7.i.i9: ; preds = %.noexc.i10, %cond.i8
%29 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %30, %.noexc.i10 ], [ %26, %cond.i8 ]
%30 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %29, i32 1
%31 = bitcast %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %29 to i8*
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %27, i8* %31, i32 28, i32 4, i1 false)
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* nonnull %_x.i.i7)
to label %.noexc.i10 unwind label %clean_custom_.i14
.noexc.i10: ; preds = %bb7.i.i9
%32 = icmp eq %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %30, %14
br i1 %32, label %normal-return.i11, label %bb7.i.i9
normal-return.i11: ; preds = %.noexc.i10, %cond.i8
call void @llvm.lifetime.end(i64 28, i8* %27)
switch i32 %v1.sroa.5.0.copyload, label %bb11.i.i.i.i12 [
i32 0, label %bb26
i32 488447261, label %bb26
]
bb11.i.i.i.i12: ; preds = %normal-return.i11
%33 = mul i32 %v1.sroa.5.0.copyload, 28
%34 = inttoptr i32 %v1.sroa.0.0.copyload to i8*
tail call void @__rust_deallocate(i8* %34, i32 %33, i32 4) #2
br label %bb26
clean_custom_.i14: ; preds = %bb7.i.i9
%cleanuppad2.i13 = cleanuppad within none []
switch i32 %v1.sroa.5.0.copyload, label %bb11.i.i.i3.i15 [
i32 0, label %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16"
i32 488447261, label %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16"
]
bb11.i.i.i3.i15: ; preds = %clean_custom_.i14
%35 = mul i32 %v1.sroa.5.0.copyload, 28
%36 = inttoptr i32 %v1.sroa.0.0.copyload to i8*
tail call void @__rust_deallocate(i8* %36, i32 %35, i32 4) #2 [ "funclet"(token %cleanuppad2.i13) ]
br label %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16"
"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16": ; preds = %bb11.i.i.i3.i15, %clean_custom_.i14, %clean_custom_.i14
cleanupret from %cleanuppad2.i13 unwind label %bb20
bb12: ; preds = %bb11.i.i.i3.i, %normal-return.i, %normal-return.i, %bb25, %enum-iter-variant-1.i72, %bb21, %enum-iter-variant-2.i73, %normal-return.i86, %normal-return.i86, %bb11.i.i.i3.i87, %bb23, %bb22, %bb24
ret void
bb13: ; preds = %bb18
%37 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 0
%38 = load i32, i32* %37, align 4
switch i32 %38, label %"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit" [
i32 2, label %enum-iter-variant-2.i
i32 1, label %enum-iter-variant-1.i
]
enum-iter-variant-1.i: ; preds = %bb13
%39 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%40 = bitcast [7 x i32]* %39 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*
call fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %40) [ "funclet"(token %cleanuppad2) ]
br label %"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit"
enum-iter-variant-2.i: ; preds = %bb13
%41 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%42 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 1
%.idx.val.i.i19 = load i32, i32* %42, align 4
%43 = icmp eq i32 %.idx.val.i.i19, 488447261
br i1 %43, label %"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit", label %bb2.i.i24
bb2.i.i24: ; preds = %enum-iter-variant-2.i
%.idx2.i.i20 = bitcast [7 x i32]* %41 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"**
%.idx2.val.i.i21 = load %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*, %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"** %.idx2.i.i20, align 4
%44 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 2
%.idx3.val.i.i23 = load i32, i32* %44, align 4
%45 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %.idx2.val.i.i21, i32 %.idx3.val.i.i23
%46 = icmp sgt i32 %.idx3.val.i.i23, 0
br i1 %46, label %iter_vec_loop_body.i.i.i25, label %normal-return.i29
iter_vec_loop_body.i.i.i25: ; preds = %.noexc.i26, %bb2.i.i24
%47 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %48, %.noexc.i26 ], [ %.idx2.val.i.i21, %bb2.i.i24 ]
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %47) [ "funclet"(token %cleanuppad2) ]
to label %.noexc.i26 unwind label %clean_custom_.i32
.noexc.i26: ; preds = %iter_vec_loop_body.i.i.i25
%48 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %47, i32 1
%49 = icmp ult %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %48, %45
br i1 %49, label %iter_vec_loop_body.i.i.i25, label %normal-return.loopexit.i28
normal-return.loopexit.i28: ; preds = %.noexc.i26
%.pre.i27 = load i32, i32* %42, align 4
br label %normal-return.i29
normal-return.i29: ; preds = %normal-return.loopexit.i28, %bb2.i.i24
%50 = phi i32 [ %.pre.i27, %normal-return.loopexit.i28 ], [ %.idx.val.i.i19, %bb2.i.i24 ]
switch i32 %50, label %bb11.i.i.i3.i30 [
i32 0, label %"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit"
i32 488447261, label %"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit"
]
bb11.i.i.i3.i30: ; preds = %normal-return.i29
%51 = mul i32 %50, 28
%52 = bitcast [7 x i32]* %41 to i8**
%53 = load i8*, i8** %52, align 4
tail call void @__rust_deallocate(i8* %53, i32 %51, i32 4) #2 [ "funclet"(token %cleanuppad2) ]
br label %"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit"
clean_custom_.i32: ; preds = %iter_vec_loop_body.i.i.i25
%cleanuppad2.i31 = cleanuppad within %cleanuppad2 []
%54 = load i32, i32* %42, align 4
switch i32 %54, label %bb11.i.i.i.i33 [
i32 0, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i34"
i32 488447261, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i34"
]
bb11.i.i.i.i33: ; preds = %clean_custom_.i32
%55 = mul i32 %54, 28
%56 = bitcast [7 x i32]* %41 to i8**
%57 = load i8*, i8** %56, align 4
tail call void @__rust_deallocate(i8* %57, i32 %55, i32 4) #2 [ "funclet"(token %cleanuppad2.i31) ]
br label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i34"
"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i34": ; preds = %bb11.i.i.i.i33, %clean_custom_.i32, %clean_custom_.i32
cleanupret from %cleanuppad2.i31 unwind to caller
"_ZN104syntax..util..small_vector..SmallVectorRepr$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2221417he59ec9593290ae44E.exit": ; preds = %bb11.i.i.i3.i30, %normal-return.i29, %normal-return.i29, %enum-iter-variant-2.i, %bb13, %enum-iter-variant-1.i
cleanupret from %cleanuppad2 unwind to caller
bb15: ; preds = %bb18
%58 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%59 = bitcast [7 x i32]* %58 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*
call fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %59) [ "funclet"(token %cleanuppad2) ]
cleanupret from %cleanuppad2 unwind to caller
bb16: ; preds = %bb18
br i1 %temp15.0, label %bb17, label %bb16_cleanup_trampoline_bb1
bb17: ; preds = %bb16
%60 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%61 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 1
%.idx.val.i.i37 = load i32, i32* %61, align 4
%62 = icmp eq i32 %.idx.val.i.i37, 488447261
br i1 %62, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2065117h835a5572b9718032E.exit53", label %bb2.i.i42
bb2.i.i42: ; preds = %bb17
%.idx2.i.i38 = bitcast [7 x i32]* %60 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"**
%.idx2.val.i.i39 = load %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*, %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"** %.idx2.i.i38, align 4
%63 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 2
%.idx3.val.i.i41 = load i32, i32* %63, align 4
%64 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %.idx2.val.i.i39, i32 %.idx3.val.i.i41
%65 = icmp sgt i32 %.idx3.val.i.i41, 0
br i1 %65, label %iter_vec_loop_body.i.i.i43, label %normal-return.i47
iter_vec_loop_body.i.i.i43: ; preds = %.noexc.i44, %bb2.i.i42
%66 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %67, %.noexc.i44 ], [ %.idx2.val.i.i39, %bb2.i.i42 ]
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %66) [ "funclet"(token %cleanuppad2) ]
to label %.noexc.i44 unwind label %clean_custom_.i50
.noexc.i44: ; preds = %iter_vec_loop_body.i.i.i43
%67 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %66, i32 1
%68 = icmp ult %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %67, %64
br i1 %68, label %iter_vec_loop_body.i.i.i43, label %normal-return.loopexit.i46
normal-return.loopexit.i46: ; preds = %.noexc.i44
%.pre.i45 = load i32, i32* %61, align 4
br label %normal-return.i47
normal-return.i47: ; preds = %normal-return.loopexit.i46, %bb2.i.i42
%69 = phi i32 [ %.pre.i45, %normal-return.loopexit.i46 ], [ %.idx.val.i.i37, %bb2.i.i42 ]
switch i32 %69, label %bb11.i.i.i3.i48 [
i32 0, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2065117h835a5572b9718032E.exit53"
i32 488447261, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2065117h835a5572b9718032E.exit53"
]
bb11.i.i.i3.i48: ; preds = %normal-return.i47
%70 = mul i32 %69, 28
%71 = bitcast [7 x i32]* %60 to i8**
%72 = load i8*, i8** %71, align 4
tail call void @__rust_deallocate(i8* %72, i32 %70, i32 4) #2 [ "funclet"(token %cleanuppad2) ]
br label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2065117h835a5572b9718032E.exit53"
clean_custom_.i50: ; preds = %iter_vec_loop_body.i.i.i43
%cleanuppad2.i49 = cleanuppad within %cleanuppad2 []
%73 = load i32, i32* %61, align 4
switch i32 %73, label %bb11.i.i.i.i51 [
i32 0, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i52"
i32 488447261, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i52"
]
bb11.i.i.i.i51: ; preds = %clean_custom_.i50
%74 = mul i32 %73, 28
%75 = bitcast [7 x i32]* %60 to i8**
%76 = load i8*, i8** %75, align 4
tail call void @__rust_deallocate(i8* %76, i32 %74, i32 4) #2 [ "funclet"(token %cleanuppad2.i49) ]
br label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i52"
"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i52": ; preds = %bb11.i.i.i.i51, %clean_custom_.i50, %clean_custom_.i50
cleanupret from %cleanuppad2.i49 unwind to caller
"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2065117h835a5572b9718032E.exit53": ; preds = %bb17, %normal-return.i47, %normal-return.i47, %bb11.i.i.i3.i48
cleanupret from %cleanuppad2 unwind to caller
bb18: ; preds = %bb20, %bb11.i.i.i3.i66, %normal-return.i65, %normal-return.i65
%77 = load i32, i32* %4, align 4, !range !39
switch i32 %77, label %unreachable [
i32 0, label %bb13
i32 1, label %bb15
i32 2, label %bb16
]
bb2.i.i60: ; preds = %bb20
%78 = inttoptr i32 %v1.sroa.0.0 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*
%79 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %78, i32 %v1.sroa.9.0
%80 = icmp sgt i32 %v1.sroa.9.0, 0
br i1 %80, label %iter_vec_loop_body.i.i.i61, label %normal-return.i65
iter_vec_loop_body.i.i.i61: ; preds = %.noexc.i62, %bb2.i.i60
%81 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %82, %.noexc.i62 ], [ %78, %bb2.i.i60 ]
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %81) [ "funclet"(token %cleanuppad2) ]
to label %.noexc.i62 unwind label %clean_custom_.i68
.noexc.i62: ; preds = %iter_vec_loop_body.i.i.i61
%82 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %81, i32 1
%83 = icmp ult %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %82, %79
br i1 %83, label %iter_vec_loop_body.i.i.i61, label %normal-return.i65
normal-return.i65: ; preds = %.noexc.i62, %bb2.i.i60
switch i32 %v1.sroa.5.0, label %bb11.i.i.i3.i66 [
i32 0, label %bb18
i32 488447261, label %bb18
]
bb11.i.i.i3.i66: ; preds = %normal-return.i65
%84 = mul i32 %v1.sroa.5.0, 28
%85 = inttoptr i32 %v1.sroa.0.0 to i8*
tail call void @__rust_deallocate(i8* %85, i32 %84, i32 4) #2 [ "funclet"(token %cleanuppad2) ]
br label %bb18
clean_custom_.i68: ; preds = %iter_vec_loop_body.i.i.i61
%cleanuppad2.i67 = cleanuppad within %cleanuppad2 []
switch i32 %v1.sroa.5.0, label %bb11.i.i.i.i69 [
i32 0, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i70"
i32 488447261, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i70"
]
bb11.i.i.i.i69: ; preds = %clean_custom_.i68
%86 = mul i32 %v1.sroa.5.0, 28
%87 = inttoptr i32 %v1.sroa.0.0 to i8*
tail call void @__rust_deallocate(i8* %87, i32 %86, i32 4) #2 [ "funclet"(token %cleanuppad2.i67) ]
br label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i70"
"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i70": ; preds = %bb11.i.i.i.i69, %clean_custom_.i68, %clean_custom_.i68
cleanupret from %cleanuppad2.i67 unwind to caller
bb20: ; preds = %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16", %bb2, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit", %bb7
%v1.sroa.0.0 = phi i32 [ %v1.sroa.0.0.copyload, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16" ], [ %v1.sroa.0.0.copyload, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit" ], [ %v1.sroa.0.0.copyload, %bb7 ], [ undef, %bb2 ]
%v1.sroa.5.0 = phi i32 [ %v1.sroa.5.0.copyload, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16" ], [ %v1.sroa.5.0.copyload, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit" ], [ %v1.sroa.5.0.copyload, %bb7 ], [ undef, %bb2 ]
%v1.sroa.9.0 = phi i32 [ %v1.sroa.9.0.copyload, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16" ], [ %v1.sroa.9.0.copyload, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit" ], [ %v1.sroa.9.0.copyload, %bb7 ], [ undef, %bb2 ]
%temp15.0 = phi i1 [ false, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16" ], [ false, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit" ], [ false, %bb7 ], [ true, %bb2 ]
%temp17.0 = phi i1 [ true, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2223717h8c162337e196dd25E.exit4.i16" ], [ true, %"_ZN79std..vec..IntoIter$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$10drop.2223517h8c162337e196dd25E.exit" ], [ false, %bb7 ], [ true, %bb2 ]
%cleanuppad2 = cleanuppad within none []
%88 = icmp eq i32 %v1.sroa.5.0, 488447261
%or.cond = or i1 %temp17.0, %88
br i1 %or.cond, label %bb18, label %bb2.i.i60
bb21: ; preds = %bb26
%89 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 0
%90 = load i32, i32* %89, align 4
switch i32 %90, label %bb12 [
i32 2, label %enum-iter-variant-2.i73
i32 1, label %enum-iter-variant-1.i72
]
enum-iter-variant-1.i72: ; preds = %bb21
%91 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%92 = bitcast [7 x i32]* %91 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*
call fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %92)
br label %bb12
enum-iter-variant-2.i73: ; preds = %bb21
%93 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%94 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 1
%.idx.val.i.i76 = load i32, i32* %94, align 4
%95 = icmp eq i32 %.idx.val.i.i76, 488447261
br i1 %95, label %bb12, label %bb2.i.i81
bb2.i.i81: ; preds = %enum-iter-variant-2.i73
%.idx2.i.i77 = bitcast [7 x i32]* %93 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"**
%.idx2.val.i.i78 = load %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*, %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"** %.idx2.i.i77, align 4
%96 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 2
%.idx3.val.i.i80 = load i32, i32* %96, align 4
%97 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %.idx2.val.i.i78, i32 %.idx3.val.i.i80
%98 = icmp sgt i32 %.idx3.val.i.i80, 0
br i1 %98, label %iter_vec_loop_body.i.i.i82, label %normal-return.i86
iter_vec_loop_body.i.i.i82: ; preds = %.noexc.i83, %bb2.i.i81
%99 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %100, %.noexc.i83 ], [ %.idx2.val.i.i78, %bb2.i.i81 ]
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %99)
to label %.noexc.i83 unwind label %clean_custom_.i89
.noexc.i83: ; preds = %iter_vec_loop_body.i.i.i82
%100 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %99, i32 1
%101 = icmp ult %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %100, %97
br i1 %101, label %iter_vec_loop_body.i.i.i82, label %normal-return.loopexit.i85
normal-return.loopexit.i85: ; preds = %.noexc.i83
%.pre.i84 = load i32, i32* %94, align 4
br label %normal-return.i86
normal-return.i86: ; preds = %normal-return.loopexit.i85, %bb2.i.i81
%102 = phi i32 [ %.pre.i84, %normal-return.loopexit.i85 ], [ %.idx.val.i.i76, %bb2.i.i81 ]
switch i32 %102, label %bb11.i.i.i3.i87 [
i32 0, label %bb12
i32 488447261, label %bb12
]
bb11.i.i.i3.i87: ; preds = %normal-return.i86
%103 = mul i32 %102, 28
%104 = bitcast [7 x i32]* %93 to i8**
%105 = load i8*, i8** %104, align 4
tail call void @__rust_deallocate(i8* %105, i32 %103, i32 4) #2
br label %bb12
clean_custom_.i89: ; preds = %iter_vec_loop_body.i.i.i82
%cleanuppad2.i88 = cleanuppad within none []
%106 = load i32, i32* %94, align 4
switch i32 %106, label %bb11.i.i.i.i90 [
i32 0, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i91"
i32 488447261, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i91"
]
bb11.i.i.i.i90: ; preds = %clean_custom_.i89
%107 = mul i32 %106, 28
%108 = bitcast [7 x i32]* %93 to i8**
%109 = load i8*, i8** %108, align 4
tail call void @__rust_deallocate(i8* %109, i32 %107, i32 4) #2 [ "funclet"(token %cleanuppad2.i88) ]
br label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i91"
"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i91": ; preds = %bb11.i.i.i.i90, %clean_custom_.i89, %clean_custom_.i89
cleanupret from %cleanuppad2.i88 unwind to caller
bb22: ; preds = %bb26
br i1 %temp16.0, label %bb23, label %bb12
bb23: ; preds = %bb22
%110 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%111 = bitcast [7 x i32]* %110 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*
call fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %111)
br label %bb12
bb24: ; preds = %bb26
br i1 %temp15.1, label %bb25, label %bb12
bb25: ; preds = %bb24
%112 = getelementptr inbounds %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2
%113 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 1
%.idx.val.i.i = load i32, i32* %113, align 4
%114 = icmp eq i32 %.idx.val.i.i, 488447261
br i1 %114, label %bb12, label %bb2.i.i
bb2.i.i: ; preds = %bb25
%.idx2.i.i = bitcast [7 x i32]* %112 to %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"**
%.idx2.val.i.i = load %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"*, %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"** %.idx2.i.i, align 4
%115 = getelementptr %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>", %"11.syntax::util::small_vector::SmallVector<syntax::codemap::Spanned<syntax::ast::StmtKind>>"* %self, i32 0, i32 0, i32 2, i32 2
%.idx3.val.i.i = load i32, i32* %115, align 4
%116 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %.idx2.val.i.i, i32 %.idx3.val.i.i
%117 = icmp sgt i32 %.idx3.val.i.i, 0
br i1 %117, label %iter_vec_loop_body.i.i.i, label %normal-return.i
iter_vec_loop_body.i.i.i: ; preds = %.noexc.i, %bb2.i.i
%118 = phi %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* [ %119, %.noexc.i ], [ %.idx2.val.i.i, %bb2.i.i ]
invoke fastcc void @"_ZN53syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$10drop.2065717h58f639ceaf490ce8E"(%"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %118)
to label %.noexc.i unwind label %clean_custom_.i
.noexc.i: ; preds = %iter_vec_loop_body.i.i.i
%119 = getelementptr inbounds %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>", %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %118, i32 1
%120 = icmp ult %"11.syntax::codemap::Spanned<syntax::ast::StmtKind>"* %119, %116
br i1 %120, label %iter_vec_loop_body.i.i.i, label %normal-return.loopexit.i
normal-return.loopexit.i: ; preds = %.noexc.i
%.pre.i = load i32, i32* %113, align 4
br label %normal-return.i
normal-return.i: ; preds = %normal-return.loopexit.i, %bb2.i.i
%121 = phi i32 [ %.pre.i, %normal-return.loopexit.i ], [ %.idx.val.i.i, %bb2.i.i ]
switch i32 %121, label %bb11.i.i.i3.i [
i32 0, label %bb12
i32 488447261, label %bb12
]
bb11.i.i.i3.i: ; preds = %normal-return.i
%122 = mul i32 %121, 28
%123 = bitcast [7 x i32]* %112 to i8**
%124 = load i8*, i8** %123, align 4
tail call void @__rust_deallocate(i8* %124, i32 %122, i32 4) #2
br label %bb12
clean_custom_.i: ; preds = %iter_vec_loop_body.i.i.i
%cleanuppad2.i = cleanuppad within none []
%125 = load i32, i32* %113, align 4
switch i32 %125, label %bb11.i.i.i.i [
i32 0, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i"
i32 488447261, label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i"
]
bb11.i.i.i.i: ; preds = %clean_custom_.i
%126 = mul i32 %125, 28
%127 = bitcast [7 x i32]* %112 to i8**
%128 = load i8*, i8** %127, align 4
tail call void @__rust_deallocate(i8* %128, i32 %126, i32 4) #2 [ "funclet"(token %cleanuppad2.i) ]
br label %"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i"
"_ZN74std..vec..Vec$LT$syntax..codemap..Spanned$LT$syntax..ast..StmtKind$GT$$GT$19drop_contents.2069217h835a5572b9718032E.exit.i": ; preds = %bb11.i.i.i.i, %clean_custom_.i, %clean_custom_.i
cleanupret from %cleanuppad2.i unwind to caller
bb26: ; preds = %bb11.i.i.i.i12, %normal-return.i11, %normal-return.i11, %bb3
%temp15.1 = phi i1 [ true, %bb3 ], [ false, %normal-return.i11 ], [ false, %normal-return.i11 ], [ false, %bb11.i.i.i.i12 ]
%temp16.0 = phi i1 [ false, %bb3 ], [ true, %normal-return.i11 ], [ true, %normal-return.i11 ], [ true, %bb11.i.i.i.i12 ]
%129 = load i32, i32* %4, align 4, !range !39
switch i32 %129, label %unreachable [
i32 0, label %bb21
i32 1, label %bb22
i32 2, label %bb24
]
unreachable: ; preds = %bb18, %bb2, %bb26, %bb7, %entry-block
unreachable
bb16_cleanup_trampoline_bb1: ; preds = %bb16
cleanupret from %cleanuppad2 unwind to caller
}
Assertion failed: isa<X>(Val) && "cast<Ty>() argument of incompatible type!", file C:\bot\slave\nightly-dist-rustc-win-msvc-32\build\src\llvm\include\llvm/Support/Casting.h, line 223
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment