Created
March 15, 2023 18:33
-
-
Save kubkon/139d11447ba5f4d311561748c37537cc to your computer and use it in GitHub Desktop.
Stage3 vs stage4 on x86_64-macos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Function Attrs: nounwind | |
define internal fastcc void @Sema.fieldPtr(ptr noalias nonnull writeonly %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2, ptr nonnull readonly align 4 %3, i32 %4, ptr nonnull readonly align 1 %5, i64 %6, ptr nonnull readonly align 4 %7, i1 %8) unnamed_addr #1 { | |
Entry: | |
%9 = alloca %Air, align 8 | |
%10 = alloca { { ptr, i64 }, i16, [6 x i8] }, align 8 | |
%.sroa.7.i = alloca [3 x i8], align 1 | |
%11 = alloca %mem.Allocator, align 8 | |
%12 = alloca { ptr, i16, [6 x i8] }, align 8 | |
%13 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%14 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%15 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%16 = alloca { ptr, i16, [6 x i8] }, align 8 | |
%17 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%18 = alloca { i16, i5, [1 x i8] }, align 2 | |
%19 = alloca { ptr, i16, [6 x i8] }, align 8 | |
%20 = alloca { i16, i5, [1 x i8] }, align 2 | |
%21 = alloca %type.Type, align 8 | |
%22 = alloca %29, align 8 | |
%23 = alloca { i32, i16, [2 x i8] }, align 8 | |
%24 = alloca { i32, i16, [2 x i8] }, align 4 | |
%25 = alloca { i32, i16, [2 x i8] }, align 8 | |
%26 = alloca { i32, i16, [2 x i8] }, align 4 | |
%27 = alloca %29, align 8 | |
%28 = alloca { { i32, i8, [3 x i8] }, i16, [2 x i8] }, align 4 | |
%29 = alloca { i32, i16, [2 x i8] }, align 8 | |
%30 = alloca { i32, i16, [2 x i8] }, align 4 | |
%31 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%32 = alloca %type.Type, align 8 | |
%33 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%34 = alloca %mem.Allocator, align 8 | |
%35 = alloca %type.Type, align 8 | |
%36 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%37 = alloca { i64, i8, [7 x i8] }, align 8 | |
%38 = alloca { { i32, i8, [3 x i8] }, i16, [2 x i8] }, align 4 | |
%39 = alloca { i32, i16, [2 x i8] }, align 8 | |
%40 = alloca { i32, i16, [2 x i8] }, align 4 | |
%41 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%42 = alloca %type.Type, align 8 | |
%43 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%44 = alloca %mem.Allocator, align 8 | |
%45 = alloca %type.Type, align 8 | |
%46 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%47 = alloca { i64, i8, [7 x i8] }, align 8 | |
%48 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%49 = alloca { { i32, i8, [3 x i8] }, i16, [2 x i8] }, align 4 | |
%50 = alloca { i32, i16, [2 x i8] }, align 8 | |
%51 = alloca { i32, i16, [2 x i8] }, align 4 | |
%52 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%53 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%54 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%55 = alloca %mem.Allocator, align 8 | |
%56 = alloca %type.Type, align 8 | |
%57 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%58 = alloca { %"hash_map.HashMapUnmanaged([]const u8,u32,hash_map.StringContext,80).KV", i16, [6 x i8] }, align 8 | |
%59 = alloca %97, align 8 | |
%60 = alloca { %"array_hash_map.ArrayHashMapUnmanaged([]const u8,void,array_hash_map.StringContext,true).Entry", i8, [7 x i8] }, align 8 | |
%61 = alloca %type.Type, align 8 | |
%62 = alloca %type.Type.Payload.Bits, align 8 | |
%63 = alloca { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, align 8 | |
%64 = alloca { i32, i16, [2 x i8] }, align 4 | |
%65 = alloca { i32, i16, [2 x i8] }, align 4 | |
%66 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%67 = alloca %97, align 8 | |
%68 = alloca { i32, i16, [2 x i8] }, align 8 | |
%69 = alloca { i32, i16, [2 x i8] }, align 8 | |
%70 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%71 = alloca { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, align 8 | |
%72 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%73 = alloca %type.Type.Payload.Pointer.Data, align 8 | |
%74 = alloca %mem.Allocator, align 8 | |
%75 = alloca { i32, i16, [2 x i8] }, align 8 | |
%76 = alloca { i32, i16, [2 x i8] }, align 8 | |
%77 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%78 = alloca { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, align 8 | |
%79 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%80 = alloca %type.Type.Payload.Pointer.Data, align 8 | |
%81 = alloca %mem.Allocator, align 8 | |
%82 = alloca %type.Type, align 8 | |
%83 = alloca { i32, i16, [2 x i8] }, align 4 | |
%84 = alloca %97, align 8 | |
%85 = alloca { i32, i16, [2 x i8] }, align 8 | |
%86 = alloca { i32, i16, [2 x i8] }, align 4 | |
%87 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%88 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%89 = alloca %type.Type, align 8 | |
%90 = alloca %29, align 8 | |
%91 = alloca %type.Type, align 8 | |
%.sroa.1.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %1, i64 120 | |
%.sroa.1.0.copyload.i.i = load ptr, ptr %.sroa.1.0..sroa_idx.i.i, align 8, !noalias !47228 | |
%.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %1, i64 128 | |
%.sroa.2.0.copyload.i.i = load i64, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !noalias !47228 | |
%.sroa.3.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %1, i64 136 | |
%.sroa.3.0.copyload.i.i = load i64, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !47228 | |
%92 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 6 | |
%.unpack.i.i = load ptr, ptr %92, align 8, !noalias !47228 | |
%.elt11.i.i = getelementptr inbounds %Sema, ptr %1, i64 0, i32 6, i32 0, i32 1 | |
%.unpack12.i.i = load i64, ptr %.elt11.i.i, align 8, !noalias !47228 | |
%93 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 7 | |
%.unpack15.i.i = load ptr, ptr %93, align 8, !noalias !47228 | |
%.elt16.i.i = getelementptr inbounds %Sema, ptr %1, i64 0, i32 7, i32 0, i32 1 | |
%.unpack17.i.i = load i64, ptr %.elt16.i.i, align 8, !noalias !47228 | |
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11), !noalias !47233 | |
call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9), !noalias !47233 | |
%94 = icmp ult i32 %4, 76 | |
br i1 %94, label %Then.i.i, label %Block.i.i | |
Then.i.i: ; preds = %Entry | |
%95 = zext i32 %4 to i64 | |
%96 = getelementptr inbounds [76 x %TypedValue], ptr @2772, i64 0, i64 %95 | |
br label %Sema.typeOf.exit | |
Block.i.i: ; preds = %Entry | |
%97 = shl nuw i64 %.sroa.3.0.copyload.i.i, 3 | |
%98 = getelementptr inbounds i8, ptr %.sroa.1.0.copyload.i.i, i64 %97 | |
store ptr %98, ptr %9, align 8, !noalias !47234 | |
%.sroa.22.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 8 | |
store ptr %.sroa.1.0.copyload.i.i, ptr %.sroa.22.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.33.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 16 | |
store i64 %.sroa.2.0.copyload.i.i, ptr %.sroa.33.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.44.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 24 | |
store i64 %.sroa.3.0.copyload.i.i, ptr %.sroa.44.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.55.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 32 | |
store ptr %.unpack.i.i, ptr %.sroa.55.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.66.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 40 | |
store i64 %.unpack12.i.i, ptr %.sroa.66.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.77.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 48 | |
store ptr %.unpack15.i.i, ptr %.sroa.77.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.88.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 56 | |
store i64 %.unpack17.i.i, ptr %.sroa.88.0..sroa_idx.i, align 8, !noalias !47234 | |
%99 = add i32 %4, -76 | |
call fastcc void @Air.typeOfIndex(ptr noalias %11, ptr %9, i32 %99), !noalias !47234 | |
br label %Sema.typeOf.exit | |
Sema.typeOf.exit: ; preds = %Block.i.i, %Then.i.i | |
%storemerge.in.i.i = phi ptr [ %96, %Then.i.i ], [ %11, %Block.i.i ] | |
%storemerge.i.i = load i64, ptr %storemerge.in.i.i, align 8, !noalias !47234 | |
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11), !noalias !47233 | |
call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9), !noalias !47233 | |
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) | |
call fastcc void @type.Type.zigTypeTagOrPoison(ptr noalias %9, i64 %storemerge.i.i) | |
%100 = load i16, ptr %9, align 2 | |
%101 = icmp eq i16 %100, 0 | |
br i1 %101, label %type.Type.zigTypeTag.exit, label %Else.i | |
Else.i: ; preds = %Sema.typeOf.exit | |
tail call fastcc void @builtin.default_panic(ptr @builtin.panic_messages.unwrap_error__anon_7066, i64 23) | |
unreachable | |
type.Type.zigTypeTag.exit: ; preds = %Sema.typeOf.exit | |
%102 = getelementptr inbounds { i16, i5, [1 x i8] }, ptr %9, i64 0, i32 1 | |
%103 = load i5, ptr %102, align 2 | |
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) | |
%cond = icmp eq i5 %103, 6 | |
br i1 %cond, label %Case, label %Else | |
common.ret: ; preds = %Sema.fail__anon_135183.exit, %Block145, %TryRet143, %Block139, %TryRet137, %Block133, %Then130, %TryRet128, %TryCont124, %TryRet123, %TryRet121, %TryRet119, %Else117, %Then112, %TryRet110, %Block106, %TryCont104, %TryRet103, %TryRet101, %TryRet99, %TryRet93, %Then89, %TryRet87, %TryCont83, %TryRet82, %TryRet80, %TryRet77, %TryRet75, %TryRet70, %Block68, %Else62, %TryRet56, %TryRet52, %TryRet50, %TryCont47, %TryRet46, %TryCont44, %TryRet43, %TryRet39, %TryRet37, %Sema.fail__anon_135111.exit, %TryCont34, %TryRet33, %TryCont31, %TryRet30, %TryRet26, %TryRet24, %TryRet22, %TryRet14, %TryCont8, %TryRet7, %Sema.Block.WipAnonDecl.deinit.exit, %Sema.fail__anon_135069.exit, %Sema.fail__anon_135062.exit | |
ret void | |
Else: ; preds = %type.Type.zigTypeTag.exit | |
%104 = load ptr, ptr %1, align 8 | |
store i64 %storemerge.i.i, ptr %90, align 8 | |
%.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %90, i64 8 | |
store ptr %104, ptr %.sroa.2.0..sroa_idx, align 8 | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) | |
%105 = getelementptr i8, ptr %2, i64 160 | |
%.val631 = load i32, ptr %105, align 8 | |
call fastcc void @Sema.errMsg__anon_203419(ptr noalias %9, ptr %1, i32 %.val631, ptr %3, ptr %90) | |
%106 = getelementptr inbounds { ptr, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%107 = load i16, ptr %106, align 8 | |
%.not.i = icmp eq i16 %107, 0 | |
br i1 %.not.i, label %TryCont.i, label %Sema.fail__anon_135062.exit | |
TryCont.i: ; preds = %Else | |
%108 = load ptr, ptr %9, align 8 | |
%109 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %108) | |
br label %Sema.fail__anon_135062.exit | |
Sema.fail__anon_135062.exit: ; preds = %TryCont.i, %Else | |
%common.ret.op.i = phi i16 [ %109, %TryCont.i ], [ %107, %Else ] | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) | |
%.sroa.1.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i, ptr %.sroa.1.0..sroa_idx, align 4 | |
br label %common.ret | |
Case: ; preds = %type.Type.zigTypeTag.exit | |
call fastcc void @type.Type.childType(ptr noalias %91, i64 %storemerge.i.i) | |
%110 = load i64, ptr %91, align 8 | |
%111 = icmp ult i64 %110, 68 | |
br i1 %111, label %type.Type.tag.exit.i, label %Else.i.i | |
Else.i.i: ; preds = %Case | |
%112 = inttoptr i64 %110 to ptr | |
%113 = load i64, ptr %112, align 8 | |
br label %type.Type.tag.exit.i | |
type.Type.tag.exit.i: ; preds = %Else.i.i, %Case | |
%common.ret.op.i.i = phi i64 [ %113, %Else.i.i ], [ %110, %Case ] | |
switch i64 %common.ret.op.i.i, label %Block2 [ | |
i64 75, label %type.Type.isSinglePointer.exit | |
i64 76, label %Then | |
i64 77, label %Then | |
i64 58, label %Then | |
i64 66, label %Then | |
i64 65, label %Then | |
] | |
type.Type.isSinglePointer.exit: ; preds = %type.Type.tag.exit.i | |
%114 = inttoptr i64 %110 to ptr | |
%115 = load i64, ptr %114, align 8 | |
%116 = icmp eq i64 %115, 75 | |
%spec.select.i.i = select i1 %116, ptr %114, ptr null | |
%117 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i, i64 0, i32 1, i32 10 | |
%118 = load i2, ptr %117, align 1 | |
%119 = icmp eq i2 %118, 0 | |
br i1 %119, label %Then, label %Block2 | |
Then: ; preds = %type.Type.isSinglePointer.exit, %type.Type.tag.exit.i, %type.Type.tag.exit.i, %type.Type.tag.exit.i, %type.Type.tag.exit.i, %type.Type.tag.exit.i | |
call fastcc void @type.Type.childType(ptr noalias %89, i64 %110) | |
%.pre = load i64, ptr %89, align 8 | |
br label %Block2 | |
Block2: ; preds = %Then, %type.Type.isSinglePointer.exit, %type.Type.tag.exit.i | |
%120 = phi i64 [ %.pre, %Then ], [ %110, %type.Type.isSinglePointer.exit ], [ %110, %type.Type.tag.exit.i ] | |
%.0.i727 = phi i1 [ true, %Then ], [ false, %type.Type.isSinglePointer.exit ], [ false, %type.Type.tag.exit.i ] | |
%121 = phi ptr [ %89, %Then ], [ %91, %type.Type.isSinglePointer.exit ], [ %91, %type.Type.tag.exit.i ] | |
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) | |
call fastcc void @type.Type.zigTypeTagOrPoison(ptr noalias %9, i64 %120) | |
%122 = load i16, ptr %9, align 2 | |
%123 = icmp eq i16 %122, 0 | |
br i1 %123, label %type.Type.zigTypeTag.exit484, label %Else.i483 | |
Else.i483: ; preds = %Block2 | |
tail call fastcc void @builtin.default_panic(ptr @builtin.panic_messages.unwrap_error__anon_7066, i64 23) | |
unreachable | |
type.Type.zigTypeTag.exit484: ; preds = %Block2 | |
%124 = getelementptr inbounds { i16, i5, [1 x i8] }, ptr %9, i64 0, i32 1 | |
%125 = load i5, ptr %124, align 2 | |
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) | |
%126 = zext i5 %125 to i32 | |
switch i32 %126, label %Block146 [ | |
i32 7, label %Case4 | |
i32 6, label %Case9 | |
i32 0, label %Case49 | |
i32 8, label %Case134 | |
i32 17, label %Case140 | |
] | |
Case4: ; preds = %type.Type.zigTypeTag.exit484 | |
%.not.i485 = icmp eq i64 %6, 3 | |
br i1 %.not.i485, label %Block.i, label %Else6 | |
Block.i: ; preds = %Case4 | |
%.not749 = icmp eq ptr %5, @958 | |
br i1 %.not749, label %Then5, label %Then4.i.preheader | |
Then4.i.preheader: ; preds = %Block.i | |
%127 = load i8, ptr %5, align 1 | |
%.not14.i = icmp eq i8 %127, 108 | |
br i1 %.not14.i, label %Loop.i, label %Else6 | |
Loop.i: ; preds = %Then4.i.preheader | |
%128 = getelementptr inbounds i8, ptr %5, i64 1 | |
%129 = load i8, ptr %128, align 1 | |
%.not14.i.1 = icmp eq i8 %129, 101 | |
br i1 %.not14.i.1, label %Loop.i.1, label %Else6 | |
Loop.i.1: ; preds = %Loop.i | |
%130 = getelementptr inbounds i8, ptr %5, i64 2 | |
%131 = load i8, ptr %130, align 1 | |
%.not14.i.2 = icmp eq i8 %131, 110 | |
br i1 %.not14.i.2, label %Then5, label %Else6 | |
Then5: ; preds = %Loop.i.1, %Block.i | |
%132 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%133 = load ptr, ptr %132, align 8, !noalias !47237 | |
%134 = getelementptr inbounds %Sema, ptr %133, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %134, i64 16, i1 false), !noalias !47240 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx = getelementptr inbounds i8, ptr %17, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx, i8 0, i64 16, i1 false), !noalias !47240 | |
%.sroa.2647.0..sroa_idx = getelementptr inbounds i8, ptr %88, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2647.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) | |
store ptr %2, ptr %88, align 8 | |
%.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %88, i64 40 | |
store i1 false, ptr %.sroa.3.0..sroa_idx, align 8 | |
%135 = tail call fastcc i64 @type.Type.arrayLen(i64 %120) | |
tail call void @llvm.experimental.noalias.scope.decl(metadata !47243) | |
%136 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%137 = ptrtoint ptr %136 to i64 | |
%138 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2647.0..sroa_idx, i64 16, i8 3, i64 %137) #37, !noalias !47246 | |
%.not.i.i.i = icmp eq ptr %138, null | |
br i1 %.not.i.i.i, label %TryRet, label %TryCont | |
Else6: ; preds = %Loop.i.1, %Loop.i, %Then4.i.preheader, %Case4 | |
%139 = load ptr, ptr %1, align 8 | |
store ptr %5, ptr %84, align 8 | |
%.fca.1.gep = getelementptr inbounds { ptr, i64 }, ptr %84, i64 0, i32 1 | |
store i64 %6, ptr %.fca.1.gep, align 8 | |
%140 = getelementptr inbounds %97, ptr %84, i64 0, i32 1 | |
store i64 %110, ptr %140, align 8 | |
%.sroa.2651.0..sroa_idx = getelementptr inbounds %97, ptr %84, i64 0, i32 1, i32 0, i32 1 | |
store ptr %139, ptr %.sroa.2651.0..sroa_idx, align 8 | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) | |
%141 = getelementptr i8, ptr %2, i64 160 | |
%.val627 = load i32, ptr %141, align 8 | |
call fastcc void @Sema.errMsg__anon_203423(ptr noalias %9, ptr %1, i32 %.val627, ptr %7, ptr %84) | |
%142 = getelementptr inbounds { ptr, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%143 = load i16, ptr %142, align 8 | |
%.not.i489 = icmp eq i16 %143, 0 | |
br i1 %.not.i489, label %TryCont.i491, label %Sema.fail__anon_135069.exit | |
TryCont.i491: ; preds = %Else6 | |
%144 = load ptr, ptr %9, align 8 | |
%145 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %144) | |
br label %Sema.fail__anon_135069.exit | |
Sema.fail__anon_135069.exit: ; preds = %TryCont.i491, %Else6 | |
%common.ret.op.i490 = phi i16 [ %145, %TryCont.i491 ], [ %143, %Else6 ] | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) | |
%.sroa.1158.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i490, ptr %.sroa.1158.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet: ; preds = %Then5 | |
%.sroa.1.0..sroa_idx.i = getelementptr inbounds i8, ptr %87, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i, align 8, !alias.scope !47243 | |
%sunkaddr = getelementptr inbounds i8, ptr %88, i64 40 | |
%146 = load i1, ptr %sunkaddr, align 8 | |
br i1 %146, label %Sema.Block.WipAnonDecl.deinit.exit, label %Then.i | |
Then.i: ; preds = %TryRet | |
%147 = getelementptr inbounds %Sema.Block.WipAnonDecl, ptr %88, i64 0, i32 1, i32 1 | |
%148 = load ptr, ptr %147, align 8 | |
%.not4.i.i = icmp eq ptr %148, null | |
br i1 %.not4.i.i, label %Sema.Block.WipAnonDecl.deinit.exit, label %Then.lr.ph.i.i | |
Then.lr.ph.i.i: ; preds = %Then.i | |
%.sroa.2.0..sroa_idx.i.i492 = getelementptr inbounds %Sema.Block.WipAnonDecl, ptr %88, i64 0, i32 1, i32 0, i32 1 | |
%.sroa.2.0.copyload.i.i495 = load ptr, ptr %.sroa.2.0..sroa_idx.i.i492, align 8 | |
%sunkaddr779 = getelementptr inbounds i8, ptr %88, i64 8 | |
%.sroa.0.0.copyload.i.i = load ptr, ptr %sunkaddr779, align 8 | |
br label %Then.i.i494 | |
Then.i.i494: ; preds = %mem.Allocator.free__anon_3793.exit.i.i, %Then.lr.ph.i.i | |
%.05.i.i = phi ptr [ %148, %Then.lr.ph.i.i ], [ %149, %mem.Allocator.free__anon_3793.exit.i.i ] | |
%149 = load ptr, ptr %.05.i.i, align 8 | |
%150 = getelementptr inbounds %"linked_list.SinglyLinkedList([]u8).Node", ptr %.05.i.i, i64 0, i32 1 | |
%.unpack.i.i493 = load ptr, ptr %150, align 8 | |
%.elt2.i.i = getelementptr inbounds %"linked_list.SinglyLinkedList([]u8).Node", ptr %.05.i.i, i64 0, i32 1, i32 1 | |
%.unpack3.i.i = load i64, ptr %.elt2.i.i, align 8 | |
%151 = icmp eq i64 %.unpack3.i.i, 0 | |
%152 = insertvalue { ptr, i64 } undef, ptr %.unpack.i.i493, 0 | |
%153 = insertvalue { ptr, i64 } %152, i64 %.unpack3.i.i, 1 | |
%common.ret.op.i.i.i.i = select i1 %151, { ptr, i64 } { ptr inttoptr (i64 -6148914691236517206 to ptr), i64 0 }, { ptr, i64 } %153 | |
%154 = extractvalue { ptr, i64 } %common.ret.op.i.i.i.i, 1 | |
%155 = icmp eq i64 %154, 0 | |
br i1 %155, label %mem.Allocator.free__anon_3793.exit.i.i, label %Block.i.i.i | |
Block.i.i.i: ; preds = %Then.i.i494 | |
%156 = ptrtoint ptr %136 to i64 | |
%157 = extractvalue { ptr, i64 } %common.ret.op.i.i.i.i, 0 | |
tail call void @llvm.memset.p0.i64(ptr align 1 %157, i8 -86, i64 %154, i1 false) | |
%sunkaddr780 = getelementptr inbounds i8, ptr %.sroa.2.0.copyload.i.i495, i64 16 | |
%158 = load ptr, ptr %sunkaddr780, align 8 | |
tail call fastcc void %158(ptr nonnull align 1 %.sroa.0.0.copyload.i.i, ptr nonnull align 1 %157, i64 %154, i8 0, i64 %156) #37 | |
br label %mem.Allocator.free__anon_3793.exit.i.i | |
mem.Allocator.free__anon_3793.exit.i.i: ; preds = %Block.i.i.i, %Then.i.i494 | |
%.not.i.i = icmp eq ptr %149, null | |
br i1 %.not.i.i, label %Sema.Block.WipAnonDecl.deinit.exit, label %Then.i.i494 | |
Sema.Block.WipAnonDecl.deinit.exit: ; preds = %mem.Allocator.free__anon_3793.exit.i.i, %Then.i, %TryRet | |
%.sroa.1151.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1151.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont: ; preds = %Then5 | |
store i64 77, ptr %138, align 8, !noalias !47243 | |
%159 = getelementptr inbounds %value.Value.Payload.U64, ptr %138, i64 0, i32 1 | |
store i64 %135, ptr %159, align 8, !noalias !47243 | |
%160 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %87, i64 0, i32 1 | |
store i16 0, ptr %160, align 8, !alias.scope !47243 | |
store ptr %138, ptr %87, align 8, !alias.scope !47243 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %86, ptr %88, ptr @3160, ptr %87, i32 0) | |
%161 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %86, i64 0, i32 1 | |
%162 = load i16, ptr %161, align 4 | |
%.not450 = icmp eq i16 %162, 0 | |
br i1 %.not450, label %TryCont8, label %TryRet7 | |
TryRet7: ; preds = %TryCont | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %88) | |
%.sroa.1154.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %162, ptr %.sroa.1154.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont8: ; preds = %TryCont | |
%163 = load i32, ptr %86, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %85, ptr %1, i32 %163) | |
%164 = load i64, ptr %85, align 8 | |
store i64 %164, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %88) | |
br label %common.ret | |
Case9: ; preds = %type.Type.zigTypeTag.exit484 | |
%165 = icmp ult i64 %120, 68 | |
br i1 %165, label %type.Type.tag.exit.i499, label %Else.i.i497 | |
Else.i.i497: ; preds = %Case9 | |
%166 = inttoptr i64 %120 to ptr | |
%167 = load i64, ptr %166, align 8 | |
br label %type.Type.tag.exit.i499 | |
type.Type.tag.exit.i499: ; preds = %Else.i.i497, %Case9 | |
%common.ret.op.i.i498 = phi i64 [ %167, %Else.i.i497 ], [ %120, %Case9 ] | |
switch i64 %common.ret.op.i.i498, label %Block146 [ | |
i64 75, label %type.Type.isSlice.exit | |
i64 82, label %Then10 | |
i64 83, label %Then10 | |
i64 59, label %Then10 | |
i64 60, label %Then10 | |
] | |
type.Type.isSlice.exit: ; preds = %type.Type.tag.exit.i499 | |
%168 = inttoptr i64 %120 to ptr | |
%169 = load i64, ptr %168, align 8 | |
%170 = icmp eq i64 %169, 75 | |
%spec.select.i.i500 = select i1 %170, ptr %168, ptr null | |
%171 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i500, i64 0, i32 1, i32 10 | |
%172 = load i2, ptr %171, align 1 | |
%173 = icmp eq i2 %172, -2 | |
br i1 %173, label %Then10, label %Block146 | |
Then10: ; preds = %type.Type.isSlice.exit, %type.Type.tag.exit.i499, %type.Type.tag.exit.i499, %type.Type.tag.exit.i499, %type.Type.tag.exit.i499 | |
br i1 %.0.i727, label %Then12, label %Block16 | |
Then12: ; preds = %Then10 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %83, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%174 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %83, i64 0, i32 1 | |
%175 = load i16, ptr %174, align 4 | |
%.not448 = icmp eq i16 %175, 0 | |
br i1 %.not448, label %TryCont15, label %TryRet14 | |
TryRet14: ; preds = %Then12 | |
%.sroa.1162.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %175, ptr %.sroa.1162.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont15: ; preds = %Then12 | |
%176 = load i32, ptr %83, align 4 | |
br label %Block16 | |
Block16: ; preds = %TryCont15, %Then10 | |
%..sroa.speculated = phi i64 [ %storemerge.i.i, %Then10 ], [ %110, %TryCont15 ] | |
%177 = phi i32 [ %4, %Then10 ], [ %176, %TryCont15 ] | |
%.not.i505 = icmp eq i64 %6, 3 | |
br i1 %.not.i505, label %Block.i508, label %Else36 | |
Block.i508: ; preds = %Block16 | |
%.not747 = icmp eq ptr %5, @json.stringify__anon_115004__anon_146671 | |
br i1 %.not747, label %Then20, label %Then4.i513.preheader | |
Then4.i513.preheader: ; preds = %Block.i508 | |
%178 = load i8, ptr %5, align 1 | |
%.not14.i512 = icmp eq i8 %178, 112 | |
br i1 %.not14.i512, label %Loop.i510, label %Block.i523 | |
Loop.i510: ; preds = %Then4.i513.preheader | |
%179 = getelementptr inbounds i8, ptr %5, i64 1 | |
%180 = load i8, ptr %179, align 1 | |
%.not14.i512.1 = icmp eq i8 %180, 116 | |
br i1 %.not14.i512.1, label %Loop.i510.1, label %Block.i523 | |
Loop.i510.1: ; preds = %Loop.i510 | |
%181 = getelementptr inbounds i8, ptr %5, i64 2 | |
%182 = load i8, ptr %181, align 1 | |
%.not14.i512.2 = icmp eq i8 %182, 114 | |
br i1 %.not14.i512.2, label %Then20, label %Block.i523 | |
Then20: ; preds = %Loop.i510.1, %Block.i508 | |
%183 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2 | |
%.sroa.0.0.copyload.i515 = load ptr, ptr %183, align 8, !noalias !47251 | |
%.sroa.2.0..sroa_idx.i516 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2, i32 1 | |
%.sroa.2.0.copyload.i517 = load ptr, ptr %.sroa.2.0..sroa_idx.i516, align 8, !noalias !47251 | |
%184 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%185 = ptrtoint ptr %184 to i64 | |
%186 = load ptr, ptr %.sroa.2.0.copyload.i517, align 8, !noalias !47254 | |
%187 = tail call fastcc ptr %186(ptr nonnull align 1 %.sroa.0.0.copyload.i515, i64 56, i8 3, i64 %185) #37, !noalias !47254 | |
%.not.i.i518 = icmp eq ptr %187, null | |
br i1 %.not.i.i518, label %TryRet22, label %TryCont23 | |
Block.i523: ; preds = %Loop.i510.1, %Loop.i510, %Then4.i513.preheader | |
%.not748 = icmp eq ptr %5, @958 | |
br i1 %.not748, label %Then35, label %Then4.i528.preheader | |
Then4.i528.preheader: ; preds = %Block.i523 | |
%.not14.i527 = icmp eq i8 %178, 108 | |
br i1 %.not14.i527, label %Loop.i525, label %Else36 | |
Loop.i525: ; preds = %Then4.i528.preheader | |
%188 = getelementptr inbounds i8, ptr %5, i64 1 | |
%189 = load i8, ptr %188, align 1 | |
%.not14.i527.1 = icmp eq i8 %189, 101 | |
br i1 %.not14.i527.1, label %Loop.i525.1, label %Else36 | |
Loop.i525.1: ; preds = %Loop.i525 | |
%190 = getelementptr inbounds i8, ptr %5, i64 2 | |
%191 = load i8, ptr %190, align 1 | |
%.not14.i527.2 = icmp eq i8 %191, 110 | |
br i1 %.not14.i527.2, label %Then35, label %Else36 | |
TryRet22: ; preds = %Then20 | |
%.sroa.1166.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1166.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont23: ; preds = %Then20 | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(56) %187, i8 -86, i64 56, i1 false), !noalias !47254 | |
call fastcc void @type.Type.slicePtrFieldType(ptr noalias %82, i64 %120, ptr %187) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %183, i64 16, i1 false) | |
%192 = load ptr, ptr %1, align 8 | |
%193 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %193, label %type.Type.tag.exit.i532, label %Else.i.i530 | |
Else.i.i530: ; preds = %TryCont23 | |
%194 = inttoptr i64 %..sroa.speculated to ptr | |
%195 = load i64, ptr %194, align 8 | |
br label %type.Type.tag.exit.i532 | |
type.Type.tag.exit.i532: ; preds = %Else.i.i530, %TryCont23 | |
%common.ret.op.i.i531 = phi i64 [ %195, %Else.i.i530 ], [ %..sroa.speculated, %TryCont23 ] | |
switch i64 %common.ret.op.i.i531, label %Else.i533 [ | |
i64 75, label %Case.i535 | |
i64 58, label %type.Type.ptrIsMutable.exit | |
i64 59, label %type.Type.ptrIsMutable.exit | |
i64 60, label %type.Type.ptrIsMutable.exit | |
i64 76, label %type.Type.ptrIsMutable.exit | |
i64 78, label %type.Type.ptrIsMutable.exit | |
i64 52, label %type.Type.ptrIsMutable.exit | |
i64 53, label %type.Type.ptrIsMutable.exit | |
i64 80, label %type.Type.ptrIsMutable.exit | |
i64 82, label %type.Type.ptrIsMutable.exit | |
i64 77, label %Case2.i | |
i64 79, label %Case2.i | |
i64 51, label %Case2.i | |
i64 81, label %Case2.i | |
i64 83, label %Case2.i | |
] | |
Else.i533: ; preds = %type.Type.tag.exit.i532 | |
unreachable | |
Case.i535: ; preds = %type.Type.tag.exit.i532 | |
%196 = inttoptr i64 %..sroa.speculated to ptr | |
%197 = load i64, ptr %196, align 8 | |
%198 = icmp eq i64 %197, 75 | |
%spec.select.i.i534 = select i1 %198, ptr %196, ptr null | |
%199 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i534, i64 0, i32 1, i32 8 | |
%200 = load i1, ptr %199, align 1 | |
br label %type.Type.ptrIsMutable.exit | |
Case2.i: ; preds = %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532 | |
br label %type.Type.ptrIsMutable.exit | |
type.Type.ptrIsMutable.exit: ; preds = %Case2.i, %Case.i535, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532 | |
%.0.i536 = phi i1 [ true, %Case2.i ], [ %200, %Case.i535 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ] | |
%201 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %201, label %type.Type.isVolatilePtr.exit, label %type.Type.tag.exit.i538 | |
type.Type.tag.exit.i538: ; preds = %type.Type.ptrIsMutable.exit | |
%202 = inttoptr i64 %..sroa.speculated to ptr | |
%203 = load i64, ptr %202, align 8 | |
%cond.i = icmp eq i64 %203, 75 | |
br i1 %cond.i, label %type.Type.castTag__anon_79638.exit.i, label %type.Type.isVolatilePtr.exit | |
type.Type.castTag__anon_79638.exit.i: ; preds = %type.Type.tag.exit.i538 | |
%204 = inttoptr i64 %..sroa.speculated to ptr | |
%205 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %204, i64 0, i32 1, i32 9 | |
%206 = load i1, ptr %205, align 1 | |
br label %type.Type.isVolatilePtr.exit | |
type.Type.isVolatilePtr.exit: ; preds = %type.Type.castTag__anon_79638.exit.i, %type.Type.tag.exit.i538, %type.Type.ptrIsMutable.exit | |
%common.ret.op.i539 = phi i1 [ %206, %type.Type.castTag__anon_79638.exit.i ], [ false, %type.Type.tag.exit.i538 ], [ false, %type.Type.ptrIsMutable.exit ] | |
%207 = tail call fastcc i4 @type.Type.ptrAddressSpace(i64 %..sroa.speculated) | |
%.sroa.0168.0.copyload = load i64, ptr %82, align 8 | |
store i64 %.sroa.0168.0.copyload, ptr %80, align 8 | |
%208 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 1 | |
%209 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 6 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %208, i8 0, i64 20, i1 false) | |
store i4 %207, ptr %209, align 4 | |
%210 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 4 | |
store <2 x i16> zeroinitializer, ptr %210, align 8 | |
%211 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 3 | |
store i32 -1, ptr %211, align 4 | |
%212 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 7 | |
store i1 false, ptr %212, align 1 | |
%213 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 8 | |
store i1 %.0.i536, ptr %213, align 2 | |
%214 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 9 | |
store i1 %common.ret.op.i539, ptr %214, align 1 | |
%215 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %80, i64 0, i32 10 | |
store i2 0, ptr %215, align 8 | |
call fastcc void @type.Type.ptr(ptr noalias %79, ptr %81, ptr %192, ptr %80) | |
%216 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %79, i64 0, i32 1 | |
%217 = load i16, ptr %216, align 8 | |
%.not443 = icmp eq i16 %217, 0 | |
br i1 %.not443, label %TryCont25, label %TryRet24 | |
TryRet24: ; preds = %type.Type.isVolatilePtr.exit | |
%.sroa.1172.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %217, ptr %.sroa.1172.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont25: ; preds = %type.Type.isVolatilePtr.exit | |
%218 = load i64, ptr %79, align 8 | |
call fastcc void @Sema.resolveDefinedValue(ptr noalias %78, ptr %1, ptr %2, ptr %3, i32 %177) | |
%219 = getelementptr inbounds { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, ptr %78, i64 0, i32 1 | |
%220 = load i16, ptr %219, align 8 | |
%.not444 = icmp eq i16 %220, 0 | |
br i1 %.not444, label %TryCont27, label %TryRet26 | |
TryRet26: ; preds = %TryCont25 | |
%.sroa.1176.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %220, ptr %.sroa.1176.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont27: ; preds = %TryCont25 | |
%.sroa.2180.0..sroa_idx = getelementptr inbounds i8, ptr %78, i64 8 | |
%.sroa.2180.0.copyload = load i8, ptr %.sroa.2180.0..sroa_idx, align 8 | |
%.not445 = icmp eq i8 %.sroa.2180.0.copyload, 0 | |
br i1 %.not445, label %Block32, label %Then28 | |
Then28: ; preds = %TryCont27 | |
%221 = ptrtoint ptr %184 to i64 | |
%.sroa.0178.0.copyload = load i64, ptr %78, align 8 | |
%.sroa.2184.8.copyload = load i64, ptr %121, align 8 | |
tail call void @llvm.experimental.noalias.scope.decl(metadata !47257) | |
%sunkaddr784 = getelementptr inbounds i8, ptr %1, i64 24 | |
%.sroa.0.0.copyload.i540 = load ptr, ptr %sunkaddr784, align 8, !noalias !47257 | |
%sunkaddr781 = getelementptr inbounds i8, ptr %1, i64 32 | |
%.sroa.2.0.copyload.i542 = load ptr, ptr %sunkaddr781, align 8, !noalias !47257 | |
%222 = load ptr, ptr %.sroa.2.0.copyload.i542, align 8, !noalias !47260 | |
%223 = tail call fastcc ptr %222(ptr nonnull align 1 %.sroa.0.0.copyload.i540, i64 32, i8 3, i64 %221) #37, !noalias !47260 | |
%.not.i.i.i543 = icmp eq ptr %223, null | |
br i1 %.not.i.i.i543, label %TryRet30, label %TryCont31 | |
TryRet30: ; preds = %Then28 | |
%.sroa.1.0..sroa_idx.i544 = getelementptr inbounds i8, ptr %77, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i544, align 8, !alias.scope !47257 | |
%.sroa.1187.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1187.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont31: ; preds = %Then28 | |
%224 = getelementptr inbounds i8, ptr %223, i64 8 | |
store i64 89, ptr %223, align 8, !noalias !47257 | |
store i64 %.sroa.0178.0.copyload, ptr %224, align 8, !noalias !47257 | |
%.sroa.2663.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %223, i64 0, i32 1, i32 1 | |
store i64 %.sroa.2184.8.copyload, ptr %.sroa.2663.0..sroa_idx, align 8, !noalias !47257 | |
%.sroa.3664.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %223, i64 0, i32 1, i32 2 | |
store i64 0, ptr %.sroa.3664.0..sroa_idx, align 8, !noalias !47257 | |
%225 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %77, i64 0, i32 1 | |
store i16 0, ptr %225, align 8, !alias.scope !47257 | |
store ptr %223, ptr %77, align 8, !alias.scope !47257 | |
call fastcc void @Sema.addConstant(ptr noalias %76, ptr %1, i64 %218, ptr %77) | |
%226 = load i64, ptr %76, align 8 | |
store i64 %226, ptr %0, align 4 | |
br label %common.ret | |
Block32: ; preds = %TryCont27 | |
%227 = tail call fastcc i16 @Sema.requireRuntimeBlock(ptr %1, ptr %2, ptr %3, ptr @2042) | |
%.not446 = icmp eq i16 %227, 0 | |
br i1 %.not446, label %TryCont34, label %TryRet33 | |
TryRet33: ; preds = %Block32 | |
%.sroa.1191.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %227, ptr %.sroa.1191.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont34: ; preds = %Block32 | |
call fastcc void @Sema.Block.addTyOp(ptr noalias %75, ptr %2, i8 -104, i64 %218, i32 %177) | |
%228 = load i64, ptr %75, align 8 | |
store i64 %228, ptr %0, align 4 | |
br label %common.ret | |
Then35: ; preds = %Loop.i525.1, %Block.i523 | |
%229 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 8 dereferenceable(16) %229, i64 16, i1 false) | |
%230 = load ptr, ptr %1, align 8 | |
%231 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %231, label %type.Type.tag.exit.i549, label %Else.i.i547 | |
Else.i.i547: ; preds = %Then35 | |
%232 = inttoptr i64 %..sroa.speculated to ptr | |
%233 = load i64, ptr %232, align 8 | |
br label %type.Type.tag.exit.i549 | |
type.Type.tag.exit.i549: ; preds = %Else.i.i547, %Then35 | |
%common.ret.op.i.i548 = phi i64 [ %233, %Else.i.i547 ], [ %..sroa.speculated, %Then35 ] | |
switch i64 %common.ret.op.i.i548, label %Else.i550 [ | |
i64 75, label %Case.i552 | |
i64 58, label %type.Type.ptrIsMutable.exit556 | |
i64 59, label %type.Type.ptrIsMutable.exit556 | |
i64 60, label %type.Type.ptrIsMutable.exit556 | |
i64 76, label %type.Type.ptrIsMutable.exit556 | |
i64 78, label %type.Type.ptrIsMutable.exit556 | |
i64 52, label %type.Type.ptrIsMutable.exit556 | |
i64 53, label %type.Type.ptrIsMutable.exit556 | |
i64 80, label %type.Type.ptrIsMutable.exit556 | |
i64 82, label %type.Type.ptrIsMutable.exit556 | |
i64 77, label %Case2.i553 | |
i64 79, label %Case2.i553 | |
i64 51, label %Case2.i553 | |
i64 81, label %Case2.i553 | |
i64 83, label %Case2.i553 | |
] | |
Else.i550: ; preds = %type.Type.tag.exit.i549 | |
unreachable | |
Case.i552: ; preds = %type.Type.tag.exit.i549 | |
%234 = inttoptr i64 %..sroa.speculated to ptr | |
%235 = load i64, ptr %234, align 8 | |
%236 = icmp eq i64 %235, 75 | |
%spec.select.i.i551 = select i1 %236, ptr %234, ptr null | |
%237 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i551, i64 0, i32 1, i32 8 | |
%238 = load i1, ptr %237, align 1 | |
br label %type.Type.ptrIsMutable.exit556 | |
Case2.i553: ; preds = %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549 | |
br label %type.Type.ptrIsMutable.exit556 | |
type.Type.ptrIsMutable.exit556: ; preds = %Case2.i553, %Case.i552, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549 | |
%.0.i554 = phi i1 [ true, %Case2.i553 ], [ %238, %Case.i552 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ] | |
%239 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %239, label %type.Type.isVolatilePtr.exit561, label %type.Type.tag.exit.i558 | |
type.Type.tag.exit.i558: ; preds = %type.Type.ptrIsMutable.exit556 | |
%240 = inttoptr i64 %..sroa.speculated to ptr | |
%241 = load i64, ptr %240, align 8 | |
%cond.i557 = icmp eq i64 %241, 75 | |
br i1 %cond.i557, label %type.Type.castTag__anon_79638.exit.i560, label %type.Type.isVolatilePtr.exit561 | |
type.Type.castTag__anon_79638.exit.i560: ; preds = %type.Type.tag.exit.i558 | |
%242 = inttoptr i64 %..sroa.speculated to ptr | |
%243 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %242, i64 0, i32 1, i32 9 | |
%244 = load i1, ptr %243, align 1 | |
br label %type.Type.isVolatilePtr.exit561 | |
type.Type.isVolatilePtr.exit561: ; preds = %type.Type.castTag__anon_79638.exit.i560, %type.Type.tag.exit.i558, %type.Type.ptrIsMutable.exit556 | |
%common.ret.op.i559 = phi i1 [ %244, %type.Type.castTag__anon_79638.exit.i560 ], [ false, %type.Type.tag.exit.i558 ], [ false, %type.Type.ptrIsMutable.exit556 ] | |
%245 = tail call fastcc i4 @type.Type.ptrAddressSpace(i64 %..sroa.speculated) | |
store i64 12, ptr %73, align 8 | |
%246 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 1 | |
%247 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 6 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %246, i8 0, i64 20, i1 false) | |
store i4 %245, ptr %247, align 4 | |
%248 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 4 | |
store <2 x i16> zeroinitializer, ptr %248, align 8 | |
%249 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 3 | |
store i32 -1, ptr %249, align 4 | |
%250 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 7 | |
store i1 false, ptr %250, align 1 | |
%251 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 8 | |
store i1 %.0.i554, ptr %251, align 2 | |
%252 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 9 | |
store i1 %common.ret.op.i559, ptr %252, align 1 | |
%253 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %73, i64 0, i32 10 | |
store i2 0, ptr %253, align 8 | |
call fastcc void @type.Type.ptr(ptr noalias %72, ptr %74, ptr %230, ptr %73) | |
%254 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %72, i64 0, i32 1 | |
%255 = load i16, ptr %254, align 8 | |
%.not437 = icmp eq i16 %255, 0 | |
br i1 %.not437, label %TryCont38, label %TryRet37 | |
Else36: ; preds = %Loop.i525.1, %Loop.i525, %Then4.i528.preheader, %Block16 | |
%256 = load ptr, ptr %1, align 8 | |
store ptr %5, ptr %67, align 8 | |
%.fca.1.gep225 = getelementptr inbounds { ptr, i64 }, ptr %67, i64 0, i32 1 | |
store i64 %6, ptr %.fca.1.gep225, align 8 | |
%257 = getelementptr inbounds %97, ptr %67, i64 0, i32 1 | |
store i64 %110, ptr %257, align 8 | |
%.sroa.2671.0..sroa_idx = getelementptr inbounds %97, ptr %67, i64 0, i32 1, i32 0, i32 1 | |
store ptr %256, ptr %.sroa.2671.0..sroa_idx, align 8 | |
%258 = getelementptr i8, ptr %2, i64 160 | |
%.val630 = load i32, ptr %258, align 8, !noalias !47265 | |
call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) | |
%259 = getelementptr i8, ptr %256, i64 696 | |
%.val.i.i = load ptr, ptr %259, align 8, !noalias !47268 | |
%260 = zext i32 %.val630 to i64 | |
%261 = add nuw nsw i64 %260, 1 | |
%262 = tail call i64 @llvm.ctlz.i64(i64 %261, i1 true), !range !1878 | |
%263 = xor i64 %262, 63 | |
%.neg.i.i.i.i.i = shl nsw i64 -1, %263 | |
%264 = add nsw i64 %.neg.i.i.i.i.i, %261 | |
%265 = getelementptr inbounds ptr, ptr %.val.i.i, i64 %263 | |
%266 = load ptr, ptr %265, align 8, !noalias !47268 | |
%267 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 1 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(16) %267, i64 16, i1 false), !noalias !47268 | |
%268 = load i64, ptr %7, align 4 | |
%.sroa.4.0..sroa_idx.i = getelementptr inbounds i8, ptr %7, i64 8 | |
%.sroa.4.0.copyload.i = load i7, ptr %.sroa.4.0..sroa_idx.i, align 4, !noalias !47268 | |
%.sroa.5.0..sroa_idx.i = getelementptr inbounds i8, ptr %7, i64 9 | |
%switch.i.i756 = icmp ult i7 %.sroa.4.0.copyload.i, 5 | |
%269 = getelementptr %Module.Decl, ptr %266, i64 %264, i32 5 | |
%.val3.i.i = load ptr, ptr %269, align 8, !noalias !47271 | |
%270 = getelementptr i8, ptr %.val3.i.i, i64 8 | |
%.val3.val.i.i = load ptr, ptr %270, align 8, !noalias !47271 | |
br i1 %switch.i.i756, label %Module.LazySrcLoc.toSrcLoc.exit.i, label %Case1.i.i | |
Case1.i.i: ; preds = %Else36 | |
%271 = getelementptr inbounds %Module.Decl, ptr %266, i64 %264, i32 11 | |
%272 = load i32, ptr %271, align 8, !noalias !47271 | |
br label %Module.LazySrcLoc.toSrcLoc.exit.i | |
Module.LazySrcLoc.toSrcLoc.exit.i: ; preds = %Case1.i.i, %Else36 | |
%.sink.i.i = phi i32 [ %272, %Case1.i.i ], [ 0, %Else36 ] | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.5.0..sroa_idx.i, i64 3, i1 false) | |
%.sroa.010.0.copyload.i = load ptr, ptr %11, align 8, !noalias !47274 | |
%.sroa.411.0..sroa_idx.i = getelementptr inbounds i8, ptr %11, i64 8 | |
%.sroa.411.0.copyload.i = load ptr, ptr %.sroa.411.0..sroa_idx.i, align 8, !noalias !47274 | |
%273 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%274 = ptrtoint ptr %273 to i64 | |
%275 = load ptr, ptr %.sroa.411.0.copyload.i, align 8, !noalias !47277 | |
%276 = tail call fastcc ptr %275(ptr nonnull align 1 %.sroa.010.0.copyload.i, i64 72, i8 3, i64 %274) #37, !noalias !47277 | |
%.not.i.i.i.i = icmp eq ptr %276, null | |
br i1 %.not.i.i.i.i, label %Module.ErrorMsg.create__anon_226000.exit.thread.i, label %TryCont.i.i | |
TryCont.i.i: ; preds = %Module.LazySrcLoc.toSrcLoc.exit.i | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(72) %276, i8 -86, i64 72, i1 false), !noalias !47277 | |
call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9), !noalias !47274 | |
call fastcc void @fmt.allocPrint__anon_226002(ptr noalias %9, ptr %11, ptr %67), !noalias !47282 | |
%277 = getelementptr inbounds { { ptr, i64 }, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%278 = load i16, ptr %277, align 8, !noalias !47282 | |
%.not.i.i.i757 = icmp eq i16 %278, 0 | |
br i1 %.not.i.i.i757, label %TryCont.i759, label %TryRet1.i.i | |
TryRet1.i.i: ; preds = %TryCont.i.i | |
%279 = ptrtoint ptr %273 to i64 | |
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9), !noalias !47274 | |
%280 = getelementptr i8, ptr %.sroa.411.0.copyload.i, i64 16 | |
%.val10.val.i.i = load ptr, ptr %280, align 8, !noalias !47274 | |
tail call fastcc void %.val10.val.i.i(ptr nonnull align 1 %.sroa.010.0.copyload.i, ptr nonnull align 1 %276, i64 72, i8 3, i64 %279) #37, !noalias !47274 | |
br label %Module.ErrorMsg.create__anon_226000.exit.thread.i | |
Module.ErrorMsg.create__anon_226000.exit.thread.i: ; preds = %TryRet1.i.i, %Module.LazySrcLoc.toSrcLoc.exit.i | |
%.sroa.49.0.ph.i = phi i16 [ 1, %Module.LazySrcLoc.toSrcLoc.exit.i ], [ %278, %TryRet1.i.i ] | |
call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) | |
br label %Sema.fail__anon_135111.exit | |
TryCont.i759: ; preds = %TryCont.i.i | |
%.fca.0.load.i.i.i = load ptr, ptr %9, align 8, !noalias !47282 | |
%.fca.1.gep.i.i.i = getelementptr inbounds { ptr, i64 }, ptr %9, i64 0, i32 1 | |
%.fca.1.load.i.i.i = load i64, ptr %.fca.1.gep.i.i.i, align 8, !noalias !47282 | |
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9), !noalias !47274 | |
store ptr %.val3.val.i.i, ptr %276, align 8, !noalias !47274 | |
%.sroa.416.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 8 | |
store i32 %.sink.i.i, ptr %.sroa.416.0..sroa.012.0..sroa_idx.i, align 8, !noalias !47274 | |
%.sroa.517.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 12 | |
store i64 %268, ptr %.sroa.517.0..sroa.012.0..sroa_idx.i, align 4 | |
%.sroa.618.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 20 | |
store i7 %.sroa.4.0.copyload.i, ptr %.sroa.618.0..sroa.012.0..sroa_idx.i, align 4, !noalias !47274 | |
%.sroa.719.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 21 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.719.0..sroa.012.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7.i, i64 3, i1 false) | |
%.sroa.820.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 24 | |
store ptr %.fca.0.load.i.i.i, ptr %.sroa.820.0..sroa.012.0..sroa_idx.i, align 8, !noalias !47274 | |
%.sroa.9.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 32 | |
store i64 %.fca.1.load.i.i.i, ptr %.sroa.9.0..sroa.012.0..sroa_idx.i, align 8, !noalias !47274 | |
%.sroa.10.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %276, i64 40 | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.10.0..sroa.012.0..sroa_idx.i, i8 0, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) | |
%281 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %276) | |
br label %Sema.fail__anon_135111.exit | |
Sema.fail__anon_135111.exit: ; preds = %TryCont.i759, %Module.ErrorMsg.create__anon_226000.exit.thread.i | |
%common.ret.op.i758 = phi i16 [ %281, %TryCont.i759 ], [ %.sroa.49.0.ph.i, %Module.ErrorMsg.create__anon_226000.exit.thread.i ] | |
%.sroa.1227.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i758, ptr %.sroa.1227.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet37: ; preds = %type.Type.isVolatilePtr.exit561 | |
%.sroa.1198.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %255, ptr %.sroa.1198.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont38: ; preds = %type.Type.isVolatilePtr.exit561 | |
%282 = load i64, ptr %72, align 8 | |
call fastcc void @Sema.resolveDefinedValue(ptr noalias %71, ptr %1, ptr %2, ptr %3, i32 %177) | |
%283 = getelementptr inbounds { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, ptr %71, i64 0, i32 1 | |
%284 = load i16, ptr %283, align 8 | |
%.not438 = icmp eq i16 %284, 0 | |
br i1 %.not438, label %TryCont40, label %TryRet39 | |
TryRet39: ; preds = %TryCont38 | |
%.sroa.1202.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %284, ptr %.sroa.1202.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont40: ; preds = %TryCont38 | |
%.sroa.2206.0..sroa_idx = getelementptr inbounds i8, ptr %71, i64 8 | |
%.sroa.2206.0.copyload = load i8, ptr %.sroa.2206.0..sroa_idx, align 8 | |
%.not439 = icmp eq i8 %.sroa.2206.0.copyload, 0 | |
br i1 %.not439, label %Block45, label %Then41 | |
Then41: ; preds = %TryCont40 | |
%.sroa.0204.0.copyload = load i64, ptr %71, align 8 | |
%.sroa.2211.8.copyload = load i64, ptr %121, align 8 | |
tail call void @llvm.experimental.noalias.scope.decl(metadata !47285) | |
%sunkaddr782 = getelementptr inbounds i8, ptr %1, i64 24 | |
%.sroa.0.0.copyload.i562 = load ptr, ptr %sunkaddr782, align 8, !noalias !47285 | |
%.sroa.2.0..sroa_idx.i563 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2, i32 1 | |
%.sroa.2.0.copyload.i564 = load ptr, ptr %.sroa.2.0..sroa_idx.i563, align 8, !noalias !47285 | |
%285 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%286 = ptrtoint ptr %285 to i64 | |
%287 = load ptr, ptr %.sroa.2.0.copyload.i564, align 8, !noalias !47288 | |
%288 = tail call fastcc ptr %287(ptr nonnull align 1 %.sroa.0.0.copyload.i562, i64 32, i8 3, i64 %286) #37, !noalias !47288 | |
%.not.i.i.i565 = icmp eq ptr %288, null | |
br i1 %.not.i.i.i565, label %TryRet43, label %TryCont44 | |
TryRet43: ; preds = %Then41 | |
%.sroa.1.0..sroa_idx.i566 = getelementptr inbounds i8, ptr %70, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i566, align 8, !alias.scope !47285 | |
%.sroa.1214.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1214.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont44: ; preds = %Then41 | |
%289 = getelementptr inbounds i8, ptr %288, i64 8 | |
store i64 89, ptr %288, align 8, !noalias !47285 | |
store i64 %.sroa.0204.0.copyload, ptr %289, align 8, !noalias !47285 | |
%.sroa.2668.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %288, i64 0, i32 1, i32 1 | |
store i64 %.sroa.2211.8.copyload, ptr %.sroa.2668.0..sroa_idx, align 8, !noalias !47285 | |
%.sroa.3669.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %288, i64 0, i32 1, i32 2 | |
store i64 1, ptr %.sroa.3669.0..sroa_idx, align 8, !noalias !47285 | |
%290 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %70, i64 0, i32 1 | |
store i16 0, ptr %290, align 8, !alias.scope !47285 | |
store ptr %288, ptr %70, align 8, !alias.scope !47285 | |
call fastcc void @Sema.addConstant(ptr noalias %69, ptr %1, i64 %282, ptr %70) | |
%291 = load i64, ptr %69, align 8 | |
store i64 %291, ptr %0, align 4 | |
br label %common.ret | |
Block45: ; preds = %TryCont40 | |
%292 = tail call fastcc i16 @Sema.requireRuntimeBlock(ptr %1, ptr %2, ptr %3, ptr @2042) | |
%.not440 = icmp eq i16 %292, 0 | |
br i1 %.not440, label %TryCont47, label %TryRet46 | |
TryRet46: ; preds = %Block45 | |
%.sroa.1218.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %292, ptr %.sroa.1218.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont47: ; preds = %Block45 | |
call fastcc void @Sema.Block.addTyOp(ptr noalias %68, ptr %2, i8 -105, i64 %282, i32 %177) | |
%293 = load i64, ptr %68, align 8 | |
store i64 %293, ptr %0, align 4 | |
br label %common.ret | |
Case49: ; preds = %type.Type.zigTypeTag.exit484 | |
call fastcc void @Sema.resolveConstValue(ptr noalias %66, ptr %1, ptr %2, ptr @2043, i32 %4, ptr @crypto.tls.Client.init__anon_99877__anon_130457, i64 0) | |
%294 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %66, i64 0, i32 1 | |
%295 = load i16, ptr %294, align 8 | |
%.not405 = icmp eq i16 %295, 0 | |
br i1 %.not405, label %TryCont51, label %TryRet50 | |
TryRet50: ; preds = %Case49 | |
%.sroa.1231.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %295, ptr %.sroa.1231.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont51: ; preds = %Case49 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %65, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%296 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %65, i64 0, i32 1 | |
%297 = load i16, ptr %296, align 4 | |
%.not406 = icmp eq i16 %297, 0 | |
br i1 %.not406, label %TryCont53, label %TryRet52 | |
TryRet52: ; preds = %TryCont51 | |
%.sroa.1235.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %297, ptr %.sroa.1235.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont53: ; preds = %TryCont51 | |
%298 = load i32, ptr %65, align 4 | |
br i1 %.0.i727, label %Then54, label %Block58 | |
Then54: ; preds = %TryCont53 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %64, ptr %1, ptr %2, ptr %3, i32 %298, ptr %3) | |
%299 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %64, i64 0, i32 1 | |
%300 = load i16, ptr %299, align 4 | |
%.not436 = icmp eq i16 %300, 0 | |
br i1 %.not436, label %TryCont57, label %TryRet56 | |
TryRet56: ; preds = %Then54 | |
%.sroa.1239.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %300, ptr %.sroa.1239.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont57: ; preds = %Then54 | |
%301 = load i32, ptr %64, align 4 | |
br label %Block58 | |
Block58: ; preds = %TryCont57, %TryCont53 | |
%302 = phi i32 [ %301, %TryCont57 ], [ %298, %TryCont53 ] | |
call fastcc void @Sema.resolveDefinedValue(ptr noalias %63, ptr %1, ptr %2, ptr %3, i32 %302) | |
%303 = getelementptr inbounds { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, ptr %63, i64 0, i32 1 | |
%304 = load i16, ptr %303, align 8 | |
%305 = icmp eq i16 %304, 0 | |
br i1 %305, label %Then59, label %Else60 | |
Then59: ; preds = %Block58 | |
%306 = load i64, ptr %63, align 8 | |
call fastcc void @value.Value.toType(ptr noalias %61, i64 %306, ptr %62) | |
%307 = load i64, ptr %61, align 8 | |
%308 = call fastcc i5 @type.Type.zigTypeTag(i64 %307) | |
%309 = zext i5 %308 to i32 | |
switch i32 %309, label %Else62 [ | |
i32 15, label %Case63 | |
i32 17, label %Case84 | |
i32 16, label %Case107 | |
i32 8, label %Case125 | |
i32 19, label %Case125 | |
] | |
Else60: ; preds = %Block58 | |
tail call fastcc void @builtin.default_panic(ptr @builtin.panic_messages.unwrap_error__anon_7066, i64 23) | |
unreachable | |
Else62: ; preds = %Then59 | |
%310 = load ptr, ptr %1, align 8 | |
store i64 %307, ptr %27, align 8 | |
%.sroa.2720.0..sroa_idx = getelementptr inbounds i8, ptr %27, i64 8 | |
store ptr %310, ptr %.sroa.2720.0..sroa_idx, align 8 | |
%311 = getelementptr i8, ptr %2, i64 160 | |
%.val629 = load i32, ptr %311, align 8, !noalias !47293 | |
%312 = call fastcc i16 @Sema.fail__anon_135181(ptr %1, i32 %.val629, ptr %3, ptr %27) | |
%.sroa.1353.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %312, ptr %.sroa.1353.0..sroa_idx, align 4 | |
br label %common.ret | |
Case63: ; preds = %Then59 | |
%313 = icmp ult i64 %307, 68 | |
br i1 %313, label %Else65, label %Block.i571 | |
Block.i571: ; preds = %Case63 | |
%314 = inttoptr i64 %307 to ptr | |
%315 = load i64, ptr %314, align 8 | |
%316 = icmp eq i64 %315, 92 | |
br i1 %316, label %Then64, label %Else65 | |
Then64: ; preds = %Block.i571 | |
%317 = inttoptr i64 %307 to ptr | |
%318 = getelementptr inbounds %type.Type.Payload.ErrorSet, ptr %317, i64 0, i32 1 | |
%319 = load ptr, ptr %318, align 8 | |
call fastcc void @"array_hash_map.ArrayHashMapUnmanaged([]const u8,void,array_hash_map.StringContext,true).getEntry"(ptr noalias %60, ptr %319, ptr %5, i64 %6) | |
%320 = getelementptr inbounds { %"array_hash_map.ArrayHashMapUnmanaged([]const u8,void,array_hash_map.StringContext,true).Entry", i8, [7 x i8] }, ptr %60, i64 0, i32 1 | |
%321 = load i8, ptr %320, align 8 | |
%.not432 = icmp eq i8 %321, 0 | |
br i1 %.not432, label %Block68, label %Then66 | |
Else65: ; preds = %Block.i571, %Case63 | |
%322 = load ptr, ptr %1, align 8 | |
call fastcc void @Module.getErrorValue(ptr noalias %58, ptr %322, ptr %5, i64 %6) | |
%323 = getelementptr inbounds { %"hash_map.HashMapUnmanaged([]const u8,u32,hash_map.StringContext,80).KV", i16, [6 x i8] }, ptr %58, i64 0, i32 1 | |
%324 = load i16, ptr %323, align 8 | |
%.not427 = icmp eq i16 %324, 0 | |
br i1 %.not427, label %Block72, label %TryRet70 | |
Then66: ; preds = %Then64 | |
%325 = load ptr, ptr %60, align 8 | |
br label %Block72 | |
Block68: ; preds = %Then64 | |
%326 = load ptr, ptr %1, align 8 | |
store ptr %5, ptr %59, align 8 | |
%.fca.1.gep247 = getelementptr inbounds { ptr, i64 }, ptr %59, i64 0, i32 1 | |
store i64 %6, ptr %.fca.1.gep247, align 8 | |
%327 = getelementptr inbounds %97, ptr %59, i64 0, i32 1 | |
store i64 %307, ptr %327, align 8 | |
%.sroa.2685.0..sroa_idx = getelementptr inbounds %97, ptr %59, i64 0, i32 1, i32 0, i32 1 | |
store ptr %326, ptr %.sroa.2685.0..sroa_idx, align 8 | |
%328 = getelementptr i8, ptr %2, i64 160 | |
%.val628 = load i32, ptr %328, align 8, !noalias !47296 | |
%329 = call fastcc i16 @Sema.fail__anon_135114(ptr %1, i32 %.val628, ptr %3, ptr %59) | |
%.sroa.1249.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %329, ptr %.sroa.1249.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet70: ; preds = %Else65 | |
%.sroa.1255.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %324, ptr %.sroa.1255.0..sroa_idx, align 4 | |
br label %common.ret | |
Block72: ; preds = %Then66, %Else65 | |
%.sink = phi ptr [ %325, %Then66 ], [ %58, %Else65 ] | |
%330 = icmp ult i64 %307, 68 | |
%sunkaddr783 = getelementptr inbounds i8, ptr %.sink, i64 8 | |
%.fca.1.load = load i64, ptr %sunkaddr783, align 8 | |
%.unpack.pn = load ptr, ptr %.sink, align 8 | |
%331 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%332 = load ptr, ptr %331, align 8, !noalias !47299 | |
%333 = getelementptr inbounds %Sema, ptr %332, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %333, i64 16, i1 false), !noalias !47302 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx776 = getelementptr inbounds i8, ptr %15, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx776, i8 0, i64 16, i1 false), !noalias !47302 | |
%.sroa.2687.0..sroa_idx = getelementptr inbounds i8, ptr %57, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2687.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %15, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) | |
store ptr %2, ptr %57, align 8 | |
%.sroa.3688.0..sroa_idx = getelementptr inbounds i8, ptr %57, i64 40 | |
store i1 false, ptr %.sroa.3688.0..sroa_idx, align 8 | |
br i1 %330, label %type.Type.tag.exit.i575, label %Else.i.i573 | |
Else.i.i573: ; preds = %Block72 | |
%334 = inttoptr i64 %307 to ptr | |
%335 = load i64, ptr %334, align 8 | |
br label %type.Type.tag.exit.i575 | |
type.Type.tag.exit.i575: ; preds = %Else.i.i573, %Block72 | |
%common.ret.op.i.i574 = phi i64 [ %335, %Else.i.i573 ], [ %307, %Block72 ] | |
switch i64 %common.ret.op.i.i574, label %Then73 [ | |
i64 32, label %Else74 | |
i64 94, label %type.Type.isAnyError.exit | |
] | |
type.Type.isAnyError.exit: ; preds = %type.Type.tag.exit.i575 | |
%336 = inttoptr i64 %307 to ptr | |
%337 = load i64, ptr %336, align 8 | |
%338 = icmp eq i64 %337, 94 | |
%spec.select.i.i577 = select i1 %338, ptr %336, ptr null | |
%339 = getelementptr inbounds %type.Type.Payload.ErrorSetInferred, ptr %spec.select.i.i577, i64 0, i32 1 | |
%340 = load ptr, ptr %339, align 8 | |
%341 = getelementptr inbounds %Module.Fn.InferredErrorSet, ptr %340, i64 0, i32 3 | |
%342 = load i1, ptr %341, align 1 | |
br i1 %342, label %Else74, label %Then73 | |
Then73: ; preds = %type.Type.isAnyError.exit, %type.Type.tag.exit.i575 | |
store i64 %307, ptr %56, align 8 | |
store ptr %.sroa.2687.0..sroa_idx, ptr %55, align 8, !alias.scope !47305 | |
%.sroa.2.0..sroa_idx.i581 = getelementptr inbounds i8, ptr %55, i64 8 | |
store ptr @heap.arena_allocator.ArenaAllocator.allocator__anon_3789, ptr %.sroa.2.0..sroa_idx.i581, align 8, !alias.scope !47305 | |
call fastcc void @type.Type.copy(ptr noalias %54, ptr %56, ptr %55) | |
%343 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %54, i64 0, i32 1 | |
%344 = load i16, ptr %343, align 8 | |
%.not431 = icmp eq i16 %344, 0 | |
br i1 %.not431, label %Then73.Block79_crit_edge, label %TryRet75 | |
Then73.Block79_crit_edge: ; preds = %Then73 | |
%.pre753 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%.pre754 = ptrtoint ptr %.pre753 to i64 | |
br label %Block79 | |
Else74: ; preds = %type.Type.isAnyError.exit, %type.Type.tag.exit.i575 | |
call void @llvm.experimental.noalias.scope.decl(metadata !47308) | |
%345 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%346 = ptrtoint ptr %345 to i64 | |
%347 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2687.0..sroa_idx, i64 24, i8 3, i64 %346) #37, !noalias !47311 | |
%.not.i.i.i586 = icmp eq ptr %347, null | |
br i1 %.not.i.i.i586, label %TryRet77, label %type.Type.Tag.create__anon_135116.exit | |
type.Type.Tag.create__anon_135116.exit: ; preds = %Else74 | |
%348 = ptrtoint ptr %345 to i64 | |
store i64 93, ptr %347, align 8, !noalias !47308 | |
%349 = getelementptr inbounds %type.Type.Payload.Name, ptr %347, i64 0, i32 1 | |
store ptr %.unpack.pn, ptr %349, align 8, !noalias !47308 | |
%.repack1.i = getelementptr inbounds %type.Type.Payload.Name, ptr %347, i64 0, i32 1, i32 1 | |
store i64 %.fca.1.load, ptr %.repack1.i, align 8, !noalias !47308 | |
%350 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %53, i64 0, i32 1 | |
store i16 0, ptr %350, align 8, !alias.scope !47308 | |
store ptr %347, ptr %53, align 8, !alias.scope !47308 | |
br label %Block79 | |
TryRet75: ; preds = %Then73 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %57) | |
%.sroa.1260.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %344, ptr %.sroa.1260.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet77: ; preds = %Else74 | |
%.sroa.1.0..sroa_idx.i587 = getelementptr inbounds i8, ptr %53, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i587, align 8, !alias.scope !47308 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %57) | |
%.sroa.1263.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1263.0..sroa_idx, align 4 | |
br label %common.ret | |
Block79: ; preds = %type.Type.Tag.create__anon_135116.exit, %Then73.Block79_crit_edge | |
%.pre-phi755 = phi i64 [ %.pre754, %Then73.Block79_crit_edge ], [ %348, %type.Type.Tag.create__anon_135116.exit ] | |
%351 = phi ptr [ %54, %Then73.Block79_crit_edge ], [ %53, %type.Type.Tag.create__anon_135116.exit ] | |
call void @llvm.experimental.noalias.scope.decl(metadata !47316) | |
%352 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2687.0..sroa_idx, i64 24, i8 3, i64 %.pre-phi755) #37, !noalias !47319 | |
%.not.i.i.i594 = icmp eq ptr %352, null | |
br i1 %.not.i.i.i594, label %TryRet80, label %TryCont81 | |
TryRet80: ; preds = %Block79 | |
%.sroa.1.0..sroa_idx.i595 = getelementptr inbounds i8, ptr %52, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i595, align 8, !alias.scope !47316 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %57) | |
%.sroa.1278.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1278.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont81: ; preds = %Block79 | |
%353 = getelementptr inbounds i8, ptr %352, i64 8 | |
store i64 102, ptr %352, align 8, !noalias !47316 | |
store ptr %.unpack.pn, ptr %353, align 8, !noalias !47316 | |
%.sroa.2697.0..sroa_idx = getelementptr inbounds %value.Value.Payload.Error, ptr %352, i64 0, i32 1, i32 0, i32 1 | |
store i64 %.fca.1.load, ptr %.sroa.2697.0..sroa_idx, align 8, !noalias !47316 | |
%354 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %52, i64 0, i32 1 | |
store i16 0, ptr %354, align 8, !alias.scope !47316 | |
store ptr %352, ptr %52, align 8, !alias.scope !47316 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %51, ptr %57, ptr %351, ptr %52, i32 0) | |
%355 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %51, i64 0, i32 1 | |
%356 = load i16, ptr %355, align 4 | |
%.not430 = icmp eq i16 %356, 0 | |
br i1 %.not430, label %TryCont83, label %TryRet82 | |
TryRet82: ; preds = %TryCont81 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %57) | |
%.sroa.1281.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %356, ptr %.sroa.1281.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont83: ; preds = %TryCont81 | |
%357 = load i32, ptr %51, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %50, ptr %1, i32 %357) | |
%358 = load i64, ptr %50, align 8 | |
store i64 %358, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %57) | |
br label %common.ret | |
Case84: ; preds = %Then59 | |
%359 = call fastcc ptr @type.Type.getNamespace(i64 %307) | |
%.not417 = icmp eq ptr %359, null | |
br i1 %.not417, label %Block92, label %Then85 | |
Then85: ; preds = %Case84 | |
call fastcc void @Sema.namespaceLookupRef(ptr noalias %49, ptr %1, ptr %2, ptr %3, ptr %359, ptr %5, i64 %6) | |
%360 = getelementptr inbounds { { i32, i8, [3 x i8] }, i16, [2 x i8] }, ptr %49, i64 0, i32 1 | |
%361 = load i16, ptr %360, align 4 | |
%.not424 = icmp eq i16 %361, 0 | |
br i1 %.not424, label %TryCont88, label %TryRet87 | |
TryRet87: ; preds = %Then85 | |
%.sroa.1285.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %361, ptr %.sroa.1285.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont88: ; preds = %Then85 | |
%.sroa.2288.0..sroa_idx = getelementptr inbounds i8, ptr %49, i64 4 | |
%.sroa.2288.0.copyload = load i8, ptr %.sroa.2288.0..sroa_idx, align 4 | |
%.not425 = icmp eq i8 %.sroa.2288.0.copyload, 0 | |
br i1 %.not425, label %Block92, label %Then89 | |
Then89: ; preds = %TryCont88 | |
%.sroa.0287.0.copyload = load i32, ptr %49, align 4 | |
store i32 %.sroa.0287.0.copyload, ptr %0, align 4 | |
%.sroa.2291.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 0, ptr %.sroa.2291.0..sroa_idx, align 4 | |
br label %common.ret | |
Block92: ; preds = %TryCont88, %Case84 | |
call fastcc void @Sema.resolveTypeFields(ptr noalias %48, ptr %1, ptr %61) | |
%362 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %48, i64 0, i32 1 | |
%363 = load i16, ptr %362, align 8 | |
%.not418 = icmp eq i16 %363, 0 | |
br i1 %.not418, label %TryCont94, label %TryRet93 | |
TryRet93: ; preds = %Block92 | |
%.sroa.1295.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %363, ptr %.sroa.1295.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont94: ; preds = %Block92 | |
%364 = load i64, ptr %48, align 8 | |
%365 = icmp ult i64 %364, 68 | |
br i1 %365, label %Block106, label %type.Type.tag.exit.i599 | |
type.Type.tag.exit.i599: ; preds = %TryCont94 | |
%366 = inttoptr i64 %364 to ptr | |
%367 = load i64, ptr %366, align 8, !noalias !47324 | |
%cond.i598 = icmp eq i64 %367, 101 | |
br i1 %cond.i598, label %Then95, label %Block106 | |
Then95: ; preds = %type.Type.tag.exit.i599 | |
%368 = inttoptr i64 %364 to ptr | |
%369 = getelementptr inbounds %type.Type.Payload.Union, ptr %368, i64 0, i32 1 | |
%370 = load ptr, ptr %369, align 8, !noalias !47324 | |
%.sroa.0.0.copyload2.i = load i64, ptr %370, align 8, !noalias !47324 | |
call fastcc void @type.Type.enumFieldIndex(ptr noalias %47, i64 %.sroa.0.0.copyload2.i, ptr %5, i64 %6) | |
%371 = getelementptr inbounds { i64, i8, [7 x i8] }, ptr %47, i64 0, i32 1 | |
%372 = load i8, ptr %371, align 8 | |
%.not420 = icmp eq i8 %372, 0 | |
br i1 %.not420, label %Block106, label %Then97 | |
Then97: ; preds = %Then95 | |
%373 = load i64, ptr %47, align 8 | |
%374 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%375 = load ptr, ptr %374, align 8, !noalias !47327 | |
%376 = getelementptr inbounds %Sema, ptr %375, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %376, i64 16, i1 false), !noalias !47330 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx777 = getelementptr inbounds i8, ptr %14, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx777, i8 0, i64 16, i1 false), !noalias !47330 | |
%.sroa.2704.0..sroa_idx = getelementptr inbounds i8, ptr %46, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2704.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) | |
store ptr %2, ptr %46, align 8 | |
%.sroa.3705.0..sroa_idx = getelementptr inbounds i8, ptr %46, i64 40 | |
store i1 false, ptr %.sroa.3705.0..sroa_idx, align 8 | |
store i64 %.sroa.0.0.copyload2.i, ptr %45, align 8 | |
store ptr %.sroa.2704.0..sroa_idx, ptr %44, align 8, !alias.scope !47333 | |
%.sroa.2.0..sroa_idx.i603 = getelementptr inbounds i8, ptr %44, i64 8 | |
store ptr @heap.arena_allocator.ArenaAllocator.allocator__anon_3789, ptr %.sroa.2.0..sroa_idx.i603, align 8, !alias.scope !47333 | |
call fastcc void @type.Type.copy(ptr noalias %43, ptr %45, ptr %44) | |
%377 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %43, i64 0, i32 1 | |
%378 = load i16, ptr %377, align 8 | |
%.not421 = icmp eq i16 %378, 0 | |
br i1 %.not421, label %TryCont100, label %TryRet99 | |
TryRet99: ; preds = %Then97 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %46) | |
%.sroa.1300.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %378, ptr %.sroa.1300.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont100: ; preds = %Then97 | |
%379 = load i64, ptr %43, align 8 | |
store i64 %379, ptr %42, align 8 | |
call void @llvm.experimental.noalias.scope.decl(metadata !47336) | |
%380 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%381 = ptrtoint ptr %380 to i64 | |
%382 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2704.0..sroa_idx, i64 16, i8 3, i64 %381) #37, !noalias !47339 | |
%.not.i.i.i608 = icmp eq ptr %382, null | |
br i1 %.not.i.i.i608, label %TryRet101, label %TryCont102 | |
TryRet101: ; preds = %TryCont100 | |
%.sroa.1.0..sroa_idx.i609 = getelementptr inbounds i8, ptr %41, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i609, align 8, !alias.scope !47336 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %46) | |
%.sroa.1303.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1303.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont102: ; preds = %TryCont100 | |
%383 = trunc i64 %373 to i32 | |
%384 = getelementptr inbounds i8, ptr %382, i64 12 | |
store i32 -1431655766, ptr %384, align 1, !noalias !47336 | |
store i64 101, ptr %382, align 8, !noalias !47336 | |
%385 = getelementptr inbounds %value.Value.Payload.U32, ptr %382, i64 0, i32 1 | |
store i32 %383, ptr %385, align 4, !noalias !47336 | |
%386 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %41, i64 0, i32 1 | |
store i16 0, ptr %386, align 8, !alias.scope !47336 | |
store ptr %382, ptr %41, align 8, !alias.scope !47336 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %40, ptr %46, ptr %42, ptr %41, i32 0) | |
%387 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %40, i64 0, i32 1 | |
%388 = load i16, ptr %387, align 4 | |
%.not423 = icmp eq i16 %388, 0 | |
br i1 %.not423, label %TryCont104, label %TryRet103 | |
TryRet103: ; preds = %TryCont102 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %46) | |
%.sroa.1306.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %388, ptr %.sroa.1306.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont104: ; preds = %TryCont102 | |
%389 = load i32, ptr %40, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %39, ptr %1, i32 %389) | |
%390 = load i64, ptr %39, align 8 | |
store i64 %390, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %46) | |
br label %common.ret | |
Block106: ; preds = %Then95, %type.Type.tag.exit.i599, %TryCont94 | |
%391 = call fastcc i16 @Sema.failWithBadMemberAccess(ptr %1, ptr %2, ptr %61, ptr %7, ptr %5, i64 %6) | |
%.sroa.1310.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %391, ptr %.sroa.1310.0..sroa_idx, align 4 | |
br label %common.ret | |
Case107: ; preds = %Then59 | |
%392 = call fastcc ptr @type.Type.getNamespace(i64 %307) | |
%.not410 = icmp eq ptr %392, null | |
br i1 %.not410, label %Block115, label %Then108 | |
Then108: ; preds = %Case107 | |
call fastcc void @Sema.namespaceLookupRef(ptr noalias %38, ptr %1, ptr %2, ptr %3, ptr %392, ptr %5, i64 %6) | |
%393 = getelementptr inbounds { { i32, i8, [3 x i8] }, i16, [2 x i8] }, ptr %38, i64 0, i32 1 | |
%394 = load i16, ptr %393, align 4 | |
%.not415 = icmp eq i16 %394, 0 | |
br i1 %.not415, label %TryCont111, label %TryRet110 | |
TryRet110: ; preds = %Then108 | |
%.sroa.1314.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %394, ptr %.sroa.1314.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont111: ; preds = %Then108 | |
%.sroa.2317.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 4 | |
%.sroa.2317.0.copyload = load i8, ptr %.sroa.2317.0..sroa_idx, align 4 | |
%.not416 = icmp eq i8 %.sroa.2317.0.copyload, 0 | |
br i1 %.not416, label %Block115, label %Then112 | |
Then112: ; preds = %TryCont111 | |
%.sroa.0316.0.copyload = load i32, ptr %38, align 4 | |
store i32 %.sroa.0316.0.copyload, ptr %0, align 4 | |
%.sroa.2320.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 0, ptr %.sroa.2320.0..sroa_idx, align 4 | |
br label %common.ret | |
Block115: ; preds = %TryCont111, %Case107 | |
call fastcc void @type.Type.enumFieldIndex(ptr noalias %37, i64 %307, ptr %5, i64 %6) | |
%395 = getelementptr inbounds { i64, i8, [7 x i8] }, ptr %37, i64 0, i32 1 | |
%396 = load i8, ptr %395, align 8 | |
%.not411 = icmp eq i8 %396, 0 | |
br i1 %.not411, label %Else117, label %Then116 | |
Then116: ; preds = %Block115 | |
%397 = load i64, ptr %37, align 8 | |
%398 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%399 = load ptr, ptr %398, align 8, !noalias !47344 | |
%400 = getelementptr inbounds %Sema, ptr %399, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %400, i64 16, i1 false), !noalias !47347 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx778 = getelementptr inbounds i8, ptr %13, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx778, i8 0, i64 16, i1 false), !noalias !47347 | |
%.sroa.2712.0..sroa_idx = getelementptr inbounds i8, ptr %36, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2712.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %13, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) | |
store ptr %2, ptr %36, align 8 | |
%.sroa.3713.0..sroa_idx = getelementptr inbounds i8, ptr %36, i64 40 | |
store i1 false, ptr %.sroa.3713.0..sroa_idx, align 8 | |
store i64 %307, ptr %35, align 8 | |
store ptr %.sroa.2712.0..sroa_idx, ptr %34, align 8, !alias.scope !47350 | |
%.sroa.2.0..sroa_idx.i613 = getelementptr inbounds i8, ptr %34, i64 8 | |
store ptr @heap.arena_allocator.ArenaAllocator.allocator__anon_3789, ptr %.sroa.2.0..sroa_idx.i613, align 8, !alias.scope !47350 | |
call fastcc void @type.Type.copy(ptr noalias %33, ptr %35, ptr %34) | |
%401 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %33, i64 0, i32 1 | |
%402 = load i16, ptr %401, align 8 | |
%.not412 = icmp eq i16 %402, 0 | |
br i1 %.not412, label %TryCont120, label %TryRet119 | |
Else117: ; preds = %Block115 | |
%403 = call fastcc i16 @Sema.failWithBadMemberAccess(ptr %1, ptr %2, ptr %61, ptr %7, ptr %5, i64 %6) | |
%.sroa.1324.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %403, ptr %.sroa.1324.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet119: ; preds = %Then116 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %36) | |
%.sroa.1329.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %402, ptr %.sroa.1329.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont120: ; preds = %Then116 | |
%404 = load i64, ptr %33, align 8 | |
store i64 %404, ptr %32, align 8 | |
call void @llvm.experimental.noalias.scope.decl(metadata !47353) | |
%405 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%406 = ptrtoint ptr %405 to i64 | |
%407 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2712.0..sroa_idx, i64 16, i8 3, i64 %406) #37, !noalias !47356 | |
%.not.i.i.i618 = icmp eq ptr %407, null | |
br i1 %.not.i.i.i618, label %TryRet121, label %TryCont122 | |
TryRet121: ; preds = %TryCont120 | |
%.sroa.1.0..sroa_idx.i619 = getelementptr inbounds i8, ptr %31, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i619, align 8, !alias.scope !47353 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %36) | |
%.sroa.1332.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1332.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont122: ; preds = %TryCont120 | |
%408 = trunc i64 %397 to i32 | |
%409 = getelementptr inbounds i8, ptr %407, i64 12 | |
store i32 -1431655766, ptr %409, align 1, !noalias !47353 | |
store i64 101, ptr %407, align 8, !noalias !47353 | |
%410 = getelementptr inbounds %value.Value.Payload.U32, ptr %407, i64 0, i32 1 | |
store i32 %408, ptr %410, align 4, !noalias !47353 | |
%411 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %31, i64 0, i32 1 | |
store i16 0, ptr %411, align 8, !alias.scope !47353 | |
store ptr %407, ptr %31, align 8, !alias.scope !47353 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %30, ptr %36, ptr %32, ptr %31, i32 0) | |
%412 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %30, i64 0, i32 1 | |
%413 = load i16, ptr %412, align 4 | |
%.not414 = icmp eq i16 %413, 0 | |
br i1 %.not414, label %TryCont124, label %TryRet123 | |
TryRet123: ; preds = %TryCont122 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %36) | |
%.sroa.1335.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %413, ptr %.sroa.1335.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont124: ; preds = %TryCont122 | |
%414 = load i32, ptr %30, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %29, ptr %1, i32 %414) | |
%415 = load i64, ptr %29, align 8 | |
store i64 %415, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %36) | |
br label %common.ret | |
Case125: ; preds = %Then59, %Then59 | |
%416 = call fastcc ptr @type.Type.getNamespace(i64 %307) | |
%.not407 = icmp eq ptr %416, null | |
br i1 %.not407, label %Block133, label %Then126 | |
Then126: ; preds = %Case125 | |
call fastcc void @Sema.namespaceLookupRef(ptr noalias %28, ptr %1, ptr %2, ptr %3, ptr %416, ptr %5, i64 %6) | |
%417 = getelementptr inbounds { { i32, i8, [3 x i8] }, i16, [2 x i8] }, ptr %28, i64 0, i32 1 | |
%418 = load i16, ptr %417, align 4 | |
%.not408 = icmp eq i16 %418, 0 | |
br i1 %.not408, label %TryCont129, label %TryRet128 | |
TryRet128: ; preds = %Then126 | |
%.sroa.1339.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %418, ptr %.sroa.1339.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont129: ; preds = %Then126 | |
%.sroa.2342.0..sroa_idx = getelementptr inbounds i8, ptr %28, i64 4 | |
%.sroa.2342.0.copyload = load i8, ptr %.sroa.2342.0..sroa_idx, align 4 | |
%.not409 = icmp eq i8 %.sroa.2342.0.copyload, 0 | |
br i1 %.not409, label %Block133, label %Then130 | |
Then130: ; preds = %TryCont129 | |
%.sroa.0341.0.copyload = load i32, ptr %28, align 4 | |
store i32 %.sroa.0341.0.copyload, ptr %0, align 4 | |
%.sroa.2345.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 0, ptr %.sroa.2345.0..sroa_idx, align 4 | |
br label %common.ret | |
Block133: ; preds = %TryCont129, %Case125 | |
%419 = call fastcc i16 @Sema.failWithBadMemberAccess(ptr %1, ptr %2, ptr %61, ptr %7, ptr %5, i64 %6) | |
%.sroa.1349.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %419, ptr %.sroa.1349.0..sroa_idx, align 4 | |
br label %common.ret | |
Case134: ; preds = %type.Type.zigTypeTag.exit484 | |
br i1 %.0.i727, label %Then135, label %Block139 | |
Then135: ; preds = %Case134 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %26, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%420 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %26, i64 0, i32 1 | |
%421 = load i16, ptr %420, align 4 | |
%.not404 = icmp eq i16 %421, 0 | |
br i1 %.not404, label %TryCont138, label %TryRet137 | |
TryRet137: ; preds = %Then135 | |
%.sroa.1357.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %421, ptr %.sroa.1357.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont138: ; preds = %Then135 | |
%422 = load i32, ptr %26, align 4 | |
br label %Block139 | |
Block139: ; preds = %TryCont138, %Case134 | |
%423 = phi i32 [ %422, %TryCont138 ], [ %4, %Case134 ] | |
call fastcc void @Sema.structFieldPtr(ptr noalias %25, ptr %1, ptr %2, ptr %3, i32 %423, ptr %5, i64 %6, ptr %7, ptr %121, i1 %8) | |
%424 = load i64, ptr %25, align 8 | |
store i64 %424, ptr %0, align 4 | |
br label %common.ret | |
Case140: ; preds = %type.Type.zigTypeTag.exit484 | |
br i1 %.0.i727, label %Then141, label %Block145 | |
Then141: ; preds = %Case140 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %24, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%425 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %24, i64 0, i32 1 | |
%426 = load i16, ptr %425, align 4 | |
%.not = icmp eq i16 %426, 0 | |
br i1 %.not, label %TryCont144, label %TryRet143 | |
TryRet143: ; preds = %Then141 | |
%.sroa.1362.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %426, ptr %.sroa.1362.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont144: ; preds = %Then141 | |
%427 = load i32, ptr %24, align 4 | |
br label %Block145 | |
Block145: ; preds = %TryCont144, %Case140 | |
%428 = phi i32 [ %427, %TryCont144 ], [ %4, %Case140 ] | |
call fastcc void @Sema.unionFieldPtr(ptr noalias %23, ptr %1, ptr %2, ptr %3, i32 %428, ptr %5, i64 %6, ptr %7, ptr %121, i1 %8) | |
%429 = load i64, ptr %23, align 8 | |
store i64 %429, ptr %0, align 4 | |
br label %common.ret | |
Block146: ; preds = %type.Type.isSlice.exit, %type.Type.tag.exit.i499, %type.Type.zigTypeTag.exit484 | |
%430 = load ptr, ptr %1, align 8 | |
store i64 %110, ptr %22, align 8 | |
%.sroa.2722.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 8 | |
store ptr %430, ptr %.sroa.2722.0..sroa_idx, align 8 | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) | |
%431 = getelementptr i8, ptr %2, i64 160 | |
%.val626 = load i32, ptr %431, align 8 | |
call fastcc void @Sema.errMsg__anon_203447(ptr noalias %9, ptr %1, i32 %.val626, ptr %3, ptr %22) | |
%432 = getelementptr inbounds { ptr, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%433 = load i16, ptr %432, align 8 | |
%.not.i623 = icmp eq i16 %433, 0 | |
br i1 %.not.i623, label %TryCont.i625, label %Sema.fail__anon_135183.exit | |
TryCont.i625: ; preds = %Block146 | |
%434 = load ptr, ptr %9, align 8 | |
%435 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %434) | |
br label %Sema.fail__anon_135183.exit | |
Sema.fail__anon_135183.exit: ; preds = %TryCont.i625, %Block146 | |
%common.ret.op.i624 = phi i16 [ %435, %TryCont.i625 ], [ %433, %Block146 ] | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) | |
%.sroa.1367.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i624, ptr %.sroa.1367.0..sroa_idx, align 4 | |
br label %common.ret | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Function Attrs: nounwind | |
define internal fastcc void @Sema.fieldPtr(ptr noalias nonnull writeonly %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2, ptr nonnull readonly align 4 %3, i32 %4, ptr nonnull readonly align 1 %5, i64 %6, ptr nonnull readonly align 4 %7, i1 %8) unnamed_addr #1 { | |
Entry: | |
%9 = alloca %Air, align 8 | |
%10 = alloca { { ptr, i64 }, i16, [6 x i8] }, align 8 | |
%.sroa.7.i = alloca [3 x i8], align 1 | |
%11 = alloca %mem.Allocator, align 8 | |
%12 = alloca { { ptr, i64 }, i16, [6 x i8] }, align 8 | |
%.sroa.7 = alloca [3 x i8], align 1 | |
%13 = alloca %mem.Allocator, align 8 | |
%14 = alloca { ptr, i16, [6 x i8] }, align 8 | |
%15 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%16 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%17 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%18 = alloca { ptr, i16, [6 x i8] }, align 8 | |
%19 = alloca %heap.arena_allocator.ArenaAllocator, align 8 | |
%20 = alloca { i16, i5, [1 x i8] }, align 2 | |
%21 = alloca { i16, i5, [1 x i8] }, align 2 | |
%22 = alloca %type.Type, align 8 | |
%23 = alloca %29, align 8 | |
%24 = alloca { i32, i16, [2 x i8] }, align 8 | |
%25 = alloca { i32, i16, [2 x i8] }, align 4 | |
%26 = alloca { i32, i16, [2 x i8] }, align 8 | |
%27 = alloca { i32, i16, [2 x i8] }, align 4 | |
%28 = alloca %29, align 8 | |
%29 = alloca { { i32, i8, [3 x i8] }, i16, [2 x i8] }, align 4 | |
%30 = alloca { i32, i16, [2 x i8] }, align 8 | |
%31 = alloca { i32, i16, [2 x i8] }, align 4 | |
%32 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%33 = alloca %type.Type, align 8 | |
%34 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%35 = alloca %mem.Allocator, align 8 | |
%36 = alloca %type.Type, align 8 | |
%37 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%38 = alloca { i64, i8, [7 x i8] }, align 8 | |
%39 = alloca { { i32, i8, [3 x i8] }, i16, [2 x i8] }, align 4 | |
%40 = alloca { i32, i16, [2 x i8] }, align 8 | |
%41 = alloca { i32, i16, [2 x i8] }, align 4 | |
%42 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%43 = alloca %type.Type, align 8 | |
%44 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%45 = alloca %mem.Allocator, align 8 | |
%46 = alloca %type.Type, align 8 | |
%47 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%48 = alloca { i64, i8, [7 x i8] }, align 8 | |
%49 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%50 = alloca { { i32, i8, [3 x i8] }, i16, [2 x i8] }, align 4 | |
%51 = alloca { i32, i16, [2 x i8] }, align 8 | |
%52 = alloca { i32, i16, [2 x i8] }, align 4 | |
%53 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%54 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%55 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%56 = alloca %mem.Allocator, align 8 | |
%57 = alloca %type.Type, align 8 | |
%58 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%59 = alloca { %"hash_map.HashMapUnmanaged([]const u8,u32,hash_map.StringContext,80).KV", i16, [6 x i8] }, align 8 | |
%60 = alloca %97, align 8 | |
%61 = alloca { %"array_hash_map.ArrayHashMapUnmanaged([]const u8,void,array_hash_map.StringContext,true).Entry", i8, [7 x i8] }, align 8 | |
%62 = alloca %type.Type, align 8 | |
%63 = alloca %type.Type.Payload.Bits, align 8 | |
%64 = alloca { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, align 8 | |
%65 = alloca { i32, i16, [2 x i8] }, align 4 | |
%66 = alloca { i32, i16, [2 x i8] }, align 4 | |
%67 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%68 = alloca %97, align 8 | |
%69 = alloca { i32, i16, [2 x i8] }, align 8 | |
%70 = alloca { i32, i16, [2 x i8] }, align 8 | |
%71 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%72 = alloca { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, align 8 | |
%73 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%74 = alloca %type.Type.Payload.Pointer.Data, align 8 | |
%75 = alloca %mem.Allocator, align 8 | |
%76 = alloca { i32, i16, [2 x i8] }, align 8 | |
%77 = alloca { i32, i16, [2 x i8] }, align 8 | |
%78 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%79 = alloca { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, align 8 | |
%80 = alloca { %type.Type, i16, [6 x i8] }, align 8 | |
%81 = alloca %type.Type.Payload.Pointer.Data, align 8 | |
%82 = alloca %mem.Allocator, align 8 | |
%83 = alloca %type.Type, align 8 | |
%84 = alloca { i32, i16, [2 x i8] }, align 4 | |
%85 = alloca %97, align 8 | |
%86 = alloca { i32, i16, [2 x i8] }, align 8 | |
%87 = alloca { i32, i16, [2 x i8] }, align 4 | |
%88 = alloca { %value.Value, i16, [6 x i8] }, align 8 | |
%89 = alloca %Sema.Block.WipAnonDecl, align 8 | |
%90 = alloca %type.Type, align 8 | |
%91 = alloca %29, align 8 | |
%92 = alloca %type.Type, align 8 | |
%.sroa.1.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %1, i64 120 | |
%.sroa.1.0.copyload.i.i = load ptr, ptr %.sroa.1.0..sroa_idx.i.i, align 8, !noalias !47228 | |
%.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %1, i64 128 | |
%.sroa.2.0.copyload.i.i = load i64, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !noalias !47228 | |
%.sroa.3.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %1, i64 136 | |
%.sroa.3.0.copyload.i.i = load i64, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !47228 | |
%93 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 6 | |
%.unpack.i.i = load ptr, ptr %93, align 8, !noalias !47228 | |
%.elt11.i.i = getelementptr inbounds %Sema, ptr %1, i64 0, i32 6, i32 0, i32 1 | |
%.unpack12.i.i = load i64, ptr %.elt11.i.i, align 8, !noalias !47228 | |
%94 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 7 | |
%.unpack15.i.i = load ptr, ptr %94, align 8, !noalias !47228 | |
%.elt16.i.i = getelementptr inbounds %Sema, ptr %1, i64 0, i32 7, i32 0, i32 1 | |
%.unpack17.i.i = load i64, ptr %.elt16.i.i, align 8, !noalias !47228 | |
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11), !noalias !47233 | |
call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9), !noalias !47233 | |
%95 = icmp ult i32 %4, 76 | |
br i1 %95, label %Then.i.i, label %Block.i.i | |
Then.i.i: ; preds = %Entry | |
%96 = zext i32 %4 to i64 | |
%97 = getelementptr inbounds [76 x %TypedValue], ptr @2772, i64 0, i64 %96 | |
br label %Sema.typeOf.exit | |
Block.i.i: ; preds = %Entry | |
%98 = shl nuw i64 %.sroa.3.0.copyload.i.i, 3 | |
%99 = getelementptr inbounds i8, ptr %.sroa.1.0.copyload.i.i, i64 %98 | |
store ptr %99, ptr %9, align 8, !noalias !47234 | |
%.sroa.22.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 8 | |
store ptr %.sroa.1.0.copyload.i.i, ptr %.sroa.22.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.33.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 16 | |
store i64 %.sroa.2.0.copyload.i.i, ptr %.sroa.33.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.44.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 24 | |
store i64 %.sroa.3.0.copyload.i.i, ptr %.sroa.44.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.55.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 32 | |
store ptr %.unpack.i.i, ptr %.sroa.55.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.66.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 40 | |
store i64 %.unpack12.i.i, ptr %.sroa.66.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.77.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 48 | |
store ptr %.unpack15.i.i, ptr %.sroa.77.0..sroa_idx.i, align 8, !noalias !47234 | |
%.sroa.88.0..sroa_idx.i = getelementptr inbounds i8, ptr %9, i64 56 | |
store i64 %.unpack17.i.i, ptr %.sroa.88.0..sroa_idx.i, align 8, !noalias !47234 | |
%100 = add i32 %4, -76 | |
call fastcc void @Air.typeOfIndex(ptr noalias %11, ptr %9, i32 %100), !noalias !47234 | |
br label %Sema.typeOf.exit | |
Sema.typeOf.exit: ; preds = %Block.i.i, %Then.i.i | |
%storemerge.in.i.i = phi ptr [ %97, %Then.i.i ], [ %11, %Block.i.i ] | |
%storemerge.i.i = load i64, ptr %storemerge.in.i.i, align 8, !noalias !47234 | |
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11), !noalias !47233 | |
call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9), !noalias !47233 | |
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) | |
call fastcc void @type.Type.zigTypeTagOrPoison(ptr noalias %9, i64 %storemerge.i.i) | |
%101 = load i16, ptr %9, align 2 | |
%102 = icmp eq i16 %101, 0 | |
br i1 %102, label %type.Type.zigTypeTag.exit, label %Else.i | |
Else.i: ; preds = %Sema.typeOf.exit | |
tail call fastcc void @builtin.default_panic(ptr @builtin.panic_messages.unwrap_error__anon_7066, i64 23) | |
unreachable | |
type.Type.zigTypeTag.exit: ; preds = %Sema.typeOf.exit | |
%103 = getelementptr inbounds { i16, i5, [1 x i8] }, ptr %9, i64 0, i32 1 | |
%104 = load i5, ptr %103, align 2 | |
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) | |
%cond = icmp eq i5 %104, 6 | |
br i1 %cond, label %Case, label %Else | |
common.ret: ; preds = %Sema.fail__anon_135183.exit, %Block145, %TryRet143, %Block139, %TryRet137, %Block133, %Then130, %TryRet128, %TryCont124, %TryRet123, %TryRet121, %TryRet119, %Else117, %Then112, %TryRet110, %Block106, %TryCont104, %TryRet103, %TryRet101, %TryRet99, %TryRet93, %Then89, %TryRet87, %TryCont83, %TryRet82, %TryRet80, %TryRet77, %TryRet75, %TryRet70, %Block68, %Else62, %TryRet56, %TryRet52, %TryRet50, %TryCont47, %TryRet46, %TryCont44, %TryRet43, %TryRet39, %TryRet37, %Sema.fail__anon_135111.exit, %TryCont34, %TryRet33, %TryCont31, %TryRet30, %TryRet26, %TryRet24, %TryRet22, %TryRet14, %TryCont8, %TryRet7, %Sema.Block.WipAnonDecl.deinit.exit, %Sema.fail__anon_135069.exit, %Sema.fail__anon_135062.exit | |
ret void | |
Else: ; preds = %type.Type.zigTypeTag.exit | |
%105 = load ptr, ptr %1, align 8 | |
store i64 %storemerge.i.i, ptr %91, align 8 | |
%.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %91, i64 8 | |
store ptr %105, ptr %.sroa.2.0..sroa_idx, align 8 | |
call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) | |
%106 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 13 | |
%107 = load i32, ptr %106, align 8, !noalias !47237 | |
%108 = getelementptr i8, ptr %105, i64 696 | |
%.val.i626 = load ptr, ptr %108, align 8, !noalias !47237 | |
%109 = zext i32 %107 to i64 | |
%110 = add nuw nsw i64 %109, 1 | |
%111 = tail call i64 @llvm.ctlz.i64(i64 %110, i1 true), !range !1878 | |
%112 = xor i64 %111, 63 | |
%.neg.i.i.i.i.i = shl nsw i64 -1, %112 | |
%113 = add nsw i64 %.neg.i.i.i.i.i, %110 | |
%114 = getelementptr inbounds ptr, ptr %.val.i626, i64 %112 | |
%115 = load ptr, ptr %114, align 8, !noalias !47237 | |
%116 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 1 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(16) %116, i64 16, i1 false), !noalias !47237 | |
%117 = load i64, ptr %3, align 4 | |
%.sroa.4743.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 | |
%.sroa.4743.0.copyload = load i7, ptr %.sroa.4743.0..sroa_idx, align 4, !noalias !47237 | |
%.sroa.5746.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 9 | |
%switch.i.i627 = icmp ult i7 %.sroa.4743.0.copyload, 5 | |
%118 = getelementptr %Module.Decl, ptr %115, i64 %113, i32 5 | |
%.val3.i.i = load ptr, ptr %118, align 8, !noalias !47240 | |
%119 = getelementptr i8, ptr %.val3.i.i, i64 8 | |
%.val3.val.i.i = load ptr, ptr %119, align 8, !noalias !47240 | |
br i1 %switch.i.i627, label %Module.LazySrcLoc.toSrcLoc.exit.i, label %Case1.i.i | |
Case1.i.i: ; preds = %Else | |
%120 = getelementptr inbounds %Module.Decl, ptr %115, i64 %113, i32 11 | |
%121 = load i32, ptr %120, align 8, !noalias !47240 | |
br label %Module.LazySrcLoc.toSrcLoc.exit.i | |
Module.LazySrcLoc.toSrcLoc.exit.i: ; preds = %Case1.i.i, %Else | |
%.sink.i.i = phi i32 [ %121, %Case1.i.i ], [ 0, %Else ] | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.5746.0..sroa_idx, i64 3, i1 false) | |
%.sroa.0753.0.copyload = load ptr, ptr %11, align 8, !noalias !47243 | |
%.sroa.4754.0..sroa_idx = getelementptr inbounds i8, ptr %11, i64 8 | |
%.sroa.4754.0.copyload = load ptr, ptr %.sroa.4754.0..sroa_idx, align 8, !noalias !47243 | |
%122 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%123 = ptrtoint ptr %122 to i64 | |
%124 = load ptr, ptr %.sroa.4754.0.copyload, align 8, !noalias !47246 | |
%125 = tail call fastcc ptr %124(ptr nonnull align 1 %.sroa.0753.0.copyload, i64 72, i8 3, i64 %123) #37, !noalias !47246 | |
%.not.i.i637 = icmp eq ptr %125, null | |
br i1 %.not.i.i637, label %Sema.errMsg__anon_203419.exit.thread, label %TryCont.i.i | |
TryCont.i.i: ; preds = %Module.LazySrcLoc.toSrcLoc.exit.i | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(72) %125, i8 -86, i64 72, i1 false), !noalias !47246 | |
call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) | |
call fastcc void @fmt.allocPrint__anon_225998(ptr noalias %9, ptr %11, ptr %91), !noalias !47251 | |
%126 = getelementptr inbounds { { ptr, i64 }, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%127 = load i16, ptr %126, align 8, !noalias !47251 | |
%.not.i630 = icmp eq i16 %127, 0 | |
br i1 %.not.i630, label %TryCont.i, label %TryRet1.i.i | |
TryRet1.i.i: ; preds = %TryCont.i.i | |
%128 = ptrtoint ptr %122 to i64 | |
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) | |
%129 = getelementptr i8, ptr %.sroa.4754.0.copyload, i64 16 | |
%.val10.val.i.i = load ptr, ptr %129, align 8, !noalias !47243 | |
tail call fastcc void %.val10.val.i.i(ptr nonnull align 1 %.sroa.0753.0.copyload, ptr nonnull align 1 %125, i64 72, i8 3, i64 %128) #37, !noalias !47243 | |
br label %Sema.errMsg__anon_203419.exit.thread | |
Sema.errMsg__anon_203419.exit.thread: ; preds = %TryRet1.i.i, %Module.LazySrcLoc.toSrcLoc.exit.i | |
%.sroa.4752.0.ph = phi i16 [ 1, %Module.LazySrcLoc.toSrcLoc.exit.i ], [ %127, %TryRet1.i.i ] | |
call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) | |
br label %Sema.fail__anon_135062.exit | |
TryCont.i: ; preds = %TryCont.i.i | |
%.fca.0.load.i = load ptr, ptr %9, align 8, !noalias !47251 | |
%.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %9, i64 0, i32 1 | |
%.fca.1.load.i = load i64, ptr %.fca.1.gep.i, align 8, !noalias !47251 | |
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) | |
store ptr %.val3.val.i.i, ptr %125, align 8, !noalias !47243 | |
%.sroa.4759.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 8 | |
store i32 %.sink.i.i, ptr %.sroa.4759.0..sroa.0755.0..sroa_idx, align 8, !noalias !47243 | |
%.sroa.5760.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 12 | |
store i64 %117, ptr %.sroa.5760.0..sroa.0755.0..sroa_idx, align 4 | |
%.sroa.6761.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 20 | |
store i7 %.sroa.4743.0.copyload, ptr %.sroa.6761.0..sroa.0755.0..sroa_idx, align 4, !noalias !47243 | |
%.sroa.7762.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 21 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7762.0..sroa.0755.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7.i, i64 3, i1 false) | |
%.sroa.8763.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 24 | |
store ptr %.fca.0.load.i, ptr %.sroa.8763.0..sroa.0755.0..sroa_idx, align 8, !noalias !47243 | |
%.sroa.9.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 32 | |
store i64 %.fca.1.load.i, ptr %.sroa.9.0..sroa.0755.0..sroa_idx, align 8, !noalias !47243 | |
%.sroa.10.0..sroa.0755.0..sroa_idx = getelementptr inbounds i8, ptr %125, i64 40 | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.10.0..sroa.0755.0..sroa_idx, i8 0, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) | |
%130 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %125) | |
br label %Sema.fail__anon_135062.exit | |
Sema.fail__anon_135062.exit: ; preds = %TryCont.i, %Sema.errMsg__anon_203419.exit.thread | |
%common.ret.op.i = phi i16 [ %130, %TryCont.i ], [ %.sroa.4752.0.ph, %Sema.errMsg__anon_203419.exit.thread ] | |
%.sroa.1.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i, ptr %.sroa.1.0..sroa_idx, align 4 | |
br label %common.ret | |
Case: ; preds = %type.Type.zigTypeTag.exit | |
call fastcc void @type.Type.childType(ptr noalias %92, i64 %storemerge.i.i) | |
%131 = load i64, ptr %92, align 8 | |
%132 = icmp ult i64 %131, 68 | |
br i1 %132, label %type.Type.tag.exit.i, label %Else.i.i | |
Else.i.i: ; preds = %Case | |
%133 = inttoptr i64 %131 to ptr | |
%134 = load i64, ptr %133, align 8 | |
br label %type.Type.tag.exit.i | |
type.Type.tag.exit.i: ; preds = %Else.i.i, %Case | |
%common.ret.op.i.i = phi i64 [ %134, %Else.i.i ], [ %131, %Case ] | |
switch i64 %common.ret.op.i.i, label %Block2 [ | |
i64 75, label %type.Type.isSinglePointer.exit | |
i64 76, label %Then | |
i64 77, label %Then | |
i64 58, label %Then | |
i64 66, label %Then | |
i64 65, label %Then | |
] | |
type.Type.isSinglePointer.exit: ; preds = %type.Type.tag.exit.i | |
%135 = inttoptr i64 %131 to ptr | |
%136 = load i64, ptr %135, align 8 | |
%137 = icmp eq i64 %136, 75 | |
%spec.select.i.i = select i1 %137, ptr %135, ptr null | |
%138 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i, i64 0, i32 1, i32 10 | |
%139 = load i2, ptr %138, align 1 | |
%140 = icmp eq i2 %139, 0 | |
br i1 %140, label %Then, label %Block2 | |
Then: ; preds = %type.Type.isSinglePointer.exit, %type.Type.tag.exit.i, %type.Type.tag.exit.i, %type.Type.tag.exit.i, %type.Type.tag.exit.i, %type.Type.tag.exit.i | |
call fastcc void @type.Type.childType(ptr noalias %90, i64 %131) | |
%.pre = load i64, ptr %90, align 8 | |
br label %Block2 | |
Block2: ; preds = %Then, %type.Type.isSinglePointer.exit, %type.Type.tag.exit.i | |
%141 = phi i64 [ %.pre, %Then ], [ %131, %type.Type.isSinglePointer.exit ], [ %131, %type.Type.tag.exit.i ] | |
%.0.i777 = phi i1 [ true, %Then ], [ false, %type.Type.isSinglePointer.exit ], [ false, %type.Type.tag.exit.i ] | |
%142 = phi ptr [ %90, %Then ], [ %92, %type.Type.isSinglePointer.exit ], [ %92, %type.Type.tag.exit.i ] | |
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) | |
call fastcc void @type.Type.zigTypeTagOrPoison(ptr noalias %9, i64 %141) | |
%143 = load i16, ptr %9, align 2 | |
%144 = icmp eq i16 %143, 0 | |
br i1 %144, label %type.Type.zigTypeTag.exit484, label %Else.i483 | |
Else.i483: ; preds = %Block2 | |
tail call fastcc void @builtin.default_panic(ptr @builtin.panic_messages.unwrap_error__anon_7066, i64 23) | |
unreachable | |
type.Type.zigTypeTag.exit484: ; preds = %Block2 | |
%145 = getelementptr inbounds { i16, i5, [1 x i8] }, ptr %9, i64 0, i32 1 | |
%146 = load i5, ptr %145, align 2 | |
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) | |
%147 = zext i5 %146 to i32 | |
switch i32 %147, label %Block146 [ | |
i32 7, label %Case4 | |
i32 6, label %Case9 | |
i32 0, label %Case49 | |
i32 8, label %Case134 | |
i32 17, label %Case140 | |
] | |
Case4: ; preds = %type.Type.zigTypeTag.exit484 | |
%.not.i485 = icmp eq i64 %6, 3 | |
br i1 %.not.i485, label %Block.i, label %Else6 | |
Block.i: ; preds = %Case4 | |
%.not799 = icmp eq ptr %5, @958 | |
br i1 %.not799, label %Then5, label %Then4.i.preheader | |
Then4.i.preheader: ; preds = %Block.i | |
%148 = load i8, ptr %5, align 1 | |
%.not14.i = icmp eq i8 %148, 108 | |
br i1 %.not14.i, label %Loop.i, label %Else6 | |
Loop.i: ; preds = %Then4.i.preheader | |
%149 = getelementptr inbounds i8, ptr %5, i64 1 | |
%150 = load i8, ptr %149, align 1 | |
%.not14.i.1 = icmp eq i8 %150, 101 | |
br i1 %.not14.i.1, label %Loop.i.1, label %Else6 | |
Loop.i.1: ; preds = %Loop.i | |
%151 = getelementptr inbounds i8, ptr %5, i64 2 | |
%152 = load i8, ptr %151, align 1 | |
%.not14.i.2 = icmp eq i8 %152, 110 | |
br i1 %.not14.i.2, label %Then5, label %Else6 | |
Then5: ; preds = %Loop.i.1, %Block.i | |
%153 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%154 = load ptr, ptr %153, align 8, !noalias !47254 | |
%155 = getelementptr inbounds %Sema, ptr %154, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %155, i64 16, i1 false), !noalias !47257 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx = getelementptr inbounds i8, ptr %19, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx, i8 0, i64 16, i1 false), !noalias !47257 | |
%.sroa.2660.0..sroa_idx = getelementptr inbounds i8, ptr %89, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2660.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) | |
store ptr %2, ptr %89, align 8 | |
%.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %89, i64 40 | |
store i1 false, ptr %.sroa.3.0..sroa_idx, align 8 | |
%156 = tail call fastcc i64 @type.Type.arrayLen(i64 %141) | |
tail call void @llvm.experimental.noalias.scope.decl(metadata !47260) | |
%157 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%158 = ptrtoint ptr %157 to i64 | |
%159 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2660.0..sroa_idx, i64 16, i8 3, i64 %158) #37, !noalias !47263 | |
%.not.i.i.i = icmp eq ptr %159, null | |
br i1 %.not.i.i.i, label %TryRet, label %TryCont | |
Else6: ; preds = %Loop.i.1, %Loop.i, %Then4.i.preheader, %Case4 | |
%160 = load ptr, ptr %1, align 8 | |
store ptr %5, ptr %85, align 8 | |
%.fca.1.gep = getelementptr inbounds { ptr, i64 }, ptr %85, i64 0, i32 1 | |
store i64 %6, ptr %.fca.1.gep, align 8 | |
%161 = getelementptr inbounds %97, ptr %85, i64 0, i32 1 | |
store i64 %131, ptr %161, align 8 | |
%.sroa.2664.0..sroa_idx = getelementptr inbounds %97, ptr %85, i64 0, i32 1, i32 0, i32 1 | |
store ptr %160, ptr %.sroa.2664.0..sroa_idx, align 8 | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) | |
%162 = getelementptr i8, ptr %2, i64 160 | |
%.val641 = load i32, ptr %162, align 8 | |
call fastcc void @Sema.errMsg__anon_203423(ptr noalias %9, ptr %1, i32 %.val641, ptr %7, ptr %85) | |
%163 = getelementptr inbounds { ptr, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%164 = load i16, ptr %163, align 8 | |
%.not.i489 = icmp eq i16 %164, 0 | |
br i1 %.not.i489, label %TryCont.i491, label %Sema.fail__anon_135069.exit | |
TryCont.i491: ; preds = %Else6 | |
%165 = load ptr, ptr %9, align 8 | |
%166 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %165) | |
br label %Sema.fail__anon_135069.exit | |
Sema.fail__anon_135069.exit: ; preds = %TryCont.i491, %Else6 | |
%common.ret.op.i490 = phi i16 [ %166, %TryCont.i491 ], [ %164, %Else6 ] | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) | |
%.sroa.1158.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i490, ptr %.sroa.1158.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet: ; preds = %Then5 | |
%.sroa.1.0..sroa_idx.i = getelementptr inbounds i8, ptr %88, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i, align 8, !alias.scope !47260 | |
%sunkaddr = getelementptr inbounds i8, ptr %89, i64 40 | |
%167 = load i1, ptr %sunkaddr, align 8 | |
br i1 %167, label %Sema.Block.WipAnonDecl.deinit.exit, label %Then.i | |
Then.i: ; preds = %TryRet | |
%168 = getelementptr inbounds %Sema.Block.WipAnonDecl, ptr %89, i64 0, i32 1, i32 1 | |
%169 = load ptr, ptr %168, align 8 | |
%.not4.i.i = icmp eq ptr %169, null | |
br i1 %.not4.i.i, label %Sema.Block.WipAnonDecl.deinit.exit, label %Then.lr.ph.i.i | |
Then.lr.ph.i.i: ; preds = %Then.i | |
%.sroa.2.0..sroa_idx.i.i492 = getelementptr inbounds %Sema.Block.WipAnonDecl, ptr %89, i64 0, i32 1, i32 0, i32 1 | |
%.sroa.2.0.copyload.i.i495 = load ptr, ptr %.sroa.2.0..sroa_idx.i.i492, align 8 | |
%sunkaddr838 = getelementptr inbounds i8, ptr %89, i64 8 | |
%.sroa.0.0.copyload.i.i = load ptr, ptr %sunkaddr838, align 8 | |
br label %Then.i.i494 | |
Then.i.i494: ; preds = %mem.Allocator.free__anon_3793.exit.i.i, %Then.lr.ph.i.i | |
%.05.i.i = phi ptr [ %169, %Then.lr.ph.i.i ], [ %170, %mem.Allocator.free__anon_3793.exit.i.i ] | |
%170 = load ptr, ptr %.05.i.i, align 8 | |
%171 = getelementptr inbounds %"linked_list.SinglyLinkedList([]u8).Node", ptr %.05.i.i, i64 0, i32 1 | |
%.unpack.i.i493 = load ptr, ptr %171, align 8 | |
%.elt2.i.i = getelementptr inbounds %"linked_list.SinglyLinkedList([]u8).Node", ptr %.05.i.i, i64 0, i32 1, i32 1 | |
%.unpack3.i.i = load i64, ptr %.elt2.i.i, align 8 | |
%172 = icmp eq i64 %.unpack3.i.i, 0 | |
%173 = insertvalue { ptr, i64 } undef, ptr %.unpack.i.i493, 0 | |
%174 = insertvalue { ptr, i64 } %173, i64 %.unpack3.i.i, 1 | |
%common.ret.op.i.i.i.i = select i1 %172, { ptr, i64 } { ptr inttoptr (i64 -6148914691236517206 to ptr), i64 0 }, { ptr, i64 } %174 | |
%175 = extractvalue { ptr, i64 } %common.ret.op.i.i.i.i, 1 | |
%176 = icmp eq i64 %175, 0 | |
br i1 %176, label %mem.Allocator.free__anon_3793.exit.i.i, label %Block.i.i.i | |
Block.i.i.i: ; preds = %Then.i.i494 | |
%177 = ptrtoint ptr %157 to i64 | |
%178 = extractvalue { ptr, i64 } %common.ret.op.i.i.i.i, 0 | |
tail call void @llvm.memset.p0.i64(ptr align 1 %178, i8 -86, i64 %175, i1 false) | |
%sunkaddr839 = getelementptr inbounds i8, ptr %.sroa.2.0.copyload.i.i495, i64 16 | |
%179 = load ptr, ptr %sunkaddr839, align 8 | |
tail call fastcc void %179(ptr nonnull align 1 %.sroa.0.0.copyload.i.i, ptr nonnull align 1 %178, i64 %175, i8 0, i64 %177) #37 | |
br label %mem.Allocator.free__anon_3793.exit.i.i | |
mem.Allocator.free__anon_3793.exit.i.i: ; preds = %Block.i.i.i, %Then.i.i494 | |
%.not.i.i = icmp eq ptr %170, null | |
br i1 %.not.i.i, label %Sema.Block.WipAnonDecl.deinit.exit, label %Then.i.i494 | |
Sema.Block.WipAnonDecl.deinit.exit: ; preds = %mem.Allocator.free__anon_3793.exit.i.i, %Then.i, %TryRet | |
%.sroa.1151.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1151.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont: ; preds = %Then5 | |
store i64 77, ptr %159, align 8, !noalias !47260 | |
%180 = getelementptr inbounds %value.Value.Payload.U64, ptr %159, i64 0, i32 1 | |
store i64 %156, ptr %180, align 8, !noalias !47260 | |
%181 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %88, i64 0, i32 1 | |
store i16 0, ptr %181, align 8, !alias.scope !47260 | |
store ptr %159, ptr %88, align 8, !alias.scope !47260 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %87, ptr %89, ptr @3160, ptr %88, i32 0) | |
%182 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %87, i64 0, i32 1 | |
%183 = load i16, ptr %182, align 4 | |
%.not450 = icmp eq i16 %183, 0 | |
br i1 %.not450, label %TryCont8, label %TryRet7 | |
TryRet7: ; preds = %TryCont | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %89) | |
%.sroa.1154.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %183, ptr %.sroa.1154.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont8: ; preds = %TryCont | |
%184 = load i32, ptr %87, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %86, ptr %1, i32 %184) | |
%185 = load i64, ptr %86, align 8 | |
store i64 %185, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %89) | |
br label %common.ret | |
Case9: ; preds = %type.Type.zigTypeTag.exit484 | |
%186 = icmp ult i64 %141, 68 | |
br i1 %186, label %type.Type.tag.exit.i499, label %Else.i.i497 | |
Else.i.i497: ; preds = %Case9 | |
%187 = inttoptr i64 %141 to ptr | |
%188 = load i64, ptr %187, align 8 | |
br label %type.Type.tag.exit.i499 | |
type.Type.tag.exit.i499: ; preds = %Else.i.i497, %Case9 | |
%common.ret.op.i.i498 = phi i64 [ %188, %Else.i.i497 ], [ %141, %Case9 ] | |
switch i64 %common.ret.op.i.i498, label %Block146 [ | |
i64 75, label %type.Type.isSlice.exit | |
i64 82, label %Then10 | |
i64 83, label %Then10 | |
i64 59, label %Then10 | |
i64 60, label %Then10 | |
] | |
type.Type.isSlice.exit: ; preds = %type.Type.tag.exit.i499 | |
%189 = inttoptr i64 %141 to ptr | |
%190 = load i64, ptr %189, align 8 | |
%191 = icmp eq i64 %190, 75 | |
%spec.select.i.i500 = select i1 %191, ptr %189, ptr null | |
%192 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i500, i64 0, i32 1, i32 10 | |
%193 = load i2, ptr %192, align 1 | |
%194 = icmp eq i2 %193, -2 | |
br i1 %194, label %Then10, label %Block146 | |
Then10: ; preds = %type.Type.isSlice.exit, %type.Type.tag.exit.i499, %type.Type.tag.exit.i499, %type.Type.tag.exit.i499, %type.Type.tag.exit.i499 | |
br i1 %.0.i777, label %Then12, label %Block16 | |
Then12: ; preds = %Then10 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %84, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%195 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %84, i64 0, i32 1 | |
%196 = load i16, ptr %195, align 4 | |
%.not448 = icmp eq i16 %196, 0 | |
br i1 %.not448, label %TryCont15, label %TryRet14 | |
TryRet14: ; preds = %Then12 | |
%.sroa.1162.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %196, ptr %.sroa.1162.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont15: ; preds = %Then12 | |
%197 = load i32, ptr %84, align 4 | |
br label %Block16 | |
Block16: ; preds = %TryCont15, %Then10 | |
%..sroa.speculated = phi i64 [ %storemerge.i.i, %Then10 ], [ %131, %TryCont15 ] | |
%198 = phi i32 [ %4, %Then10 ], [ %197, %TryCont15 ] | |
%.not.i505 = icmp eq i64 %6, 3 | |
br i1 %.not.i505, label %Block.i508, label %Else36 | |
Block.i508: ; preds = %Block16 | |
%.not797 = icmp eq ptr %5, @json.stringify__anon_115004__anon_146671 | |
br i1 %.not797, label %Then20, label %Then4.i513.preheader | |
Then4.i513.preheader: ; preds = %Block.i508 | |
%199 = load i8, ptr %5, align 1 | |
%.not14.i512 = icmp eq i8 %199, 112 | |
br i1 %.not14.i512, label %Loop.i510, label %Block.i523 | |
Loop.i510: ; preds = %Then4.i513.preheader | |
%200 = getelementptr inbounds i8, ptr %5, i64 1 | |
%201 = load i8, ptr %200, align 1 | |
%.not14.i512.1 = icmp eq i8 %201, 116 | |
br i1 %.not14.i512.1, label %Loop.i510.1, label %Block.i523 | |
Loop.i510.1: ; preds = %Loop.i510 | |
%202 = getelementptr inbounds i8, ptr %5, i64 2 | |
%203 = load i8, ptr %202, align 1 | |
%.not14.i512.2 = icmp eq i8 %203, 114 | |
br i1 %.not14.i512.2, label %Then20, label %Block.i523 | |
Then20: ; preds = %Loop.i510.1, %Block.i508 | |
%204 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2 | |
%.sroa.0.0.copyload.i515 = load ptr, ptr %204, align 8, !noalias !47268 | |
%.sroa.2.0..sroa_idx.i516 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2, i32 1 | |
%.sroa.2.0.copyload.i517 = load ptr, ptr %.sroa.2.0..sroa_idx.i516, align 8, !noalias !47268 | |
%205 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%206 = ptrtoint ptr %205 to i64 | |
%207 = load ptr, ptr %.sroa.2.0.copyload.i517, align 8, !noalias !47271 | |
%208 = tail call fastcc ptr %207(ptr nonnull align 1 %.sroa.0.0.copyload.i515, i64 56, i8 3, i64 %206) #37, !noalias !47271 | |
%.not.i.i518 = icmp eq ptr %208, null | |
br i1 %.not.i.i518, label %TryRet22, label %TryCont23 | |
Block.i523: ; preds = %Loop.i510.1, %Loop.i510, %Then4.i513.preheader | |
%.not798 = icmp eq ptr %5, @958 | |
br i1 %.not798, label %Then35, label %Then4.i528.preheader | |
Then4.i528.preheader: ; preds = %Block.i523 | |
%.not14.i527 = icmp eq i8 %199, 108 | |
br i1 %.not14.i527, label %Loop.i525, label %Else36 | |
Loop.i525: ; preds = %Then4.i528.preheader | |
%209 = getelementptr inbounds i8, ptr %5, i64 1 | |
%210 = load i8, ptr %209, align 1 | |
%.not14.i527.1 = icmp eq i8 %210, 101 | |
br i1 %.not14.i527.1, label %Loop.i525.1, label %Else36 | |
Loop.i525.1: ; preds = %Loop.i525 | |
%211 = getelementptr inbounds i8, ptr %5, i64 2 | |
%212 = load i8, ptr %211, align 1 | |
%.not14.i527.2 = icmp eq i8 %212, 110 | |
br i1 %.not14.i527.2, label %Then35, label %Else36 | |
TryRet22: ; preds = %Then20 | |
%.sroa.1166.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1166.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont23: ; preds = %Then20 | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(56) %208, i8 -86, i64 56, i1 false), !noalias !47271 | |
call fastcc void @type.Type.slicePtrFieldType(ptr noalias %83, i64 %141, ptr %208) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 8 dereferenceable(16) %204, i64 16, i1 false) | |
%213 = load ptr, ptr %1, align 8 | |
%214 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %214, label %type.Type.tag.exit.i532, label %Else.i.i530 | |
Else.i.i530: ; preds = %TryCont23 | |
%215 = inttoptr i64 %..sroa.speculated to ptr | |
%216 = load i64, ptr %215, align 8 | |
br label %type.Type.tag.exit.i532 | |
type.Type.tag.exit.i532: ; preds = %Else.i.i530, %TryCont23 | |
%common.ret.op.i.i531 = phi i64 [ %216, %Else.i.i530 ], [ %..sroa.speculated, %TryCont23 ] | |
switch i64 %common.ret.op.i.i531, label %Else.i533 [ | |
i64 75, label %Case.i535 | |
i64 58, label %type.Type.ptrIsMutable.exit | |
i64 59, label %type.Type.ptrIsMutable.exit | |
i64 60, label %type.Type.ptrIsMutable.exit | |
i64 76, label %type.Type.ptrIsMutable.exit | |
i64 78, label %type.Type.ptrIsMutable.exit | |
i64 52, label %type.Type.ptrIsMutable.exit | |
i64 53, label %type.Type.ptrIsMutable.exit | |
i64 80, label %type.Type.ptrIsMutable.exit | |
i64 82, label %type.Type.ptrIsMutable.exit | |
i64 77, label %Case2.i | |
i64 79, label %Case2.i | |
i64 51, label %Case2.i | |
i64 81, label %Case2.i | |
i64 83, label %Case2.i | |
] | |
Else.i533: ; preds = %type.Type.tag.exit.i532 | |
unreachable | |
Case.i535: ; preds = %type.Type.tag.exit.i532 | |
%217 = inttoptr i64 %..sroa.speculated to ptr | |
%218 = load i64, ptr %217, align 8 | |
%219 = icmp eq i64 %218, 75 | |
%spec.select.i.i534 = select i1 %219, ptr %217, ptr null | |
%220 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i534, i64 0, i32 1, i32 8 | |
%221 = load i1, ptr %220, align 1 | |
br label %type.Type.ptrIsMutable.exit | |
Case2.i: ; preds = %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532 | |
br label %type.Type.ptrIsMutable.exit | |
type.Type.ptrIsMutable.exit: ; preds = %Case2.i, %Case.i535, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532, %type.Type.tag.exit.i532 | |
%.0.i536 = phi i1 [ true, %Case2.i ], [ %221, %Case.i535 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ], [ false, %type.Type.tag.exit.i532 ] | |
%222 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %222, label %type.Type.isVolatilePtr.exit, label %type.Type.tag.exit.i538 | |
type.Type.tag.exit.i538: ; preds = %type.Type.ptrIsMutable.exit | |
%223 = inttoptr i64 %..sroa.speculated to ptr | |
%224 = load i64, ptr %223, align 8 | |
%cond.i = icmp eq i64 %224, 75 | |
br i1 %cond.i, label %type.Type.castTag__anon_79638.exit.i, label %type.Type.isVolatilePtr.exit | |
type.Type.castTag__anon_79638.exit.i: ; preds = %type.Type.tag.exit.i538 | |
%225 = inttoptr i64 %..sroa.speculated to ptr | |
%226 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %225, i64 0, i32 1, i32 9 | |
%227 = load i1, ptr %226, align 1 | |
br label %type.Type.isVolatilePtr.exit | |
type.Type.isVolatilePtr.exit: ; preds = %type.Type.castTag__anon_79638.exit.i, %type.Type.tag.exit.i538, %type.Type.ptrIsMutable.exit | |
%common.ret.op.i539 = phi i1 [ %227, %type.Type.castTag__anon_79638.exit.i ], [ false, %type.Type.tag.exit.i538 ], [ false, %type.Type.ptrIsMutable.exit ] | |
%228 = tail call fastcc i4 @type.Type.ptrAddressSpace(i64 %..sroa.speculated) | |
%.sroa.0168.0.copyload = load i64, ptr %83, align 8 | |
store i64 %.sroa.0168.0.copyload, ptr %81, align 8 | |
%229 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 1 | |
%230 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 6 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %229, i8 0, i64 20, i1 false) | |
store i4 %228, ptr %230, align 4 | |
%231 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 4 | |
store <2 x i16> zeroinitializer, ptr %231, align 8 | |
%232 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 3 | |
store i32 -1, ptr %232, align 4 | |
%233 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 7 | |
store i1 false, ptr %233, align 1 | |
%234 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 8 | |
store i1 %.0.i536, ptr %234, align 2 | |
%235 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 9 | |
store i1 %common.ret.op.i539, ptr %235, align 1 | |
%236 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %81, i64 0, i32 10 | |
store i2 0, ptr %236, align 8 | |
call fastcc void @type.Type.ptr(ptr noalias %80, ptr %82, ptr %213, ptr %81) | |
%237 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %80, i64 0, i32 1 | |
%238 = load i16, ptr %237, align 8 | |
%.not443 = icmp eq i16 %238, 0 | |
br i1 %.not443, label %TryCont25, label %TryRet24 | |
TryRet24: ; preds = %type.Type.isVolatilePtr.exit | |
%.sroa.1172.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %238, ptr %.sroa.1172.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont25: ; preds = %type.Type.isVolatilePtr.exit | |
%239 = load i64, ptr %80, align 8 | |
call fastcc void @Sema.resolveDefinedValue(ptr noalias %79, ptr %1, ptr %2, ptr %3, i32 %198) | |
%240 = getelementptr inbounds { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, ptr %79, i64 0, i32 1 | |
%241 = load i16, ptr %240, align 8 | |
%.not444 = icmp eq i16 %241, 0 | |
br i1 %.not444, label %TryCont27, label %TryRet26 | |
TryRet26: ; preds = %TryCont25 | |
%.sroa.1176.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %241, ptr %.sroa.1176.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont27: ; preds = %TryCont25 | |
%.sroa.2180.0..sroa_idx = getelementptr inbounds i8, ptr %79, i64 8 | |
%.sroa.2180.0.copyload = load i8, ptr %.sroa.2180.0..sroa_idx, align 8 | |
%.not445 = icmp eq i8 %.sroa.2180.0.copyload, 0 | |
br i1 %.not445, label %Block32, label %Then28 | |
Then28: ; preds = %TryCont27 | |
%242 = ptrtoint ptr %205 to i64 | |
%.sroa.0178.0.copyload = load i64, ptr %79, align 8 | |
%.sroa.2184.8.copyload = load i64, ptr %142, align 8 | |
tail call void @llvm.experimental.noalias.scope.decl(metadata !47274) | |
%sunkaddr843 = getelementptr inbounds i8, ptr %1, i64 24 | |
%.sroa.0.0.copyload.i540 = load ptr, ptr %sunkaddr843, align 8, !noalias !47274 | |
%sunkaddr840 = getelementptr inbounds i8, ptr %1, i64 32 | |
%.sroa.2.0.copyload.i542 = load ptr, ptr %sunkaddr840, align 8, !noalias !47274 | |
%243 = load ptr, ptr %.sroa.2.0.copyload.i542, align 8, !noalias !47277 | |
%244 = tail call fastcc ptr %243(ptr nonnull align 1 %.sroa.0.0.copyload.i540, i64 32, i8 3, i64 %242) #37, !noalias !47277 | |
%.not.i.i.i543 = icmp eq ptr %244, null | |
br i1 %.not.i.i.i543, label %TryRet30, label %TryCont31 | |
TryRet30: ; preds = %Then28 | |
%.sroa.1.0..sroa_idx.i544 = getelementptr inbounds i8, ptr %78, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i544, align 8, !alias.scope !47274 | |
%.sroa.1187.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1187.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont31: ; preds = %Then28 | |
%245 = getelementptr inbounds i8, ptr %244, i64 8 | |
store i64 89, ptr %244, align 8, !noalias !47274 | |
store i64 %.sroa.0178.0.copyload, ptr %245, align 8, !noalias !47274 | |
%.sroa.2676.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %244, i64 0, i32 1, i32 1 | |
store i64 %.sroa.2184.8.copyload, ptr %.sroa.2676.0..sroa_idx, align 8, !noalias !47274 | |
%.sroa.3677.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %244, i64 0, i32 1, i32 2 | |
store i64 0, ptr %.sroa.3677.0..sroa_idx, align 8, !noalias !47274 | |
%246 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %78, i64 0, i32 1 | |
store i16 0, ptr %246, align 8, !alias.scope !47274 | |
store ptr %244, ptr %78, align 8, !alias.scope !47274 | |
call fastcc void @Sema.addConstant(ptr noalias %77, ptr %1, i64 %239, ptr %78) | |
%247 = load i64, ptr %77, align 8 | |
store i64 %247, ptr %0, align 4 | |
br label %common.ret | |
Block32: ; preds = %TryCont27 | |
%248 = tail call fastcc i16 @Sema.requireRuntimeBlock(ptr %1, ptr %2, ptr %3, ptr @2042) | |
%.not446 = icmp eq i16 %248, 0 | |
br i1 %.not446, label %TryCont34, label %TryRet33 | |
TryRet33: ; preds = %Block32 | |
%.sroa.1191.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %248, ptr %.sroa.1191.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont34: ; preds = %Block32 | |
call fastcc void @Sema.Block.addTyOp(ptr noalias %76, ptr %2, i8 -104, i64 %239, i32 %198) | |
%249 = load i64, ptr %76, align 8 | |
store i64 %249, ptr %0, align 4 | |
br label %common.ret | |
Then35: ; preds = %Loop.i525.1, %Block.i523 | |
%250 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(16) %250, i64 16, i1 false) | |
%251 = load ptr, ptr %1, align 8 | |
%252 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %252, label %type.Type.tag.exit.i549, label %Else.i.i547 | |
Else.i.i547: ; preds = %Then35 | |
%253 = inttoptr i64 %..sroa.speculated to ptr | |
%254 = load i64, ptr %253, align 8 | |
br label %type.Type.tag.exit.i549 | |
type.Type.tag.exit.i549: ; preds = %Else.i.i547, %Then35 | |
%common.ret.op.i.i548 = phi i64 [ %254, %Else.i.i547 ], [ %..sroa.speculated, %Then35 ] | |
switch i64 %common.ret.op.i.i548, label %Else.i550 [ | |
i64 75, label %Case.i552 | |
i64 58, label %type.Type.ptrIsMutable.exit556 | |
i64 59, label %type.Type.ptrIsMutable.exit556 | |
i64 60, label %type.Type.ptrIsMutable.exit556 | |
i64 76, label %type.Type.ptrIsMutable.exit556 | |
i64 78, label %type.Type.ptrIsMutable.exit556 | |
i64 52, label %type.Type.ptrIsMutable.exit556 | |
i64 53, label %type.Type.ptrIsMutable.exit556 | |
i64 80, label %type.Type.ptrIsMutable.exit556 | |
i64 82, label %type.Type.ptrIsMutable.exit556 | |
i64 77, label %Case2.i553 | |
i64 79, label %Case2.i553 | |
i64 51, label %Case2.i553 | |
i64 81, label %Case2.i553 | |
i64 83, label %Case2.i553 | |
] | |
Else.i550: ; preds = %type.Type.tag.exit.i549 | |
unreachable | |
Case.i552: ; preds = %type.Type.tag.exit.i549 | |
%255 = inttoptr i64 %..sroa.speculated to ptr | |
%256 = load i64, ptr %255, align 8 | |
%257 = icmp eq i64 %256, 75 | |
%spec.select.i.i551 = select i1 %257, ptr %255, ptr null | |
%258 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %spec.select.i.i551, i64 0, i32 1, i32 8 | |
%259 = load i1, ptr %258, align 1 | |
br label %type.Type.ptrIsMutable.exit556 | |
Case2.i553: ; preds = %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549 | |
br label %type.Type.ptrIsMutable.exit556 | |
type.Type.ptrIsMutable.exit556: ; preds = %Case2.i553, %Case.i552, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549, %type.Type.tag.exit.i549 | |
%.0.i554 = phi i1 [ true, %Case2.i553 ], [ %259, %Case.i552 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ], [ false, %type.Type.tag.exit.i549 ] | |
%260 = icmp ult i64 %..sroa.speculated, 68 | |
br i1 %260, label %type.Type.isVolatilePtr.exit561, label %type.Type.tag.exit.i558 | |
type.Type.tag.exit.i558: ; preds = %type.Type.ptrIsMutable.exit556 | |
%261 = inttoptr i64 %..sroa.speculated to ptr | |
%262 = load i64, ptr %261, align 8 | |
%cond.i557 = icmp eq i64 %262, 75 | |
br i1 %cond.i557, label %type.Type.castTag__anon_79638.exit.i560, label %type.Type.isVolatilePtr.exit561 | |
type.Type.castTag__anon_79638.exit.i560: ; preds = %type.Type.tag.exit.i558 | |
%263 = inttoptr i64 %..sroa.speculated to ptr | |
%264 = getelementptr inbounds %type.Type.Payload.Pointer, ptr %263, i64 0, i32 1, i32 9 | |
%265 = load i1, ptr %264, align 1 | |
br label %type.Type.isVolatilePtr.exit561 | |
type.Type.isVolatilePtr.exit561: ; preds = %type.Type.castTag__anon_79638.exit.i560, %type.Type.tag.exit.i558, %type.Type.ptrIsMutable.exit556 | |
%common.ret.op.i559 = phi i1 [ %265, %type.Type.castTag__anon_79638.exit.i560 ], [ false, %type.Type.tag.exit.i558 ], [ false, %type.Type.ptrIsMutable.exit556 ] | |
%266 = tail call fastcc i4 @type.Type.ptrAddressSpace(i64 %..sroa.speculated) | |
store i64 12, ptr %74, align 8 | |
%267 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 1 | |
%268 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 6 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %267, i8 0, i64 20, i1 false) | |
store i4 %266, ptr %268, align 4 | |
%269 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 4 | |
store <2 x i16> zeroinitializer, ptr %269, align 8 | |
%270 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 3 | |
store i32 -1, ptr %270, align 4 | |
%271 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 7 | |
store i1 false, ptr %271, align 1 | |
%272 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 8 | |
store i1 %.0.i554, ptr %272, align 2 | |
%273 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 9 | |
store i1 %common.ret.op.i559, ptr %273, align 1 | |
%274 = getelementptr inbounds %type.Type.Payload.Pointer.Data, ptr %74, i64 0, i32 10 | |
store i2 0, ptr %274, align 8 | |
call fastcc void @type.Type.ptr(ptr noalias %73, ptr %75, ptr %251, ptr %74) | |
%275 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %73, i64 0, i32 1 | |
%276 = load i16, ptr %275, align 8 | |
%.not437 = icmp eq i16 %276, 0 | |
br i1 %.not437, label %TryCont38, label %TryRet37 | |
Else36: ; preds = %Loop.i525.1, %Loop.i525, %Then4.i528.preheader, %Block16 | |
%277 = load ptr, ptr %1, align 8 | |
store ptr %5, ptr %68, align 8 | |
%.fca.1.gep225 = getelementptr inbounds { ptr, i64 }, ptr %68, i64 0, i32 1 | |
store i64 %6, ptr %.fca.1.gep225, align 8 | |
%278 = getelementptr inbounds %97, ptr %68, i64 0, i32 1 | |
store i64 %131, ptr %278, align 8 | |
%.sroa.2684.0..sroa_idx = getelementptr inbounds %97, ptr %68, i64 0, i32 1, i32 0, i32 1 | |
store ptr %277, ptr %.sroa.2684.0..sroa_idx, align 8 | |
%279 = getelementptr i8, ptr %2, i64 160 | |
%.val644 = load i32, ptr %279, align 8, !noalias !47282 | |
call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) | |
%280 = getelementptr i8, ptr %277, i64 696 | |
%.val.i.i = load ptr, ptr %280, align 8, !noalias !47285 | |
%281 = zext i32 %.val644 to i64 | |
%282 = add nuw nsw i64 %281, 1 | |
%283 = tail call i64 @llvm.ctlz.i64(i64 %282, i1 true), !range !1878 | |
%284 = xor i64 %283, 63 | |
%.neg.i.i.i.i.i806 = shl nsw i64 -1, %284 | |
%285 = add nsw i64 %.neg.i.i.i.i.i806, %282 | |
%286 = getelementptr inbounds ptr, ptr %.val.i.i, i64 %284 | |
%287 = load ptr, ptr %286, align 8, !noalias !47285 | |
%288 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 1 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(16) %288, i64 16, i1 false), !noalias !47285 | |
%289 = load i64, ptr %7, align 4 | |
%.sroa.4.0..sroa_idx.i = getelementptr inbounds i8, ptr %7, i64 8 | |
%.sroa.4.0.copyload.i = load i7, ptr %.sroa.4.0..sroa_idx.i, align 4, !noalias !47285 | |
%.sroa.5.0..sroa_idx.i = getelementptr inbounds i8, ptr %7, i64 9 | |
%switch.i.i807 = icmp ult i7 %.sroa.4.0.copyload.i, 5 | |
%290 = getelementptr %Module.Decl, ptr %287, i64 %285, i32 5 | |
%.val3.i.i808 = load ptr, ptr %290, align 8, !noalias !47288 | |
%291 = getelementptr i8, ptr %.val3.i.i808, i64 8 | |
%.val3.val.i.i809 = load ptr, ptr %291, align 8, !noalias !47288 | |
br i1 %switch.i.i807, label %Module.LazySrcLoc.toSrcLoc.exit.i812, label %Case1.i.i810 | |
Case1.i.i810: ; preds = %Else36 | |
%292 = getelementptr inbounds %Module.Decl, ptr %287, i64 %285, i32 11 | |
%293 = load i32, ptr %292, align 8, !noalias !47288 | |
br label %Module.LazySrcLoc.toSrcLoc.exit.i812 | |
Module.LazySrcLoc.toSrcLoc.exit.i812: ; preds = %Case1.i.i810, %Else36 | |
%.sink.i.i811 = phi i32 [ %293, %Case1.i.i810 ], [ 0, %Else36 ] | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.5.0..sroa_idx.i, i64 3, i1 false) | |
%.sroa.010.0.copyload.i = load ptr, ptr %11, align 8, !noalias !47291 | |
%.sroa.411.0..sroa_idx.i = getelementptr inbounds i8, ptr %11, i64 8 | |
%.sroa.411.0.copyload.i = load ptr, ptr %.sroa.411.0..sroa_idx.i, align 8, !noalias !47291 | |
%294 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%295 = ptrtoint ptr %294 to i64 | |
%296 = load ptr, ptr %.sroa.411.0.copyload.i, align 8, !noalias !47294 | |
%297 = tail call fastcc ptr %296(ptr nonnull align 1 %.sroa.010.0.copyload.i, i64 72, i8 3, i64 %295) #37, !noalias !47294 | |
%.not.i.i.i.i = icmp eq ptr %297, null | |
br i1 %.not.i.i.i.i, label %Module.ErrorMsg.create__anon_226000.exit.thread.i, label %TryCont.i.i814 | |
TryCont.i.i814: ; preds = %Module.LazySrcLoc.toSrcLoc.exit.i812 | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(72) %297, i8 -86, i64 72, i1 false), !noalias !47294 | |
call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9), !noalias !47291 | |
call fastcc void @fmt.allocPrint__anon_226002(ptr noalias %9, ptr %11, ptr %68), !noalias !47299 | |
%298 = getelementptr inbounds { { ptr, i64 }, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%299 = load i16, ptr %298, align 8, !noalias !47299 | |
%.not.i.i.i813 = icmp eq i16 %299, 0 | |
br i1 %.not.i.i.i813, label %TryCont.i818, label %TryRet1.i.i816 | |
TryRet1.i.i816: ; preds = %TryCont.i.i814 | |
%300 = ptrtoint ptr %294 to i64 | |
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9), !noalias !47291 | |
%301 = getelementptr i8, ptr %.sroa.411.0.copyload.i, i64 16 | |
%.val10.val.i.i815 = load ptr, ptr %301, align 8, !noalias !47291 | |
tail call fastcc void %.val10.val.i.i815(ptr nonnull align 1 %.sroa.010.0.copyload.i, ptr nonnull align 1 %297, i64 72, i8 3, i64 %300) #37, !noalias !47291 | |
br label %Module.ErrorMsg.create__anon_226000.exit.thread.i | |
Module.ErrorMsg.create__anon_226000.exit.thread.i: ; preds = %TryRet1.i.i816, %Module.LazySrcLoc.toSrcLoc.exit.i812 | |
%.sroa.49.0.ph.i = phi i16 [ 1, %Module.LazySrcLoc.toSrcLoc.exit.i812 ], [ %299, %TryRet1.i.i816 ] | |
call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) | |
br label %Sema.fail__anon_135111.exit | |
TryCont.i818: ; preds = %TryCont.i.i814 | |
%.fca.0.load.i.i.i = load ptr, ptr %9, align 8, !noalias !47299 | |
%.fca.1.gep.i.i.i = getelementptr inbounds { ptr, i64 }, ptr %9, i64 0, i32 1 | |
%.fca.1.load.i.i.i = load i64, ptr %.fca.1.gep.i.i.i, align 8, !noalias !47299 | |
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9), !noalias !47291 | |
store ptr %.val3.val.i.i809, ptr %297, align 8, !noalias !47291 | |
%.sroa.416.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 8 | |
store i32 %.sink.i.i811, ptr %.sroa.416.0..sroa.012.0..sroa_idx.i, align 8, !noalias !47291 | |
%.sroa.517.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 12 | |
store i64 %289, ptr %.sroa.517.0..sroa.012.0..sroa_idx.i, align 4 | |
%.sroa.618.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 20 | |
store i7 %.sroa.4.0.copyload.i, ptr %.sroa.618.0..sroa.012.0..sroa_idx.i, align 4, !noalias !47291 | |
%.sroa.719.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 21 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.719.0..sroa.012.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.7.i, i64 3, i1 false) | |
%.sroa.820.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 24 | |
store ptr %.fca.0.load.i.i.i, ptr %.sroa.820.0..sroa.012.0..sroa_idx.i, align 8, !noalias !47291 | |
%.sroa.9.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 32 | |
store i64 %.fca.1.load.i.i.i, ptr %.sroa.9.0..sroa.012.0..sroa_idx.i, align 8, !noalias !47291 | |
%.sroa.10.0..sroa.012.0..sroa_idx.i = getelementptr inbounds i8, ptr %297, i64 40 | |
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.10.0..sroa.012.0..sroa_idx.i, i8 0, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.7.i) | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) | |
%302 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %297) | |
br label %Sema.fail__anon_135111.exit | |
Sema.fail__anon_135111.exit: ; preds = %TryCont.i818, %Module.ErrorMsg.create__anon_226000.exit.thread.i | |
%common.ret.op.i817 = phi i16 [ %302, %TryCont.i818 ], [ %.sroa.49.0.ph.i, %Module.ErrorMsg.create__anon_226000.exit.thread.i ] | |
%.sroa.1227.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i817, ptr %.sroa.1227.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet37: ; preds = %type.Type.isVolatilePtr.exit561 | |
%.sroa.1198.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %276, ptr %.sroa.1198.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont38: ; preds = %type.Type.isVolatilePtr.exit561 | |
%303 = load i64, ptr %73, align 8 | |
call fastcc void @Sema.resolveDefinedValue(ptr noalias %72, ptr %1, ptr %2, ptr %3, i32 %198) | |
%304 = getelementptr inbounds { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, ptr %72, i64 0, i32 1 | |
%305 = load i16, ptr %304, align 8 | |
%.not438 = icmp eq i16 %305, 0 | |
br i1 %.not438, label %TryCont40, label %TryRet39 | |
TryRet39: ; preds = %TryCont38 | |
%.sroa.1202.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %305, ptr %.sroa.1202.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont40: ; preds = %TryCont38 | |
%.sroa.2206.0..sroa_idx = getelementptr inbounds i8, ptr %72, i64 8 | |
%.sroa.2206.0.copyload = load i8, ptr %.sroa.2206.0..sroa_idx, align 8 | |
%.not439 = icmp eq i8 %.sroa.2206.0.copyload, 0 | |
br i1 %.not439, label %Block45, label %Then41 | |
Then41: ; preds = %TryCont40 | |
%.sroa.0204.0.copyload = load i64, ptr %72, align 8 | |
%.sroa.2211.8.copyload = load i64, ptr %142, align 8 | |
tail call void @llvm.experimental.noalias.scope.decl(metadata !47302) | |
%sunkaddr841 = getelementptr inbounds i8, ptr %1, i64 24 | |
%.sroa.0.0.copyload.i562 = load ptr, ptr %sunkaddr841, align 8, !noalias !47302 | |
%.sroa.2.0..sroa_idx.i563 = getelementptr inbounds %Sema, ptr %1, i64 0, i32 2, i32 1 | |
%.sroa.2.0.copyload.i564 = load ptr, ptr %.sroa.2.0..sroa_idx.i563, align 8, !noalias !47302 | |
%306 = tail call fastcc ptr @llvm.returnaddress(i32 0) | |
%307 = ptrtoint ptr %306 to i64 | |
%308 = load ptr, ptr %.sroa.2.0.copyload.i564, align 8, !noalias !47305 | |
%309 = tail call fastcc ptr %308(ptr nonnull align 1 %.sroa.0.0.copyload.i562, i64 32, i8 3, i64 %307) #37, !noalias !47305 | |
%.not.i.i.i565 = icmp eq ptr %309, null | |
br i1 %.not.i.i.i565, label %TryRet43, label %TryCont44 | |
TryRet43: ; preds = %Then41 | |
%.sroa.1.0..sroa_idx.i566 = getelementptr inbounds i8, ptr %71, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i566, align 8, !alias.scope !47302 | |
%.sroa.1214.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1214.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont44: ; preds = %Then41 | |
%310 = getelementptr inbounds i8, ptr %309, i64 8 | |
store i64 89, ptr %309, align 8, !noalias !47302 | |
store i64 %.sroa.0204.0.copyload, ptr %310, align 8, !noalias !47302 | |
%.sroa.2681.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %309, i64 0, i32 1, i32 1 | |
store i64 %.sroa.2211.8.copyload, ptr %.sroa.2681.0..sroa_idx, align 8, !noalias !47302 | |
%.sroa.3682.0..sroa_idx = getelementptr inbounds %value.Value.Payload.FieldPtr, ptr %309, i64 0, i32 1, i32 2 | |
store i64 1, ptr %.sroa.3682.0..sroa_idx, align 8, !noalias !47302 | |
%311 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %71, i64 0, i32 1 | |
store i16 0, ptr %311, align 8, !alias.scope !47302 | |
store ptr %309, ptr %71, align 8, !alias.scope !47302 | |
call fastcc void @Sema.addConstant(ptr noalias %70, ptr %1, i64 %303, ptr %71) | |
%312 = load i64, ptr %70, align 8 | |
store i64 %312, ptr %0, align 4 | |
br label %common.ret | |
Block45: ; preds = %TryCont40 | |
%313 = tail call fastcc i16 @Sema.requireRuntimeBlock(ptr %1, ptr %2, ptr %3, ptr @2042) | |
%.not440 = icmp eq i16 %313, 0 | |
br i1 %.not440, label %TryCont47, label %TryRet46 | |
TryRet46: ; preds = %Block45 | |
%.sroa.1218.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %313, ptr %.sroa.1218.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont47: ; preds = %Block45 | |
call fastcc void @Sema.Block.addTyOp(ptr noalias %69, ptr %2, i8 -105, i64 %303, i32 %198) | |
%314 = load i64, ptr %69, align 8 | |
store i64 %314, ptr %0, align 4 | |
br label %common.ret | |
Case49: ; preds = %type.Type.zigTypeTag.exit484 | |
call fastcc void @Sema.resolveConstValue(ptr noalias %67, ptr %1, ptr %2, ptr @2043, i32 %4, ptr @crypto.tls.Client.init__anon_99877__anon_130457, i64 0) | |
%315 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %67, i64 0, i32 1 | |
%316 = load i16, ptr %315, align 8 | |
%.not405 = icmp eq i16 %316, 0 | |
br i1 %.not405, label %TryCont51, label %TryRet50 | |
TryRet50: ; preds = %Case49 | |
%.sroa.1231.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %316, ptr %.sroa.1231.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont51: ; preds = %Case49 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %66, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%317 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %66, i64 0, i32 1 | |
%318 = load i16, ptr %317, align 4 | |
%.not406 = icmp eq i16 %318, 0 | |
br i1 %.not406, label %TryCont53, label %TryRet52 | |
TryRet52: ; preds = %TryCont51 | |
%.sroa.1235.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %318, ptr %.sroa.1235.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont53: ; preds = %TryCont51 | |
%319 = load i32, ptr %66, align 4 | |
br i1 %.0.i777, label %Then54, label %Block58 | |
Then54: ; preds = %TryCont53 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %65, ptr %1, ptr %2, ptr %3, i32 %319, ptr %3) | |
%320 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %65, i64 0, i32 1 | |
%321 = load i16, ptr %320, align 4 | |
%.not436 = icmp eq i16 %321, 0 | |
br i1 %.not436, label %TryCont57, label %TryRet56 | |
TryRet56: ; preds = %Then54 | |
%.sroa.1239.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %321, ptr %.sroa.1239.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont57: ; preds = %Then54 | |
%322 = load i32, ptr %65, align 4 | |
br label %Block58 | |
Block58: ; preds = %TryCont57, %TryCont53 | |
%323 = phi i32 [ %322, %TryCont57 ], [ %319, %TryCont53 ] | |
call fastcc void @Sema.resolveDefinedValue(ptr noalias %64, ptr %1, ptr %2, ptr %3, i32 %323) | |
%324 = getelementptr inbounds { { %value.Value, i8, [7 x i8] }, i16, [6 x i8] }, ptr %64, i64 0, i32 1 | |
%325 = load i16, ptr %324, align 8 | |
%326 = icmp eq i16 %325, 0 | |
br i1 %326, label %Then59, label %Else60 | |
Then59: ; preds = %Block58 | |
%327 = load i64, ptr %64, align 8 | |
call fastcc void @value.Value.toType(ptr noalias %62, i64 %327, ptr %63) | |
%328 = load i64, ptr %62, align 8 | |
%329 = call fastcc i5 @type.Type.zigTypeTag(i64 %328) | |
%330 = zext i5 %329 to i32 | |
switch i32 %330, label %Else62 [ | |
i32 15, label %Case63 | |
i32 17, label %Case84 | |
i32 16, label %Case107 | |
i32 8, label %Case125 | |
i32 19, label %Case125 | |
] | |
Else60: ; preds = %Block58 | |
tail call fastcc void @builtin.default_panic(ptr @builtin.panic_messages.unwrap_error__anon_7066, i64 23) | |
unreachable | |
Else62: ; preds = %Then59 | |
%331 = load ptr, ptr %1, align 8 | |
store i64 %328, ptr %28, align 8 | |
%.sroa.2733.0..sroa_idx = getelementptr inbounds i8, ptr %28, i64 8 | |
store ptr %331, ptr %.sroa.2733.0..sroa_idx, align 8 | |
%332 = getelementptr i8, ptr %2, i64 160 | |
%.val643 = load i32, ptr %332, align 8, !noalias !47310 | |
%333 = call fastcc i16 @Sema.fail__anon_135181(ptr %1, i32 %.val643, ptr %3, ptr %28) | |
%.sroa.1353.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %333, ptr %.sroa.1353.0..sroa_idx, align 4 | |
br label %common.ret | |
Case63: ; preds = %Then59 | |
%334 = icmp ult i64 %328, 68 | |
br i1 %334, label %Else65, label %Block.i571 | |
Block.i571: ; preds = %Case63 | |
%335 = inttoptr i64 %328 to ptr | |
%336 = load i64, ptr %335, align 8 | |
%337 = icmp eq i64 %336, 92 | |
br i1 %337, label %Then64, label %Else65 | |
Then64: ; preds = %Block.i571 | |
%338 = inttoptr i64 %328 to ptr | |
%339 = getelementptr inbounds %type.Type.Payload.ErrorSet, ptr %338, i64 0, i32 1 | |
%340 = load ptr, ptr %339, align 8 | |
call fastcc void @"array_hash_map.ArrayHashMapUnmanaged([]const u8,void,array_hash_map.StringContext,true).getEntry"(ptr noalias %61, ptr %340, ptr %5, i64 %6) | |
%341 = getelementptr inbounds { %"array_hash_map.ArrayHashMapUnmanaged([]const u8,void,array_hash_map.StringContext,true).Entry", i8, [7 x i8] }, ptr %61, i64 0, i32 1 | |
%342 = load i8, ptr %341, align 8 | |
%.not432 = icmp eq i8 %342, 0 | |
br i1 %.not432, label %Block68, label %Then66 | |
Else65: ; preds = %Block.i571, %Case63 | |
%343 = load ptr, ptr %1, align 8 | |
call fastcc void @Module.getErrorValue(ptr noalias %59, ptr %343, ptr %5, i64 %6) | |
%344 = getelementptr inbounds { %"hash_map.HashMapUnmanaged([]const u8,u32,hash_map.StringContext,80).KV", i16, [6 x i8] }, ptr %59, i64 0, i32 1 | |
%345 = load i16, ptr %344, align 8 | |
%.not427 = icmp eq i16 %345, 0 | |
br i1 %.not427, label %Block72, label %TryRet70 | |
Then66: ; preds = %Then64 | |
%346 = load ptr, ptr %61, align 8 | |
br label %Block72 | |
Block68: ; preds = %Then64 | |
%347 = load ptr, ptr %1, align 8 | |
store ptr %5, ptr %60, align 8 | |
%.fca.1.gep247 = getelementptr inbounds { ptr, i64 }, ptr %60, i64 0, i32 1 | |
store i64 %6, ptr %.fca.1.gep247, align 8 | |
%348 = getelementptr inbounds %97, ptr %60, i64 0, i32 1 | |
store i64 %328, ptr %348, align 8 | |
%.sroa.2698.0..sroa_idx = getelementptr inbounds %97, ptr %60, i64 0, i32 1, i32 0, i32 1 | |
store ptr %347, ptr %.sroa.2698.0..sroa_idx, align 8 | |
%349 = getelementptr i8, ptr %2, i64 160 | |
%.val642 = load i32, ptr %349, align 8, !noalias !47313 | |
%350 = call fastcc i16 @Sema.fail__anon_135114(ptr %1, i32 %.val642, ptr %3, ptr %60) | |
%.sroa.1249.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %350, ptr %.sroa.1249.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet70: ; preds = %Else65 | |
%.sroa.1255.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %345, ptr %.sroa.1255.0..sroa_idx, align 4 | |
br label %common.ret | |
Block72: ; preds = %Then66, %Else65 | |
%.sink = phi ptr [ %346, %Then66 ], [ %59, %Else65 ] | |
%351 = icmp ult i64 %328, 68 | |
%sunkaddr842 = getelementptr inbounds i8, ptr %.sink, i64 8 | |
%.fca.1.load = load i64, ptr %sunkaddr842, align 8 | |
%.unpack.pn = load ptr, ptr %.sink, align 8 | |
%352 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%353 = load ptr, ptr %352, align 8, !noalias !47316 | |
%354 = getelementptr inbounds %Sema, ptr %353, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %354, i64 16, i1 false), !noalias !47319 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx835 = getelementptr inbounds i8, ptr %17, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx835, i8 0, i64 16, i1 false), !noalias !47319 | |
%.sroa.2700.0..sroa_idx = getelementptr inbounds i8, ptr %58, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2700.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %17, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) | |
store ptr %2, ptr %58, align 8 | |
%.sroa.3701.0..sroa_idx = getelementptr inbounds i8, ptr %58, i64 40 | |
store i1 false, ptr %.sroa.3701.0..sroa_idx, align 8 | |
br i1 %351, label %type.Type.tag.exit.i575, label %Else.i.i573 | |
Else.i.i573: ; preds = %Block72 | |
%355 = inttoptr i64 %328 to ptr | |
%356 = load i64, ptr %355, align 8 | |
br label %type.Type.tag.exit.i575 | |
type.Type.tag.exit.i575: ; preds = %Else.i.i573, %Block72 | |
%common.ret.op.i.i574 = phi i64 [ %356, %Else.i.i573 ], [ %328, %Block72 ] | |
switch i64 %common.ret.op.i.i574, label %Then73 [ | |
i64 32, label %Else74 | |
i64 94, label %type.Type.isAnyError.exit | |
] | |
type.Type.isAnyError.exit: ; preds = %type.Type.tag.exit.i575 | |
%357 = inttoptr i64 %328 to ptr | |
%358 = load i64, ptr %357, align 8 | |
%359 = icmp eq i64 %358, 94 | |
%spec.select.i.i577 = select i1 %359, ptr %357, ptr null | |
%360 = getelementptr inbounds %type.Type.Payload.ErrorSetInferred, ptr %spec.select.i.i577, i64 0, i32 1 | |
%361 = load ptr, ptr %360, align 8 | |
%362 = getelementptr inbounds %Module.Fn.InferredErrorSet, ptr %361, i64 0, i32 3 | |
%363 = load i1, ptr %362, align 1 | |
br i1 %363, label %Else74, label %Then73 | |
Then73: ; preds = %type.Type.isAnyError.exit, %type.Type.tag.exit.i575 | |
store i64 %328, ptr %57, align 8 | |
store ptr %.sroa.2700.0..sroa_idx, ptr %56, align 8, !alias.scope !47322 | |
%.sroa.2.0..sroa_idx.i581 = getelementptr inbounds i8, ptr %56, i64 8 | |
store ptr @heap.arena_allocator.ArenaAllocator.allocator__anon_3789, ptr %.sroa.2.0..sroa_idx.i581, align 8, !alias.scope !47322 | |
call fastcc void @type.Type.copy(ptr noalias %55, ptr %57, ptr %56) | |
%364 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %55, i64 0, i32 1 | |
%365 = load i16, ptr %364, align 8 | |
%.not431 = icmp eq i16 %365, 0 | |
br i1 %.not431, label %Then73.Block79_crit_edge, label %TryRet75 | |
Then73.Block79_crit_edge: ; preds = %Then73 | |
%.pre803 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%.pre804 = ptrtoint ptr %.pre803 to i64 | |
br label %Block79 | |
Else74: ; preds = %type.Type.isAnyError.exit, %type.Type.tag.exit.i575 | |
call void @llvm.experimental.noalias.scope.decl(metadata !47325) | |
%366 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%367 = ptrtoint ptr %366 to i64 | |
%368 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2700.0..sroa_idx, i64 24, i8 3, i64 %367) #37, !noalias !47328 | |
%.not.i.i.i586 = icmp eq ptr %368, null | |
br i1 %.not.i.i.i586, label %TryRet77, label %type.Type.Tag.create__anon_135116.exit | |
type.Type.Tag.create__anon_135116.exit: ; preds = %Else74 | |
%369 = ptrtoint ptr %366 to i64 | |
store i64 93, ptr %368, align 8, !noalias !47325 | |
%370 = getelementptr inbounds %type.Type.Payload.Name, ptr %368, i64 0, i32 1 | |
store ptr %.unpack.pn, ptr %370, align 8, !noalias !47325 | |
%.repack1.i = getelementptr inbounds %type.Type.Payload.Name, ptr %368, i64 0, i32 1, i32 1 | |
store i64 %.fca.1.load, ptr %.repack1.i, align 8, !noalias !47325 | |
%371 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %54, i64 0, i32 1 | |
store i16 0, ptr %371, align 8, !alias.scope !47325 | |
store ptr %368, ptr %54, align 8, !alias.scope !47325 | |
br label %Block79 | |
TryRet75: ; preds = %Then73 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %58) | |
%.sroa.1260.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %365, ptr %.sroa.1260.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet77: ; preds = %Else74 | |
%.sroa.1.0..sroa_idx.i587 = getelementptr inbounds i8, ptr %54, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i587, align 8, !alias.scope !47325 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %58) | |
%.sroa.1263.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1263.0..sroa_idx, align 4 | |
br label %common.ret | |
Block79: ; preds = %type.Type.Tag.create__anon_135116.exit, %Then73.Block79_crit_edge | |
%.pre-phi805 = phi i64 [ %.pre804, %Then73.Block79_crit_edge ], [ %369, %type.Type.Tag.create__anon_135116.exit ] | |
%372 = phi ptr [ %55, %Then73.Block79_crit_edge ], [ %54, %type.Type.Tag.create__anon_135116.exit ] | |
call void @llvm.experimental.noalias.scope.decl(metadata !47333) | |
%373 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2700.0..sroa_idx, i64 24, i8 3, i64 %.pre-phi805) #37, !noalias !47336 | |
%.not.i.i.i594 = icmp eq ptr %373, null | |
br i1 %.not.i.i.i594, label %TryRet80, label %TryCont81 | |
TryRet80: ; preds = %Block79 | |
%.sroa.1.0..sroa_idx.i595 = getelementptr inbounds i8, ptr %53, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i595, align 8, !alias.scope !47333 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %58) | |
%.sroa.1278.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1278.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont81: ; preds = %Block79 | |
%374 = getelementptr inbounds i8, ptr %373, i64 8 | |
store i64 102, ptr %373, align 8, !noalias !47333 | |
store ptr %.unpack.pn, ptr %374, align 8, !noalias !47333 | |
%.sroa.2710.0..sroa_idx = getelementptr inbounds %value.Value.Payload.Error, ptr %373, i64 0, i32 1, i32 0, i32 1 | |
store i64 %.fca.1.load, ptr %.sroa.2710.0..sroa_idx, align 8, !noalias !47333 | |
%375 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %53, i64 0, i32 1 | |
store i16 0, ptr %375, align 8, !alias.scope !47333 | |
store ptr %373, ptr %53, align 8, !alias.scope !47333 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %52, ptr %58, ptr %372, ptr %53, i32 0) | |
%376 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %52, i64 0, i32 1 | |
%377 = load i16, ptr %376, align 4 | |
%.not430 = icmp eq i16 %377, 0 | |
br i1 %.not430, label %TryCont83, label %TryRet82 | |
TryRet82: ; preds = %TryCont81 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %58) | |
%.sroa.1281.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %377, ptr %.sroa.1281.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont83: ; preds = %TryCont81 | |
%378 = load i32, ptr %52, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %51, ptr %1, i32 %378) | |
%379 = load i64, ptr %51, align 8 | |
store i64 %379, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %58) | |
br label %common.ret | |
Case84: ; preds = %Then59 | |
%380 = call fastcc ptr @type.Type.getNamespace(i64 %328) | |
%.not417 = icmp eq ptr %380, null | |
br i1 %.not417, label %Block92, label %Then85 | |
Then85: ; preds = %Case84 | |
call fastcc void @Sema.namespaceLookupRef(ptr noalias %50, ptr %1, ptr %2, ptr %3, ptr %380, ptr %5, i64 %6) | |
%381 = getelementptr inbounds { { i32, i8, [3 x i8] }, i16, [2 x i8] }, ptr %50, i64 0, i32 1 | |
%382 = load i16, ptr %381, align 4 | |
%.not424 = icmp eq i16 %382, 0 | |
br i1 %.not424, label %TryCont88, label %TryRet87 | |
TryRet87: ; preds = %Then85 | |
%.sroa.1285.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %382, ptr %.sroa.1285.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont88: ; preds = %Then85 | |
%.sroa.2288.0..sroa_idx = getelementptr inbounds i8, ptr %50, i64 4 | |
%.sroa.2288.0.copyload = load i8, ptr %.sroa.2288.0..sroa_idx, align 4 | |
%.not425 = icmp eq i8 %.sroa.2288.0.copyload, 0 | |
br i1 %.not425, label %Block92, label %Then89 | |
Then89: ; preds = %TryCont88 | |
%.sroa.0287.0.copyload = load i32, ptr %50, align 4 | |
store i32 %.sroa.0287.0.copyload, ptr %0, align 4 | |
%.sroa.2291.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 0, ptr %.sroa.2291.0..sroa_idx, align 4 | |
br label %common.ret | |
Block92: ; preds = %TryCont88, %Case84 | |
call fastcc void @Sema.resolveTypeFields(ptr noalias %49, ptr %1, ptr %62) | |
%383 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %49, i64 0, i32 1 | |
%384 = load i16, ptr %383, align 8 | |
%.not418 = icmp eq i16 %384, 0 | |
br i1 %.not418, label %TryCont94, label %TryRet93 | |
TryRet93: ; preds = %Block92 | |
%.sroa.1295.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %384, ptr %.sroa.1295.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont94: ; preds = %Block92 | |
%385 = load i64, ptr %49, align 8 | |
%386 = icmp ult i64 %385, 68 | |
br i1 %386, label %Block106, label %type.Type.tag.exit.i599 | |
type.Type.tag.exit.i599: ; preds = %TryCont94 | |
%387 = inttoptr i64 %385 to ptr | |
%388 = load i64, ptr %387, align 8, !noalias !47341 | |
%cond.i598 = icmp eq i64 %388, 101 | |
br i1 %cond.i598, label %Then95, label %Block106 | |
Then95: ; preds = %type.Type.tag.exit.i599 | |
%389 = inttoptr i64 %385 to ptr | |
%390 = getelementptr inbounds %type.Type.Payload.Union, ptr %389, i64 0, i32 1 | |
%391 = load ptr, ptr %390, align 8, !noalias !47341 | |
%.sroa.0.0.copyload2.i = load i64, ptr %391, align 8, !noalias !47341 | |
call fastcc void @type.Type.enumFieldIndex(ptr noalias %48, i64 %.sroa.0.0.copyload2.i, ptr %5, i64 %6) | |
%392 = getelementptr inbounds { i64, i8, [7 x i8] }, ptr %48, i64 0, i32 1 | |
%393 = load i8, ptr %392, align 8 | |
%.not420 = icmp eq i8 %393, 0 | |
br i1 %.not420, label %Block106, label %Then97 | |
Then97: ; preds = %Then95 | |
%394 = load i64, ptr %48, align 8 | |
%395 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%396 = load ptr, ptr %395, align 8, !noalias !47344 | |
%397 = getelementptr inbounds %Sema, ptr %396, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %397, i64 16, i1 false), !noalias !47347 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx836 = getelementptr inbounds i8, ptr %16, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx836, i8 0, i64 16, i1 false), !noalias !47347 | |
%.sroa.2717.0..sroa_idx = getelementptr inbounds i8, ptr %47, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2717.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %16, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) | |
store ptr %2, ptr %47, align 8 | |
%.sroa.3718.0..sroa_idx = getelementptr inbounds i8, ptr %47, i64 40 | |
store i1 false, ptr %.sroa.3718.0..sroa_idx, align 8 | |
store i64 %.sroa.0.0.copyload2.i, ptr %46, align 8 | |
store ptr %.sroa.2717.0..sroa_idx, ptr %45, align 8, !alias.scope !47350 | |
%.sroa.2.0..sroa_idx.i603 = getelementptr inbounds i8, ptr %45, i64 8 | |
store ptr @heap.arena_allocator.ArenaAllocator.allocator__anon_3789, ptr %.sroa.2.0..sroa_idx.i603, align 8, !alias.scope !47350 | |
call fastcc void @type.Type.copy(ptr noalias %44, ptr %46, ptr %45) | |
%398 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %44, i64 0, i32 1 | |
%399 = load i16, ptr %398, align 8 | |
%.not421 = icmp eq i16 %399, 0 | |
br i1 %.not421, label %TryCont100, label %TryRet99 | |
TryRet99: ; preds = %Then97 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %47) | |
%.sroa.1300.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %399, ptr %.sroa.1300.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont100: ; preds = %Then97 | |
%400 = load i64, ptr %44, align 8 | |
store i64 %400, ptr %43, align 8 | |
call void @llvm.experimental.noalias.scope.decl(metadata !47353) | |
%401 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%402 = ptrtoint ptr %401 to i64 | |
%403 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2717.0..sroa_idx, i64 16, i8 3, i64 %402) #37, !noalias !47356 | |
%.not.i.i.i608 = icmp eq ptr %403, null | |
br i1 %.not.i.i.i608, label %TryRet101, label %TryCont102 | |
TryRet101: ; preds = %TryCont100 | |
%.sroa.1.0..sroa_idx.i609 = getelementptr inbounds i8, ptr %42, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i609, align 8, !alias.scope !47353 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %47) | |
%.sroa.1303.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1303.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont102: ; preds = %TryCont100 | |
%404 = trunc i64 %394 to i32 | |
%405 = getelementptr inbounds i8, ptr %403, i64 12 | |
store i32 -1431655766, ptr %405, align 1, !noalias !47353 | |
store i64 101, ptr %403, align 8, !noalias !47353 | |
%406 = getelementptr inbounds %value.Value.Payload.U32, ptr %403, i64 0, i32 1 | |
store i32 %404, ptr %406, align 4, !noalias !47353 | |
%407 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %42, i64 0, i32 1 | |
store i16 0, ptr %407, align 8, !alias.scope !47353 | |
store ptr %403, ptr %42, align 8, !alias.scope !47353 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %41, ptr %47, ptr %43, ptr %42, i32 0) | |
%408 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %41, i64 0, i32 1 | |
%409 = load i16, ptr %408, align 4 | |
%.not423 = icmp eq i16 %409, 0 | |
br i1 %.not423, label %TryCont104, label %TryRet103 | |
TryRet103: ; preds = %TryCont102 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %47) | |
%.sroa.1306.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %409, ptr %.sroa.1306.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont104: ; preds = %TryCont102 | |
%410 = load i32, ptr %41, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %40, ptr %1, i32 %410) | |
%411 = load i64, ptr %40, align 8 | |
store i64 %411, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %47) | |
br label %common.ret | |
Block106: ; preds = %Then95, %type.Type.tag.exit.i599, %TryCont94 | |
%412 = call fastcc i16 @Sema.failWithBadMemberAccess(ptr %1, ptr %2, ptr %62, ptr %7, ptr %5, i64 %6) | |
%.sroa.1310.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %412, ptr %.sroa.1310.0..sroa_idx, align 4 | |
br label %common.ret | |
Case107: ; preds = %Then59 | |
%413 = call fastcc ptr @type.Type.getNamespace(i64 %328) | |
%.not410 = icmp eq ptr %413, null | |
br i1 %.not410, label %Block115, label %Then108 | |
Then108: ; preds = %Case107 | |
call fastcc void @Sema.namespaceLookupRef(ptr noalias %39, ptr %1, ptr %2, ptr %3, ptr %413, ptr %5, i64 %6) | |
%414 = getelementptr inbounds { { i32, i8, [3 x i8] }, i16, [2 x i8] }, ptr %39, i64 0, i32 1 | |
%415 = load i16, ptr %414, align 4 | |
%.not415 = icmp eq i16 %415, 0 | |
br i1 %.not415, label %TryCont111, label %TryRet110 | |
TryRet110: ; preds = %Then108 | |
%.sroa.1314.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %415, ptr %.sroa.1314.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont111: ; preds = %Then108 | |
%.sroa.2317.0..sroa_idx = getelementptr inbounds i8, ptr %39, i64 4 | |
%.sroa.2317.0.copyload = load i8, ptr %.sroa.2317.0..sroa_idx, align 4 | |
%.not416 = icmp eq i8 %.sroa.2317.0.copyload, 0 | |
br i1 %.not416, label %Block115, label %Then112 | |
Then112: ; preds = %TryCont111 | |
%.sroa.0316.0.copyload = load i32, ptr %39, align 4 | |
store i32 %.sroa.0316.0.copyload, ptr %0, align 4 | |
%.sroa.2320.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 0, ptr %.sroa.2320.0..sroa_idx, align 4 | |
br label %common.ret | |
Block115: ; preds = %TryCont111, %Case107 | |
call fastcc void @type.Type.enumFieldIndex(ptr noalias %38, i64 %328, ptr %5, i64 %6) | |
%416 = getelementptr inbounds { i64, i8, [7 x i8] }, ptr %38, i64 0, i32 1 | |
%417 = load i8, ptr %416, align 8 | |
%.not411 = icmp eq i8 %417, 0 | |
br i1 %.not411, label %Else117, label %Then116 | |
Then116: ; preds = %Block115 | |
%418 = load i64, ptr %38, align 8 | |
%419 = getelementptr inbounds %Sema.Block, ptr %2, i64 0, i32 1 | |
%420 = load ptr, ptr %419, align 8, !noalias !47361 | |
%421 = getelementptr inbounds %Sema, ptr %420, i64 0, i32 1 | |
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %421, i64 16, i1 false), !noalias !47364 | |
%.16..16..16..16..16..16..16..16..16..16..sroa_idx837 = getelementptr inbounds i8, ptr %15, i64 16 | |
call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.16..16..16..16..16..16..16..16..16..16..sroa_idx837, i8 0, i64 16, i1 false), !noalias !47364 | |
%.sroa.2725.0..sroa_idx = getelementptr inbounds i8, ptr %37, i64 8 | |
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.2725.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %15, i64 32, i1 false) | |
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) | |
store ptr %2, ptr %37, align 8 | |
%.sroa.3726.0..sroa_idx = getelementptr inbounds i8, ptr %37, i64 40 | |
store i1 false, ptr %.sroa.3726.0..sroa_idx, align 8 | |
store i64 %328, ptr %36, align 8 | |
store ptr %.sroa.2725.0..sroa_idx, ptr %35, align 8, !alias.scope !47367 | |
%.sroa.2.0..sroa_idx.i613 = getelementptr inbounds i8, ptr %35, i64 8 | |
store ptr @heap.arena_allocator.ArenaAllocator.allocator__anon_3789, ptr %.sroa.2.0..sroa_idx.i613, align 8, !alias.scope !47367 | |
call fastcc void @type.Type.copy(ptr noalias %34, ptr %36, ptr %35) | |
%422 = getelementptr inbounds { %type.Type, i16, [6 x i8] }, ptr %34, i64 0, i32 1 | |
%423 = load i16, ptr %422, align 8 | |
%.not412 = icmp eq i16 %423, 0 | |
br i1 %.not412, label %TryCont120, label %TryRet119 | |
Else117: ; preds = %Block115 | |
%424 = call fastcc i16 @Sema.failWithBadMemberAccess(ptr %1, ptr %2, ptr %62, ptr %7, ptr %5, i64 %6) | |
%.sroa.1324.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %424, ptr %.sroa.1324.0..sroa_idx, align 4 | |
br label %common.ret | |
TryRet119: ; preds = %Then116 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %37) | |
%.sroa.1329.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %423, ptr %.sroa.1329.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont120: ; preds = %Then116 | |
%425 = load i64, ptr %34, align 8 | |
store i64 %425, ptr %33, align 8 | |
call void @llvm.experimental.noalias.scope.decl(metadata !47370) | |
%426 = call fastcc ptr @llvm.returnaddress(i32 0) | |
%427 = ptrtoint ptr %426 to i64 | |
%428 = call fastcc ptr @heap.arena_allocator.ArenaAllocator.alloc(ptr nonnull align 1 %.sroa.2725.0..sroa_idx, i64 16, i8 3, i64 %427) #37, !noalias !47373 | |
%.not.i.i.i618 = icmp eq ptr %428, null | |
br i1 %.not.i.i.i618, label %TryRet121, label %TryCont122 | |
TryRet121: ; preds = %TryCont120 | |
%.sroa.1.0..sroa_idx.i619 = getelementptr inbounds i8, ptr %32, i64 8 | |
store i16 1, ptr %.sroa.1.0..sroa_idx.i619, align 8, !alias.scope !47370 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %37) | |
%.sroa.1332.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 1, ptr %.sroa.1332.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont122: ; preds = %TryCont120 | |
%429 = trunc i64 %418 to i32 | |
%430 = getelementptr inbounds i8, ptr %428, i64 12 | |
store i32 -1431655766, ptr %430, align 1, !noalias !47370 | |
store i64 101, ptr %428, align 8, !noalias !47370 | |
%431 = getelementptr inbounds %value.Value.Payload.U32, ptr %428, i64 0, i32 1 | |
store i32 %429, ptr %431, align 4, !noalias !47370 | |
%432 = getelementptr inbounds { %value.Value, i16, [6 x i8] }, ptr %32, i64 0, i32 1 | |
store i16 0, ptr %432, align 8, !alias.scope !47370 | |
store ptr %428, ptr %32, align 8, !alias.scope !47370 | |
call fastcc void @Sema.Block.WipAnonDecl.finish(ptr noalias %31, ptr %37, ptr %33, ptr %32, i32 0) | |
%433 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %31, i64 0, i32 1 | |
%434 = load i16, ptr %433, align 4 | |
%.not414 = icmp eq i16 %434, 0 | |
br i1 %.not414, label %TryCont124, label %TryRet123 | |
TryRet123: ; preds = %TryCont122 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %37) | |
%.sroa.1335.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %434, ptr %.sroa.1335.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont124: ; preds = %TryCont122 | |
%435 = load i32, ptr %31, align 4 | |
call fastcc void @Sema.analyzeDeclRef(ptr noalias %30, ptr %1, i32 %435) | |
%436 = load i64, ptr %30, align 8 | |
store i64 %436, ptr %0, align 4 | |
call fastcc void @Sema.Block.WipAnonDecl.deinit(ptr %37) | |
br label %common.ret | |
Case125: ; preds = %Then59, %Then59 | |
%437 = call fastcc ptr @type.Type.getNamespace(i64 %328) | |
%.not407 = icmp eq ptr %437, null | |
br i1 %.not407, label %Block133, label %Then126 | |
Then126: ; preds = %Case125 | |
call fastcc void @Sema.namespaceLookupRef(ptr noalias %29, ptr %1, ptr %2, ptr %3, ptr %437, ptr %5, i64 %6) | |
%438 = getelementptr inbounds { { i32, i8, [3 x i8] }, i16, [2 x i8] }, ptr %29, i64 0, i32 1 | |
%439 = load i16, ptr %438, align 4 | |
%.not408 = icmp eq i16 %439, 0 | |
br i1 %.not408, label %TryCont129, label %TryRet128 | |
TryRet128: ; preds = %Then126 | |
%.sroa.1339.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %439, ptr %.sroa.1339.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont129: ; preds = %Then126 | |
%.sroa.2342.0..sroa_idx = getelementptr inbounds i8, ptr %29, i64 4 | |
%.sroa.2342.0.copyload = load i8, ptr %.sroa.2342.0..sroa_idx, align 4 | |
%.not409 = icmp eq i8 %.sroa.2342.0.copyload, 0 | |
br i1 %.not409, label %Block133, label %Then130 | |
Then130: ; preds = %TryCont129 | |
%.sroa.0341.0.copyload = load i32, ptr %29, align 4 | |
store i32 %.sroa.0341.0.copyload, ptr %0, align 4 | |
%.sroa.2345.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 0, ptr %.sroa.2345.0..sroa_idx, align 4 | |
br label %common.ret | |
Block133: ; preds = %TryCont129, %Case125 | |
%440 = call fastcc i16 @Sema.failWithBadMemberAccess(ptr %1, ptr %2, ptr %62, ptr %7, ptr %5, i64 %6) | |
%.sroa.1349.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %440, ptr %.sroa.1349.0..sroa_idx, align 4 | |
br label %common.ret | |
Case134: ; preds = %type.Type.zigTypeTag.exit484 | |
br i1 %.0.i777, label %Then135, label %Block139 | |
Then135: ; preds = %Case134 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %27, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%441 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %27, i64 0, i32 1 | |
%442 = load i16, ptr %441, align 4 | |
%.not404 = icmp eq i16 %442, 0 | |
br i1 %.not404, label %TryCont138, label %TryRet137 | |
TryRet137: ; preds = %Then135 | |
%.sroa.1357.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %442, ptr %.sroa.1357.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont138: ; preds = %Then135 | |
%443 = load i32, ptr %27, align 4 | |
br label %Block139 | |
Block139: ; preds = %TryCont138, %Case134 | |
%444 = phi i32 [ %443, %TryCont138 ], [ %4, %Case134 ] | |
call fastcc void @Sema.structFieldPtr(ptr noalias %26, ptr %1, ptr %2, ptr %3, i32 %444, ptr %5, i64 %6, ptr %7, ptr %142, i1 %8) | |
%445 = load i64, ptr %26, align 8 | |
store i64 %445, ptr %0, align 4 | |
br label %common.ret | |
Case140: ; preds = %type.Type.zigTypeTag.exit484 | |
br i1 %.0.i777, label %Then141, label %Block145 | |
Then141: ; preds = %Case140 | |
call fastcc void @Sema.analyzeLoad(ptr noalias %25, ptr %1, ptr %2, ptr %3, i32 %4, ptr %3) | |
%446 = getelementptr inbounds { i32, i16, [2 x i8] }, ptr %25, i64 0, i32 1 | |
%447 = load i16, ptr %446, align 4 | |
%.not = icmp eq i16 %447, 0 | |
br i1 %.not, label %TryCont144, label %TryRet143 | |
TryRet143: ; preds = %Then141 | |
%.sroa.1362.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %447, ptr %.sroa.1362.0..sroa_idx, align 4 | |
br label %common.ret | |
TryCont144: ; preds = %Then141 | |
%448 = load i32, ptr %25, align 4 | |
br label %Block145 | |
Block145: ; preds = %TryCont144, %Case140 | |
%449 = phi i32 [ %448, %TryCont144 ], [ %4, %Case140 ] | |
call fastcc void @Sema.unionFieldPtr(ptr noalias %24, ptr %1, ptr %2, ptr %3, i32 %449, ptr %5, i64 %6, ptr %7, ptr %142, i1 %8) | |
%450 = load i64, ptr %24, align 8 | |
store i64 %450, ptr %0, align 4 | |
br label %common.ret | |
Block146: ; preds = %type.Type.isSlice.exit, %type.Type.tag.exit.i499, %type.Type.zigTypeTag.exit484 | |
%451 = load ptr, ptr %1, align 8 | |
store i64 %131, ptr %23, align 8 | |
%.sroa.2735.0..sroa_idx = getelementptr inbounds i8, ptr %23, i64 8 | |
store ptr %451, ptr %.sroa.2735.0..sroa_idx, align 8 | |
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) | |
%452 = getelementptr i8, ptr %2, i64 160 | |
%.val640 = load i32, ptr %452, align 8 | |
call fastcc void @Sema.errMsg__anon_203447(ptr noalias %9, ptr %1, i32 %.val640, ptr %3, ptr %23) | |
%453 = getelementptr inbounds { ptr, i16, [6 x i8] }, ptr %9, i64 0, i32 1 | |
%454 = load i16, ptr %453, align 8 | |
%.not.i623 = icmp eq i16 %454, 0 | |
br i1 %.not.i623, label %TryCont.i625, label %Sema.fail__anon_135183.exit | |
TryCont.i625: ; preds = %Block146 | |
%455 = load ptr, ptr %9, align 8 | |
%456 = tail call fastcc i16 @Sema.failWithOwnedErrorMsg(ptr %1, ptr %455) | |
br label %Sema.fail__anon_135183.exit | |
Sema.fail__anon_135183.exit: ; preds = %TryCont.i625, %Block146 | |
%common.ret.op.i624 = phi i16 [ %456, %TryCont.i625 ], [ %454, %Block146 ] | |
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) | |
%.sroa.1367.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 4 | |
store i16 %common.ret.op.i624, ptr %.sroa.1367.0..sroa_idx, align 4 | |
br label %common.ret | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment