brintos

brintos / llvm-project-archived public Read only

0
0
Text · 37.4 KiB · 37fe763 Raw
537 lines · plain
1; RUN: llc -verify-machineinstrs < %s | FileCheck %s2target datalayout = "e-m:e-i64:64-n32:64"3target triple = "powerpc64le-unknown-linux-gnu"4 5; This test checks for misordering of a TOC restore instruction relative6; to subsequent uses of the TOC register.  Previously this test broke7; because there was no TOC register dependency between the instructions,8; and the usual stack-adjust instructions that held the TOC restore in9; place were optimized away.10 11%"class.llvm::Module" = type { ptr, %"class.llvm::iplist", %"class.llvm::iplist.0", %"class.llvm::iplist.9", %"struct.llvm::ilist", %"class.std::basic_string", ptr, %"class.llvm::StringMap", %"class.std::unique_ptr", %"class.std::basic_string", %"class.std::basic_string", ptr, ptr, %"class.std::basic_string", %"class.llvm::DataLayout" }12%"class.llvm::iplist" = type { %"struct.llvm::ilist_traits", ptr }13%"struct.llvm::ilist_traits" = type { %"class.llvm::ilist_node" }14%"class.llvm::ilist_node" = type { %"class.llvm::ilist_half_node", ptr }15%"class.llvm::ilist_half_node" = type { ptr }16%"class.llvm::GlobalVariable" = type { %"class.llvm::GlobalObject", %"class.llvm::ilist_node", i8 }17%"class.llvm::GlobalObject" = type { %"class.llvm::GlobalValue", %"class.std::basic_string", ptr }18%"class.llvm::GlobalValue" = type { %"class.llvm::Constant", i32, ptr }19%"class.llvm::Constant" = type { %"class.llvm::User" }20%"class.llvm::User" = type { %"class.llvm::Value.base", i32, ptr }21%"class.llvm::Value.base" = type <{ ptr, ptr, ptr, ptr, i8, i8, i16 }>22%"class.llvm::Type" = type { ptr, i32, i32, ptr }23%"class.llvm::StringMapEntry" = type opaque24%"class.llvm::Use" = type { ptr, ptr, %"class.llvm::PointerIntPair" }25%"class.llvm::Value" = type { ptr, ptr, ptr, ptr, i8, i8, i16 }26%"class.llvm::PointerIntPair" = type { i64 }27%"class.llvm::Comdat" = type { ptr, i32 }28%"class.llvm::StringMapEntry.43" = type opaque29%"class.llvm::iplist.0" = type { %"struct.llvm::ilist_traits.1", ptr }30%"struct.llvm::ilist_traits.1" = type { %"class.llvm::ilist_node.7" }31%"class.llvm::ilist_node.7" = type { %"class.llvm::ilist_half_node.8", ptr }32%"class.llvm::ilist_half_node.8" = type { ptr }33%"class.llvm::Function" = type { %"class.llvm::GlobalObject", %"class.llvm::ilist_node.7", %"class.llvm::iplist.44", %"class.llvm::iplist.52", ptr, %"class.llvm::AttributeSet" }34%"class.llvm::iplist.44" = type { %"struct.llvm::ilist_traits.45", ptr }35%"struct.llvm::ilist_traits.45" = type { %"class.llvm::ilist_half_node.51" }36%"class.llvm::ilist_half_node.51" = type { ptr }37%"class.llvm::BasicBlock" = type { %"class.llvm::Value.base", %"class.llvm::ilist_node.61", %"class.llvm::iplist.62", ptr }38%"class.llvm::ilist_node.61" = type { %"class.llvm::ilist_half_node.51", ptr }39%"class.llvm::iplist.62" = type { %"struct.llvm::ilist_traits.63", ptr }40%"struct.llvm::ilist_traits.63" = type { %"class.llvm::ilist_half_node.69" }41%"class.llvm::ilist_half_node.69" = type { ptr }42%"class.llvm::Instruction" = type { %"class.llvm::User", %"class.llvm::ilist_node.70", ptr, %"class.llvm::DebugLoc" }43%"class.llvm::ilist_node.70" = type { %"class.llvm::ilist_half_node.69", ptr }44%"class.llvm::DebugLoc" = type { i32, i32 }45%"class.llvm::iplist.52" = type { %"struct.llvm::ilist_traits.53", ptr }46%"struct.llvm::ilist_traits.53" = type { %"class.llvm::ilist_half_node.59" }47%"class.llvm::ilist_half_node.59" = type { ptr }48%"class.llvm::Argument" = type { %"class.llvm::Value.base", %"class.llvm::ilist_node.60", ptr }49%"class.llvm::ilist_node.60" = type { %"class.llvm::ilist_half_node.59", ptr }50%"class.llvm::AttributeSet" = type { ptr }51%"class.llvm::AttributeSetImpl" = type opaque52%"class.llvm::iplist.9" = type { %"struct.llvm::ilist_traits.10", ptr }53%"struct.llvm::ilist_traits.10" = type { %"class.llvm::ilist_node.16" }54%"class.llvm::ilist_node.16" = type { %"class.llvm::ilist_half_node.17", ptr }55%"class.llvm::ilist_half_node.17" = type { ptr }56%"class.llvm::GlobalAlias" = type { %"class.llvm::GlobalValue", %"class.llvm::ilist_node.16" }57%"struct.llvm::ilist" = type { %"class.llvm::iplist.18" }58%"class.llvm::iplist.18" = type { %"struct.llvm::ilist_traits.19", ptr }59%"struct.llvm::ilist_traits.19" = type { %"class.llvm::ilist_node.24" }60%"class.llvm::ilist_node.24" = type { %"class.llvm::ilist_half_node.25", ptr }61%"class.llvm::ilist_half_node.25" = type { ptr }62%"class.llvm::NamedMDNode" = type { %"class.llvm::ilist_node.24", %"class.std::basic_string", ptr, ptr }63%"class.llvm::ValueSymbolTable" = type opaque64%"class.llvm::StringMap" = type { %"class.llvm::StringMapImpl", %"class.llvm::MallocAllocator" }65%"class.llvm::StringMapImpl" = type { ptr, i32, i32, i32, i32 }66%"class.llvm::StringMapEntryBase" = type { i32 }67%"class.llvm::MallocAllocator" = type { i8 }68%"class.std::unique_ptr" = type { %"class.std::tuple" }69%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }70%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.28" }71%"struct.std::_Head_base.28" = type { ptr }72%"class.llvm::GVMaterializer" = type opaque73%"class.llvm::RandomNumberGenerator" = type opaque74%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" }75%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { ptr }76%"class.llvm::DataLayout" = type { i8, i32, i32, [4 x i8], %"class.llvm::SmallVector", %"class.llvm::SmallVector.29", %"class.llvm::SmallVector.36", ptr }77%"class.llvm::SmallVector" = type { %"class.llvm::SmallVectorImpl.base", %"struct.llvm::SmallVectorStorage" }78%"class.llvm::SmallVectorImpl.base" = type { %"class.llvm::SmallVectorTemplateBase.base" }79%"class.llvm::SmallVectorTemplateBase.base" = type { %"class.llvm::SmallVectorTemplateCommon.base" }80%"class.llvm::SmallVectorTemplateCommon.base" = type <{ %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion" }>81%"class.llvm::SmallVectorBase" = type { ptr, ptr, ptr }82%"struct.llvm::AlignedCharArrayUnion" = type { %"struct.llvm::AlignedCharArray" }83%"struct.llvm::AlignedCharArray" = type { [1 x i8] }84%"struct.llvm::SmallVectorStorage" = type { [7 x %"struct.llvm::AlignedCharArrayUnion"] }85%"class.llvm::SmallVector.29" = type { %"class.llvm::SmallVectorImpl.30", %"struct.llvm::SmallVectorStorage.35" }86%"class.llvm::SmallVectorImpl.30" = type { %"class.llvm::SmallVectorTemplateBase.31" }87%"class.llvm::SmallVectorTemplateBase.31" = type { %"class.llvm::SmallVectorTemplateCommon.32" }88%"class.llvm::SmallVectorTemplateCommon.32" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.33" }89%"struct.llvm::AlignedCharArrayUnion.33" = type { %"struct.llvm::AlignedCharArray.34" }90%"struct.llvm::AlignedCharArray.34" = type { [8 x i8] }91%"struct.llvm::SmallVectorStorage.35" = type { [15 x %"struct.llvm::AlignedCharArrayUnion.33"] }92%"class.llvm::SmallVector.36" = type { %"class.llvm::SmallVectorImpl.37", %"struct.llvm::SmallVectorStorage.42" }93%"class.llvm::SmallVectorImpl.37" = type { %"class.llvm::SmallVectorTemplateBase.38" }94%"class.llvm::SmallVectorTemplateBase.38" = type { %"class.llvm::SmallVectorTemplateCommon.39" }95%"class.llvm::SmallVectorTemplateCommon.39" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.40" }96%"struct.llvm::AlignedCharArrayUnion.40" = type { %"struct.llvm::AlignedCharArray.41" }97%"struct.llvm::AlignedCharArray.41" = type { [16 x i8] }98%"struct.llvm::SmallVectorStorage.42" = type { [7 x %"struct.llvm::AlignedCharArrayUnion.40"] }99%"class.llvm::SMDiagnostic" = type { ptr, %"class.llvm::SMLoc", %"class.std::basic_string", i32, i32, i32, %"class.std::basic_string", %"class.std::basic_string", %"class.std::vector.79", %"class.llvm::SmallVector.84" }100%"class.llvm::SourceMgr" = type { %"class.std::vector", %"class.std::vector.74", ptr, ptr, ptr }101%"class.std::vector" = type { %"struct.std::_Vector_base" }102%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<llvm::SourceMgr::SrcBuffer, std::allocator<llvm::SourceMgr::SrcBuffer> >::_Vector_impl" }103%"struct.std::_Vector_base<llvm::SourceMgr::SrcBuffer, std::allocator<llvm::SourceMgr::SrcBuffer> >::_Vector_impl" = type { ptr, ptr, ptr }104%"struct.llvm::SourceMgr::SrcBuffer" = type { ptr, %"class.llvm::SMLoc" }105%"class.llvm::MemoryBuffer" = type { ptr, ptr, ptr }106%"class.std::vector.74" = type { %"struct.std::_Vector_base.75" }107%"struct.std::_Vector_base.75" = type { %"struct.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl" }108%"struct.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl" = type { ptr, ptr, ptr }109%"class.llvm::SMLoc" = type { ptr }110%"class.std::vector.79" = type { %"struct.std::_Vector_base.80" }111%"struct.std::_Vector_base.80" = type { %"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >::_Vector_impl" }112%"struct.std::_Vector_base<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >::_Vector_impl" = type { ptr, ptr, ptr }113%"struct.std::pair" = type { i32, i32 }114%"class.llvm::SmallVector.84" = type { %"class.llvm::SmallVectorImpl.85", %"struct.llvm::SmallVectorStorage.90" }115%"class.llvm::SmallVectorImpl.85" = type { %"class.llvm::SmallVectorTemplateBase.86" }116%"class.llvm::SmallVectorTemplateBase.86" = type { %"class.llvm::SmallVectorTemplateCommon.87" }117%"class.llvm::SmallVectorTemplateCommon.87" = type { %"class.llvm::SmallVectorBase", %"struct.llvm::AlignedCharArrayUnion.88" }118%"struct.llvm::AlignedCharArrayUnion.88" = type { %"struct.llvm::AlignedCharArray.89" }119%"struct.llvm::AlignedCharArray.89" = type { [24 x i8] }120%"struct.llvm::SmallVectorStorage.90" = type { [3 x %"struct.llvm::AlignedCharArrayUnion.88"] }121%"class.llvm::LLVMContext" = type { ptr }122%"class.llvm::LLVMContextImpl" = type opaque123%"class.std::allocator" = type { i8 }124%"class.llvm::ErrorOr.109" = type { %union.anon.110, i8, [7 x i8] }125%union.anon.110 = type { %"struct.llvm::AlignedCharArrayUnion.93" }126%"struct.llvm::AlignedCharArrayUnion.93" = type { %"struct.llvm::AlignedCharArray.94" }127%"struct.llvm::AlignedCharArray.94" = type { [16 x i8] }128%"class.llvm::ErrorOr" = type { %union.anon, i8, [7 x i8] }129%union.anon = type { %"struct.llvm::AlignedCharArrayUnion.93" }130%"class.std::error_category" = type { ptr }131%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" }132%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" = type { i64, i64, i32 }133%"class.llvm::SMFixIt" = type { %"class.llvm::SMRange", %"class.std::basic_string" }134%"class.llvm::SMRange" = type { %"class.llvm::SMLoc", %"class.llvm::SMLoc" }135%"struct.llvm::NamedRegionTimer" = type { %"class.llvm::TimeRegion" }136%"class.llvm::TimeRegion" = type { ptr }137%"class.llvm::Timer" = type { %"class.llvm::TimeRecord", %"class.std::basic_string", i8, ptr, ptr, ptr }138%"class.llvm::TimeRecord" = type { double, double, double, i64 }139%"class.llvm::TimerGroup" = type { %"class.std::basic_string", ptr, %"class.std::vector.103", ptr, ptr }140%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }141%"struct.std::_Vector_base.104" = type { %"struct.std::_Vector_base<std::pair<llvm::TimeRecord, std::basic_string<char> >, std::allocator<std::pair<llvm::TimeRecord, std::basic_string<char> > > >::_Vector_impl" }142%"struct.std::_Vector_base<std::pair<llvm::TimeRecord, std::basic_string<char> >, std::allocator<std::pair<llvm::TimeRecord, std::basic_string<char> > > >::_Vector_impl" = type { ptr, ptr, ptr }143%"struct.std::pair.108" = type opaque144%struct.LLVMOpaqueContext = type opaque145%struct.LLVMOpaqueMemoryBuffer = type opaque146%struct.LLVMOpaqueModule = type opaque147%"class.llvm::raw_string_ostream" = type { %"class.llvm::raw_ostream.base", ptr }148%"class.llvm::raw_ostream.base" = type <{ ptr, ptr, ptr, ptr, i32 }>149%"class.llvm::raw_ostream" = type { ptr, ptr, ptr, ptr, i32 }150 151@.str = private unnamed_addr constant [28 x i8] c"Could not open input file: \00", align 1152@.str1 = private unnamed_addr constant [54 x i8] c"!HasError && \22Cannot get value when an error exists!\22\00", align 1153@.str2 = private unnamed_addr constant [61 x i8] c"/home/wschmidt/llvm/llvm-test/include/llvm/Support/ErrorOr.h\00", align 1154@__PRETTY_FUNCTION__._ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE10getStorageEv = private unnamed_addr constant [206 x i8] c"storage_type *llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> > >::getStorage() [T = std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer> >]\00", align 1155@_ZNSs4_Rep20_S_empty_rep_storageE = external global [0 x i64]156 157declare void @_ZN4llvm12MemoryBuffer14getFileOrSTDINENS_9StringRefEl(ptr sret(%"class.llvm::ErrorOr"), [2 x i64], i64) #1158 159declare void @_ZN4llvm16NamedRegionTimerC1ENS_9StringRefES1_b(ptr, [2 x i64], [2 x i64], i1 zeroext) #1160 161; Function Attrs: nounwind162define ptr @_ZN4llvm11ParseIRFileERKSsRNS_12SMDiagnosticERNS_11LLVMContextE(ptr nocapture readonly dereferenceable(8) %Filename, ptr dereferenceable(200) %Err, ptr dereferenceable(8) %Context) #0 {163entry:164; CHECK: .globl	_ZN4llvm11ParseIRFileERKSsRNS_12SMDiagnosticERNS_11LLVMContextE165; CHECK: bctrl166; CHECK: ld 2, 24(1)167; CHECK: addis [[REG:[0-9]+]], 2, .L_MergedGlobals@toc@ha168; CHECK: addi {{[0-9]+}}, [[REG]], .L_MergedGlobals@toc@l169; CHECK: bl _ZNSs6insertEmPKcm170  %.atomicdst.i.i.i.i.i46 = alloca i32, align 4171  %ref.tmp.i.i47 = alloca %"class.std::allocator", align 1172  %.atomicdst.i.i.i.i.i = alloca i32, align 4173  %ref.tmp.i.i = alloca %"class.std::allocator", align 1174  %ref.tmp.i.i2.i = alloca %"class.std::allocator", align 1175  %ref.tmp.i.i.i = alloca %"class.std::allocator", align 1176  %FileOrErr = alloca %"class.llvm::ErrorOr", align 8177  %ref.tmp = alloca %"class.llvm::SMDiagnostic", align 8178  %ref.tmp5 = alloca %"class.std::basic_string", align 8179  %_M_p.i.i.i = getelementptr inbounds %"class.std::basic_string", ptr %Filename, i64 0, i32 0, i32 0180  %0 = load ptr, ptr %_M_p.i.i.i, align 8, !tbaa !1181  %1 = ptrtoint ptr %0 to i64182  %arrayidx.i.i.i = getelementptr inbounds i8, ptr %0, i64 -24183  %_M_length.i.i = bitcast ptr %arrayidx.i.i.i to ptr184  %2 = load i64, ptr %_M_length.i.i, align 8, !tbaa !7185  %.fca.0.insert18 = insertvalue [2 x i64] undef, i64 %1, 0186  %.fca.1.insert21 = insertvalue [2 x i64] %.fca.0.insert18, i64 %2, 1187  call void @_ZN4llvm12MemoryBuffer14getFileOrSTDINENS_9StringRefEl(ptr sret(%"class.llvm::ErrorOr") %FileOrErr, [2 x i64] %.fca.1.insert21, i64 -1) #3188  %HasError.i24 = getelementptr inbounds %"class.llvm::ErrorOr", ptr %FileOrErr, i64 0, i32 1189  %bf.load.i25 = load i8, ptr %HasError.i24, align 8190  %3 = and i8 %bf.load.i25, 1191  %bf.cast.i26 = icmp eq i8 %3, 0192  br i1 %bf.cast.i26, label %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE3getEv.exit, label %_ZNK4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE8getErrorEv.exit193 194_ZNK4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE8getErrorEv.exit: ; preds = %entry195  %retval.sroa.0.0..sroa_cast.i = bitcast ptr %FileOrErr to ptr196  %retval.sroa.0.0.copyload.i = load i64, ptr %retval.sroa.0.0..sroa_cast.i, align 8197  %retval.sroa.3.0..sroa_idx.i = getelementptr inbounds %"class.llvm::ErrorOr", ptr %FileOrErr, i64 0, i32 0, i32 0, i32 0, i32 0, i64 8198  %retval.sroa.3.0..sroa_cast.i = bitcast ptr %retval.sroa.3.0..sroa_idx.i to ptr199  %retval.sroa.3.0.copyload.i = load i64, ptr %retval.sroa.3.0..sroa_cast.i, align 8200  %phitmp = trunc i64 %retval.sroa.0.0.copyload.i to i32201  %cmp.i = icmp eq i32 %phitmp, 0202  br i1 %cmp.i, label %cond.false.i.i, label %if.then203 204if.then:                                          ; preds = %_ZNK4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE8getErrorEv.exit205  %.c = inttoptr i64 %retval.sroa.3.0.copyload.i to ptr206  %4 = load ptr, ptr %_M_p.i.i.i, align 8, !tbaa !1207  %arrayidx.i.i.i30 = getelementptr inbounds i8, ptr %4, i64 -24208  %_M_length.i.i31 = bitcast ptr %arrayidx.i.i.i30 to ptr209  %5 = load i64, ptr %_M_length.i.i31, align 8, !tbaa !7210  %6 = inttoptr i64 %retval.sroa.3.0.copyload.i to ptr211  %vtable.i = load ptr, ptr %6, align 8, !tbaa !11212  %vfn.i = getelementptr inbounds ptr, ptr %vtable.i, i64 3213  %7 = load ptr, ptr %vfn.i, align 8214  call void %7(ptr sret(%"class.std::basic_string") %ref.tmp5, ptr %.c, i32 signext %phitmp) #3215  %call2.i.i = call dereferenceable(8) ptr @_ZNSs6insertEmPKcm(ptr %ref.tmp5, i64 0, ptr @.str, i64 27) #3216  %_M_p2.i.i.i.i = getelementptr inbounds %"class.std::basic_string", ptr %call2.i.i, i64 0, i32 0, i32 0217  %8 = load ptr, ptr %_M_p2.i.i.i.i, align 8, !tbaa !13218  store ptr getelementptr inbounds ([0 x i64], ptr @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3), ptr %_M_p2.i.i.i.i, align 8, !tbaa !1219  %arrayidx.i.i.i36 = getelementptr inbounds i8, ptr %8, i64 -24220  %_M_length.i.i37 = bitcast ptr %arrayidx.i.i.i36 to ptr221  %9 = load i64, ptr %_M_length.i.i37, align 8, !tbaa !7222  %Filename.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 2223  %10 = getelementptr inbounds %"class.std::allocator", ptr %ref.tmp.i.i2.i, i64 0, i32 0224  %11 = bitcast ptr %ref.tmp to ptr225  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 16, i1 false) #3226  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #3227  %tobool.i.i4.i = icmp eq ptr %4, null228  br i1 %tobool.i.i4.i, label %if.then.i.i6.i, label %if.end.i.i8.i229 230if.then.i.i6.i:                                   ; preds = %if.then231  %_M_p.i.i.i.i.i.i5.i = getelementptr inbounds %"class.std::basic_string", ptr %Filename.i, i64 0, i32 0, i32 0232  store ptr getelementptr inbounds ([0 x i64], ptr @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3), ptr %_M_p.i.i.i.i.i.i5.i, align 8, !tbaa !13233  br label %_ZNK4llvm9StringRefcvSsEv.exit9.i234 235if.end.i.i8.i:                                    ; preds = %if.then236  call void @_ZNSsC1EPKcmRKSaIcE(ptr %Filename.i, ptr %4, i64 %5, ptr dereferenceable(1) %ref.tmp.i.i2.i) #3237  br label %_ZNK4llvm9StringRefcvSsEv.exit9.i238 239_ZNK4llvm9StringRefcvSsEv.exit9.i:                ; preds = %if.end.i.i8.i, %if.then.i.i6.i240  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #3241  %LineNo.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 3242  store i32 -1, ptr %LineNo.i, align 8, !tbaa !14243  %ColumnNo.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 4244  store i32 -1, ptr %ColumnNo.i, align 4, !tbaa !21245  %Kind.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 5246  store i32 0, ptr %Kind.i, align 8, !tbaa !22247  %Message.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 6248  %12 = getelementptr inbounds %"class.std::allocator", ptr %ref.tmp.i.i.i, i64 0, i32 0249  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #3250  %tobool.i.i.i = icmp eq ptr %8, null251  br i1 %tobool.i.i.i, label %if.then.i.i.i, label %if.end.i.i.i252 253if.then.i.i.i:                                    ; preds = %_ZNK4llvm9StringRefcvSsEv.exit9.i254  %_M_p.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::basic_string", ptr %Message.i, i64 0, i32 0, i32 0255  store ptr getelementptr inbounds ([0 x i64], ptr @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3), ptr %_M_p.i.i.i.i.i.i.i, align 8, !tbaa !13256  br label %_ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit257 258if.end.i.i.i:                                     ; preds = %_ZNK4llvm9StringRefcvSsEv.exit9.i259  call void @_ZNSsC1EPKcmRKSaIcE(ptr %Message.i, ptr %8, i64 %9, ptr dereferenceable(1) %ref.tmp.i.i.i) #3260  br label %_ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit261 262_ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit: ; preds = %if.then.i.i.i, %if.end.i.i.i263  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #3264  %_M_p.i.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 7, i32 0, i32 0265  store ptr getelementptr inbounds ([0 x i64], ptr @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3), ptr %_M_p.i.i.i.i.i, align 8, !tbaa !13266  %Ranges.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 8267  %13 = bitcast ptr %Ranges.i to ptr268  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false) #3269  %14 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 9, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i64 0270  %BeginX.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 9, i32 0, i32 0, i32 0, i32 0, i32 0271  store ptr %14, ptr %BeginX.i.i.i.i.i.i, align 8, !tbaa !23272  %EndX.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 9, i32 0, i32 0, i32 0, i32 0, i32 1273  store ptr %14, ptr %EndX.i.i.i.i.i.i, align 8, !tbaa !25274  %CapacityX.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 9, i32 0, i32 0, i32 0, i32 0, i32 2275  %add.ptr.i.i.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 9, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i64 96276  store ptr %add.ptr.i.i.i.i.i.i, ptr %CapacityX.i.i.i.i.i.i, align 8, !tbaa !26277  %15 = bitcast ptr %Err to ptr278  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %11, i64 16, i1 false) #3279  %Filename.i38 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 2280  call void @_ZNSs4swapERSs(ptr %Filename.i38, ptr dereferenceable(8) %Filename.i) #3281  %LineNo.i39 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 3282  %16 = bitcast ptr %LineNo.i39 to ptr283  %17 = bitcast ptr %LineNo.i to ptr284  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %17, i64 12, i1 false) #3285  %Message.i40 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 6286  call void @_ZNSs4swapERSs(ptr %Message.i40, ptr dereferenceable(8) %Message.i) #3287  %LineContents.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 7288  %LineContents7.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 7289  call void @_ZNSs4swapERSs(ptr %LineContents.i, ptr dereferenceable(8) %LineContents7.i) #3290  %Ranges.i41 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 8291  %_M_start.i7.i.i.i = getelementptr inbounds %"class.std::vector.79", ptr %Ranges.i41, i64 0, i32 0, i32 0, i32 0292  %18 = load ptr, ptr %_M_start.i7.i.i.i, align 8, !tbaa !27293  %_M_finish.i9.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 8, i32 0, i32 0, i32 1294  %_M_end_of_storage.i11.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 8, i32 0, i32 0, i32 2295  %_M_start2.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 8, i32 0, i32 0, i32 0296  %19 = bitcast ptr %Ranges.i41 to ptr297  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 16, i1 false) #3298  %20 = load ptr, ptr %_M_start2.i.i.i.i, align 8, !tbaa !27299  store ptr %20, ptr %_M_start.i7.i.i.i, align 8, !tbaa !27300  store ptr null, ptr %_M_start2.i.i.i.i, align 8, !tbaa !27301  %_M_finish3.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 8, i32 0, i32 0, i32 1302  %21 = load ptr, ptr %_M_finish3.i.i.i.i, align 8, !tbaa !27303  store ptr %21, ptr %_M_finish.i9.i.i.i, align 8, !tbaa !27304  store ptr null, ptr %_M_finish3.i.i.i.i, align 8, !tbaa !27305  %_M_end_of_storage4.i.i.i.i = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 8, i32 0, i32 0, i32 2306  %22 = load ptr, ptr %_M_end_of_storage4.i.i.i.i, align 8, !tbaa !27307  store ptr %22, ptr %_M_end_of_storage.i11.i.i.i, align 8, !tbaa !27308  store ptr null, ptr %_M_end_of_storage4.i.i.i.i, align 8, !tbaa !27309  %tobool.i.i.i.i.i.i = icmp eq ptr %18, null310  br i1 %tobool.i.i.i.i.i.i, label %_ZN4llvm12SMDiagnosticaSEOS0_.exit, label %if.then.i.i.i.i.i.i311 312if.then.i.i.i.i.i.i:                              ; preds = %_ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit313  %23 = bitcast ptr %18 to ptr314  call void @_ZdlPv(ptr %23) #3315  br label %_ZN4llvm12SMDiagnosticaSEOS0_.exit316 317_ZN4llvm12SMDiagnosticaSEOS0_.exit:               ; preds = %_ZN4llvm12SMDiagnosticC2ENS_9StringRefENS_9SourceMgr8DiagKindES1_.exit, %if.then.i.i.i.i.i.i318  %24 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %Err, i64 0, i32 9, i32 0319  %25 = getelementptr inbounds %"class.llvm::SMDiagnostic", ptr %ref.tmp, i64 0, i32 9, i32 0320  %call2.i.i42 = call dereferenceable(48) ptr @_ZN4llvm15SmallVectorImplINS_7SMFixItEEaSEOS2_(ptr %24, ptr dereferenceable(48) %25) #3321  call void @_ZN4llvm12SMDiagnosticD2Ev(ptr %ref.tmp) #3322  %26 = getelementptr inbounds %"class.std::allocator", ptr %ref.tmp.i.i, i64 0, i32 0323  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #3324  %27 = bitcast ptr %arrayidx.i.i.i36 to ptr325  %cmp.i.i.i = icmp eq ptr %arrayidx.i.i.i36, @_ZNSs4_Rep20_S_empty_rep_storageE326  br i1 %cmp.i.i.i, label %_ZNSsD1Ev.exit, label %if.then.i.i.i45, !prof !28327 328if.then.i.i.i45:                                  ; preds = %_ZN4llvm12SMDiagnosticaSEOS0_.exit329  %_M_refcount.i.i.i = getelementptr inbounds i8, ptr %8, i64 -8330  %28 = bitcast ptr %_M_refcount.i.i.i to ptr331  %cmp = icmp ne ptr @__pthread_key_create, null332  br i1 %cmp, label %if.then.i.i.i.i, label %if.else.i.i.i.i333 334if.then.i.i.i.i:                                  ; preds = %if.then.i.i.i45335  %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast = bitcast ptr %.atomicdst.i.i.i.i.i to ptr336  call void @llvm.lifetime.start.p0(i64 4, ptr %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast)337  %29 = atomicrmw volatile add ptr %28, i32 -1 acq_rel338  store i32 %29, ptr %.atomicdst.i.i.i.i.i, align 4339  %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..atomicdst.0..atomicdst.0..i.i.i.i.i = load volatile i32, ptr %.atomicdst.i.i.i.i.i, align 4340  call void @llvm.lifetime.end.p0(i64 4, ptr %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast)341  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i342 343if.else.i.i.i.i:                                  ; preds = %if.then.i.i.i45344  %30 = load i32, ptr %28, align 4, !tbaa !29345  %add.i.i.i.i.i = add nsw i32 %30, -1346  store i32 %add.i.i.i.i.i, ptr %28, align 4, !tbaa !29347  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i348 349_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i: ; preds = %if.else.i.i.i.i, %if.then.i.i.i.i350  %retval.0.i.i.i.i = phi i32 [ %.atomicdst.i.i.i.i.i.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..atomicdst.0..atomicdst.0..i.i.i.i.i, %if.then.i.i.i.i ], [ %30, %if.else.i.i.i.i ]351  %cmp3.i.i.i = icmp slt i32 %retval.0.i.i.i.i, 1352  br i1 %cmp3.i.i.i, label %if.then4.i.i.i, label %_ZNSsD1Ev.exit353 354if.then4.i.i.i:                                   ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i355  call void @_ZNSs4_Rep10_M_destroyERKSaIcE(ptr %27, ptr dereferenceable(1) %ref.tmp.i.i) #3356  br label %_ZNSsD1Ev.exit357 358_ZNSsD1Ev.exit:                                   ; preds = %_ZN4llvm12SMDiagnosticaSEOS0_.exit, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i, %if.then4.i.i.i359  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #3360  %31 = getelementptr inbounds %"class.std::allocator", ptr %ref.tmp.i.i47, i64 0, i32 0361  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #3362  %_M_p.i.i.i.i48 = getelementptr inbounds %"class.std::basic_string", ptr %ref.tmp5, i64 0, i32 0, i32 0363  %32 = load ptr, ptr %_M_p.i.i.i.i48, align 8, !tbaa !1364  %arrayidx.i.i.i49 = getelementptr inbounds i8, ptr %32, i64 -24365  %33 = bitcast ptr %arrayidx.i.i.i49 to ptr366  %cmp.i.i.i50 = icmp eq ptr %arrayidx.i.i.i49, @_ZNSs4_Rep20_S_empty_rep_storageE367  br i1 %cmp.i.i.i50, label %_ZNSsD1Ev.exit62, label %if.then.i.i.i52, !prof !28368 369if.then.i.i.i52:                                  ; preds = %_ZNSsD1Ev.exit370  %_M_refcount.i.i.i51 = getelementptr inbounds i8, ptr %32, i64 -8371  %34 = bitcast ptr %_M_refcount.i.i.i51 to ptr372  %cmp2 = icmp ne ptr @__pthread_key_create, null373  br i1 %cmp2, label %if.then.i.i.i.i55, label %if.else.i.i.i.i57374 375if.then.i.i.i.i55:                                ; preds = %if.then.i.i.i52376  %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast = bitcast ptr %.atomicdst.i.i.i.i.i46 to ptr377  call void @llvm.lifetime.start.p0(i64 4, ptr %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast)378  %35 = atomicrmw volatile add ptr %34, i32 -1 acq_rel379  store i32 %35, ptr %.atomicdst.i.i.i.i.i46, align 4380  %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..atomicdst.0..atomicdst.0..i.i.i.i.i54 = load volatile i32, ptr %.atomicdst.i.i.i.i.i46, align 4381  call void @llvm.lifetime.end.p0(i64 4, ptr %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..sroa_cast)382  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60383 384if.else.i.i.i.i57:                                ; preds = %if.then.i.i.i52385  %36 = load i32, ptr %34, align 4, !tbaa !29386  %add.i.i.i.i.i56 = add nsw i32 %36, -1387  store i32 %add.i.i.i.i.i56, ptr %34, align 4, !tbaa !29388  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60389 390_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60: ; preds = %if.else.i.i.i.i57, %if.then.i.i.i.i55391  %retval.0.i.i.i.i58 = phi i32 [ %.atomicdst.i.i.i.i.i46.0..atomicdst.i.i.i.i.0..atomicdst.i.i.i.0..atomicdst.i.i.0..atomicdst.i.0..atomicdst.0..atomicdst.0..i.i.i.i.i54, %if.then.i.i.i.i55 ], [ %36, %if.else.i.i.i.i57 ]392  %cmp3.i.i.i59 = icmp slt i32 %retval.0.i.i.i.i58, 1393  br i1 %cmp3.i.i.i59, label %if.then4.i.i.i61, label %_ZNSsD1Ev.exit62394 395if.then4.i.i.i61:                                 ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60396  call void @_ZNSs4_Rep10_M_destroyERKSaIcE(ptr %33, ptr dereferenceable(1) %ref.tmp.i.i47) #3397  br label %_ZNSsD1Ev.exit62398 399_ZNSsD1Ev.exit62:                                 ; preds = %_ZNSsD1Ev.exit, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i.i60, %if.then4.i.i.i61400  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #3401  br label %cleanup402 403cond.false.i.i:                                   ; preds = %_ZNK4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE8getErrorEv.exit404  call void @__assert_fail(ptr @.str1, ptr @.str2, i32 zeroext 242, ptr @__PRETTY_FUNCTION__._ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE10getStorageEv) #7405  unreachable406 407_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE3getEv.exit: ; preds = %entry408  %_M_head_impl.i.i.i.i.i = bitcast ptr %FileOrErr to ptr409  %37 = load ptr, ptr %_M_head_impl.i.i.i.i.i, align 8, !tbaa !27410  %call9 = call ptr @_ZN4llvm7ParseIREPNS_12MemoryBufferERNS_12SMDiagnosticERNS_11LLVMContextE(ptr %37, ptr dereferenceable(200) %Err, ptr dereferenceable(8) %Context)411  br label %cleanup412 413cleanup:                                          ; preds = %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE3getEv.exit, %_ZNSsD1Ev.exit62414  %retval.0 = phi ptr [ null, %_ZNSsD1Ev.exit62 ], [ %call9, %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE3getEv.exit ]415  %bf.load.i = load i8, ptr %HasError.i24, align 8416  %38 = and i8 %bf.load.i, 1417  %bf.cast.i = icmp eq i8 %38, 0418  br i1 %bf.cast.i, label %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE10getStorageEv.exit.i, label %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEED2Ev.exit419 420_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE10getStorageEv.exit.i: ; preds = %cleanup421  %_M_head_impl.i.i.i.i.i.i = bitcast ptr %FileOrErr to ptr422  %39 = load ptr, ptr %_M_head_impl.i.i.i.i.i.i, align 8, !tbaa !27423  %cmp.i.i = icmp eq ptr %39, null424  br i1 %cmp.i.i, label %_ZNSt10unique_ptrIN4llvm12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.i, label %_ZNKSt14default_deleteIN4llvm12MemoryBufferEEclEPS1_.exit.i.i425 426_ZNKSt14default_deleteIN4llvm12MemoryBufferEEclEPS1_.exit.i.i: ; preds = %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE10getStorageEv.exit.i427  %40 = bitcast ptr %39 to ptr428  %vtable.i.i.i = load ptr, ptr %40, align 8, !tbaa !11429  %vfn.i.i.i = getelementptr inbounds ptr, ptr %vtable.i.i.i, i64 1430  %41 = load ptr, ptr %vfn.i.i.i, align 8431  call void %41(ptr %39) #3432  br label %_ZNSt10unique_ptrIN4llvm12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.i433 434_ZNSt10unique_ptrIN4llvm12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.i: ; preds = %_ZNKSt14default_deleteIN4llvm12MemoryBufferEEclEPS1_.exit.i.i, %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEE10getStorageEv.exit.i435  store ptr null, ptr %_M_head_impl.i.i.i.i.i.i, align 8, !tbaa !27436  br label %_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEED2Ev.exit437 438_ZN4llvm7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEED2Ev.exit: ; preds = %cleanup, %_ZNSt10unique_ptrIN4llvm12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.i439  ret ptr %retval.0440}441 442; Function Attrs: nounwind443declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #3444 445; Function Attrs: nounwind446declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #3447 448; Function Attrs: noreturn nounwind449declare void @__assert_fail(ptr, ptr, i32 zeroext, ptr) #4450 451declare dereferenceable(8) ptr @_ZNSs6insertEmPKcm(ptr, i64, ptr, i64) #1452 453; Function Attrs: nounwind454declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #3455 456; Function Attrs: nounwind457declare void @_ZNSs4_Rep10_M_destroyERKSaIcE(ptr, ptr dereferenceable(1)) #0458 459; Function Attrs: nounwind460declare extern_weak signext i32 @__pthread_key_create(ptr, ptr) #0461 462; Function Attrs: nobuiltin nounwind463declare void @_ZdlPv(ptr) #6464 465declare void @_ZNSsC1EPKcmRKSaIcE(ptr, ptr, i64, ptr dereferenceable(1)) #1466 467declare hidden void @_ZN4llvm12SMDiagnosticD2Ev(ptr readonly %this) unnamed_addr #2 align 2468 469declare dereferenceable(48) ptr @_ZN4llvm15SmallVectorImplINS_7SMFixItEEaSEOS2_(ptr %this, ptr dereferenceable(48) %RHS) #0 align 2470 471declare ptr @_ZN4llvm7ParseIREPNS_12MemoryBufferERNS_12SMDiagnosticERNS_11LLVMContextE(ptr %Buffer, ptr dereferenceable(200) %Err, ptr dereferenceable(8) %Context) #0472 473declare void @_ZNSs4swapERSs(ptr, ptr dereferenceable(8)) #1474 475; Function Attrs: nounwind476declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) #3477 478attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }479attributes #1 = { "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }480attributes #2 = { inlinehint nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }481attributes #3 = { nounwind }482attributes #4 = { noreturn nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }483attributes #5 = { nounwind readonly "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }484attributes #6 = { nobuiltin nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }485attributes #7 = { noreturn nounwind }486 487!llvm.ident = !{!0}488 489!0 = !{!"clang version 3.6.0 (trunk 215115) (llvm/trunk 215117)"}490!1 = !{!2, !4, i64 0}491!2 = !{!"_ZTSSs", !3, i64 0}492!3 = !{!"_ZTSNSs12_Alloc_hiderE", !4, i64 0}493!4 = !{!"any pointer", !5, i64 0}494!5 = !{!"omnipotent char", !6, i64 0}495!6 = !{!"Simple C/C++ TBAA"}496!7 = !{!8, !9, i64 0}497!8 = !{!"_ZTSNSs9_Rep_baseE", !9, i64 0, !9, i64 8, !10, i64 16}498!9 = !{!"long", !5, i64 0}499!10 = !{!"int", !5, i64 0}500!11 = !{!12, !12, i64 0}501!12 = !{!"vtable pointer", !6, i64 0}502!13 = !{!3, !4, i64 0}503!14 = !{!15, !10, i64 24}504!15 = !{!"_ZTSN4llvm12SMDiagnosticE", !4, i64 0, !16, i64 8, !2, i64 16, !10, i64 24, !10, i64 28, !17, i64 32, !2, i64 40, !2, i64 48, !18, i64 56, !19, i64 80}505!16 = !{!"_ZTSN4llvm5SMLocE", !4, i64 0}506!17 = !{!"_ZTSN4llvm9SourceMgr8DiagKindE", !5, i64 0}507!18 = !{!"_ZTSSt6vectorISt4pairIjjESaIS1_EE"}508!19 = !{!"_ZTSN4llvm11SmallVectorINS_7SMFixItELj4EEE", !20, i64 48}509!20 = !{!"_ZTSN4llvm18SmallVectorStorageINS_7SMFixItELj4EEE", !5, i64 0}510!21 = !{!15, !10, i64 28}511!22 = !{!15, !17, i64 32}512!23 = !{!24, !4, i64 0}513!24 = !{!"_ZTSN4llvm15SmallVectorBaseE", !4, i64 0, !4, i64 8, !4, i64 16}514!25 = !{!24, !4, i64 8}515!26 = !{!24, !4, i64 16}516!27 = !{!4, !4, i64 0}517!28 = !{!"branch_weights", i32 64, i32 4}518!29 = !{!10, !10, i64 0}519!30 = !{!31, !4, i64 8}520!31 = !{!"_ZTSN4llvm12MemoryBufferE", !4, i64 8, !4, i64 16}521!32 = !{!31, !4, i64 16}522!33 = !{!5, !5, i64 0}523!34 = !{!35, !4, i64 0}524!35 = !{!"_ZTSSt12_Vector_baseISt4pairIjjESaIS1_EE", !36, i64 0}525!36 = !{!"_ZTSNSt12_Vector_baseISt4pairIjjESaIS1_EE12_Vector_implE", !4, i64 0, !4, i64 8, !4, i64 16}526!37 = !{!38, !38, i64 0}527!38 = !{!"bool", !5, i64 0}528!39 = !{i8 0, i8 2}529!40 = !{!41, !4, i64 0}530!41 = !{!"_ZTSN4llvm10TimeRegionE", !4, i64 0}531!42 = !{!43, !44, i64 32}532!43 = !{!"_ZTSN4llvm11raw_ostreamE", !4, i64 8, !4, i64 16, !4, i64 24, !44, i64 32}533!44 = !{!"_ZTSN4llvm11raw_ostream10BufferKindE", !5, i64 0}534!45 = !{!43, !4, i64 24}535!46 = !{!43, !4, i64 8}536!47 = !{i64 0, i64 8, !27, i64 8, i64 8, !27}537