Skip to content

Instantly share code, notes, and snippets.

@stelleg
Created January 10, 2018 19:37
Show Gist options
  • Save stelleg/89f40a1d726600956d72ed580194fcbc to your computer and use it in GitHub Desktop.
Save stelleg/89f40a1d726600956d72ed580194fcbc to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
; ModuleID = 'main.cpp'
source_filename = "main.cpp"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%"class.std::ios_base::Init" = type { i8 }
%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* }
%"class.std::ios_base" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" }
%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 }
%"struct.std::ios_base::_Words" = type { i8*, i64 }
%"class.std::locale" = type { %"class.std::locale::_Impl"* }
%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i64, %"class.std::locale::facet"**, i8** }
%"class.std::locale::facet" = type <{ i32 (...)**, i32, [4 x i8] }>
%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
%"class.std::ctype" = type <{ %"class.std::locale::facet.base", [4 x i8], %struct.__locale_struct*, i8, [7 x i8], i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8, [6 x i8] }>
%"class.std::locale::facet.base" = type <{ i32 (...)**, i32 }>
%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] }
%struct.__locale_data = type opaque
%"class.std::num_put" = type { %"class.std::locale::facet.base", [4 x i8] }
%"class.std::num_get" = type { %"class.std::locale::facet.base", [4 x i8] }
%struct.cilk_c_monoid = type { void (i8*, i8*, i8*)*, void (i8*, i8*)*, void (i8*, i8*)*, i8* (i8*, i64)*, void (i8*, i8*)* }
%struct.Box = type { [6 x i32] }
%"struct.std::pair" = type { i32, i32 }
%"struct.miniFE::Parameters" = type <{ i32, i32, i32, i32, i32, i32, float, [4 x i8], %"class.std::__cxx11::basic_string", i32, i32, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl" }
%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl" = type { %struct.Box*, %struct.Box*, %struct.Box* }
%"class.std::allocator.0" = type { i8 }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { i32 (...)** }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%class.YAML_Doc = type { %class.YAML_Element, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%class.YAML_Element = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.3" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<YAML_Element *, std::allocator<YAML_Element *> >::_Vector_impl" }
%"struct.std::_Vector_base<YAML_Element *, std::allocator<YAML_Element *> >::_Vector_impl" = type { %class.YAML_Element**, %class.YAML_Element**, %class.YAML_Element** }
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::new_allocator.1" = type { i8 }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i8* }
%"class.miniFE::simple_mesh_description" = type { %"class.std::set", %"class.std::set", %"class.std::map", %struct.Box, %struct.Box }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_key_compare" = type { %"struct.std::less" }
%"struct.std::less" = type { i8 }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
%"class.std::map" = type { %"class.std::_Rb_tree.11" }
%"class.std::_Rb_tree.11" = type { %"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int> >, std::less<int>, std::allocator<std::pair<const int, int> > >::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int> >, std::less<int>, std::allocator<std::pair<const int, int> > >::_Rb_tree_impl" = type { %"struct.std::_Rb_tree_key_compare", %"struct.std::_Rb_tree_header" }
%"struct.miniFE::CSRMatrix" = type <{ i8, [7 x i8], %"class.std::vector.15", %"class.std::vector.15", %"class.std::vector.15", %"class.std::vector.15", %"class.std::vector.20", i32, [4 x i8] }>
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl" = type { i32*, i32*, i32* }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<double, std::allocator<double> >::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double> >::_Vector_impl" = type { double*, double*, double* }
%"struct.miniFE::Vector" = type { i32, i32, %"class.std::vector.20" }
%"struct.miniFE::matvec_overlap" = type { i8 }
%"struct.miniFE::matvec_std" = type { i8 }
%"struct.std::pair.25" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator" = type { %"struct.std::_Rb_tree_node_base"* }
%"class.std::exception" = type { i32 (...)** }
%"class.std::allocator.17" = type { i8 }
%"class.std::runtime_error" = type { %"class.std::exception", %"struct.std::__cow_string" }
%"struct.std::__cow_string" = type { %union.anon.40 }
%union.anon.40 = type { i8* }
%"class.std::allocator.22" = type { i8 }
%"struct.miniFE::err_info" = type { double, double, double, [3 x double] }
%"class.__gnu_cxx::new_allocator.18" = type { i8 }
%"struct.std::__true_type" = type { i8 }
%"struct.std::pair.28" = type { i32, i32 }
%"struct.std::pair.26" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { %"struct.std::_Rb_tree_node_base"* }
%"struct.std::pair.29" = type { i32, i64 }
%"struct.std::pair.34" = type <{ %"struct.std::_Rb_tree_iterator.35", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.35" = type { %"struct.std::_Rb_tree_node_base"* }
%"class.std::allocator.8" = type { i8 }
%"class.__gnu_cxx::new_allocator.9" = type { i8 }
%"class.std::allocator.12" = type { i8 }
%"class.__gnu_cxx::new_allocator.13" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { i32* }
%"struct.std::pair.30" = type { %"struct.std::_Rb_tree_node_base"*, %"struct.std::_Rb_tree_node_base"* }
%"struct.std::_Select1st" = type { i8 }
%"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int> >, std::less<int>, std::allocator<std::pair<const int, int> > >::_Alloc_node" = type { %"class.std::_Rb_tree.11"* }
%"struct.std::_Rb_tree_node" = type { %"struct.std::_Rb_tree_node_base", %"struct.std::pair.28" }
%"class.std::allocator.31" = type { i8 }
%"class.__gnu_cxx::new_allocator.32" = type { i8 }
%"struct.std::_Identity" = type { i8 }
%"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_Alloc_node" = type { %"class.std::_Rb_tree"* }
%"struct.std::_Rb_tree_node.38" = type <{ %"struct.std::_Rb_tree_node_base", i32, [4 x i8] }>
%"struct.std::_Rb_tree_const_iterator.39" = type { %"struct.std::_Rb_tree_node_base"* }
%"class.__gnu_cxx::new_allocator.23" = type { i8 }
%struct.MatrixInitOp = type { i32*, i32*, i32*, i32, i32, i32, i32, i32*, i32*, i32*, double*, i32, %"class.miniFE::simple_mesh_description"* }
%"class.__gnu_cxx::__normal_iterator.41" = type { double* }
%"struct.__gnu_cxx::__ops::_Iter_less_iter" = type { i8 }
%"struct.__gnu_cxx::__ops::_Iter_less_val" = type { i8 }
%"struct.__gnu_cxx::__ops::_Val_less_iter" = type { i8 }
%"class.miniFE::BoxIterator" = type { i32, i32, i32, %struct.Box }
%"struct.miniFE::ElemData" = type { i64, [8 x i32], [192 x double], [24 x double], [36 x double], [8 x double] }
%"struct.std::random_access_iterator_tag" = type { i8 }
%"class.cilk::reducer_opadd" = type { %"class.cilk::reducer.base", [56 x i8] }
%"class.cilk::reducer.base" = type { %"class.cilk::internal::reducer_content.base" }
%"class.cilk::internal::reducer_content.base" = type { %"class.cilk::internal::reducer_base", [48 x i8], [8 x i8] }
%"class.cilk::internal::reducer_base" = type { %struct.__cilkrts_hyperobject_base, %"class.cilk::internal::storage_for_object", i8* }
%struct.__cilkrts_hyperobject_base = type { %struct.cilk_c_monoid, i64, i64, i64 }
%"class.cilk::internal::storage_for_object" = type { %"class.cilk::internal::aligned_storage" }
%"class.cilk::internal::aligned_storage" = type { [1 x i8] }
%"class.cilk::reducer" = type { %"class.cilk::internal::reducer_content.base", [56 x i8] }
%"class.cilk::op_add_view" = type { %"class.cilk::scalar_view" }
%"class.cilk::scalar_view" = type { double }
%"class.cilk::internal::reducer_content" = type { %"class.cilk::internal::reducer_base", [48 x i8], [8 x i8], [56 x i8] }
%"struct.cilk::op_add" = type { i8 }
%"class.cilk::monoid_base<double, cilk::op_add_view<double> >::provisional_guard" = type { %"struct.cilk::op_add"* }
%"class.cilk::monoid_with_view" = type { i8 }
%"class.cilk::monoid_base" = type { i8 }
$_ZNK3BoxixEi = comdat any
$_ZNSt4pairIiiEC2ERKiS2_ = comdat any
$_ZN6miniFE10ParametersC2Ev = comdat any
$_ZNSaI3BoxEC2Ev = comdat any
$_ZNSt6vectorI3BoxSaIS0_EEC2EmRKS0_RKS1_ = comdat any
$_ZNSaI3BoxED2Ev = comdat any
$_ZNSt6vectorI3BoxSaIS0_EEixEm = comdat any
$_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_ = comdat any
$__clang_call_terminate = comdat any
$_ZN6miniFE6driverIdiiEEvRK3BoxRS1_RNS_10ParametersER8YAML_Doc = comdat any
$_ZNSt6vectorI3BoxSaIS0_EED2Ev = comdat any
$_ZN6miniFE10ParametersD2Ev = comdat any
$_ZNSt8ios_base5widthEl = comdat any
$_ZN9__gnu_cxx13new_allocatorI3BoxEC2Ev = comdat any
$_ZN9__gnu_cxx13new_allocatorI3BoxED2Ev = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EEC2EmRKS1_ = comdat any
$_ZNSt6vectorI3BoxSaIS0_EE18_M_fill_initializeEmRKS0_ = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EED2Ev = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implC2ERKS1_ = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EE17_M_create_storageEm = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implD2Ev = comdat any
$_ZNSaI3BoxEC2ERKS0_ = comdat any
$_ZN9__gnu_cxx13new_allocatorI3BoxEC2ERKS2_ = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EE11_M_allocateEm = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaI3BoxEE8allocateERS2_m = comdat any
$_ZN9__gnu_cxx13new_allocatorI3BoxE8allocateEmPKv = comdat any
$_ZNK9__gnu_cxx13new_allocatorI3BoxE8max_sizeEv = comdat any
$_ZSt24__uninitialized_fill_n_aIP3BoxmS0_S0_ET_S2_T0_RKT1_RSaIT2_E = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EE19_M_get_Tp_allocatorEv = comdat any
$_ZSt20uninitialized_fill_nIP3BoxmS0_ET_S2_T0_RKT1_ = comdat any
$_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIP3BoxmS2_EET_S4_T0_RKT1_ = comdat any
$_ZSt6fill_nIP3BoxmS0_ET_S2_T0_RKT1_ = comdat any
$_ZSt10__fill_n_aIP3BoxmS0_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT1_EE7__valueET_E6__typeES5_T0_RKS4_ = comdat any
$_ZSt12__niter_baseIP3BoxET_S2_ = comdat any
$_ZNSt12_Vector_baseI3BoxSaIS0_EE13_M_deallocateEPS0_m = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaI3BoxEE10deallocateERS2_PS1_m = comdat any
$_ZN9__gnu_cxx13new_allocatorI3BoxE10deallocateEPS1_m = comdat any
$_ZSt8_DestroyIP3BoxS0_EvT_S2_RSaIT0_E = comdat any
$_ZSt8_DestroyIP3BoxEvT_S2_ = comdat any
$_ZNSt12_Destroy_auxILb1EE9__destroyIP3BoxEEvT_S4_ = comdat any
$_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_ = comdat any
$_ZN6miniFE13add_imbalanceIiEEvRK3BoxRS1_fR8YAML_Doc = comdat any
$_ZN6miniFE17compute_imbalanceIiEEvRK3BoxS3_RfS4_R8YAML_Docb = comdat any
$_ZN6miniFE23simple_mesh_descriptionIiEC2ERK3BoxS4_ = comdat any
$_ZN6miniFE9CSRMatrixIdiiEC2Ev = comdat any
$_ZN6miniFE25generate_matrix_structureINS_9CSRMatrixIdiiEEEEiRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERS4_ = comdat any
$_ZNKSt6vectorIiSaIiEE4sizeEv = comdat any
$_ZNSt6vectorIiSaIiEEixEm = comdat any
$_ZN6miniFE6VectorIdiiEC2Eii = comdat any
$_ZN6miniFE16assemble_FE_dataINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERS6_RT0_RNS_10ParametersE = comdat any
$_ZN6miniFE16impose_dirichletINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvNT_10ScalarTypeERS5_RT0_iiiRKSt3setINS5_17GlobalOrdinalTypeESt4lessISB_ESaISB_EE = comdat any
$_ZN6miniFE17make_local_matrixINS_9CSRMatrixIdiiEEEEvRT_ = comdat any
$_ZN6miniFE20compute_matrix_statsINS_9CSRMatrixIdiiEEEEmRKT_iiR8YAML_Doc = comdat any
$_ZNSt14numeric_limitsIdE7epsilonEv = comdat any
$_ZN6miniFE31rearrange_matrix_local_externalINS_9CSRMatrixIdiiEEEEvRT_ = comdat any
$_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_14matvec_overlapIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd = comdat any
$_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_10matvec_stdIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd = comdat any
$_ZN6miniFE15verify_solutionINS_6VectorIdiiEEEEiRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERKS4_db = comdat any
$_ZN6miniFE10TypeTraitsIdE4nameEv = comdat any
$_ZN6miniFE10TypeTraitsIiE4nameEv = comdat any
$_ZN6miniFE6VectorIdiiED2Ev = comdat any
$_ZN6miniFE9CSRMatrixIdiiED2Ev = comdat any
$_ZN6miniFE23simple_mesh_descriptionIiED2Ev = comdat any
$_ZN6miniFE11get_num_idsIiEET_RK3Box = comdat any
$_ZN6miniFE18get_global_min_maxIiEEvT_RS1_S2_RiS2_S3_ = comdat any
$_ZN3BoxixEi = comdat any
$_ZNSaIiEC2Ev = comdat any
$_ZNSt6vectorIiSaIiEEC2IiEET_S3_RKS0_ = comdat any
$_ZNSaIiED2Ev = comdat any
$_ZNSt6vectorIiSaIiEED2Ev = comdat any
$_ZN9__gnu_cxx13new_allocatorIiEC2Ev = comdat any
$_ZNSt12_Vector_baseIiSaIiEEC2ERKS0_ = comdat any
$_ZNSt6vectorIiSaIiEE22_M_initialize_dispatchIiEEvT_S3_St11__true_type = comdat any
$_ZNSt12_Vector_baseIiSaIiEED2Ev = comdat any
$_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2ERKS0_ = comdat any
$_ZNSaIiEC2ERKS_ = comdat any
$_ZN9__gnu_cxx13new_allocatorIiEC2ERKS1_ = comdat any
$_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm = comdat any
$_ZNSt6vectorIiSaIiEE18_M_fill_initializeEmRKi = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIiEE8allocateERS1_m = comdat any
$_ZN9__gnu_cxx13new_allocatorIiE8allocateEmPKv = comdat any
$_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv = comdat any
$_ZSt24__uninitialized_fill_n_aIPimiiET_S1_T0_RKT1_RSaIT2_E = comdat any
$_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv = comdat any
$_ZSt20uninitialized_fill_nIPimiET_S1_T0_RKT1_ = comdat any
$_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPimiEET_S3_T0_RKT1_ = comdat any
$_ZSt6fill_nIPimiET_S1_T0_RKT1_ = comdat any
$_ZSt10__fill_n_aIPimiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_ = comdat any
$_ZSt12__niter_baseIPiET_S1_ = comdat any
$_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim = comdat any
$_ZNSt12_Vector_baseIiSaIiEE12_Vector_implD2Ev = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIiEE10deallocateERS1_Pim = comdat any
$_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPim = comdat any
$_ZN9__gnu_cxx13new_allocatorIiED2Ev = comdat any
$_ZSt8_DestroyIPiiEvT_S1_RSaIT0_E = comdat any
$_ZSt8_DestroyIPiEvT_S1_ = comdat any
$_ZNSt12_Destroy_auxILb1EE9__destroyIPiEEvT_S3_ = comdat any
$_ZN6miniFE21percentage_differenceIfEET_S1_S1_ = comdat any
$_ZN6miniFE29compute_std_dev_as_percentageIfEET_S1_S1_ = comdat any
$_ZSt3absf = comdat any
$_ZNSt3setIiSt4lessIiESaIiEEC2Ev = comdat any
$_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEEC2Ev = comdat any
$_ZN6miniFE20create_map_id_to_rowIiEEviiiRK3BoxRSt3mapIT_S5_St4lessIS5_ESaISt4pairIKS5_S5_EEE = comdat any
$_ZN6miniFE6get_idIiEET_iiiiii = comdat any
$_ZNSt3setIiSt4lessIiESaIiEE6insertERKi = comdat any
$_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi = comdat any
$_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEED2Ev = comdat any
$_ZNSt3setIiSt4lessIiESaIiEED2Ev = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEEC2Ev = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE13_Rb_tree_implIS3_Lb0EEC2Ev = comdat any
$_ZNSaISt13_Rb_tree_nodeIiEEC2Ev = comdat any
$_ZNSt20_Rb_tree_key_compareISt4lessIiEEC2Ev = comdat any
$_ZNSt15_Rb_tree_headerC2Ev = comdat any
$_ZNSaISt13_Rb_tree_nodeIiEED2Ev = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIiEEC2Ev = comdat any
$_ZNSt15_Rb_tree_header8_M_resetEv = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIiEED2Ev = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EEC2Ev = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13_Rb_tree_implIS6_Lb0EEC2Ev = comdat any
$_ZNSaISt13_Rb_tree_nodeISt4pairIKiiEEEC2Ev = comdat any
$_ZNSaISt13_Rb_tree_nodeISt4pairIKiiEEED2Ev = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEEC2Ev = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEED2Ev = comdat any
$_ZNSt6vectorIiSaIiEEC2Ev = comdat any
$_ZN6miniFE7get_idsIiEEviiiRK3BoxRSt6vectorIT_SaIS5_EEb = comdat any
$_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertERKS4_ = comdat any
$_ZSt9make_pairIiiESt4pairIT_T0_ES1_S2_ = comdat any
$_ZNSt4pairIKiiEC2IiiEERKS_IT_T0_E = comdat any
$_ZSt9make_pairIimESt4pairIT_T0_ES1_S2_ = comdat any
$_ZNSt4pairIKiiEC2IimEERKS_IT_T0_E = comdat any
$_ZNSt12_Vector_baseIiSaIiEEC2Ev = comdat any
$_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2Ev = comdat any
$_ZNSt6vectorIiSaIiEE5clearEv = comdat any
$_ZNSt6vectorIiSaIiEE7reserveEm = comdat any
$_ZNSt6vectorIiSaIiEE9push_backERKi = comdat any
$_ZNSt6vectorIiSaIiEE15_M_erase_at_endEPi = comdat any
$_ZNKSt6vectorIiSaIiEE8max_sizeEv = comdat any
$_ZNKSt6vectorIiSaIiEE8capacityEv = comdat any
$_ZNSt6vectorIiSaIiEE20_M_allocate_and_copyIPiEES3_mT_S4_ = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIiEE8max_sizeERKS1_ = comdat any
$_ZNKSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv = comdat any
$_ZSt22__uninitialized_copy_aIPiS0_iET0_T_S2_S1_RSaIT1_E = comdat any
$_ZSt18uninitialized_copyIPiS0_ET0_T_S2_S1_ = comdat any
$_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPiS2_EET0_T_S4_S3_ = comdat any
$_ZSt4copyIPiS0_ET0_T_S2_S1_ = comdat any
$_ZSt14__copy_move_a2ILb0EPiS0_ET1_T0_S2_S1_ = comdat any
$_ZSt12__miter_baseIPiET_S1_ = comdat any
$_ZSt13__copy_move_aILb0EPiS0_ET1_T0_S2_S1_ = comdat any
$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIiEEPT_PKS3_S6_S4_ = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIiEE9constructIiEEvRS1_PiRKT_ = comdat any
$_ZNSt6vectorIiSaIiEE17_M_realloc_insertEN9__gnu_cxx17__normal_iteratorIPiS1_EERKi = comdat any
$_ZNSt6vectorIiSaIiEE3endEv = comdat any
$_ZN9__gnu_cxx13new_allocatorIiE9constructEPiRKi = comdat any
$_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc = comdat any
$_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_ = comdat any
$_ZNSt6vectorIiSaIiEE5beginEv = comdat any
$_ZSt34__uninitialized_move_if_noexcept_aIPiS0_SaIiEET0_T_S3_S2_RT1_ = comdat any
$_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEE4baseEv = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIiEE7destroyERS1_Pi = comdat any
$_ZSt3maxImERKT_S2_S2_ = comdat any
$_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEC2ERKS1_ = comdat any
$_ZN9__gnu_cxx13new_allocatorIiE7destroyEPi = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE16_M_insert_uniqueERKS2_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE24_M_get_insert_unique_posERS1_ = comdat any
$_ZNKSt10_Select1stISt4pairIKiiEEclERKS2_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE11_Alloc_nodeC2ERS8_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE10_M_insert_INS8_11_Alloc_nodeEEESt17_Rb_tree_iteratorIS2_EPSt18_Rb_tree_node_baseSE_RKS2_RT_ = comdat any
$_ZNSt4pairISt17_Rb_tree_iteratorIS_IKiiEEbEC2ERKS3_RKb = comdat any
$_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEC2EPSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_M_beginEv = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE6_M_endEv = comdat any
$_ZNKSt4lessIiEclERKiS2_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE6_S_keyEPKSt13_Rb_tree_nodeIS2_E = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE7_S_leftEPSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_S_rightEPSt18_Rb_tree_node_base = comdat any
$_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEeqERKS3_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE5beginEv = comdat any
$_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2ERKS1_S4_ = comdat any
$_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEmmEv = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE6_S_keyEPKSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_S_valueEPKSt13_Rb_tree_nodeIS2_E = comdat any
$_ZNKSt13_Rb_tree_nodeISt4pairIKiiEE9_M_valptrEv = comdat any
$_ZSt11__addressofIKSt4pairIKiiEEPT_RS4_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_S_valueEPKSt18_Rb_tree_node_base = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE11_Alloc_nodeclIS2_EEPSt13_Rb_tree_nodeIS2_ERKT_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE14_M_create_nodeERKS2_ = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE11_M_get_nodeEv = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE17_M_construct_nodeEPSt13_Rb_tree_nodeIS2_ERKS2_ = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaISt13_Rb_tree_nodeISt4pairIKiiEEEE8allocateERS6_m = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE21_M_get_Node_allocatorEv = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEE8allocateEmPKv = comdat any
$_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEE8max_sizeEv = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13get_allocatorEv = comdat any
$_ZN9__gnu_cxx13new_allocatorISt4pairIKiiEE9constructEPS3_RKS3_ = comdat any
$_ZNSt13_Rb_tree_nodeISt4pairIKiiEE9_M_valptrEv = comdat any
$_ZNSaISt4pairIKiiEED2Ev = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS2_E = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE21_M_get_Node_allocatorEv = comdat any
$_ZNSaISt4pairIKiiEEC2ISt13_Rb_tree_nodeIS1_EEERKSaIT_E = comdat any
$_ZN9__gnu_cxx13new_allocatorISt4pairIKiiEEC2Ev = comdat any
$_ZSt11__addressofISt4pairIKiiEEPT_RS3_ = comdat any
$_ZN9__gnu_cxx13new_allocatorISt4pairIKiiEED2Ev = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaISt13_Rb_tree_nodeISt4pairIKiiEEEE10deallocateERS6_PS5_m = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKiiEEE10deallocateEPS5_m = comdat any
$_ZNSt4pairIimEC2ERKiRKm = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE16_M_insert_uniqueERKi = comdat any
$_ZNSt23_Rb_tree_const_iteratorIiEC2ERKSt17_Rb_tree_iteratorIiE = comdat any
$_ZNSt4pairISt23_Rb_tree_const_iteratorIiEbEC2ERKS1_RKb = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE24_M_get_insert_unique_posERKi = comdat any
$_ZNKSt9_IdentityIiEclERKi = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE11_Alloc_nodeC2ERS5_ = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE10_M_insert_INS5_11_Alloc_nodeEEESt17_Rb_tree_iteratorIiEPSt18_Rb_tree_node_baseSB_RKiRT_ = comdat any
$_ZNSt4pairISt17_Rb_tree_iteratorIiEbEC2ERKS1_RKb = comdat any
$_ZNSt17_Rb_tree_iteratorIiEC2EPSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_M_beginEv = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE6_M_endEv = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE6_S_keyEPKSt13_Rb_tree_nodeIiE = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE7_S_leftEPSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_S_rightEPSt18_Rb_tree_node_base = comdat any
$_ZNKSt17_Rb_tree_iteratorIiEeqERKS0_ = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE5beginEv = comdat any
$_ZNSt17_Rb_tree_iteratorIiEmmEv = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE6_S_keyEPKSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_S_valueEPKSt13_Rb_tree_nodeIiE = comdat any
$_ZNKSt13_Rb_tree_nodeIiE9_M_valptrEv = comdat any
$_ZSt11__addressofIKiEPT_RS1_ = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_S_valueEPKSt18_Rb_tree_node_base = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE11_Alloc_nodeclIiEEPSt13_Rb_tree_nodeIiERKT_ = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE14_M_create_nodeERKi = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE11_M_get_nodeEv = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE17_M_construct_nodeEPSt13_Rb_tree_nodeIiERKi = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaISt13_Rb_tree_nodeIiEEE8allocateERS3_m = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE21_M_get_Node_allocatorEv = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIiEE8allocateEmPKv = comdat any
$_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIiEE8max_sizeEv = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE13get_allocatorEv = comdat any
$_ZNSt13_Rb_tree_nodeIiE9_M_valptrEv = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE11_M_put_nodeEPSt13_Rb_tree_nodeIiE = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE21_M_get_Node_allocatorEv = comdat any
$_ZNSaIiEC2ISt13_Rb_tree_nodeIiEEERKSaIT_E = comdat any
$_ZSt11__addressofIiEPT_RS0_ = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaISt13_Rb_tree_nodeIiEEE10deallocateERS3_PS2_m = comdat any
$_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIiEE10deallocateEPS2_m = comdat any
$_ZN6miniFE15find_row_for_idIiEET_S1_RKSt3mapIS1_S1_St4lessIS1_ESaISt4pairIKS1_S1_EEE = comdat any
$_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE11lower_boundERS3_ = comdat any
$_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEeqERKS3_ = comdat any
$_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv = comdat any
$_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv = comdat any
$_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE4sizeEv = comdat any
$_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEmmEv = comdat any
$_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE11lower_boundERS1_ = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS2_EPKSt18_Rb_tree_node_baseRS1_ = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_M_beginEv = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE6_M_endEv = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE7_S_leftEPKSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_S_rightEPKSt18_Rb_tree_node_base = comdat any
$_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEC2EPKSt18_Rb_tree_node_base = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE3endEv = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE4sizeEv = comdat any
$_ZNKSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE5beginEv = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EED2Ev = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13_Rb_tree_implIS6_Lb0EED2Ev = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS2_E = comdat any
$_ZNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS2_E = comdat any
$_ZN9__gnu_cxx13new_allocatorISt4pairIKiiEE7destroyEPS3_ = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEED2Ev = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_M_eraseEPSt13_Rb_tree_nodeIiE = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE13_Rb_tree_implIS3_Lb0EED2Ev = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE12_M_drop_nodeEPSt13_Rb_tree_nodeIiE = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE15_M_destroy_nodeEPSt13_Rb_tree_nodeIiE = comdat any
$_ZNSt6vectorIdSaIdEEC2Ev = comdat any
$_ZNSt12_Vector_baseIdSaIdEEC2Ev = comdat any
$_ZNSt12_Vector_baseIdSaIdEE12_Vector_implC2Ev = comdat any
$_ZN9__gnu_cxx13new_allocatorIdEC2Ev = comdat any
$_ZN6miniFE8copy_boxERK3BoxRS0_ = comdat any
$_ZN6miniFE9CSRMatrixIdiiE13reserve_spaceEjj = comdat any
$_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_ = comdat any
$_ZN6miniFE11init_matrixINS_9CSRMatrixIdiiEEEEvRT_RKSt6vectorINS3_17GlobalOrdinalTypeESaIS6_EERKS5_INS3_16LocalOrdinalTypeESaISB_EERKS5_IiSaIiEEiiiS6_RKNS_23simple_mesh_descriptionIS6_EE = comdat any
$_ZNSt6vectorIiSaIiEE6resizeEmi = comdat any
$_ZNSt6vectorIdSaIdEE7reserveEm = comdat any
$_ZNSt6vectorIiSaIiEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPiS1_EEmRKi = comdat any
$_ZSt22__uninitialized_move_aIPiS0_SaIiEET0_T_S3_S2_RT1_ = comdat any
$_ZSt13copy_backwardIPiS0_ET0_T_S2_S1_ = comdat any
$_ZSt4fillIPiiEvT_S1_RKT0_ = comdat any
$_ZSt23__copy_move_backward_a2ILb0EPiS0_ET1_T0_S2_S1_ = comdat any
$_ZSt22__copy_move_backward_aILb0EPiS0_ET1_T0_S2_S1_ = comdat any
$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIiEEPT_PKS3_S6_S4_ = comdat any
$_ZSt8__fill_aIPiiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_ = comdat any
$_ZNKSt6vectorIdSaIdEE8max_sizeEv = comdat any
$_ZNKSt6vectorIdSaIdEE8capacityEv = comdat any
$_ZNKSt6vectorIdSaIdEE4sizeEv = comdat any
$_ZNSt6vectorIdSaIdEE20_M_allocate_and_copyIPdEES3_mT_S4_ = comdat any
$_ZSt8_DestroyIPddEvT_S1_RSaIT0_E = comdat any
$_ZNSt12_Vector_baseIdSaIdEE19_M_get_Tp_allocatorEv = comdat any
$_ZNSt12_Vector_baseIdSaIdEE13_M_deallocateEPdm = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIdEE8max_sizeERKS1_ = comdat any
$_ZNKSt12_Vector_baseIdSaIdEE19_M_get_Tp_allocatorEv = comdat any
$_ZNK9__gnu_cxx13new_allocatorIdE8max_sizeEv = comdat any
$_ZNSt12_Vector_baseIdSaIdEE11_M_allocateEm = comdat any
$_ZSt22__uninitialized_copy_aIPdS0_dET0_T_S2_S1_RSaIT1_E = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIdEE8allocateERS1_m = comdat any
$_ZN9__gnu_cxx13new_allocatorIdE8allocateEmPKv = comdat any
$_ZSt18uninitialized_copyIPdS0_ET0_T_S2_S1_ = comdat any
$_ZNSt20__uninitialized_copyILb1EE13__uninit_copyIPdS2_EET0_T_S4_S3_ = comdat any
$_ZSt4copyIPdS0_ET0_T_S2_S1_ = comdat any
$_ZSt14__copy_move_a2ILb0EPdS0_ET1_T0_S2_S1_ = comdat any
$_ZSt12__miter_baseIPdET_S1_ = comdat any
$_ZSt13__copy_move_aILb0EPdS0_ET1_T0_S2_S1_ = comdat any
$_ZSt12__niter_baseIPdET_S1_ = comdat any
$_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIdEEPT_PKS3_S6_S4_ = comdat any
$_ZSt8_DestroyIPdEvT_S1_ = comdat any
$_ZNSt12_Destroy_auxILb1EE9__destroyIPdEEvT_S3_ = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIdEE10deallocateERS1_Pdm = comdat any
$_ZN9__gnu_cxx13new_allocatorIdE10deallocateEPdm = comdat any
$_ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_ = comdat any
$_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEm = comdat any
$_ZN12MatrixInitOpIN6miniFE9CSRMatrixIdiiEEEC2ERKSt6vectorIiSaIiEES8_S8_iiiiRKNS0_23simple_mesh_descriptionIiEERS2_ = comdat any
$_ZN12MatrixInitOpIN6miniFE9CSRMatrixIdiiEEEclEi = comdat any
$_ZNKSt6vectorIiSaIiEEixEm = comdat any
$_ZNSt6vectorIdSaIdEEixEm = comdat any
$_ZNSt6vectorIdSaIdEE6resizeEmd = comdat any
$_ZNSt6vectorIdSaIdEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPdS1_EEmRKd = comdat any
$_ZNSt6vectorIdSaIdEE3endEv = comdat any
$_ZNSt6vectorIdSaIdEE15_M_erase_at_endEPd = comdat any
$_ZN9__gnu_cxxmiIPdSt6vectorIdSaIdEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_ = comdat any
$_ZSt22__uninitialized_move_aIPdS0_SaIdEET0_T_S3_S2_RT1_ = comdat any
$_ZSt13copy_backwardIPdS0_ET0_T_S2_S1_ = comdat any
$_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEE4baseEv = comdat any
$_ZSt4fillIPddEvT_S1_RKT0_ = comdat any
$_ZSt24__uninitialized_fill_n_aIPdmddET_S1_T0_RKT1_RSaIT2_E = comdat any
$_ZNKSt6vectorIdSaIdEE12_M_check_lenEmPKc = comdat any
$_ZNSt6vectorIdSaIdEE5beginEv = comdat any
$_ZSt34__uninitialized_move_if_noexcept_aIPdS0_SaIdEET0_T_S3_S2_RT1_ = comdat any
$_ZSt23__copy_move_backward_a2ILb0EPdS0_ET1_T0_S2_S1_ = comdat any
$_ZSt22__copy_move_backward_aILb0EPdS0_ET1_T0_S2_S1_ = comdat any
$_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIdEEPT_PKS3_S6_S4_ = comdat any
$_ZSt8__fill_aIPddEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_ = comdat any
$_ZSt20uninitialized_fill_nIPdmdET_S1_T0_RKT1_ = comdat any
$_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPdmdEET_S3_T0_RKT1_ = comdat any
$_ZSt6fill_nIPdmdET_S1_T0_RKT1_ = comdat any
$_ZSt10__fill_n_aIPdmdEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_ = comdat any
$_ZN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEC2ERKS1_ = comdat any
$_Z14sort_if_neededIiEvPT_S0_ = comdat any
$_ZSt4sortIPiEvT_S1_ = comdat any
$_ZSt6__sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_ = comdat any
$_ZN9__gnu_cxx5__ops16__iter_less_iterEv = comdat any
$_ZSt16__introsort_loopIPilN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_T1_ = comdat any
$_ZSt4__lgl = comdat any
$_ZSt22__final_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_ = comdat any
$_ZSt14__partial_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_ = comdat any
$_ZSt27__unguarded_partition_pivotIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_T0_ = comdat any
$_ZSt13__heap_selectIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_T0_ = comdat any
$_ZSt11__sort_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_ = comdat any
$_ZSt11__make_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_RT0_ = comdat any
$_ZNK9__gnu_cxx5__ops15_Iter_less_iterclIPiS3_EEbT_T0_ = comdat any
$_ZSt10__pop_heapIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_RT0_ = comdat any
$_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_ = comdat any
$_ZN9__gnu_cxx5__ops14_Iter_less_valC2ENS0_15_Iter_less_iterE = comdat any
$_ZSt11__push_heapIPiliN9__gnu_cxx5__ops14_Iter_less_valEEvT_T0_S5_T1_RT2_ = comdat any
$_ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiiEEbT_RT0_ = comdat any
$_ZSt22__move_median_to_firstIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_S4_S4_T0_ = comdat any
$_ZSt21__unguarded_partitionIPiN9__gnu_cxx5__ops15_Iter_less_iterEET_S4_S4_S4_T0_ = comdat any
$_ZSt9iter_swapIPiS0_EvT_T0_ = comdat any
$_ZNSt11__iter_swapILb1EE9iter_swapIPiS2_EEvT_T0_ = comdat any
$_ZSt4swapIiEvRT_S1_ = comdat any
$_ZSt16__insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_ = comdat any
$_ZSt26__unguarded_insertion_sortIPiN9__gnu_cxx5__ops15_Iter_less_iterEEvT_S4_T0_ = comdat any
$_ZSt25__unguarded_linear_insertIPiN9__gnu_cxx5__ops14_Val_less_iterEEvT_T0_ = comdat any
$_ZN9__gnu_cxx5__ops15__val_comp_iterENS0_15_Iter_less_iterE = comdat any
$_ZNK9__gnu_cxx5__ops14_Val_less_iterclIiPiEEbRT_T0_ = comdat any
$_ZN9__gnu_cxx5__ops14_Val_less_iterC2Ev = comdat any
$_ZNSaIdEC2Ev = comdat any
$_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_ = comdat any
$_ZNSaIdED2Ev = comdat any
$_ZNSt6vectorIdSaIdEED2Ev = comdat any
$_ZNSt12_Vector_baseIdSaIdEEC2EmRKS0_ = comdat any
$_ZNSt6vectorIdSaIdEE18_M_fill_initializeEmRKd = comdat any
$_ZNSt12_Vector_baseIdSaIdEED2Ev = comdat any
$_ZNSt12_Vector_baseIdSaIdEE12_Vector_implC2ERKS0_ = comdat any
$_ZNSt12_Vector_baseIdSaIdEE17_M_create_storageEm = comdat any
$_ZNSt12_Vector_baseIdSaIdEE12_Vector_implD2Ev = comdat any
$_ZNSaIdEC2ERKS_ = comdat any
$_ZN9__gnu_cxx13new_allocatorIdEC2ERKS1_ = comdat any
$_ZN9__gnu_cxx13new_allocatorIdED2Ev = comdat any
$_ZN6miniFE20perform_element_loopIiNS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRKNS_23simple_mesh_descriptionIT_EERK3BoxRT0_RT1_RNS_10ParametersE = comdat any
$_ZN6miniFE11BoxIterator5beginERK3Box = comdat any
$_ZN6miniFE11BoxIterator3endERK3Box = comdat any
$_ZNK6miniFE11BoxIteratorneERKS0_ = comdat any
$_ZN6miniFE11BoxIteratorppEv = comdat any
$_ZN6miniFE8ElemDataIidEC2Ev = comdat any
$_ZN6miniFE23compute_gradient_valuesIdEEvPT_ = comdat any
$_ZN6miniFE25get_elem_nodes_and_coordsIidEEvRKNS_23simple_mesh_descriptionIT_EES2_RNS_8ElemDataIS2_T0_EE = comdat any
$_ZN6miniFE33compute_element_matrix_and_vectorIidEEvRNS_8ElemDataIT_T0_EE = comdat any
$_ZN6miniFE29sum_into_global_linear_systemIidNS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRNS_8ElemDataIT_T0_EERT1_RT2_ = comdat any
$_ZN6miniFE8ElemDataIidED2Ev = comdat any
$_ZN6miniFE11BoxIteratorD2Ev = comdat any
$_ZN6miniFE11BoxIteratorC2ERK3Boxb = comdat any
$_ZNK6miniFE11BoxIteratoreqERKS0_ = comdat any
$_ZN6miniFE9gauss_ptsIdEEviPT_S2_ = comdat any
$_ZN6miniFE4Hex89gradientsIdEEvPKT_PS2_ = comdat any
$_ZN6miniFE25get_elem_nodes_and_coordsIidEEvRKNS_23simple_mesh_descriptionIT_EES2_PS2_PT0_ = comdat any
$_ZN6miniFE14get_int_coordsIiEEvT_iiiRiS2_S2_ = comdat any
$_ZN6miniFE17get_hex8_node_idsIiEEviiT_PS1_ = comdat any
$_ZN6miniFE10get_coordsIidEEvT_iiiRT0_S3_S3_ = comdat any
$_ZN6miniFE23get_hex8_node_coords_3dIdEEvT_S1_S1_S1_S1_S1_PS1_ = comdat any
$_ZN6miniFE4Hex820diffusionMatrix_symmIdEEvPKT_S4_PS2_ = comdat any
$_ZN6miniFE4Hex812sourceVectorIdEEvPKT_S4_PS2_ = comdat any
$_ZN6miniFE4fillIdEEvPT_S2_RKS1_ = comdat any
$_ZN6miniFE4Hex827gradients_and_invJ_and_detJIdEEvPKT_S4_PS2_RS2_ = comdat any
$_ZN6miniFE4Hex89shape_fnsIdEEvPKT_PS2_ = comdat any
$_ZN6miniFE4Hex818gradients_and_detJIdEEvPKT_S4_RS2_ = comdat any
$_ZN6miniFE23sum_in_symm_elem_matrixINS_9CSRMatrixIdiiEEEEvmPKNT_17GlobalOrdinalTypeEPKNS3_10ScalarTypeERS3_ = comdat any
$_ZN6miniFE15sum_into_vectorINS_6VectorIdiiEEEEvmPKNT_17GlobalOrdinalTypeEPKNS3_10ScalarTypeERS3_ = comdat any
$_ZN6miniFE9CSRMatrixIdiiE16get_row_pointersEiRmRPiRPd = comdat any
$_ZN6miniFE12sum_into_rowIidEEviPT_PT0_iPKS1_PKS3_ = comdat any
$_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_ = comdat any
$_ZN9__gnu_cxxeqIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_ = comdat any
$_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv = comdat any
$_ZSt13__lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiNS0_5__ops14_Iter_less_valEET_S9_S9_RKT0_T1_ = comdat any
$_ZN9__gnu_cxx5__ops15__iter_less_valEv = comdat any
$_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEENSt15iterator_traitsIT_E15difference_typeES8_S8_ = comdat any
$_ZSt7advanceIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEElEvRT_T0_ = comdat any
$_ZNK9__gnu_cxx5__ops14_Iter_less_valclINS_17__normal_iteratorIPiSt6vectorIiSaIiEEEEKiEEbT_RT0_ = comdat any
$_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv = comdat any
$_ZSt10__distanceIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEENSt15iterator_traitsIT_E15difference_typeES8_S8_St26random_access_iterator_tag = comdat any
$_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS8_ = comdat any
$_ZSt9__advanceIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEElEvRT_T0_St26random_access_iterator_tag = comdat any
$_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEpLEl = comdat any
$_ZN9__gnu_cxx5__ops14_Iter_less_valC2Ev = comdat any
$_ZSt11lower_boundIPiiET_S1_S1_RKT0_ = comdat any
$_ZSt13__lower_boundIPiiN9__gnu_cxx5__ops14_Iter_less_valEET_S4_S4_RKT0_T1_ = comdat any
$_ZSt8distanceIPiENSt15iterator_traitsIT_E15difference_typeES2_S2_ = comdat any
$_ZSt7advanceIPilEvRT_T0_ = comdat any
$_ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiKiEEbT_RT0_ = comdat any
$_ZSt10__distanceIPiENSt15iterator_traitsIT_E15difference_typeES2_S2_St26random_access_iterator_tag = comdat any
$_ZSt19__iterator_categoryIPiENSt15iterator_traitsIT_E17iterator_categoryERKS2_ = comdat any
$_ZSt9__advanceIPilEvRT_T0_St26random_access_iterator_tag = comdat any
$_ZNKSt3setIiSt4lessIiESaIiEE5beginEv = comdat any
$_ZNKSt3setIiSt4lessIiESaIiEE3endEv = comdat any
$_ZNKSt23_Rb_tree_const_iteratorIiEneERKS0_ = comdat any
$_ZNKSt23_Rb_tree_const_iteratorIiEdeEv = comdat any
$_ZN6miniFE30zero_row_and_put_1_on_diagonalINS_9CSRMatrixIdiiEEEEvRT_NS3_17GlobalOrdinalTypeE = comdat any
$_ZNSt23_Rb_tree_const_iteratorIiEppEv = comdat any
$_ZNKSt3setIiSt4lessIiESaIiEE4findERKi = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE5beginEv = comdat any
$_ZNSt23_Rb_tree_const_iteratorIiEC2EPKSt18_Rb_tree_node_base = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE3endEv = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE4findERKi = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE14_M_lower_boundEPKSt13_Rb_tree_nodeIiEPKSt18_Rb_tree_node_baseRKi = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_M_beginEv = comdat any
$_ZNKSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE6_M_endEv = comdat any
$_ZNKSt23_Rb_tree_const_iteratorIiEeqERKS0_ = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE7_S_leftEPKSt18_Rb_tree_node_base = comdat any
$_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_S_rightEPKSt18_Rb_tree_node_base = comdat any
$_ZNK6miniFE9CSRMatrixIdiiE12num_nonzerosEv = comdat any
$_ZN6miniFE18get_global_min_maxIdEEvT_RS1_S2_RiS2_S3_ = comdat any
$_ZN6miniFE27parallel_memory_overhead_MBINS_9CSRMatrixIdiiEEEEdRKT_ = comdat any
$_ZNSt6vectorIdSaIdEEC2IiEET_S3_RKS0_ = comdat any
$_ZNSt12_Vector_baseIdSaIdEEC2ERKS0_ = comdat any
$_ZNSt6vectorIdSaIdEE22_M_initialize_dispatchIiEEvT_S3_St11__true_type = comdat any
$_ZN6miniFE20sort_with_companionsIidEEvlPT_PT0_ = comdat any
$_ZSt11lower_boundIPimET_S1_S1_RKT0_ = comdat any
$_ZSt13__lower_boundIPimN9__gnu_cxx5__ops14_Iter_less_valEET_S4_S4_RKT0_T1_ = comdat any
$_ZNK9__gnu_cxx5__ops14_Iter_less_valclIPiKmEEbT_RT0_ = comdat any
$_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_ = comdat any
$_ZN6miniFE14matvec_overlapINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEclERS2_RS4_S7_ = comdat any
$_ZN6miniFE3dotINS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_S9_ = comdat any
$_ZN6miniFE6dot_r2INS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_ = comdat any
$_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_ = comdat any
$_ZN6miniFE9breakdownINS_6VectorIdiiEEEEbNT_10ScalarTypeERKS3_S6_ = comdat any
$_ZNKSt6vectorIdSaIdEEixEm = comdat any
$_ZN4cilk13reducer_opaddIdEC2Ev = comdat any
$_ZN4cilk13reducer_opaddIdEpLERKd = comdat any
$_ZNK4cilk7reducerINS_6op_addIdLb1EEEE9get_valueEv = comdat any
$_ZN4cilk13reducer_opaddIdED2Ev = comdat any
$_ZN4cilk7reducerINS_6op_addIdLb1EEEEC2Ev = comdat any
$_ZN4cilk8internal15reducer_contentINS_6op_addIdLb1EEELb1EEC2Ev = comdat any
$_ZN4cilk11monoid_baseIdNS_11op_add_viewIdEEE9constructINS_6op_addIdLb1EEEEEvPT_PS2_ = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE10monoid_ptrEv = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE12leftmost_ptrEv = comdat any
$_ZN4cilk8internal15reducer_contentINS_6op_addIdLb1EEELb1EED2Ev = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEEC2EPc = comdat any
$_ZNK4cilk8internal15reducer_contentINS_6op_addIdLb1EEELb1EE24reducer_is_cache_alignedEv = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEED2Ev = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE14reduce_wrapperEPvS5_S5_ = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE16identity_wrapperEPvS5_ = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE15destroy_wrapperEPvS5_ = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE16allocate_wrapperEPvm = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE18deallocate_wrapperEPvS5_ = comdat any
$_ZNK4cilk16monoid_with_viewINS_11op_add_viewIdEELb1EE6reduceEPS2_S4_ = comdat any
$_ZN4cilk11op_add_viewIdE6reduceEPS1_ = comdat any
$_ZNK4cilk16monoid_with_viewINS_11op_add_viewIdEELb1EE8identityEPS2_ = comdat any
$_ZN4cilk11op_add_viewIdEC2Ev = comdat any
$_ZN4cilk11scalar_viewIdEC2Ev = comdat any
$_ZNK4cilk11monoid_baseIdNS_11op_add_viewIdEEE7destroyEPS2_ = comdat any
$_ZNK4cilk11monoid_baseIdNS_11op_add_viewIdEEE8allocateEm = comdat any
$_ZNK4cilk11monoid_baseIdNS_11op_add_viewIdEEE10deallocateEPv = comdat any
$_ZN4cilk11monoid_baseIdNS_11op_add_viewIdEEE11provisionalINS_6op_addIdLb1EEEEENS3_17provisional_guardIT_EEPS8_ = comdat any
$_ZN4cilk11monoid_baseIdNS_11op_add_viewIdEEE17provisional_guardINS_6op_addIdLb1EEEE10confirm_ifIS2_EEPT_SA_ = comdat any
$_ZN4cilk11monoid_baseIdNS_11op_add_viewIdEEE17provisional_guardINS_6op_addIdLb1EEEED2Ev = comdat any
$_ZN4cilk11monoid_baseIdNS_11op_add_viewIdEEE17provisional_guardINS_6op_addIdLb1EEEEC2EPS6_ = comdat any
$_ZN4cilk8internal18storage_for_objectINS_6op_addIdLb1EEEE6objectEv = comdat any
$_ZN4cilk7reducerINS_6op_addIdLb1EEEE4viewEv = comdat any
$_ZN4cilk11op_add_viewIdEpLERKd = comdat any
$_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE4viewEv = comdat any
$_ZN4cilk8internal15reducer_set_getIdNS_11op_add_viewIdEEE9get_valueERKS3_ = comdat any
$_ZNK4cilk7reducerINS_6op_addIdLb1EEEE4viewEv = comdat any
$_ZNK4cilk11scalar_viewIdE14view_get_valueEv = comdat any
$_ZNK4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE4viewEv = comdat any
$_ZN4cilk7reducerINS_6op_addIdLb1EEEED2Ev = comdat any
$_ZSt3absd = comdat any
$_ZN6miniFE10matvec_stdINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEclERS2_RS4_S7_ = comdat any
$_ZN6miniFE18exchange_externalsINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRT_RT0_ = comdat any
$_ZNSt6vectorIdSaIdEE9push_backERKd = comdat any
$_ZN6miniFE4solnEdddii = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIdEE9constructIdEEvRS1_PdRKT_ = comdat any
$_ZNSt6vectorIdSaIdEE17_M_realloc_insertEN9__gnu_cxx17__normal_iteratorIPdS1_EERKd = comdat any
$_ZN9__gnu_cxx13new_allocatorIdE9constructEPdRKd = comdat any
$_ZN9__gnu_cxx14__alloc_traitsISaIdEE7destroyERS1_Pd = comdat any
$_ZN9__gnu_cxx13new_allocatorIdE7destroyEPd = comdat any
$_ZN6miniFE3fcnEid = comdat any
$_ZN6miniFE5fcn_lEii = comdat any
$_ZZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEEC1EPcE20c_monoid_initializer = comdat any
@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1
@__dso_handle = external hidden global i8
@_ZN6miniFEL4NONEE = internal constant i32 3, align 4
@_ZN6miniFEL5UPPERE = internal constant i32 1, align 4
@.str = private unnamed_addr constant [8 x i8] c"miniFE.\00", align 1
@.str.1 = private unnamed_addr constant [2 x i8] c"x\00", align 1
@.str.2 = private unnamed_addr constant [2 x i8] c".\00", align 1
@.str.3 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@.str.4 = private unnamed_addr constant [7 x i8] c"miniFE\00", align 1
@.str.5 = private unnamed_addr constant [4 x i8] c"2.0\00", align 1
@.str.6 = private unnamed_addr constant [19 x i8] c"Total Program Time\00", align 1
@.str.7 = private unnamed_addr constant [22 x i8] c"Global Run Parameters\00", align 1
@.str.8 = private unnamed_addr constant [11 x i8] c"dimensions\00", align 1
@.str.9 = private unnamed_addr constant [3 x i8] c"nx\00", align 1
@.str.10 = private unnamed_addr constant [3 x i8] c"ny\00", align 1
@.str.11 = private unnamed_addr constant [3 x i8] c"nz\00", align 1
@.str.12 = private unnamed_addr constant [15 x i8] c"load_imbalance\00", align 1
@.str.13 = private unnamed_addr constant [8 x i8] c"1 (yes)\00", align 1
@.str.14 = private unnamed_addr constant [21 x i8] c"mv_overlap_comm_comp\00", align 1
@.str.15 = private unnamed_addr constant [7 x i8] c"0 (no)\00", align 1
@.str.16 = private unnamed_addr constant [21 x i8] c"number of processors\00", align 1
@.str.17 = private unnamed_addr constant [9 x i8] c"Platform\00", align 1
@.str.18 = private unnamed_addr constant [9 x i8] c"hostname\00", align 1
@.str.19 = private unnamed_addr constant [10 x i8] c"pn1714976\00", align 1
@.str.20 = private unnamed_addr constant [12 x i8] c"kernel name\00", align 1
@.str.21 = private unnamed_addr constant [8 x i8] c"'Linux'\00", align 1
@.str.22 = private unnamed_addr constant [15 x i8] c"kernel release\00", align 1
@.str.23 = private unnamed_addr constant [17 x i8] c"'4.14.12-1-ARCH'\00", align 1
@.str.24 = private unnamed_addr constant [10 x i8] c"processor\00", align 1
@.str.25 = private unnamed_addr constant [10 x i8] c"'unknown'\00", align 1
@.str.26 = private unnamed_addr constant [6 x i8] c"Build\00", align 1
@.str.27 = private unnamed_addr constant [4 x i8] c"CXX\00", align 1
@.str.28 = private unnamed_addr constant [45 x i8] c"'/home/george/tasks/tapir/build/bin/clang++'\00", align 1
@.str.29 = private unnamed_addr constant [17 x i8] c"compiler version\00", align 1
@.str.30 = private unnamed_addr constant [177 x i8] c"'clang version 5.0.0 (git github.com:wsmoses/cilk-clang 076e3106215e6a17a659ec1d015fdacf86f57ff2) (git github.com:wsmoses/parallel-ir 865ac1a659b97bdecd170253554e25cec4391252)'\00", align 1
@.str.31 = private unnamed_addr constant [9 x i8] c"CXXFLAGS\00", align 1
@.str.32 = private unnamed_addr constant [17 x i8] c"'-O2 -fcilkplus'\00", align 1
@.str.33 = private unnamed_addr constant [3 x i8] c"no\00", align 1
@.str.34 = private unnamed_addr constant [10 x i8] c"using MPI\00", align 1
@.str.35 = private unnamed_addr constant [2 x i8] c"-\00", align 1
@.str.36 = private unnamed_addr constant [3 x i8] c", \00", align 1
@.str.37 = private unnamed_addr constant [14 x i8] c"Run Date/Time\00", align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.38 = private unnamed_addr constant [25 x i8] c"creating/filling mesh...\00", align 1
@.str.39 = private unnamed_addr constant [16 x i8] c"s, total time: \00", align 1
@.str.40 = private unnamed_addr constant [31 x i8] c"generating matrix structure...\00", align 1
@.str.41 = private unnamed_addr constant [22 x i8] c"assembling FE data...\00", align 1
@.str.42 = private unnamed_addr constant [28 x i8] c"Matrix structure generation\00", align 1
@.str.43 = private unnamed_addr constant [19 x i8] c"Mat-struc-gen Time\00", align 1
@.str.44 = private unnamed_addr constant [12 x i8] c"FE assembly\00", align 1
@.str.45 = private unnamed_addr constant [17 x i8] c"FE assembly Time\00", align 1
@.str.46 = private unnamed_addr constant [25 x i8] c"imposing Dirichlet BC...\00", align 1
@.str.47 = private unnamed_addr constant [31 x i8] c"making matrix indices local...\00", align 1
@.str.48 = private unnamed_addr constant [24 x i8] c"Starting CG solver ... \00", align 1
@.str.49 = private unnamed_addr constant [19 x i8] c"Final Resid Norm: \00", align 1
@.str.50 = private unnamed_addr constant [22 x i8] c"verifying solution...\00", align 1
@.str.51 = private unnamed_addr constant [44 x i8] c"verifying solution at ~ (0.5, 0.5, 0.5) ...\00", align 1
@.str.52 = private unnamed_addr constant [9 x i8] c"CG solve\00", align 1
@.str.53 = private unnamed_addr constant [11 x i8] c"ScalarType\00", align 1
@.str.54 = private unnamed_addr constant [18 x i8] c"GlobalOrdinalType\00", align 1
@.str.55 = private unnamed_addr constant [17 x i8] c"LocalOrdinalType\00", align 1
@.str.56 = private unnamed_addr constant [11 x i8] c"Iterations\00", align 1
@.str.57 = private unnamed_addr constant [17 x i8] c"Final Resid Norm\00", align 1
@.str.58 = private unnamed_addr constant [11 x i8] c"WAXPY Time\00", align 1
@.str.59 = private unnamed_addr constant [12 x i8] c"WAXPY Flops\00", align 1
@.str.60 = private unnamed_addr constant [13 x i8] c"WAXPY Mflops\00", align 1
@.str.61 = private unnamed_addr constant [4 x i8] c"inf\00", align 1
@.str.62 = private unnamed_addr constant [9 x i8] c"DOT Time\00", align 1
@.str.63 = private unnamed_addr constant [10 x i8] c"DOT Flops\00", align 1
@.str.64 = private unnamed_addr constant [11 x i8] c"DOT Mflops\00", align 1
@.str.65 = private unnamed_addr constant [12 x i8] c"MATVEC Time\00", align 1
@.str.66 = private unnamed_addr constant [13 x i8] c"MATVEC Flops\00", align 1
@.str.67 = private unnamed_addr constant [14 x i8] c"MATVEC Mflops\00", align 1
@.str.68 = private unnamed_addr constant [6 x i8] c"Total\00", align 1
@.str.69 = private unnamed_addr constant [14 x i8] c"Total CG Time\00", align 1
@.str.70 = private unnamed_addr constant [15 x i8] c"Total CG Flops\00", align 1
@.str.71 = private unnamed_addr constant [16 x i8] c"Total CG Mflops\00", align 1
@.str.72 = private unnamed_addr constant [19 x i8] c"Time per iteration\00", align 1
@.str.73 = private unnamed_addr constant [29 x i8] c"Rows-per-proc Load Imbalance\00", align 1
@.str.74 = private unnamed_addr constant [22 x i8] c"Largest (from avg, %)\00", align 1
@.str.75 = private unnamed_addr constant [12 x i8] c"Std Dev (%)\00", align 1
@.str.76 = private unnamed_addr constant [22 x i8] c"on the y==0 face (ix=\00", align 1
@.str.77 = private unnamed_addr constant [6 x i8] c", iz=\00", align 1
@.str.78 = private unnamed_addr constant [31 x i8] c"), ERROR: found negative row (\00", align 1
@.str.79 = private unnamed_addr constant [14 x i8] c") for nodeID=\00", align 1
@.str.80 = private unnamed_addr constant [16 x i8] c"vector::reserve\00", align 1
@.str.81 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1
@.str.82 = private unnamed_addr constant [32 x i8] c"ERROR, failed to map id to row.\00", align 1
@.str.83 = private unnamed_addr constant [11 x i8] c"ERROR, id:\00", align 1
@.str.84 = private unnamed_addr constant [24 x i8] c", ids_to_rows.begin(): \00", align 1
@.str.85 = private unnamed_addr constant [50 x i8] c"ERROR, negative offset in find_row_for_id for id=\00", align 1
@_ZTISt9exception = external constant i8*
@.str.86 = private unnamed_addr constant [100 x i8] c"One of A.rows.resize, A.row_offsets.resize, A.packed_cols.reserve or A.packed_coefs.reserve: nrows=\00", align 1
@.str.87 = private unnamed_addr constant [3 x i8] c": \00", align 1
@_ZTISt13runtime_error = external constant i8*
@.str.88 = private unnamed_addr constant [54 x i8] c"ERROR in generate_matrix_structure, roffset != nrows.\00", align 1
@.str.89 = private unnamed_addr constant [6 x i8] c"proc \00", align 1
@.str.90 = private unnamed_addr constant [89 x i8] c" threw an exception in generate_matrix_structure, probably due to running out of memory.\00", align 1
@.str.91 = private unnamed_addr constant [23 x i8] c"vector::_M_fill_insert\00", align 1
@.str.92 = private unnamed_addr constant [32 x i8] c"Warning, packed_cols.capacity (\00", align 1
@.str.93 = private unnamed_addr constant [6 x i8] c") != \00", align 1
@.str.94 = private unnamed_addr constant [24 x i8] c"packed_coefs.capacity (\00", align 1
@.str.95 = private unnamed_addr constant [2 x i8] c")\00", align 1
@.str.96 = private unnamed_addr constant [11 x i8] c") < nnz (\00", align 1
@.str.97 = private unnamed_addr constant [49 x i8] c"get_elem_nodes_and_coords ERROR, negative elemID\00", align 1
@.str.98 = private unnamed_addr constant [18 x i8] c"Matrix attributes\00", align 1
@.str.99 = private unnamed_addr constant [13 x i8] c"Global Nrows\00", align 1
@.str.100 = private unnamed_addr constant [11 x i8] c"Global NNZ\00", align 1
@.str.101 = private unnamed_addr constant [19 x i8] c"Global Memory (GB)\00", align 1
@.str.102 = private unnamed_addr constant [25 x i8] c"Pll Memory Overhead (MB)\00", align 1
@.str.103 = private unnamed_addr constant [18 x i8] c"Rows per proc MIN\00", align 1
@.str.104 = private unnamed_addr constant [18 x i8] c"Rows per proc MAX\00", align 1
@.str.105 = private unnamed_addr constant [18 x i8] c"Rows per proc AVG\00", align 1
@.str.106 = private unnamed_addr constant [17 x i8] c"NNZ per proc MIN\00", align 1
@.str.107 = private unnamed_addr constant [17 x i8] c"NNZ per proc MAX\00", align 1
@.str.108 = private unnamed_addr constant [17 x i8] c"NNZ per proc AVG\00", align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.109 = private unnamed_addr constant [93 x i8] c"miniFE::cg_solve ERROR, A.has_local_indices is false, needs to be true. This probably means \00", align 1
@.str.110 = private unnamed_addr constant [79 x i8] c"miniFE::make_local_matrix(A) was not called prior to calling miniFE::cg_solve.\00", align 1
@.str.111 = private unnamed_addr constant [20 x i8] c"Initial Residual = \00", align 1
@.str.112 = private unnamed_addr constant [13 x i8] c"Iteration = \00", align 1
@.str.113 = private unnamed_addr constant [15 x i8] c" Residual = \00", align 1
@.str.114 = private unnamed_addr constant [45 x i8] c"miniFE::cg_solve ERROR, numerical breakdown!\00", align 1
@.str.115 = private unnamed_addr constant [105 x i8] c"Reducer should be cache aligned. Please see comments following this assertion for explanation and fixes.\00", align 1
@.str.116 = private unnamed_addr constant [137 x i8] c"reducer_is_cache_aligned() && \22Reducer should be cache aligned. Please see comments following this assertion for explanation and fixes.\22\00", align 1
@.str.117 = private unnamed_addr constant [70 x i8] c"/home/george/tasks/tapir/build/lib/clang/5.0.0/include/cilk/reducer.h\00", align 1
@__PRETTY_FUNCTION__._ZN4cilk8internal15reducer_contentINS_6op_addIdLb1EEELb1EEC2Ev = private unnamed_addr constant [139 x i8] c"cilk::internal::reducer_content<cilk::op_add<double, true>, true>::reducer_content() [Monoid = cilk::op_add<double, true>, Aligned = true]\00", align 1
@_ZZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEEC1EPcE20c_monoid_initializer = linkonce_odr constant %struct.cilk_c_monoid { void (i8*, i8*, i8*)* @_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE14reduce_wrapperEPvS5_S5_, void (i8*, i8*)* @_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE16identity_wrapperEPvS5_, void (i8*, i8*)* @_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE15destroy_wrapperEPvS5_, i8* (i8*, i64)* @_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE16allocate_wrapperEPvm, void (i8*, i8*)* @_ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEE18deallocate_wrapperEPvS5_ }, comdat, align 8
@.str.118 = private unnamed_addr constant [55 x i8] c"this == m_initialThis || this == *(&m_initialThis + 1)\00", align 1
@__PRETTY_FUNCTION__._ZN4cilk8internal12reducer_baseINS_6op_addIdLb1EEEED2Ev = private unnamed_addr constant [113 x i8] c"cilk::internal::reducer_base<cilk::op_add<double, true> >::~reducer_base() [Monoid = cilk::op_add<double, true>]\00", align 1
@.str.119 = private unnamed_addr constant [23 x i8] c"max absolute error is \00", align 1
@.str.120 = private unnamed_addr constant [2 x i8] c":\00", align 1
@.str.121 = private unnamed_addr constant [17 x i8] c" at position (\00", align 1
@.str.122 = private unnamed_addr constant [2 x i8] c",\00", align 1
@.str.123 = private unnamed_addr constant [4 x i8] c"), \00", align 1
@.str.124 = private unnamed_addr constant [23 x i8] c" computed solution: \00", align 1
@.str.125 = private unnamed_addr constant [23 x i8] c", analytic solution: \00", align 1
@.str.126 = private unnamed_addr constant [46 x i8] c"solution matches analytic solution to within \00", align 1
@.str.127 = private unnamed_addr constant [12 x i8] c" or better.\00", align 1
@.str.128 = private unnamed_addr constant [7 x i8] c"double\00", align 1
@.str.129 = private unnamed_addr constant [4 x i8] c"int\00", align 1
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cpp, i8* null }]
; Function Attrs: noinline uwtable
define internal void @__cxx_global_var_init() #0 section ".text.startup" {
entry:
call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit)
%0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init", %"class.std::ios_base::Init"* @_ZStL8__ioinit, i32 0, i32 0), i8* @__dso_handle) #2
ret void
}
declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*) unnamed_addr #1
declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*) unnamed_addr #1
; Function Attrs: nounwind
declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #2
; Function Attrs: noinline optnone uwtable
define zeroext i1 @_ZN6miniFE11is_neighborERK3BoxS2_(%struct.Box* dereferenceable(24) %box1, %struct.Box* dereferenceable(24) %box2) #3 {
entry:
%box1.addr = alloca %struct.Box*, align 8
%box2.addr = alloca %struct.Box*, align 8
%x_neighbor = alloca i8, align 1
%y_neighbor = alloca i8, align 1
%z_neighbor = alloca i8, align 1
store %struct.Box* %box1, %struct.Box** %box1.addr, align 8
store %struct.Box* %box2, %struct.Box** %box2.addr, align 8
%0 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call = call i32* @_ZNK3BoxixEi(%struct.Box* %0, i32 0)
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
%2 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call1 = call i32* @_ZNK3BoxixEi(%struct.Box* %2, i32 0)
%arrayidx2 = getelementptr inbounds i32, i32* %call1, i64 0
%3 = load i32, i32* %arrayidx2, align 4
%cmp = icmp eq i32 %1, %3
br i1 %cmp, label %lor.end, label %lor.lhs.false
lor.lhs.false: ; preds = %entry
%4 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call3 = call i32* @_ZNK3BoxixEi(%struct.Box* %4, i32 0)
%arrayidx4 = getelementptr inbounds i32, i32* %call3, i64 0
%5 = load i32, i32* %arrayidx4, align 4
%6 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call5 = call i32* @_ZNK3BoxixEi(%struct.Box* %6, i32 0)
%arrayidx6 = getelementptr inbounds i32, i32* %call5, i64 1
%7 = load i32, i32* %arrayidx6, align 4
%cmp7 = icmp eq i32 %5, %7
br i1 %cmp7, label %lor.end, label %lor.lhs.false8
lor.lhs.false8: ; preds = %lor.lhs.false
%8 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call9 = call i32* @_ZNK3BoxixEi(%struct.Box* %8, i32 0)
%arrayidx10 = getelementptr inbounds i32, i32* %call9, i64 0
%9 = load i32, i32* %arrayidx10, align 4
%10 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call11 = call i32* @_ZNK3BoxixEi(%struct.Box* %10, i32 0)
%arrayidx12 = getelementptr inbounds i32, i32* %call11, i64 0
%11 = load i32, i32* %arrayidx12, align 4
%cmp13 = icmp eq i32 %9, %11
br i1 %cmp13, label %lor.end, label %lor.lhs.false14
lor.lhs.false14: ; preds = %lor.lhs.false8
%12 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call15 = call i32* @_ZNK3BoxixEi(%struct.Box* %12, i32 0)
%arrayidx16 = getelementptr inbounds i32, i32* %call15, i64 1
%13 = load i32, i32* %arrayidx16, align 4
%14 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call17 = call i32* @_ZNK3BoxixEi(%struct.Box* %14, i32 0)
%arrayidx18 = getelementptr inbounds i32, i32* %call17, i64 1
%15 = load i32, i32* %arrayidx18, align 4
%cmp19 = icmp eq i32 %13, %15
br i1 %cmp19, label %lor.end, label %lor.lhs.false20
lor.lhs.false20: ; preds = %lor.lhs.false14
%16 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call21 = call i32* @_ZNK3BoxixEi(%struct.Box* %16, i32 0)
%arrayidx22 = getelementptr inbounds i32, i32* %call21, i64 0
%17 = load i32, i32* %arrayidx22, align 4
%18 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call23 = call i32* @_ZNK3BoxixEi(%struct.Box* %18, i32 0)
%arrayidx24 = getelementptr inbounds i32, i32* %call23, i64 0
%19 = load i32, i32* %arrayidx24, align 4
%cmp25 = icmp sgt i32 %17, %19
br i1 %cmp25, label %land.lhs.true, label %lor.lhs.false31
land.lhs.true: ; preds = %lor.lhs.false20
%20 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call26 = call i32* @_ZNK3BoxixEi(%struct.Box* %20, i32 0)
%arrayidx27 = getelementptr inbounds i32, i32* %call26, i64 1
%21 = load i32, i32* %arrayidx27, align 4
%22 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call28 = call i32* @_ZNK3BoxixEi(%struct.Box* %22, i32 0)
%arrayidx29 = getelementptr inbounds i32, i32* %call28, i64 1
%23 = load i32, i32* %arrayidx29, align 4
%cmp30 = icmp slt i32 %21, %23
br i1 %cmp30, label %lor.end, label %lor.lhs.false31
lor.lhs.false31: ; preds = %land.lhs.true, %lor.lhs.false20
%24 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call32 = call i32* @_ZNK3BoxixEi(%struct.Box* %24, i32 0)
%arrayidx33 = getelementptr inbounds i32, i32* %call32, i64 0
%25 = load i32, i32* %arrayidx33, align 4
%26 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call34 = call i32* @_ZNK3BoxixEi(%struct.Box* %26, i32 0)
%arrayidx35 = getelementptr inbounds i32, i32* %call34, i64 0
%27 = load i32, i32* %arrayidx35, align 4
%cmp36 = icmp sgt i32 %25, %27
br i1 %cmp36, label %land.lhs.true37, label %lor.lhs.false43
land.lhs.true37: ; preds = %lor.lhs.false31
%28 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call38 = call i32* @_ZNK3BoxixEi(%struct.Box* %28, i32 0)
%arrayidx39 = getelementptr inbounds i32, i32* %call38, i64 1
%29 = load i32, i32* %arrayidx39, align 4
%30 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call40 = call i32* @_ZNK3BoxixEi(%struct.Box* %30, i32 0)
%arrayidx41 = getelementptr inbounds i32, i32* %call40, i64 1
%31 = load i32, i32* %arrayidx41, align 4
%cmp42 = icmp slt i32 %29, %31
br i1 %cmp42, label %lor.end, label %lor.lhs.false43
lor.lhs.false43: ; preds = %land.lhs.true37, %lor.lhs.false31
%32 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call44 = call i32* @_ZNK3BoxixEi(%struct.Box* %32, i32 0)
%arrayidx45 = getelementptr inbounds i32, i32* %call44, i64 0
%33 = load i32, i32* %arrayidx45, align 4
%34 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call46 = call i32* @_ZNK3BoxixEi(%struct.Box* %34, i32 0)
%arrayidx47 = getelementptr inbounds i32, i32* %call46, i64 0
%35 = load i32, i32* %arrayidx47, align 4
%cmp48 = icmp sgt i32 %33, %35
br i1 %cmp48, label %land.lhs.true49, label %lor.rhs
land.lhs.true49: ; preds = %lor.lhs.false43
%36 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call50 = call i32* @_ZNK3BoxixEi(%struct.Box* %36, i32 0)
%arrayidx51 = getelementptr inbounds i32, i32* %call50, i64 0
%37 = load i32, i32* %arrayidx51, align 4
%38 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call52 = call i32* @_ZNK3BoxixEi(%struct.Box* %38, i32 0)
%arrayidx53 = getelementptr inbounds i32, i32* %call52, i64 1
%39 = load i32, i32* %arrayidx53, align 4
%cmp54 = icmp slt i32 %37, %39
br i1 %cmp54, label %lor.end, label %lor.rhs
lor.rhs: ; preds = %land.lhs.true49, %lor.lhs.false43
%40 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call55 = call i32* @_ZNK3BoxixEi(%struct.Box* %40, i32 0)
%arrayidx56 = getelementptr inbounds i32, i32* %call55, i64 0
%41 = load i32, i32* %arrayidx56, align 4
%42 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call57 = call i32* @_ZNK3BoxixEi(%struct.Box* %42, i32 0)
%arrayidx58 = getelementptr inbounds i32, i32* %call57, i64 0
%43 = load i32, i32* %arrayidx58, align 4
%cmp59 = icmp sgt i32 %41, %43
br i1 %cmp59, label %land.rhs, label %land.end
land.rhs: ; preds = %lor.rhs
%44 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call60 = call i32* @_ZNK3BoxixEi(%struct.Box* %44, i32 0)
%arrayidx61 = getelementptr inbounds i32, i32* %call60, i64 0
%45 = load i32, i32* %arrayidx61, align 4
%46 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call62 = call i32* @_ZNK3BoxixEi(%struct.Box* %46, i32 0)
%arrayidx63 = getelementptr inbounds i32, i32* %call62, i64 1
%47 = load i32, i32* %arrayidx63, align 4
%cmp64 = icmp slt i32 %45, %47
br label %land.end
land.end: ; preds = %land.rhs, %lor.rhs
%48 = phi i1 [ false, %lor.rhs ], [ %cmp64, %land.rhs ]
br label %lor.end
lor.end: ; preds = %land.end, %land.lhs.true49, %land.lhs.true37, %land.lhs.true, %lor.lhs.false14, %lor.lhs.false8, %lor.lhs.false, %entry
%49 = phi i1 [ true, %land.lhs.true49 ], [ true, %land.lhs.true37 ], [ true, %land.lhs.true ], [ true, %lor.lhs.false14 ], [ true, %lor.lhs.false8 ], [ true, %lor.lhs.false ], [ true, %entry ], [ %48, %land.end ]
%frombool = zext i1 %49 to i8
store i8 %frombool, i8* %x_neighbor, align 1
%50 = load i8, i8* %x_neighbor, align 1
%tobool = trunc i8 %50 to i1
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %lor.end
%51 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call65 = call i32* @_ZNK3BoxixEi(%struct.Box* %51, i32 0)
%arrayidx66 = getelementptr inbounds i32, i32* %call65, i64 1
%52 = load i32, i32* %arrayidx66, align 4
%53 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call67 = call i32* @_ZNK3BoxixEi(%struct.Box* %53, i32 0)
%arrayidx68 = getelementptr inbounds i32, i32* %call67, i64 0
%54 = load i32, i32* %arrayidx68, align 4
%sub = sub nsw i32 %54, 1
%cmp69 = icmp eq i32 %52, %sub
br i1 %cmp69, label %lor.end76, label %lor.rhs70
lor.rhs70: ; preds = %if.then
%55 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call71 = call i32* @_ZNK3BoxixEi(%struct.Box* %55, i32 0)
%arrayidx72 = getelementptr inbounds i32, i32* %call71, i64 0
%56 = load i32, i32* %arrayidx72, align 4
%57 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call73 = call i32* @_ZNK3BoxixEi(%struct.Box* %57, i32 0)
%arrayidx74 = getelementptr inbounds i32, i32* %call73, i64 1
%58 = load i32, i32* %arrayidx74, align 4
%add = add nsw i32 %58, 1
%cmp75 = icmp eq i32 %56, %add
br label %lor.end76
lor.end76: ; preds = %lor.rhs70, %if.then
%59 = phi i1 [ true, %if.then ], [ %cmp75, %lor.rhs70 ]
%frombool77 = zext i1 %59 to i8
store i8 %frombool77, i8* %x_neighbor, align 1
br label %if.end
if.end: ; preds = %lor.end76, %lor.end
%60 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call78 = call i32* @_ZNK3BoxixEi(%struct.Box* %60, i32 1)
%arrayidx79 = getelementptr inbounds i32, i32* %call78, i64 1
%61 = load i32, i32* %arrayidx79, align 4
%62 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call80 = call i32* @_ZNK3BoxixEi(%struct.Box* %62, i32 1)
%arrayidx81 = getelementptr inbounds i32, i32* %call80, i64 0
%63 = load i32, i32* %arrayidx81, align 4
%cmp82 = icmp eq i32 %61, %63
br i1 %cmp82, label %lor.end150, label %lor.lhs.false83
lor.lhs.false83: ; preds = %if.end
%64 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call84 = call i32* @_ZNK3BoxixEi(%struct.Box* %64, i32 1)
%arrayidx85 = getelementptr inbounds i32, i32* %call84, i64 0
%65 = load i32, i32* %arrayidx85, align 4
%66 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call86 = call i32* @_ZNK3BoxixEi(%struct.Box* %66, i32 1)
%arrayidx87 = getelementptr inbounds i32, i32* %call86, i64 1
%67 = load i32, i32* %arrayidx87, align 4
%cmp88 = icmp eq i32 %65, %67
br i1 %cmp88, label %lor.end150, label %lor.lhs.false89
lor.lhs.false89: ; preds = %lor.lhs.false83
%68 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call90 = call i32* @_ZNK3BoxixEi(%struct.Box* %68, i32 1)
%arrayidx91 = getelementptr inbounds i32, i32* %call90, i64 0
%69 = load i32, i32* %arrayidx91, align 4
%70 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call92 = call i32* @_ZNK3BoxixEi(%struct.Box* %70, i32 1)
%arrayidx93 = getelementptr inbounds i32, i32* %call92, i64 0
%71 = load i32, i32* %arrayidx93, align 4
%cmp94 = icmp eq i32 %69, %71
br i1 %cmp94, label %lor.end150, label %lor.lhs.false95
lor.lhs.false95: ; preds = %lor.lhs.false89
%72 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call96 = call i32* @_ZNK3BoxixEi(%struct.Box* %72, i32 1)
%arrayidx97 = getelementptr inbounds i32, i32* %call96, i64 1
%73 = load i32, i32* %arrayidx97, align 4
%74 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call98 = call i32* @_ZNK3BoxixEi(%struct.Box* %74, i32 1)
%arrayidx99 = getelementptr inbounds i32, i32* %call98, i64 1
%75 = load i32, i32* %arrayidx99, align 4
%cmp100 = icmp eq i32 %73, %75
br i1 %cmp100, label %lor.end150, label %lor.lhs.false101
lor.lhs.false101: ; preds = %lor.lhs.false95
%76 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call102 = call i32* @_ZNK3BoxixEi(%struct.Box* %76, i32 1)
%arrayidx103 = getelementptr inbounds i32, i32* %call102, i64 0
%77 = load i32, i32* %arrayidx103, align 4
%78 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call104 = call i32* @_ZNK3BoxixEi(%struct.Box* %78, i32 1)
%arrayidx105 = getelementptr inbounds i32, i32* %call104, i64 0
%79 = load i32, i32* %arrayidx105, align 4
%cmp106 = icmp sgt i32 %77, %79
br i1 %cmp106, label %land.lhs.true107, label %lor.lhs.false113
land.lhs.true107: ; preds = %lor.lhs.false101
%80 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call108 = call i32* @_ZNK3BoxixEi(%struct.Box* %80, i32 1)
%arrayidx109 = getelementptr inbounds i32, i32* %call108, i64 1
%81 = load i32, i32* %arrayidx109, align 4
%82 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call110 = call i32* @_ZNK3BoxixEi(%struct.Box* %82, i32 1)
%arrayidx111 = getelementptr inbounds i32, i32* %call110, i64 1
%83 = load i32, i32* %arrayidx111, align 4
%cmp112 = icmp slt i32 %81, %83
br i1 %cmp112, label %lor.end150, label %lor.lhs.false113
lor.lhs.false113: ; preds = %land.lhs.true107, %lor.lhs.false101
%84 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call114 = call i32* @_ZNK3BoxixEi(%struct.Box* %84, i32 1)
%arrayidx115 = getelementptr inbounds i32, i32* %call114, i64 0
%85 = load i32, i32* %arrayidx115, align 4
%86 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call116 = call i32* @_ZNK3BoxixEi(%struct.Box* %86, i32 1)
%arrayidx117 = getelementptr inbounds i32, i32* %call116, i64 0
%87 = load i32, i32* %arrayidx117, align 4
%cmp118 = icmp sgt i32 %85, %87
br i1 %cmp118, label %land.lhs.true119, label %lor.lhs.false125
land.lhs.true119: ; preds = %lor.lhs.false113
%88 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call120 = call i32* @_ZNK3BoxixEi(%struct.Box* %88, i32 1)
%arrayidx121 = getelementptr inbounds i32, i32* %call120, i64 1
%89 = load i32, i32* %arrayidx121, align 4
%90 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call122 = call i32* @_ZNK3BoxixEi(%struct.Box* %90, i32 1)
%arrayidx123 = getelementptr inbounds i32, i32* %call122, i64 1
%91 = load i32, i32* %arrayidx123, align 4
%cmp124 = icmp slt i32 %89, %91
br i1 %cmp124, label %lor.end150, label %lor.lhs.false125
lor.lhs.false125: ; preds = %land.lhs.true119, %lor.lhs.false113
%92 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call126 = call i32* @_ZNK3BoxixEi(%struct.Box* %92, i32 1)
%arrayidx127 = getelementptr inbounds i32, i32* %call126, i64 0
%93 = load i32, i32* %arrayidx127, align 4
%94 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call128 = call i32* @_ZNK3BoxixEi(%struct.Box* %94, i32 1)
%arrayidx129 = getelementptr inbounds i32, i32* %call128, i64 0
%95 = load i32, i32* %arrayidx129, align 4
%cmp130 = icmp sgt i32 %93, %95
br i1 %cmp130, label %land.lhs.true131, label %lor.rhs137
land.lhs.true131: ; preds = %lor.lhs.false125
%96 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call132 = call i32* @_ZNK3BoxixEi(%struct.Box* %96, i32 1)
%arrayidx133 = getelementptr inbounds i32, i32* %call132, i64 0
%97 = load i32, i32* %arrayidx133, align 4
%98 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call134 = call i32* @_ZNK3BoxixEi(%struct.Box* %98, i32 1)
%arrayidx135 = getelementptr inbounds i32, i32* %call134, i64 1
%99 = load i32, i32* %arrayidx135, align 4
%cmp136 = icmp slt i32 %97, %99
br i1 %cmp136, label %lor.end150, label %lor.rhs137
lor.rhs137: ; preds = %land.lhs.true131, %lor.lhs.false125
%100 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call138 = call i32* @_ZNK3BoxixEi(%struct.Box* %100, i32 1)
%arrayidx139 = getelementptr inbounds i32, i32* %call138, i64 0
%101 = load i32, i32* %arrayidx139, align 4
%102 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call140 = call i32* @_ZNK3BoxixEi(%struct.Box* %102, i32 1)
%arrayidx141 = getelementptr inbounds i32, i32* %call140, i64 0
%103 = load i32, i32* %arrayidx141, align 4
%cmp142 = icmp sgt i32 %101, %103
br i1 %cmp142, label %land.rhs143, label %land.end149
land.rhs143: ; preds = %lor.rhs137
%104 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call144 = call i32* @_ZNK3BoxixEi(%struct.Box* %104, i32 1)
%arrayidx145 = getelementptr inbounds i32, i32* %call144, i64 0
%105 = load i32, i32* %arrayidx145, align 4
%106 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call146 = call i32* @_ZNK3BoxixEi(%struct.Box* %106, i32 1)
%arrayidx147 = getelementptr inbounds i32, i32* %call146, i64 1
%107 = load i32, i32* %arrayidx147, align 4
%cmp148 = icmp slt i32 %105, %107
br label %land.end149
land.end149: ; preds = %land.rhs143, %lor.rhs137
%108 = phi i1 [ false, %lor.rhs137 ], [ %cmp148, %land.rhs143 ]
br label %lor.end150
lor.end150: ; preds = %land.end149, %land.lhs.true131, %land.lhs.true119, %land.lhs.true107, %lor.lhs.false95, %lor.lhs.false89, %lor.lhs.false83, %if.end
%109 = phi i1 [ true, %land.lhs.true131 ], [ true, %land.lhs.true119 ], [ true, %land.lhs.true107 ], [ true, %lor.lhs.false95 ], [ true, %lor.lhs.false89 ], [ true, %lor.lhs.false83 ], [ true, %if.end ], [ %108, %land.end149 ]
%frombool151 = zext i1 %109 to i8
store i8 %frombool151, i8* %y_neighbor, align 1
%110 = load i8, i8* %y_neighbor, align 1
%tobool152 = trunc i8 %110 to i1
br i1 %tobool152, label %if.end169, label %if.then153
if.then153: ; preds = %lor.end150
%111 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call154 = call i32* @_ZNK3BoxixEi(%struct.Box* %111, i32 1)
%arrayidx155 = getelementptr inbounds i32, i32* %call154, i64 1
%112 = load i32, i32* %arrayidx155, align 4
%113 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call156 = call i32* @_ZNK3BoxixEi(%struct.Box* %113, i32 1)
%arrayidx157 = getelementptr inbounds i32, i32* %call156, i64 0
%114 = load i32, i32* %arrayidx157, align 4
%sub158 = sub nsw i32 %114, 1
%cmp159 = icmp eq i32 %112, %sub158
br i1 %cmp159, label %lor.end167, label %lor.rhs160
lor.rhs160: ; preds = %if.then153
%115 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call161 = call i32* @_ZNK3BoxixEi(%struct.Box* %115, i32 1)
%arrayidx162 = getelementptr inbounds i32, i32* %call161, i64 0
%116 = load i32, i32* %arrayidx162, align 4
%117 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call163 = call i32* @_ZNK3BoxixEi(%struct.Box* %117, i32 1)
%arrayidx164 = getelementptr inbounds i32, i32* %call163, i64 1
%118 = load i32, i32* %arrayidx164, align 4
%add165 = add nsw i32 %118, 1
%cmp166 = icmp eq i32 %116, %add165
br label %lor.end167
lor.end167: ; preds = %lor.rhs160, %if.then153
%119 = phi i1 [ true, %if.then153 ], [ %cmp166, %lor.rhs160 ]
%frombool168 = zext i1 %119 to i8
store i8 %frombool168, i8* %y_neighbor, align 1
br label %if.end169
if.end169: ; preds = %lor.end167, %lor.end150
%120 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call170 = call i32* @_ZNK3BoxixEi(%struct.Box* %120, i32 2)
%arrayidx171 = getelementptr inbounds i32, i32* %call170, i64 1
%121 = load i32, i32* %arrayidx171, align 4
%122 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call172 = call i32* @_ZNK3BoxixEi(%struct.Box* %122, i32 2)
%arrayidx173 = getelementptr inbounds i32, i32* %call172, i64 0
%123 = load i32, i32* %arrayidx173, align 4
%cmp174 = icmp eq i32 %121, %123
br i1 %cmp174, label %lor.end242, label %lor.lhs.false175
lor.lhs.false175: ; preds = %if.end169
%124 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call176 = call i32* @_ZNK3BoxixEi(%struct.Box* %124, i32 2)
%arrayidx177 = getelementptr inbounds i32, i32* %call176, i64 0
%125 = load i32, i32* %arrayidx177, align 4
%126 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call178 = call i32* @_ZNK3BoxixEi(%struct.Box* %126, i32 2)
%arrayidx179 = getelementptr inbounds i32, i32* %call178, i64 1
%127 = load i32, i32* %arrayidx179, align 4
%cmp180 = icmp eq i32 %125, %127
br i1 %cmp180, label %lor.end242, label %lor.lhs.false181
lor.lhs.false181: ; preds = %lor.lhs.false175
%128 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call182 = call i32* @_ZNK3BoxixEi(%struct.Box* %128, i32 2)
%arrayidx183 = getelementptr inbounds i32, i32* %call182, i64 0
%129 = load i32, i32* %arrayidx183, align 4
%130 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call184 = call i32* @_ZNK3BoxixEi(%struct.Box* %130, i32 2)
%arrayidx185 = getelementptr inbounds i32, i32* %call184, i64 0
%131 = load i32, i32* %arrayidx185, align 4
%cmp186 = icmp eq i32 %129, %131
br i1 %cmp186, label %lor.end242, label %lor.lhs.false187
lor.lhs.false187: ; preds = %lor.lhs.false181
%132 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call188 = call i32* @_ZNK3BoxixEi(%struct.Box* %132, i32 2)
%arrayidx189 = getelementptr inbounds i32, i32* %call188, i64 1
%133 = load i32, i32* %arrayidx189, align 4
%134 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call190 = call i32* @_ZNK3BoxixEi(%struct.Box* %134, i32 2)
%arrayidx191 = getelementptr inbounds i32, i32* %call190, i64 1
%135 = load i32, i32* %arrayidx191, align 4
%cmp192 = icmp eq i32 %133, %135
br i1 %cmp192, label %lor.end242, label %lor.lhs.false193
lor.lhs.false193: ; preds = %lor.lhs.false187
%136 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call194 = call i32* @_ZNK3BoxixEi(%struct.Box* %136, i32 2)
%arrayidx195 = getelementptr inbounds i32, i32* %call194, i64 0
%137 = load i32, i32* %arrayidx195, align 4
%138 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call196 = call i32* @_ZNK3BoxixEi(%struct.Box* %138, i32 2)
%arrayidx197 = getelementptr inbounds i32, i32* %call196, i64 0
%139 = load i32, i32* %arrayidx197, align 4
%cmp198 = icmp sgt i32 %137, %139
br i1 %cmp198, label %land.lhs.true199, label %lor.lhs.false205
land.lhs.true199: ; preds = %lor.lhs.false193
%140 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call200 = call i32* @_ZNK3BoxixEi(%struct.Box* %140, i32 2)
%arrayidx201 = getelementptr inbounds i32, i32* %call200, i64 1
%141 = load i32, i32* %arrayidx201, align 4
%142 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call202 = call i32* @_ZNK3BoxixEi(%struct.Box* %142, i32 2)
%arrayidx203 = getelementptr inbounds i32, i32* %call202, i64 1
%143 = load i32, i32* %arrayidx203, align 4
%cmp204 = icmp slt i32 %141, %143
br i1 %cmp204, label %lor.end242, label %lor.lhs.false205
lor.lhs.false205: ; preds = %land.lhs.true199, %lor.lhs.false193
%144 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call206 = call i32* @_ZNK3BoxixEi(%struct.Box* %144, i32 2)
%arrayidx207 = getelementptr inbounds i32, i32* %call206, i64 0
%145 = load i32, i32* %arrayidx207, align 4
%146 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call208 = call i32* @_ZNK3BoxixEi(%struct.Box* %146, i32 2)
%arrayidx209 = getelementptr inbounds i32, i32* %call208, i64 0
%147 = load i32, i32* %arrayidx209, align 4
%cmp210 = icmp sgt i32 %145, %147
br i1 %cmp210, label %land.lhs.true211, label %lor.lhs.false217
land.lhs.true211: ; preds = %lor.lhs.false205
%148 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call212 = call i32* @_ZNK3BoxixEi(%struct.Box* %148, i32 2)
%arrayidx213 = getelementptr inbounds i32, i32* %call212, i64 1
%149 = load i32, i32* %arrayidx213, align 4
%150 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call214 = call i32* @_ZNK3BoxixEi(%struct.Box* %150, i32 2)
%arrayidx215 = getelementptr inbounds i32, i32* %call214, i64 1
%151 = load i32, i32* %arrayidx215, align 4
%cmp216 = icmp slt i32 %149, %151
br i1 %cmp216, label %lor.end242, label %lor.lhs.false217
lor.lhs.false217: ; preds = %land.lhs.true211, %lor.lhs.false205
%152 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call218 = call i32* @_ZNK3BoxixEi(%struct.Box* %152, i32 2)
%arrayidx219 = getelementptr inbounds i32, i32* %call218, i64 0
%153 = load i32, i32* %arrayidx219, align 4
%154 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call220 = call i32* @_ZNK3BoxixEi(%struct.Box* %154, i32 2)
%arrayidx221 = getelementptr inbounds i32, i32* %call220, i64 0
%155 = load i32, i32* %arrayidx221, align 4
%cmp222 = icmp sgt i32 %153, %155
br i1 %cmp222, label %land.lhs.true223, label %lor.rhs229
land.lhs.true223: ; preds = %lor.lhs.false217
%156 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call224 = call i32* @_ZNK3BoxixEi(%struct.Box* %156, i32 2)
%arrayidx225 = getelementptr inbounds i32, i32* %call224, i64 0
%157 = load i32, i32* %arrayidx225, align 4
%158 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call226 = call i32* @_ZNK3BoxixEi(%struct.Box* %158, i32 2)
%arrayidx227 = getelementptr inbounds i32, i32* %call226, i64 1
%159 = load i32, i32* %arrayidx227, align 4
%cmp228 = icmp slt i32 %157, %159
br i1 %cmp228, label %lor.end242, label %lor.rhs229
lor.rhs229: ; preds = %land.lhs.true223, %lor.lhs.false217
%160 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call230 = call i32* @_ZNK3BoxixEi(%struct.Box* %160, i32 2)
%arrayidx231 = getelementptr inbounds i32, i32* %call230, i64 0
%161 = load i32, i32* %arrayidx231, align 4
%162 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call232 = call i32* @_ZNK3BoxixEi(%struct.Box* %162, i32 2)
%arrayidx233 = getelementptr inbounds i32, i32* %call232, i64 0
%163 = load i32, i32* %arrayidx233, align 4
%cmp234 = icmp sgt i32 %161, %163
br i1 %cmp234, label %land.rhs235, label %land.end241
land.rhs235: ; preds = %lor.rhs229
%164 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call236 = call i32* @_ZNK3BoxixEi(%struct.Box* %164, i32 2)
%arrayidx237 = getelementptr inbounds i32, i32* %call236, i64 0
%165 = load i32, i32* %arrayidx237, align 4
%166 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call238 = call i32* @_ZNK3BoxixEi(%struct.Box* %166, i32 2)
%arrayidx239 = getelementptr inbounds i32, i32* %call238, i64 1
%167 = load i32, i32* %arrayidx239, align 4
%cmp240 = icmp slt i32 %165, %167
br label %land.end241
land.end241: ; preds = %land.rhs235, %lor.rhs229
%168 = phi i1 [ false, %lor.rhs229 ], [ %cmp240, %land.rhs235 ]
br label %lor.end242
lor.end242: ; preds = %land.end241, %land.lhs.true223, %land.lhs.true211, %land.lhs.true199, %lor.lhs.false187, %lor.lhs.false181, %lor.lhs.false175, %if.end169
%169 = phi i1 [ true, %land.lhs.true223 ], [ true, %land.lhs.true211 ], [ true, %land.lhs.true199 ], [ true, %lor.lhs.false187 ], [ true, %lor.lhs.false181 ], [ true, %lor.lhs.false175 ], [ true, %if.end169 ], [ %168, %land.end241 ]
%frombool243 = zext i1 %169 to i8
store i8 %frombool243, i8* %z_neighbor, align 1
%170 = load i8, i8* %z_neighbor, align 1
%tobool244 = trunc i8 %170 to i1
br i1 %tobool244, label %if.end261, label %if.then245
if.then245: ; preds = %lor.end242
%171 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call246 = call i32* @_ZNK3BoxixEi(%struct.Box* %171, i32 2)
%arrayidx247 = getelementptr inbounds i32, i32* %call246, i64 1
%172 = load i32, i32* %arrayidx247, align 4
%173 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call248 = call i32* @_ZNK3BoxixEi(%struct.Box* %173, i32 2)
%arrayidx249 = getelementptr inbounds i32, i32* %call248, i64 0
%174 = load i32, i32* %arrayidx249, align 4
%sub250 = sub nsw i32 %174, 1
%cmp251 = icmp eq i32 %172, %sub250
br i1 %cmp251, label %lor.end259, label %lor.rhs252
lor.rhs252: ; preds = %if.then245
%175 = load %struct.Box*, %struct.Box** %box1.addr, align 8
%call253 = call i32* @_ZNK3BoxixEi(%struct.Box* %175, i32 2)
%arrayidx254 = getelementptr inbounds i32, i32* %call253, i64 0
%176 = load i32, i32* %arrayidx254, align 4
%177 = load %struct.Box*, %struct.Box** %box2.addr, align 8
%call255 = call i32* @_ZNK3BoxixEi(%struct.Box* %177, i32 2)
%arrayidx256 = getelementptr inbounds i32, i32* %call255, i64 1
%178 = load i32, i32* %arrayidx256, align 4
%add257 = add nsw i32 %178, 1
%cmp258 = icmp eq i32 %176, %add257
br label %lor.end259
lor.end259: ; preds = %lor.rhs252, %if.then245
%179 = phi i1 [ true, %if.then245 ], [ %cmp258, %lor.rhs252 ]
%frombool260 = zext i1 %179 to i8
store i8 %frombool260, i8* %z_neighbor, align 1
br label %if.end261
if.end261: ; preds = %lor.end259, %lor.end242
%180 = load i8, i8* %x_neighbor, align 1
%tobool262 = trunc i8 %180 to i1
br i1 %tobool262, label %land.lhs.true263, label %land.end267
land.lhs.true263: ; preds = %if.end261
%181 = load i8, i8* %y_neighbor, align 1
%tobool264 = trunc i8 %181 to i1
br i1 %tobool264, label %land.rhs265, label %land.end267
land.rhs265: ; preds = %land.lhs.true263
%182 = load i8, i8* %z_neighbor, align 1
%tobool266 = trunc i8 %182 to i1
br label %land.end267
land.end267: ; preds = %land.rhs265, %land.lhs.true263, %if.end261
%183 = phi i1 [ false, %land.lhs.true263 ], [ false, %if.end261 ], [ %tobool266, %land.rhs265 ]
ret i1 %183
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr i32* @_ZNK3BoxixEi(%struct.Box* %this, i32 %xyz) #4 comdat align 2 {
entry:
%this.addr = alloca %struct.Box*, align 8
%xyz.addr = alloca i32, align 4
store %struct.Box* %this, %struct.Box** %this.addr, align 8
store i32 %xyz, i32* %xyz.addr, align 4
%this1 = load %struct.Box*, %struct.Box** %this.addr, align 8
%ranges = getelementptr inbounds %struct.Box, %struct.Box* %this1, i32 0, i32 0
%0 = load i32, i32* %xyz.addr, align 4
%mul = mul nsw i32 %0, 2
%idxprom = sext i32 %mul to i64
%arrayidx = getelementptr inbounds [6 x i32], [6 x i32]* %ranges, i64 0, i64 %idxprom
ret i32* %arrayidx
}
; Function Attrs: noinline optnone uwtable
define i64 @_ZN6miniFE18decide_how_to_growERK3BoxS2_(%struct.Box* dereferenceable(24) %global_box, %struct.Box* dereferenceable(24) %local_box) #3 {
entry:
%retval = alloca %"struct.std::pair", align 4
%global_box.addr = alloca %struct.Box*, align 8
%local_box.addr = alloca %struct.Box*, align 8
store %struct.Box* %global_box, %struct.Box** %global_box.addr, align 8
store %struct.Box* %local_box, %struct.Box** %local_box.addr, align 8
call void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %retval, i32* dereferenceable(4) @_ZN6miniFEL4NONEE, i32* dereferenceable(4) @_ZN6miniFEL5UPPERE)
%0 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call = call i32* @_ZNK3BoxixEi(%struct.Box* %0, i32 2)
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
%2 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call1 = call i32* @_ZNK3BoxixEi(%struct.Box* %2, i32 2)
%arrayidx2 = getelementptr inbounds i32, i32* %call1, i64 1
%3 = load i32, i32* %arrayidx2, align 4
%cmp = icmp slt i32 %1, %3
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%first = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 2, i32* %first, align 4
%second = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 1, i32* %second, align 4
br label %return
if.end: ; preds = %entry
%4 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call3 = call i32* @_ZNK3BoxixEi(%struct.Box* %4, i32 2)
%arrayidx4 = getelementptr inbounds i32, i32* %call3, i64 0
%5 = load i32, i32* %arrayidx4, align 4
%6 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call5 = call i32* @_ZNK3BoxixEi(%struct.Box* %6, i32 2)
%arrayidx6 = getelementptr inbounds i32, i32* %call5, i64 0
%7 = load i32, i32* %arrayidx6, align 4
%cmp7 = icmp sgt i32 %5, %7
br i1 %cmp7, label %if.then8, label %if.end11
if.then8: ; preds = %if.end
%first9 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 2, i32* %first9, align 4
%second10 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 0, i32* %second10, align 4
br label %return
if.end11: ; preds = %if.end
%8 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call12 = call i32* @_ZNK3BoxixEi(%struct.Box* %8, i32 1)
%arrayidx13 = getelementptr inbounds i32, i32* %call12, i64 1
%9 = load i32, i32* %arrayidx13, align 4
%10 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call14 = call i32* @_ZNK3BoxixEi(%struct.Box* %10, i32 1)
%arrayidx15 = getelementptr inbounds i32, i32* %call14, i64 1
%11 = load i32, i32* %arrayidx15, align 4
%cmp16 = icmp slt i32 %9, %11
br i1 %cmp16, label %if.then17, label %if.end20
if.then17: ; preds = %if.end11
%first18 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 1, i32* %first18, align 4
%second19 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 1, i32* %second19, align 4
br label %return
if.end20: ; preds = %if.end11
%12 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call21 = call i32* @_ZNK3BoxixEi(%struct.Box* %12, i32 1)
%arrayidx22 = getelementptr inbounds i32, i32* %call21, i64 0
%13 = load i32, i32* %arrayidx22, align 4
%14 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call23 = call i32* @_ZNK3BoxixEi(%struct.Box* %14, i32 1)
%arrayidx24 = getelementptr inbounds i32, i32* %call23, i64 0
%15 = load i32, i32* %arrayidx24, align 4
%cmp25 = icmp sgt i32 %13, %15
br i1 %cmp25, label %if.then26, label %if.end29
if.then26: ; preds = %if.end20
%first27 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 1, i32* %first27, align 4
%second28 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 0, i32* %second28, align 4
br label %return
if.end29: ; preds = %if.end20
%16 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call30 = call i32* @_ZNK3BoxixEi(%struct.Box* %16, i32 0)
%arrayidx31 = getelementptr inbounds i32, i32* %call30, i64 1
%17 = load i32, i32* %arrayidx31, align 4
%18 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call32 = call i32* @_ZNK3BoxixEi(%struct.Box* %18, i32 0)
%arrayidx33 = getelementptr inbounds i32, i32* %call32, i64 1
%19 = load i32, i32* %arrayidx33, align 4
%cmp34 = icmp slt i32 %17, %19
br i1 %cmp34, label %if.then35, label %if.end38
if.then35: ; preds = %if.end29
%first36 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 0, i32* %first36, align 4
%second37 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 1, i32* %second37, align 4
br label %return
if.end38: ; preds = %if.end29
%20 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call39 = call i32* @_ZNK3BoxixEi(%struct.Box* %20, i32 0)
%arrayidx40 = getelementptr inbounds i32, i32* %call39, i64 0
%21 = load i32, i32* %arrayidx40, align 4
%22 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call41 = call i32* @_ZNK3BoxixEi(%struct.Box* %22, i32 0)
%arrayidx42 = getelementptr inbounds i32, i32* %call41, i64 0
%23 = load i32, i32* %arrayidx42, align 4
%cmp43 = icmp sgt i32 %21, %23
br i1 %cmp43, label %if.then44, label %if.end47
if.then44: ; preds = %if.end38
%first45 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 0, i32* %first45, align 4
%second46 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 0, i32* %second46, align 4
br label %return
if.end47: ; preds = %if.end38
br label %return
return: ; preds = %if.end47, %if.then44, %if.then35, %if.then26, %if.then17, %if.then8, %if.then
%24 = bitcast %"struct.std::pair"* %retval to i64*
%25 = load i64, i64* %24, align 4
ret i64 %25
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %this, i32* dereferenceable(4) %__a, i32* dereferenceable(4) %__b) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::pair"*, align 8
%__a.addr = alloca i32*, align 8
%__b.addr = alloca i32*, align 8
store %"struct.std::pair"* %this, %"struct.std::pair"** %this.addr, align 8
store i32* %__a, i32** %__a.addr, align 8
store i32* %__b, i32** %__b.addr, align 8
%this1 = load %"struct.std::pair"*, %"struct.std::pair"** %this.addr, align 8
%first = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %this1, i32 0, i32 0
%0 = load i32*, i32** %__a.addr, align 8
%1 = load i32, i32* %0, align 4
store i32 %1, i32* %first, align 4
%second = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %this1, i32 0, i32 1
%2 = load i32*, i32** %__b.addr, align 8
%3 = load i32, i32* %2, align 4
store i32 %3, i32* %second, align 4
ret void
}
; Function Attrs: noinline optnone uwtable
define i64 @_ZN6miniFE20decide_how_to_shrinkERK3BoxS2_(%struct.Box* dereferenceable(24) %global_box, %struct.Box* dereferenceable(24) %local_box) #3 {
entry:
%retval = alloca %"struct.std::pair", align 4
%global_box.addr = alloca %struct.Box*, align 8
%local_box.addr = alloca %struct.Box*, align 8
store %struct.Box* %global_box, %struct.Box** %global_box.addr, align 8
store %struct.Box* %local_box, %struct.Box** %local_box.addr, align 8
call void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %retval, i32* dereferenceable(4) @_ZN6miniFEL4NONEE, i32* dereferenceable(4) @_ZN6miniFEL5UPPERE)
%0 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call = call i32* @_ZNK3BoxixEi(%struct.Box* %0, i32 2)
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
%2 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call1 = call i32* @_ZNK3BoxixEi(%struct.Box* %2, i32 2)
%arrayidx2 = getelementptr inbounds i32, i32* %call1, i64 1
%3 = load i32, i32* %arrayidx2, align 4
%cmp = icmp slt i32 %1, %3
br i1 %cmp, label %land.lhs.true, label %if.end
land.lhs.true: ; preds = %entry
%4 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call3 = call i32* @_ZNK3BoxixEi(%struct.Box* %4, i32 2)
%arrayidx4 = getelementptr inbounds i32, i32* %call3, i64 1
%5 = load i32, i32* %arrayidx4, align 4
%6 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call5 = call i32* @_ZNK3BoxixEi(%struct.Box* %6, i32 2)
%arrayidx6 = getelementptr inbounds i32, i32* %call5, i64 0
%7 = load i32, i32* %arrayidx6, align 4
%sub = sub nsw i32 %5, %7
%cmp7 = icmp sgt i32 %sub, 2
br i1 %cmp7, label %if.then, label %if.end
if.then: ; preds = %land.lhs.true
%first = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 2, i32* %first, align 4
%second = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 1, i32* %second, align 4
br label %return
if.end: ; preds = %land.lhs.true, %entry
%8 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call8 = call i32* @_ZNK3BoxixEi(%struct.Box* %8, i32 2)
%arrayidx9 = getelementptr inbounds i32, i32* %call8, i64 0
%9 = load i32, i32* %arrayidx9, align 4
%10 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call10 = call i32* @_ZNK3BoxixEi(%struct.Box* %10, i32 2)
%arrayidx11 = getelementptr inbounds i32, i32* %call10, i64 0
%11 = load i32, i32* %arrayidx11, align 4
%cmp12 = icmp sgt i32 %9, %11
br i1 %cmp12, label %land.lhs.true13, label %if.end23
land.lhs.true13: ; preds = %if.end
%12 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call14 = call i32* @_ZNK3BoxixEi(%struct.Box* %12, i32 2)
%arrayidx15 = getelementptr inbounds i32, i32* %call14, i64 1
%13 = load i32, i32* %arrayidx15, align 4
%14 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call16 = call i32* @_ZNK3BoxixEi(%struct.Box* %14, i32 2)
%arrayidx17 = getelementptr inbounds i32, i32* %call16, i64 0
%15 = load i32, i32* %arrayidx17, align 4
%sub18 = sub nsw i32 %13, %15
%cmp19 = icmp sgt i32 %sub18, 2
br i1 %cmp19, label %if.then20, label %if.end23
if.then20: ; preds = %land.lhs.true13
%first21 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 2, i32* %first21, align 4
%second22 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 0, i32* %second22, align 4
br label %return
if.end23: ; preds = %land.lhs.true13, %if.end
%16 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call24 = call i32* @_ZNK3BoxixEi(%struct.Box* %16, i32 1)
%arrayidx25 = getelementptr inbounds i32, i32* %call24, i64 1
%17 = load i32, i32* %arrayidx25, align 4
%18 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call26 = call i32* @_ZNK3BoxixEi(%struct.Box* %18, i32 1)
%arrayidx27 = getelementptr inbounds i32, i32* %call26, i64 1
%19 = load i32, i32* %arrayidx27, align 4
%cmp28 = icmp slt i32 %17, %19
br i1 %cmp28, label %land.lhs.true29, label %if.end39
land.lhs.true29: ; preds = %if.end23
%20 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call30 = call i32* @_ZNK3BoxixEi(%struct.Box* %20, i32 1)
%arrayidx31 = getelementptr inbounds i32, i32* %call30, i64 1
%21 = load i32, i32* %arrayidx31, align 4
%22 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call32 = call i32* @_ZNK3BoxixEi(%struct.Box* %22, i32 1)
%arrayidx33 = getelementptr inbounds i32, i32* %call32, i64 0
%23 = load i32, i32* %arrayidx33, align 4
%sub34 = sub nsw i32 %21, %23
%cmp35 = icmp sgt i32 %sub34, 2
br i1 %cmp35, label %if.then36, label %if.end39
if.then36: ; preds = %land.lhs.true29
%first37 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 1, i32* %first37, align 4
%second38 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 1, i32* %second38, align 4
br label %return
if.end39: ; preds = %land.lhs.true29, %if.end23
%24 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call40 = call i32* @_ZNK3BoxixEi(%struct.Box* %24, i32 1)
%arrayidx41 = getelementptr inbounds i32, i32* %call40, i64 0
%25 = load i32, i32* %arrayidx41, align 4
%26 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call42 = call i32* @_ZNK3BoxixEi(%struct.Box* %26, i32 1)
%arrayidx43 = getelementptr inbounds i32, i32* %call42, i64 0
%27 = load i32, i32* %arrayidx43, align 4
%cmp44 = icmp sgt i32 %25, %27
br i1 %cmp44, label %land.lhs.true45, label %if.end55
land.lhs.true45: ; preds = %if.end39
%28 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call46 = call i32* @_ZNK3BoxixEi(%struct.Box* %28, i32 1)
%arrayidx47 = getelementptr inbounds i32, i32* %call46, i64 1
%29 = load i32, i32* %arrayidx47, align 4
%30 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call48 = call i32* @_ZNK3BoxixEi(%struct.Box* %30, i32 1)
%arrayidx49 = getelementptr inbounds i32, i32* %call48, i64 0
%31 = load i32, i32* %arrayidx49, align 4
%sub50 = sub nsw i32 %29, %31
%cmp51 = icmp sgt i32 %sub50, 2
br i1 %cmp51, label %if.then52, label %if.end55
if.then52: ; preds = %land.lhs.true45
%first53 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 1, i32* %first53, align 4
%second54 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 0, i32* %second54, align 4
br label %return
if.end55: ; preds = %land.lhs.true45, %if.end39
%32 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call56 = call i32* @_ZNK3BoxixEi(%struct.Box* %32, i32 0)
%arrayidx57 = getelementptr inbounds i32, i32* %call56, i64 1
%33 = load i32, i32* %arrayidx57, align 4
%34 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call58 = call i32* @_ZNK3BoxixEi(%struct.Box* %34, i32 0)
%arrayidx59 = getelementptr inbounds i32, i32* %call58, i64 1
%35 = load i32, i32* %arrayidx59, align 4
%cmp60 = icmp slt i32 %33, %35
br i1 %cmp60, label %land.lhs.true61, label %if.end71
land.lhs.true61: ; preds = %if.end55
%36 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call62 = call i32* @_ZNK3BoxixEi(%struct.Box* %36, i32 0)
%arrayidx63 = getelementptr inbounds i32, i32* %call62, i64 1
%37 = load i32, i32* %arrayidx63, align 4
%38 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call64 = call i32* @_ZNK3BoxixEi(%struct.Box* %38, i32 0)
%arrayidx65 = getelementptr inbounds i32, i32* %call64, i64 0
%39 = load i32, i32* %arrayidx65, align 4
%sub66 = sub nsw i32 %37, %39
%cmp67 = icmp sgt i32 %sub66, 2
br i1 %cmp67, label %if.then68, label %if.end71
if.then68: ; preds = %land.lhs.true61
%first69 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 0, i32* %first69, align 4
%second70 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 1, i32* %second70, align 4
br label %return
if.end71: ; preds = %land.lhs.true61, %if.end55
%40 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call72 = call i32* @_ZNK3BoxixEi(%struct.Box* %40, i32 0)
%arrayidx73 = getelementptr inbounds i32, i32* %call72, i64 0
%41 = load i32, i32* %arrayidx73, align 4
%42 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call74 = call i32* @_ZNK3BoxixEi(%struct.Box* %42, i32 0)
%arrayidx75 = getelementptr inbounds i32, i32* %call74, i64 0
%43 = load i32, i32* %arrayidx75, align 4
%cmp76 = icmp sgt i32 %41, %43
br i1 %cmp76, label %land.lhs.true77, label %if.end87
land.lhs.true77: ; preds = %if.end71
%44 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call78 = call i32* @_ZNK3BoxixEi(%struct.Box* %44, i32 0)
%arrayidx79 = getelementptr inbounds i32, i32* %call78, i64 1
%45 = load i32, i32* %arrayidx79, align 4
%46 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call80 = call i32* @_ZNK3BoxixEi(%struct.Box* %46, i32 0)
%arrayidx81 = getelementptr inbounds i32, i32* %call80, i64 0
%47 = load i32, i32* %arrayidx81, align 4
%sub82 = sub nsw i32 %45, %47
%cmp83 = icmp sgt i32 %sub82, 2
br i1 %cmp83, label %if.then84, label %if.end87
if.then84: ; preds = %land.lhs.true77
%first85 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 0
store i32 0, i32* %first85, align 4
%second86 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %retval, i32 0, i32 1
store i32 0, i32* %second86, align 4
br label %return
if.end87: ; preds = %land.lhs.true77, %if.end71
br label %return
return: ; preds = %if.end87, %if.then84, %if.then68, %if.then52, %if.then36, %if.then20, %if.then
%48 = bitcast %"struct.std::pair"* %retval to i64*
%49 = load i64, i64* %48, align 4
ret i64 %49
}
; Function Attrs: noinline norecurse optnone uwtable
define i32 @main(i32 %argc, i8** %argv) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
%argv.addr = alloca i8**, align 8
%params = alloca %"struct.miniFE::Parameters", align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%numprocs = alloca i32, align 4
%myproc = alloca i32, align 4
%start_time = alloca double, align 8
%global_box = alloca %struct.Box, align 4
%local_boxes = alloca %"class.std::vector", align 8
%ref.tmp = alloca %struct.Box, align 4
%ref.tmp8 = alloca %"class.std::allocator.0", align 1
%my_box = alloca %struct.Box*, align 8
%osstr = alloca %"class.std::__cxx11::basic_ostringstream", align 8
%doc = alloca %class.YAML_Doc, align 8
%ref.tmp44 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp45 = alloca %"class.std::allocator", align 1
%ref.tmp48 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp49 = alloca %"class.std::allocator", align 1
%ref.tmp52 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp53 = alloca %"class.std::allocator", align 1
%ref.tmp56 = alloca %"class.std::__cxx11::basic_string", align 8
%total_time = alloca double, align 8
%ref.tmp85 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp86 = alloca %"class.std::allocator", align 1
%agg.tmp.ensured = alloca %"class.std::__cxx11::basic_string", align 8
store i32 0, i32* %retval, align 4
store i32 %argc, i32* %argc.addr, align 4
store i8** %argv, i8*** %argv.addr, align 8
call void @_ZN6miniFE10ParametersC2Ev(%"struct.miniFE::Parameters"* %params)
%0 = load i32, i32* %argc.addr, align 4
%1 = load i8**, i8*** %argv.addr, align 8
invoke void @_ZN6miniFE14get_parametersEiPPcRNS_10ParametersE(i32 %0, i8** %1, %"struct.miniFE::Parameters"* dereferenceable(96) %params)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
store i32 1, i32* %numprocs, align 4
store i32 0, i32* %myproc, align 4
%2 = load i32, i32* %argc.addr, align 4
%3 = load i8**, i8*** %argv.addr, align 8
invoke void @_ZN6miniFE14initialize_mpiEiPPcRiS2_(i32 %2, i8** %3, i32* dereferenceable(4) %numprocs, i32* dereferenceable(4) %myproc)
to label %invoke.cont1 unwind label %lpad
invoke.cont1: ; preds = %invoke.cont
%call = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont2 unwind label %lpad
invoke.cont2: ; preds = %invoke.cont1
store double %call, double* %start_time, align 8
invoke void @_ZN6miniFE20broadcast_parametersERNS_10ParametersE(%"struct.miniFE::Parameters"* dereferenceable(96) %params)
to label %invoke.cont3 unwind label %lpad
invoke.cont3: ; preds = %invoke.cont2
%ranges = getelementptr inbounds %struct.Box, %struct.Box* %global_box, i32 0, i32 0
%arrayinit.begin = getelementptr inbounds [6 x i32], [6 x i32]* %ranges, i64 0, i64 0
store i32 0, i32* %arrayinit.begin, align 4
%arrayinit.element = getelementptr inbounds i32, i32* %arrayinit.begin, i64 1
%nx = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 0
%4 = load i32, i32* %nx, align 8
store i32 %4, i32* %arrayinit.element, align 4
%arrayinit.element4 = getelementptr inbounds i32, i32* %arrayinit.element, i64 1
store i32 0, i32* %arrayinit.element4, align 4
%arrayinit.element5 = getelementptr inbounds i32, i32* %arrayinit.element4, i64 1
%ny = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 1
%5 = load i32, i32* %ny, align 4
store i32 %5, i32* %arrayinit.element5, align 4
%arrayinit.element6 = getelementptr inbounds i32, i32* %arrayinit.element5, i64 1
store i32 0, i32* %arrayinit.element6, align 4
%arrayinit.element7 = getelementptr inbounds i32, i32* %arrayinit.element6, i64 1
%nz = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 2
%6 = load i32, i32* %nz, align 8
store i32 %6, i32* %arrayinit.element7, align 4
%7 = load i32, i32* %numprocs, align 4
%conv = sext i32 %7 to i64
%8 = bitcast %struct.Box* %ref.tmp to i8*
call void @llvm.memset.p0i8.i64(i8* %8, i8 0, i64 24, i32 4, i1 false)
call void @_ZNSaI3BoxEC2Ev(%"class.std::allocator.0"* %ref.tmp8) #2
invoke void @_ZNSt6vectorI3BoxSaIS0_EEC2EmRKS0_RKS1_(%"class.std::vector"* %local_boxes, i64 %conv, %struct.Box* dereferenceable(24) %ref.tmp, %"class.std::allocator.0"* dereferenceable(1) %ref.tmp8)
to label %invoke.cont10 unwind label %lpad9
invoke.cont10: ; preds = %invoke.cont3
call void @_ZNSaI3BoxED2Ev(%"class.std::allocator.0"* %ref.tmp8) #2
%9 = load i32, i32* %numprocs, align 4
%call13 = invoke dereferenceable(24) %struct.Box* @_ZNSt6vectorI3BoxSaIS0_EEixEm(%"class.std::vector"* %local_boxes, i64 0)
to label %invoke.cont12 unwind label %lpad11
invoke.cont12: ; preds = %invoke.cont10
invoke void @_Z13box_partitioniiiRK3BoxPS_(i32 0, i32 %9, i32 2, %struct.Box* dereferenceable(24) %global_box, %struct.Box* %call13)
to label %invoke.cont14 unwind label %lpad11
invoke.cont14: ; preds = %invoke.cont12
%10 = load i32, i32* %myproc, align 4
%conv15 = sext i32 %10 to i64
%call17 = invoke dereferenceable(24) %struct.Box* @_ZNSt6vectorI3BoxSaIS0_EEixEm(%"class.std::vector"* %local_boxes, i64 %conv15)
to label %invoke.cont16 unwind label %lpad11
invoke.cont16: ; preds = %invoke.cont14
store %struct.Box* %call17, %struct.Box** %my_box, align 8
invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode(%"class.std::__cxx11::basic_ostringstream"* %osstr, i32 16)
to label %invoke.cont18 unwind label %lpad11
invoke.cont18: ; preds = %invoke.cont16
%11 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%call21 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %11, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i32 0, i32 0))
to label %invoke.cont20 unwind label %lpad19
invoke.cont20: ; preds = %invoke.cont18
%nx22 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 0
%12 = load i32, i32* %nx22, align 8
%call24 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call21, i32 %12)
to label %invoke.cont23 unwind label %lpad19
invoke.cont23: ; preds = %invoke.cont20
%call26 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call24, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i32 0, i32 0))
to label %invoke.cont25 unwind label %lpad19
invoke.cont25: ; preds = %invoke.cont23
%ny27 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 1
%13 = load i32, i32* %ny27, align 4
%call29 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call26, i32 %13)
to label %invoke.cont28 unwind label %lpad19
invoke.cont28: ; preds = %invoke.cont25
%call31 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call29, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i32 0, i32 0))
to label %invoke.cont30 unwind label %lpad19
invoke.cont30: ; preds = %invoke.cont28
%nz32 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 2
%14 = load i32, i32* %nz32, align 8
%call34 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call31, i32 %14)
to label %invoke.cont33 unwind label %lpad19
invoke.cont33: ; preds = %invoke.cont30
%15 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%call36 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %15, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i32 0, i32 0))
to label %invoke.cont35 unwind label %lpad19
invoke.cont35: ; preds = %invoke.cont33
%name = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 8
%call38 = invoke zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(%"class.std::__cxx11::basic_string"* dereferenceable(32) %name, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0))
to label %invoke.cont37 unwind label %lpad19
invoke.cont37: ; preds = %invoke.cont35
br i1 %call38, label %if.then, label %if.end
if.then: ; preds = %invoke.cont37
%16 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%name39 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 8
%call41 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(%"class.std::basic_ostream"* dereferenceable(272) %16, %"class.std::__cxx11::basic_string"* dereferenceable(32) %name39)
to label %invoke.cont40 unwind label %lpad19
invoke.cont40: ; preds = %if.then
%call43 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call41, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i32 0, i32 0))
to label %invoke.cont42 unwind label %lpad19
invoke.cont42: ; preds = %invoke.cont40
br label %if.end
lpad: ; preds = %invoke.cont103, %invoke.cont2, %invoke.cont1, %invoke.cont, %entry
%17 = landingpad { i8*, i32 }
cleanup
%18 = extractvalue { i8*, i32 } %17, 0
store i8* %18, i8** %exn.slot, align 8
%19 = extractvalue { i8*, i32 } %17, 1
store i32 %19, i32* %ehselector.slot, align 4
br label %ehcleanup109
lpad9: ; preds = %invoke.cont3
%20 = landingpad { i8*, i32 }
cleanup
%21 = extractvalue { i8*, i32 } %20, 0
store i8* %21, i8** %exn.slot, align 8
%22 = extractvalue { i8*, i32 } %20, 1
store i32 %22, i32* %ehselector.slot, align 4
call void @_ZNSaI3BoxED2Ev(%"class.std::allocator.0"* %ref.tmp8) #2
br label %ehcleanup109
lpad11: ; preds = %invoke.cont100, %invoke.cont16, %invoke.cont14, %invoke.cont12, %invoke.cont10
%23 = landingpad { i8*, i32 }
cleanup
%24 = extractvalue { i8*, i32 } %23, 0
store i8* %24, i8** %exn.slot, align 8
%25 = extractvalue { i8*, i32 } %23, 1
store i32 %25, i32* %ehselector.slot, align 4
br label %ehcleanup107
lpad19: ; preds = %invoke.cont99, %invoke.cont40, %if.then, %invoke.cont35, %invoke.cont33, %invoke.cont30, %invoke.cont28, %invoke.cont25, %invoke.cont23, %invoke.cont20, %invoke.cont18
%26 = landingpad { i8*, i32 }
cleanup
%27 = extractvalue { i8*, i32 } %26, 0
store i8* %27, i8** %exn.slot, align 8
%28 = extractvalue { i8*, i32 } %26, 1
store i32 %28, i32* %ehselector.slot, align 4
br label %ehcleanup104
if.end: ; preds = %invoke.cont42, %invoke.cont37
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp45) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp44, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp45)
to label %invoke.cont47 unwind label %lpad46
invoke.cont47: ; preds = %if.end
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp49) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp48, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp49)
to label %invoke.cont51 unwind label %lpad50
invoke.cont51: ; preds = %invoke.cont47
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp53) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp52, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp53)
to label %invoke.cont55 unwind label %lpad54
invoke.cont55: ; preds = %invoke.cont51
invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* sret %ref.tmp56, %"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont58 unwind label %lpad57
invoke.cont58: ; preds = %invoke.cont55
invoke void @_ZN8YAML_DocC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_(%class.YAML_Doc* %doc, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp44, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp48, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp52, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp56)
to label %invoke.cont60 unwind label %lpad59
invoke.cont60: ; preds = %invoke.cont58
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp56)
to label %invoke.cont61 unwind label %lpad57
invoke.cont61: ; preds = %invoke.cont60
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp52)
to label %invoke.cont63 unwind label %lpad54
invoke.cont63: ; preds = %invoke.cont61
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp53) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp48)
to label %invoke.cont66 unwind label %lpad50
invoke.cont66: ; preds = %invoke.cont63
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp49) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp44)
to label %invoke.cont70 unwind label %lpad46
invoke.cont70: ; preds = %invoke.cont66
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp45) #2
%29 = load i32, i32* %myproc, align 4
%cmp = icmp eq i32 %29, 0
br i1 %cmp, label %if.then74, label %if.end79
if.then74: ; preds = %invoke.cont70
invoke void @_Z18add_params_to_yamlR8YAML_DocRN6miniFE10ParametersE(%class.YAML_Doc* dereferenceable(216) %doc, %"struct.miniFE::Parameters"* dereferenceable(96) %params)
to label %invoke.cont76 unwind label %lpad75
invoke.cont76: ; preds = %if.then74
%30 = load i32, i32* %numprocs, align 4
%numthreads = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %params, i32 0, i32 3
%31 = load i32, i32* %numthreads, align 4
invoke void @_Z25add_configuration_to_yamlR8YAML_Docii(%class.YAML_Doc* dereferenceable(216) %doc, i32 %30, i32 %31)
to label %invoke.cont77 unwind label %lpad75
invoke.cont77: ; preds = %invoke.cont76
invoke void @_Z22add_timestring_to_yamlR8YAML_Doc(%class.YAML_Doc* dereferenceable(216) %doc)
to label %invoke.cont78 unwind label %lpad75
invoke.cont78: ; preds = %invoke.cont77
br label %if.end79
lpad46: ; preds = %invoke.cont66, %if.end
%32 = landingpad { i8*, i32 }
cleanup
%33 = extractvalue { i8*, i32 } %32, 0
store i8* %33, i8** %exn.slot, align 8
%34 = extractvalue { i8*, i32 } %32, 1
store i32 %34, i32* %ehselector.slot, align 4
br label %ehcleanup73
lpad50: ; preds = %invoke.cont63, %invoke.cont47
%35 = landingpad { i8*, i32 }
cleanup
%36 = extractvalue { i8*, i32 } %35, 0
store i8* %36, i8** %exn.slot, align 8
%37 = extractvalue { i8*, i32 } %35, 1
store i32 %37, i32* %ehselector.slot, align 4
br label %ehcleanup69
lpad54: ; preds = %invoke.cont61, %invoke.cont51
%38 = landingpad { i8*, i32 }
cleanup
%39 = extractvalue { i8*, i32 } %38, 0
store i8* %39, i8** %exn.slot, align 8
%40 = extractvalue { i8*, i32 } %38, 1
store i32 %40, i32* %ehselector.slot, align 4
br label %ehcleanup65
lpad57: ; preds = %invoke.cont60, %invoke.cont55
%41 = landingpad { i8*, i32 }
cleanup
%42 = extractvalue { i8*, i32 } %41, 0
store i8* %42, i8** %exn.slot, align 8
%43 = extractvalue { i8*, i32 } %41, 1
store i32 %43, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad59: ; preds = %invoke.cont58
%44 = landingpad { i8*, i32 }
cleanup
%45 = extractvalue { i8*, i32 } %44, 0
store i8* %45, i8** %exn.slot, align 8
%46 = extractvalue { i8*, i32 } %44, 1
store i32 %46, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp56)
to label %invoke.cont62 unwind label %terminate.lpad
invoke.cont62: ; preds = %lpad59
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont62, %lpad57
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp52)
to label %invoke.cont64 unwind label %terminate.lpad
invoke.cont64: ; preds = %ehcleanup
br label %ehcleanup65
ehcleanup65: ; preds = %invoke.cont64, %lpad54
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp53) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp48)
to label %invoke.cont68 unwind label %terminate.lpad
invoke.cont68: ; preds = %ehcleanup65
br label %ehcleanup69
ehcleanup69: ; preds = %invoke.cont68, %lpad50
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp49) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp44)
to label %invoke.cont72 unwind label %terminate.lpad
invoke.cont72: ; preds = %ehcleanup69
br label %ehcleanup73
ehcleanup73: ; preds = %invoke.cont72, %lpad46
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp45) #2
br label %ehcleanup104
lpad75: ; preds = %if.end98, %invoke.cont96, %invoke.cont92, %invoke.cont80, %if.end79, %invoke.cont77, %invoke.cont76, %if.then74
%47 = landingpad { i8*, i32 }
cleanup
%48 = extractvalue { i8*, i32 } %47, 0
store i8* %48, i8** %exn.slot, align 8
%49 = extractvalue { i8*, i32 } %47, 1
store i32 %49, i32* %ehselector.slot, align 4
br label %ehcleanup101
if.end79: ; preds = %invoke.cont78, %invoke.cont70
%50 = load %struct.Box*, %struct.Box** %my_box, align 8
invoke void @_ZN6miniFE6driverIdiiEEvRK3BoxRS1_RNS_10ParametersER8YAML_Doc(%struct.Box* dereferenceable(24) %global_box, %struct.Box* dereferenceable(24) %50, %"struct.miniFE::Parameters"* dereferenceable(96) %params, %class.YAML_Doc* dereferenceable(216) %doc)
to label %invoke.cont80 unwind label %lpad75
invoke.cont80: ; preds = %if.end79
%call82 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont81 unwind label %lpad75
invoke.cont81: ; preds = %invoke.cont80
%51 = load double, double* %start_time, align 8
%sub = fsub double %call82, %51
store double %sub, double* %total_time, align 8
%52 = load i32, i32* %myproc, align 4
%cmp83 = icmp eq i32 %52, 0
br i1 %cmp83, label %if.then84, label %if.end98
if.then84: ; preds = %invoke.cont81
%53 = bitcast %class.YAML_Doc* %doc to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp86) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp85, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp86)
to label %invoke.cont88 unwind label %lpad87
invoke.cont88: ; preds = %if.then84
%54 = load double, double* %total_time, align 8
%call91 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %53, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp85, double %54)
to label %invoke.cont90 unwind label %lpad89
invoke.cont90: ; preds = %invoke.cont88
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp85)
to label %invoke.cont92 unwind label %lpad87
invoke.cont92: ; preds = %invoke.cont90
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp86) #2
invoke void @_ZN8YAML_Doc12generateYAMLB5cxx11Ev(%"class.std::__cxx11::basic_string"* sret %agg.tmp.ensured, %class.YAML_Doc* %doc)
to label %invoke.cont96 unwind label %lpad75
invoke.cont96: ; preds = %invoke.cont92
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %agg.tmp.ensured)
to label %invoke.cont97 unwind label %lpad75
invoke.cont97: ; preds = %invoke.cont96
br label %if.end98
lpad87: ; preds = %invoke.cont90, %if.then84
%55 = landingpad { i8*, i32 }
cleanup
%56 = extractvalue { i8*, i32 } %55, 0
store i8* %56, i8** %exn.slot, align 8
%57 = extractvalue { i8*, i32 } %55, 1
store i32 %57, i32* %ehselector.slot, align 4
br label %ehcleanup95
lpad89: ; preds = %invoke.cont88
%58 = landingpad { i8*, i32 }
cleanup
%59 = extractvalue { i8*, i32 } %58, 0
store i8* %59, i8** %exn.slot, align 8
%60 = extractvalue { i8*, i32 } %58, 1
store i32 %60, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp85)
to label %invoke.cont94 unwind label %terminate.lpad
invoke.cont94: ; preds = %lpad89
br label %ehcleanup95
ehcleanup95: ; preds = %invoke.cont94, %lpad87
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp86) #2
br label %ehcleanup101
if.end98: ; preds = %invoke.cont97, %invoke.cont81
invoke void @_ZN6miniFE12finalize_mpiEv()
to label %invoke.cont99 unwind label %lpad75
invoke.cont99: ; preds = %if.end98
store i32 0, i32* %retval, align 4
invoke void @_ZN8YAML_DocD1Ev(%class.YAML_Doc* %doc)
to label %invoke.cont100 unwind label %lpad19
invoke.cont100: ; preds = %invoke.cont99
invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont103 unwind label %lpad11
ehcleanup101: ; preds = %ehcleanup95, %lpad75
invoke void @_ZN8YAML_DocD1Ev(%class.YAML_Doc* %doc)
to label %invoke.cont102 unwind label %terminate.lpad
invoke.cont102: ; preds = %ehcleanup101
br label %ehcleanup104
invoke.cont103: ; preds = %invoke.cont100
invoke void @_ZNSt6vectorI3BoxSaIS0_EED2Ev(%"class.std::vector"* %local_boxes)
to label %invoke.cont106 unwind label %lpad
ehcleanup104: ; preds = %invoke.cont102, %ehcleanup73, %lpad19
invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont105 unwind label %terminate.lpad
invoke.cont105: ; preds = %ehcleanup104
br label %ehcleanup107
invoke.cont106: ; preds = %invoke.cont103
call void @_ZN6miniFE10ParametersD2Ev(%"struct.miniFE::Parameters"* %params)
%61 = load i32, i32* %retval, align 4
ret i32 %61
ehcleanup107: ; preds = %invoke.cont105, %lpad11
invoke void @_ZNSt6vectorI3BoxSaIS0_EED2Ev(%"class.std::vector"* %local_boxes)
to label %invoke.cont108 unwind label %terminate.lpad
invoke.cont108: ; preds = %ehcleanup107
br label %ehcleanup109
ehcleanup109: ; preds = %invoke.cont108, %lpad9, %lpad
invoke void @_ZN6miniFE10ParametersD2Ev(%"struct.miniFE::Parameters"* %params)
to label %invoke.cont110 unwind label %terminate.lpad
invoke.cont110: ; preds = %ehcleanup109
br label %eh.resume
eh.resume: ; preds = %invoke.cont110
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val111 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val111
terminate.lpad: ; preds = %ehcleanup109, %ehcleanup107, %ehcleanup104, %ehcleanup101, %lpad89, %ehcleanup69, %ehcleanup65, %ehcleanup, %lpad59
%62 = landingpad { i8*, i32 }
catch i8* null
%63 = extractvalue { i8*, i32 } %62, 0
call void @__clang_call_terminate(i8* %63) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE10ParametersC2Ev(%"struct.miniFE::Parameters"* %this) unnamed_addr #3 comdat align 2 {
entry:
%this.addr = alloca %"struct.miniFE::Parameters"*, align 8
store %"struct.miniFE::Parameters"* %this, %"struct.miniFE::Parameters"** %this.addr, align 8
%this1 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %this.addr, align 8
%nx = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 0
store i32 5, i32* %nx, align 8
%ny = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 1
%nx2 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 0
%0 = load i32, i32* %nx2, align 8
store i32 %0, i32* %ny, align 4
%nz = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 2
%nx3 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 0
%1 = load i32, i32* %nx3, align 8
store i32 %1, i32* %nz, align 8
%numthreads = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 3
store i32 1, i32* %numthreads, align 4
%mv_overlap_comm_comp = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 4
store i32 0, i32* %mv_overlap_comm_comp, align 8
%use_locking = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 5
store i32 0, i32* %use_locking, align 4
%load_imbalance = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 6
store float 0.000000e+00, float* %load_imbalance, align 8
%name = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 8
call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(%"class.std::__cxx11::basic_string"* %name)
%elem_group_size = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 9
store i32 1, i32* %elem_group_size, align 8
%use_elem_mat_fields = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 10
store i32 1, i32* %use_elem_mat_fields, align 4
%verify_solution = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 11
store i32 0, i32* %verify_solution, align 8
%device = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 12
store i32 0, i32* %device, align 4
%num_devices = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 13
store i32 2, i32* %num_devices, align 8
%skip_device = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 14
store i32 9999, i32* %skip_device, align 4
%numa = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 15
store i32 1, i32* %numa, align 8
ret void
}
declare void @_ZN6miniFE14get_parametersEiPPcRNS_10ParametersE(i32, i8**, %"struct.miniFE::Parameters"* dereferenceable(96)) #1
declare i32 @__gxx_personality_v0(...)
declare void @_ZN6miniFE14initialize_mpiEiPPcRiS2_(i32, i8**, i32* dereferenceable(4), i32* dereferenceable(4)) #1
declare double @_ZN6miniFE7mytimerEv() #1
declare void @_ZN6miniFE20broadcast_parametersERNS_10ParametersE(%"struct.miniFE::Parameters"* dereferenceable(96)) #1
; Function Attrs: argmemonly nounwind
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i32, i1) #6
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSaI3BoxEC2Ev(%"class.std::allocator.0"* %this) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::allocator.0"*, align 8
store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 8
%this1 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %this.addr, align 8
%0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
call void @_ZN9__gnu_cxx13new_allocatorI3BoxEC2Ev(%"class.__gnu_cxx::new_allocator.1"* %0) #2
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt6vectorI3BoxSaIS0_EEC2EmRKS0_RKS1_(%"class.std::vector"* %this, i64 %__n, %struct.Box* dereferenceable(24) %__value, %"class.std::allocator.0"* dereferenceable(1) %__a) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"class.std::vector"*, align 8
%__n.addr = alloca i64, align 8
%__value.addr = alloca %struct.Box*, align 8
%__a.addr = alloca %"class.std::allocator.0"*, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__value, %struct.Box** %__value.addr, align 8
store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 8
%this1 = load %"class.std::vector"*, %"class.std::vector"** %this.addr, align 8
%0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%1 = load i64, i64* %__n.addr, align 8
%2 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %__a.addr, align 8
call void @_ZNSt12_Vector_baseI3BoxSaIS0_EEC2EmRKS1_(%"struct.std::_Vector_base"* %0, i64 %1, %"class.std::allocator.0"* dereferenceable(1) %2)
%3 = load i64, i64* %__n.addr, align 8
%4 = load %struct.Box*, %struct.Box** %__value.addr, align 8
invoke void @_ZNSt6vectorI3BoxSaIS0_EE18_M_fill_initializeEmRKS0_(%"class.std::vector"* %this1, i64 %3, %struct.Box* dereferenceable(24) %4)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
ret void
lpad: ; preds = %entry
%5 = landingpad { i8*, i32 }
cleanup
%6 = extractvalue { i8*, i32 } %5, 0
store i8* %6, i8** %exn.slot, align 8
%7 = extractvalue { i8*, i32 } %5, 1
store i32 %7, i32* %ehselector.slot, align 4
%8 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
invoke void @_ZNSt12_Vector_baseI3BoxSaIS0_EED2Ev(%"struct.std::_Vector_base"* %8)
to label %invoke.cont2 unwind label %terminate.lpad
invoke.cont2: ; preds = %lpad
br label %eh.resume
eh.resume: ; preds = %invoke.cont2
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val3
terminate.lpad: ; preds = %lpad
%9 = landingpad { i8*, i32 }
catch i8* null
%10 = extractvalue { i8*, i32 } %9, 0
call void @__clang_call_terminate(i8* %10) #13
unreachable
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSaI3BoxED2Ev(%"class.std::allocator.0"* %this) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::allocator.0"*, align 8
store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 8
%this1 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %this.addr, align 8
%0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
call void @_ZN9__gnu_cxx13new_allocatorI3BoxED2Ev(%"class.__gnu_cxx::new_allocator.1"* %0) #2
ret void
}
declare void @_Z13box_partitioniiiRK3BoxPS_(i32, i32, i32, %struct.Box* dereferenceable(24), %struct.Box*) #1
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dereferenceable(24) %struct.Box* @_ZNSt6vectorI3BoxSaIS0_EEixEm(%"class.std::vector"* %this, i64 %__n) #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::vector"*, align 8
%__n.addr = alloca i64, align 8
store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%this1 = load %"class.std::vector"*, %"class.std::vector"** %this.addr, align 8
%0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %0, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl, i32 0, i32 0
%1 = load %struct.Box*, %struct.Box** %_M_start, align 8
%2 = load i64, i64* %__n.addr, align 8
%add.ptr = getelementptr inbounds %struct.Box, %struct.Box* %1, i64 %2
ret %struct.Box* %add.ptr
}
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode(%"class.std::__cxx11::basic_ostringstream"*, i32) unnamed_addr #1
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272), i8*) #1
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"*, i32) #1
; Function Attrs: noinline optnone uwtable
define linkonce_odr zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(%"class.std::__cxx11::basic_string"* dereferenceable(32) %__lhs, i8* %__rhs) #3 comdat {
entry:
%__lhs.addr = alloca %"class.std::__cxx11::basic_string"*, align 8
%__rhs.addr = alloca i8*, align 8
store %"class.std::__cxx11::basic_string"* %__lhs, %"class.std::__cxx11::basic_string"** %__lhs.addr, align 8
store i8* %__rhs, i8** %__rhs.addr, align 8
%0 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %__lhs.addr, align 8
%1 = load i8*, i8** %__rhs.addr, align 8
%call = call zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(%"class.std::__cxx11::basic_string"* dereferenceable(32) %0, i8* %1)
%lnot = xor i1 %call, true
ret i1 %lnot
}
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(%"class.std::basic_ostream"* dereferenceable(272), %"class.std::__cxx11::basic_string"* dereferenceable(32)) #1
; Function Attrs: nounwind
declare void @_ZNSaIcEC1Ev(%"class.std::allocator"*) unnamed_addr #7
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"*, i8*, %"class.std::allocator"* dereferenceable(1)) unnamed_addr #1
declare void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* sret, %"class.std::__cxx11::basic_ostringstream"*) #1
declare void @_ZN8YAML_DocC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7_(%class.YAML_Doc*, %"class.std::__cxx11::basic_string"* dereferenceable(32), %"class.std::__cxx11::basic_string"* dereferenceable(32), %"class.std::__cxx11::basic_string"* dereferenceable(32), %"class.std::__cxx11::basic_string"* dereferenceable(32)) unnamed_addr #1
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"*) unnamed_addr #1
; Function Attrs: noinline noreturn nounwind
define linkonce_odr hidden void @__clang_call_terminate(i8*) #8 comdat {
%2 = call i8* @__cxa_begin_catch(i8* %0) #2
call void @_ZSt9terminatev() #13
unreachable
}
declare i8* @__cxa_begin_catch(i8*)
declare void @_ZSt9terminatev()
; Function Attrs: nounwind
declare void @_ZNSaIcED1Ev(%"class.std::allocator"*) unnamed_addr #7
; Function Attrs: noinline optnone uwtable
define void @_Z18add_params_to_yamlR8YAML_DocRN6miniFE10ParametersE(%class.YAML_Doc* dereferenceable(216) %doc, %"struct.miniFE::Parameters"* dereferenceable(96) %params) #3 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%doc.addr = alloca %class.YAML_Doc*, align 8
%params.addr = alloca %"struct.miniFE::Parameters"*, align 8
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp1 = alloca %"class.std::allocator", align 1
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%ref.tmp2 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp3 = alloca %"class.std::allocator", align 1
%ref.tmp14 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp15 = alloca %"class.std::allocator", align 1
%ref.tmp21 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp22 = alloca %"class.std::allocator", align 1
%ref.tmp25 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp26 = alloca %"class.std::allocator", align 1
%ref.tmp44 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp45 = alloca %"class.std::allocator", align 1
%ref.tmp51 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp52 = alloca %"class.std::allocator", align 1
%ref.tmp58 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp59 = alloca %"class.std::allocator", align 1
%ref.tmp77 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp78 = alloca %"class.std::allocator", align 1
%ref.tmp84 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp85 = alloca %"class.std::allocator", align 1
%ref.tmp91 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp92 = alloca %"class.std::allocator", align 1
%ref.tmp110 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp111 = alloca %"class.std::allocator", align 1
%ref.tmp117 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp118 = alloca %"class.std::allocator", align 1
%ref.tmp124 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp125 = alloca %"class.std::allocator", align 1
%ref.tmp143 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp144 = alloca %"class.std::allocator", align 1
%ref.tmp150 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp151 = alloca %"class.std::allocator", align 1
%val = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp165 = alloca %"class.std::allocator", align 1
%ref.tmp169 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp170 = alloca %"class.std::allocator", align 1
%ref.tmp176 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp177 = alloca %"class.std::allocator", align 1
%val193 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp194 = alloca %"class.std::allocator", align 1
%ref.tmp198 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp199 = alloca %"class.std::allocator", align 1
%ref.tmp205 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp206 = alloca %"class.std::allocator", align 1
store %class.YAML_Doc* %doc, %class.YAML_Doc** %doc.addr, align 8
store %"struct.miniFE::Parameters"* %params, %"struct.miniFE::Parameters"** %params.addr, align 8
%0 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%1 = bitcast %class.YAML_Doc* %0 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp1) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp3) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp3)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont
%call = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %1, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp2)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp2)
to label %invoke.cont8 unwind label %lpad4
invoke.cont8: ; preds = %invoke.cont7
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp3) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont10 unwind label %lpad
invoke.cont10: ; preds = %invoke.cont8
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp1) #2
%2 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%3 = bitcast %class.YAML_Doc* %2 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp15) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp14, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp15)
to label %invoke.cont17 unwind label %lpad16
invoke.cont17: ; preds = %invoke.cont10
%call20 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %3, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp14)
to label %invoke.cont19 unwind label %lpad18
invoke.cont19: ; preds = %invoke.cont17
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp22) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp21, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp22)
to label %invoke.cont24 unwind label %lpad23
invoke.cont24: ; preds = %invoke.cont19
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp26) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp25, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp26)
to label %invoke.cont28 unwind label %lpad27
invoke.cont28: ; preds = %invoke.cont24
%call31 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call20, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp21, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp25)
to label %invoke.cont30 unwind label %lpad29
invoke.cont30: ; preds = %invoke.cont28
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp25)
to label %invoke.cont32 unwind label %lpad27
invoke.cont32: ; preds = %invoke.cont30
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp26) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp21)
to label %invoke.cont36 unwind label %lpad23
invoke.cont36: ; preds = %invoke.cont32
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp22) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp14)
to label %invoke.cont40 unwind label %lpad16
invoke.cont40: ; preds = %invoke.cont36
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp15) #2
%4 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%5 = bitcast %class.YAML_Doc* %4 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp45) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp44, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp45)
to label %invoke.cont47 unwind label %lpad46
invoke.cont47: ; preds = %invoke.cont40
%call50 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %5, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp44)
to label %invoke.cont49 unwind label %lpad48
invoke.cont49: ; preds = %invoke.cont47
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp52) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp51, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp52)
to label %invoke.cont54 unwind label %lpad53
invoke.cont54: ; preds = %invoke.cont49
%call57 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call50, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp51)
to label %invoke.cont56 unwind label %lpad55
invoke.cont56: ; preds = %invoke.cont54
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp59) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp58, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp59)
to label %invoke.cont61 unwind label %lpad60
invoke.cont61: ; preds = %invoke.cont56
%6 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%nx = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %6, i32 0, i32 0
%7 = load i32, i32* %nx, align 8
%call64 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(%class.YAML_Element* %call57, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp58, i32 %7)
to label %invoke.cont63 unwind label %lpad62
invoke.cont63: ; preds = %invoke.cont61
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp58)
to label %invoke.cont65 unwind label %lpad60
invoke.cont65: ; preds = %invoke.cont63
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp59) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp51)
to label %invoke.cont69 unwind label %lpad53
invoke.cont69: ; preds = %invoke.cont65
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp52) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp44)
to label %invoke.cont73 unwind label %lpad46
invoke.cont73: ; preds = %invoke.cont69
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp45) #2
%8 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%9 = bitcast %class.YAML_Doc* %8 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp78) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp77, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp78)
to label %invoke.cont80 unwind label %lpad79
invoke.cont80: ; preds = %invoke.cont73
%call83 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %9, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp77)
to label %invoke.cont82 unwind label %lpad81
invoke.cont82: ; preds = %invoke.cont80
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp85) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp84, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp85)
to label %invoke.cont87 unwind label %lpad86
invoke.cont87: ; preds = %invoke.cont82
%call90 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call83, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp84)
to label %invoke.cont89 unwind label %lpad88
invoke.cont89: ; preds = %invoke.cont87
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp92) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp91, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp92)
to label %invoke.cont94 unwind label %lpad93
invoke.cont94: ; preds = %invoke.cont89
%10 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%ny = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %10, i32 0, i32 1
%11 = load i32, i32* %ny, align 4
%call97 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(%class.YAML_Element* %call90, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp91, i32 %11)
to label %invoke.cont96 unwind label %lpad95
invoke.cont96: ; preds = %invoke.cont94
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp91)
to label %invoke.cont98 unwind label %lpad93
invoke.cont98: ; preds = %invoke.cont96
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp92) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp84)
to label %invoke.cont102 unwind label %lpad86
invoke.cont102: ; preds = %invoke.cont98
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp85) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp77)
to label %invoke.cont106 unwind label %lpad79
invoke.cont106: ; preds = %invoke.cont102
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp78) #2
%12 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%13 = bitcast %class.YAML_Doc* %12 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp111) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp110, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp111)
to label %invoke.cont113 unwind label %lpad112
invoke.cont113: ; preds = %invoke.cont106
%call116 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %13, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp110)
to label %invoke.cont115 unwind label %lpad114
invoke.cont115: ; preds = %invoke.cont113
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp118) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp117, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp118)
to label %invoke.cont120 unwind label %lpad119
invoke.cont120: ; preds = %invoke.cont115
%call123 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call116, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp117)
to label %invoke.cont122 unwind label %lpad121
invoke.cont122: ; preds = %invoke.cont120
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp125) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp124, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp125)
to label %invoke.cont127 unwind label %lpad126
invoke.cont127: ; preds = %invoke.cont122
%14 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%nz = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %14, i32 0, i32 2
%15 = load i32, i32* %nz, align 8
%call130 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(%class.YAML_Element* %call123, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp124, i32 %15)
to label %invoke.cont129 unwind label %lpad128
invoke.cont129: ; preds = %invoke.cont127
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp124)
to label %invoke.cont131 unwind label %lpad126
invoke.cont131: ; preds = %invoke.cont129
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp125) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp117)
to label %invoke.cont135 unwind label %lpad119
invoke.cont135: ; preds = %invoke.cont131
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp118) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp110)
to label %invoke.cont139 unwind label %lpad112
invoke.cont139: ; preds = %invoke.cont135
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp111) #2
%16 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%17 = bitcast %class.YAML_Doc* %16 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp144) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp143, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp144)
to label %invoke.cont146 unwind label %lpad145
invoke.cont146: ; preds = %invoke.cont139
%call149 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %17, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp143)
to label %invoke.cont148 unwind label %lpad147
invoke.cont148: ; preds = %invoke.cont146
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp151) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp150, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.12, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp151)
to label %invoke.cont153 unwind label %lpad152
invoke.cont153: ; preds = %invoke.cont148
%18 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%load_imbalance = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %18, i32 0, i32 6
%19 = load float, float* %load_imbalance, align 8
%conv = fpext float %19 to double
%call156 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call149, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp150, double %conv)
to label %invoke.cont155 unwind label %lpad154
invoke.cont155: ; preds = %invoke.cont153
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp150)
to label %invoke.cont157 unwind label %lpad152
invoke.cont157: ; preds = %invoke.cont155
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp151) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp143)
to label %invoke.cont161 unwind label %lpad145
invoke.cont161: ; preds = %invoke.cont157
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp144) #2
%20 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%mv_overlap_comm_comp = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %20, i32 0, i32 4
%21 = load i32, i32* %mv_overlap_comm_comp, align 8
%cmp = icmp eq i32 %21, 1
br i1 %cmp, label %if.then, label %if.else
if.then: ; preds = %invoke.cont161
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp165) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %val, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.13, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp165)
to label %invoke.cont167 unwind label %lpad166
invoke.cont167: ; preds = %if.then
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp165) #2
%22 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%23 = bitcast %class.YAML_Doc* %22 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp170) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp169, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp170)
to label %invoke.cont172 unwind label %lpad171
invoke.cont172: ; preds = %invoke.cont167
%call175 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %23, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp169)
to label %invoke.cont174 unwind label %lpad173
invoke.cont174: ; preds = %invoke.cont172
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp177) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp176, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp177)
to label %invoke.cont179 unwind label %lpad178
invoke.cont179: ; preds = %invoke.cont174
%call182 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call175, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp176, %"class.std::__cxx11::basic_string"* dereferenceable(32) %val)
to label %invoke.cont181 unwind label %lpad180
invoke.cont181: ; preds = %invoke.cont179
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp176)
to label %invoke.cont183 unwind label %lpad178
invoke.cont183: ; preds = %invoke.cont181
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp177) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp169)
to label %invoke.cont187 unwind label %lpad171
invoke.cont187: ; preds = %invoke.cont183
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp170) #2
call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %val)
br label %if.end
lpad: ; preds = %invoke.cont8, %entry
%24 = landingpad { i8*, i32 }
cleanup
%25 = extractvalue { i8*, i32 } %24, 0
store i8* %25, i8** %exn.slot, align 8
%26 = extractvalue { i8*, i32 } %24, 1
store i32 %26, i32* %ehselector.slot, align 4
br label %ehcleanup13
lpad4: ; preds = %invoke.cont7, %invoke.cont
%27 = landingpad { i8*, i32 }
cleanup
%28 = extractvalue { i8*, i32 } %27, 0
store i8* %28, i8** %exn.slot, align 8
%29 = extractvalue { i8*, i32 } %27, 1
store i32 %29, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad6: ; preds = %invoke.cont5
%30 = landingpad { i8*, i32 }
cleanup
%31 = extractvalue { i8*, i32 } %30, 0
store i8* %31, i8** %exn.slot, align 8
%32 = extractvalue { i8*, i32 } %30, 1
store i32 %32, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp2)
to label %invoke.cont9 unwind label %terminate.lpad
invoke.cont9: ; preds = %lpad6
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont9, %lpad4
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp3) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont12 unwind label %terminate.lpad
invoke.cont12: ; preds = %ehcleanup
br label %ehcleanup13
ehcleanup13: ; preds = %invoke.cont12, %lpad
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp1) #2
br label %eh.resume
lpad16: ; preds = %invoke.cont36, %invoke.cont10
%33 = landingpad { i8*, i32 }
cleanup
%34 = extractvalue { i8*, i32 } %33, 0
store i8* %34, i8** %exn.slot, align 8
%35 = extractvalue { i8*, i32 } %33, 1
store i32 %35, i32* %ehselector.slot, align 4
br label %ehcleanup43
lpad18: ; preds = %invoke.cont17
%36 = landingpad { i8*, i32 }
cleanup
%37 = extractvalue { i8*, i32 } %36, 0
store i8* %37, i8** %exn.slot, align 8
%38 = extractvalue { i8*, i32 } %36, 1
store i32 %38, i32* %ehselector.slot, align 4
br label %ehcleanup41
lpad23: ; preds = %invoke.cont32, %invoke.cont19
%39 = landingpad { i8*, i32 }
cleanup
%40 = extractvalue { i8*, i32 } %39, 0
store i8* %40, i8** %exn.slot, align 8
%41 = extractvalue { i8*, i32 } %39, 1
store i32 %41, i32* %ehselector.slot, align 4
br label %ehcleanup39
lpad27: ; preds = %invoke.cont30, %invoke.cont24
%42 = landingpad { i8*, i32 }
cleanup
%43 = extractvalue { i8*, i32 } %42, 0
store i8* %43, i8** %exn.slot, align 8
%44 = extractvalue { i8*, i32 } %42, 1
store i32 %44, i32* %ehselector.slot, align 4
br label %ehcleanup35
lpad29: ; preds = %invoke.cont28
%45 = landingpad { i8*, i32 }
cleanup
%46 = extractvalue { i8*, i32 } %45, 0
store i8* %46, i8** %exn.slot, align 8
%47 = extractvalue { i8*, i32 } %45, 1
store i32 %47, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp25)
to label %invoke.cont34 unwind label %terminate.lpad
invoke.cont34: ; preds = %lpad29
br label %ehcleanup35
ehcleanup35: ; preds = %invoke.cont34, %lpad27
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp26) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp21)
to label %invoke.cont38 unwind label %terminate.lpad
invoke.cont38: ; preds = %ehcleanup35
br label %ehcleanup39
ehcleanup39: ; preds = %invoke.cont38, %lpad23
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp22) #2
br label %ehcleanup41
ehcleanup41: ; preds = %ehcleanup39, %lpad18
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp14)
to label %invoke.cont42 unwind label %terminate.lpad
invoke.cont42: ; preds = %ehcleanup41
br label %ehcleanup43
ehcleanup43: ; preds = %invoke.cont42, %lpad16
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp15) #2
br label %eh.resume
lpad46: ; preds = %invoke.cont69, %invoke.cont40
%48 = landingpad { i8*, i32 }
cleanup
%49 = extractvalue { i8*, i32 } %48, 0
store i8* %49, i8** %exn.slot, align 8
%50 = extractvalue { i8*, i32 } %48, 1
store i32 %50, i32* %ehselector.slot, align 4
br label %ehcleanup76
lpad48: ; preds = %invoke.cont47
%51 = landingpad { i8*, i32 }
cleanup
%52 = extractvalue { i8*, i32 } %51, 0
store i8* %52, i8** %exn.slot, align 8
%53 = extractvalue { i8*, i32 } %51, 1
store i32 %53, i32* %ehselector.slot, align 4
br label %ehcleanup74
lpad53: ; preds = %invoke.cont65, %invoke.cont49
%54 = landingpad { i8*, i32 }
cleanup
%55 = extractvalue { i8*, i32 } %54, 0
store i8* %55, i8** %exn.slot, align 8
%56 = extractvalue { i8*, i32 } %54, 1
store i32 %56, i32* %ehselector.slot, align 4
br label %ehcleanup72
lpad55: ; preds = %invoke.cont54
%57 = landingpad { i8*, i32 }
cleanup
%58 = extractvalue { i8*, i32 } %57, 0
store i8* %58, i8** %exn.slot, align 8
%59 = extractvalue { i8*, i32 } %57, 1
store i32 %59, i32* %ehselector.slot, align 4
br label %ehcleanup70
lpad60: ; preds = %invoke.cont63, %invoke.cont56
%60 = landingpad { i8*, i32 }
cleanup
%61 = extractvalue { i8*, i32 } %60, 0
store i8* %61, i8** %exn.slot, align 8
%62 = extractvalue { i8*, i32 } %60, 1
store i32 %62, i32* %ehselector.slot, align 4
br label %ehcleanup68
lpad62: ; preds = %invoke.cont61
%63 = landingpad { i8*, i32 }
cleanup
%64 = extractvalue { i8*, i32 } %63, 0
store i8* %64, i8** %exn.slot, align 8
%65 = extractvalue { i8*, i32 } %63, 1
store i32 %65, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp58)
to label %invoke.cont67 unwind label %terminate.lpad
invoke.cont67: ; preds = %lpad62
br label %ehcleanup68
ehcleanup68: ; preds = %invoke.cont67, %lpad60
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp59) #2
br label %ehcleanup70
ehcleanup70: ; preds = %ehcleanup68, %lpad55
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp51)
to label %invoke.cont71 unwind label %terminate.lpad
invoke.cont71: ; preds = %ehcleanup70
br label %ehcleanup72
ehcleanup72: ; preds = %invoke.cont71, %lpad53
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp52) #2
br label %ehcleanup74
ehcleanup74: ; preds = %ehcleanup72, %lpad48
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp44)
to label %invoke.cont75 unwind label %terminate.lpad
invoke.cont75: ; preds = %ehcleanup74
br label %ehcleanup76
ehcleanup76: ; preds = %invoke.cont75, %lpad46
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp45) #2
br label %eh.resume
lpad79: ; preds = %invoke.cont102, %invoke.cont73
%66 = landingpad { i8*, i32 }
cleanup
%67 = extractvalue { i8*, i32 } %66, 0
store i8* %67, i8** %exn.slot, align 8
%68 = extractvalue { i8*, i32 } %66, 1
store i32 %68, i32* %ehselector.slot, align 4
br label %ehcleanup109
lpad81: ; preds = %invoke.cont80
%69 = landingpad { i8*, i32 }
cleanup
%70 = extractvalue { i8*, i32 } %69, 0
store i8* %70, i8** %exn.slot, align 8
%71 = extractvalue { i8*, i32 } %69, 1
store i32 %71, i32* %ehselector.slot, align 4
br label %ehcleanup107
lpad86: ; preds = %invoke.cont98, %invoke.cont82
%72 = landingpad { i8*, i32 }
cleanup
%73 = extractvalue { i8*, i32 } %72, 0
store i8* %73, i8** %exn.slot, align 8
%74 = extractvalue { i8*, i32 } %72, 1
store i32 %74, i32* %ehselector.slot, align 4
br label %ehcleanup105
lpad88: ; preds = %invoke.cont87
%75 = landingpad { i8*, i32 }
cleanup
%76 = extractvalue { i8*, i32 } %75, 0
store i8* %76, i8** %exn.slot, align 8
%77 = extractvalue { i8*, i32 } %75, 1
store i32 %77, i32* %ehselector.slot, align 4
br label %ehcleanup103
lpad93: ; preds = %invoke.cont96, %invoke.cont89
%78 = landingpad { i8*, i32 }
cleanup
%79 = extractvalue { i8*, i32 } %78, 0
store i8* %79, i8** %exn.slot, align 8
%80 = extractvalue { i8*, i32 } %78, 1
store i32 %80, i32* %ehselector.slot, align 4
br label %ehcleanup101
lpad95: ; preds = %invoke.cont94
%81 = landingpad { i8*, i32 }
cleanup
%82 = extractvalue { i8*, i32 } %81, 0
store i8* %82, i8** %exn.slot, align 8
%83 = extractvalue { i8*, i32 } %81, 1
store i32 %83, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp91)
to label %invoke.cont100 unwind label %terminate.lpad
invoke.cont100: ; preds = %lpad95
br label %ehcleanup101
ehcleanup101: ; preds = %invoke.cont100, %lpad93
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp92) #2
br label %ehcleanup103
ehcleanup103: ; preds = %ehcleanup101, %lpad88
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp84)
to label %invoke.cont104 unwind label %terminate.lpad
invoke.cont104: ; preds = %ehcleanup103
br label %ehcleanup105
ehcleanup105: ; preds = %invoke.cont104, %lpad86
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp85) #2
br label %ehcleanup107
ehcleanup107: ; preds = %ehcleanup105, %lpad81
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp77)
to label %invoke.cont108 unwind label %terminate.lpad
invoke.cont108: ; preds = %ehcleanup107
br label %ehcleanup109
ehcleanup109: ; preds = %invoke.cont108, %lpad79
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp78) #2
br label %eh.resume
lpad112: ; preds = %invoke.cont135, %invoke.cont106
%84 = landingpad { i8*, i32 }
cleanup
%85 = extractvalue { i8*, i32 } %84, 0
store i8* %85, i8** %exn.slot, align 8
%86 = extractvalue { i8*, i32 } %84, 1
store i32 %86, i32* %ehselector.slot, align 4
br label %ehcleanup142
lpad114: ; preds = %invoke.cont113
%87 = landingpad { i8*, i32 }
cleanup
%88 = extractvalue { i8*, i32 } %87, 0
store i8* %88, i8** %exn.slot, align 8
%89 = extractvalue { i8*, i32 } %87, 1
store i32 %89, i32* %ehselector.slot, align 4
br label %ehcleanup140
lpad119: ; preds = %invoke.cont131, %invoke.cont115
%90 = landingpad { i8*, i32 }
cleanup
%91 = extractvalue { i8*, i32 } %90, 0
store i8* %91, i8** %exn.slot, align 8
%92 = extractvalue { i8*, i32 } %90, 1
store i32 %92, i32* %ehselector.slot, align 4
br label %ehcleanup138
lpad121: ; preds = %invoke.cont120
%93 = landingpad { i8*, i32 }
cleanup
%94 = extractvalue { i8*, i32 } %93, 0
store i8* %94, i8** %exn.slot, align 8
%95 = extractvalue { i8*, i32 } %93, 1
store i32 %95, i32* %ehselector.slot, align 4
br label %ehcleanup136
lpad126: ; preds = %invoke.cont129, %invoke.cont122
%96 = landingpad { i8*, i32 }
cleanup
%97 = extractvalue { i8*, i32 } %96, 0
store i8* %97, i8** %exn.slot, align 8
%98 = extractvalue { i8*, i32 } %96, 1
store i32 %98, i32* %ehselector.slot, align 4
br label %ehcleanup134
lpad128: ; preds = %invoke.cont127
%99 = landingpad { i8*, i32 }
cleanup
%100 = extractvalue { i8*, i32 } %99, 0
store i8* %100, i8** %exn.slot, align 8
%101 = extractvalue { i8*, i32 } %99, 1
store i32 %101, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp124)
to label %invoke.cont133 unwind label %terminate.lpad
invoke.cont133: ; preds = %lpad128
br label %ehcleanup134
ehcleanup134: ; preds = %invoke.cont133, %lpad126
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp125) #2
br label %ehcleanup136
ehcleanup136: ; preds = %ehcleanup134, %lpad121
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp117)
to label %invoke.cont137 unwind label %terminate.lpad
invoke.cont137: ; preds = %ehcleanup136
br label %ehcleanup138
ehcleanup138: ; preds = %invoke.cont137, %lpad119
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp118) #2
br label %ehcleanup140
ehcleanup140: ; preds = %ehcleanup138, %lpad114
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp110)
to label %invoke.cont141 unwind label %terminate.lpad
invoke.cont141: ; preds = %ehcleanup140
br label %ehcleanup142
ehcleanup142: ; preds = %invoke.cont141, %lpad112
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp111) #2
br label %eh.resume
lpad145: ; preds = %invoke.cont157, %invoke.cont139
%102 = landingpad { i8*, i32 }
cleanup
%103 = extractvalue { i8*, i32 } %102, 0
store i8* %103, i8** %exn.slot, align 8
%104 = extractvalue { i8*, i32 } %102, 1
store i32 %104, i32* %ehselector.slot, align 4
br label %ehcleanup164
lpad147: ; preds = %invoke.cont146
%105 = landingpad { i8*, i32 }
cleanup
%106 = extractvalue { i8*, i32 } %105, 0
store i8* %106, i8** %exn.slot, align 8
%107 = extractvalue { i8*, i32 } %105, 1
store i32 %107, i32* %ehselector.slot, align 4
br label %ehcleanup162
lpad152: ; preds = %invoke.cont155, %invoke.cont148
%108 = landingpad { i8*, i32 }
cleanup
%109 = extractvalue { i8*, i32 } %108, 0
store i8* %109, i8** %exn.slot, align 8
%110 = extractvalue { i8*, i32 } %108, 1
store i32 %110, i32* %ehselector.slot, align 4
br label %ehcleanup160
lpad154: ; preds = %invoke.cont153
%111 = landingpad { i8*, i32 }
cleanup
%112 = extractvalue { i8*, i32 } %111, 0
store i8* %112, i8** %exn.slot, align 8
%113 = extractvalue { i8*, i32 } %111, 1
store i32 %113, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp150)
to label %invoke.cont159 unwind label %terminate.lpad
invoke.cont159: ; preds = %lpad154
br label %ehcleanup160
ehcleanup160: ; preds = %invoke.cont159, %lpad152
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp151) #2
br label %ehcleanup162
ehcleanup162: ; preds = %ehcleanup160, %lpad147
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp143)
to label %invoke.cont163 unwind label %terminate.lpad
invoke.cont163: ; preds = %ehcleanup162
br label %ehcleanup164
ehcleanup164: ; preds = %invoke.cont163, %lpad145
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp144) #2
br label %eh.resume
lpad166: ; preds = %if.then
%114 = landingpad { i8*, i32 }
cleanup
%115 = extractvalue { i8*, i32 } %114, 0
store i8* %115, i8** %exn.slot, align 8
%116 = extractvalue { i8*, i32 } %114, 1
store i32 %116, i32* %ehselector.slot, align 4
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp165) #2
br label %eh.resume
lpad171: ; preds = %invoke.cont183, %invoke.cont167
%117 = landingpad { i8*, i32 }
cleanup
%118 = extractvalue { i8*, i32 } %117, 0
store i8* %118, i8** %exn.slot, align 8
%119 = extractvalue { i8*, i32 } %117, 1
store i32 %119, i32* %ehselector.slot, align 4
br label %ehcleanup190
lpad173: ; preds = %invoke.cont172
%120 = landingpad { i8*, i32 }
cleanup
%121 = extractvalue { i8*, i32 } %120, 0
store i8* %121, i8** %exn.slot, align 8
%122 = extractvalue { i8*, i32 } %120, 1
store i32 %122, i32* %ehselector.slot, align 4
br label %ehcleanup188
lpad178: ; preds = %invoke.cont181, %invoke.cont174
%123 = landingpad { i8*, i32 }
cleanup
%124 = extractvalue { i8*, i32 } %123, 0
store i8* %124, i8** %exn.slot, align 8
%125 = extractvalue { i8*, i32 } %123, 1
store i32 %125, i32* %ehselector.slot, align 4
br label %ehcleanup186
lpad180: ; preds = %invoke.cont179
%126 = landingpad { i8*, i32 }
cleanup
%127 = extractvalue { i8*, i32 } %126, 0
store i8* %127, i8** %exn.slot, align 8
%128 = extractvalue { i8*, i32 } %126, 1
store i32 %128, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp176)
to label %invoke.cont185 unwind label %terminate.lpad
invoke.cont185: ; preds = %lpad180
br label %ehcleanup186
ehcleanup186: ; preds = %invoke.cont185, %lpad178
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp177) #2
br label %ehcleanup188
ehcleanup188: ; preds = %ehcleanup186, %lpad173
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp169)
to label %invoke.cont189 unwind label %terminate.lpad
invoke.cont189: ; preds = %ehcleanup188
br label %ehcleanup190
ehcleanup190: ; preds = %invoke.cont189, %lpad171
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp170) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %val)
to label %invoke.cont192 unwind label %terminate.lpad
invoke.cont192: ; preds = %ehcleanup190
br label %eh.resume
if.else: ; preds = %invoke.cont161
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp194) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %val193, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp194)
to label %invoke.cont196 unwind label %lpad195
invoke.cont196: ; preds = %if.else
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp194) #2
%129 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%130 = bitcast %class.YAML_Doc* %129 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp199) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp198, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp199)
to label %invoke.cont201 unwind label %lpad200
invoke.cont201: ; preds = %invoke.cont196
%call204 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %130, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp198)
to label %invoke.cont203 unwind label %lpad202
invoke.cont203: ; preds = %invoke.cont201
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp206) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp205, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp206)
to label %invoke.cont208 unwind label %lpad207
invoke.cont208: ; preds = %invoke.cont203
%call211 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call204, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp205, %"class.std::__cxx11::basic_string"* dereferenceable(32) %val193)
to label %invoke.cont210 unwind label %lpad209
invoke.cont210: ; preds = %invoke.cont208
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp205)
to label %invoke.cont212 unwind label %lpad207
invoke.cont212: ; preds = %invoke.cont210
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp206) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp198)
to label %invoke.cont216 unwind label %lpad200
invoke.cont216: ; preds = %invoke.cont212
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp199) #2
call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %val193)
br label %if.end
lpad195: ; preds = %if.else
%131 = landingpad { i8*, i32 }
cleanup
%132 = extractvalue { i8*, i32 } %131, 0
store i8* %132, i8** %exn.slot, align 8
%133 = extractvalue { i8*, i32 } %131, 1
store i32 %133, i32* %ehselector.slot, align 4
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp194) #2
br label %eh.resume
lpad200: ; preds = %invoke.cont212, %invoke.cont196
%134 = landingpad { i8*, i32 }
cleanup
%135 = extractvalue { i8*, i32 } %134, 0
store i8* %135, i8** %exn.slot, align 8
%136 = extractvalue { i8*, i32 } %134, 1
store i32 %136, i32* %ehselector.slot, align 4
br label %ehcleanup219
lpad202: ; preds = %invoke.cont201
%137 = landingpad { i8*, i32 }
cleanup
%138 = extractvalue { i8*, i32 } %137, 0
store i8* %138, i8** %exn.slot, align 8
%139 = extractvalue { i8*, i32 } %137, 1
store i32 %139, i32* %ehselector.slot, align 4
br label %ehcleanup217
lpad207: ; preds = %invoke.cont210, %invoke.cont203
%140 = landingpad { i8*, i32 }
cleanup
%141 = extractvalue { i8*, i32 } %140, 0
store i8* %141, i8** %exn.slot, align 8
%142 = extractvalue { i8*, i32 } %140, 1
store i32 %142, i32* %ehselector.slot, align 4
br label %ehcleanup215
lpad209: ; preds = %invoke.cont208
%143 = landingpad { i8*, i32 }
cleanup
%144 = extractvalue { i8*, i32 } %143, 0
store i8* %144, i8** %exn.slot, align 8
%145 = extractvalue { i8*, i32 } %143, 1
store i32 %145, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp205)
to label %invoke.cont214 unwind label %terminate.lpad
invoke.cont214: ; preds = %lpad209
br label %ehcleanup215
ehcleanup215: ; preds = %invoke.cont214, %lpad207
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp206) #2
br label %ehcleanup217
ehcleanup217: ; preds = %ehcleanup215, %lpad202
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp198)
to label %invoke.cont218 unwind label %terminate.lpad
invoke.cont218: ; preds = %ehcleanup217
br label %ehcleanup219
ehcleanup219: ; preds = %invoke.cont218, %lpad200
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp199) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %val193)
to label %invoke.cont221 unwind label %terminate.lpad
invoke.cont221: ; preds = %ehcleanup219
br label %eh.resume
if.end: ; preds = %invoke.cont216, %invoke.cont187
ret void
eh.resume: ; preds = %invoke.cont221, %lpad195, %invoke.cont192, %lpad166, %ehcleanup164, %ehcleanup142, %ehcleanup109, %ehcleanup76, %ehcleanup43, %ehcleanup13
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val222 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val222
terminate.lpad: ; preds = %ehcleanup219, %ehcleanup217, %lpad209, %ehcleanup190, %ehcleanup188, %lpad180, %ehcleanup162, %lpad154, %ehcleanup140, %ehcleanup136, %lpad128, %ehcleanup107, %ehcleanup103, %lpad95, %ehcleanup74, %ehcleanup70, %lpad62, %ehcleanup41, %ehcleanup35, %lpad29, %ehcleanup, %lpad6
%146 = landingpad { i8*, i32 }
catch i8* null
%147 = extractvalue { i8*, i32 } %146, 0
call void @__clang_call_terminate(i8* %147) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define void @_Z25add_configuration_to_yamlR8YAML_Docii(%class.YAML_Doc* dereferenceable(216) %doc, i32 %numprocs, i32 %numthreads) #3 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%doc.addr = alloca %class.YAML_Doc*, align 8
%numprocs.addr = alloca i32, align 4
%numthreads.addr = alloca i32, align 4
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp1 = alloca %"class.std::allocator", align 1
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%ref.tmp4 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp5 = alloca %"class.std::allocator", align 1
%ref.tmp17 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp18 = alloca %"class.std::allocator", align 1
%ref.tmp21 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp22 = alloca %"class.std::allocator", align 1
%ref.tmp36 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp37 = alloca %"class.std::allocator", align 1
%ref.tmp43 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp44 = alloca %"class.std::allocator", align 1
%ref.tmp47 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp48 = alloca %"class.std::allocator", align 1
%ref.tmp66 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp67 = alloca %"class.std::allocator", align 1
%ref.tmp73 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp74 = alloca %"class.std::allocator", align 1
%ref.tmp77 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp78 = alloca %"class.std::allocator", align 1
%ref.tmp96 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp97 = alloca %"class.std::allocator", align 1
%ref.tmp103 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp104 = alloca %"class.std::allocator", align 1
%ref.tmp107 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp108 = alloca %"class.std::allocator", align 1
%ref.tmp126 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp127 = alloca %"class.std::allocator", align 1
%ref.tmp133 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp134 = alloca %"class.std::allocator", align 1
%ref.tmp137 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp138 = alloca %"class.std::allocator", align 1
%ref.tmp156 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp157 = alloca %"class.std::allocator", align 1
%ref.tmp160 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp161 = alloca %"class.std::allocator", align 1
%ref.tmp175 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp176 = alloca %"class.std::allocator", align 1
%ref.tmp182 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp183 = alloca %"class.std::allocator", align 1
%ref.tmp186 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp187 = alloca %"class.std::allocator", align 1
%ref.tmp205 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp206 = alloca %"class.std::allocator", align 1
%ref.tmp212 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp213 = alloca %"class.std::allocator", align 1
%ref.tmp216 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp217 = alloca %"class.std::allocator", align 1
%ref.tmp235 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp236 = alloca %"class.std::allocator", align 1
%ref.tmp242 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp243 = alloca %"class.std::allocator", align 1
%ref.tmp246 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp247 = alloca %"class.std::allocator", align 1
%using_mpi = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp265 = alloca %"class.std::allocator", align 1
%ref.tmp269 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp270 = alloca %"class.std::allocator", align 1
%ref.tmp276 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp277 = alloca %"class.std::allocator", align 1
store %class.YAML_Doc* %doc, %class.YAML_Doc** %doc.addr, align 8
store i32 %numprocs, i32* %numprocs.addr, align 4
store i32 %numthreads, i32* %numthreads.addr, align 4
%0 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%1 = bitcast %class.YAML_Doc* %0 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp1) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%call = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %1, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp5) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp4, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.16, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp5)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont3
%2 = load i32, i32* %numprocs.addr, align 4
%call10 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(%class.YAML_Element* %call, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp4, i32 %2)
to label %invoke.cont9 unwind label %lpad8
invoke.cont9: ; preds = %invoke.cont7
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp4)
to label %invoke.cont11 unwind label %lpad6
invoke.cont11: ; preds = %invoke.cont9
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp5) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont13 unwind label %lpad
invoke.cont13: ; preds = %invoke.cont11
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp1) #2
%3 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%4 = bitcast %class.YAML_Doc* %3 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp18) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp17, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp18)
to label %invoke.cont20 unwind label %lpad19
invoke.cont20: ; preds = %invoke.cont13
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp22) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp21, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp22)
to label %invoke.cont24 unwind label %lpad23
invoke.cont24: ; preds = %invoke.cont20
%call27 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %4, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp17, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp21)
to label %invoke.cont26 unwind label %lpad25
invoke.cont26: ; preds = %invoke.cont24
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp21)
to label %invoke.cont28 unwind label %lpad23
invoke.cont28: ; preds = %invoke.cont26
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp22) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp17)
to label %invoke.cont32 unwind label %lpad19
invoke.cont32: ; preds = %invoke.cont28
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp18) #2
%5 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%6 = bitcast %class.YAML_Doc* %5 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp37) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp36, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp37)
to label %invoke.cont39 unwind label %lpad38
invoke.cont39: ; preds = %invoke.cont32
%call42 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %6, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp36)
to label %invoke.cont41 unwind label %lpad40
invoke.cont41: ; preds = %invoke.cont39
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp44) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp43, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp44)
to label %invoke.cont46 unwind label %lpad45
invoke.cont46: ; preds = %invoke.cont41
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp48) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp47, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp48)
to label %invoke.cont50 unwind label %lpad49
invoke.cont50: ; preds = %invoke.cont46
%call53 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call42, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp43, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp47)
to label %invoke.cont52 unwind label %lpad51
invoke.cont52: ; preds = %invoke.cont50
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp47)
to label %invoke.cont54 unwind label %lpad49
invoke.cont54: ; preds = %invoke.cont52
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp48) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp43)
to label %invoke.cont58 unwind label %lpad45
invoke.cont58: ; preds = %invoke.cont54
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp44) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp36)
to label %invoke.cont62 unwind label %lpad38
invoke.cont62: ; preds = %invoke.cont58
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp37) #2
%7 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%8 = bitcast %class.YAML_Doc* %7 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp67) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp66, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp67)
to label %invoke.cont69 unwind label %lpad68
invoke.cont69: ; preds = %invoke.cont62
%call72 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %8, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp66)
to label %invoke.cont71 unwind label %lpad70
invoke.cont71: ; preds = %invoke.cont69
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp74) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp73, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.20, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp74)
to label %invoke.cont76 unwind label %lpad75
invoke.cont76: ; preds = %invoke.cont71
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp78) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp77, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.21, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp78)
to label %invoke.cont80 unwind label %lpad79
invoke.cont80: ; preds = %invoke.cont76
%call83 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call72, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp73, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp77)
to label %invoke.cont82 unwind label %lpad81
invoke.cont82: ; preds = %invoke.cont80
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp77)
to label %invoke.cont84 unwind label %lpad79
invoke.cont84: ; preds = %invoke.cont82
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp78) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp73)
to label %invoke.cont88 unwind label %lpad75
invoke.cont88: ; preds = %invoke.cont84
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp74) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp66)
to label %invoke.cont92 unwind label %lpad68
invoke.cont92: ; preds = %invoke.cont88
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp67) #2
%9 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%10 = bitcast %class.YAML_Doc* %9 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp97) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp96, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp97)
to label %invoke.cont99 unwind label %lpad98
invoke.cont99: ; preds = %invoke.cont92
%call102 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %10, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp96)
to label %invoke.cont101 unwind label %lpad100
invoke.cont101: ; preds = %invoke.cont99
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp104) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp103, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp104)
to label %invoke.cont106 unwind label %lpad105
invoke.cont106: ; preds = %invoke.cont101
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp108) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp107, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.23, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp108)
to label %invoke.cont110 unwind label %lpad109
invoke.cont110: ; preds = %invoke.cont106
%call113 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call102, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp103, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp107)
to label %invoke.cont112 unwind label %lpad111
invoke.cont112: ; preds = %invoke.cont110
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp107)
to label %invoke.cont114 unwind label %lpad109
invoke.cont114: ; preds = %invoke.cont112
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp108) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp103)
to label %invoke.cont118 unwind label %lpad105
invoke.cont118: ; preds = %invoke.cont114
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp104) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp96)
to label %invoke.cont122 unwind label %lpad98
invoke.cont122: ; preds = %invoke.cont118
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp97) #2
%11 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%12 = bitcast %class.YAML_Doc* %11 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp127) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp126, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp127)
to label %invoke.cont129 unwind label %lpad128
invoke.cont129: ; preds = %invoke.cont122
%call132 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %12, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp126)
to label %invoke.cont131 unwind label %lpad130
invoke.cont131: ; preds = %invoke.cont129
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp134) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp133, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.24, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp134)
to label %invoke.cont136 unwind label %lpad135
invoke.cont136: ; preds = %invoke.cont131
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp138) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp137, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp138)
to label %invoke.cont140 unwind label %lpad139
invoke.cont140: ; preds = %invoke.cont136
%call143 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call132, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp133, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp137)
to label %invoke.cont142 unwind label %lpad141
invoke.cont142: ; preds = %invoke.cont140
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp137)
to label %invoke.cont144 unwind label %lpad139
invoke.cont144: ; preds = %invoke.cont142
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp138) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp133)
to label %invoke.cont148 unwind label %lpad135
invoke.cont148: ; preds = %invoke.cont144
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp134) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp126)
to label %invoke.cont152 unwind label %lpad128
invoke.cont152: ; preds = %invoke.cont148
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp127) #2
%13 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%14 = bitcast %class.YAML_Doc* %13 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp157) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp156, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp157)
to label %invoke.cont159 unwind label %lpad158
invoke.cont159: ; preds = %invoke.cont152
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp161) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp160, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp161)
to label %invoke.cont163 unwind label %lpad162
invoke.cont163: ; preds = %invoke.cont159
%call166 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %14, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp156, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp160)
to label %invoke.cont165 unwind label %lpad164
invoke.cont165: ; preds = %invoke.cont163
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp160)
to label %invoke.cont167 unwind label %lpad162
invoke.cont167: ; preds = %invoke.cont165
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp161) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp156)
to label %invoke.cont171 unwind label %lpad158
invoke.cont171: ; preds = %invoke.cont167
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp157) #2
%15 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%16 = bitcast %class.YAML_Doc* %15 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp176) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp175, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp176)
to label %invoke.cont178 unwind label %lpad177
invoke.cont178: ; preds = %invoke.cont171
%call181 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %16, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp175)
to label %invoke.cont180 unwind label %lpad179
invoke.cont180: ; preds = %invoke.cont178
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp183) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp182, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp183)
to label %invoke.cont185 unwind label %lpad184
invoke.cont185: ; preds = %invoke.cont180
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp187) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp186, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.28, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp187)
to label %invoke.cont189 unwind label %lpad188
invoke.cont189: ; preds = %invoke.cont185
%call192 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call181, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp182, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp186)
to label %invoke.cont191 unwind label %lpad190
invoke.cont191: ; preds = %invoke.cont189
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp186)
to label %invoke.cont193 unwind label %lpad188
invoke.cont193: ; preds = %invoke.cont191
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp187) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp182)
to label %invoke.cont197 unwind label %lpad184
invoke.cont197: ; preds = %invoke.cont193
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp183) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp175)
to label %invoke.cont201 unwind label %lpad177
invoke.cont201: ; preds = %invoke.cont197
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp176) #2
%17 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%18 = bitcast %class.YAML_Doc* %17 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp206) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp205, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp206)
to label %invoke.cont208 unwind label %lpad207
invoke.cont208: ; preds = %invoke.cont201
%call211 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %18, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp205)
to label %invoke.cont210 unwind label %lpad209
invoke.cont210: ; preds = %invoke.cont208
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp213) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp212, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.29, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp213)
to label %invoke.cont215 unwind label %lpad214
invoke.cont215: ; preds = %invoke.cont210
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp217) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp216, i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str.30, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp217)
to label %invoke.cont219 unwind label %lpad218
invoke.cont219: ; preds = %invoke.cont215
%call222 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call211, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp212, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp216)
to label %invoke.cont221 unwind label %lpad220
invoke.cont221: ; preds = %invoke.cont219
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp216)
to label %invoke.cont223 unwind label %lpad218
invoke.cont223: ; preds = %invoke.cont221
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp217) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp212)
to label %invoke.cont227 unwind label %lpad214
invoke.cont227: ; preds = %invoke.cont223
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp213) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp205)
to label %invoke.cont231 unwind label %lpad207
invoke.cont231: ; preds = %invoke.cont227
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp206) #2
%19 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%20 = bitcast %class.YAML_Doc* %19 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp236) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp235, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp236)
to label %invoke.cont238 unwind label %lpad237
invoke.cont238: ; preds = %invoke.cont231
%call241 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %20, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp235)
to label %invoke.cont240 unwind label %lpad239
invoke.cont240: ; preds = %invoke.cont238
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp243) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp242, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp243)
to label %invoke.cont245 unwind label %lpad244
invoke.cont245: ; preds = %invoke.cont240
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp247) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp246, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.32, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp247)
to label %invoke.cont249 unwind label %lpad248
invoke.cont249: ; preds = %invoke.cont245
%call252 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call241, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp242, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp246)
to label %invoke.cont251 unwind label %lpad250
invoke.cont251: ; preds = %invoke.cont249
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp246)
to label %invoke.cont253 unwind label %lpad248
invoke.cont253: ; preds = %invoke.cont251
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp247) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp242)
to label %invoke.cont257 unwind label %lpad244
invoke.cont257: ; preds = %invoke.cont253
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp243) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp235)
to label %invoke.cont261 unwind label %lpad237
invoke.cont261: ; preds = %invoke.cont257
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp236) #2
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp265) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %using_mpi, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.33, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp265)
to label %invoke.cont267 unwind label %lpad266
invoke.cont267: ; preds = %invoke.cont261
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp265) #2
%21 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%22 = bitcast %class.YAML_Doc* %21 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp270) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp269, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp270)
to label %invoke.cont272 unwind label %lpad271
invoke.cont272: ; preds = %invoke.cont267
%call275 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %22, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp269)
to label %invoke.cont274 unwind label %lpad273
invoke.cont274: ; preds = %invoke.cont272
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp277) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp276, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.34, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp277)
to label %invoke.cont279 unwind label %lpad278
invoke.cont279: ; preds = %invoke.cont274
%call282 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call275, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp276, %"class.std::__cxx11::basic_string"* dereferenceable(32) %using_mpi)
to label %invoke.cont281 unwind label %lpad280
invoke.cont281: ; preds = %invoke.cont279
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp276)
to label %invoke.cont283 unwind label %lpad278
invoke.cont283: ; preds = %invoke.cont281
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp277) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp269)
to label %invoke.cont287 unwind label %lpad271
invoke.cont287: ; preds = %invoke.cont283
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp270) #2
call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %using_mpi)
ret void
lpad: ; preds = %invoke.cont11, %entry
%23 = landingpad { i8*, i32 }
cleanup
%24 = extractvalue { i8*, i32 } %23, 0
store i8* %24, i8** %exn.slot, align 8
%25 = extractvalue { i8*, i32 } %23, 1
store i32 %25, i32* %ehselector.slot, align 4
br label %ehcleanup16
lpad2: ; preds = %invoke.cont
%26 = landingpad { i8*, i32 }
cleanup
%27 = extractvalue { i8*, i32 } %26, 0
store i8* %27, i8** %exn.slot, align 8
%28 = extractvalue { i8*, i32 } %26, 1
store i32 %28, i32* %ehselector.slot, align 4
br label %ehcleanup14
lpad6: ; preds = %invoke.cont9, %invoke.cont3
%29 = landingpad { i8*, i32 }
cleanup
%30 = extractvalue { i8*, i32 } %29, 0
store i8* %30, i8** %exn.slot, align 8
%31 = extractvalue { i8*, i32 } %29, 1
store i32 %31, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad8: ; preds = %invoke.cont7
%32 = landingpad { i8*, i32 }
cleanup
%33 = extractvalue { i8*, i32 } %32, 0
store i8* %33, i8** %exn.slot, align 8
%34 = extractvalue { i8*, i32 } %32, 1
store i32 %34, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp4)
to label %invoke.cont12 unwind label %terminate.lpad
invoke.cont12: ; preds = %lpad8
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont12, %lpad6
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp5) #2
br label %ehcleanup14
ehcleanup14: ; preds = %ehcleanup, %lpad2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont15 unwind label %terminate.lpad
invoke.cont15: ; preds = %ehcleanup14
br label %ehcleanup16
ehcleanup16: ; preds = %invoke.cont15, %lpad
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp1) #2
br label %eh.resume
lpad19: ; preds = %invoke.cont28, %invoke.cont13
%35 = landingpad { i8*, i32 }
cleanup
%36 = extractvalue { i8*, i32 } %35, 0
store i8* %36, i8** %exn.slot, align 8
%37 = extractvalue { i8*, i32 } %35, 1
store i32 %37, i32* %ehselector.slot, align 4
br label %ehcleanup35
lpad23: ; preds = %invoke.cont26, %invoke.cont20
%38 = landingpad { i8*, i32 }
cleanup
%39 = extractvalue { i8*, i32 } %38, 0
store i8* %39, i8** %exn.slot, align 8
%40 = extractvalue { i8*, i32 } %38, 1
store i32 %40, i32* %ehselector.slot, align 4
br label %ehcleanup31
lpad25: ; preds = %invoke.cont24
%41 = landingpad { i8*, i32 }
cleanup
%42 = extractvalue { i8*, i32 } %41, 0
store i8* %42, i8** %exn.slot, align 8
%43 = extractvalue { i8*, i32 } %41, 1
store i32 %43, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp21)
to label %invoke.cont30 unwind label %terminate.lpad
invoke.cont30: ; preds = %lpad25
br label %ehcleanup31
ehcleanup31: ; preds = %invoke.cont30, %lpad23
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp22) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp17)
to label %invoke.cont34 unwind label %terminate.lpad
invoke.cont34: ; preds = %ehcleanup31
br label %ehcleanup35
ehcleanup35: ; preds = %invoke.cont34, %lpad19
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp18) #2
br label %eh.resume
lpad38: ; preds = %invoke.cont58, %invoke.cont32
%44 = landingpad { i8*, i32 }
cleanup
%45 = extractvalue { i8*, i32 } %44, 0
store i8* %45, i8** %exn.slot, align 8
%46 = extractvalue { i8*, i32 } %44, 1
store i32 %46, i32* %ehselector.slot, align 4
br label %ehcleanup65
lpad40: ; preds = %invoke.cont39
%47 = landingpad { i8*, i32 }
cleanup
%48 = extractvalue { i8*, i32 } %47, 0
store i8* %48, i8** %exn.slot, align 8
%49 = extractvalue { i8*, i32 } %47, 1
store i32 %49, i32* %ehselector.slot, align 4
br label %ehcleanup63
lpad45: ; preds = %invoke.cont54, %invoke.cont41
%50 = landingpad { i8*, i32 }
cleanup
%51 = extractvalue { i8*, i32 } %50, 0
store i8* %51, i8** %exn.slot, align 8
%52 = extractvalue { i8*, i32 } %50, 1
store i32 %52, i32* %ehselector.slot, align 4
br label %ehcleanup61
lpad49: ; preds = %invoke.cont52, %invoke.cont46
%53 = landingpad { i8*, i32 }
cleanup
%54 = extractvalue { i8*, i32 } %53, 0
store i8* %54, i8** %exn.slot, align 8
%55 = extractvalue { i8*, i32 } %53, 1
store i32 %55, i32* %ehselector.slot, align 4
br label %ehcleanup57
lpad51: ; preds = %invoke.cont50
%56 = landingpad { i8*, i32 }
cleanup
%57 = extractvalue { i8*, i32 } %56, 0
store i8* %57, i8** %exn.slot, align 8
%58 = extractvalue { i8*, i32 } %56, 1
store i32 %58, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp47)
to label %invoke.cont56 unwind label %terminate.lpad
invoke.cont56: ; preds = %lpad51
br label %ehcleanup57
ehcleanup57: ; preds = %invoke.cont56, %lpad49
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp48) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp43)
to label %invoke.cont60 unwind label %terminate.lpad
invoke.cont60: ; preds = %ehcleanup57
br label %ehcleanup61
ehcleanup61: ; preds = %invoke.cont60, %lpad45
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp44) #2
br label %ehcleanup63
ehcleanup63: ; preds = %ehcleanup61, %lpad40
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp36)
to label %invoke.cont64 unwind label %terminate.lpad
invoke.cont64: ; preds = %ehcleanup63
br label %ehcleanup65
ehcleanup65: ; preds = %invoke.cont64, %lpad38
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp37) #2
br label %eh.resume
lpad68: ; preds = %invoke.cont88, %invoke.cont62
%59 = landingpad { i8*, i32 }
cleanup
%60 = extractvalue { i8*, i32 } %59, 0
store i8* %60, i8** %exn.slot, align 8
%61 = extractvalue { i8*, i32 } %59, 1
store i32 %61, i32* %ehselector.slot, align 4
br label %ehcleanup95
lpad70: ; preds = %invoke.cont69
%62 = landingpad { i8*, i32 }
cleanup
%63 = extractvalue { i8*, i32 } %62, 0
store i8* %63, i8** %exn.slot, align 8
%64 = extractvalue { i8*, i32 } %62, 1
store i32 %64, i32* %ehselector.slot, align 4
br label %ehcleanup93
lpad75: ; preds = %invoke.cont84, %invoke.cont71
%65 = landingpad { i8*, i32 }
cleanup
%66 = extractvalue { i8*, i32 } %65, 0
store i8* %66, i8** %exn.slot, align 8
%67 = extractvalue { i8*, i32 } %65, 1
store i32 %67, i32* %ehselector.slot, align 4
br label %ehcleanup91
lpad79: ; preds = %invoke.cont82, %invoke.cont76
%68 = landingpad { i8*, i32 }
cleanup
%69 = extractvalue { i8*, i32 } %68, 0
store i8* %69, i8** %exn.slot, align 8
%70 = extractvalue { i8*, i32 } %68, 1
store i32 %70, i32* %ehselector.slot, align 4
br label %ehcleanup87
lpad81: ; preds = %invoke.cont80
%71 = landingpad { i8*, i32 }
cleanup
%72 = extractvalue { i8*, i32 } %71, 0
store i8* %72, i8** %exn.slot, align 8
%73 = extractvalue { i8*, i32 } %71, 1
store i32 %73, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp77)
to label %invoke.cont86 unwind label %terminate.lpad
invoke.cont86: ; preds = %lpad81
br label %ehcleanup87
ehcleanup87: ; preds = %invoke.cont86, %lpad79
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp78) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp73)
to label %invoke.cont90 unwind label %terminate.lpad
invoke.cont90: ; preds = %ehcleanup87
br label %ehcleanup91
ehcleanup91: ; preds = %invoke.cont90, %lpad75
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp74) #2
br label %ehcleanup93
ehcleanup93: ; preds = %ehcleanup91, %lpad70
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp66)
to label %invoke.cont94 unwind label %terminate.lpad
invoke.cont94: ; preds = %ehcleanup93
br label %ehcleanup95
ehcleanup95: ; preds = %invoke.cont94, %lpad68
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp67) #2
br label %eh.resume
lpad98: ; preds = %invoke.cont118, %invoke.cont92
%74 = landingpad { i8*, i32 }
cleanup
%75 = extractvalue { i8*, i32 } %74, 0
store i8* %75, i8** %exn.slot, align 8
%76 = extractvalue { i8*, i32 } %74, 1
store i32 %76, i32* %ehselector.slot, align 4
br label %ehcleanup125
lpad100: ; preds = %invoke.cont99
%77 = landingpad { i8*, i32 }
cleanup
%78 = extractvalue { i8*, i32 } %77, 0
store i8* %78, i8** %exn.slot, align 8
%79 = extractvalue { i8*, i32 } %77, 1
store i32 %79, i32* %ehselector.slot, align 4
br label %ehcleanup123
lpad105: ; preds = %invoke.cont114, %invoke.cont101
%80 = landingpad { i8*, i32 }
cleanup
%81 = extractvalue { i8*, i32 } %80, 0
store i8* %81, i8** %exn.slot, align 8
%82 = extractvalue { i8*, i32 } %80, 1
store i32 %82, i32* %ehselector.slot, align 4
br label %ehcleanup121
lpad109: ; preds = %invoke.cont112, %invoke.cont106
%83 = landingpad { i8*, i32 }
cleanup
%84 = extractvalue { i8*, i32 } %83, 0
store i8* %84, i8** %exn.slot, align 8
%85 = extractvalue { i8*, i32 } %83, 1
store i32 %85, i32* %ehselector.slot, align 4
br label %ehcleanup117
lpad111: ; preds = %invoke.cont110
%86 = landingpad { i8*, i32 }
cleanup
%87 = extractvalue { i8*, i32 } %86, 0
store i8* %87, i8** %exn.slot, align 8
%88 = extractvalue { i8*, i32 } %86, 1
store i32 %88, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp107)
to label %invoke.cont116 unwind label %terminate.lpad
invoke.cont116: ; preds = %lpad111
br label %ehcleanup117
ehcleanup117: ; preds = %invoke.cont116, %lpad109
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp108) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp103)
to label %invoke.cont120 unwind label %terminate.lpad
invoke.cont120: ; preds = %ehcleanup117
br label %ehcleanup121
ehcleanup121: ; preds = %invoke.cont120, %lpad105
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp104) #2
br label %ehcleanup123
ehcleanup123: ; preds = %ehcleanup121, %lpad100
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp96)
to label %invoke.cont124 unwind label %terminate.lpad
invoke.cont124: ; preds = %ehcleanup123
br label %ehcleanup125
ehcleanup125: ; preds = %invoke.cont124, %lpad98
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp97) #2
br label %eh.resume
lpad128: ; preds = %invoke.cont148, %invoke.cont122
%89 = landingpad { i8*, i32 }
cleanup
%90 = extractvalue { i8*, i32 } %89, 0
store i8* %90, i8** %exn.slot, align 8
%91 = extractvalue { i8*, i32 } %89, 1
store i32 %91, i32* %ehselector.slot, align 4
br label %ehcleanup155
lpad130: ; preds = %invoke.cont129
%92 = landingpad { i8*, i32 }
cleanup
%93 = extractvalue { i8*, i32 } %92, 0
store i8* %93, i8** %exn.slot, align 8
%94 = extractvalue { i8*, i32 } %92, 1
store i32 %94, i32* %ehselector.slot, align 4
br label %ehcleanup153
lpad135: ; preds = %invoke.cont144, %invoke.cont131
%95 = landingpad { i8*, i32 }
cleanup
%96 = extractvalue { i8*, i32 } %95, 0
store i8* %96, i8** %exn.slot, align 8
%97 = extractvalue { i8*, i32 } %95, 1
store i32 %97, i32* %ehselector.slot, align 4
br label %ehcleanup151
lpad139: ; preds = %invoke.cont142, %invoke.cont136
%98 = landingpad { i8*, i32 }
cleanup
%99 = extractvalue { i8*, i32 } %98, 0
store i8* %99, i8** %exn.slot, align 8
%100 = extractvalue { i8*, i32 } %98, 1
store i32 %100, i32* %ehselector.slot, align 4
br label %ehcleanup147
lpad141: ; preds = %invoke.cont140
%101 = landingpad { i8*, i32 }
cleanup
%102 = extractvalue { i8*, i32 } %101, 0
store i8* %102, i8** %exn.slot, align 8
%103 = extractvalue { i8*, i32 } %101, 1
store i32 %103, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp137)
to label %invoke.cont146 unwind label %terminate.lpad
invoke.cont146: ; preds = %lpad141
br label %ehcleanup147
ehcleanup147: ; preds = %invoke.cont146, %lpad139
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp138) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp133)
to label %invoke.cont150 unwind label %terminate.lpad
invoke.cont150: ; preds = %ehcleanup147
br label %ehcleanup151
ehcleanup151: ; preds = %invoke.cont150, %lpad135
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp134) #2
br label %ehcleanup153
ehcleanup153: ; preds = %ehcleanup151, %lpad130
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp126)
to label %invoke.cont154 unwind label %terminate.lpad
invoke.cont154: ; preds = %ehcleanup153
br label %ehcleanup155
ehcleanup155: ; preds = %invoke.cont154, %lpad128
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp127) #2
br label %eh.resume
lpad158: ; preds = %invoke.cont167, %invoke.cont152
%104 = landingpad { i8*, i32 }
cleanup
%105 = extractvalue { i8*, i32 } %104, 0
store i8* %105, i8** %exn.slot, align 8
%106 = extractvalue { i8*, i32 } %104, 1
store i32 %106, i32* %ehselector.slot, align 4
br label %ehcleanup174
lpad162: ; preds = %invoke.cont165, %invoke.cont159
%107 = landingpad { i8*, i32 }
cleanup
%108 = extractvalue { i8*, i32 } %107, 0
store i8* %108, i8** %exn.slot, align 8
%109 = extractvalue { i8*, i32 } %107, 1
store i32 %109, i32* %ehselector.slot, align 4
br label %ehcleanup170
lpad164: ; preds = %invoke.cont163
%110 = landingpad { i8*, i32 }
cleanup
%111 = extractvalue { i8*, i32 } %110, 0
store i8* %111, i8** %exn.slot, align 8
%112 = extractvalue { i8*, i32 } %110, 1
store i32 %112, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp160)
to label %invoke.cont169 unwind label %terminate.lpad
invoke.cont169: ; preds = %lpad164
br label %ehcleanup170
ehcleanup170: ; preds = %invoke.cont169, %lpad162
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp161) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp156)
to label %invoke.cont173 unwind label %terminate.lpad
invoke.cont173: ; preds = %ehcleanup170
br label %ehcleanup174
ehcleanup174: ; preds = %invoke.cont173, %lpad158
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp157) #2
br label %eh.resume
lpad177: ; preds = %invoke.cont197, %invoke.cont171
%113 = landingpad { i8*, i32 }
cleanup
%114 = extractvalue { i8*, i32 } %113, 0
store i8* %114, i8** %exn.slot, align 8
%115 = extractvalue { i8*, i32 } %113, 1
store i32 %115, i32* %ehselector.slot, align 4
br label %ehcleanup204
lpad179: ; preds = %invoke.cont178
%116 = landingpad { i8*, i32 }
cleanup
%117 = extractvalue { i8*, i32 } %116, 0
store i8* %117, i8** %exn.slot, align 8
%118 = extractvalue { i8*, i32 } %116, 1
store i32 %118, i32* %ehselector.slot, align 4
br label %ehcleanup202
lpad184: ; preds = %invoke.cont193, %invoke.cont180
%119 = landingpad { i8*, i32 }
cleanup
%120 = extractvalue { i8*, i32 } %119, 0
store i8* %120, i8** %exn.slot, align 8
%121 = extractvalue { i8*, i32 } %119, 1
store i32 %121, i32* %ehselector.slot, align 4
br label %ehcleanup200
lpad188: ; preds = %invoke.cont191, %invoke.cont185
%122 = landingpad { i8*, i32 }
cleanup
%123 = extractvalue { i8*, i32 } %122, 0
store i8* %123, i8** %exn.slot, align 8
%124 = extractvalue { i8*, i32 } %122, 1
store i32 %124, i32* %ehselector.slot, align 4
br label %ehcleanup196
lpad190: ; preds = %invoke.cont189
%125 = landingpad { i8*, i32 }
cleanup
%126 = extractvalue { i8*, i32 } %125, 0
store i8* %126, i8** %exn.slot, align 8
%127 = extractvalue { i8*, i32 } %125, 1
store i32 %127, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp186)
to label %invoke.cont195 unwind label %terminate.lpad
invoke.cont195: ; preds = %lpad190
br label %ehcleanup196
ehcleanup196: ; preds = %invoke.cont195, %lpad188
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp187) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp182)
to label %invoke.cont199 unwind label %terminate.lpad
invoke.cont199: ; preds = %ehcleanup196
br label %ehcleanup200
ehcleanup200: ; preds = %invoke.cont199, %lpad184
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp183) #2
br label %ehcleanup202
ehcleanup202: ; preds = %ehcleanup200, %lpad179
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp175)
to label %invoke.cont203 unwind label %terminate.lpad
invoke.cont203: ; preds = %ehcleanup202
br label %ehcleanup204
ehcleanup204: ; preds = %invoke.cont203, %lpad177
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp176) #2
br label %eh.resume
lpad207: ; preds = %invoke.cont227, %invoke.cont201
%128 = landingpad { i8*, i32 }
cleanup
%129 = extractvalue { i8*, i32 } %128, 0
store i8* %129, i8** %exn.slot, align 8
%130 = extractvalue { i8*, i32 } %128, 1
store i32 %130, i32* %ehselector.slot, align 4
br label %ehcleanup234
lpad209: ; preds = %invoke.cont208
%131 = landingpad { i8*, i32 }
cleanup
%132 = extractvalue { i8*, i32 } %131, 0
store i8* %132, i8** %exn.slot, align 8
%133 = extractvalue { i8*, i32 } %131, 1
store i32 %133, i32* %ehselector.slot, align 4
br label %ehcleanup232
lpad214: ; preds = %invoke.cont223, %invoke.cont210
%134 = landingpad { i8*, i32 }
cleanup
%135 = extractvalue { i8*, i32 } %134, 0
store i8* %135, i8** %exn.slot, align 8
%136 = extractvalue { i8*, i32 } %134, 1
store i32 %136, i32* %ehselector.slot, align 4
br label %ehcleanup230
lpad218: ; preds = %invoke.cont221, %invoke.cont215
%137 = landingpad { i8*, i32 }
cleanup
%138 = extractvalue { i8*, i32 } %137, 0
store i8* %138, i8** %exn.slot, align 8
%139 = extractvalue { i8*, i32 } %137, 1
store i32 %139, i32* %ehselector.slot, align 4
br label %ehcleanup226
lpad220: ; preds = %invoke.cont219
%140 = landingpad { i8*, i32 }
cleanup
%141 = extractvalue { i8*, i32 } %140, 0
store i8* %141, i8** %exn.slot, align 8
%142 = extractvalue { i8*, i32 } %140, 1
store i32 %142, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp216)
to label %invoke.cont225 unwind label %terminate.lpad
invoke.cont225: ; preds = %lpad220
br label %ehcleanup226
ehcleanup226: ; preds = %invoke.cont225, %lpad218
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp217) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp212)
to label %invoke.cont229 unwind label %terminate.lpad
invoke.cont229: ; preds = %ehcleanup226
br label %ehcleanup230
ehcleanup230: ; preds = %invoke.cont229, %lpad214
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp213) #2
br label %ehcleanup232
ehcleanup232: ; preds = %ehcleanup230, %lpad209
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp205)
to label %invoke.cont233 unwind label %terminate.lpad
invoke.cont233: ; preds = %ehcleanup232
br label %ehcleanup234
ehcleanup234: ; preds = %invoke.cont233, %lpad207
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp206) #2
br label %eh.resume
lpad237: ; preds = %invoke.cont257, %invoke.cont231
%143 = landingpad { i8*, i32 }
cleanup
%144 = extractvalue { i8*, i32 } %143, 0
store i8* %144, i8** %exn.slot, align 8
%145 = extractvalue { i8*, i32 } %143, 1
store i32 %145, i32* %ehselector.slot, align 4
br label %ehcleanup264
lpad239: ; preds = %invoke.cont238
%146 = landingpad { i8*, i32 }
cleanup
%147 = extractvalue { i8*, i32 } %146, 0
store i8* %147, i8** %exn.slot, align 8
%148 = extractvalue { i8*, i32 } %146, 1
store i32 %148, i32* %ehselector.slot, align 4
br label %ehcleanup262
lpad244: ; preds = %invoke.cont253, %invoke.cont240
%149 = landingpad { i8*, i32 }
cleanup
%150 = extractvalue { i8*, i32 } %149, 0
store i8* %150, i8** %exn.slot, align 8
%151 = extractvalue { i8*, i32 } %149, 1
store i32 %151, i32* %ehselector.slot, align 4
br label %ehcleanup260
lpad248: ; preds = %invoke.cont251, %invoke.cont245
%152 = landingpad { i8*, i32 }
cleanup
%153 = extractvalue { i8*, i32 } %152, 0
store i8* %153, i8** %exn.slot, align 8
%154 = extractvalue { i8*, i32 } %152, 1
store i32 %154, i32* %ehselector.slot, align 4
br label %ehcleanup256
lpad250: ; preds = %invoke.cont249
%155 = landingpad { i8*, i32 }
cleanup
%156 = extractvalue { i8*, i32 } %155, 0
store i8* %156, i8** %exn.slot, align 8
%157 = extractvalue { i8*, i32 } %155, 1
store i32 %157, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp246)
to label %invoke.cont255 unwind label %terminate.lpad
invoke.cont255: ; preds = %lpad250
br label %ehcleanup256
ehcleanup256: ; preds = %invoke.cont255, %lpad248
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp247) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp242)
to label %invoke.cont259 unwind label %terminate.lpad
invoke.cont259: ; preds = %ehcleanup256
br label %ehcleanup260
ehcleanup260: ; preds = %invoke.cont259, %lpad244
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp243) #2
br label %ehcleanup262
ehcleanup262: ; preds = %ehcleanup260, %lpad239
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp235)
to label %invoke.cont263 unwind label %terminate.lpad
invoke.cont263: ; preds = %ehcleanup262
br label %ehcleanup264
ehcleanup264: ; preds = %invoke.cont263, %lpad237
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp236) #2
br label %eh.resume
lpad266: ; preds = %invoke.cont261
%158 = landingpad { i8*, i32 }
cleanup
%159 = extractvalue { i8*, i32 } %158, 0
store i8* %159, i8** %exn.slot, align 8
%160 = extractvalue { i8*, i32 } %158, 1
store i32 %160, i32* %ehselector.slot, align 4
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp265) #2
br label %eh.resume
lpad271: ; preds = %invoke.cont283, %invoke.cont267
%161 = landingpad { i8*, i32 }
cleanup
%162 = extractvalue { i8*, i32 } %161, 0
store i8* %162, i8** %exn.slot, align 8
%163 = extractvalue { i8*, i32 } %161, 1
store i32 %163, i32* %ehselector.slot, align 4
br label %ehcleanup290
lpad273: ; preds = %invoke.cont272
%164 = landingpad { i8*, i32 }
cleanup
%165 = extractvalue { i8*, i32 } %164, 0
store i8* %165, i8** %exn.slot, align 8
%166 = extractvalue { i8*, i32 } %164, 1
store i32 %166, i32* %ehselector.slot, align 4
br label %ehcleanup288
lpad278: ; preds = %invoke.cont281, %invoke.cont274
%167 = landingpad { i8*, i32 }
cleanup
%168 = extractvalue { i8*, i32 } %167, 0
store i8* %168, i8** %exn.slot, align 8
%169 = extractvalue { i8*, i32 } %167, 1
store i32 %169, i32* %ehselector.slot, align 4
br label %ehcleanup286
lpad280: ; preds = %invoke.cont279
%170 = landingpad { i8*, i32 }
cleanup
%171 = extractvalue { i8*, i32 } %170, 0
store i8* %171, i8** %exn.slot, align 8
%172 = extractvalue { i8*, i32 } %170, 1
store i32 %172, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp276)
to label %invoke.cont285 unwind label %terminate.lpad
invoke.cont285: ; preds = %lpad280
br label %ehcleanup286
ehcleanup286: ; preds = %invoke.cont285, %lpad278
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp277) #2
br label %ehcleanup288
ehcleanup288: ; preds = %ehcleanup286, %lpad273
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp269)
to label %invoke.cont289 unwind label %terminate.lpad
invoke.cont289: ; preds = %ehcleanup288
br label %ehcleanup290
ehcleanup290: ; preds = %invoke.cont289, %lpad271
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp270) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %using_mpi)
to label %invoke.cont292 unwind label %terminate.lpad
invoke.cont292: ; preds = %ehcleanup290
br label %eh.resume
eh.resume: ; preds = %invoke.cont292, %lpad266, %ehcleanup264, %ehcleanup234, %ehcleanup204, %ehcleanup174, %ehcleanup155, %ehcleanup125, %ehcleanup95, %ehcleanup65, %ehcleanup35, %ehcleanup16
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val293 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val293
terminate.lpad: ; preds = %ehcleanup290, %ehcleanup288, %lpad280, %ehcleanup262, %ehcleanup256, %lpad250, %ehcleanup232, %ehcleanup226, %lpad220, %ehcleanup202, %ehcleanup196, %lpad190, %ehcleanup170, %lpad164, %ehcleanup153, %ehcleanup147, %lpad141, %ehcleanup123, %ehcleanup117, %lpad111, %ehcleanup93, %ehcleanup87, %lpad81, %ehcleanup63, %ehcleanup57, %lpad51, %ehcleanup31, %lpad25, %ehcleanup14, %lpad8
%173 = landingpad { i8*, i32 }
catch i8* null
%174 = extractvalue { i8*, i32 } %173, 0
call void @__clang_call_terminate(i8* %174) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define void @_Z22add_timestring_to_yamlR8YAML_Doc(%class.YAML_Doc* dereferenceable(216) %doc) #3 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%doc.addr = alloca %class.YAML_Doc*, align 8
%rawtime = alloca i64, align 8
%timeinfo = alloca %struct.tm*, align 8
%osstr = alloca %"class.std::__cxx11::basic_ostringstream", align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%timestring = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp57 = alloca %"class.std::allocator", align 1
store %class.YAML_Doc* %doc, %class.YAML_Doc** %doc.addr, align 8
%call = call i64 @time(i64* %rawtime) #2
%call1 = call %struct.tm* @localtime(i64* %rawtime) #2
store %struct.tm* %call1, %struct.tm** %timeinfo, align 8
call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode(%"class.std::__cxx11::basic_ostringstream"* %osstr, i32 16)
%0 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8**
%vtable = load i8*, i8** %0, align 8
%vbase.offset.ptr = getelementptr i8, i8* %vtable, i64 -24
%1 = bitcast i8* %vbase.offset.ptr to i64*
%vbase.offset = load i64, i64* %1, align 8
%2 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8*
%add.ptr = getelementptr inbounds i8, i8* %2, i64 %vbase.offset
%3 = bitcast i8* %add.ptr to %"class.std::basic_ios"*
%call2 = invoke signext i8 @_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc(%"class.std::basic_ios"* %3, i8 signext 48)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%4 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%5 = load %struct.tm*, %struct.tm** %timeinfo, align 8
%tm_year = getelementptr inbounds %struct.tm, %struct.tm* %5, i32 0, i32 5
%6 = load i32, i32* %tm_year, align 4
%add = add nsw i32 %6, 1900
%call4 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %4, i32 %add)
to label %invoke.cont3 unwind label %lpad
invoke.cont3: ; preds = %invoke.cont
%call6 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.35, i32 0, i32 0))
to label %invoke.cont5 unwind label %lpad
invoke.cont5: ; preds = %invoke.cont3
%7 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8**
%vtable7 = load i8*, i8** %7, align 8
%vbase.offset.ptr8 = getelementptr i8, i8* %vtable7, i64 -24
%8 = bitcast i8* %vbase.offset.ptr8 to i64*
%vbase.offset9 = load i64, i64* %8, align 8
%9 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8*
%add.ptr10 = getelementptr inbounds i8, i8* %9, i64 %vbase.offset9
%10 = bitcast i8* %add.ptr10 to %"class.std::ios_base"*
%call12 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %10, i64 2)
to label %invoke.cont11 unwind label %lpad
invoke.cont11: ; preds = %invoke.cont5
%11 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%12 = load %struct.tm*, %struct.tm** %timeinfo, align 8
%tm_mon = getelementptr inbounds %struct.tm, %struct.tm* %12, i32 0, i32 4
%13 = load i32, i32* %tm_mon, align 8
%add13 = add nsw i32 %13, 1
%call15 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %11, i32 %add13)
to label %invoke.cont14 unwind label %lpad
invoke.cont14: ; preds = %invoke.cont11
%call17 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call15, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.35, i32 0, i32 0))
to label %invoke.cont16 unwind label %lpad
invoke.cont16: ; preds = %invoke.cont14
%14 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8**
%vtable18 = load i8*, i8** %14, align 8
%vbase.offset.ptr19 = getelementptr i8, i8* %vtable18, i64 -24
%15 = bitcast i8* %vbase.offset.ptr19 to i64*
%vbase.offset20 = load i64, i64* %15, align 8
%16 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8*
%add.ptr21 = getelementptr inbounds i8, i8* %16, i64 %vbase.offset20
%17 = bitcast i8* %add.ptr21 to %"class.std::ios_base"*
%call23 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %17, i64 2)
to label %invoke.cont22 unwind label %lpad
invoke.cont22: ; preds = %invoke.cont16
%18 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%19 = load %struct.tm*, %struct.tm** %timeinfo, align 8
%tm_mday = getelementptr inbounds %struct.tm, %struct.tm* %19, i32 0, i32 3
%20 = load i32, i32* %tm_mday, align 4
%call25 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %18, i32 %20)
to label %invoke.cont24 unwind label %lpad
invoke.cont24: ; preds = %invoke.cont22
%call27 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call25, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.36, i32 0, i32 0))
to label %invoke.cont26 unwind label %lpad
invoke.cont26: ; preds = %invoke.cont24
%21 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8**
%vtable28 = load i8*, i8** %21, align 8
%vbase.offset.ptr29 = getelementptr i8, i8* %vtable28, i64 -24
%22 = bitcast i8* %vbase.offset.ptr29 to i64*
%vbase.offset30 = load i64, i64* %22, align 8
%23 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8*
%add.ptr31 = getelementptr inbounds i8, i8* %23, i64 %vbase.offset30
%24 = bitcast i8* %add.ptr31 to %"class.std::ios_base"*
%call33 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %24, i64 2)
to label %invoke.cont32 unwind label %lpad
invoke.cont32: ; preds = %invoke.cont26
%25 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%26 = load %struct.tm*, %struct.tm** %timeinfo, align 8
%tm_hour = getelementptr inbounds %struct.tm, %struct.tm* %26, i32 0, i32 2
%27 = load i32, i32* %tm_hour, align 8
%call35 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %25, i32 %27)
to label %invoke.cont34 unwind label %lpad
invoke.cont34: ; preds = %invoke.cont32
%call37 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call35, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.35, i32 0, i32 0))
to label %invoke.cont36 unwind label %lpad
invoke.cont36: ; preds = %invoke.cont34
%28 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8**
%vtable38 = load i8*, i8** %28, align 8
%vbase.offset.ptr39 = getelementptr i8, i8* %vtable38, i64 -24
%29 = bitcast i8* %vbase.offset.ptr39 to i64*
%vbase.offset40 = load i64, i64* %29, align 8
%30 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8*
%add.ptr41 = getelementptr inbounds i8, i8* %30, i64 %vbase.offset40
%31 = bitcast i8* %add.ptr41 to %"class.std::ios_base"*
%call43 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %31, i64 2)
to label %invoke.cont42 unwind label %lpad
invoke.cont42: ; preds = %invoke.cont36
%32 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%33 = load %struct.tm*, %struct.tm** %timeinfo, align 8
%tm_min = getelementptr inbounds %struct.tm, %struct.tm* %33, i32 0, i32 1
%34 = load i32, i32* %tm_min, align 4
%call45 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %32, i32 %34)
to label %invoke.cont44 unwind label %lpad
invoke.cont44: ; preds = %invoke.cont42
%call47 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call45, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.35, i32 0, i32 0))
to label %invoke.cont46 unwind label %lpad
invoke.cont46: ; preds = %invoke.cont44
%35 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8**
%vtable48 = load i8*, i8** %35, align 8
%vbase.offset.ptr49 = getelementptr i8, i8* %vtable48, i64 -24
%36 = bitcast i8* %vbase.offset.ptr49 to i64*
%vbase.offset50 = load i64, i64* %36, align 8
%37 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to i8*
%add.ptr51 = getelementptr inbounds i8, i8* %37, i64 %vbase.offset50
%38 = bitcast i8* %add.ptr51 to %"class.std::ios_base"*
%call53 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %38, i64 2)
to label %invoke.cont52 unwind label %lpad
invoke.cont52: ; preds = %invoke.cont46
%39 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%40 = load %struct.tm*, %struct.tm** %timeinfo, align 8
%tm_sec = getelementptr inbounds %struct.tm, %struct.tm* %40, i32 0, i32 0
%41 = load i32, i32* %tm_sec, align 8
%call55 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %39, i32 %41)
to label %invoke.cont54 unwind label %lpad
invoke.cont54: ; preds = %invoke.cont52
invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* sret %timestring, %"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont56 unwind label %lpad
invoke.cont56: ; preds = %invoke.cont54
%42 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%43 = bitcast %class.YAML_Doc* %42 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp57) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.37, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp57)
to label %invoke.cont59 unwind label %lpad58
invoke.cont59: ; preds = %invoke.cont56
%call62 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %43, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp, %"class.std::__cxx11::basic_string"* dereferenceable(32) %timestring)
to label %invoke.cont61 unwind label %lpad60
invoke.cont61: ; preds = %invoke.cont59
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont63 unwind label %lpad58
invoke.cont63: ; preds = %invoke.cont61
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp57) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %timestring)
to label %invoke.cont65 unwind label %lpad
invoke.cont65: ; preds = %invoke.cont63
call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_ostringstream"* %osstr)
ret void
lpad: ; preds = %invoke.cont63, %invoke.cont54, %invoke.cont52, %invoke.cont46, %invoke.cont44, %invoke.cont42, %invoke.cont36, %invoke.cont34, %invoke.cont32, %invoke.cont26, %invoke.cont24, %invoke.cont22, %invoke.cont16, %invoke.cont14, %invoke.cont11, %invoke.cont5, %invoke.cont3, %invoke.cont, %entry
%44 = landingpad { i8*, i32 }
cleanup
%45 = extractvalue { i8*, i32 } %44, 0
store i8* %45, i8** %exn.slot, align 8
%46 = extractvalue { i8*, i32 } %44, 1
store i32 %46, i32* %ehselector.slot, align 4
br label %ehcleanup68
lpad58: ; preds = %invoke.cont61, %invoke.cont56
%47 = landingpad { i8*, i32 }
cleanup
%48 = extractvalue { i8*, i32 } %47, 0
store i8* %48, i8** %exn.slot, align 8
%49 = extractvalue { i8*, i32 } %47, 1
store i32 %49, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad60: ; preds = %invoke.cont59
%50 = landingpad { i8*, i32 }
cleanup
%51 = extractvalue { i8*, i32 } %50, 0
store i8* %51, i8** %exn.slot, align 8
%52 = extractvalue { i8*, i32 } %50, 1
store i32 %52, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont64 unwind label %terminate.lpad
invoke.cont64: ; preds = %lpad60
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont64, %lpad58
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp57) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %timestring)
to label %invoke.cont67 unwind label %terminate.lpad
invoke.cont67: ; preds = %ehcleanup
br label %ehcleanup68
ehcleanup68: ; preds = %invoke.cont67, %lpad
invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont69 unwind label %terminate.lpad
invoke.cont69: ; preds = %ehcleanup68
br label %eh.resume
eh.resume: ; preds = %invoke.cont69
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val70 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val70
terminate.lpad: ; preds = %ehcleanup68, %ehcleanup, %lpad60
%53 = landingpad { i8*, i32 }
catch i8* null
%54 = extractvalue { i8*, i32 } %53, 0
call void @__clang_call_terminate(i8* %54) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE6driverIdiiEEvRK3BoxRS1_RNS_10ParametersER8YAML_Doc(%struct.Box* dereferenceable(24) %global_box, %struct.Box* dereferenceable(24) %my_box, %"struct.miniFE::Parameters"* dereferenceable(96) %params, %class.YAML_Doc* dereferenceable(216) %ydoc) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%global_box.addr = alloca %struct.Box*, align 8
%my_box.addr = alloca %struct.Box*, align 8
%params.addr = alloca %"struct.miniFE::Parameters"*, align 8
%ydoc.addr = alloca %class.YAML_Doc*, align 8
%global_nx = alloca i32, align 4
%global_ny = alloca i32, align 4
%global_nz = alloca i32, align 4
%numprocs = alloca i32, align 4
%myproc = alloca i32, align 4
%largest_imbalance = alloca float, align 4
%std_dev = alloca float, align 4
%t_start = alloca double, align 8
%t0 = alloca double, align 8
%mesh = alloca %"class.miniFE::simple_mesh_description", align 8
%mesh_fill = alloca double, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%t_total = alloca double, align 8
%A = alloca %"struct.miniFE::CSRMatrix", align 8
%gen_structure = alloca double, align 8
%rtf_t0 = alloca double, align 8
%local_nrows = alloca i32, align 4
%my_first_row = alloca i32, align 4
%b = alloca %"struct.miniFE::Vector", align 8
%x = alloca %"struct.miniFE::Vector", align 8
%fe_assembly = alloca double, align 8
%rtf_t085 = alloca double, align 8
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp106 = alloca %"class.std::allocator", align 1
%ref.tmp109 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp110 = alloca %"class.std::allocator", align 1
%ref.tmp122 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp123 = alloca %"class.std::allocator", align 1
%ref.tmp129 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp130 = alloca %"class.std::allocator", align 1
%ref.tmp144 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp145 = alloca %"class.std::allocator", align 1
%ref.tmp148 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp149 = alloca %"class.std::allocator", align 1
%ref.tmp163 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp164 = alloca %"class.std::allocator", align 1
%ref.tmp170 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp171 = alloca %"class.std::allocator", align 1
%dirbc_time = alloca double, align 8
%rtf_t0199 = alloca double, align 8
%rtf_t0234 = alloca double, align 8
%make_local_time = alloca double, align 8
%rtf_t0269 = alloca double, align 8
%global_nnz = alloca i64, align 8
%max_iters = alloca i32, align 4
%num_iters = alloca i32, align 4
%rnorm = alloca double, align 8
%tol = alloca double, align 8
%cg_times = alloca [5 x double], align 16
%matvec_with_comm_overlap = alloca i8, align 1
%agg.tmp = alloca %"struct.miniFE::matvec_overlap", align 1
%agg.tmp305 = alloca %"struct.miniFE::matvec_std", align 1
%tolerance = alloca double, align 8
%verify_whole_domain = alloca i8, align 1
%title = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp339 = alloca %"class.std::allocator", align 1
%ref.tmp345 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp346 = alloca %"class.std::allocator", align 1
%ref.tmp352 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp353 = alloca %"class.std::allocator", align 1
%ref.tmp356 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp360 = alloca %"class.std::allocator", align 1
%ref.tmp378 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp379 = alloca %"class.std::allocator", align 1
%ref.tmp385 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp386 = alloca %"class.std::allocator", align 1
%ref.tmp389 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp393 = alloca %"class.std::allocator", align 1
%ref.tmp411 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp412 = alloca %"class.std::allocator", align 1
%ref.tmp418 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp419 = alloca %"class.std::allocator", align 1
%ref.tmp422 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp426 = alloca %"class.std::allocator", align 1
%ref.tmp444 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp445 = alloca %"class.std::allocator", align 1
%ref.tmp458 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp459 = alloca %"class.std::allocator", align 1
%ref.tmp471 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp472 = alloca %"class.std::allocator", align 1
%global_nrows = alloca i32, align 4
%mv_flops = alloca double, align 8
%dot_flops = alloca double, align 8
%waxpy_flops = alloca double, align 8
%total_flops = alloca double, align 8
%mv_mflops = alloca double, align 8
%dot_mflops = alloca double, align 8
%waxpy_mflops = alloca double, align 8
%total_mflops = alloca double, align 8
%ref.tmp530 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp531 = alloca %"class.std::allocator", align 1
%ref.tmp544 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp545 = alloca %"class.std::allocator", align 1
%ref.tmp559 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp560 = alloca %"class.std::allocator", align 1
%ref.tmp573 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp574 = alloca %"class.std::allocator", align 1
%ref.tmp577 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp578 = alloca %"class.std::allocator", align 1
%ref.tmp595 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp596 = alloca %"class.std::allocator", align 1
%ref.tmp609 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp610 = alloca %"class.std::allocator", align 1
%ref.tmp624 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp625 = alloca %"class.std::allocator", align 1
%ref.tmp638 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp639 = alloca %"class.std::allocator", align 1
%ref.tmp642 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp643 = alloca %"class.std::allocator", align 1
%ref.tmp660 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp661 = alloca %"class.std::allocator", align 1
%ref.tmp674 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp675 = alloca %"class.std::allocator", align 1
%ref.tmp689 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp690 = alloca %"class.std::allocator", align 1
%ref.tmp703 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp704 = alloca %"class.std::allocator", align 1
%ref.tmp707 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp708 = alloca %"class.std::allocator", align 1
%ref.tmp725 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp726 = alloca %"class.std::allocator", align 1
%ref.tmp729 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp730 = alloca %"class.std::allocator", align 1
%ref.tmp746 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp747 = alloca %"class.std::allocator", align 1
%ref.tmp753 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp754 = alloca %"class.std::allocator", align 1
%ref.tmp771 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp772 = alloca %"class.std::allocator", align 1
%ref.tmp778 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp779 = alloca %"class.std::allocator", align 1
%ref.tmp797 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp798 = alloca %"class.std::allocator", align 1
%ref.tmp804 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp805 = alloca %"class.std::allocator", align 1
%ref.tmp822 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp823 = alloca %"class.std::allocator", align 1
%ref.tmp829 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp830 = alloca %"class.std::allocator", align 1
%ref.tmp833 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp834 = alloca %"class.std::allocator", align 1
%ref.tmp855 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp856 = alloca %"class.std::allocator", align 1
store %struct.Box* %global_box, %struct.Box** %global_box.addr, align 8
store %struct.Box* %my_box, %struct.Box** %my_box.addr, align 8
store %"struct.miniFE::Parameters"* %params, %"struct.miniFE::Parameters"** %params.addr, align 8
store %class.YAML_Doc* %ydoc, %class.YAML_Doc** %ydoc.addr, align 8
%0 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call = call i32* @_ZNK3BoxixEi(%struct.Box* %0, i32 0)
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
store i32 %1, i32* %global_nx, align 4
%2 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call1 = call i32* @_ZNK3BoxixEi(%struct.Box* %2, i32 1)
%arrayidx2 = getelementptr inbounds i32, i32* %call1, i64 1
%3 = load i32, i32* %arrayidx2, align 4
store i32 %3, i32* %global_ny, align 4
%4 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%call3 = call i32* @_ZNK3BoxixEi(%struct.Box* %4, i32 2)
%arrayidx4 = getelementptr inbounds i32, i32* %call3, i64 1
%5 = load i32, i32* %arrayidx4, align 4
store i32 %5, i32* %global_nz, align 4
store i32 1, i32* %numprocs, align 4
store i32 0, i32* %myproc, align 4
%6 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%load_imbalance = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %6, i32 0, i32 6
%7 = load float, float* %load_imbalance, align 8
%cmp = fcmp ogt float %7, 0.000000e+00
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%8 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%9 = load %struct.Box*, %struct.Box** %my_box.addr, align 8
%10 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%load_imbalance5 = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %10, i32 0, i32 6
%11 = load float, float* %load_imbalance5, align 8
%12 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
call void @_ZN6miniFE13add_imbalanceIiEEvRK3BoxRS1_fR8YAML_Doc(%struct.Box* dereferenceable(24) %8, %struct.Box* dereferenceable(24) %9, float %11, %class.YAML_Doc* dereferenceable(216) %12)
br label %if.end
if.end: ; preds = %if.then, %entry
store float 0.000000e+00, float* %largest_imbalance, align 4
store float 0.000000e+00, float* %std_dev, align 4
%13 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%14 = load %struct.Box*, %struct.Box** %my_box.addr, align 8
%15 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
call void @_ZN6miniFE17compute_imbalanceIiEEvRK3BoxS3_RfS4_R8YAML_Docb(%struct.Box* dereferenceable(24) %13, %struct.Box* dereferenceable(24) %14, float* dereferenceable(4) %largest_imbalance, float* dereferenceable(4) %std_dev, %class.YAML_Doc* dereferenceable(216) %15, i1 zeroext true)
%16 = load i32, i32* %myproc, align 4
%cmp6 = icmp eq i32 %16, 0
br i1 %cmp6, label %if.then7, label %if.end11
if.then7: ; preds = %if.end
%vtable = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8
%vbase.offset.ptr = getelementptr i8, i8* %vtable, i64 -24
%17 = bitcast i8* %vbase.offset.ptr to i64*
%vbase.offset = load i64, i64* %17, align 8
%add.ptr = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset
%18 = bitcast i8* %add.ptr to %"class.std::ios_base"*
%call8 = call i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %18, i64 30)
%call9 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.38, i32 0, i32 0))
%call10 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* @_ZSt4cout)
br label %if.end11
if.end11: ; preds = %if.then7, %if.end
%call12 = call double @_ZN6miniFE7mytimerEv()
store double %call12, double* %t_start, align 8
%call13 = call double @_ZN6miniFE7mytimerEv()
store double %call13, double* %t0, align 8
%19 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%20 = load %struct.Box*, %struct.Box** %my_box.addr, align 8
call void @_ZN6miniFE23simple_mesh_descriptionIiEC2ERK3BoxS4_(%"class.miniFE::simple_mesh_description"* %mesh, %struct.Box* dereferenceable(24) %19, %struct.Box* dereferenceable(24) %20)
%call14 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.end11
%21 = load double, double* %t0, align 8
%sub = fsub double %call14, %21
store double %sub, double* %mesh_fill, align 8
%call16 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont15 unwind label %lpad
invoke.cont15: ; preds = %invoke.cont
%22 = load double, double* %t_start, align 8
%sub17 = fsub double %call16, %22
store double %sub17, double* %t_total, align 8
%23 = load i32, i32* %myproc, align 4
%cmp18 = icmp eq i32 %23, 0
br i1 %cmp18, label %if.then19, label %if.end28
if.then19: ; preds = %invoke.cont15
%24 = load double, double* %mesh_fill, align 8
%call21 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* @_ZSt4cout, double %24)
to label %invoke.cont20 unwind label %lpad
invoke.cont20: ; preds = %if.then19
%call23 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call21, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.39, i32 0, i32 0))
to label %invoke.cont22 unwind label %lpad
invoke.cont22: ; preds = %invoke.cont20
%25 = load double, double* %t_total, align 8
%call25 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call23, double %25)
to label %invoke.cont24 unwind label %lpad
invoke.cont24: ; preds = %invoke.cont22
%call27 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call25, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont26 unwind label %lpad
invoke.cont26: ; preds = %invoke.cont24
br label %if.end28
lpad: ; preds = %invoke.cont876, %if.end28, %invoke.cont24, %invoke.cont22, %invoke.cont20, %if.then19, %invoke.cont, %if.end11
%26 = landingpad { i8*, i32 }
cleanup
%27 = extractvalue { i8*, i32 } %26, 0
store i8* %27, i8** %exn.slot, align 8
%28 = extractvalue { i8*, i32 } %26, 1
store i32 %28, i32* %ehselector.slot, align 4
br label %ehcleanup882
if.end28: ; preds = %invoke.cont26, %invoke.cont15
invoke void @_ZN6miniFE9CSRMatrixIdiiEC2Ev(%"struct.miniFE::CSRMatrix"* %A)
to label %invoke.cont29 unwind label %lpad
invoke.cont29: ; preds = %if.end28
%29 = load i32, i32* %myproc, align 4
%cmp30 = icmp eq i32 %29, 0
br i1 %cmp30, label %if.then31, label %if.end43
if.then31: ; preds = %invoke.cont29
%vtable32 = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8
%vbase.offset.ptr33 = getelementptr i8, i8* %vtable32, i64 -24
%30 = bitcast i8* %vbase.offset.ptr33 to i64*
%vbase.offset34 = load i64, i64* %30, align 8
%add.ptr35 = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset34
%31 = bitcast i8* %add.ptr35 to %"class.std::ios_base"*
%call38 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %31, i64 30)
to label %invoke.cont37 unwind label %lpad36
invoke.cont37: ; preds = %if.then31
%call40 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.40, i32 0, i32 0))
to label %invoke.cont39 unwind label %lpad36
invoke.cont39: ; preds = %invoke.cont37
%call42 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* @_ZSt4cout)
to label %invoke.cont41 unwind label %lpad36
invoke.cont41: ; preds = %invoke.cont39
br label %if.end43
lpad36: ; preds = %invoke.cont873, %cond.end, %cond.true, %if.end61, %invoke.cont57, %invoke.cont55, %invoke.cont53, %if.then52, %invoke.cont46, %invoke.cont44, %if.end43, %invoke.cont39, %invoke.cont37, %if.then31
%32 = landingpad { i8*, i32 }
cleanup
%33 = extractvalue { i8*, i32 } %32, 0
store i8* %33, i8** %exn.slot, align 8
%34 = extractvalue { i8*, i32 } %32, 1
store i32 %34, i32* %ehselector.slot, align 4
br label %ehcleanup880
if.end43: ; preds = %invoke.cont41, %invoke.cont29
%call45 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont44 unwind label %lpad36
invoke.cont44: ; preds = %if.end43
store double %call45, double* %rtf_t0, align 8
%call47 = invoke i32 @_ZN6miniFE25generate_matrix_structureINS_9CSRMatrixIdiiEEEEiRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERS4_(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %mesh, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A)
to label %invoke.cont46 unwind label %lpad36
invoke.cont46: ; preds = %invoke.cont44
%call49 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont48 unwind label %lpad36
invoke.cont48: ; preds = %invoke.cont46
%35 = load double, double* %rtf_t0, align 8
%sub50 = fsub double %call49, %35
store double %sub50, double* %gen_structure, align 8
%36 = load double, double* %gen_structure, align 8
%37 = load double, double* %t_total, align 8
%add = fadd double %37, %36
store double %add, double* %t_total, align 8
%38 = load i32, i32* %myproc, align 4
%cmp51 = icmp eq i32 %38, 0
br i1 %cmp51, label %if.then52, label %if.end61
if.then52: ; preds = %invoke.cont48
%39 = load double, double* %gen_structure, align 8
%call54 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* @_ZSt4cout, double %39)
to label %invoke.cont53 unwind label %lpad36
invoke.cont53: ; preds = %if.then52
%call56 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call54, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.39, i32 0, i32 0))
to label %invoke.cont55 unwind label %lpad36
invoke.cont55: ; preds = %invoke.cont53
%40 = load double, double* %t_total, align 8
%call58 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call56, double %40)
to label %invoke.cont57 unwind label %lpad36
invoke.cont57: ; preds = %invoke.cont55
%call60 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call58, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont59 unwind label %lpad36
invoke.cont59: ; preds = %invoke.cont57
br label %if.end61
if.end61: ; preds = %invoke.cont59, %invoke.cont48
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %A, i32 0, i32 2
%call63 = invoke i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
to label %invoke.cont62 unwind label %lpad36
invoke.cont62: ; preds = %if.end61
%conv = trunc i64 %call63 to i32
store i32 %conv, i32* %local_nrows, align 4
%41 = load i32, i32* %local_nrows, align 4
%cmp64 = icmp sgt i32 %41, 0
br i1 %cmp64, label %cond.true, label %cond.false
cond.true: ; preds = %invoke.cont62
%rows65 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %A, i32 0, i32 2
%call67 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %rows65, i64 0)
to label %invoke.cont66 unwind label %lpad36
invoke.cont66: ; preds = %cond.true
%42 = load i32, i32* %call67, align 4
br label %cond.end
cond.false: ; preds = %invoke.cont62
br label %cond.end
cond.end: ; preds = %cond.false, %invoke.cont66
%cond = phi i32 [ %42, %invoke.cont66 ], [ -1, %cond.false ]
store i32 %cond, i32* %my_first_row, align 4
%43 = load i32, i32* %my_first_row, align 4
%44 = load i32, i32* %local_nrows, align 4
invoke void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %b, i32 %43, i32 %44)
to label %invoke.cont68 unwind label %lpad36
invoke.cont68: ; preds = %cond.end
%45 = load i32, i32* %my_first_row, align 4
%46 = load i32, i32* %local_nrows, align 4
invoke void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %x, i32 %45, i32 %46)
to label %invoke.cont70 unwind label %lpad69
invoke.cont70: ; preds = %invoke.cont68
%47 = load i32, i32* %myproc, align 4
%cmp71 = icmp eq i32 %47, 0
br i1 %cmp71, label %if.then72, label %if.end84
if.then72: ; preds = %invoke.cont70
%vtable73 = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8
%vbase.offset.ptr74 = getelementptr i8, i8* %vtable73, i64 -24
%48 = bitcast i8* %vbase.offset.ptr74 to i64*
%vbase.offset75 = load i64, i64* %48, align 8
%add.ptr76 = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset75
%49 = bitcast i8* %add.ptr76 to %"class.std::ios_base"*
%call79 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %49, i64 30)
to label %invoke.cont78 unwind label %lpad77
invoke.cont78: ; preds = %if.then72
%call81 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.41, i32 0, i32 0))
to label %invoke.cont80 unwind label %lpad77
invoke.cont80: ; preds = %invoke.cont78
%call83 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* @_ZSt4cout)
to label %invoke.cont82 unwind label %lpad77
invoke.cont82: ; preds = %invoke.cont80
br label %if.end84
lpad69: ; preds = %invoke.cont870, %invoke.cont68
%50 = landingpad { i8*, i32 }
cleanup
%51 = extractvalue { i8*, i32 } %50, 0
store i8* %51, i8** %exn.slot, align 8
%52 = extractvalue { i8*, i32 } %50, 1
store i32 %52, i32* %ehselector.slot, align 4
br label %ehcleanup877
lpad77: ; preds = %if.end869, %if.end333, %invoke.cont328, %if.else327, %invoke.cont323, %if.then322, %invoke.cont312, %invoke.cont310, %if.then309, %if.else, %invoke.cont303, %if.then302, %invoke.cont297, %if.then296, %invoke.cont288, %if.end287, %invoke.cont283, %invoke.cont281, %invoke.cont279, %if.then278, %invoke.cont272, %invoke.cont270, %if.end268, %invoke.cont264, %invoke.cont262, %if.then257, %invoke.cont251, %invoke.cont249, %invoke.cont247, %if.then246, %invoke.cont240, %invoke.cont235, %if.end233, %invoke.cont229, %invoke.cont227, %if.then222, %invoke.cont216, %invoke.cont214, %invoke.cont212, %if.then211, %invoke.cont205, %invoke.cont200, %if.end198, %invoke.cont194, %invoke.cont192, %if.then187, %invoke.cont99, %invoke.cont97, %invoke.cont95, %if.then94, %invoke.cont88, %invoke.cont86, %if.end84, %invoke.cont80, %invoke.cont78, %if.then72
%53 = landingpad { i8*, i32 }
cleanup
%54 = extractvalue { i8*, i32 } %53, 0
store i8* %54, i8** %exn.slot, align 8
%55 = extractvalue { i8*, i32 } %53, 1
store i32 %55, i32* %ehselector.slot, align 4
br label %ehcleanup874
if.end84: ; preds = %invoke.cont82, %invoke.cont70
%call87 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont86 unwind label %lpad77
invoke.cont86: ; preds = %if.end84
store double %call87, double* %rtf_t085, align 8
%56 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
invoke void @_ZN6miniFE16assemble_FE_dataINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERS6_RT0_RNS_10ParametersE(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %mesh, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, %"struct.miniFE::Parameters"* dereferenceable(96) %56)
to label %invoke.cont88 unwind label %lpad77
invoke.cont88: ; preds = %invoke.cont86
%call90 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont89 unwind label %lpad77
invoke.cont89: ; preds = %invoke.cont88
%57 = load double, double* %rtf_t085, align 8
%sub91 = fsub double %call90, %57
store double %sub91, double* %fe_assembly, align 8
%58 = load double, double* %fe_assembly, align 8
%59 = load double, double* %t_total, align 8
%add92 = fadd double %59, %58
store double %add92, double* %t_total, align 8
%60 = load i32, i32* %myproc, align 4
%cmp93 = icmp eq i32 %60, 0
br i1 %cmp93, label %if.then94, label %if.end103
if.then94: ; preds = %invoke.cont89
%61 = load double, double* %fe_assembly, align 8
%call96 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* @_ZSt4cout, double %61)
to label %invoke.cont95 unwind label %lpad77
invoke.cont95: ; preds = %if.then94
%call98 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call96, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.39, i32 0, i32 0))
to label %invoke.cont97 unwind label %lpad77
invoke.cont97: ; preds = %invoke.cont95
%62 = load double, double* %t_total, align 8
%call100 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call98, double %62)
to label %invoke.cont99 unwind label %lpad77
invoke.cont99: ; preds = %invoke.cont97
%call102 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call100, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont101 unwind label %lpad77
invoke.cont101: ; preds = %invoke.cont99
br label %if.end103
if.end103: ; preds = %invoke.cont101, %invoke.cont89
%63 = load i32, i32* %myproc, align 4
%cmp104 = icmp eq i32 %63, 0
br i1 %cmp104, label %if.then105, label %if.end185
if.then105: ; preds = %if.end103
%64 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%65 = bitcast %class.YAML_Doc* %64 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp106) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.42, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp106)
to label %invoke.cont108 unwind label %lpad107
invoke.cont108: ; preds = %if.then105
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp110) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp109, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp110)
to label %invoke.cont112 unwind label %lpad111
invoke.cont112: ; preds = %invoke.cont108
%call115 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %65, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp109)
to label %invoke.cont114 unwind label %lpad113
invoke.cont114: ; preds = %invoke.cont112
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp109)
to label %invoke.cont116 unwind label %lpad111
invoke.cont116: ; preds = %invoke.cont114
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp110) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont118 unwind label %lpad107
invoke.cont118: ; preds = %invoke.cont116
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp106) #2
%66 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%67 = bitcast %class.YAML_Doc* %66 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp123) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp122, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.42, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp123)
to label %invoke.cont125 unwind label %lpad124
invoke.cont125: ; preds = %invoke.cont118
%call128 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %67, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp122)
to label %invoke.cont127 unwind label %lpad126
invoke.cont127: ; preds = %invoke.cont125
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp130) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp129, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.43, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp130)
to label %invoke.cont132 unwind label %lpad131
invoke.cont132: ; preds = %invoke.cont127
%68 = load double, double* %gen_structure, align 8
%call135 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call128, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp129, double %68)
to label %invoke.cont134 unwind label %lpad133
invoke.cont134: ; preds = %invoke.cont132
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp129)
to label %invoke.cont136 unwind label %lpad131
invoke.cont136: ; preds = %invoke.cont134
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp130) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp122)
to label %invoke.cont140 unwind label %lpad124
invoke.cont140: ; preds = %invoke.cont136
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp123) #2
%69 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%70 = bitcast %class.YAML_Doc* %69 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp145) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp144, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.44, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp145)
to label %invoke.cont147 unwind label %lpad146
invoke.cont147: ; preds = %invoke.cont140
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp149) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp148, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp149)
to label %invoke.cont151 unwind label %lpad150
invoke.cont151: ; preds = %invoke.cont147
%call154 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %70, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp144, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp148)
to label %invoke.cont153 unwind label %lpad152
invoke.cont153: ; preds = %invoke.cont151
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp148)
to label %invoke.cont155 unwind label %lpad150
invoke.cont155: ; preds = %invoke.cont153
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp149) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp144)
to label %invoke.cont159 unwind label %lpad146
invoke.cont159: ; preds = %invoke.cont155
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp145) #2
%71 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%72 = bitcast %class.YAML_Doc* %71 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp164) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp163, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.44, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp164)
to label %invoke.cont166 unwind label %lpad165
invoke.cont166: ; preds = %invoke.cont159
%call169 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %72, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp163)
to label %invoke.cont168 unwind label %lpad167
invoke.cont168: ; preds = %invoke.cont166
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp171) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp170, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.45, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp171)
to label %invoke.cont173 unwind label %lpad172
invoke.cont173: ; preds = %invoke.cont168
%73 = load double, double* %fe_assembly, align 8
%call176 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call169, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp170, double %73)
to label %invoke.cont175 unwind label %lpad174
invoke.cont175: ; preds = %invoke.cont173
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp170)
to label %invoke.cont177 unwind label %lpad172
invoke.cont177: ; preds = %invoke.cont175
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp171) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp163)
to label %invoke.cont181 unwind label %lpad165
invoke.cont181: ; preds = %invoke.cont177
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp164) #2
br label %if.end185
lpad107: ; preds = %invoke.cont116, %if.then105
%74 = landingpad { i8*, i32 }
cleanup
%75 = extractvalue { i8*, i32 } %74, 0
store i8* %75, i8** %exn.slot, align 8
%76 = extractvalue { i8*, i32 } %74, 1
store i32 %76, i32* %ehselector.slot, align 4
br label %ehcleanup121
lpad111: ; preds = %invoke.cont114, %invoke.cont108
%77 = landingpad { i8*, i32 }
cleanup
%78 = extractvalue { i8*, i32 } %77, 0
store i8* %78, i8** %exn.slot, align 8
%79 = extractvalue { i8*, i32 } %77, 1
store i32 %79, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad113: ; preds = %invoke.cont112
%80 = landingpad { i8*, i32 }
cleanup
%81 = extractvalue { i8*, i32 } %80, 0
store i8* %81, i8** %exn.slot, align 8
%82 = extractvalue { i8*, i32 } %80, 1
store i32 %82, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp109)
to label %invoke.cont117 unwind label %terminate.lpad
invoke.cont117: ; preds = %lpad113
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont117, %lpad111
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp110) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont120 unwind label %terminate.lpad
invoke.cont120: ; preds = %ehcleanup
br label %ehcleanup121
ehcleanup121: ; preds = %invoke.cont120, %lpad107
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp106) #2
br label %ehcleanup874
lpad124: ; preds = %invoke.cont136, %invoke.cont118
%83 = landingpad { i8*, i32 }
cleanup
%84 = extractvalue { i8*, i32 } %83, 0
store i8* %84, i8** %exn.slot, align 8
%85 = extractvalue { i8*, i32 } %83, 1
store i32 %85, i32* %ehselector.slot, align 4
br label %ehcleanup143
lpad126: ; preds = %invoke.cont125
%86 = landingpad { i8*, i32 }
cleanup
%87 = extractvalue { i8*, i32 } %86, 0
store i8* %87, i8** %exn.slot, align 8
%88 = extractvalue { i8*, i32 } %86, 1
store i32 %88, i32* %ehselector.slot, align 4
br label %ehcleanup141
lpad131: ; preds = %invoke.cont134, %invoke.cont127
%89 = landingpad { i8*, i32 }
cleanup
%90 = extractvalue { i8*, i32 } %89, 0
store i8* %90, i8** %exn.slot, align 8
%91 = extractvalue { i8*, i32 } %89, 1
store i32 %91, i32* %ehselector.slot, align 4
br label %ehcleanup139
lpad133: ; preds = %invoke.cont132
%92 = landingpad { i8*, i32 }
cleanup
%93 = extractvalue { i8*, i32 } %92, 0
store i8* %93, i8** %exn.slot, align 8
%94 = extractvalue { i8*, i32 } %92, 1
store i32 %94, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp129)
to label %invoke.cont138 unwind label %terminate.lpad
invoke.cont138: ; preds = %lpad133
br label %ehcleanup139
ehcleanup139: ; preds = %invoke.cont138, %lpad131
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp130) #2
br label %ehcleanup141
ehcleanup141: ; preds = %ehcleanup139, %lpad126
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp122)
to label %invoke.cont142 unwind label %terminate.lpad
invoke.cont142: ; preds = %ehcleanup141
br label %ehcleanup143
ehcleanup143: ; preds = %invoke.cont142, %lpad124
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp123) #2
br label %ehcleanup874
lpad146: ; preds = %invoke.cont155, %invoke.cont140
%95 = landingpad { i8*, i32 }
cleanup
%96 = extractvalue { i8*, i32 } %95, 0
store i8* %96, i8** %exn.slot, align 8
%97 = extractvalue { i8*, i32 } %95, 1
store i32 %97, i32* %ehselector.slot, align 4
br label %ehcleanup162
lpad150: ; preds = %invoke.cont153, %invoke.cont147
%98 = landingpad { i8*, i32 }
cleanup
%99 = extractvalue { i8*, i32 } %98, 0
store i8* %99, i8** %exn.slot, align 8
%100 = extractvalue { i8*, i32 } %98, 1
store i32 %100, i32* %ehselector.slot, align 4
br label %ehcleanup158
lpad152: ; preds = %invoke.cont151
%101 = landingpad { i8*, i32 }
cleanup
%102 = extractvalue { i8*, i32 } %101, 0
store i8* %102, i8** %exn.slot, align 8
%103 = extractvalue { i8*, i32 } %101, 1
store i32 %103, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp148)
to label %invoke.cont157 unwind label %terminate.lpad
invoke.cont157: ; preds = %lpad152
br label %ehcleanup158
ehcleanup158: ; preds = %invoke.cont157, %lpad150
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp149) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp144)
to label %invoke.cont161 unwind label %terminate.lpad
invoke.cont161: ; preds = %ehcleanup158
br label %ehcleanup162
ehcleanup162: ; preds = %invoke.cont161, %lpad146
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp145) #2
br label %ehcleanup874
lpad165: ; preds = %invoke.cont177, %invoke.cont159
%104 = landingpad { i8*, i32 }
cleanup
%105 = extractvalue { i8*, i32 } %104, 0
store i8* %105, i8** %exn.slot, align 8
%106 = extractvalue { i8*, i32 } %104, 1
store i32 %106, i32* %ehselector.slot, align 4
br label %ehcleanup184
lpad167: ; preds = %invoke.cont166
%107 = landingpad { i8*, i32 }
cleanup
%108 = extractvalue { i8*, i32 } %107, 0
store i8* %108, i8** %exn.slot, align 8
%109 = extractvalue { i8*, i32 } %107, 1
store i32 %109, i32* %ehselector.slot, align 4
br label %ehcleanup182
lpad172: ; preds = %invoke.cont175, %invoke.cont168
%110 = landingpad { i8*, i32 }
cleanup
%111 = extractvalue { i8*, i32 } %110, 0
store i8* %111, i8** %exn.slot, align 8
%112 = extractvalue { i8*, i32 } %110, 1
store i32 %112, i32* %ehselector.slot, align 4
br label %ehcleanup180
lpad174: ; preds = %invoke.cont173
%113 = landingpad { i8*, i32 }
cleanup
%114 = extractvalue { i8*, i32 } %113, 0
store i8* %114, i8** %exn.slot, align 8
%115 = extractvalue { i8*, i32 } %113, 1
store i32 %115, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp170)
to label %invoke.cont179 unwind label %terminate.lpad
invoke.cont179: ; preds = %lpad174
br label %ehcleanup180
ehcleanup180: ; preds = %invoke.cont179, %lpad172
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp171) #2
br label %ehcleanup182
ehcleanup182: ; preds = %ehcleanup180, %lpad167
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp163)
to label %invoke.cont183 unwind label %terminate.lpad
invoke.cont183: ; preds = %ehcleanup182
br label %ehcleanup184
ehcleanup184: ; preds = %invoke.cont183, %lpad165
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp164) #2
br label %ehcleanup874
if.end185: ; preds = %invoke.cont181, %if.end103
%116 = load i32, i32* %myproc, align 4
%cmp186 = icmp eq i32 %116, 0
br i1 %cmp186, label %if.then187, label %if.end198
if.then187: ; preds = %if.end185
%vtable188 = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8
%vbase.offset.ptr189 = getelementptr i8, i8* %vtable188, i64 -24
%117 = bitcast i8* %vbase.offset.ptr189 to i64*
%vbase.offset190 = load i64, i64* %117, align 8
%add.ptr191 = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset190
%118 = bitcast i8* %add.ptr191 to %"class.std::ios_base"*
%call193 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %118, i64 30)
to label %invoke.cont192 unwind label %lpad77
invoke.cont192: ; preds = %if.then187
%call195 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.46, i32 0, i32 0))
to label %invoke.cont194 unwind label %lpad77
invoke.cont194: ; preds = %invoke.cont192
%call197 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* @_ZSt4cout)
to label %invoke.cont196 unwind label %lpad77
invoke.cont196: ; preds = %invoke.cont194
br label %if.end198
if.end198: ; preds = %invoke.cont196, %if.end185
%call201 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont200 unwind label %lpad77
invoke.cont200: ; preds = %if.end198
store double %call201, double* %rtf_t0199, align 8
%119 = load i32, i32* %global_nx, align 4
%add202 = add nsw i32 %119, 1
%120 = load i32, i32* %global_ny, align 4
%add203 = add nsw i32 %120, 1
%121 = load i32, i32* %global_nz, align 4
%add204 = add nsw i32 %121, 1
%bc_rows_0 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %mesh, i32 0, i32 0
invoke void @_ZN6miniFE16impose_dirichletINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvNT_10ScalarTypeERS5_RT0_iiiRKSt3setINS5_17GlobalOrdinalTypeESt4lessISB_ESaISB_EE(double 0.000000e+00, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, i32 %add202, i32 %add203, i32 %add204, %"class.std::set"* dereferenceable(48) %bc_rows_0)
to label %invoke.cont205 unwind label %lpad77
invoke.cont205: ; preds = %invoke.cont200
%call207 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont206 unwind label %lpad77
invoke.cont206: ; preds = %invoke.cont205
%122 = load double, double* %rtf_t0199, align 8
%sub208 = fsub double %call207, %122
store double %sub208, double* %dirbc_time, align 8
%123 = load double, double* %dirbc_time, align 8
%124 = load double, double* %t_total, align 8
%add209 = fadd double %124, %123
store double %add209, double* %t_total, align 8
%125 = load i32, i32* %myproc, align 4
%cmp210 = icmp eq i32 %125, 0
br i1 %cmp210, label %if.then211, label %if.end220
if.then211: ; preds = %invoke.cont206
%126 = load double, double* %dirbc_time, align 8
%call213 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* @_ZSt4cout, double %126)
to label %invoke.cont212 unwind label %lpad77
invoke.cont212: ; preds = %if.then211
%call215 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call213, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.39, i32 0, i32 0))
to label %invoke.cont214 unwind label %lpad77
invoke.cont214: ; preds = %invoke.cont212
%127 = load double, double* %t_total, align 8
%call217 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call215, double %127)
to label %invoke.cont216 unwind label %lpad77
invoke.cont216: ; preds = %invoke.cont214
%call219 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call217, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont218 unwind label %lpad77
invoke.cont218: ; preds = %invoke.cont216
br label %if.end220
if.end220: ; preds = %invoke.cont218, %invoke.cont206
%128 = load i32, i32* %myproc, align 4
%cmp221 = icmp eq i32 %128, 0
br i1 %cmp221, label %if.then222, label %if.end233
if.then222: ; preds = %if.end220
%vtable223 = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8
%vbase.offset.ptr224 = getelementptr i8, i8* %vtable223, i64 -24
%129 = bitcast i8* %vbase.offset.ptr224 to i64*
%vbase.offset225 = load i64, i64* %129, align 8
%add.ptr226 = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset225
%130 = bitcast i8* %add.ptr226 to %"class.std::ios_base"*
%call228 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %130, i64 30)
to label %invoke.cont227 unwind label %lpad77
invoke.cont227: ; preds = %if.then222
%call230 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.46, i32 0, i32 0))
to label %invoke.cont229 unwind label %lpad77
invoke.cont229: ; preds = %invoke.cont227
%call232 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* @_ZSt4cout)
to label %invoke.cont231 unwind label %lpad77
invoke.cont231: ; preds = %invoke.cont229
br label %if.end233
if.end233: ; preds = %invoke.cont231, %if.end220
%call236 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont235 unwind label %lpad77
invoke.cont235: ; preds = %if.end233
store double %call236, double* %rtf_t0234, align 8
%131 = load i32, i32* %global_nx, align 4
%add237 = add nsw i32 %131, 1
%132 = load i32, i32* %global_ny, align 4
%add238 = add nsw i32 %132, 1
%133 = load i32, i32* %global_nz, align 4
%add239 = add nsw i32 %133, 1
%bc_rows_1 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %mesh, i32 0, i32 1
invoke void @_ZN6miniFE16impose_dirichletINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvNT_10ScalarTypeERS5_RT0_iiiRKSt3setINS5_17GlobalOrdinalTypeESt4lessISB_ESaISB_EE(double 1.000000e+00, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, i32 %add237, i32 %add238, i32 %add239, %"class.std::set"* dereferenceable(48) %bc_rows_1)
to label %invoke.cont240 unwind label %lpad77
invoke.cont240: ; preds = %invoke.cont235
%call242 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont241 unwind label %lpad77
invoke.cont241: ; preds = %invoke.cont240
%134 = load double, double* %rtf_t0234, align 8
%sub243 = fsub double %call242, %134
store double %sub243, double* %dirbc_time, align 8
%135 = load double, double* %dirbc_time, align 8
%136 = load double, double* %t_total, align 8
%add244 = fadd double %136, %135
store double %add244, double* %t_total, align 8
%137 = load i32, i32* %myproc, align 4
%cmp245 = icmp eq i32 %137, 0
br i1 %cmp245, label %if.then246, label %if.end255
if.then246: ; preds = %invoke.cont241
%138 = load double, double* %dirbc_time, align 8
%call248 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* @_ZSt4cout, double %138)
to label %invoke.cont247 unwind label %lpad77
invoke.cont247: ; preds = %if.then246
%call250 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call248, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.39, i32 0, i32 0))
to label %invoke.cont249 unwind label %lpad77
invoke.cont249: ; preds = %invoke.cont247
%139 = load double, double* %t_total, align 8
%call252 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call250, double %139)
to label %invoke.cont251 unwind label %lpad77
invoke.cont251: ; preds = %invoke.cont249
%call254 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call252, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont253 unwind label %lpad77
invoke.cont253: ; preds = %invoke.cont251
br label %if.end255
if.end255: ; preds = %invoke.cont253, %invoke.cont241
%140 = load i32, i32* %myproc, align 4
%cmp256 = icmp eq i32 %140, 0
br i1 %cmp256, label %if.then257, label %if.end268
if.then257: ; preds = %if.end255
%vtable258 = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8
%vbase.offset.ptr259 = getelementptr i8, i8* %vtable258, i64 -24
%141 = bitcast i8* %vbase.offset.ptr259 to i64*
%vbase.offset260 = load i64, i64* %141, align 8
%add.ptr261 = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset260
%142 = bitcast i8* %add.ptr261 to %"class.std::ios_base"*
%call263 = invoke i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %142, i64 30)
to label %invoke.cont262 unwind label %lpad77
invoke.cont262: ; preds = %if.then257
%call265 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.47, i32 0, i32 0))
to label %invoke.cont264 unwind label %lpad77
invoke.cont264: ; preds = %invoke.cont262
%call267 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* @_ZSt4cout)
to label %invoke.cont266 unwind label %lpad77
invoke.cont266: ; preds = %invoke.cont264
br label %if.end268
if.end268: ; preds = %invoke.cont266, %if.end255
%call271 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont270 unwind label %lpad77
invoke.cont270: ; preds = %if.end268
store double %call271, double* %rtf_t0269, align 8
invoke void @_ZN6miniFE17make_local_matrixINS_9CSRMatrixIdiiEEEEvRT_(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A)
to label %invoke.cont272 unwind label %lpad77
invoke.cont272: ; preds = %invoke.cont270
%call274 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont273 unwind label %lpad77
invoke.cont273: ; preds = %invoke.cont272
%143 = load double, double* %rtf_t0269, align 8
%sub275 = fsub double %call274, %143
store double %sub275, double* %make_local_time, align 8
%144 = load double, double* %make_local_time, align 8
%145 = load double, double* %t_total, align 8
%add276 = fadd double %145, %144
store double %add276, double* %t_total, align 8
%146 = load i32, i32* %myproc, align 4
%cmp277 = icmp eq i32 %146, 0
br i1 %cmp277, label %if.then278, label %if.end287
if.then278: ; preds = %invoke.cont273
%147 = load double, double* %make_local_time, align 8
%call280 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* @_ZSt4cout, double %147)
to label %invoke.cont279 unwind label %lpad77
invoke.cont279: ; preds = %if.then278
%call282 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call280, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.39, i32 0, i32 0))
to label %invoke.cont281 unwind label %lpad77
invoke.cont281: ; preds = %invoke.cont279
%148 = load double, double* %t_total, align 8
%call284 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call282, double %148)
to label %invoke.cont283 unwind label %lpad77
invoke.cont283: ; preds = %invoke.cont281
%call286 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call284, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont285 unwind label %lpad77
invoke.cont285: ; preds = %invoke.cont283
br label %if.end287
if.end287: ; preds = %invoke.cont285, %invoke.cont273
%149 = load i32, i32* %myproc, align 4
%150 = load i32, i32* %numprocs, align 4
%151 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%call289 = invoke i64 @_ZN6miniFE20compute_matrix_statsINS_9CSRMatrixIdiiEEEEmRKT_iiR8YAML_Doc(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, i32 %149, i32 %150, %class.YAML_Doc* dereferenceable(216) %151)
to label %invoke.cont288 unwind label %lpad77
invoke.cont288: ; preds = %if.end287
store i64 %call289, i64* %global_nnz, align 8
store i32 1000, i32* %max_iters, align 4
store i32 0, i32* %num_iters, align 4
store double 0.000000e+00, double* %rnorm, align 8
%call290 = call double @_ZNSt14numeric_limitsIdE7epsilonEv() #2
store double %call290, double* %tol, align 8
%call292 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont291 unwind label %lpad77
invoke.cont291: ; preds = %invoke.cont288
%152 = load double, double* %t_start, align 8
%sub293 = fsub double %call292, %152
store double %sub293, double* %t_total, align 8
%153 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%mv_overlap_comm_comp = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %153, i32 0, i32 4
%154 = load i32, i32* %mv_overlap_comm_comp, align 8
%cmp294 = icmp eq i32 %154, 1
%frombool = zext i1 %cmp294 to i8
store i8 %frombool, i8* %matvec_with_comm_overlap, align 1
%155 = load i32, i32* %myproc, align 4
%cmp295 = icmp eq i32 %155, 0
br i1 %cmp295, label %if.then296, label %if.end301
if.then296: ; preds = %invoke.cont291
%call298 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.48, i32 0, i32 0))
to label %invoke.cont297 unwind label %lpad77
invoke.cont297: ; preds = %if.then296
%call300 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call298, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont299 unwind label %lpad77
invoke.cont299: ; preds = %invoke.cont297
br label %if.end301
if.end301: ; preds = %invoke.cont299, %invoke.cont291
%156 = load i8, i8* %matvec_with_comm_overlap, align 1
%tobool = trunc i8 %156 to i1
br i1 %tobool, label %if.then302, label %if.else
if.then302: ; preds = %if.end301
invoke void @_ZN6miniFE31rearrange_matrix_local_externalINS_9CSRMatrixIdiiEEEEvRT_(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A)
to label %invoke.cont303 unwind label %lpad77
invoke.cont303: ; preds = %if.then302
%157 = load i32, i32* %max_iters, align 4
%arraydecay = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i32 0, i32 0
invoke void @_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_14matvec_overlapIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, %"struct.miniFE::Vector"* dereferenceable(32) %x, i32 %157, double* dereferenceable(8) %tol, i32* dereferenceable(4) %num_iters, double* dereferenceable(8) %rnorm, double* %arraydecay)
to label %invoke.cont304 unwind label %lpad77
invoke.cont304: ; preds = %invoke.cont303
br label %if.end338
if.else: ; preds = %if.end301
%158 = load i32, i32* %max_iters, align 4
%arraydecay306 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i32 0, i32 0
invoke void @_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_10matvec_stdIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, %"struct.miniFE::Vector"* dereferenceable(32) %x, i32 %158, double* dereferenceable(8) %tol, i32* dereferenceable(4) %num_iters, double* dereferenceable(8) %rnorm, double* %arraydecay306)
to label %invoke.cont307 unwind label %lpad77
invoke.cont307: ; preds = %if.else
%159 = load i32, i32* %myproc, align 4
%cmp308 = icmp eq i32 %159, 0
br i1 %cmp308, label %if.then309, label %if.end316
if.then309: ; preds = %invoke.cont307
%call311 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.49, i32 0, i32 0))
to label %invoke.cont310 unwind label %lpad77
invoke.cont310: ; preds = %if.then309
%160 = load double, double* %rnorm, align 8
%call313 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call311, double %160)
to label %invoke.cont312 unwind label %lpad77
invoke.cont312: ; preds = %invoke.cont310
%call315 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call313, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont314 unwind label %lpad77
invoke.cont314: ; preds = %invoke.cont312
br label %if.end316
if.end316: ; preds = %invoke.cont314, %invoke.cont307
%161 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
%verify_solution = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %161, i32 0, i32 11
%162 = load i32, i32* %verify_solution, align 8
%cmp317 = icmp sgt i32 %162, 0
br i1 %cmp317, label %if.then318, label %if.end337
if.then318: ; preds = %if.end316
store double 6.000000e-03, double* %tolerance, align 8
store i8 0, i8* %verify_whole_domain, align 1
%163 = load i32, i32* %myproc, align 4
%cmp319 = icmp eq i32 %163, 0
br i1 %cmp319, label %if.then320, label %if.end333
if.then320: ; preds = %if.then318
%164 = load i8, i8* %verify_whole_domain, align 1
%tobool321 = trunc i8 %164 to i1
br i1 %tobool321, label %if.then322, label %if.else327
if.then322: ; preds = %if.then320
%call324 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.50, i32 0, i32 0))
to label %invoke.cont323 unwind label %lpad77
invoke.cont323: ; preds = %if.then322
%call326 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call324, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont325 unwind label %lpad77
invoke.cont325: ; preds = %invoke.cont323
br label %if.end332
if.else327: ; preds = %if.then320
%call329 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.51, i32 0, i32 0))
to label %invoke.cont328 unwind label %lpad77
invoke.cont328: ; preds = %if.else327
%call331 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call329, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont330 unwind label %lpad77
invoke.cont330: ; preds = %invoke.cont328
br label %if.end332
if.end332: ; preds = %invoke.cont330, %invoke.cont325
br label %if.end333
if.end333: ; preds = %if.end332, %if.then318
%165 = load double, double* %tolerance, align 8
%166 = load i8, i8* %verify_whole_domain, align 1
%tobool334 = trunc i8 %166 to i1
%call336 = invoke i32 @_ZN6miniFE15verify_solutionINS_6VectorIdiiEEEEiRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERKS4_db(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %mesh, %"struct.miniFE::Vector"* dereferenceable(32) %x, double %165, i1 zeroext %tobool334)
to label %invoke.cont335 unwind label %lpad77
invoke.cont335: ; preds = %if.end333
br label %if.end337
if.end337: ; preds = %invoke.cont335, %if.end316
br label %if.end338
if.end338: ; preds = %if.end337, %invoke.cont304
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp339) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %title, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.52, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp339)
to label %invoke.cont341 unwind label %lpad340
invoke.cont341: ; preds = %if.end338
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp339) #2
%167 = load i32, i32* %myproc, align 4
%cmp343 = icmp eq i32 %167, 0
br i1 %cmp343, label %if.then344, label %if.end869
if.then344: ; preds = %invoke.cont341
%168 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%169 = bitcast %class.YAML_Doc* %168 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp346) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp345, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp346)
to label %invoke.cont348 unwind label %lpad347
invoke.cont348: ; preds = %if.then344
%call351 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %169, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp345)
to label %invoke.cont350 unwind label %lpad349
invoke.cont350: ; preds = %invoke.cont348
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp353) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp352, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.53, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp353)
to label %invoke.cont355 unwind label %lpad354
invoke.cont355: ; preds = %invoke.cont350
%call359 = invoke i8* @_ZN6miniFE10TypeTraitsIdE4nameEv()
to label %invoke.cont358 unwind label %lpad357
invoke.cont358: ; preds = %invoke.cont355
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp360) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp356, i8* %call359, %"class.std::allocator"* dereferenceable(1) %ref.tmp360)
to label %invoke.cont362 unwind label %lpad361
invoke.cont362: ; preds = %invoke.cont358
%call365 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call351, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp352, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp356)
to label %invoke.cont364 unwind label %lpad363
invoke.cont364: ; preds = %invoke.cont362
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp356)
to label %invoke.cont366 unwind label %lpad361
invoke.cont366: ; preds = %invoke.cont364
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp360) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp352)
to label %invoke.cont370 unwind label %lpad354
invoke.cont370: ; preds = %invoke.cont366
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp353) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp345)
to label %invoke.cont374 unwind label %lpad347
invoke.cont374: ; preds = %invoke.cont370
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp346) #2
%170 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%171 = bitcast %class.YAML_Doc* %170 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp379) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp378, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp379)
to label %invoke.cont381 unwind label %lpad380
invoke.cont381: ; preds = %invoke.cont374
%call384 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %171, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp378)
to label %invoke.cont383 unwind label %lpad382
invoke.cont383: ; preds = %invoke.cont381
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp386) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp385, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.54, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp386)
to label %invoke.cont388 unwind label %lpad387
invoke.cont388: ; preds = %invoke.cont383
%call392 = invoke i8* @_ZN6miniFE10TypeTraitsIiE4nameEv()
to label %invoke.cont391 unwind label %lpad390
invoke.cont391: ; preds = %invoke.cont388
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp393) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp389, i8* %call392, %"class.std::allocator"* dereferenceable(1) %ref.tmp393)
to label %invoke.cont395 unwind label %lpad394
invoke.cont395: ; preds = %invoke.cont391
%call398 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call384, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp385, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp389)
to label %invoke.cont397 unwind label %lpad396
invoke.cont397: ; preds = %invoke.cont395
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp389)
to label %invoke.cont399 unwind label %lpad394
invoke.cont399: ; preds = %invoke.cont397
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp393) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp385)
to label %invoke.cont403 unwind label %lpad387
invoke.cont403: ; preds = %invoke.cont399
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp386) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp378)
to label %invoke.cont407 unwind label %lpad380
invoke.cont407: ; preds = %invoke.cont403
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp379) #2
%172 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%173 = bitcast %class.YAML_Doc* %172 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp412) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp411, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp412)
to label %invoke.cont414 unwind label %lpad413
invoke.cont414: ; preds = %invoke.cont407
%call417 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %173, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp411)
to label %invoke.cont416 unwind label %lpad415
invoke.cont416: ; preds = %invoke.cont414
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp419) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp418, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.55, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp419)
to label %invoke.cont421 unwind label %lpad420
invoke.cont421: ; preds = %invoke.cont416
%call425 = invoke i8* @_ZN6miniFE10TypeTraitsIiE4nameEv()
to label %invoke.cont424 unwind label %lpad423
invoke.cont424: ; preds = %invoke.cont421
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp426) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp422, i8* %call425, %"class.std::allocator"* dereferenceable(1) %ref.tmp426)
to label %invoke.cont428 unwind label %lpad427
invoke.cont428: ; preds = %invoke.cont424
%call431 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call417, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp418, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp422)
to label %invoke.cont430 unwind label %lpad429
invoke.cont430: ; preds = %invoke.cont428
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp422)
to label %invoke.cont432 unwind label %lpad427
invoke.cont432: ; preds = %invoke.cont430
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp426) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp418)
to label %invoke.cont436 unwind label %lpad420
invoke.cont436: ; preds = %invoke.cont432
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp419) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp411)
to label %invoke.cont440 unwind label %lpad413
invoke.cont440: ; preds = %invoke.cont436
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp412) #2
%174 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%175 = bitcast %class.YAML_Doc* %174 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp445) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp444, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp445)
to label %invoke.cont447 unwind label %lpad446
invoke.cont447: ; preds = %invoke.cont440
%call450 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %175, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp444)
to label %invoke.cont449 unwind label %lpad448
invoke.cont449: ; preds = %invoke.cont447
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp444)
to label %invoke.cont451 unwind label %lpad446
invoke.cont451: ; preds = %invoke.cont449
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp445) #2
%176 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%177 = bitcast %class.YAML_Doc* %176 to %class.YAML_Element*
%call457 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %177, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont456 unwind label %lpad455
invoke.cont456: ; preds = %invoke.cont451
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp459) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp458, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.56, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp459)
to label %invoke.cont461 unwind label %lpad460
invoke.cont461: ; preds = %invoke.cont456
%178 = load i32, i32* %num_iters, align 4
%call464 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(%class.YAML_Element* %call457, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp458, i32 %178)
to label %invoke.cont463 unwind label %lpad462
invoke.cont463: ; preds = %invoke.cont461
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp458)
to label %invoke.cont465 unwind label %lpad460
invoke.cont465: ; preds = %invoke.cont463
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp459) #2
%179 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%180 = bitcast %class.YAML_Doc* %179 to %class.YAML_Element*
%call470 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %180, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont469 unwind label %lpad455
invoke.cont469: ; preds = %invoke.cont465
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp472) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp471, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.57, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp472)
to label %invoke.cont474 unwind label %lpad473
invoke.cont474: ; preds = %invoke.cont469
%181 = load double, double* %rnorm, align 8
%call477 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call470, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp471, double %181)
to label %invoke.cont476 unwind label %lpad475
invoke.cont476: ; preds = %invoke.cont474
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp471)
to label %invoke.cont478 unwind label %lpad473
invoke.cont478: ; preds = %invoke.cont476
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp472) #2
%182 = load i32, i32* %global_nx, align 4
store i32 %182, i32* %global_nrows, align 4
%183 = load i32, i32* %global_ny, align 4
%184 = load i32, i32* %global_nz, align 4
%mul = mul nsw i32 %183, %184
%185 = load i32, i32* %global_nrows, align 4
%mul482 = mul nsw i32 %185, %mul
store i32 %mul482, i32* %global_nrows, align 4
%186 = load i64, i64* %global_nnz, align 8
%conv483 = uitofp i64 %186 to double
%mul484 = fmul double %conv483, 2.000000e+00
store double %mul484, double* %mv_flops, align 8
%187 = load i32, i32* %global_nrows, align 4
%conv485 = sitofp i32 %187 to double
%mul486 = fmul double %conv485, 2.000000e+00
store double %mul486, double* %dot_flops, align 8
%188 = load i32, i32* %global_nrows, align 4
%conv487 = sitofp i32 %188 to double
%mul488 = fmul double %conv487, 3.000000e+00
store double %mul488, double* %waxpy_flops, align 8
%189 = load i32, i32* %num_iters, align 4
%add489 = add nsw i32 %189, 1
%conv490 = sitofp i32 %add489 to double
%190 = load double, double* %mv_flops, align 8
%mul491 = fmul double %190, %conv490
store double %mul491, double* %mv_flops, align 8
%191 = load i32, i32* %num_iters, align 4
%mul492 = mul nsw i32 2, %191
%conv493 = sitofp i32 %mul492 to double
%192 = load double, double* %dot_flops, align 8
%mul494 = fmul double %192, %conv493
store double %mul494, double* %dot_flops, align 8
%193 = load i32, i32* %num_iters, align 4
%mul495 = mul nsw i32 3, %193
%add496 = add nsw i32 %mul495, 2
%conv497 = sitofp i32 %add496 to double
%194 = load double, double* %waxpy_flops, align 8
%mul498 = fmul double %194, %conv497
store double %mul498, double* %waxpy_flops, align 8
%195 = load double, double* %mv_flops, align 8
%196 = load double, double* %dot_flops, align 8
%add499 = fadd double %195, %196
%197 = load double, double* %waxpy_flops, align 8
%add500 = fadd double %add499, %197
store double %add500, double* %total_flops, align 8
store double -1.000000e+00, double* %mv_mflops, align 8
%arrayidx501 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 2
%198 = load double, double* %arrayidx501, align 16
%cmp502 = fcmp ogt double %198, 1.000000e-04
br i1 %cmp502, label %if.then503, label %if.end506
if.then503: ; preds = %invoke.cont478
%199 = load double, double* %mv_flops, align 8
%arrayidx504 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 2
%200 = load double, double* %arrayidx504, align 16
%div = fdiv double %199, %200
%mul505 = fmul double 0x3EB0C6F7A0B5ED8D, %div
store double %mul505, double* %mv_mflops, align 8
br label %if.end506
lpad340: ; preds = %if.end338
%201 = landingpad { i8*, i32 }
cleanup
%202 = extractvalue { i8*, i32 } %201, 0
store i8* %202, i8** %exn.slot, align 8
%203 = extractvalue { i8*, i32 } %201, 1
store i32 %203, i32* %ehselector.slot, align 4
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp339) #2
br label %ehcleanup874
lpad347: ; preds = %invoke.cont370, %if.then344
%204 = landingpad { i8*, i32 }
cleanup
%205 = extractvalue { i8*, i32 } %204, 0
store i8* %205, i8** %exn.slot, align 8
%206 = extractvalue { i8*, i32 } %204, 1
store i32 %206, i32* %ehselector.slot, align 4
br label %ehcleanup377
lpad349: ; preds = %invoke.cont348
%207 = landingpad { i8*, i32 }
cleanup
%208 = extractvalue { i8*, i32 } %207, 0
store i8* %208, i8** %exn.slot, align 8
%209 = extractvalue { i8*, i32 } %207, 1
store i32 %209, i32* %ehselector.slot, align 4
br label %ehcleanup375
lpad354: ; preds = %invoke.cont366, %invoke.cont350
%210 = landingpad { i8*, i32 }
cleanup
%211 = extractvalue { i8*, i32 } %210, 0
store i8* %211, i8** %exn.slot, align 8
%212 = extractvalue { i8*, i32 } %210, 1
store i32 %212, i32* %ehselector.slot, align 4
br label %ehcleanup373
lpad357: ; preds = %invoke.cont355
%213 = landingpad { i8*, i32 }
cleanup
%214 = extractvalue { i8*, i32 } %213, 0
store i8* %214, i8** %exn.slot, align 8
%215 = extractvalue { i8*, i32 } %213, 1
store i32 %215, i32* %ehselector.slot, align 4
br label %ehcleanup371
lpad361: ; preds = %invoke.cont364, %invoke.cont358
%216 = landingpad { i8*, i32 }
cleanup
%217 = extractvalue { i8*, i32 } %216, 0
store i8* %217, i8** %exn.slot, align 8
%218 = extractvalue { i8*, i32 } %216, 1
store i32 %218, i32* %ehselector.slot, align 4
br label %ehcleanup369
lpad363: ; preds = %invoke.cont362
%219 = landingpad { i8*, i32 }
cleanup
%220 = extractvalue { i8*, i32 } %219, 0
store i8* %220, i8** %exn.slot, align 8
%221 = extractvalue { i8*, i32 } %219, 1
store i32 %221, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp356)
to label %invoke.cont368 unwind label %terminate.lpad
invoke.cont368: ; preds = %lpad363
br label %ehcleanup369
ehcleanup369: ; preds = %invoke.cont368, %lpad361
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp360) #2
br label %ehcleanup371
ehcleanup371: ; preds = %ehcleanup369, %lpad357
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp352)
to label %invoke.cont372 unwind label %terminate.lpad
invoke.cont372: ; preds = %ehcleanup371
br label %ehcleanup373
ehcleanup373: ; preds = %invoke.cont372, %lpad354
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp353) #2
br label %ehcleanup375
ehcleanup375: ; preds = %ehcleanup373, %lpad349
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp345)
to label %invoke.cont376 unwind label %terminate.lpad
invoke.cont376: ; preds = %ehcleanup375
br label %ehcleanup377
ehcleanup377: ; preds = %invoke.cont376, %lpad347
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp346) #2
br label %ehcleanup871
lpad380: ; preds = %invoke.cont403, %invoke.cont374
%222 = landingpad { i8*, i32 }
cleanup
%223 = extractvalue { i8*, i32 } %222, 0
store i8* %223, i8** %exn.slot, align 8
%224 = extractvalue { i8*, i32 } %222, 1
store i32 %224, i32* %ehselector.slot, align 4
br label %ehcleanup410
lpad382: ; preds = %invoke.cont381
%225 = landingpad { i8*, i32 }
cleanup
%226 = extractvalue { i8*, i32 } %225, 0
store i8* %226, i8** %exn.slot, align 8
%227 = extractvalue { i8*, i32 } %225, 1
store i32 %227, i32* %ehselector.slot, align 4
br label %ehcleanup408
lpad387: ; preds = %invoke.cont399, %invoke.cont383
%228 = landingpad { i8*, i32 }
cleanup
%229 = extractvalue { i8*, i32 } %228, 0
store i8* %229, i8** %exn.slot, align 8
%230 = extractvalue { i8*, i32 } %228, 1
store i32 %230, i32* %ehselector.slot, align 4
br label %ehcleanup406
lpad390: ; preds = %invoke.cont388
%231 = landingpad { i8*, i32 }
cleanup
%232 = extractvalue { i8*, i32 } %231, 0
store i8* %232, i8** %exn.slot, align 8
%233 = extractvalue { i8*, i32 } %231, 1
store i32 %233, i32* %ehselector.slot, align 4
br label %ehcleanup404
lpad394: ; preds = %invoke.cont397, %invoke.cont391
%234 = landingpad { i8*, i32 }
cleanup
%235 = extractvalue { i8*, i32 } %234, 0
store i8* %235, i8** %exn.slot, align 8
%236 = extractvalue { i8*, i32 } %234, 1
store i32 %236, i32* %ehselector.slot, align 4
br label %ehcleanup402
lpad396: ; preds = %invoke.cont395
%237 = landingpad { i8*, i32 }
cleanup
%238 = extractvalue { i8*, i32 } %237, 0
store i8* %238, i8** %exn.slot, align 8
%239 = extractvalue { i8*, i32 } %237, 1
store i32 %239, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp389)
to label %invoke.cont401 unwind label %terminate.lpad
invoke.cont401: ; preds = %lpad396
br label %ehcleanup402
ehcleanup402: ; preds = %invoke.cont401, %lpad394
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp393) #2
br label %ehcleanup404
ehcleanup404: ; preds = %ehcleanup402, %lpad390
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp385)
to label %invoke.cont405 unwind label %terminate.lpad
invoke.cont405: ; preds = %ehcleanup404
br label %ehcleanup406
ehcleanup406: ; preds = %invoke.cont405, %lpad387
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp386) #2
br label %ehcleanup408
ehcleanup408: ; preds = %ehcleanup406, %lpad382
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp378)
to label %invoke.cont409 unwind label %terminate.lpad
invoke.cont409: ; preds = %ehcleanup408
br label %ehcleanup410
ehcleanup410: ; preds = %invoke.cont409, %lpad380
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp379) #2
br label %ehcleanup871
lpad413: ; preds = %invoke.cont436, %invoke.cont407
%240 = landingpad { i8*, i32 }
cleanup
%241 = extractvalue { i8*, i32 } %240, 0
store i8* %241, i8** %exn.slot, align 8
%242 = extractvalue { i8*, i32 } %240, 1
store i32 %242, i32* %ehselector.slot, align 4
br label %ehcleanup443
lpad415: ; preds = %invoke.cont414
%243 = landingpad { i8*, i32 }
cleanup
%244 = extractvalue { i8*, i32 } %243, 0
store i8* %244, i8** %exn.slot, align 8
%245 = extractvalue { i8*, i32 } %243, 1
store i32 %245, i32* %ehselector.slot, align 4
br label %ehcleanup441
lpad420: ; preds = %invoke.cont432, %invoke.cont416
%246 = landingpad { i8*, i32 }
cleanup
%247 = extractvalue { i8*, i32 } %246, 0
store i8* %247, i8** %exn.slot, align 8
%248 = extractvalue { i8*, i32 } %246, 1
store i32 %248, i32* %ehselector.slot, align 4
br label %ehcleanup439
lpad423: ; preds = %invoke.cont421
%249 = landingpad { i8*, i32 }
cleanup
%250 = extractvalue { i8*, i32 } %249, 0
store i8* %250, i8** %exn.slot, align 8
%251 = extractvalue { i8*, i32 } %249, 1
store i32 %251, i32* %ehselector.slot, align 4
br label %ehcleanup437
lpad427: ; preds = %invoke.cont430, %invoke.cont424
%252 = landingpad { i8*, i32 }
cleanup
%253 = extractvalue { i8*, i32 } %252, 0
store i8* %253, i8** %exn.slot, align 8
%254 = extractvalue { i8*, i32 } %252, 1
store i32 %254, i32* %ehselector.slot, align 4
br label %ehcleanup435
lpad429: ; preds = %invoke.cont428
%255 = landingpad { i8*, i32 }
cleanup
%256 = extractvalue { i8*, i32 } %255, 0
store i8* %256, i8** %exn.slot, align 8
%257 = extractvalue { i8*, i32 } %255, 1
store i32 %257, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp422)
to label %invoke.cont434 unwind label %terminate.lpad
invoke.cont434: ; preds = %lpad429
br label %ehcleanup435
ehcleanup435: ; preds = %invoke.cont434, %lpad427
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp426) #2
br label %ehcleanup437
ehcleanup437: ; preds = %ehcleanup435, %lpad423
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp418)
to label %invoke.cont438 unwind label %terminate.lpad
invoke.cont438: ; preds = %ehcleanup437
br label %ehcleanup439
ehcleanup439: ; preds = %invoke.cont438, %lpad420
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp419) #2
br label %ehcleanup441
ehcleanup441: ; preds = %ehcleanup439, %lpad415
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp411)
to label %invoke.cont442 unwind label %terminate.lpad
invoke.cont442: ; preds = %ehcleanup441
br label %ehcleanup443
ehcleanup443: ; preds = %invoke.cont442, %lpad413
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp412) #2
br label %ehcleanup871
lpad446: ; preds = %invoke.cont449, %invoke.cont440
%258 = landingpad { i8*, i32 }
cleanup
%259 = extractvalue { i8*, i32 } %258, 0
store i8* %259, i8** %exn.slot, align 8
%260 = extractvalue { i8*, i32 } %258, 1
store i32 %260, i32* %ehselector.slot, align 4
br label %ehcleanup454
lpad448: ; preds = %invoke.cont447
%261 = landingpad { i8*, i32 }
cleanup
%262 = extractvalue { i8*, i32 } %261, 0
store i8* %262, i8** %exn.slot, align 8
%263 = extractvalue { i8*, i32 } %261, 1
store i32 %263, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp444)
to label %invoke.cont453 unwind label %terminate.lpad
invoke.cont453: ; preds = %lpad448
br label %ehcleanup454
ehcleanup454: ; preds = %invoke.cont453, %lpad446
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp445) #2
br label %ehcleanup871
lpad455: ; preds = %if.end852, %if.else819, %if.then794, %invoke.cont765, %invoke.cont740, %if.end722, %if.else700, %if.then686, %invoke.cont668, %if.end657, %if.else635, %if.then621, %invoke.cont603, %if.end592, %if.else570, %if.then556, %invoke.cont538, %if.end527, %invoke.cont465, %invoke.cont451
%264 = landingpad { i8*, i32 }
cleanup
%265 = extractvalue { i8*, i32 } %264, 0
store i8* %265, i8** %exn.slot, align 8
%266 = extractvalue { i8*, i32 } %264, 1
store i32 %266, i32* %ehselector.slot, align 4
br label %ehcleanup871
lpad460: ; preds = %invoke.cont463, %invoke.cont456
%267 = landingpad { i8*, i32 }
cleanup
%268 = extractvalue { i8*, i32 } %267, 0
store i8* %268, i8** %exn.slot, align 8
%269 = extractvalue { i8*, i32 } %267, 1
store i32 %269, i32* %ehselector.slot, align 4
br label %ehcleanup468
lpad462: ; preds = %invoke.cont461
%270 = landingpad { i8*, i32 }
cleanup
%271 = extractvalue { i8*, i32 } %270, 0
store i8* %271, i8** %exn.slot, align 8
%272 = extractvalue { i8*, i32 } %270, 1
store i32 %272, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp458)
to label %invoke.cont467 unwind label %terminate.lpad
invoke.cont467: ; preds = %lpad462
br label %ehcleanup468
ehcleanup468: ; preds = %invoke.cont467, %lpad460
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp459) #2
br label %ehcleanup871
lpad473: ; preds = %invoke.cont476, %invoke.cont469
%273 = landingpad { i8*, i32 }
cleanup
%274 = extractvalue { i8*, i32 } %273, 0
store i8* %274, i8** %exn.slot, align 8
%275 = extractvalue { i8*, i32 } %273, 1
store i32 %275, i32* %ehselector.slot, align 4
br label %ehcleanup481
lpad475: ; preds = %invoke.cont474
%276 = landingpad { i8*, i32 }
cleanup
%277 = extractvalue { i8*, i32 } %276, 0
store i8* %277, i8** %exn.slot, align 8
%278 = extractvalue { i8*, i32 } %276, 1
store i32 %278, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp471)
to label %invoke.cont480 unwind label %terminate.lpad
invoke.cont480: ; preds = %lpad475
br label %ehcleanup481
ehcleanup481: ; preds = %invoke.cont480, %lpad473
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp472) #2
br label %ehcleanup871
if.end506: ; preds = %if.then503, %invoke.cont478
store double -1.000000e+00, double* %dot_mflops, align 8
%arrayidx507 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 1
%279 = load double, double* %arrayidx507, align 8
%cmp508 = fcmp ogt double %279, 1.000000e-04
br i1 %cmp508, label %if.then509, label %if.end513
if.then509: ; preds = %if.end506
%280 = load double, double* %dot_flops, align 8
%arrayidx510 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 1
%281 = load double, double* %arrayidx510, align 8
%div511 = fdiv double %280, %281
%mul512 = fmul double 0x3EB0C6F7A0B5ED8D, %div511
store double %mul512, double* %dot_mflops, align 8
br label %if.end513
if.end513: ; preds = %if.then509, %if.end506
store double -1.000000e+00, double* %waxpy_mflops, align 8
%arrayidx514 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 0
%282 = load double, double* %arrayidx514, align 16
%cmp515 = fcmp ogt double %282, 1.000000e-04
br i1 %cmp515, label %if.then516, label %if.end520
if.then516: ; preds = %if.end513
%283 = load double, double* %waxpy_flops, align 8
%arrayidx517 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 0
%284 = load double, double* %arrayidx517, align 16
%div518 = fdiv double %283, %284
%mul519 = fmul double 0x3EB0C6F7A0B5ED8D, %div518
store double %mul519, double* %waxpy_mflops, align 8
br label %if.end520
if.end520: ; preds = %if.then516, %if.end513
store double -1.000000e+00, double* %total_mflops, align 8
%arrayidx521 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 4
%285 = load double, double* %arrayidx521, align 16
%cmp522 = fcmp ogt double %285, 1.000000e-04
br i1 %cmp522, label %if.then523, label %if.end527
if.then523: ; preds = %if.end520
%286 = load double, double* %total_flops, align 8
%arrayidx524 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 4
%287 = load double, double* %arrayidx524, align 16
%div525 = fdiv double %286, %287
%mul526 = fmul double 0x3EB0C6F7A0B5ED8D, %div525
store double %mul526, double* %total_mflops, align 8
br label %if.end527
if.end527: ; preds = %if.then523, %if.end520
%288 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%289 = bitcast %class.YAML_Doc* %288 to %class.YAML_Element*
%call529 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %289, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont528 unwind label %lpad455
invoke.cont528: ; preds = %if.end527
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp531) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp530, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.58, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp531)
to label %invoke.cont533 unwind label %lpad532
invoke.cont533: ; preds = %invoke.cont528
%arrayidx534 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 0
%290 = load double, double* %arrayidx534, align 16
%call537 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call529, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp530, double %290)
to label %invoke.cont536 unwind label %lpad535
invoke.cont536: ; preds = %invoke.cont533
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp530)
to label %invoke.cont538 unwind label %lpad532
invoke.cont538: ; preds = %invoke.cont536
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp531) #2
%291 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%292 = bitcast %class.YAML_Doc* %291 to %class.YAML_Element*
%call543 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %292, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont542 unwind label %lpad455
invoke.cont542: ; preds = %invoke.cont538
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp545) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp544, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.59, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp545)
to label %invoke.cont547 unwind label %lpad546
invoke.cont547: ; preds = %invoke.cont542
%293 = load double, double* %waxpy_flops, align 8
%call550 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call543, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp544, double %293)
to label %invoke.cont549 unwind label %lpad548
invoke.cont549: ; preds = %invoke.cont547
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp544)
to label %invoke.cont551 unwind label %lpad546
invoke.cont551: ; preds = %invoke.cont549
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp545) #2
%294 = load double, double* %waxpy_mflops, align 8
%cmp555 = fcmp oge double %294, 0.000000e+00
br i1 %cmp555, label %if.then556, label %if.else570
if.then556: ; preds = %invoke.cont551
%295 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%296 = bitcast %class.YAML_Doc* %295 to %class.YAML_Element*
%call558 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %296, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont557 unwind label %lpad455
invoke.cont557: ; preds = %if.then556
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp560) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp559, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.60, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp560)
to label %invoke.cont562 unwind label %lpad561
invoke.cont562: ; preds = %invoke.cont557
%297 = load double, double* %waxpy_mflops, align 8
%call565 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call558, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp559, double %297)
to label %invoke.cont564 unwind label %lpad563
invoke.cont564: ; preds = %invoke.cont562
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp559)
to label %invoke.cont566 unwind label %lpad561
invoke.cont566: ; preds = %invoke.cont564
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp560) #2
br label %if.end592
lpad532: ; preds = %invoke.cont536, %invoke.cont528
%298 = landingpad { i8*, i32 }
cleanup
%299 = extractvalue { i8*, i32 } %298, 0
store i8* %299, i8** %exn.slot, align 8
%300 = extractvalue { i8*, i32 } %298, 1
store i32 %300, i32* %ehselector.slot, align 4
br label %ehcleanup541
lpad535: ; preds = %invoke.cont533
%301 = landingpad { i8*, i32 }
cleanup
%302 = extractvalue { i8*, i32 } %301, 0
store i8* %302, i8** %exn.slot, align 8
%303 = extractvalue { i8*, i32 } %301, 1
store i32 %303, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp530)
to label %invoke.cont540 unwind label %terminate.lpad
invoke.cont540: ; preds = %lpad535
br label %ehcleanup541
ehcleanup541: ; preds = %invoke.cont540, %lpad532
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp531) #2
br label %ehcleanup871
lpad546: ; preds = %invoke.cont549, %invoke.cont542
%304 = landingpad { i8*, i32 }
cleanup
%305 = extractvalue { i8*, i32 } %304, 0
store i8* %305, i8** %exn.slot, align 8
%306 = extractvalue { i8*, i32 } %304, 1
store i32 %306, i32* %ehselector.slot, align 4
br label %ehcleanup554
lpad548: ; preds = %invoke.cont547
%307 = landingpad { i8*, i32 }
cleanup
%308 = extractvalue { i8*, i32 } %307, 0
store i8* %308, i8** %exn.slot, align 8
%309 = extractvalue { i8*, i32 } %307, 1
store i32 %309, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp544)
to label %invoke.cont553 unwind label %terminate.lpad
invoke.cont553: ; preds = %lpad548
br label %ehcleanup554
ehcleanup554: ; preds = %invoke.cont553, %lpad546
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp545) #2
br label %ehcleanup871
lpad561: ; preds = %invoke.cont564, %invoke.cont557
%310 = landingpad { i8*, i32 }
cleanup
%311 = extractvalue { i8*, i32 } %310, 0
store i8* %311, i8** %exn.slot, align 8
%312 = extractvalue { i8*, i32 } %310, 1
store i32 %312, i32* %ehselector.slot, align 4
br label %ehcleanup569
lpad563: ; preds = %invoke.cont562
%313 = landingpad { i8*, i32 }
cleanup
%314 = extractvalue { i8*, i32 } %313, 0
store i8* %314, i8** %exn.slot, align 8
%315 = extractvalue { i8*, i32 } %313, 1
store i32 %315, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp559)
to label %invoke.cont568 unwind label %terminate.lpad
invoke.cont568: ; preds = %lpad563
br label %ehcleanup569
ehcleanup569: ; preds = %invoke.cont568, %lpad561
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp560) #2
br label %ehcleanup871
if.else570: ; preds = %invoke.cont551
%316 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%317 = bitcast %class.YAML_Doc* %316 to %class.YAML_Element*
%call572 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %317, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont571 unwind label %lpad455
invoke.cont571: ; preds = %if.else570
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp574) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp573, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.60, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp574)
to label %invoke.cont576 unwind label %lpad575
invoke.cont576: ; preds = %invoke.cont571
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp578) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp577, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp578)
to label %invoke.cont580 unwind label %lpad579
invoke.cont580: ; preds = %invoke.cont576
%call583 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call572, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp573, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp577)
to label %invoke.cont582 unwind label %lpad581
invoke.cont582: ; preds = %invoke.cont580
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp577)
to label %invoke.cont584 unwind label %lpad579
invoke.cont584: ; preds = %invoke.cont582
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp578) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp573)
to label %invoke.cont588 unwind label %lpad575
invoke.cont588: ; preds = %invoke.cont584
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp574) #2
br label %if.end592
lpad575: ; preds = %invoke.cont584, %invoke.cont571
%318 = landingpad { i8*, i32 }
cleanup
%319 = extractvalue { i8*, i32 } %318, 0
store i8* %319, i8** %exn.slot, align 8
%320 = extractvalue { i8*, i32 } %318, 1
store i32 %320, i32* %ehselector.slot, align 4
br label %ehcleanup591
lpad579: ; preds = %invoke.cont582, %invoke.cont576
%321 = landingpad { i8*, i32 }
cleanup
%322 = extractvalue { i8*, i32 } %321, 0
store i8* %322, i8** %exn.slot, align 8
%323 = extractvalue { i8*, i32 } %321, 1
store i32 %323, i32* %ehselector.slot, align 4
br label %ehcleanup587
lpad581: ; preds = %invoke.cont580
%324 = landingpad { i8*, i32 }
cleanup
%325 = extractvalue { i8*, i32 } %324, 0
store i8* %325, i8** %exn.slot, align 8
%326 = extractvalue { i8*, i32 } %324, 1
store i32 %326, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp577)
to label %invoke.cont586 unwind label %terminate.lpad
invoke.cont586: ; preds = %lpad581
br label %ehcleanup587
ehcleanup587: ; preds = %invoke.cont586, %lpad579
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp578) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp573)
to label %invoke.cont590 unwind label %terminate.lpad
invoke.cont590: ; preds = %ehcleanup587
br label %ehcleanup591
ehcleanup591: ; preds = %invoke.cont590, %lpad575
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp574) #2
br label %ehcleanup871
if.end592: ; preds = %invoke.cont588, %invoke.cont566
%327 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%328 = bitcast %class.YAML_Doc* %327 to %class.YAML_Element*
%call594 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %328, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont593 unwind label %lpad455
invoke.cont593: ; preds = %if.end592
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp596) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp595, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.62, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp596)
to label %invoke.cont598 unwind label %lpad597
invoke.cont598: ; preds = %invoke.cont593
%arrayidx599 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 1
%329 = load double, double* %arrayidx599, align 8
%call602 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call594, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp595, double %329)
to label %invoke.cont601 unwind label %lpad600
invoke.cont601: ; preds = %invoke.cont598
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp595)
to label %invoke.cont603 unwind label %lpad597
invoke.cont603: ; preds = %invoke.cont601
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp596) #2
%330 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%331 = bitcast %class.YAML_Doc* %330 to %class.YAML_Element*
%call608 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %331, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont607 unwind label %lpad455
invoke.cont607: ; preds = %invoke.cont603
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp610) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp609, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.63, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp610)
to label %invoke.cont612 unwind label %lpad611
invoke.cont612: ; preds = %invoke.cont607
%332 = load double, double* %dot_flops, align 8
%call615 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call608, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp609, double %332)
to label %invoke.cont614 unwind label %lpad613
invoke.cont614: ; preds = %invoke.cont612
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp609)
to label %invoke.cont616 unwind label %lpad611
invoke.cont616: ; preds = %invoke.cont614
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp610) #2
%333 = load double, double* %dot_mflops, align 8
%cmp620 = fcmp oge double %333, 0.000000e+00
br i1 %cmp620, label %if.then621, label %if.else635
if.then621: ; preds = %invoke.cont616
%334 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%335 = bitcast %class.YAML_Doc* %334 to %class.YAML_Element*
%call623 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %335, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont622 unwind label %lpad455
invoke.cont622: ; preds = %if.then621
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp625) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp624, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.64, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp625)
to label %invoke.cont627 unwind label %lpad626
invoke.cont627: ; preds = %invoke.cont622
%336 = load double, double* %dot_mflops, align 8
%call630 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call623, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp624, double %336)
to label %invoke.cont629 unwind label %lpad628
invoke.cont629: ; preds = %invoke.cont627
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp624)
to label %invoke.cont631 unwind label %lpad626
invoke.cont631: ; preds = %invoke.cont629
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp625) #2
br label %if.end657
lpad597: ; preds = %invoke.cont601, %invoke.cont593
%337 = landingpad { i8*, i32 }
cleanup
%338 = extractvalue { i8*, i32 } %337, 0
store i8* %338, i8** %exn.slot, align 8
%339 = extractvalue { i8*, i32 } %337, 1
store i32 %339, i32* %ehselector.slot, align 4
br label %ehcleanup606
lpad600: ; preds = %invoke.cont598
%340 = landingpad { i8*, i32 }
cleanup
%341 = extractvalue { i8*, i32 } %340, 0
store i8* %341, i8** %exn.slot, align 8
%342 = extractvalue { i8*, i32 } %340, 1
store i32 %342, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp595)
to label %invoke.cont605 unwind label %terminate.lpad
invoke.cont605: ; preds = %lpad600
br label %ehcleanup606
ehcleanup606: ; preds = %invoke.cont605, %lpad597
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp596) #2
br label %ehcleanup871
lpad611: ; preds = %invoke.cont614, %invoke.cont607
%343 = landingpad { i8*, i32 }
cleanup
%344 = extractvalue { i8*, i32 } %343, 0
store i8* %344, i8** %exn.slot, align 8
%345 = extractvalue { i8*, i32 } %343, 1
store i32 %345, i32* %ehselector.slot, align 4
br label %ehcleanup619
lpad613: ; preds = %invoke.cont612
%346 = landingpad { i8*, i32 }
cleanup
%347 = extractvalue { i8*, i32 } %346, 0
store i8* %347, i8** %exn.slot, align 8
%348 = extractvalue { i8*, i32 } %346, 1
store i32 %348, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp609)
to label %invoke.cont618 unwind label %terminate.lpad
invoke.cont618: ; preds = %lpad613
br label %ehcleanup619
ehcleanup619: ; preds = %invoke.cont618, %lpad611
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp610) #2
br label %ehcleanup871
lpad626: ; preds = %invoke.cont629, %invoke.cont622
%349 = landingpad { i8*, i32 }
cleanup
%350 = extractvalue { i8*, i32 } %349, 0
store i8* %350, i8** %exn.slot, align 8
%351 = extractvalue { i8*, i32 } %349, 1
store i32 %351, i32* %ehselector.slot, align 4
br label %ehcleanup634
lpad628: ; preds = %invoke.cont627
%352 = landingpad { i8*, i32 }
cleanup
%353 = extractvalue { i8*, i32 } %352, 0
store i8* %353, i8** %exn.slot, align 8
%354 = extractvalue { i8*, i32 } %352, 1
store i32 %354, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp624)
to label %invoke.cont633 unwind label %terminate.lpad
invoke.cont633: ; preds = %lpad628
br label %ehcleanup634
ehcleanup634: ; preds = %invoke.cont633, %lpad626
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp625) #2
br label %ehcleanup871
if.else635: ; preds = %invoke.cont616
%355 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%356 = bitcast %class.YAML_Doc* %355 to %class.YAML_Element*
%call637 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %356, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont636 unwind label %lpad455
invoke.cont636: ; preds = %if.else635
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp639) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp638, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.64, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp639)
to label %invoke.cont641 unwind label %lpad640
invoke.cont641: ; preds = %invoke.cont636
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp643) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp642, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp643)
to label %invoke.cont645 unwind label %lpad644
invoke.cont645: ; preds = %invoke.cont641
%call648 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call637, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp638, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp642)
to label %invoke.cont647 unwind label %lpad646
invoke.cont647: ; preds = %invoke.cont645
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp642)
to label %invoke.cont649 unwind label %lpad644
invoke.cont649: ; preds = %invoke.cont647
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp643) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp638)
to label %invoke.cont653 unwind label %lpad640
invoke.cont653: ; preds = %invoke.cont649
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp639) #2
br label %if.end657
lpad640: ; preds = %invoke.cont649, %invoke.cont636
%357 = landingpad { i8*, i32 }
cleanup
%358 = extractvalue { i8*, i32 } %357, 0
store i8* %358, i8** %exn.slot, align 8
%359 = extractvalue { i8*, i32 } %357, 1
store i32 %359, i32* %ehselector.slot, align 4
br label %ehcleanup656
lpad644: ; preds = %invoke.cont647, %invoke.cont641
%360 = landingpad { i8*, i32 }
cleanup
%361 = extractvalue { i8*, i32 } %360, 0
store i8* %361, i8** %exn.slot, align 8
%362 = extractvalue { i8*, i32 } %360, 1
store i32 %362, i32* %ehselector.slot, align 4
br label %ehcleanup652
lpad646: ; preds = %invoke.cont645
%363 = landingpad { i8*, i32 }
cleanup
%364 = extractvalue { i8*, i32 } %363, 0
store i8* %364, i8** %exn.slot, align 8
%365 = extractvalue { i8*, i32 } %363, 1
store i32 %365, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp642)
to label %invoke.cont651 unwind label %terminate.lpad
invoke.cont651: ; preds = %lpad646
br label %ehcleanup652
ehcleanup652: ; preds = %invoke.cont651, %lpad644
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp643) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp638)
to label %invoke.cont655 unwind label %terminate.lpad
invoke.cont655: ; preds = %ehcleanup652
br label %ehcleanup656
ehcleanup656: ; preds = %invoke.cont655, %lpad640
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp639) #2
br label %ehcleanup871
if.end657: ; preds = %invoke.cont653, %invoke.cont631
%366 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%367 = bitcast %class.YAML_Doc* %366 to %class.YAML_Element*
%call659 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %367, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont658 unwind label %lpad455
invoke.cont658: ; preds = %if.end657
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp661) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp660, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.65, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp661)
to label %invoke.cont663 unwind label %lpad662
invoke.cont663: ; preds = %invoke.cont658
%arrayidx664 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 2
%368 = load double, double* %arrayidx664, align 16
%call667 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call659, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp660, double %368)
to label %invoke.cont666 unwind label %lpad665
invoke.cont666: ; preds = %invoke.cont663
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp660)
to label %invoke.cont668 unwind label %lpad662
invoke.cont668: ; preds = %invoke.cont666
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp661) #2
%369 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%370 = bitcast %class.YAML_Doc* %369 to %class.YAML_Element*
%call673 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %370, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont672 unwind label %lpad455
invoke.cont672: ; preds = %invoke.cont668
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp675) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp674, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.66, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp675)
to label %invoke.cont677 unwind label %lpad676
invoke.cont677: ; preds = %invoke.cont672
%371 = load double, double* %mv_flops, align 8
%call680 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call673, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp674, double %371)
to label %invoke.cont679 unwind label %lpad678
invoke.cont679: ; preds = %invoke.cont677
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp674)
to label %invoke.cont681 unwind label %lpad676
invoke.cont681: ; preds = %invoke.cont679
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp675) #2
%372 = load double, double* %mv_mflops, align 8
%cmp685 = fcmp oge double %372, 0.000000e+00
br i1 %cmp685, label %if.then686, label %if.else700
if.then686: ; preds = %invoke.cont681
%373 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%374 = bitcast %class.YAML_Doc* %373 to %class.YAML_Element*
%call688 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %374, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont687 unwind label %lpad455
invoke.cont687: ; preds = %if.then686
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp690) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp689, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.67, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp690)
to label %invoke.cont692 unwind label %lpad691
invoke.cont692: ; preds = %invoke.cont687
%375 = load double, double* %mv_mflops, align 8
%call695 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call688, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp689, double %375)
to label %invoke.cont694 unwind label %lpad693
invoke.cont694: ; preds = %invoke.cont692
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp689)
to label %invoke.cont696 unwind label %lpad691
invoke.cont696: ; preds = %invoke.cont694
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp690) #2
br label %if.end722
lpad662: ; preds = %invoke.cont666, %invoke.cont658
%376 = landingpad { i8*, i32 }
cleanup
%377 = extractvalue { i8*, i32 } %376, 0
store i8* %377, i8** %exn.slot, align 8
%378 = extractvalue { i8*, i32 } %376, 1
store i32 %378, i32* %ehselector.slot, align 4
br label %ehcleanup671
lpad665: ; preds = %invoke.cont663
%379 = landingpad { i8*, i32 }
cleanup
%380 = extractvalue { i8*, i32 } %379, 0
store i8* %380, i8** %exn.slot, align 8
%381 = extractvalue { i8*, i32 } %379, 1
store i32 %381, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp660)
to label %invoke.cont670 unwind label %terminate.lpad
invoke.cont670: ; preds = %lpad665
br label %ehcleanup671
ehcleanup671: ; preds = %invoke.cont670, %lpad662
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp661) #2
br label %ehcleanup871
lpad676: ; preds = %invoke.cont679, %invoke.cont672
%382 = landingpad { i8*, i32 }
cleanup
%383 = extractvalue { i8*, i32 } %382, 0
store i8* %383, i8** %exn.slot, align 8
%384 = extractvalue { i8*, i32 } %382, 1
store i32 %384, i32* %ehselector.slot, align 4
br label %ehcleanup684
lpad678: ; preds = %invoke.cont677
%385 = landingpad { i8*, i32 }
cleanup
%386 = extractvalue { i8*, i32 } %385, 0
store i8* %386, i8** %exn.slot, align 8
%387 = extractvalue { i8*, i32 } %385, 1
store i32 %387, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp674)
to label %invoke.cont683 unwind label %terminate.lpad
invoke.cont683: ; preds = %lpad678
br label %ehcleanup684
ehcleanup684: ; preds = %invoke.cont683, %lpad676
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp675) #2
br label %ehcleanup871
lpad691: ; preds = %invoke.cont694, %invoke.cont687
%388 = landingpad { i8*, i32 }
cleanup
%389 = extractvalue { i8*, i32 } %388, 0
store i8* %389, i8** %exn.slot, align 8
%390 = extractvalue { i8*, i32 } %388, 1
store i32 %390, i32* %ehselector.slot, align 4
br label %ehcleanup699
lpad693: ; preds = %invoke.cont692
%391 = landingpad { i8*, i32 }
cleanup
%392 = extractvalue { i8*, i32 } %391, 0
store i8* %392, i8** %exn.slot, align 8
%393 = extractvalue { i8*, i32 } %391, 1
store i32 %393, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp689)
to label %invoke.cont698 unwind label %terminate.lpad
invoke.cont698: ; preds = %lpad693
br label %ehcleanup699
ehcleanup699: ; preds = %invoke.cont698, %lpad691
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp690) #2
br label %ehcleanup871
if.else700: ; preds = %invoke.cont681
%394 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%395 = bitcast %class.YAML_Doc* %394 to %class.YAML_Element*
%call702 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %395, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont701 unwind label %lpad455
invoke.cont701: ; preds = %if.else700
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp704) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp703, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.67, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp704)
to label %invoke.cont706 unwind label %lpad705
invoke.cont706: ; preds = %invoke.cont701
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp708) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp707, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp708)
to label %invoke.cont710 unwind label %lpad709
invoke.cont710: ; preds = %invoke.cont706
%call713 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call702, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp703, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp707)
to label %invoke.cont712 unwind label %lpad711
invoke.cont712: ; preds = %invoke.cont710
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp707)
to label %invoke.cont714 unwind label %lpad709
invoke.cont714: ; preds = %invoke.cont712
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp708) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp703)
to label %invoke.cont718 unwind label %lpad705
invoke.cont718: ; preds = %invoke.cont714
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp704) #2
br label %if.end722
lpad705: ; preds = %invoke.cont714, %invoke.cont701
%396 = landingpad { i8*, i32 }
cleanup
%397 = extractvalue { i8*, i32 } %396, 0
store i8* %397, i8** %exn.slot, align 8
%398 = extractvalue { i8*, i32 } %396, 1
store i32 %398, i32* %ehselector.slot, align 4
br label %ehcleanup721
lpad709: ; preds = %invoke.cont712, %invoke.cont706
%399 = landingpad { i8*, i32 }
cleanup
%400 = extractvalue { i8*, i32 } %399, 0
store i8* %400, i8** %exn.slot, align 8
%401 = extractvalue { i8*, i32 } %399, 1
store i32 %401, i32* %ehselector.slot, align 4
br label %ehcleanup717
lpad711: ; preds = %invoke.cont710
%402 = landingpad { i8*, i32 }
cleanup
%403 = extractvalue { i8*, i32 } %402, 0
store i8* %403, i8** %exn.slot, align 8
%404 = extractvalue { i8*, i32 } %402, 1
store i32 %404, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp707)
to label %invoke.cont716 unwind label %terminate.lpad
invoke.cont716: ; preds = %lpad711
br label %ehcleanup717
ehcleanup717: ; preds = %invoke.cont716, %lpad709
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp708) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp703)
to label %invoke.cont720 unwind label %terminate.lpad
invoke.cont720: ; preds = %ehcleanup717
br label %ehcleanup721
ehcleanup721: ; preds = %invoke.cont720, %lpad705
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp704) #2
br label %ehcleanup871
if.end722: ; preds = %invoke.cont718, %invoke.cont696
%405 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%406 = bitcast %class.YAML_Doc* %405 to %class.YAML_Element*
%call724 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %406, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont723 unwind label %lpad455
invoke.cont723: ; preds = %if.end722
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp726) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp725, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp726)
to label %invoke.cont728 unwind label %lpad727
invoke.cont728: ; preds = %invoke.cont723
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp730) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp729, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp730)
to label %invoke.cont732 unwind label %lpad731
invoke.cont732: ; preds = %invoke.cont728
%call735 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call724, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp725, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp729)
to label %invoke.cont734 unwind label %lpad733
invoke.cont734: ; preds = %invoke.cont732
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp729)
to label %invoke.cont736 unwind label %lpad731
invoke.cont736: ; preds = %invoke.cont734
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp730) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp725)
to label %invoke.cont740 unwind label %lpad727
invoke.cont740: ; preds = %invoke.cont736
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp726) #2
%407 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%408 = bitcast %class.YAML_Doc* %407 to %class.YAML_Element*
%call745 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %408, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont744 unwind label %lpad455
invoke.cont744: ; preds = %invoke.cont740
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp747) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp746, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp747)
to label %invoke.cont749 unwind label %lpad748
invoke.cont749: ; preds = %invoke.cont744
%call752 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call745, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp746)
to label %invoke.cont751 unwind label %lpad750
invoke.cont751: ; preds = %invoke.cont749
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp754) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp753, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.69, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp754)
to label %invoke.cont756 unwind label %lpad755
invoke.cont756: ; preds = %invoke.cont751
%arrayidx757 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 4
%409 = load double, double* %arrayidx757, align 16
%call760 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call752, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp753, double %409)
to label %invoke.cont759 unwind label %lpad758
invoke.cont759: ; preds = %invoke.cont756
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp753)
to label %invoke.cont761 unwind label %lpad755
invoke.cont761: ; preds = %invoke.cont759
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp754) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp746)
to label %invoke.cont765 unwind label %lpad748
invoke.cont765: ; preds = %invoke.cont761
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp747) #2
%410 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%411 = bitcast %class.YAML_Doc* %410 to %class.YAML_Element*
%call770 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %411, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont769 unwind label %lpad455
invoke.cont769: ; preds = %invoke.cont765
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp772) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp771, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp772)
to label %invoke.cont774 unwind label %lpad773
invoke.cont774: ; preds = %invoke.cont769
%call777 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call770, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp771)
to label %invoke.cont776 unwind label %lpad775
invoke.cont776: ; preds = %invoke.cont774
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp779) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp778, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.70, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp779)
to label %invoke.cont781 unwind label %lpad780
invoke.cont781: ; preds = %invoke.cont776
%412 = load double, double* %total_flops, align 8
%call784 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call777, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp778, double %412)
to label %invoke.cont783 unwind label %lpad782
invoke.cont783: ; preds = %invoke.cont781
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp778)
to label %invoke.cont785 unwind label %lpad780
invoke.cont785: ; preds = %invoke.cont783
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp779) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp771)
to label %invoke.cont789 unwind label %lpad773
invoke.cont789: ; preds = %invoke.cont785
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp772) #2
%413 = load double, double* %total_mflops, align 8
%cmp793 = fcmp oge double %413, 0.000000e+00
br i1 %cmp793, label %if.then794, label %if.else819
if.then794: ; preds = %invoke.cont789
%414 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%415 = bitcast %class.YAML_Doc* %414 to %class.YAML_Element*
%call796 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %415, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont795 unwind label %lpad455
invoke.cont795: ; preds = %if.then794
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp798) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp797, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp798)
to label %invoke.cont800 unwind label %lpad799
invoke.cont800: ; preds = %invoke.cont795
%call803 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call796, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp797)
to label %invoke.cont802 unwind label %lpad801
invoke.cont802: ; preds = %invoke.cont800
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp805) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp804, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.71, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp805)
to label %invoke.cont807 unwind label %lpad806
invoke.cont807: ; preds = %invoke.cont802
%416 = load double, double* %total_mflops, align 8
%call810 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call803, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp804, double %416)
to label %invoke.cont809 unwind label %lpad808
invoke.cont809: ; preds = %invoke.cont807
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp804)
to label %invoke.cont811 unwind label %lpad806
invoke.cont811: ; preds = %invoke.cont809
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp805) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp797)
to label %invoke.cont815 unwind label %lpad799
invoke.cont815: ; preds = %invoke.cont811
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp798) #2
br label %if.end852
lpad727: ; preds = %invoke.cont736, %invoke.cont723
%417 = landingpad { i8*, i32 }
cleanup
%418 = extractvalue { i8*, i32 } %417, 0
store i8* %418, i8** %exn.slot, align 8
%419 = extractvalue { i8*, i32 } %417, 1
store i32 %419, i32* %ehselector.slot, align 4
br label %ehcleanup743
lpad731: ; preds = %invoke.cont734, %invoke.cont728
%420 = landingpad { i8*, i32 }
cleanup
%421 = extractvalue { i8*, i32 } %420, 0
store i8* %421, i8** %exn.slot, align 8
%422 = extractvalue { i8*, i32 } %420, 1
store i32 %422, i32* %ehselector.slot, align 4
br label %ehcleanup739
lpad733: ; preds = %invoke.cont732
%423 = landingpad { i8*, i32 }
cleanup
%424 = extractvalue { i8*, i32 } %423, 0
store i8* %424, i8** %exn.slot, align 8
%425 = extractvalue { i8*, i32 } %423, 1
store i32 %425, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp729)
to label %invoke.cont738 unwind label %terminate.lpad
invoke.cont738: ; preds = %lpad733
br label %ehcleanup739
ehcleanup739: ; preds = %invoke.cont738, %lpad731
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp730) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp725)
to label %invoke.cont742 unwind label %terminate.lpad
invoke.cont742: ; preds = %ehcleanup739
br label %ehcleanup743
ehcleanup743: ; preds = %invoke.cont742, %lpad727
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp726) #2
br label %ehcleanup871
lpad748: ; preds = %invoke.cont761, %invoke.cont744
%426 = landingpad { i8*, i32 }
cleanup
%427 = extractvalue { i8*, i32 } %426, 0
store i8* %427, i8** %exn.slot, align 8
%428 = extractvalue { i8*, i32 } %426, 1
store i32 %428, i32* %ehselector.slot, align 4
br label %ehcleanup768
lpad750: ; preds = %invoke.cont749
%429 = landingpad { i8*, i32 }
cleanup
%430 = extractvalue { i8*, i32 } %429, 0
store i8* %430, i8** %exn.slot, align 8
%431 = extractvalue { i8*, i32 } %429, 1
store i32 %431, i32* %ehselector.slot, align 4
br label %ehcleanup766
lpad755: ; preds = %invoke.cont759, %invoke.cont751
%432 = landingpad { i8*, i32 }
cleanup
%433 = extractvalue { i8*, i32 } %432, 0
store i8* %433, i8** %exn.slot, align 8
%434 = extractvalue { i8*, i32 } %432, 1
store i32 %434, i32* %ehselector.slot, align 4
br label %ehcleanup764
lpad758: ; preds = %invoke.cont756
%435 = landingpad { i8*, i32 }
cleanup
%436 = extractvalue { i8*, i32 } %435, 0
store i8* %436, i8** %exn.slot, align 8
%437 = extractvalue { i8*, i32 } %435, 1
store i32 %437, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp753)
to label %invoke.cont763 unwind label %terminate.lpad
invoke.cont763: ; preds = %lpad758
br label %ehcleanup764
ehcleanup764: ; preds = %invoke.cont763, %lpad755
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp754) #2
br label %ehcleanup766
ehcleanup766: ; preds = %ehcleanup764, %lpad750
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp746)
to label %invoke.cont767 unwind label %terminate.lpad
invoke.cont767: ; preds = %ehcleanup766
br label %ehcleanup768
ehcleanup768: ; preds = %invoke.cont767, %lpad748
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp747) #2
br label %ehcleanup871
lpad773: ; preds = %invoke.cont785, %invoke.cont769
%438 = landingpad { i8*, i32 }
cleanup
%439 = extractvalue { i8*, i32 } %438, 0
store i8* %439, i8** %exn.slot, align 8
%440 = extractvalue { i8*, i32 } %438, 1
store i32 %440, i32* %ehselector.slot, align 4
br label %ehcleanup792
lpad775: ; preds = %invoke.cont774
%441 = landingpad { i8*, i32 }
cleanup
%442 = extractvalue { i8*, i32 } %441, 0
store i8* %442, i8** %exn.slot, align 8
%443 = extractvalue { i8*, i32 } %441, 1
store i32 %443, i32* %ehselector.slot, align 4
br label %ehcleanup790
lpad780: ; preds = %invoke.cont783, %invoke.cont776
%444 = landingpad { i8*, i32 }
cleanup
%445 = extractvalue { i8*, i32 } %444, 0
store i8* %445, i8** %exn.slot, align 8
%446 = extractvalue { i8*, i32 } %444, 1
store i32 %446, i32* %ehselector.slot, align 4
br label %ehcleanup788
lpad782: ; preds = %invoke.cont781
%447 = landingpad { i8*, i32 }
cleanup
%448 = extractvalue { i8*, i32 } %447, 0
store i8* %448, i8** %exn.slot, align 8
%449 = extractvalue { i8*, i32 } %447, 1
store i32 %449, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp778)
to label %invoke.cont787 unwind label %terminate.lpad
invoke.cont787: ; preds = %lpad782
br label %ehcleanup788
ehcleanup788: ; preds = %invoke.cont787, %lpad780
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp779) #2
br label %ehcleanup790
ehcleanup790: ; preds = %ehcleanup788, %lpad775
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp771)
to label %invoke.cont791 unwind label %terminate.lpad
invoke.cont791: ; preds = %ehcleanup790
br label %ehcleanup792
ehcleanup792: ; preds = %invoke.cont791, %lpad773
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp772) #2
br label %ehcleanup871
lpad799: ; preds = %invoke.cont811, %invoke.cont795
%450 = landingpad { i8*, i32 }
cleanup
%451 = extractvalue { i8*, i32 } %450, 0
store i8* %451, i8** %exn.slot, align 8
%452 = extractvalue { i8*, i32 } %450, 1
store i32 %452, i32* %ehselector.slot, align 4
br label %ehcleanup818
lpad801: ; preds = %invoke.cont800
%453 = landingpad { i8*, i32 }
cleanup
%454 = extractvalue { i8*, i32 } %453, 0
store i8* %454, i8** %exn.slot, align 8
%455 = extractvalue { i8*, i32 } %453, 1
store i32 %455, i32* %ehselector.slot, align 4
br label %ehcleanup816
lpad806: ; preds = %invoke.cont809, %invoke.cont802
%456 = landingpad { i8*, i32 }
cleanup
%457 = extractvalue { i8*, i32 } %456, 0
store i8* %457, i8** %exn.slot, align 8
%458 = extractvalue { i8*, i32 } %456, 1
store i32 %458, i32* %ehselector.slot, align 4
br label %ehcleanup814
lpad808: ; preds = %invoke.cont807
%459 = landingpad { i8*, i32 }
cleanup
%460 = extractvalue { i8*, i32 } %459, 0
store i8* %460, i8** %exn.slot, align 8
%461 = extractvalue { i8*, i32 } %459, 1
store i32 %461, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp804)
to label %invoke.cont813 unwind label %terminate.lpad
invoke.cont813: ; preds = %lpad808
br label %ehcleanup814
ehcleanup814: ; preds = %invoke.cont813, %lpad806
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp805) #2
br label %ehcleanup816
ehcleanup816: ; preds = %ehcleanup814, %lpad801
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp797)
to label %invoke.cont817 unwind label %terminate.lpad
invoke.cont817: ; preds = %ehcleanup816
br label %ehcleanup818
ehcleanup818: ; preds = %invoke.cont817, %lpad799
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp798) #2
br label %ehcleanup871
if.else819: ; preds = %invoke.cont789
%462 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%463 = bitcast %class.YAML_Doc* %462 to %class.YAML_Element*
%call821 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %463, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont820 unwind label %lpad455
invoke.cont820: ; preds = %if.else819
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp823) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp822, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp823)
to label %invoke.cont825 unwind label %lpad824
invoke.cont825: ; preds = %invoke.cont820
%call828 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %call821, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp822)
to label %invoke.cont827 unwind label %lpad826
invoke.cont827: ; preds = %invoke.cont825
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp830) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp829, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.71, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp830)
to label %invoke.cont832 unwind label %lpad831
invoke.cont832: ; preds = %invoke.cont827
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp834) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp833, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp834)
to label %invoke.cont836 unwind label %lpad835
invoke.cont836: ; preds = %invoke.cont832
%call839 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %call828, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp829, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp833)
to label %invoke.cont838 unwind label %lpad837
invoke.cont838: ; preds = %invoke.cont836
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp833)
to label %invoke.cont840 unwind label %lpad835
invoke.cont840: ; preds = %invoke.cont838
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp834) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp829)
to label %invoke.cont844 unwind label %lpad831
invoke.cont844: ; preds = %invoke.cont840
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp830) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp822)
to label %invoke.cont848 unwind label %lpad824
invoke.cont848: ; preds = %invoke.cont844
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp823) #2
br label %if.end852
lpad824: ; preds = %invoke.cont844, %invoke.cont820
%464 = landingpad { i8*, i32 }
cleanup
%465 = extractvalue { i8*, i32 } %464, 0
store i8* %465, i8** %exn.slot, align 8
%466 = extractvalue { i8*, i32 } %464, 1
store i32 %466, i32* %ehselector.slot, align 4
br label %ehcleanup851
lpad826: ; preds = %invoke.cont825
%467 = landingpad { i8*, i32 }
cleanup
%468 = extractvalue { i8*, i32 } %467, 0
store i8* %468, i8** %exn.slot, align 8
%469 = extractvalue { i8*, i32 } %467, 1
store i32 %469, i32* %ehselector.slot, align 4
br label %ehcleanup849
lpad831: ; preds = %invoke.cont840, %invoke.cont827
%470 = landingpad { i8*, i32 }
cleanup
%471 = extractvalue { i8*, i32 } %470, 0
store i8* %471, i8** %exn.slot, align 8
%472 = extractvalue { i8*, i32 } %470, 1
store i32 %472, i32* %ehselector.slot, align 4
br label %ehcleanup847
lpad835: ; preds = %invoke.cont838, %invoke.cont832
%473 = landingpad { i8*, i32 }
cleanup
%474 = extractvalue { i8*, i32 } %473, 0
store i8* %474, i8** %exn.slot, align 8
%475 = extractvalue { i8*, i32 } %473, 1
store i32 %475, i32* %ehselector.slot, align 4
br label %ehcleanup843
lpad837: ; preds = %invoke.cont836
%476 = landingpad { i8*, i32 }
cleanup
%477 = extractvalue { i8*, i32 } %476, 0
store i8* %477, i8** %exn.slot, align 8
%478 = extractvalue { i8*, i32 } %476, 1
store i32 %478, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp833)
to label %invoke.cont842 unwind label %terminate.lpad
invoke.cont842: ; preds = %lpad837
br label %ehcleanup843
ehcleanup843: ; preds = %invoke.cont842, %lpad835
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp834) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp829)
to label %invoke.cont846 unwind label %terminate.lpad
invoke.cont846: ; preds = %ehcleanup843
br label %ehcleanup847
ehcleanup847: ; preds = %invoke.cont846, %lpad831
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp830) #2
br label %ehcleanup849
ehcleanup849: ; preds = %ehcleanup847, %lpad826
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp822)
to label %invoke.cont850 unwind label %terminate.lpad
invoke.cont850: ; preds = %ehcleanup849
br label %ehcleanup851
ehcleanup851: ; preds = %invoke.cont850, %lpad824
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp823) #2
br label %ehcleanup871
if.end852: ; preds = %invoke.cont848, %invoke.cont815
%479 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%480 = bitcast %class.YAML_Doc* %479 to %class.YAML_Element*
%call854 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %480, %"class.std::__cxx11::basic_string"* dereferenceable(32) %title)
to label %invoke.cont853 unwind label %lpad455
invoke.cont853: ; preds = %if.end852
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp856) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp855, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.72, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp856)
to label %invoke.cont858 unwind label %lpad857
invoke.cont858: ; preds = %invoke.cont853
%arrayidx859 = getelementptr inbounds [5 x double], [5 x double]* %cg_times, i64 0, i64 4
%481 = load double, double* %arrayidx859, align 16
%482 = load i32, i32* %num_iters, align 4
%conv860 = sitofp i32 %482 to double
%div861 = fdiv double %481, %conv860
%call864 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call854, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp855, double %div861)
to label %invoke.cont863 unwind label %lpad862
invoke.cont863: ; preds = %invoke.cont858
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp855)
to label %invoke.cont865 unwind label %lpad857
invoke.cont865: ; preds = %invoke.cont863
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp856) #2
br label %if.end869
lpad857: ; preds = %invoke.cont863, %invoke.cont853
%483 = landingpad { i8*, i32 }
cleanup
%484 = extractvalue { i8*, i32 } %483, 0
store i8* %484, i8** %exn.slot, align 8
%485 = extractvalue { i8*, i32 } %483, 1
store i32 %485, i32* %ehselector.slot, align 4
br label %ehcleanup868
lpad862: ; preds = %invoke.cont858
%486 = landingpad { i8*, i32 }
cleanup
%487 = extractvalue { i8*, i32 } %486, 0
store i8* %487, i8** %exn.slot, align 8
%488 = extractvalue { i8*, i32 } %486, 1
store i32 %488, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp855)
to label %invoke.cont867 unwind label %terminate.lpad
invoke.cont867: ; preds = %lpad862
br label %ehcleanup868
ehcleanup868: ; preds = %invoke.cont867, %lpad857
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp856) #2
br label %ehcleanup871
if.end869: ; preds = %invoke.cont865, %invoke.cont341
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %title)
to label %invoke.cont870 unwind label %lpad77
invoke.cont870: ; preds = %if.end869
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %x)
to label %invoke.cont873 unwind label %lpad69
invoke.cont873: ; preds = %invoke.cont870
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %b)
to label %invoke.cont876 unwind label %lpad36
invoke.cont876: ; preds = %invoke.cont873
invoke void @_ZN6miniFE9CSRMatrixIdiiED2Ev(%"struct.miniFE::CSRMatrix"* %A)
to label %invoke.cont879 unwind label %lpad
invoke.cont879: ; preds = %invoke.cont876
call void @_ZN6miniFE23simple_mesh_descriptionIiED2Ev(%"class.miniFE::simple_mesh_description"* %mesh)
ret void
ehcleanup871: ; preds = %ehcleanup868, %ehcleanup851, %ehcleanup818, %ehcleanup792, %ehcleanup768, %ehcleanup743, %ehcleanup721, %ehcleanup699, %ehcleanup684, %ehcleanup671, %ehcleanup656, %ehcleanup634, %ehcleanup619, %ehcleanup606, %ehcleanup591, %ehcleanup569, %ehcleanup554, %ehcleanup541, %ehcleanup481, %ehcleanup468, %lpad455, %ehcleanup454, %ehcleanup443, %ehcleanup410, %ehcleanup377
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %title)
to label %invoke.cont872 unwind label %terminate.lpad
invoke.cont872: ; preds = %ehcleanup871
br label %ehcleanup874
ehcleanup874: ; preds = %invoke.cont872, %lpad340, %ehcleanup184, %ehcleanup162, %ehcleanup143, %ehcleanup121, %lpad77
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %x)
to label %invoke.cont875 unwind label %terminate.lpad
invoke.cont875: ; preds = %ehcleanup874
br label %ehcleanup877
ehcleanup877: ; preds = %invoke.cont875, %lpad69
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %b)
to label %invoke.cont878 unwind label %terminate.lpad
invoke.cont878: ; preds = %ehcleanup877
br label %ehcleanup880
ehcleanup880: ; preds = %invoke.cont878, %lpad36
invoke void @_ZN6miniFE9CSRMatrixIdiiED2Ev(%"struct.miniFE::CSRMatrix"* %A)
to label %invoke.cont881 unwind label %terminate.lpad
invoke.cont881: ; preds = %ehcleanup880
br label %ehcleanup882
ehcleanup882: ; preds = %invoke.cont881, %lpad
invoke void @_ZN6miniFE23simple_mesh_descriptionIiED2Ev(%"class.miniFE::simple_mesh_description"* %mesh)
to label %invoke.cont883 unwind label %terminate.lpad
invoke.cont883: ; preds = %ehcleanup882
br label %eh.resume
eh.resume: ; preds = %invoke.cont883
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val884 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val884
terminate.lpad: ; preds = %ehcleanup882, %ehcleanup880, %ehcleanup877, %ehcleanup874, %ehcleanup871, %lpad862, %ehcleanup849, %ehcleanup843, %lpad837, %ehcleanup816, %lpad808, %ehcleanup790, %lpad782, %ehcleanup766, %lpad758, %ehcleanup739, %lpad733, %ehcleanup717, %lpad711, %lpad693, %lpad678, %lpad665, %ehcleanup652, %lpad646, %lpad628, %lpad613, %lpad600, %ehcleanup587, %lpad581, %lpad563, %lpad548, %lpad535, %lpad475, %lpad462, %lpad448, %ehcleanup441, %ehcleanup437, %lpad429, %ehcleanup408, %ehcleanup404, %lpad396, %ehcleanup375, %ehcleanup371, %lpad363, %ehcleanup182, %lpad174, %ehcleanup158, %lpad152, %ehcleanup141, %lpad133, %ehcleanup, %lpad113
%489 = landingpad { i8*, i32 }
catch i8* null
%490 = extractvalue { i8*, i32 } %489, 0
call void @__clang_call_terminate(i8* %490) #13
unreachable
}
declare %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element*, %"class.std::__cxx11::basic_string"* dereferenceable(32), double) #1
declare void @_ZN8YAML_Doc12generateYAMLB5cxx11Ev(%"class.std::__cxx11::basic_string"* sret, %class.YAML_Doc*) #1
declare void @_ZN6miniFE12finalize_mpiEv() #1
declare void @_ZN8YAML_DocD1Ev(%class.YAML_Doc*) unnamed_addr #1
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_ostringstream"*) unnamed_addr #1
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt6vectorI3BoxSaIS0_EED2Ev(%"class.std::vector"* %this) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"class.std::vector"*, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 8
%this1 = load %"class.std::vector"*, %"class.std::vector"** %this.addr, align 8
%0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %0, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl, i32 0, i32 0
%1 = load %struct.Box*, %struct.Box** %_M_start, align 8
%2 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %2, i32 0, i32 0
%_M_finish = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
%3 = load %struct.Box*, %struct.Box** %_M_finish, align 8
%4 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%call = invoke dereferenceable(1) %"class.std::allocator.0"* @_ZNSt12_Vector_baseI3BoxSaIS0_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %4)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
invoke void @_ZSt8_DestroyIP3BoxS0_EvT_S2_RSaIT0_E(%struct.Box* %1, %struct.Box* %3, %"class.std::allocator.0"* dereferenceable(1) %call)
to label %invoke.cont3 unwind label %lpad
invoke.cont3: ; preds = %invoke.cont
%5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
call void @_ZNSt12_Vector_baseI3BoxSaIS0_EED2Ev(%"struct.std::_Vector_base"* %5)
ret void
lpad: ; preds = %invoke.cont, %entry
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
%9 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
invoke void @_ZNSt12_Vector_baseI3BoxSaIS0_EED2Ev(%"struct.std::_Vector_base"* %9)
to label %invoke.cont4 unwind label %terminate.lpad
invoke.cont4: ; preds = %lpad
br label %eh.resume
eh.resume: ; preds = %invoke.cont4
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val5
terminate.lpad: ; preds = %lpad
%10 = landingpad { i8*, i32 }
catch i8* null
%11 = extractvalue { i8*, i32 } %10, 0
call void @__clang_call_terminate(i8* %11) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE10ParametersD2Ev(%"struct.miniFE::Parameters"* %this) unnamed_addr #3 comdat align 2 {
entry:
%this.addr = alloca %"struct.miniFE::Parameters"*, align 8
store %"struct.miniFE::Parameters"* %this, %"struct.miniFE::Parameters"** %this.addr, align 8
%this1 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %this.addr, align 8
%name = getelementptr inbounds %"struct.miniFE::Parameters", %"struct.miniFE::Parameters"* %this1, i32 0, i32 8
call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %name)
ret void
}
declare %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element*, %"class.std::__cxx11::basic_string"* dereferenceable(32), %"class.std::__cxx11::basic_string"* dereferenceable(32)) #1
declare %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element*, %"class.std::__cxx11::basic_string"* dereferenceable(32)) #1
declare %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(%class.YAML_Element*, %"class.std::__cxx11::basic_string"* dereferenceable(32), i32) #1
; Function Attrs: nounwind
declare i64 @time(i64*) #7
; Function Attrs: nounwind
declare %struct.tm* @localtime(i64*) #7
declare signext i8 @_ZNSt9basic_iosIcSt11char_traitsIcEE4fillEc(%"class.std::basic_ios"*, i8 signext) #1
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr i64 @_ZNSt8ios_base5widthEl(%"class.std::ios_base"* %this, i64 %__wide) #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::ios_base"*, align 8
%__wide.addr = alloca i64, align 8
%__old = alloca i64, align 8
store %"class.std::ios_base"* %this, %"class.std::ios_base"** %this.addr, align 8
store i64 %__wide, i64* %__wide.addr, align 8
%this1 = load %"class.std::ios_base"*, %"class.std::ios_base"** %this.addr, align 8
%_M_width = getelementptr inbounds %"class.std::ios_base", %"class.std::ios_base"* %this1, i32 0, i32 2
%0 = load i64, i64* %_M_width, align 8
store i64 %0, i64* %__old, align 8
%1 = load i64, i64* %__wide.addr, align 8
%_M_width2 = getelementptr inbounds %"class.std::ios_base", %"class.std::ios_base"* %this1, i32 0, i32 2
store i64 %1, i64* %_M_width2, align 8
%2 = load i64, i64* %__old, align 8
ret i64 %2
}
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(%"class.std::__cxx11::basic_string"*) unnamed_addr #1
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorI3BoxEC2Ev(%"class.__gnu_cxx::new_allocator.1"* %this) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
%this1 = load %"class.__gnu_cxx::new_allocator.1"*, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorI3BoxED2Ev(%"class.__gnu_cxx::new_allocator.1"* %this) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
%this1 = load %"class.__gnu_cxx::new_allocator.1"*, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt12_Vector_baseI3BoxSaIS0_EEC2EmRKS1_(%"struct.std::_Vector_base"* %this, i64 %__n, %"class.std::allocator.0"* dereferenceable(1) %__a) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"struct.std::_Vector_base"*, align 8
%__n.addr = alloca i64, align 8
%__a.addr = alloca %"class.std::allocator.0"*, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 8
%this1 = load %"struct.std::_Vector_base"*, %"struct.std::_Vector_base"** %this.addr, align 8
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%0 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %__a.addr, align 8
call void @_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implC2ERKS1_(%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl, %"class.std::allocator.0"* dereferenceable(1) %0)
%1 = load i64, i64* %__n.addr, align 8
invoke void @_ZNSt12_Vector_baseI3BoxSaIS0_EE17_M_create_storageEm(%"struct.std::_Vector_base"* %this1, i64 %1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
ret void
lpad: ; preds = %entry
%2 = landingpad { i8*, i32 }
cleanup
%3 = extractvalue { i8*, i32 } %2, 0
store i8* %3, i8** %exn.slot, align 8
%4 = extractvalue { i8*, i32 } %2, 1
store i32 %4, i32* %ehselector.slot, align 4
call void @_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl) #2
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val2
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt6vectorI3BoxSaIS0_EE18_M_fill_initializeEmRKS0_(%"class.std::vector"* %this, i64 %__n, %struct.Box* dereferenceable(24) %__value) #3 comdat align 2 {
entry:
%this.addr = alloca %"class.std::vector"*, align 8
%__n.addr = alloca i64, align 8
%__value.addr = alloca %struct.Box*, align 8
store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__value, %struct.Box** %__value.addr, align 8
%this1 = load %"class.std::vector"*, %"class.std::vector"** %this.addr, align 8
%0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %0, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl, i32 0, i32 0
%1 = load %struct.Box*, %struct.Box** %_M_start, align 8
%2 = load i64, i64* %__n.addr, align 8
%3 = load %struct.Box*, %struct.Box** %__value.addr, align 8
%4 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%call = call dereferenceable(1) %"class.std::allocator.0"* @_ZNSt12_Vector_baseI3BoxSaIS0_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %4)
%call2 = call %struct.Box* @_ZSt24__uninitialized_fill_n_aIP3BoxmS0_S0_ET_S2_T0_RKT1_RSaIT2_E(%struct.Box* %1, i64 %2, %struct.Box* dereferenceable(24) %3, %"class.std::allocator.0"* dereferenceable(1) %call)
%5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
%_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %5, i32 0, i32 0
%_M_finish = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
store %struct.Box* %call2, %struct.Box** %_M_finish, align 8
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt12_Vector_baseI3BoxSaIS0_EED2Ev(%"struct.std::_Vector_base"* %this) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"struct.std::_Vector_base"*, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 8
%this1 = load %"struct.std::_Vector_base"*, %"struct.std::_Vector_base"** %this.addr, align 8
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl, i32 0, i32 0
%0 = load %struct.Box*, %struct.Box** %_M_start, align 8
%_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
%1 = load %struct.Box*, %struct.Box** %_M_end_of_storage, align 8
%_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
%2 = load %struct.Box*, %struct.Box** %_M_start4, align 8
%sub.ptr.lhs.cast = ptrtoint %struct.Box* %1 to i64
%sub.ptr.rhs.cast = ptrtoint %struct.Box* %2 to i64
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 24
invoke void @_ZNSt12_Vector_baseI3BoxSaIS0_EE13_M_deallocateEPS0_m(%"struct.std::_Vector_base"* %this1, %struct.Box* %0, i64 %sub.ptr.div)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
call void @_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl5) #2
ret void
lpad: ; preds = %entry
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
%_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
call void @_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl6) #2
br label %eh.resume
eh.resume: ; preds = %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val7
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implC2ERKS1_(%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this, %"class.std::allocator.0"* dereferenceable(1) %__a) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"*, align 8
%__a.addr = alloca %"class.std::allocator.0"*, align 8
store %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this, %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"** %this.addr, align 8
store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 8
%this1 = load %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"*, %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"** %this.addr, align 8
%0 = bitcast %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this1 to %"class.std::allocator.0"*
%1 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %__a.addr, align 8
call void @_ZNSaI3BoxEC2ERKS0_(%"class.std::allocator.0"* %0, %"class.std::allocator.0"* dereferenceable(1) %1) #2
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this1, i32 0, i32 0
store %struct.Box* null, %struct.Box** %_M_start, align 8
%_M_finish = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this1, i32 0, i32 1
store %struct.Box* null, %struct.Box** %_M_finish, align 8
%_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this1, i32 0, i32 2
store %struct.Box* null, %struct.Box** %_M_end_of_storage, align 8
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt12_Vector_baseI3BoxSaIS0_EE17_M_create_storageEm(%"struct.std::_Vector_base"* %this, i64 %__n) #3 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::_Vector_base"*, align 8
%__n.addr = alloca i64, align 8
store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%this1 = load %"struct.std::_Vector_base"*, %"struct.std::_Vector_base"** %this.addr, align 8
%0 = load i64, i64* %__n.addr, align 8
%call = call %struct.Box* @_ZNSt12_Vector_baseI3BoxSaIS0_EE11_M_allocateEm(%"struct.std::_Vector_base"* %this1, i64 %0)
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl, i32 0, i32 0
store %struct.Box* %call, %struct.Box** %_M_start, align 8
%_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_start3 = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
%1 = load %struct.Box*, %struct.Box** %_M_start3, align 8
%_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_finish = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl4, i32 0, i32 1
store %struct.Box* %1, %struct.Box** %_M_finish, align 8
%_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_start6 = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl5, i32 0, i32 0
%2 = load %struct.Box*, %struct.Box** %_M_start6, align 8
%3 = load i64, i64* %__n.addr, align 8
%add.ptr = getelementptr inbounds %struct.Box, %struct.Box* %2, i64 %3
%_M_impl7 = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl", %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl7, i32 0, i32 2
store %struct.Box* %add.ptr, %struct.Box** %_M_end_of_storage, align 8
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSt12_Vector_baseI3BoxSaIS0_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"*, align 8
store %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this, %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"** %this.addr, align 8
%this1 = load %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"*, %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"** %this.addr, align 8
%0 = bitcast %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %this1 to %"class.std::allocator.0"*
call void @_ZNSaI3BoxED2Ev(%"class.std::allocator.0"* %0) #2
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSaI3BoxEC2ERKS0_(%"class.std::allocator.0"* %this, %"class.std::allocator.0"* dereferenceable(1) %__a) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::allocator.0"*, align 8
%__a.addr = alloca %"class.std::allocator.0"*, align 8
store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 8
store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 8
%this1 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %this.addr, align 8
%0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
%1 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %__a.addr, align 8
%2 = bitcast %"class.std::allocator.0"* %1 to %"class.__gnu_cxx::new_allocator.1"*
call void @_ZN9__gnu_cxx13new_allocatorI3BoxEC2ERKS2_(%"class.__gnu_cxx::new_allocator.1"* %0, %"class.__gnu_cxx::new_allocator.1"* dereferenceable(1) %2) #2
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorI3BoxEC2ERKS2_(%"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"* dereferenceable(1)) unnamed_addr #4 comdat align 2 {
entry:
%this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
%.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
store %"class.__gnu_cxx::new_allocator.1"* %0, %"class.__gnu_cxx::new_allocator.1"** %.addr, align 8
%this1 = load %"class.__gnu_cxx::new_allocator.1"*, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZNSt12_Vector_baseI3BoxSaIS0_EE11_M_allocateEm(%"struct.std::_Vector_base"* %this, i64 %__n) #3 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::_Vector_base"*, align 8
%__n.addr = alloca i64, align 8
store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%this1 = load %"struct.std::_Vector_base"*, %"struct.std::_Vector_base"** %this.addr, align 8
%0 = load i64, i64* %__n.addr, align 8
%cmp = icmp ne i64 %0, 0
br i1 %cmp, label %cond.true, label %cond.false
cond.true: ; preds = %entry
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%1 = bitcast %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
%2 = load i64, i64* %__n.addr, align 8
%call = call %struct.Box* @_ZN9__gnu_cxx14__alloc_traitsISaI3BoxEE8allocateERS2_m(%"class.std::allocator.0"* dereferenceable(1) %1, i64 %2)
br label %cond.end
cond.false: ; preds = %entry
br label %cond.end
cond.end: ; preds = %cond.false, %cond.true
%cond = phi %struct.Box* [ %call, %cond.true ], [ null, %cond.false ]
ret %struct.Box* %cond
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZN9__gnu_cxx14__alloc_traitsISaI3BoxEE8allocateERS2_m(%"class.std::allocator.0"* dereferenceable(1) %__a, i64 %__n) #3 comdat align 2 {
entry:
%__a.addr = alloca %"class.std::allocator.0"*, align 8
%__n.addr = alloca i64, align 8
store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%0 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %__a.addr, align 8
%1 = bitcast %"class.std::allocator.0"* %0 to %"class.__gnu_cxx::new_allocator.1"*
%2 = load i64, i64* %__n.addr, align 8
%call = call %struct.Box* @_ZN9__gnu_cxx13new_allocatorI3BoxE8allocateEmPKv(%"class.__gnu_cxx::new_allocator.1"* %1, i64 %2, i8* null)
ret %struct.Box* %call
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZN9__gnu_cxx13new_allocatorI3BoxE8allocateEmPKv(%"class.__gnu_cxx::new_allocator.1"* %this, i64 %__n, i8*) #3 comdat align 2 {
entry:
%this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
%__n.addr = alloca i64, align 8
%.addr = alloca i8*, align 8
store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store i8* %0, i8** %.addr, align 8
%this1 = load %"class.__gnu_cxx::new_allocator.1"*, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
%1 = load i64, i64* %__n.addr, align 8
%call = call i64 @_ZNK9__gnu_cxx13new_allocatorI3BoxE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %this1) #2
%cmp = icmp ugt i64 %1, %call
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
call void @_ZSt17__throw_bad_allocv() #18
unreachable
if.end: ; preds = %entry
%2 = load i64, i64* %__n.addr, align 8
%mul = mul i64 %2, 24
%call2 = call i8* @_Znwm(i64 %mul)
%3 = bitcast i8* %call2 to %struct.Box*
ret %struct.Box* %3
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr i64 @_ZNK9__gnu_cxx13new_allocatorI3BoxE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %this) #4 comdat align 2 {
entry:
%this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
%this1 = load %"class.__gnu_cxx::new_allocator.1"*, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
ret i64 768614336404564650
}
; Function Attrs: noreturn
declare void @_ZSt17__throw_bad_allocv() #9
; Function Attrs: nobuiltin
declare noalias i8* @_Znwm(i64) #10
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZSt24__uninitialized_fill_n_aIP3BoxmS0_S0_ET_S2_T0_RKT1_RSaIT2_E(%struct.Box* %__first, i64 %__n, %struct.Box* dereferenceable(24) %__x, %"class.std::allocator.0"* dereferenceable(1)) #3 comdat {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
%__x.addr = alloca %struct.Box*, align 8
%.addr = alloca %"class.std::allocator.0"*, align 8
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__x, %struct.Box** %__x.addr, align 8
store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 8
%1 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%2 = load i64, i64* %__n.addr, align 8
%3 = load %struct.Box*, %struct.Box** %__x.addr, align 8
%call = call %struct.Box* @_ZSt20uninitialized_fill_nIP3BoxmS0_ET_S2_T0_RKT1_(%struct.Box* %1, i64 %2, %struct.Box* dereferenceable(24) %3)
ret %struct.Box* %call
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dereferenceable(1) %"class.std::allocator.0"* @_ZNSt12_Vector_baseI3BoxSaIS0_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %this) #4 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::_Vector_base"*, align 8
store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 8
%this1 = load %"struct.std::_Vector_base"*, %"struct.std::_Vector_base"** %this.addr, align 8
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%0 = bitcast %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
ret %"class.std::allocator.0"* %0
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZSt20uninitialized_fill_nIP3BoxmS0_ET_S2_T0_RKT1_(%struct.Box* %__first, i64 %__n, %struct.Box* dereferenceable(24) %__x) #3 comdat {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
%__x.addr = alloca %struct.Box*, align 8
%__assignable = alloca i8, align 1
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__x, %struct.Box** %__x.addr, align 8
store i8 1, i8* %__assignable, align 1
%0 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%1 = load i64, i64* %__n.addr, align 8
%2 = load %struct.Box*, %struct.Box** %__x.addr, align 8
%call = call %struct.Box* @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIP3BoxmS2_EET_S4_T0_RKT1_(%struct.Box* %0, i64 %1, %struct.Box* dereferenceable(24) %2)
ret %struct.Box* %call
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIP3BoxmS2_EET_S4_T0_RKT1_(%struct.Box* %__first, i64 %__n, %struct.Box* dereferenceable(24) %__x) #3 comdat align 2 {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
%__x.addr = alloca %struct.Box*, align 8
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__x, %struct.Box** %__x.addr, align 8
%0 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%1 = load i64, i64* %__n.addr, align 8
%2 = load %struct.Box*, %struct.Box** %__x.addr, align 8
%call = call %struct.Box* @_ZSt6fill_nIP3BoxmS0_ET_S2_T0_RKT1_(%struct.Box* %0, i64 %1, %struct.Box* dereferenceable(24) %2)
ret %struct.Box* %call
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr %struct.Box* @_ZSt6fill_nIP3BoxmS0_ET_S2_T0_RKT1_(%struct.Box* %__first, i64 %__n, %struct.Box* dereferenceable(24) %__value) #3 comdat {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
%__value.addr = alloca %struct.Box*, align 8
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__value, %struct.Box** %__value.addr, align 8
%0 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%call = call %struct.Box* @_ZSt12__niter_baseIP3BoxET_S2_(%struct.Box* %0)
%1 = load i64, i64* %__n.addr, align 8
%2 = load %struct.Box*, %struct.Box** %__value.addr, align 8
%call1 = call %struct.Box* @_ZSt10__fill_n_aIP3BoxmS0_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT1_EE7__valueET_E6__typeES5_T0_RKS4_(%struct.Box* %call, i64 %1, %struct.Box* dereferenceable(24) %2)
ret %struct.Box* %call1
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr %struct.Box* @_ZSt10__fill_n_aIP3BoxmS0_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT1_EE7__valueET_E6__typeES5_T0_RKS4_(%struct.Box* %__first, i64 %__n, %struct.Box* dereferenceable(24) %__value) #4 comdat {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
%__value.addr = alloca %struct.Box*, align 8
%__niter = alloca i64, align 8
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
store %struct.Box* %__value, %struct.Box** %__value.addr, align 8
%0 = load i64, i64* %__n.addr, align 8
store i64 %0, i64* %__niter, align 8
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%1 = load i64, i64* %__niter, align 8
%cmp = icmp ugt i64 %1, 0
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
%2 = load %struct.Box*, %struct.Box** %__value.addr, align 8
%3 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%4 = bitcast %struct.Box* %3 to i8*
%5 = bitcast %struct.Box* %2 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 24, i32 4, i1 false)
br label %for.inc
for.inc: ; preds = %for.body
%6 = load i64, i64* %__niter, align 8
%dec = add i64 %6, -1
store i64 %dec, i64* %__niter, align 8
%7 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%incdec.ptr = getelementptr inbounds %struct.Box, %struct.Box* %7, i32 1
store %struct.Box* %incdec.ptr, %struct.Box** %__first.addr, align 8
br label %for.cond
for.end: ; preds = %for.cond
%8 = load %struct.Box*, %struct.Box** %__first.addr, align 8
ret %struct.Box* %8
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr %struct.Box* @_ZSt12__niter_baseIP3BoxET_S2_(%struct.Box* %__it) #4 comdat {
entry:
%__it.addr = alloca %struct.Box*, align 8
store %struct.Box* %__it, %struct.Box** %__it.addr, align 8
%0 = load %struct.Box*, %struct.Box** %__it.addr, align 8
ret %struct.Box* %0
}
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #6
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZNSt12_Vector_baseI3BoxSaIS0_EE13_M_deallocateEPS0_m(%"struct.std::_Vector_base"* %this, %struct.Box* %__p, i64 %__n) #3 comdat align 2 {
entry:
%this.addr = alloca %"struct.std::_Vector_base"*, align 8
%__p.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 8
store %struct.Box* %__p, %struct.Box** %__p.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%this1 = load %"struct.std::_Vector_base"*, %"struct.std::_Vector_base"** %this.addr, align 8
%0 = load %struct.Box*, %struct.Box** %__p.addr, align 8
%tobool = icmp ne %struct.Box* %0, null
br i1 %tobool, label %if.then, label %if.end
if.then: ; preds = %entry
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base", %"struct.std::_Vector_base"* %this1, i32 0, i32 0
%1 = bitcast %"struct.std::_Vector_base<Box, std::allocator<Box> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
%2 = load %struct.Box*, %struct.Box** %__p.addr, align 8
%3 = load i64, i64* %__n.addr, align 8
call void @_ZN9__gnu_cxx14__alloc_traitsISaI3BoxEE10deallocateERS2_PS1_m(%"class.std::allocator.0"* dereferenceable(1) %1, %struct.Box* %2, i64 %3)
br label %if.end
if.end: ; preds = %if.then, %entry
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN9__gnu_cxx14__alloc_traitsISaI3BoxEE10deallocateERS2_PS1_m(%"class.std::allocator.0"* dereferenceable(1) %__a, %struct.Box* %__p, i64 %__n) #3 comdat align 2 {
entry:
%__a.addr = alloca %"class.std::allocator.0"*, align 8
%__p.addr = alloca %struct.Box*, align 8
%__n.addr = alloca i64, align 8
store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 8
store %struct.Box* %__p, %struct.Box** %__p.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%0 = load %"class.std::allocator.0"*, %"class.std::allocator.0"** %__a.addr, align 8
%1 = bitcast %"class.std::allocator.0"* %0 to %"class.__gnu_cxx::new_allocator.1"*
%2 = load %struct.Box*, %struct.Box** %__p.addr, align 8
%3 = load i64, i64* %__n.addr, align 8
call void @_ZN9__gnu_cxx13new_allocatorI3BoxE10deallocateEPS1_m(%"class.__gnu_cxx::new_allocator.1"* %1, %struct.Box* %2, i64 %3)
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorI3BoxE10deallocateEPS1_m(%"class.__gnu_cxx::new_allocator.1"* %this, %struct.Box* %__p, i64) #4 comdat align 2 {
entry:
%this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 8
%__p.addr = alloca %struct.Box*, align 8
%.addr = alloca i64, align 8
store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
store %struct.Box* %__p, %struct.Box** %__p.addr, align 8
store i64 %0, i64* %.addr, align 8
%this1 = load %"class.__gnu_cxx::new_allocator.1"*, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 8
%1 = load %struct.Box*, %struct.Box** %__p.addr, align 8
%2 = bitcast %struct.Box* %1 to i8*
call void @_ZdlPv(i8* %2) #2
ret void
}
; Function Attrs: nobuiltin nounwind
declare void @_ZdlPv(i8*) #11
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZSt8_DestroyIP3BoxS0_EvT_S2_RSaIT0_E(%struct.Box* %__first, %struct.Box* %__last, %"class.std::allocator.0"* dereferenceable(1)) #3 comdat {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__last.addr = alloca %struct.Box*, align 8
%.addr = alloca %"class.std::allocator.0"*, align 8
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store %struct.Box* %__last, %struct.Box** %__last.addr, align 8
store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 8
%1 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%2 = load %struct.Box*, %struct.Box** %__last.addr, align 8
call void @_ZSt8_DestroyIP3BoxEvT_S2_(%struct.Box* %1, %struct.Box* %2)
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZSt8_DestroyIP3BoxEvT_S2_(%struct.Box* %__first, %struct.Box* %__last) #3 comdat {
entry:
%__first.addr = alloca %struct.Box*, align 8
%__last.addr = alloca %struct.Box*, align 8
store %struct.Box* %__first, %struct.Box** %__first.addr, align 8
store %struct.Box* %__last, %struct.Box** %__last.addr, align 8
%0 = load %struct.Box*, %struct.Box** %__first.addr, align 8
%1 = load %struct.Box*, %struct.Box** %__last.addr, align 8
call void @_ZNSt12_Destroy_auxILb1EE9__destroyIP3BoxEEvT_S4_(%struct.Box* %0, %struct.Box* %1)
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZNSt12_Destroy_auxILb1EE9__destroyIP3BoxEEvT_S4_(%struct.Box*, %struct.Box*) #4 comdat align 2 {
entry:
%.addr = alloca %struct.Box*, align 8
%.addr1 = alloca %struct.Box*, align 8
store %struct.Box* %0, %struct.Box** %.addr, align 8
store %struct.Box* %1, %struct.Box** %.addr1, align 8
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(%"class.std::__cxx11::basic_string"* dereferenceable(32) %__lhs, i8* %__rhs) #3 comdat {
entry:
%__lhs.addr = alloca %"class.std::__cxx11::basic_string"*, align 8
%__rhs.addr = alloca i8*, align 8
store %"class.std::__cxx11::basic_string"* %__lhs, %"class.std::__cxx11::basic_string"** %__lhs.addr, align 8
store i8* %__rhs, i8** %__rhs.addr, align 8
%0 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %__lhs.addr, align 8
%1 = load i8*, i8** %__rhs.addr, align 8
%call = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* %0, i8* %1)
%cmp = icmp eq i32 %call, 0
ret i1 %cmp
}
declare i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"*, i8*) #1
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE13add_imbalanceIiEEvRK3BoxRS1_fR8YAML_Doc(%struct.Box* dereferenceable(24) %global_box, %struct.Box* dereferenceable(24) %local_box, float %imbalance, %class.YAML_Doc* dereferenceable(216) %doc) #3 comdat {
entry:
%global_box.addr = alloca %struct.Box*, align 8
%local_box.addr = alloca %struct.Box*, align 8
%imbalance.addr = alloca float, align 4
%doc.addr = alloca %class.YAML_Doc*, align 8
%numprocs = alloca i32, align 4
%myproc = alloca i32, align 4
%cur_imbalance = alloca float, align 4
%cur_std_dev = alloca float, align 4
%local_nrows = alloca i32, align 4
%min_nrows = alloca i32, align 4
%max_nrows = alloca i32, align 4
%global_nrows = alloca i32, align 4
%min_proc = alloca i32, align 4
%max_proc = alloca i32, align 4
%grow = alloca %"struct.std::pair", align 4
%grow_axis_val = alloca i32, align 4
%shrink = alloca %"struct.std::pair", align 4
%shrink_axis_val = alloca i32, align 4
%ref.tmp = alloca %"struct.std::pair", align 4
%ref.tmp13 = alloca %"struct.std::pair", align 4
%grow_info = alloca [8 x i32], align 16
%shrink_info = alloca [8 x i32], align 16
%grow_axis = alloca i32, align 4
%grow_end = alloca i32, align 4
%shrink_axis = alloca i32, align 4
%shrink_end = alloca i32, align 4
%grow_incr = alloca i32, align 4
%shrink_incr = alloca i32, align 4
%grow_status = alloca i8, align 1
%shrink_status = alloca i8, align 1
store %struct.Box* %global_box, %struct.Box** %global_box.addr, align 8
store %struct.Box* %local_box, %struct.Box** %local_box.addr, align 8
store float %imbalance, float* %imbalance.addr, align 4
store %class.YAML_Doc* %doc, %class.YAML_Doc** %doc.addr, align 8
store i32 1, i32* %numprocs, align 4
store i32 0, i32* %myproc, align 4
%0 = load i32, i32* %numprocs, align 4
%cmp = icmp eq i32 %0, 1
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
br label %while.end
if.end: ; preds = %entry
store float 0.000000e+00, float* %cur_imbalance, align 4
store float 0.000000e+00, float* %cur_std_dev, align 4
%1 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%2 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%3 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
call void @_ZN6miniFE17compute_imbalanceIiEEvRK3BoxS3_RfS4_R8YAML_Docb(%struct.Box* dereferenceable(24) %1, %struct.Box* dereferenceable(24) %2, float* dereferenceable(4) %cur_imbalance, float* dereferenceable(4) %cur_std_dev, %class.YAML_Doc* dereferenceable(216) %3, i1 zeroext false)
br label %while.cond
while.cond: ; preds = %if.end193, %if.end
%4 = load float, float* %cur_imbalance, align 4
%5 = load float, float* %imbalance.addr, align 4
%cmp1 = fcmp olt float %4, %5
br i1 %cmp1, label %while.body, label %while.end
while.body: ; preds = %while.cond
%6 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call = call i32 @_ZN6miniFE11get_num_idsIiEET_RK3Box(%struct.Box* dereferenceable(24) %6)
store i32 %call, i32* %local_nrows, align 4
store i32 0, i32* %min_nrows, align 4
store i32 0, i32* %max_nrows, align 4
store i32 0, i32* %global_nrows, align 4
%7 = load i32, i32* %myproc, align 4
store i32 %7, i32* %min_proc, align 4
%8 = load i32, i32* %myproc, align 4
store i32 %8, i32* %max_proc, align 4
%9 = load i32, i32* %local_nrows, align 4
call void @_ZN6miniFE18get_global_min_maxIiEEvT_RS1_S2_RiS2_S3_(i32 %9, i32* dereferenceable(4) %global_nrows, i32* dereferenceable(4) %min_nrows, i32* dereferenceable(4) %min_proc, i32* dereferenceable(4) %max_nrows, i32* dereferenceable(4) %max_proc)
call void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %grow, i32* dereferenceable(4) @_ZN6miniFEL4NONEE, i32* dereferenceable(4) @_ZN6miniFEL5UPPERE)
store i32 -1, i32* %grow_axis_val, align 4
call void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %shrink, i32* dereferenceable(4) @_ZN6miniFEL4NONEE, i32* dereferenceable(4) @_ZN6miniFEL5UPPERE)
store i32 -1, i32* %shrink_axis_val, align 4
%10 = load i32, i32* %myproc, align 4
%11 = load i32, i32* %max_proc, align 4
%cmp2 = icmp eq i32 %10, %11
br i1 %cmp2, label %if.then3, label %if.end10
if.then3: ; preds = %while.body
%12 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%13 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call4 = call i64 @_ZN6miniFE18decide_how_to_growERK3BoxS2_(%struct.Box* dereferenceable(24) %12, %struct.Box* dereferenceable(24) %13)
%14 = bitcast %"struct.std::pair"* %ref.tmp to i64*
store i64 %call4, i64* %14, align 4
%15 = bitcast %"struct.std::pair"* %grow to i8*
%16 = bitcast %"struct.std::pair"* %ref.tmp to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %16, i64 8, i32 4, i1 false)
%first = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %grow, i32 0, i32 0
%17 = load i32, i32* %first, align 4
%cmp5 = icmp ne i32 %17, 3
br i1 %cmp5, label %if.then6, label %if.end9
if.then6: ; preds = %if.then3
%18 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%first7 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %grow, i32 0, i32 0
%19 = load i32, i32* %first7, align 4
%call8 = call i32* @_ZN3BoxixEi(%struct.Box* %18, i32 %19)
%second = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %grow, i32 0, i32 1
%20 = load i32, i32* %second, align 4
%idxprom = sext i32 %20 to i64
%arrayidx = getelementptr inbounds i32, i32* %call8, i64 %idxprom
%21 = load i32, i32* %arrayidx, align 4
store i32 %21, i32* %grow_axis_val, align 4
br label %if.end9
if.end9: ; preds = %if.then6, %if.then3
br label %if.end10
if.end10: ; preds = %if.end9, %while.body
%22 = load i32, i32* %myproc, align 4
%23 = load i32, i32* %min_proc, align 4
%cmp11 = icmp eq i32 %22, %23
br i1 %cmp11, label %if.then12, label %if.end24
if.then12: ; preds = %if.end10
%24 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%25 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call14 = call i64 @_ZN6miniFE20decide_how_to_shrinkERK3BoxS2_(%struct.Box* dereferenceable(24) %24, %struct.Box* dereferenceable(24) %25)
%26 = bitcast %"struct.std::pair"* %ref.tmp13 to i64*
store i64 %call14, i64* %26, align 4
%27 = bitcast %"struct.std::pair"* %shrink to i8*
%28 = bitcast %"struct.std::pair"* %ref.tmp13 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %27, i8* %28, i64 8, i32 4, i1 false)
%first15 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %shrink, i32 0, i32 0
%29 = load i32, i32* %first15, align 4
%cmp16 = icmp ne i32 %29, 3
br i1 %cmp16, label %if.then17, label %if.end23
if.then17: ; preds = %if.then12
%30 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%first18 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %shrink, i32 0, i32 0
%31 = load i32, i32* %first18, align 4
%call19 = call i32* @_ZN3BoxixEi(%struct.Box* %30, i32 %31)
%second20 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %shrink, i32 0, i32 1
%32 = load i32, i32* %second20, align 4
%idxprom21 = sext i32 %32 to i64
%arrayidx22 = getelementptr inbounds i32, i32* %call19, i64 %idxprom21
%33 = load i32, i32* %arrayidx22, align 4
store i32 %33, i32* %shrink_axis_val, align 4
br label %if.end23
if.end23: ; preds = %if.then17, %if.then12
br label %if.end24
if.end24: ; preds = %if.end23, %if.end10
%arrayinit.begin = getelementptr inbounds [8 x i32], [8 x i32]* %grow_info, i64 0, i64 0
%first25 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %grow, i32 0, i32 0
%34 = load i32, i32* %first25, align 4
store i32 %34, i32* %arrayinit.begin, align 4
%arrayinit.element = getelementptr inbounds i32, i32* %arrayinit.begin, i64 1
%second26 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %grow, i32 0, i32 1
%35 = load i32, i32* %second26, align 4
store i32 %35, i32* %arrayinit.element, align 4
%arrayinit.element27 = getelementptr inbounds i32, i32* %arrayinit.element, i64 1
%36 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call28 = call i32* @_ZN3BoxixEi(%struct.Box* %36, i32 0)
%arrayidx29 = getelementptr inbounds i32, i32* %call28, i64 0
%37 = load i32, i32* %arrayidx29, align 4
store i32 %37, i32* %arrayinit.element27, align 4
%arrayinit.element30 = getelementptr inbounds i32, i32* %arrayinit.element27, i64 1
%38 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call31 = call i32* @_ZN3BoxixEi(%struct.Box* %38, i32 0)
%arrayidx32 = getelementptr inbounds i32, i32* %call31, i64 1
%39 = load i32, i32* %arrayidx32, align 4
store i32 %39, i32* %arrayinit.element30, align 4
%arrayinit.element33 = getelementptr inbounds i32, i32* %arrayinit.element30, i64 1
%40 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call34 = call i32* @_ZN3BoxixEi(%struct.Box* %40, i32 1)
%arrayidx35 = getelementptr inbounds i32, i32* %call34, i64 0
%41 = load i32, i32* %arrayidx35, align 4
store i32 %41, i32* %arrayinit.element33, align 4
%arrayinit.element36 = getelementptr inbounds i32, i32* %arrayinit.element33, i64 1
%42 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call37 = call i32* @_ZN3BoxixEi(%struct.Box* %42, i32 1)
%arrayidx38 = getelementptr inbounds i32, i32* %call37, i64 1
%43 = load i32, i32* %arrayidx38, align 4
store i32 %43, i32* %arrayinit.element36, align 4
%arrayinit.element39 = getelementptr inbounds i32, i32* %arrayinit.element36, i64 1
%44 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call40 = call i32* @_ZN3BoxixEi(%struct.Box* %44, i32 2)
%arrayidx41 = getelementptr inbounds i32, i32* %call40, i64 0
%45 = load i32, i32* %arrayidx41, align 4
store i32 %45, i32* %arrayinit.element39, align 4
%arrayinit.element42 = getelementptr inbounds i32, i32* %arrayinit.element39, i64 1
%46 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call43 = call i32* @_ZN3BoxixEi(%struct.Box* %46, i32 2)
%arrayidx44 = getelementptr inbounds i32, i32* %call43, i64 1
%47 = load i32, i32* %arrayidx44, align 4
store i32 %47, i32* %arrayinit.element42, align 4
%arrayinit.begin45 = getelementptr inbounds [8 x i32], [8 x i32]* %shrink_info, i64 0, i64 0
%first46 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %shrink, i32 0, i32 0
%48 = load i32, i32* %first46, align 4
store i32 %48, i32* %arrayinit.begin45, align 4
%arrayinit.element47 = getelementptr inbounds i32, i32* %arrayinit.begin45, i64 1
%second48 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %shrink, i32 0, i32 1
%49 = load i32, i32* %second48, align 4
store i32 %49, i32* %arrayinit.element47, align 4
%arrayinit.element49 = getelementptr inbounds i32, i32* %arrayinit.element47, i64 1
%50 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call50 = call i32* @_ZN3BoxixEi(%struct.Box* %50, i32 0)
%arrayidx51 = getelementptr inbounds i32, i32* %call50, i64 0
%51 = load i32, i32* %arrayidx51, align 4
store i32 %51, i32* %arrayinit.element49, align 4
%arrayinit.element52 = getelementptr inbounds i32, i32* %arrayinit.element49, i64 1
%52 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call53 = call i32* @_ZN3BoxixEi(%struct.Box* %52, i32 0)
%arrayidx54 = getelementptr inbounds i32, i32* %call53, i64 1
%53 = load i32, i32* %arrayidx54, align 4
store i32 %53, i32* %arrayinit.element52, align 4
%arrayinit.element55 = getelementptr inbounds i32, i32* %arrayinit.element52, i64 1
%54 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call56 = call i32* @_ZN3BoxixEi(%struct.Box* %54, i32 1)
%arrayidx57 = getelementptr inbounds i32, i32* %call56, i64 0
%55 = load i32, i32* %arrayidx57, align 4
store i32 %55, i32* %arrayinit.element55, align 4
%arrayinit.element58 = getelementptr inbounds i32, i32* %arrayinit.element55, i64 1
%56 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call59 = call i32* @_ZN3BoxixEi(%struct.Box* %56, i32 1)
%arrayidx60 = getelementptr inbounds i32, i32* %call59, i64 1
%57 = load i32, i32* %arrayidx60, align 4
store i32 %57, i32* %arrayinit.element58, align 4
%arrayinit.element61 = getelementptr inbounds i32, i32* %arrayinit.element58, i64 1
%58 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call62 = call i32* @_ZN3BoxixEi(%struct.Box* %58, i32 2)
%arrayidx63 = getelementptr inbounds i32, i32* %call62, i64 0
%59 = load i32, i32* %arrayidx63, align 4
store i32 %59, i32* %arrayinit.element61, align 4
%arrayinit.element64 = getelementptr inbounds i32, i32* %arrayinit.element61, i64 1
%60 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call65 = call i32* @_ZN3BoxixEi(%struct.Box* %60, i32 2)
%arrayidx66 = getelementptr inbounds i32, i32* %call65, i64 1
%61 = load i32, i32* %arrayidx66, align 4
store i32 %61, i32* %arrayinit.element64, align 4
%arrayidx67 = getelementptr inbounds [8 x i32], [8 x i32]* %grow_info, i64 0, i64 0
%62 = load i32, i32* %arrayidx67, align 16
store i32 %62, i32* %grow_axis, align 4
%arrayidx68 = getelementptr inbounds [8 x i32], [8 x i32]* %grow_info, i64 0, i64 1
%63 = load i32, i32* %arrayidx68, align 4
store i32 %63, i32* %grow_end, align 4
%arrayidx69 = getelementptr inbounds [8 x i32], [8 x i32]* %shrink_info, i64 0, i64 0
%64 = load i32, i32* %arrayidx69, align 16
store i32 %64, i32* %shrink_axis, align 4
%arrayidx70 = getelementptr inbounds [8 x i32], [8 x i32]* %shrink_info, i64 0, i64 1
%65 = load i32, i32* %arrayidx70, align 4
store i32 %65, i32* %shrink_end, align 4
store i32 1, i32* %grow_incr, align 4
%66 = load i32, i32* %grow_end, align 4
%cmp71 = icmp eq i32 %66, 0
br i1 %cmp71, label %if.then72, label %if.end73
if.then72: ; preds = %if.end24
store i32 -1, i32* %grow_incr, align 4
br label %if.end73
if.end73: ; preds = %if.then72, %if.end24
store i32 -1, i32* %shrink_incr, align 4
%67 = load i32, i32* %shrink_end, align 4
%cmp74 = icmp eq i32 %67, 0
br i1 %cmp74, label %if.then75, label %if.end76
if.then75: ; preds = %if.end73
store i32 1, i32* %shrink_incr, align 4
br label %if.end76
if.end76: ; preds = %if.then75, %if.end73
%68 = load i32, i32* %grow_axis, align 4
%cmp77 = icmp ne i32 %68, 3
br i1 %cmp77, label %if.then78, label %if.end82
if.then78: ; preds = %if.end76
%69 = load i32, i32* %grow_axis, align 4
%mul = mul nsw i32 %69, 2
%add = add nsw i32 2, %mul
%70 = load i32, i32* %grow_end, align 4
%add79 = add nsw i32 %add, %70
%idxprom80 = sext i32 %add79 to i64
%arrayidx81 = getelementptr inbounds [8 x i32], [8 x i32]* %grow_info, i64 0, i64 %idxprom80
%71 = load i32, i32* %arrayidx81, align 4
store i32 %71, i32* %grow_axis_val, align 4
br label %if.end82
if.end82: ; preds = %if.then78, %if.end76
%72 = load i32, i32* %shrink_axis, align 4
%cmp83 = icmp ne i32 %72, 3
br i1 %cmp83, label %if.then84, label %if.end90
if.then84: ; preds = %if.end82
%73 = load i32, i32* %shrink_axis, align 4
%mul85 = mul nsw i32 %73, 2
%add86 = add nsw i32 2, %mul85
%74 = load i32, i32* %shrink_end, align 4
%add87 = add nsw i32 %add86, %74
%idxprom88 = sext i32 %add87 to i64
%arrayidx89 = getelementptr inbounds [8 x i32], [8 x i32]* %shrink_info, i64 0, i64 %idxprom88
%75 = load i32, i32* %arrayidx89, align 4
store i32 %75, i32* %shrink_axis_val, align 4
br label %if.end90
if.end90: ; preds = %if.then84, %if.end82
%76 = load i32, i32* %grow_axis, align 4
%cmp91 = icmp eq i32 %76, 3
br i1 %cmp91, label %land.lhs.true, label %if.end94
land.lhs.true: ; preds = %if.end90
%77 = load i32, i32* %shrink_axis, align 4
%cmp92 = icmp eq i32 %77, 3
br i1 %cmp92, label %if.then93, label %if.end94
if.then93: ; preds = %land.lhs.true
br label %while.end
if.end94: ; preds = %land.lhs.true, %if.end90
%78 = load i32, i32* %grow_axis, align 4
%cmp95 = icmp eq i32 %78, 3
%79 = zext i1 %cmp95 to i64
%cond = select i1 %cmp95, i1 false, i1 true
%frombool = zext i1 %cond to i8
store i8 %frombool, i8* %grow_status, align 1
%80 = load i32, i32* %grow_axis, align 4
%cmp96 = icmp ne i32 %80, 3
br i1 %cmp96, label %if.then97, label %if.end117
if.then97: ; preds = %if.end94
%81 = load i32, i32* %grow_incr, align 4
%cmp98 = icmp eq i32 %81, 1
br i1 %cmp98, label %land.lhs.true99, label %lor.lhs.false
land.lhs.true99: ; preds = %if.then97
%82 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%83 = load i32, i32* %grow_axis, align 4
%call100 = call i32* @_ZN3BoxixEi(%struct.Box* %82, i32 %83)
%arrayidx101 = getelementptr inbounds i32, i32* %call100, i64 0
%84 = load i32, i32* %arrayidx101, align 4
%85 = load i32, i32* %grow_axis_val, align 4
%cmp102 = icmp eq i32 %84, %85
br i1 %cmp102, label %if.then108, label %lor.lhs.false
lor.lhs.false: ; preds = %land.lhs.true99, %if.then97
%86 = load i32, i32* %grow_incr, align 4
%cmp103 = icmp eq i32 %86, -1
br i1 %cmp103, label %land.lhs.true104, label %if.end116
land.lhs.true104: ; preds = %lor.lhs.false
%87 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%88 = load i32, i32* %grow_axis, align 4
%call105 = call i32* @_ZN3BoxixEi(%struct.Box* %87, i32 %88)
%arrayidx106 = getelementptr inbounds i32, i32* %call105, i64 1
%89 = load i32, i32* %arrayidx106, align 4
%90 = load i32, i32* %grow_axis_val, align 4
%cmp107 = icmp eq i32 %89, %90
br i1 %cmp107, label %if.then108, label %if.end116
if.then108: ; preds = %land.lhs.true104, %land.lhs.true99
%91 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%92 = load i32, i32* %grow_axis, align 4
%call109 = call i32* @_ZN3BoxixEi(%struct.Box* %91, i32 %92)
%arrayidx110 = getelementptr inbounds i32, i32* %call109, i64 1
%93 = load i32, i32* %arrayidx110, align 4
%94 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%95 = load i32, i32* %grow_axis, align 4
%call111 = call i32* @_ZN3BoxixEi(%struct.Box* %94, i32 %95)
%arrayidx112 = getelementptr inbounds i32, i32* %call111, i64 0
%96 = load i32, i32* %arrayidx112, align 4
%sub = sub nsw i32 %93, %96
%cmp113 = icmp slt i32 %sub, 2
br i1 %cmp113, label %if.then114, label %if.end115
if.then114: ; preds = %if.then108
store i8 0, i8* %grow_status, align 1
br label %if.end115
if.end115: ; preds = %if.then114, %if.then108
br label %if.end116
if.end116: ; preds = %if.end115, %land.lhs.true104, %lor.lhs.false
br label %if.end117
if.end117: ; preds = %if.end116, %if.end94
%97 = load i32, i32* %shrink_axis, align 4
%cmp118 = icmp eq i32 %97, 3
%98 = zext i1 %cmp118 to i64
%cond119 = select i1 %cmp118, i1 false, i1 true
%frombool120 = zext i1 %cond119 to i8
store i8 %frombool120, i8* %shrink_status, align 1
%99 = load i32, i32* %shrink_axis, align 4
%cmp121 = icmp ne i32 %99, 3
br i1 %cmp121, label %if.then122, label %if.end144
if.then122: ; preds = %if.end117
%100 = load i32, i32* %shrink_incr, align 4
%cmp123 = icmp eq i32 %100, 1
br i1 %cmp123, label %land.lhs.true124, label %lor.lhs.false128
land.lhs.true124: ; preds = %if.then122
%101 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%102 = load i32, i32* %shrink_axis, align 4
%call125 = call i32* @_ZN3BoxixEi(%struct.Box* %101, i32 %102)
%arrayidx126 = getelementptr inbounds i32, i32* %call125, i64 0
%103 = load i32, i32* %arrayidx126, align 4
%104 = load i32, i32* %shrink_axis_val, align 4
%cmp127 = icmp eq i32 %103, %104
br i1 %cmp127, label %if.then134, label %lor.lhs.false128
lor.lhs.false128: ; preds = %land.lhs.true124, %if.then122
%105 = load i32, i32* %shrink_incr, align 4
%cmp129 = icmp eq i32 %105, -1
br i1 %cmp129, label %land.lhs.true130, label %if.end143
land.lhs.true130: ; preds = %lor.lhs.false128
%106 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%107 = load i32, i32* %shrink_axis, align 4
%call131 = call i32* @_ZN3BoxixEi(%struct.Box* %106, i32 %107)
%arrayidx132 = getelementptr inbounds i32, i32* %call131, i64 1
%108 = load i32, i32* %arrayidx132, align 4
%109 = load i32, i32* %shrink_axis_val, align 4
%cmp133 = icmp eq i32 %108, %109
br i1 %cmp133, label %if.then134, label %if.end143
if.then134: ; preds = %land.lhs.true130, %land.lhs.true124
%110 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%111 = load i32, i32* %shrink_axis, align 4
%call135 = call i32* @_ZN3BoxixEi(%struct.Box* %110, i32 %111)
%arrayidx136 = getelementptr inbounds i32, i32* %call135, i64 1
%112 = load i32, i32* %arrayidx136, align 4
%113 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%114 = load i32, i32* %shrink_axis, align 4
%call137 = call i32* @_ZN3BoxixEi(%struct.Box* %113, i32 %114)
%arrayidx138 = getelementptr inbounds i32, i32* %call137, i64 0
%115 = load i32, i32* %arrayidx138, align 4
%sub139 = sub nsw i32 %112, %115
%cmp140 = icmp slt i32 %sub139, 2
br i1 %cmp140, label %if.then141, label %if.end142
if.then141: ; preds = %if.then134
store i8 0, i8* %shrink_status, align 1
br label %if.end142
if.end142: ; preds = %if.then141, %if.then134
br label %if.end143
if.end143: ; preds = %if.end142, %land.lhs.true130, %lor.lhs.false128
br label %if.end144
if.end144: ; preds = %if.end143, %if.end117
%116 = load i8, i8* %grow_status, align 1
%tobool = trunc i8 %116 to i1
%conv = zext i1 %tobool to i32
%cmp145 = icmp eq i32 %conv, 0
br i1 %cmp145, label %land.lhs.true146, label %if.end151
land.lhs.true146: ; preds = %if.end144
%117 = load i8, i8* %shrink_status, align 1
%tobool147 = trunc i8 %117 to i1
%conv148 = zext i1 %tobool147 to i32
%cmp149 = icmp eq i32 %conv148, 0
br i1 %cmp149, label %if.then150, label %if.end151
if.then150: ; preds = %land.lhs.true146
br label %while.end
if.end151: ; preds = %land.lhs.true146, %if.end144
%118 = load i8, i8* %grow_status, align 1
%tobool152 = trunc i8 %118 to i1
br i1 %tobool152, label %land.lhs.true153, label %if.end172
land.lhs.true153: ; preds = %if.end151
%119 = load i32, i32* %grow_axis, align 4
%cmp154 = icmp ne i32 %119, 3
br i1 %cmp154, label %if.then155, label %if.end172
if.then155: ; preds = %land.lhs.true153
%120 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%121 = load i32, i32* %grow_axis, align 4
%call156 = call i32* @_ZN3BoxixEi(%struct.Box* %120, i32 %121)
%arrayidx157 = getelementptr inbounds i32, i32* %call156, i64 0
%122 = load i32, i32* %arrayidx157, align 4
%123 = load i32, i32* %grow_axis_val, align 4
%cmp158 = icmp eq i32 %122, %123
br i1 %cmp158, label %if.then159, label %if.end163
if.then159: ; preds = %if.then155
%124 = load i32, i32* %grow_incr, align 4
%125 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%126 = load i32, i32* %grow_axis, align 4
%call160 = call i32* @_ZN3BoxixEi(%struct.Box* %125, i32 %126)
%arrayidx161 = getelementptr inbounds i32, i32* %call160, i64 0
%127 = load i32, i32* %arrayidx161, align 4
%add162 = add nsw i32 %127, %124
store i32 %add162, i32* %arrayidx161, align 4
br label %if.end163
if.end163: ; preds = %if.then159, %if.then155
%128 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%129 = load i32, i32* %grow_axis, align 4
%call164 = call i32* @_ZN3BoxixEi(%struct.Box* %128, i32 %129)
%arrayidx165 = getelementptr inbounds i32, i32* %call164, i64 1
%130 = load i32, i32* %arrayidx165, align 4
%131 = load i32, i32* %grow_axis_val, align 4
%cmp166 = icmp eq i32 %130, %131
br i1 %cmp166, label %if.then167, label %if.end171
if.then167: ; preds = %if.end163
%132 = load i32, i32* %grow_incr, align 4
%133 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%134 = load i32, i32* %grow_axis, align 4
%call168 = call i32* @_ZN3BoxixEi(%struct.Box* %133, i32 %134)
%arrayidx169 = getelementptr inbounds i32, i32* %call168, i64 1
%135 = load i32, i32* %arrayidx169, align 4
%add170 = add nsw i32 %135, %132
store i32 %add170, i32* %arrayidx169, align 4
br label %if.end171
if.end171: ; preds = %if.then167, %if.end163
br label %if.end172
if.end172: ; preds = %if.end171, %land.lhs.true153, %if.end151
%136 = load i8, i8* %shrink_status, align 1
%tobool173 = trunc i8 %136 to i1
br i1 %tobool173, label %land.lhs.true174, label %if.end193
land.lhs.true174: ; preds = %if.end172
%137 = load i32, i32* %shrink_axis, align 4
%cmp175 = icmp ne i32 %137, 3
br i1 %cmp175, label %if.then176, label %if.end193
if.then176: ; preds = %land.lhs.true174
%138 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%139 = load i32, i32* %shrink_axis, align 4
%call177 = call i32* @_ZN3BoxixEi(%struct.Box* %138, i32 %139)
%arrayidx178 = getelementptr inbounds i32, i32* %call177, i64 0
%140 = load i32, i32* %arrayidx178, align 4
%141 = load i32, i32* %shrink_axis_val, align 4
%cmp179 = icmp eq i32 %140, %141
br i1 %cmp179, label %if.then180, label %if.end184
if.then180: ; preds = %if.then176
%142 = load i32, i32* %shrink_incr, align 4
%143 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%144 = load i32, i32* %shrink_axis, align 4
%call181 = call i32* @_ZN3BoxixEi(%struct.Box* %143, i32 %144)
%arrayidx182 = getelementptr inbounds i32, i32* %call181, i64 0
%145 = load i32, i32* %arrayidx182, align 4
%add183 = add nsw i32 %145, %142
store i32 %add183, i32* %arrayidx182, align 4
br label %if.end184
if.end184: ; preds = %if.then180, %if.then176
%146 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%147 = load i32, i32* %shrink_axis, align 4
%call185 = call i32* @_ZN3BoxixEi(%struct.Box* %146, i32 %147)
%arrayidx186 = getelementptr inbounds i32, i32* %call185, i64 1
%148 = load i32, i32* %arrayidx186, align 4
%149 = load i32, i32* %shrink_axis_val, align 4
%cmp187 = icmp eq i32 %148, %149
br i1 %cmp187, label %if.then188, label %if.end192
if.then188: ; preds = %if.end184
%150 = load i32, i32* %shrink_incr, align 4
%151 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%152 = load i32, i32* %shrink_axis, align 4
%call189 = call i32* @_ZN3BoxixEi(%struct.Box* %151, i32 %152)
%arrayidx190 = getelementptr inbounds i32, i32* %call189, i64 1
%153 = load i32, i32* %arrayidx190, align 4
%add191 = add nsw i32 %153, %150
store i32 %add191, i32* %arrayidx190, align 4
br label %if.end192
if.end192: ; preds = %if.then188, %if.end184
br label %if.end193
if.end193: ; preds = %if.end192, %land.lhs.true174, %if.end172
%154 = load %struct.Box*, %struct.Box** %global_box.addr, align 8
%155 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%156 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
call void @_ZN6miniFE17compute_imbalanceIiEEvRK3BoxS3_RfS4_R8YAML_Docb(%struct.Box* dereferenceable(24) %154, %struct.Box* dereferenceable(24) %155, float* dereferenceable(4) %cur_imbalance, float* dereferenceable(4) %cur_std_dev, %class.YAML_Doc* dereferenceable(216) %156, i1 zeroext false)
br label %while.cond
while.end: ; preds = %if.then, %if.then150, %if.then93, %while.cond
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE17compute_imbalanceIiEEvRK3BoxS3_RfS4_R8YAML_Docb(%struct.Box* dereferenceable(24) %global_box, %struct.Box* dereferenceable(24) %local_box, float* dereferenceable(4) %largest_imbalance, float* dereferenceable(4) %std_dev, %class.YAML_Doc* dereferenceable(216) %doc, i1 zeroext %record_in_doc) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%global_box.addr = alloca %struct.Box*, align 8
%local_box.addr = alloca %struct.Box*, align 8
%largest_imbalance.addr = alloca float*, align 8
%std_dev.addr = alloca float*, align 8
%doc.addr = alloca %class.YAML_Doc*, align 8
%record_in_doc.addr = alloca i8, align 1
%numprocs = alloca i32, align 4
%myproc = alloca i32, align 4
%local_nrows = alloca i32, align 4
%min_nrows = alloca i32, align 4
%max_nrows = alloca i32, align 4
%global_nrows = alloca i32, align 4
%min_proc = alloca i32, align 4
%max_proc = alloca i32, align 4
%avg_nrows = alloca float, align 4
%tmp = alloca float, align 4
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp10 = alloca %"class.std::allocator", align 1
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%ref.tmp11 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp12 = alloca %"class.std::allocator", align 1
%ref.tmp24 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp25 = alloca %"class.std::allocator", align 1
%ref.tmp31 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp32 = alloca %"class.std::allocator", align 1
%ref.tmp47 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp48 = alloca %"class.std::allocator", align 1
%ref.tmp54 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp55 = alloca %"class.std::allocator", align 1
store %struct.Box* %global_box, %struct.Box** %global_box.addr, align 8
store %struct.Box* %local_box, %struct.Box** %local_box.addr, align 8
store float* %largest_imbalance, float** %largest_imbalance.addr, align 8
store float* %std_dev, float** %std_dev.addr, align 8
store %class.YAML_Doc* %doc, %class.YAML_Doc** %doc.addr, align 8
%frombool = zext i1 %record_in_doc to i8
store i8 %frombool, i8* %record_in_doc.addr, align 1
store i32 1, i32* %numprocs, align 4
store i32 0, i32* %myproc, align 4
%0 = load %struct.Box*, %struct.Box** %local_box.addr, align 8
%call = call i32 @_ZN6miniFE11get_num_idsIiEET_RK3Box(%struct.Box* dereferenceable(24) %0)
store i32 %call, i32* %local_nrows, align 4
store i32 0, i32* %min_nrows, align 4
store i32 0, i32* %max_nrows, align 4
store i32 0, i32* %global_nrows, align 4
%1 = load i32, i32* %myproc, align 4
store i32 %1, i32* %min_proc, align 4
%2 = load i32, i32* %myproc, align 4
store i32 %2, i32* %max_proc, align 4
%3 = load i32, i32* %local_nrows, align 4
call void @_ZN6miniFE18get_global_min_maxIiEEvT_RS1_S2_RiS2_S3_(i32 %3, i32* dereferenceable(4) %global_nrows, i32* dereferenceable(4) %min_nrows, i32* dereferenceable(4) %min_proc, i32* dereferenceable(4) %max_nrows, i32* dereferenceable(4) %max_proc)
%4 = load i32, i32* %global_nrows, align 4
%conv = sitofp i32 %4 to float
store float %conv, float* %avg_nrows, align 4
%5 = load i32, i32* %numprocs, align 4
%conv1 = sitofp i32 %5 to float
%6 = load float, float* %avg_nrows, align 4
%div = fdiv float %6, %conv1
store float %div, float* %avg_nrows, align 4
%7 = load i32, i32* %min_nrows, align 4
%conv2 = sitofp i32 %7 to float
%8 = load float, float* %avg_nrows, align 4
%call3 = call float @_ZN6miniFE21percentage_differenceIfEET_S1_S1_(float %conv2, float %8)
%9 = load float*, float** %largest_imbalance.addr, align 8
store float %call3, float* %9, align 4
%10 = load i32, i32* %max_nrows, align 4
%conv4 = sitofp i32 %10 to float
%11 = load float, float* %avg_nrows, align 4
%call5 = call float @_ZN6miniFE21percentage_differenceIfEET_S1_S1_(float %conv4, float %11)
store float %call5, float* %tmp, align 4
%12 = load float, float* %tmp, align 4
%13 = load float*, float** %largest_imbalance.addr, align 8
%14 = load float, float* %13, align 4
%cmp = fcmp ogt float %12, %14
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%15 = load float, float* %tmp, align 4
%16 = load float*, float** %largest_imbalance.addr, align 8
store float %15, float* %16, align 4
br label %if.end
if.end: ; preds = %if.then, %entry
%17 = load i32, i32* %local_nrows, align 4
%conv6 = sitofp i32 %17 to float
%18 = load float, float* %avg_nrows, align 4
%call7 = call float @_ZN6miniFE29compute_std_dev_as_percentageIfEET_S1_S1_(float %conv6, float %18)
%19 = load float*, float** %std_dev.addr, align 8
store float %call7, float* %19, align 4
%20 = load i32, i32* %myproc, align 4
%cmp8 = icmp eq i32 %20, 0
br i1 %cmp8, label %land.lhs.true, label %if.end70
land.lhs.true: ; preds = %if.end
%21 = load i8, i8* %record_in_doc.addr, align 1
%tobool = trunc i8 %21 to i1
br i1 %tobool, label %if.then9, label %if.end70
if.then9: ; preds = %land.lhs.true
%22 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%23 = bitcast %class.YAML_Doc* %22 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp10) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.73, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp10)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.then9
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp12) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp11, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp12)
to label %invoke.cont14 unwind label %lpad13
invoke.cont14: ; preds = %invoke.cont
%call17 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %23, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp11)
to label %invoke.cont16 unwind label %lpad15
invoke.cont16: ; preds = %invoke.cont14
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp11)
to label %invoke.cont18 unwind label %lpad13
invoke.cont18: ; preds = %invoke.cont16
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp12) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont20 unwind label %lpad
invoke.cont20: ; preds = %invoke.cont18
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp10) #2
%24 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%25 = bitcast %class.YAML_Doc* %24 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp25) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp24, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.73, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp25)
to label %invoke.cont27 unwind label %lpad26
invoke.cont27: ; preds = %invoke.cont20
%call30 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %25, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp24)
to label %invoke.cont29 unwind label %lpad28
invoke.cont29: ; preds = %invoke.cont27
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp32) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp31, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.74, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp32)
to label %invoke.cont34 unwind label %lpad33
invoke.cont34: ; preds = %invoke.cont29
%26 = load float*, float** %largest_imbalance.addr, align 8
%27 = load float, float* %26, align 4
%conv35 = fpext float %27 to double
%call38 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call30, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp31, double %conv35)
to label %invoke.cont37 unwind label %lpad36
invoke.cont37: ; preds = %invoke.cont34
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp31)
to label %invoke.cont39 unwind label %lpad33
invoke.cont39: ; preds = %invoke.cont37
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp32) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp24)
to label %invoke.cont43 unwind label %lpad26
invoke.cont43: ; preds = %invoke.cont39
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp25) #2
%28 = load %class.YAML_Doc*, %class.YAML_Doc** %doc.addr, align 8
%29 = bitcast %class.YAML_Doc* %28 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp48) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp47, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.73, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp48)
to label %invoke.cont50 unwind label %lpad49
invoke.cont50: ; preds = %invoke.cont43
%call53 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %29, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp47)
to label %invoke.cont52 unwind label %lpad51
invoke.cont52: ; preds = %invoke.cont50
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp55) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp54, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.75, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp55)
to label %invoke.cont57 unwind label %lpad56
invoke.cont57: ; preds = %invoke.cont52
%30 = load float*, float** %std_dev.addr, align 8
%31 = load float, float* %30, align 4
%conv58 = fpext float %31 to double
%call61 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call53, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp54, double %conv58)
to label %invoke.cont60 unwind label %lpad59
invoke.cont60: ; preds = %invoke.cont57
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp54)
to label %invoke.cont62 unwind label %lpad56
invoke.cont62: ; preds = %invoke.cont60
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp55) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp47)
to label %invoke.cont66 unwind label %lpad49
invoke.cont66: ; preds = %invoke.cont62
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp48) #2
br label %if.end70
lpad: ; preds = %invoke.cont18, %if.then9
%32 = landingpad { i8*, i32 }
cleanup
%33 = extractvalue { i8*, i32 } %32, 0
store i8* %33, i8** %exn.slot, align 8
%34 = extractvalue { i8*, i32 } %32, 1
store i32 %34, i32* %ehselector.slot, align 4
br label %ehcleanup23
lpad13: ; preds = %invoke.cont16, %invoke.cont
%35 = landingpad { i8*, i32 }
cleanup
%36 = extractvalue { i8*, i32 } %35, 0
store i8* %36, i8** %exn.slot, align 8
%37 = extractvalue { i8*, i32 } %35, 1
store i32 %37, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad15: ; preds = %invoke.cont14
%38 = landingpad { i8*, i32 }
cleanup
%39 = extractvalue { i8*, i32 } %38, 0
store i8* %39, i8** %exn.slot, align 8
%40 = extractvalue { i8*, i32 } %38, 1
store i32 %40, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp11)
to label %invoke.cont19 unwind label %terminate.lpad
invoke.cont19: ; preds = %lpad15
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont19, %lpad13
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp12) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont22 unwind label %terminate.lpad
invoke.cont22: ; preds = %ehcleanup
br label %ehcleanup23
ehcleanup23: ; preds = %invoke.cont22, %lpad
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp10) #2
br label %eh.resume
lpad26: ; preds = %invoke.cont39, %invoke.cont20
%41 = landingpad { i8*, i32 }
cleanup
%42 = extractvalue { i8*, i32 } %41, 0
store i8* %42, i8** %exn.slot, align 8
%43 = extractvalue { i8*, i32 } %41, 1
store i32 %43, i32* %ehselector.slot, align 4
br label %ehcleanup46
lpad28: ; preds = %invoke.cont27
%44 = landingpad { i8*, i32 }
cleanup
%45 = extractvalue { i8*, i32 } %44, 0
store i8* %45, i8** %exn.slot, align 8
%46 = extractvalue { i8*, i32 } %44, 1
store i32 %46, i32* %ehselector.slot, align 4
br label %ehcleanup44
lpad33: ; preds = %invoke.cont37, %invoke.cont29
%47 = landingpad { i8*, i32 }
cleanup
%48 = extractvalue { i8*, i32 } %47, 0
store i8* %48, i8** %exn.slot, align 8
%49 = extractvalue { i8*, i32 } %47, 1
store i32 %49, i32* %ehselector.slot, align 4
br label %ehcleanup42
lpad36: ; preds = %invoke.cont34
%50 = landingpad { i8*, i32 }
cleanup
%51 = extractvalue { i8*, i32 } %50, 0
store i8* %51, i8** %exn.slot, align 8
%52 = extractvalue { i8*, i32 } %50, 1
store i32 %52, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp31)
to label %invoke.cont41 unwind label %terminate.lpad
invoke.cont41: ; preds = %lpad36
br label %ehcleanup42
ehcleanup42: ; preds = %invoke.cont41, %lpad33
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp32) #2
br label %ehcleanup44
ehcleanup44: ; preds = %ehcleanup42, %lpad28
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp24)
to label %invoke.cont45 unwind label %terminate.lpad
invoke.cont45: ; preds = %ehcleanup44
br label %ehcleanup46
ehcleanup46: ; preds = %invoke.cont45, %lpad26
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp25) #2
br label %eh.resume
lpad49: ; preds = %invoke.cont62, %invoke.cont43
%53 = landingpad { i8*, i32 }
cleanup
%54 = extractvalue { i8*, i32 } %53, 0
store i8* %54, i8** %exn.slot, align 8
%55 = extractvalue { i8*, i32 } %53, 1
store i32 %55, i32* %ehselector.slot, align 4
br label %ehcleanup69
lpad51: ; preds = %invoke.cont50
%56 = landingpad { i8*, i32 }
cleanup
%57 = extractvalue { i8*, i32 } %56, 0
store i8* %57, i8** %exn.slot, align 8
%58 = extractvalue { i8*, i32 } %56, 1
store i32 %58, i32* %ehselector.slot, align 4
br label %ehcleanup67
lpad56: ; preds = %invoke.cont60, %invoke.cont52
%59 = landingpad { i8*, i32 }
cleanup
%60 = extractvalue { i8*, i32 } %59, 0
store i8* %60, i8** %exn.slot, align 8
%61 = extractvalue { i8*, i32 } %59, 1
store i32 %61, i32* %ehselector.slot, align 4
br label %ehcleanup65
lpad59: ; preds = %invoke.cont57
%62 = landingpad { i8*, i32 }
cleanup
%63 = extractvalue { i8*, i32 } %62, 0
store i8* %63, i8** %exn.slot, align 8
%64 = extractvalue { i8*, i32 } %62, 1
store i32 %64, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp54)
to label %invoke.cont64 unwind label %terminate.lpad
invoke.cont64: ; preds = %lpad59
br label %ehcleanup65
ehcleanup65: ; preds = %invoke.cont64, %lpad56
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp55) #2
br label %ehcleanup67
ehcleanup67: ; preds = %ehcleanup65, %lpad51
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp47)
to label %invoke.cont68 unwind label %terminate.lpad
invoke.cont68: ; preds = %ehcleanup67
br label %ehcleanup69
ehcleanup69: ; preds = %invoke.cont68, %lpad49
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp48) #2
br label %eh.resume
if.end70: ; preds = %invoke.cont66, %land.lhs.true, %if.end
ret void
eh.resume: ; preds = %ehcleanup69, %ehcleanup46, %ehcleanup23
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val71 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val71
terminate.lpad: ; preds = %ehcleanup67, %lpad59, %ehcleanup44, %lpad36, %ehcleanup, %lpad15
%65 = landingpad { i8*, i32 }
catch i8* null
%66 = extractvalue { i8*, i32 } %65, 0
call void @__clang_call_terminate(i8* %66) #13
unreachable
}
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"*) #1
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE23simple_mesh_descriptionIiEC2ERK3BoxS4_(%"class.miniFE::simple_mesh_description"* %this, %struct.Box* dereferenceable(24) %global_box_in, %struct.Box* dereferenceable(24) %local_box_in) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"class.miniFE::simple_mesh_description"*, align 8
%global_box_in.addr = alloca %struct.Box*, align 8
%local_box_in.addr = alloca %struct.Box*, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%local_node_box = alloca %struct.Box, align 4
%i = alloca i32, align 4
%max_node_x = alloca i32, align 4
%max_node_y = alloca i32, align 4
%max_node_z = alloca i32, align 4
%X = alloca i32, align 4
%Y = alloca i32, align 4
%Z = alloca i32, align 4
%x1 = alloca i32, align 4
%y1 = alloca i32, align 4
%z1 = alloca i32, align 4
%miny = alloca i32, align 4
%minz = alloca i32, align 4
%maxy = alloca i32, align 4
%maxz = alloca i32, align 4
%iz = alloca i32, align 4
%iy = alloca i32, align 4
%nodeID = alloca i32, align 4
%ref.tmp = alloca i32, align 4
%coerce = alloca %"struct.std::pair.25", align 8
%minx = alloca i32, align 4
%minz162 = alloca i32, align 4
%maxx = alloca i32, align 4
%maxz169 = alloca i32, align 4
%iz201 = alloca i32, align 4
%ix = alloca i32, align 4
%nodeID208 = alloca i32, align 4
%row = alloca i32, align 4
%coerce237 = alloca %"struct.std::pair.25", align 8
%minx255 = alloca i32, align 4
%miny259 = alloca i32, align 4
%maxx263 = alloca i32, align 4
%maxy267 = alloca i32, align 4
%iy299 = alloca i32, align 4
%ix303 = alloca i32, align 4
%nodeID307 = alloca i32, align 4
%ref.tmp311 = alloca i32, align 4
%coerce316 = alloca %"struct.std::pair.25", align 8
%minz334 = alloca i32, align 4
%miny338 = alloca i32, align 4
%maxz342 = alloca i32, align 4
%maxy346 = alloca i32, align 4
%iy378 = alloca i32, align 4
%iz382 = alloca i32, align 4
%nodeID386 = alloca i32, align 4
%row389 = alloca i32, align 4
%coerce395 = alloca %"struct.std::pair.25", align 8
%minz413 = alloca i32, align 4
%minx417 = alloca i32, align 4
%maxz421 = alloca i32, align 4
%maxx425 = alloca i32, align 4
%ix457 = alloca i32, align 4
%iz461 = alloca i32, align 4
%nodeID465 = alloca i32, align 4
%ref.tmp469 = alloca i32, align 4
%coerce474 = alloca %"struct.std::pair.25", align 8
%miny492 = alloca i32, align 4
%minx496 = alloca i32, align 4
%maxy500 = alloca i32, align 4
%maxx504 = alloca i32, align 4
%ix536 = alloca i32, align 4
%iy540 = alloca i32, align 4
%nodeID544 = alloca i32, align 4
%ref.tmp548 = alloca i32, align 4
%coerce553 = alloca %"struct.std::pair.25", align 8
store %"class.miniFE::simple_mesh_description"* %this, %"class.miniFE::simple_mesh_description"** %this.addr, align 8
store %struct.Box* %global_box_in, %struct.Box** %global_box_in.addr, align 8
store %struct.Box* %local_box_in, %struct.Box** %local_box_in.addr, align 8
%this1 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %this.addr, align 8
%bc_rows_0 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 0
call void @_ZNSt3setIiSt4lessIiESaIiEEC2Ev(%"class.std::set"* %bc_rows_0)
%bc_rows_1 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 1
invoke void @_ZNSt3setIiSt4lessIiESaIiEEC2Ev(%"class.std::set"* %bc_rows_1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%map_ids_to_rows = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 2
invoke void @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEEC2Ev(%"class.std::map"* %map_ids_to_rows)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%global_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%local_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
store i32 0, i32* %i, align 4
br label %for.cond
for.cond: ; preds = %for.inc, %invoke.cont3
%0 = load i32, i32* %i, align 4
%cmp = icmp slt i32 %0, 3
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
%1 = load %struct.Box*, %struct.Box** %global_box_in.addr, align 8
%2 = load i32, i32* %i, align 4
%call = invoke i32* @_ZNK3BoxixEi(%struct.Box* %1, i32 %2)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %for.body
%arrayidx = getelementptr inbounds i32, i32* %call, i64 0
%3 = load i32, i32* %arrayidx, align 4
%global_box6 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%4 = load i32, i32* %i, align 4
%call8 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box6, i32 %4)
to label %invoke.cont7 unwind label %lpad4
invoke.cont7: ; preds = %invoke.cont5
%arrayidx9 = getelementptr inbounds i32, i32* %call8, i64 0
store i32 %3, i32* %arrayidx9, align 4
%5 = load %struct.Box*, %struct.Box** %global_box_in.addr, align 8
%6 = load i32, i32* %i, align 4
%call11 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %5, i32 %6)
to label %invoke.cont10 unwind label %lpad4
invoke.cont10: ; preds = %invoke.cont7
%arrayidx12 = getelementptr inbounds i32, i32* %call11, i64 1
%7 = load i32, i32* %arrayidx12, align 4
%global_box13 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%8 = load i32, i32* %i, align 4
%call15 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box13, i32 %8)
to label %invoke.cont14 unwind label %lpad4
invoke.cont14: ; preds = %invoke.cont10
%arrayidx16 = getelementptr inbounds i32, i32* %call15, i64 1
store i32 %7, i32* %arrayidx16, align 4
%9 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%10 = load i32, i32* %i, align 4
%call18 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %9, i32 %10)
to label %invoke.cont17 unwind label %lpad4
invoke.cont17: ; preds = %invoke.cont14
%arrayidx19 = getelementptr inbounds i32, i32* %call18, i64 0
%11 = load i32, i32* %arrayidx19, align 4
%local_box20 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%12 = load i32, i32* %i, align 4
%call22 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box20, i32 %12)
to label %invoke.cont21 unwind label %lpad4
invoke.cont21: ; preds = %invoke.cont17
%arrayidx23 = getelementptr inbounds i32, i32* %call22, i64 0
store i32 %11, i32* %arrayidx23, align 4
%13 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%14 = load i32, i32* %i, align 4
%call25 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %13, i32 %14)
to label %invoke.cont24 unwind label %lpad4
invoke.cont24: ; preds = %invoke.cont21
%arrayidx26 = getelementptr inbounds i32, i32* %call25, i64 1
%15 = load i32, i32* %arrayidx26, align 4
%local_box27 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%16 = load i32, i32* %i, align 4
%call29 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box27, i32 %16)
to label %invoke.cont28 unwind label %lpad4
invoke.cont28: ; preds = %invoke.cont24
%arrayidx30 = getelementptr inbounds i32, i32* %call29, i64 1
store i32 %15, i32* %arrayidx30, align 4
%17 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%18 = load i32, i32* %i, align 4
%call32 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %17, i32 %18)
to label %invoke.cont31 unwind label %lpad4
invoke.cont31: ; preds = %invoke.cont28
%arrayidx33 = getelementptr inbounds i32, i32* %call32, i64 0
%19 = load i32, i32* %arrayidx33, align 4
%20 = load i32, i32* %i, align 4
%call35 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 %20)
to label %invoke.cont34 unwind label %lpad4
invoke.cont34: ; preds = %invoke.cont31
%arrayidx36 = getelementptr inbounds i32, i32* %call35, i64 0
store i32 %19, i32* %arrayidx36, align 4
%21 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%22 = load i32, i32* %i, align 4
%call38 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %21, i32 %22)
to label %invoke.cont37 unwind label %lpad4
invoke.cont37: ; preds = %invoke.cont34
%arrayidx39 = getelementptr inbounds i32, i32* %call38, i64 1
%23 = load i32, i32* %arrayidx39, align 4
%24 = load i32, i32* %i, align 4
%call41 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 %24)
to label %invoke.cont40 unwind label %lpad4
invoke.cont40: ; preds = %invoke.cont37
%arrayidx42 = getelementptr inbounds i32, i32* %call41, i64 1
store i32 %23, i32* %arrayidx42, align 4
%25 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%26 = load i32, i32* %i, align 4
%call44 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %25, i32 %26)
to label %invoke.cont43 unwind label %lpad4
invoke.cont43: ; preds = %invoke.cont40
%arrayidx45 = getelementptr inbounds i32, i32* %call44, i64 1
%27 = load i32, i32* %arrayidx45, align 4
%28 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%29 = load i32, i32* %i, align 4
%call47 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %28, i32 %29)
to label %invoke.cont46 unwind label %lpad4
invoke.cont46: ; preds = %invoke.cont43
%arrayidx48 = getelementptr inbounds i32, i32* %call47, i64 0
%30 = load i32, i32* %arrayidx48, align 4
%cmp49 = icmp sgt i32 %27, %30
br i1 %cmp49, label %land.lhs.true, label %if.end
land.lhs.true: ; preds = %invoke.cont46
%31 = load %struct.Box*, %struct.Box** %local_box_in.addr, align 8
%32 = load i32, i32* %i, align 4
%call51 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %31, i32 %32)
to label %invoke.cont50 unwind label %lpad4
invoke.cont50: ; preds = %land.lhs.true
%arrayidx52 = getelementptr inbounds i32, i32* %call51, i64 1
%33 = load i32, i32* %arrayidx52, align 4
%global_box53 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%34 = load i32, i32* %i, align 4
%call55 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box53, i32 %34)
to label %invoke.cont54 unwind label %lpad4
invoke.cont54: ; preds = %invoke.cont50
%arrayidx56 = getelementptr inbounds i32, i32* %call55, i64 1
%35 = load i32, i32* %arrayidx56, align 4
%cmp57 = icmp eq i32 %33, %35
br i1 %cmp57, label %if.then, label %if.end
if.then: ; preds = %invoke.cont54
%36 = load i32, i32* %i, align 4
%call59 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 %36)
to label %invoke.cont58 unwind label %lpad4
invoke.cont58: ; preds = %if.then
%arrayidx60 = getelementptr inbounds i32, i32* %call59, i64 1
%37 = load i32, i32* %arrayidx60, align 4
%add = add nsw i32 %37, 1
store i32 %add, i32* %arrayidx60, align 4
br label %if.end
lpad: ; preds = %entry
%38 = landingpad { i8*, i32 }
cleanup
%39 = extractvalue { i8*, i32 } %38, 0
store i8* %39, i8** %exn.slot, align 8
%40 = extractvalue { i8*, i32 } %38, 1
store i32 %40, i32* %ehselector.slot, align 4
br label %ehcleanup563
lpad2: ; preds = %invoke.cont
%41 = landingpad { i8*, i32 }
cleanup
%42 = extractvalue { i8*, i32 } %41, 0
store i8* %42, i8** %exn.slot, align 8
%43 = extractvalue { i8*, i32 } %41, 1
store i32 %43, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad4: ; preds = %invoke.cont549, %invoke.cont545, %for.body543, %if.end528, %if.end521, %if.end514, %invoke.cont505, %invoke.cont501, %invoke.cont497, %invoke.cont493, %if.then491, %invoke.cont483, %if.end481, %invoke.cont470, %invoke.cont466, %for.body464, %if.end449, %if.end442, %if.end435, %invoke.cont426, %invoke.cont422, %invoke.cont418, %invoke.cont414, %if.then412, %invoke.cont404, %if.end402, %invoke.cont390, %invoke.cont387, %for.body385, %if.end370, %if.end363, %if.end356, %invoke.cont347, %invoke.cont343, %invoke.cont339, %invoke.cont335, %if.then333, %invoke.cont325, %if.end323, %invoke.cont312, %invoke.cont308, %for.body306, %if.end291, %if.end284, %if.end277, %invoke.cont268, %invoke.cont264, %invoke.cont260, %invoke.cont256, %if.then254, %invoke.cont246, %if.end244, %if.end233, %invoke.cont229, %invoke.cont227, %invoke.cont225, %invoke.cont223, %invoke.cont221, %invoke.cont219, %invoke.cont217, %invoke.cont215, %if.then214, %invoke.cont209, %for.body207, %if.end193, %if.end186, %if.end179, %invoke.cont170, %invoke.cont166, %invoke.cont163, %invoke.cont159, %if.then158, %invoke.cont150, %if.end148, %invoke.cont138, %invoke.cont135, %for.body134, %if.end121, %if.end114, %if.end107, %invoke.cont99, %invoke.cont96, %invoke.cont93, %invoke.cont90, %if.then89, %invoke.cont81, %invoke.cont77, %invoke.cont72, %invoke.cont67, %invoke.cont62, %for.end, %if.then, %invoke.cont50, %land.lhs.true, %invoke.cont43, %invoke.cont40, %invoke.cont37, %invoke.cont34, %invoke.cont31, %invoke.cont28, %invoke.cont24, %invoke.cont21, %invoke.cont17, %invoke.cont14, %invoke.cont10, %invoke.cont7, %invoke.cont5, %for.body
%44 = landingpad { i8*, i32 }
cleanup
%45 = extractvalue { i8*, i32 } %44, 0
store i8* %45, i8** %exn.slot, align 8
%46 = extractvalue { i8*, i32 } %44, 1
store i32 %46, i32* %ehselector.slot, align 4
invoke void @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEED2Ev(%"class.std::map"* %map_ids_to_rows)
to label %invoke.cont561 unwind label %terminate.lpad
if.end: ; preds = %invoke.cont58, %invoke.cont54, %invoke.cont46
br label %for.inc
for.inc: ; preds = %if.end
%47 = load i32, i32* %i, align 4
%inc = add nsw i32 %47, 1
store i32 %inc, i32* %i, align 4
br label %for.cond
for.end: ; preds = %for.cond
%global_box61 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call63 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box61, i32 0)
to label %invoke.cont62 unwind label %lpad4
invoke.cont62: ; preds = %for.end
%arrayidx64 = getelementptr inbounds i32, i32* %call63, i64 1
%48 = load i32, i32* %arrayidx64, align 4
%add65 = add nsw i32 %48, 1
store i32 %add65, i32* %max_node_x, align 4
%global_box66 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call68 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box66, i32 1)
to label %invoke.cont67 unwind label %lpad4
invoke.cont67: ; preds = %invoke.cont62
%arrayidx69 = getelementptr inbounds i32, i32* %call68, i64 1
%49 = load i32, i32* %arrayidx69, align 4
%add70 = add nsw i32 %49, 1
store i32 %add70, i32* %max_node_y, align 4
%global_box71 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call73 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box71, i32 2)
to label %invoke.cont72 unwind label %lpad4
invoke.cont72: ; preds = %invoke.cont67
%arrayidx74 = getelementptr inbounds i32, i32* %call73, i64 1
%50 = load i32, i32* %arrayidx74, align 4
%add75 = add nsw i32 %50, 1
store i32 %add75, i32* %max_node_z, align 4
%51 = load i32, i32* %max_node_x, align 4
%52 = load i32, i32* %max_node_y, align 4
%53 = load i32, i32* %max_node_z, align 4
%map_ids_to_rows76 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 2
invoke void @_ZN6miniFE20create_map_id_to_rowIiEEviiiRK3BoxRSt3mapIT_S5_St4lessIS5_ESaISt4pairIKS5_S5_EEE(i32 %51, i32 %52, i32 %53, %struct.Box* dereferenceable(24) %local_node_box, %"class.std::map"* dereferenceable(48) %map_ids_to_rows76)
to label %invoke.cont77 unwind label %lpad4
invoke.cont77: ; preds = %invoke.cont72
store i32 0, i32* %X, align 4
store i32 1, i32* %Y, align 4
store i32 2, i32* %Z, align 4
%54 = load i32, i32* %max_node_x, align 4
%sub = sub nsw i32 %54, 1
store i32 %sub, i32* %x1, align 4
%55 = load i32, i32* %max_node_y, align 4
%sub78 = sub nsw i32 %55, 1
store i32 %sub78, i32* %y1, align 4
%56 = load i32, i32* %max_node_z, align 4
%sub79 = sub nsw i32 %56, 1
store i32 %sub79, i32* %z1, align 4
%global_box80 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call82 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box80, i32 0)
to label %invoke.cont81 unwind label %lpad4
invoke.cont81: ; preds = %invoke.cont77
%arrayidx83 = getelementptr inbounds i32, i32* %call82, i64 0
%57 = load i32, i32* %arrayidx83, align 4
%local_box84 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%call86 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box84, i32 0)
to label %invoke.cont85 unwind label %lpad4
invoke.cont85: ; preds = %invoke.cont81
%arrayidx87 = getelementptr inbounds i32, i32* %call86, i64 0
%58 = load i32, i32* %arrayidx87, align 4
%cmp88 = icmp eq i32 %57, %58
br i1 %cmp88, label %if.then89, label %if.end148
if.then89: ; preds = %invoke.cont85
%call91 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont90 unwind label %lpad4
invoke.cont90: ; preds = %if.then89
%arrayidx92 = getelementptr inbounds i32, i32* %call91, i64 0
%59 = load i32, i32* %arrayidx92, align 4
store i32 %59, i32* %miny, align 4
%call94 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont93 unwind label %lpad4
invoke.cont93: ; preds = %invoke.cont90
%arrayidx95 = getelementptr inbounds i32, i32* %call94, i64 0
%60 = load i32, i32* %arrayidx95, align 4
store i32 %60, i32* %minz, align 4
%call97 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont96 unwind label %lpad4
invoke.cont96: ; preds = %invoke.cont93
%arrayidx98 = getelementptr inbounds i32, i32* %call97, i64 1
%61 = load i32, i32* %arrayidx98, align 4
store i32 %61, i32* %maxy, align 4
%call100 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont99 unwind label %lpad4
invoke.cont99: ; preds = %invoke.cont96
%arrayidx101 = getelementptr inbounds i32, i32* %call100, i64 1
%62 = load i32, i32* %arrayidx101, align 4
store i32 %62, i32* %maxz, align 4
%call103 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont102 unwind label %lpad4
invoke.cont102: ; preds = %invoke.cont99
%arrayidx104 = getelementptr inbounds i32, i32* %call103, i64 0
%63 = load i32, i32* %arrayidx104, align 4
%cmp105 = icmp sgt i32 %63, 0
br i1 %cmp105, label %if.then106, label %if.end107
if.then106: ; preds = %invoke.cont102
%64 = load i32, i32* %miny, align 4
%dec = add nsw i32 %64, -1
store i32 %dec, i32* %miny, align 4
br label %if.end107
if.end107: ; preds = %if.then106, %invoke.cont102
%call109 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont108 unwind label %lpad4
invoke.cont108: ; preds = %if.end107
%arrayidx110 = getelementptr inbounds i32, i32* %call109, i64 0
%65 = load i32, i32* %arrayidx110, align 4
%cmp111 = icmp sgt i32 %65, 0
br i1 %cmp111, label %if.then112, label %if.end114
if.then112: ; preds = %invoke.cont108
%66 = load i32, i32* %minz, align 4
%dec113 = add nsw i32 %66, -1
store i32 %dec113, i32* %minz, align 4
br label %if.end114
if.end114: ; preds = %if.then112, %invoke.cont108
%call116 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont115 unwind label %lpad4
invoke.cont115: ; preds = %if.end114
%arrayidx117 = getelementptr inbounds i32, i32* %call116, i64 1
%67 = load i32, i32* %arrayidx117, align 4
%68 = load i32, i32* %max_node_y, align 4
%cmp118 = icmp slt i32 %67, %68
br i1 %cmp118, label %if.then119, label %if.end121
if.then119: ; preds = %invoke.cont115
%69 = load i32, i32* %maxy, align 4
%inc120 = add nsw i32 %69, 1
store i32 %inc120, i32* %maxy, align 4
br label %if.end121
if.end121: ; preds = %if.then119, %invoke.cont115
%call123 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont122 unwind label %lpad4
invoke.cont122: ; preds = %if.end121
%arrayidx124 = getelementptr inbounds i32, i32* %call123, i64 1
%70 = load i32, i32* %arrayidx124, align 4
%71 = load i32, i32* %max_node_z, align 4
%cmp125 = icmp slt i32 %70, %71
br i1 %cmp125, label %if.then126, label %if.end128
if.then126: ; preds = %invoke.cont122
%72 = load i32, i32* %maxz, align 4
%inc127 = add nsw i32 %72, 1
store i32 %inc127, i32* %maxz, align 4
br label %if.end128
if.end128: ; preds = %if.then126, %invoke.cont122
%73 = load i32, i32* %minz, align 4
store i32 %73, i32* %iz, align 4
br label %for.cond129
for.cond129: ; preds = %for.inc145, %if.end128
%74 = load i32, i32* %iz, align 4
%75 = load i32, i32* %maxz, align 4
%cmp130 = icmp slt i32 %74, %75
br i1 %cmp130, label %for.body131, label %for.end147
for.body131: ; preds = %for.cond129
%76 = load i32, i32* %miny, align 4
store i32 %76, i32* %iy, align 4
br label %for.cond132
for.cond132: ; preds = %for.inc142, %for.body131
%77 = load i32, i32* %iy, align 4
%78 = load i32, i32* %maxy, align 4
%cmp133 = icmp slt i32 %77, %78
br i1 %cmp133, label %for.body134, label %for.end144
for.body134: ; preds = %for.cond132
%79 = load i32, i32* %max_node_x, align 4
%80 = load i32, i32* %max_node_y, align 4
%81 = load i32, i32* %max_node_z, align 4
%82 = load i32, i32* %iy, align 4
%83 = load i32, i32* %iz, align 4
%call136 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %79, i32 %80, i32 %81, i32 0, i32 %82, i32 %83)
to label %invoke.cont135 unwind label %lpad4
invoke.cont135: ; preds = %for.body134
store i32 %call136, i32* %nodeID, align 4
%bc_rows_0137 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 0
%call139 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %this1, i32* dereferenceable(4) %nodeID)
to label %invoke.cont138 unwind label %lpad4
invoke.cont138: ; preds = %invoke.cont135
store i32 %call139, i32* %ref.tmp, align 4
%call141 = invoke { %"struct.std::_Rb_tree_node_base"*, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(%"class.std::set"* %bc_rows_0137, i32* dereferenceable(4) %ref.tmp)
to label %invoke.cont140 unwind label %lpad4
invoke.cont140: ; preds = %invoke.cont138
%84 = bitcast %"struct.std::pair.25"* %coerce to { %"struct.std::_Rb_tree_node_base"*, i8 }*
%85 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %84, i32 0, i32 0
%86 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call141, 0
store %"struct.std::_Rb_tree_node_base"* %86, %"struct.std::_Rb_tree_node_base"** %85, align 8
%87 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %84, i32 0, i32 1
%88 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call141, 1
store i8 %88, i8* %87, align 8
br label %for.inc142
for.inc142: ; preds = %invoke.cont140
%89 = load i32, i32* %iy, align 4
%inc143 = add nsw i32 %89, 1
store i32 %inc143, i32* %iy, align 4
br label %for.cond132
for.end144: ; preds = %for.cond132
br label %for.inc145
for.inc145: ; preds = %for.end144
%90 = load i32, i32* %iz, align 4
%inc146 = add nsw i32 %90, 1
store i32 %inc146, i32* %iz, align 4
br label %for.cond129
for.end147: ; preds = %for.cond129
br label %if.end148
if.end148: ; preds = %for.end147, %invoke.cont85
%global_box149 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call151 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box149, i32 1)
to label %invoke.cont150 unwind label %lpad4
invoke.cont150: ; preds = %if.end148
%arrayidx152 = getelementptr inbounds i32, i32* %call151, i64 0
%91 = load i32, i32* %arrayidx152, align 4
%local_box153 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%call155 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box153, i32 1)
to label %invoke.cont154 unwind label %lpad4
invoke.cont154: ; preds = %invoke.cont150
%arrayidx156 = getelementptr inbounds i32, i32* %call155, i64 0
%92 = load i32, i32* %arrayidx156, align 4
%cmp157 = icmp eq i32 %91, %92
br i1 %cmp157, label %if.then158, label %if.end244
if.then158: ; preds = %invoke.cont154
%call160 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont159 unwind label %lpad4
invoke.cont159: ; preds = %if.then158
%arrayidx161 = getelementptr inbounds i32, i32* %call160, i64 0
%93 = load i32, i32* %arrayidx161, align 4
store i32 %93, i32* %minx, align 4
%call164 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont163 unwind label %lpad4
invoke.cont163: ; preds = %invoke.cont159
%arrayidx165 = getelementptr inbounds i32, i32* %call164, i64 0
%94 = load i32, i32* %arrayidx165, align 4
store i32 %94, i32* %minz162, align 4
%call167 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont166 unwind label %lpad4
invoke.cont166: ; preds = %invoke.cont163
%arrayidx168 = getelementptr inbounds i32, i32* %call167, i64 1
%95 = load i32, i32* %arrayidx168, align 4
store i32 %95, i32* %maxx, align 4
%call171 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont170 unwind label %lpad4
invoke.cont170: ; preds = %invoke.cont166
%arrayidx172 = getelementptr inbounds i32, i32* %call171, i64 1
%96 = load i32, i32* %arrayidx172, align 4
store i32 %96, i32* %maxz169, align 4
%call174 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont173 unwind label %lpad4
invoke.cont173: ; preds = %invoke.cont170
%arrayidx175 = getelementptr inbounds i32, i32* %call174, i64 0
%97 = load i32, i32* %arrayidx175, align 4
%cmp176 = icmp sgt i32 %97, 0
br i1 %cmp176, label %if.then177, label %if.end179
if.then177: ; preds = %invoke.cont173
%98 = load i32, i32* %minx, align 4
%dec178 = add nsw i32 %98, -1
store i32 %dec178, i32* %minx, align 4
br label %if.end179
if.end179: ; preds = %if.then177, %invoke.cont173
%call181 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont180 unwind label %lpad4
invoke.cont180: ; preds = %if.end179
%arrayidx182 = getelementptr inbounds i32, i32* %call181, i64 0
%99 = load i32, i32* %arrayidx182, align 4
%cmp183 = icmp sgt i32 %99, 0
br i1 %cmp183, label %if.then184, label %if.end186
if.then184: ; preds = %invoke.cont180
%100 = load i32, i32* %minz162, align 4
%dec185 = add nsw i32 %100, -1
store i32 %dec185, i32* %minz162, align 4
br label %if.end186
if.end186: ; preds = %if.then184, %invoke.cont180
%call188 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont187 unwind label %lpad4
invoke.cont187: ; preds = %if.end186
%arrayidx189 = getelementptr inbounds i32, i32* %call188, i64 1
%101 = load i32, i32* %arrayidx189, align 4
%102 = load i32, i32* %max_node_x, align 4
%cmp190 = icmp slt i32 %101, %102
br i1 %cmp190, label %if.then191, label %if.end193
if.then191: ; preds = %invoke.cont187
%103 = load i32, i32* %maxx, align 4
%inc192 = add nsw i32 %103, 1
store i32 %inc192, i32* %maxx, align 4
br label %if.end193
if.end193: ; preds = %if.then191, %invoke.cont187
%call195 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont194 unwind label %lpad4
invoke.cont194: ; preds = %if.end193
%arrayidx196 = getelementptr inbounds i32, i32* %call195, i64 1
%104 = load i32, i32* %arrayidx196, align 4
%105 = load i32, i32* %max_node_z, align 4
%cmp197 = icmp slt i32 %104, %105
br i1 %cmp197, label %if.then198, label %if.end200
if.then198: ; preds = %invoke.cont194
%106 = load i32, i32* %maxz169, align 4
%inc199 = add nsw i32 %106, 1
store i32 %inc199, i32* %maxz169, align 4
br label %if.end200
if.end200: ; preds = %if.then198, %invoke.cont194
%107 = load i32, i32* %minz162, align 4
store i32 %107, i32* %iz201, align 4
br label %for.cond202
for.cond202: ; preds = %for.inc241, %if.end200
%108 = load i32, i32* %iz201, align 4
%109 = load i32, i32* %maxz169, align 4
%cmp203 = icmp slt i32 %108, %109
br i1 %cmp203, label %for.body204, label %for.end243
for.body204: ; preds = %for.cond202
%110 = load i32, i32* %minx, align 4
store i32 %110, i32* %ix, align 4
br label %for.cond205
for.cond205: ; preds = %for.inc238, %for.body204
%111 = load i32, i32* %ix, align 4
%112 = load i32, i32* %maxx, align 4
%cmp206 = icmp slt i32 %111, %112
br i1 %cmp206, label %for.body207, label %for.end240
for.body207: ; preds = %for.cond205
%113 = load i32, i32* %max_node_x, align 4
%114 = load i32, i32* %max_node_y, align 4
%115 = load i32, i32* %max_node_z, align 4
%116 = load i32, i32* %ix, align 4
%117 = load i32, i32* %iz201, align 4
%call210 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %113, i32 %114, i32 %115, i32 %116, i32 0, i32 %117)
to label %invoke.cont209 unwind label %lpad4
invoke.cont209: ; preds = %for.body207
store i32 %call210, i32* %nodeID208, align 4
%call212 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %this1, i32* dereferenceable(4) %nodeID208)
to label %invoke.cont211 unwind label %lpad4
invoke.cont211: ; preds = %invoke.cont209
store i32 %call212, i32* %row, align 4
%118 = load i32, i32* %row, align 4
%cmp213 = icmp slt i32 %118, 0
br i1 %cmp213, label %if.then214, label %if.end233
if.then214: ; preds = %invoke.cont211
%call216 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.76, i32 0, i32 0))
to label %invoke.cont215 unwind label %lpad4
invoke.cont215: ; preds = %if.then214
%119 = load i32, i32* %ix, align 4
%call218 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call216, i32 %119)
to label %invoke.cont217 unwind label %lpad4
invoke.cont217: ; preds = %invoke.cont215
%call220 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call218, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.77, i32 0, i32 0))
to label %invoke.cont219 unwind label %lpad4
invoke.cont219: ; preds = %invoke.cont217
%120 = load i32, i32* %iz201, align 4
%call222 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call220, i32 %120)
to label %invoke.cont221 unwind label %lpad4
invoke.cont221: ; preds = %invoke.cont219
%call224 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call222, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.78, i32 0, i32 0))
to label %invoke.cont223 unwind label %lpad4
invoke.cont223: ; preds = %invoke.cont221
%121 = load i32, i32* %row, align 4
%call226 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call224, i32 %121)
to label %invoke.cont225 unwind label %lpad4
invoke.cont225: ; preds = %invoke.cont223
%call228 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call226, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.79, i32 0, i32 0))
to label %invoke.cont227 unwind label %lpad4
invoke.cont227: ; preds = %invoke.cont225
%122 = load i32, i32* %nodeID208, align 4
%call230 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call228, i32 %122)
to label %invoke.cont229 unwind label %lpad4
invoke.cont229: ; preds = %invoke.cont227
%call232 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call230, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont231 unwind label %lpad4
invoke.cont231: ; preds = %invoke.cont229
br label %if.end233
if.end233: ; preds = %invoke.cont231, %invoke.cont211
%bc_rows_0234 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 0
%call236 = invoke { %"struct.std::_Rb_tree_node_base"*, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(%"class.std::set"* %bc_rows_0234, i32* dereferenceable(4) %row)
to label %invoke.cont235 unwind label %lpad4
invoke.cont235: ; preds = %if.end233
%123 = bitcast %"struct.std::pair.25"* %coerce237 to { %"struct.std::_Rb_tree_node_base"*, i8 }*
%124 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %123, i32 0, i32 0
%125 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call236, 0
store %"struct.std::_Rb_tree_node_base"* %125, %"struct.std::_Rb_tree_node_base"** %124, align 8
%126 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %123, i32 0, i32 1
%127 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call236, 1
store i8 %127, i8* %126, align 8
br label %for.inc238
for.inc238: ; preds = %invoke.cont235
%128 = load i32, i32* %ix, align 4
%inc239 = add nsw i32 %128, 1
store i32 %inc239, i32* %ix, align 4
br label %for.cond205
for.end240: ; preds = %for.cond205
br label %for.inc241
for.inc241: ; preds = %for.end240
%129 = load i32, i32* %iz201, align 4
%inc242 = add nsw i32 %129, 1
store i32 %inc242, i32* %iz201, align 4
br label %for.cond202
for.end243: ; preds = %for.cond202
br label %if.end244
if.end244: ; preds = %for.end243, %invoke.cont154
%global_box245 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call247 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box245, i32 2)
to label %invoke.cont246 unwind label %lpad4
invoke.cont246: ; preds = %if.end244
%arrayidx248 = getelementptr inbounds i32, i32* %call247, i64 0
%130 = load i32, i32* %arrayidx248, align 4
%local_box249 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%call251 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box249, i32 2)
to label %invoke.cont250 unwind label %lpad4
invoke.cont250: ; preds = %invoke.cont246
%arrayidx252 = getelementptr inbounds i32, i32* %call251, i64 0
%131 = load i32, i32* %arrayidx252, align 4
%cmp253 = icmp eq i32 %130, %131
br i1 %cmp253, label %if.then254, label %if.end323
if.then254: ; preds = %invoke.cont250
%call257 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont256 unwind label %lpad4
invoke.cont256: ; preds = %if.then254
%arrayidx258 = getelementptr inbounds i32, i32* %call257, i64 0
%132 = load i32, i32* %arrayidx258, align 4
store i32 %132, i32* %minx255, align 4
%call261 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont260 unwind label %lpad4
invoke.cont260: ; preds = %invoke.cont256
%arrayidx262 = getelementptr inbounds i32, i32* %call261, i64 0
%133 = load i32, i32* %arrayidx262, align 4
store i32 %133, i32* %miny259, align 4
%call265 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont264 unwind label %lpad4
invoke.cont264: ; preds = %invoke.cont260
%arrayidx266 = getelementptr inbounds i32, i32* %call265, i64 1
%134 = load i32, i32* %arrayidx266, align 4
store i32 %134, i32* %maxx263, align 4
%call269 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont268 unwind label %lpad4
invoke.cont268: ; preds = %invoke.cont264
%arrayidx270 = getelementptr inbounds i32, i32* %call269, i64 1
%135 = load i32, i32* %arrayidx270, align 4
store i32 %135, i32* %maxy267, align 4
%call272 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont271 unwind label %lpad4
invoke.cont271: ; preds = %invoke.cont268
%arrayidx273 = getelementptr inbounds i32, i32* %call272, i64 0
%136 = load i32, i32* %arrayidx273, align 4
%cmp274 = icmp sgt i32 %136, 0
br i1 %cmp274, label %if.then275, label %if.end277
if.then275: ; preds = %invoke.cont271
%137 = load i32, i32* %minx255, align 4
%dec276 = add nsw i32 %137, -1
store i32 %dec276, i32* %minx255, align 4
br label %if.end277
if.end277: ; preds = %if.then275, %invoke.cont271
%call279 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont278 unwind label %lpad4
invoke.cont278: ; preds = %if.end277
%arrayidx280 = getelementptr inbounds i32, i32* %call279, i64 0
%138 = load i32, i32* %arrayidx280, align 4
%cmp281 = icmp sgt i32 %138, 0
br i1 %cmp281, label %if.then282, label %if.end284
if.then282: ; preds = %invoke.cont278
%139 = load i32, i32* %miny259, align 4
%dec283 = add nsw i32 %139, -1
store i32 %dec283, i32* %miny259, align 4
br label %if.end284
if.end284: ; preds = %if.then282, %invoke.cont278
%call286 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont285 unwind label %lpad4
invoke.cont285: ; preds = %if.end284
%arrayidx287 = getelementptr inbounds i32, i32* %call286, i64 1
%140 = load i32, i32* %arrayidx287, align 4
%141 = load i32, i32* %max_node_x, align 4
%cmp288 = icmp slt i32 %140, %141
br i1 %cmp288, label %if.then289, label %if.end291
if.then289: ; preds = %invoke.cont285
%142 = load i32, i32* %maxx263, align 4
%inc290 = add nsw i32 %142, 1
store i32 %inc290, i32* %maxx263, align 4
br label %if.end291
if.end291: ; preds = %if.then289, %invoke.cont285
%call293 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont292 unwind label %lpad4
invoke.cont292: ; preds = %if.end291
%arrayidx294 = getelementptr inbounds i32, i32* %call293, i64 1
%143 = load i32, i32* %arrayidx294, align 4
%144 = load i32, i32* %max_node_y, align 4
%cmp295 = icmp slt i32 %143, %144
br i1 %cmp295, label %if.then296, label %if.end298
if.then296: ; preds = %invoke.cont292
%145 = load i32, i32* %maxy267, align 4
%inc297 = add nsw i32 %145, 1
store i32 %inc297, i32* %maxy267, align 4
br label %if.end298
if.end298: ; preds = %if.then296, %invoke.cont292
%146 = load i32, i32* %miny259, align 4
store i32 %146, i32* %iy299, align 4
br label %for.cond300
for.cond300: ; preds = %for.inc320, %if.end298
%147 = load i32, i32* %iy299, align 4
%148 = load i32, i32* %maxy267, align 4
%cmp301 = icmp slt i32 %147, %148
br i1 %cmp301, label %for.body302, label %for.end322
for.body302: ; preds = %for.cond300
%149 = load i32, i32* %minx255, align 4
store i32 %149, i32* %ix303, align 4
br label %for.cond304
for.cond304: ; preds = %for.inc317, %for.body302
%150 = load i32, i32* %ix303, align 4
%151 = load i32, i32* %maxx263, align 4
%cmp305 = icmp slt i32 %150, %151
br i1 %cmp305, label %for.body306, label %for.end319
for.body306: ; preds = %for.cond304
%152 = load i32, i32* %max_node_x, align 4
%153 = load i32, i32* %max_node_y, align 4
%154 = load i32, i32* %max_node_z, align 4
%155 = load i32, i32* %ix303, align 4
%156 = load i32, i32* %iy299, align 4
%call309 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %152, i32 %153, i32 %154, i32 %155, i32 %156, i32 0)
to label %invoke.cont308 unwind label %lpad4
invoke.cont308: ; preds = %for.body306
store i32 %call309, i32* %nodeID307, align 4
%bc_rows_0310 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 0
%call313 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %this1, i32* dereferenceable(4) %nodeID307)
to label %invoke.cont312 unwind label %lpad4
invoke.cont312: ; preds = %invoke.cont308
store i32 %call313, i32* %ref.tmp311, align 4
%call315 = invoke { %"struct.std::_Rb_tree_node_base"*, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(%"class.std::set"* %bc_rows_0310, i32* dereferenceable(4) %ref.tmp311)
to label %invoke.cont314 unwind label %lpad4
invoke.cont314: ; preds = %invoke.cont312
%157 = bitcast %"struct.std::pair.25"* %coerce316 to { %"struct.std::_Rb_tree_node_base"*, i8 }*
%158 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %157, i32 0, i32 0
%159 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call315, 0
store %"struct.std::_Rb_tree_node_base"* %159, %"struct.std::_Rb_tree_node_base"** %158, align 8
%160 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %157, i32 0, i32 1
%161 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call315, 1
store i8 %161, i8* %160, align 8
br label %for.inc317
for.inc317: ; preds = %invoke.cont314
%162 = load i32, i32* %ix303, align 4
%inc318 = add nsw i32 %162, 1
store i32 %inc318, i32* %ix303, align 4
br label %for.cond304
for.end319: ; preds = %for.cond304
br label %for.inc320
for.inc320: ; preds = %for.end319
%163 = load i32, i32* %iy299, align 4
%inc321 = add nsw i32 %163, 1
store i32 %inc321, i32* %iy299, align 4
br label %for.cond300
for.end322: ; preds = %for.cond300
br label %if.end323
if.end323: ; preds = %for.end322, %invoke.cont250
%global_box324 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call326 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box324, i32 0)
to label %invoke.cont325 unwind label %lpad4
invoke.cont325: ; preds = %if.end323
%arrayidx327 = getelementptr inbounds i32, i32* %call326, i64 1
%164 = load i32, i32* %arrayidx327, align 4
%local_box328 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%call330 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box328, i32 0)
to label %invoke.cont329 unwind label %lpad4
invoke.cont329: ; preds = %invoke.cont325
%arrayidx331 = getelementptr inbounds i32, i32* %call330, i64 1
%165 = load i32, i32* %arrayidx331, align 4
%cmp332 = icmp eq i32 %164, %165
br i1 %cmp332, label %if.then333, label %if.end402
if.then333: ; preds = %invoke.cont329
%call336 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont335 unwind label %lpad4
invoke.cont335: ; preds = %if.then333
%arrayidx337 = getelementptr inbounds i32, i32* %call336, i64 0
%166 = load i32, i32* %arrayidx337, align 4
store i32 %166, i32* %minz334, align 4
%call340 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont339 unwind label %lpad4
invoke.cont339: ; preds = %invoke.cont335
%arrayidx341 = getelementptr inbounds i32, i32* %call340, i64 0
%167 = load i32, i32* %arrayidx341, align 4
store i32 %167, i32* %miny338, align 4
%call344 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont343 unwind label %lpad4
invoke.cont343: ; preds = %invoke.cont339
%arrayidx345 = getelementptr inbounds i32, i32* %call344, i64 1
%168 = load i32, i32* %arrayidx345, align 4
store i32 %168, i32* %maxz342, align 4
%call348 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont347 unwind label %lpad4
invoke.cont347: ; preds = %invoke.cont343
%arrayidx349 = getelementptr inbounds i32, i32* %call348, i64 1
%169 = load i32, i32* %arrayidx349, align 4
store i32 %169, i32* %maxy346, align 4
%call351 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont350 unwind label %lpad4
invoke.cont350: ; preds = %invoke.cont347
%arrayidx352 = getelementptr inbounds i32, i32* %call351, i64 0
%170 = load i32, i32* %arrayidx352, align 4
%cmp353 = icmp sgt i32 %170, 0
br i1 %cmp353, label %if.then354, label %if.end356
if.then354: ; preds = %invoke.cont350
%171 = load i32, i32* %minz334, align 4
%dec355 = add nsw i32 %171, -1
store i32 %dec355, i32* %minz334, align 4
br label %if.end356
if.end356: ; preds = %if.then354, %invoke.cont350
%call358 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont357 unwind label %lpad4
invoke.cont357: ; preds = %if.end356
%arrayidx359 = getelementptr inbounds i32, i32* %call358, i64 0
%172 = load i32, i32* %arrayidx359, align 4
%cmp360 = icmp sgt i32 %172, 0
br i1 %cmp360, label %if.then361, label %if.end363
if.then361: ; preds = %invoke.cont357
%173 = load i32, i32* %miny338, align 4
%dec362 = add nsw i32 %173, -1
store i32 %dec362, i32* %miny338, align 4
br label %if.end363
if.end363: ; preds = %if.then361, %invoke.cont357
%call365 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont364 unwind label %lpad4
invoke.cont364: ; preds = %if.end363
%arrayidx366 = getelementptr inbounds i32, i32* %call365, i64 1
%174 = load i32, i32* %arrayidx366, align 4
%175 = load i32, i32* %max_node_z, align 4
%cmp367 = icmp slt i32 %174, %175
br i1 %cmp367, label %if.then368, label %if.end370
if.then368: ; preds = %invoke.cont364
%176 = load i32, i32* %maxz342, align 4
%inc369 = add nsw i32 %176, 1
store i32 %inc369, i32* %maxz342, align 4
br label %if.end370
if.end370: ; preds = %if.then368, %invoke.cont364
%call372 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont371 unwind label %lpad4
invoke.cont371: ; preds = %if.end370
%arrayidx373 = getelementptr inbounds i32, i32* %call372, i64 1
%177 = load i32, i32* %arrayidx373, align 4
%178 = load i32, i32* %max_node_y, align 4
%cmp374 = icmp slt i32 %177, %178
br i1 %cmp374, label %if.then375, label %if.end377
if.then375: ; preds = %invoke.cont371
%179 = load i32, i32* %maxy346, align 4
%inc376 = add nsw i32 %179, 1
store i32 %inc376, i32* %maxy346, align 4
br label %if.end377
if.end377: ; preds = %if.then375, %invoke.cont371
%180 = load i32, i32* %miny338, align 4
store i32 %180, i32* %iy378, align 4
br label %for.cond379
for.cond379: ; preds = %for.inc399, %if.end377
%181 = load i32, i32* %iy378, align 4
%182 = load i32, i32* %maxy346, align 4
%cmp380 = icmp slt i32 %181, %182
br i1 %cmp380, label %for.body381, label %for.end401
for.body381: ; preds = %for.cond379
%183 = load i32, i32* %minz334, align 4
store i32 %183, i32* %iz382, align 4
br label %for.cond383
for.cond383: ; preds = %for.inc396, %for.body381
%184 = load i32, i32* %iz382, align 4
%185 = load i32, i32* %maxz342, align 4
%cmp384 = icmp slt i32 %184, %185
br i1 %cmp384, label %for.body385, label %for.end398
for.body385: ; preds = %for.cond383
%186 = load i32, i32* %max_node_x, align 4
%187 = load i32, i32* %max_node_y, align 4
%188 = load i32, i32* %max_node_z, align 4
%189 = load i32, i32* %x1, align 4
%190 = load i32, i32* %iy378, align 4
%191 = load i32, i32* %iz382, align 4
%call388 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %186, i32 %187, i32 %188, i32 %189, i32 %190, i32 %191)
to label %invoke.cont387 unwind label %lpad4
invoke.cont387: ; preds = %for.body385
store i32 %call388, i32* %nodeID386, align 4
%call391 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %this1, i32* dereferenceable(4) %nodeID386)
to label %invoke.cont390 unwind label %lpad4
invoke.cont390: ; preds = %invoke.cont387
store i32 %call391, i32* %row389, align 4
%bc_rows_1392 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 1
%call394 = invoke { %"struct.std::_Rb_tree_node_base"*, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(%"class.std::set"* %bc_rows_1392, i32* dereferenceable(4) %row389)
to label %invoke.cont393 unwind label %lpad4
invoke.cont393: ; preds = %invoke.cont390
%192 = bitcast %"struct.std::pair.25"* %coerce395 to { %"struct.std::_Rb_tree_node_base"*, i8 }*
%193 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %192, i32 0, i32 0
%194 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call394, 0
store %"struct.std::_Rb_tree_node_base"* %194, %"struct.std::_Rb_tree_node_base"** %193, align 8
%195 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %192, i32 0, i32 1
%196 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call394, 1
store i8 %196, i8* %195, align 8
br label %for.inc396
for.inc396: ; preds = %invoke.cont393
%197 = load i32, i32* %iz382, align 4
%inc397 = add nsw i32 %197, 1
store i32 %inc397, i32* %iz382, align 4
br label %for.cond383
for.end398: ; preds = %for.cond383
br label %for.inc399
for.inc399: ; preds = %for.end398
%198 = load i32, i32* %iy378, align 4
%inc400 = add nsw i32 %198, 1
store i32 %inc400, i32* %iy378, align 4
br label %for.cond379
for.end401: ; preds = %for.cond379
br label %if.end402
if.end402: ; preds = %for.end401, %invoke.cont329
%global_box403 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call405 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box403, i32 1)
to label %invoke.cont404 unwind label %lpad4
invoke.cont404: ; preds = %if.end402
%arrayidx406 = getelementptr inbounds i32, i32* %call405, i64 1
%199 = load i32, i32* %arrayidx406, align 4
%local_box407 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%call409 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box407, i32 1)
to label %invoke.cont408 unwind label %lpad4
invoke.cont408: ; preds = %invoke.cont404
%arrayidx410 = getelementptr inbounds i32, i32* %call409, i64 1
%200 = load i32, i32* %arrayidx410, align 4
%cmp411 = icmp eq i32 %199, %200
br i1 %cmp411, label %if.then412, label %if.end481
if.then412: ; preds = %invoke.cont408
%call415 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont414 unwind label %lpad4
invoke.cont414: ; preds = %if.then412
%arrayidx416 = getelementptr inbounds i32, i32* %call415, i64 0
%201 = load i32, i32* %arrayidx416, align 4
store i32 %201, i32* %minz413, align 4
%call419 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont418 unwind label %lpad4
invoke.cont418: ; preds = %invoke.cont414
%arrayidx420 = getelementptr inbounds i32, i32* %call419, i64 0
%202 = load i32, i32* %arrayidx420, align 4
store i32 %202, i32* %minx417, align 4
%call423 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont422 unwind label %lpad4
invoke.cont422: ; preds = %invoke.cont418
%arrayidx424 = getelementptr inbounds i32, i32* %call423, i64 1
%203 = load i32, i32* %arrayidx424, align 4
store i32 %203, i32* %maxz421, align 4
%call427 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont426 unwind label %lpad4
invoke.cont426: ; preds = %invoke.cont422
%arrayidx428 = getelementptr inbounds i32, i32* %call427, i64 1
%204 = load i32, i32* %arrayidx428, align 4
store i32 %204, i32* %maxx425, align 4
%call430 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont429 unwind label %lpad4
invoke.cont429: ; preds = %invoke.cont426
%arrayidx431 = getelementptr inbounds i32, i32* %call430, i64 0
%205 = load i32, i32* %arrayidx431, align 4
%cmp432 = icmp sgt i32 %205, 0
br i1 %cmp432, label %if.then433, label %if.end435
if.then433: ; preds = %invoke.cont429
%206 = load i32, i32* %minz413, align 4
%dec434 = add nsw i32 %206, -1
store i32 %dec434, i32* %minz413, align 4
br label %if.end435
if.end435: ; preds = %if.then433, %invoke.cont429
%call437 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont436 unwind label %lpad4
invoke.cont436: ; preds = %if.end435
%arrayidx438 = getelementptr inbounds i32, i32* %call437, i64 0
%207 = load i32, i32* %arrayidx438, align 4
%cmp439 = icmp sgt i32 %207, 0
br i1 %cmp439, label %if.then440, label %if.end442
if.then440: ; preds = %invoke.cont436
%208 = load i32, i32* %minx417, align 4
%dec441 = add nsw i32 %208, -1
store i32 %dec441, i32* %minx417, align 4
br label %if.end442
if.end442: ; preds = %if.then440, %invoke.cont436
%call444 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 2)
to label %invoke.cont443 unwind label %lpad4
invoke.cont443: ; preds = %if.end442
%arrayidx445 = getelementptr inbounds i32, i32* %call444, i64 1
%209 = load i32, i32* %arrayidx445, align 4
%210 = load i32, i32* %max_node_z, align 4
%cmp446 = icmp slt i32 %209, %210
br i1 %cmp446, label %if.then447, label %if.end449
if.then447: ; preds = %invoke.cont443
%211 = load i32, i32* %maxz421, align 4
%inc448 = add nsw i32 %211, 1
store i32 %inc448, i32* %maxz421, align 4
br label %if.end449
if.end449: ; preds = %if.then447, %invoke.cont443
%call451 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont450 unwind label %lpad4
invoke.cont450: ; preds = %if.end449
%arrayidx452 = getelementptr inbounds i32, i32* %call451, i64 1
%212 = load i32, i32* %arrayidx452, align 4
%213 = load i32, i32* %max_node_x, align 4
%cmp453 = icmp slt i32 %212, %213
br i1 %cmp453, label %if.then454, label %if.end456
if.then454: ; preds = %invoke.cont450
%214 = load i32, i32* %maxx425, align 4
%inc455 = add nsw i32 %214, 1
store i32 %inc455, i32* %maxx425, align 4
br label %if.end456
if.end456: ; preds = %if.then454, %invoke.cont450
%215 = load i32, i32* %minx417, align 4
store i32 %215, i32* %ix457, align 4
br label %for.cond458
for.cond458: ; preds = %for.inc478, %if.end456
%216 = load i32, i32* %ix457, align 4
%217 = load i32, i32* %maxx425, align 4
%cmp459 = icmp slt i32 %216, %217
br i1 %cmp459, label %for.body460, label %for.end480
for.body460: ; preds = %for.cond458
%218 = load i32, i32* %minz413, align 4
store i32 %218, i32* %iz461, align 4
br label %for.cond462
for.cond462: ; preds = %for.inc475, %for.body460
%219 = load i32, i32* %iz461, align 4
%220 = load i32, i32* %maxz421, align 4
%cmp463 = icmp slt i32 %219, %220
br i1 %cmp463, label %for.body464, label %for.end477
for.body464: ; preds = %for.cond462
%221 = load i32, i32* %max_node_x, align 4
%222 = load i32, i32* %max_node_y, align 4
%223 = load i32, i32* %max_node_z, align 4
%224 = load i32, i32* %ix457, align 4
%225 = load i32, i32* %y1, align 4
%226 = load i32, i32* %iz461, align 4
%call467 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %221, i32 %222, i32 %223, i32 %224, i32 %225, i32 %226)
to label %invoke.cont466 unwind label %lpad4
invoke.cont466: ; preds = %for.body464
store i32 %call467, i32* %nodeID465, align 4
%bc_rows_0468 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 0
%call471 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %this1, i32* dereferenceable(4) %nodeID465)
to label %invoke.cont470 unwind label %lpad4
invoke.cont470: ; preds = %invoke.cont466
store i32 %call471, i32* %ref.tmp469, align 4
%call473 = invoke { %"struct.std::_Rb_tree_node_base"*, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(%"class.std::set"* %bc_rows_0468, i32* dereferenceable(4) %ref.tmp469)
to label %invoke.cont472 unwind label %lpad4
invoke.cont472: ; preds = %invoke.cont470
%227 = bitcast %"struct.std::pair.25"* %coerce474 to { %"struct.std::_Rb_tree_node_base"*, i8 }*
%228 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %227, i32 0, i32 0
%229 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call473, 0
store %"struct.std::_Rb_tree_node_base"* %229, %"struct.std::_Rb_tree_node_base"** %228, align 8
%230 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %227, i32 0, i32 1
%231 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call473, 1
store i8 %231, i8* %230, align 8
br label %for.inc475
for.inc475: ; preds = %invoke.cont472
%232 = load i32, i32* %iz461, align 4
%inc476 = add nsw i32 %232, 1
store i32 %inc476, i32* %iz461, align 4
br label %for.cond462
for.end477: ; preds = %for.cond462
br label %for.inc478
for.inc478: ; preds = %for.end477
%233 = load i32, i32* %ix457, align 4
%inc479 = add nsw i32 %233, 1
store i32 %inc479, i32* %ix457, align 4
br label %for.cond458
for.end480: ; preds = %for.cond458
br label %if.end481
if.end481: ; preds = %for.end480, %invoke.cont408
%global_box482 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 3
%call484 = invoke i32* @_ZN3BoxixEi(%struct.Box* %global_box482, i32 2)
to label %invoke.cont483 unwind label %lpad4
invoke.cont483: ; preds = %if.end481
%arrayidx485 = getelementptr inbounds i32, i32* %call484, i64 1
%234 = load i32, i32* %arrayidx485, align 4
%local_box486 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 4
%call488 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_box486, i32 2)
to label %invoke.cont487 unwind label %lpad4
invoke.cont487: ; preds = %invoke.cont483
%arrayidx489 = getelementptr inbounds i32, i32* %call488, i64 1
%235 = load i32, i32* %arrayidx489, align 4
%cmp490 = icmp eq i32 %234, %235
br i1 %cmp490, label %if.then491, label %if.end560
if.then491: ; preds = %invoke.cont487
%call494 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont493 unwind label %lpad4
invoke.cont493: ; preds = %if.then491
%arrayidx495 = getelementptr inbounds i32, i32* %call494, i64 0
%236 = load i32, i32* %arrayidx495, align 4
store i32 %236, i32* %miny492, align 4
%call498 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont497 unwind label %lpad4
invoke.cont497: ; preds = %invoke.cont493
%arrayidx499 = getelementptr inbounds i32, i32* %call498, i64 0
%237 = load i32, i32* %arrayidx499, align 4
store i32 %237, i32* %minx496, align 4
%call502 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont501 unwind label %lpad4
invoke.cont501: ; preds = %invoke.cont497
%arrayidx503 = getelementptr inbounds i32, i32* %call502, i64 1
%238 = load i32, i32* %arrayidx503, align 4
store i32 %238, i32* %maxy500, align 4
%call506 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont505 unwind label %lpad4
invoke.cont505: ; preds = %invoke.cont501
%arrayidx507 = getelementptr inbounds i32, i32* %call506, i64 1
%239 = load i32, i32* %arrayidx507, align 4
store i32 %239, i32* %maxx504, align 4
%call509 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont508 unwind label %lpad4
invoke.cont508: ; preds = %invoke.cont505
%arrayidx510 = getelementptr inbounds i32, i32* %call509, i64 0
%240 = load i32, i32* %arrayidx510, align 4
%cmp511 = icmp sgt i32 %240, 0
br i1 %cmp511, label %if.then512, label %if.end514
if.then512: ; preds = %invoke.cont508
%241 = load i32, i32* %miny492, align 4
%dec513 = add nsw i32 %241, -1
store i32 %dec513, i32* %miny492, align 4
br label %if.end514
if.end514: ; preds = %if.then512, %invoke.cont508
%call516 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont515 unwind label %lpad4
invoke.cont515: ; preds = %if.end514
%arrayidx517 = getelementptr inbounds i32, i32* %call516, i64 0
%242 = load i32, i32* %arrayidx517, align 4
%cmp518 = icmp sgt i32 %242, 0
br i1 %cmp518, label %if.then519, label %if.end521
if.then519: ; preds = %invoke.cont515
%243 = load i32, i32* %minx496, align 4
%dec520 = add nsw i32 %243, -1
store i32 %dec520, i32* %minx496, align 4
br label %if.end521
if.end521: ; preds = %if.then519, %invoke.cont515
%call523 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 1)
to label %invoke.cont522 unwind label %lpad4
invoke.cont522: ; preds = %if.end521
%arrayidx524 = getelementptr inbounds i32, i32* %call523, i64 1
%244 = load i32, i32* %arrayidx524, align 4
%245 = load i32, i32* %max_node_y, align 4
%cmp525 = icmp slt i32 %244, %245
br i1 %cmp525, label %if.then526, label %if.end528
if.then526: ; preds = %invoke.cont522
%246 = load i32, i32* %maxy500, align 4
%inc527 = add nsw i32 %246, 1
store i32 %inc527, i32* %maxy500, align 4
br label %if.end528
if.end528: ; preds = %if.then526, %invoke.cont522
%call530 = invoke i32* @_ZN3BoxixEi(%struct.Box* %local_node_box, i32 0)
to label %invoke.cont529 unwind label %lpad4
invoke.cont529: ; preds = %if.end528
%arrayidx531 = getelementptr inbounds i32, i32* %call530, i64 1
%247 = load i32, i32* %arrayidx531, align 4
%248 = load i32, i32* %max_node_x, align 4
%cmp532 = icmp slt i32 %247, %248
br i1 %cmp532, label %if.then533, label %if.end535
if.then533: ; preds = %invoke.cont529
%249 = load i32, i32* %maxx504, align 4
%inc534 = add nsw i32 %249, 1
store i32 %inc534, i32* %maxx504, align 4
br label %if.end535
if.end535: ; preds = %if.then533, %invoke.cont529
%250 = load i32, i32* %minx496, align 4
store i32 %250, i32* %ix536, align 4
br label %for.cond537
for.cond537: ; preds = %for.inc557, %if.end535
%251 = load i32, i32* %ix536, align 4
%252 = load i32, i32* %maxx504, align 4
%cmp538 = icmp slt i32 %251, %252
br i1 %cmp538, label %for.body539, label %for.end559
for.body539: ; preds = %for.cond537
%253 = load i32, i32* %miny492, align 4
store i32 %253, i32* %iy540, align 4
br label %for.cond541
for.cond541: ; preds = %for.inc554, %for.body539
%254 = load i32, i32* %iy540, align 4
%255 = load i32, i32* %maxy500, align 4
%cmp542 = icmp slt i32 %254, %255
br i1 %cmp542, label %for.body543, label %for.end556
for.body543: ; preds = %for.cond541
%256 = load i32, i32* %max_node_x, align 4
%257 = load i32, i32* %max_node_y, align 4
%258 = load i32, i32* %max_node_z, align 4
%259 = load i32, i32* %ix536, align 4
%260 = load i32, i32* %iy540, align 4
%261 = load i32, i32* %z1, align 4
%call546 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %256, i32 %257, i32 %258, i32 %259, i32 %260, i32 %261)
to label %invoke.cont545 unwind label %lpad4
invoke.cont545: ; preds = %for.body543
store i32 %call546, i32* %nodeID544, align 4
%bc_rows_0547 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %this1, i32 0, i32 0
%call550 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %this1, i32* dereferenceable(4) %nodeID544)
to label %invoke.cont549 unwind label %lpad4
invoke.cont549: ; preds = %invoke.cont545
store i32 %call550, i32* %ref.tmp548, align 4
%call552 = invoke { %"struct.std::_Rb_tree_node_base"*, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(%"class.std::set"* %bc_rows_0547, i32* dereferenceable(4) %ref.tmp548)
to label %invoke.cont551 unwind label %lpad4
invoke.cont551: ; preds = %invoke.cont549
%262 = bitcast %"struct.std::pair.25"* %coerce553 to { %"struct.std::_Rb_tree_node_base"*, i8 }*
%263 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %262, i32 0, i32 0
%264 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call552, 0
store %"struct.std::_Rb_tree_node_base"* %264, %"struct.std::_Rb_tree_node_base"** %263, align 8
%265 = getelementptr inbounds { %"struct.std::_Rb_tree_node_base"*, i8 }, { %"struct.std::_Rb_tree_node_base"*, i8 }* %262, i32 0, i32 1
%266 = extractvalue { %"struct.std::_Rb_tree_node_base"*, i8 } %call552, 1
store i8 %266, i8* %265, align 8
br label %for.inc554
for.inc554: ; preds = %invoke.cont551
%267 = load i32, i32* %iy540, align 4
%inc555 = add nsw i32 %267, 1
store i32 %inc555, i32* %iy540, align 4
br label %for.cond541
for.end556: ; preds = %for.cond541
br label %for.inc557
for.inc557: ; preds = %for.end556
%268 = load i32, i32* %ix536, align 4
%inc558 = add nsw i32 %268, 1
store i32 %inc558, i32* %ix536, align 4
br label %for.cond537
for.end559: ; preds = %for.cond537
br label %if.end560
if.end560: ; preds = %for.end559, %invoke.cont487
ret void
invoke.cont561: ; preds = %lpad4
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont561, %lpad2
invoke void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(%"class.std::set"* %bc_rows_1)
to label %invoke.cont562 unwind label %terminate.lpad
invoke.cont562: ; preds = %ehcleanup
br label %ehcleanup563
ehcleanup563: ; preds = %invoke.cont562, %lpad
invoke void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(%"class.std::set"* %bc_rows_0)
to label %invoke.cont564 unwind label %terminate.lpad
invoke.cont564: ; preds = %ehcleanup563
br label %eh.resume
eh.resume: ; preds = %invoke.cont564
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val565 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val565
terminate.lpad: ; preds = %ehcleanup563, %ehcleanup, %lpad4
%269 = landingpad { i8*, i32 }
catch i8* null
%270 = extractvalue { i8*, i32 } %269, 0
call void @__clang_call_terminate(i8* %270) #13
unreachable
}
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"*, double) #1
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"*, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)*) #1
declare dereferenceable(272) %"class.std::basic_ostream"* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(%"class.std::basic_ostream"* dereferenceable(272)) #1
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE9CSRMatrixIdiiEC2Ev(%"struct.miniFE::CSRMatrix"* %this) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
store %"struct.miniFE::CSRMatrix"* %this, %"struct.miniFE::CSRMatrix"** %this.addr, align 8
%this1 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %this.addr, align 8
%has_local_indices = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 0
store i8 0, i8* %has_local_indices, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 2
call void @_ZNSt6vectorIiSaIiEEC2Ev(%"class.std::vector.15"* %rows)
%row_offsets = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 3
invoke void @_ZNSt6vectorIiSaIiEEC2Ev(%"class.std::vector.15"* %row_offsets)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%row_offsets_external = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 4
invoke void @_ZNSt6vectorIiSaIiEEC2Ev(%"class.std::vector.15"* %row_offsets_external)
to label %invoke.cont3 unwind label %lpad2
invoke.cont3: ; preds = %invoke.cont
%packed_cols = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 5
invoke void @_ZNSt6vectorIiSaIiEEC2Ev(%"class.std::vector.15"* %packed_cols)
to label %invoke.cont5 unwind label %lpad4
invoke.cont5: ; preds = %invoke.cont3
%packed_coefs = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 6
invoke void @_ZNSt6vectorIdSaIdEEC2Ev(%"class.std::vector.20"* %packed_coefs)
to label %invoke.cont7 unwind label %lpad6
invoke.cont7: ; preds = %invoke.cont5
%num_cols = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %this1, i32 0, i32 7
store i32 0, i32* %num_cols, align 8
ret void
lpad: ; preds = %entry
%0 = landingpad { i8*, i32 }
cleanup
%1 = extractvalue { i8*, i32 } %0, 0
store i8* %1, i8** %exn.slot, align 8
%2 = extractvalue { i8*, i32 } %0, 1
store i32 %2, i32* %ehselector.slot, align 4
br label %ehcleanup12
lpad2: ; preds = %invoke.cont
%3 = landingpad { i8*, i32 }
cleanup
%4 = extractvalue { i8*, i32 } %3, 0
store i8* %4, i8** %exn.slot, align 8
%5 = extractvalue { i8*, i32 } %3, 1
store i32 %5, i32* %ehselector.slot, align 4
br label %ehcleanup10
lpad4: ; preds = %invoke.cont3
%6 = landingpad { i8*, i32 }
cleanup
%7 = extractvalue { i8*, i32 } %6, 0
store i8* %7, i8** %exn.slot, align 8
%8 = extractvalue { i8*, i32 } %6, 1
store i32 %8, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad6: ; preds = %invoke.cont5
%9 = landingpad { i8*, i32 }
cleanup
%10 = extractvalue { i8*, i32 } %9, 0
store i8* %10, i8** %exn.slot, align 8
%11 = extractvalue { i8*, i32 } %9, 1
store i32 %11, i32* %ehselector.slot, align 4
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %packed_cols)
to label %invoke.cont8 unwind label %terminate.lpad
invoke.cont8: ; preds = %lpad6
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont8, %lpad4
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %row_offsets_external)
to label %invoke.cont9 unwind label %terminate.lpad
invoke.cont9: ; preds = %ehcleanup
br label %ehcleanup10
ehcleanup10: ; preds = %invoke.cont9, %lpad2
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %row_offsets)
to label %invoke.cont11 unwind label %terminate.lpad
invoke.cont11: ; preds = %ehcleanup10
br label %ehcleanup12
ehcleanup12: ; preds = %invoke.cont11, %lpad
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %rows)
to label %invoke.cont13 unwind label %terminate.lpad
invoke.cont13: ; preds = %ehcleanup12
br label %eh.resume
eh.resume: ; preds = %invoke.cont13
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val14
terminate.lpad: ; preds = %ehcleanup12, %ehcleanup10, %ehcleanup, %lpad6
%12 = landingpad { i8*, i32 }
catch i8* null
%13 = extractvalue { i8*, i32 } %12, 0
call void @__clang_call_terminate(i8* %13) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr i32 @_ZN6miniFE25generate_matrix_structureINS_9CSRMatrixIdiiEEEEiRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERS4_(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %mesh, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%retval = alloca i32, align 4
%mesh.addr = alloca %"class.miniFE::simple_mesh_description"*, align 8
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%myproc = alloca i32, align 4
%threw_exc = alloca i32, align 4
%global_nodes_x = alloca i32, align 4
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%global_nodes_y = alloca i32, align 4
%global_nodes_z = alloca i32, align 4
%box = alloca %struct.Box, align 4
%global_nrows = alloca i32, align 4
%nrows = alloca i32, align 4
%exc = alloca %"class.std::exception"*, align 8
%osstr = alloca %"class.std::__cxx11::basic_ostringstream", align 8
%str1 = alloca %"class.std::__cxx11::basic_string", align 8
%rows = alloca %"class.std::vector.15", align 8
%ref.tmp = alloca i32, align 4
%ref.tmp99 = alloca %"class.std::allocator.17", align 1
%row_offsets = alloca %"class.std::vector.15", align 8
%ref.tmp105 = alloca i32, align 4
%ref.tmp106 = alloca %"class.std::allocator.17", align 1
%row_coords = alloca %"class.std::vector.15", align 8
%ref.tmp112 = alloca i32, align 4
%ref.tmp113 = alloca %"class.std::allocator.17", align 1
%roffset = alloca i32, align 4
%nnz = alloca i32, align 4
%iz = alloca i32, align 4
%iy = alloca i32, align 4
%ix = alloca i32, align 4
%row_id = alloca i32, align 4
%sz = alloca i32, align 4
%sy = alloca i32, align 4
%sx = alloca i32, align 4
%col_id = alloca i32, align 4
%ref.tmp207 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp208 = alloca %"class.std::allocator", align 1
%cleanup.isactive = alloca i1, align 1
store %"class.miniFE::simple_mesh_description"* %mesh, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
store i32 0, i32* %myproc, align 4
store i32 0, i32* %threw_exc, align 4
%0 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %0, i32 0, i32 3
%call = invoke i32* @_ZNK3BoxixEi(%struct.Box* %global_box, i32 0)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
%add = add nsw i32 %1, 1
store i32 %add, i32* %global_nodes_x, align 4
%2 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box1 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %2, i32 0, i32 3
%call3 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %global_box1, i32 1)
to label %invoke.cont2 unwind label %lpad
invoke.cont2: ; preds = %invoke.cont
%arrayidx4 = getelementptr inbounds i32, i32* %call3, i64 1
%3 = load i32, i32* %arrayidx4, align 4
%add5 = add nsw i32 %3, 1
store i32 %add5, i32* %global_nodes_y, align 4
%4 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box6 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %4, i32 0, i32 3
%call8 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %global_box6, i32 2)
to label %invoke.cont7 unwind label %lpad
invoke.cont7: ; preds = %invoke.cont2
%arrayidx9 = getelementptr inbounds i32, i32* %call8, i64 1
%5 = load i32, i32* %arrayidx9, align 4
%add10 = add nsw i32 %5, 1
store i32 %add10, i32* %global_nodes_z, align 4
%6 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%local_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %6, i32 0, i32 4
invoke void @_ZN6miniFE8copy_boxERK3BoxRS0_(%struct.Box* dereferenceable(24) %local_box, %struct.Box* dereferenceable(24) %box)
to label %invoke.cont11 unwind label %lpad
invoke.cont11: ; preds = %invoke.cont7
%call13 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont12 unwind label %lpad
invoke.cont12: ; preds = %invoke.cont11
%arrayidx14 = getelementptr inbounds i32, i32* %call13, i64 1
%7 = load i32, i32* %arrayidx14, align 4
%call16 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont15 unwind label %lpad
invoke.cont15: ; preds = %invoke.cont12
%arrayidx17 = getelementptr inbounds i32, i32* %call16, i64 0
%8 = load i32, i32* %arrayidx17, align 4
%cmp = icmp sgt i32 %7, %8
br i1 %cmp, label %land.lhs.true, label %if.end
land.lhs.true: ; preds = %invoke.cont15
%call19 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont18 unwind label %lpad
invoke.cont18: ; preds = %land.lhs.true
%arrayidx20 = getelementptr inbounds i32, i32* %call19, i64 1
%9 = load i32, i32* %arrayidx20, align 4
%10 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box21 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %10, i32 0, i32 3
%call23 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %global_box21, i32 0)
to label %invoke.cont22 unwind label %lpad
invoke.cont22: ; preds = %invoke.cont18
%arrayidx24 = getelementptr inbounds i32, i32* %call23, i64 1
%11 = load i32, i32* %arrayidx24, align 4
%cmp25 = icmp eq i32 %9, %11
br i1 %cmp25, label %if.then, label %if.end
if.then: ; preds = %invoke.cont22
%call27 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont26 unwind label %lpad
invoke.cont26: ; preds = %if.then
%arrayidx28 = getelementptr inbounds i32, i32* %call27, i64 1
%12 = load i32, i32* %arrayidx28, align 4
%inc = add nsw i32 %12, 1
store i32 %inc, i32* %arrayidx28, align 4
br label %if.end
lpad: ; preds = %invoke.cont228, %if.end72, %if.then67, %invoke.cont59, %land.lhs.true58, %invoke.cont51, %if.end50, %if.then45, %invoke.cont37, %land.lhs.true36, %invoke.cont29, %if.end, %if.then, %invoke.cont18, %land.lhs.true, %invoke.cont12, %invoke.cont11, %invoke.cont7, %invoke.cont2, %invoke.cont, %entry
%13 = landingpad { i8*, i32 }
catch i8* null
%14 = extractvalue { i8*, i32 } %13, 0
store i8* %14, i8** %exn.slot, align 8
%15 = extractvalue { i8*, i32 } %13, 1
store i32 %15, i32* %ehselector.slot, align 4
br label %catch234
if.end: ; preds = %invoke.cont26, %invoke.cont22, %invoke.cont15
%call30 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont29 unwind label %lpad
invoke.cont29: ; preds = %if.end
%arrayidx31 = getelementptr inbounds i32, i32* %call30, i64 1
%16 = load i32, i32* %arrayidx31, align 4
%call33 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont32 unwind label %lpad
invoke.cont32: ; preds = %invoke.cont29
%arrayidx34 = getelementptr inbounds i32, i32* %call33, i64 0
%17 = load i32, i32* %arrayidx34, align 4
%cmp35 = icmp sgt i32 %16, %17
br i1 %cmp35, label %land.lhs.true36, label %if.end50
land.lhs.true36: ; preds = %invoke.cont32
%call38 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont37 unwind label %lpad
invoke.cont37: ; preds = %land.lhs.true36
%arrayidx39 = getelementptr inbounds i32, i32* %call38, i64 1
%18 = load i32, i32* %arrayidx39, align 4
%19 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box40 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %19, i32 0, i32 3
%call42 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %global_box40, i32 1)
to label %invoke.cont41 unwind label %lpad
invoke.cont41: ; preds = %invoke.cont37
%arrayidx43 = getelementptr inbounds i32, i32* %call42, i64 1
%20 = load i32, i32* %arrayidx43, align 4
%cmp44 = icmp eq i32 %18, %20
br i1 %cmp44, label %if.then45, label %if.end50
if.then45: ; preds = %invoke.cont41
%call47 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont46 unwind label %lpad
invoke.cont46: ; preds = %if.then45
%arrayidx48 = getelementptr inbounds i32, i32* %call47, i64 1
%21 = load i32, i32* %arrayidx48, align 4
%inc49 = add nsw i32 %21, 1
store i32 %inc49, i32* %arrayidx48, align 4
br label %if.end50
if.end50: ; preds = %invoke.cont46, %invoke.cont41, %invoke.cont32
%call52 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont51 unwind label %lpad
invoke.cont51: ; preds = %if.end50
%arrayidx53 = getelementptr inbounds i32, i32* %call52, i64 1
%22 = load i32, i32* %arrayidx53, align 4
%call55 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont54 unwind label %lpad
invoke.cont54: ; preds = %invoke.cont51
%arrayidx56 = getelementptr inbounds i32, i32* %call55, i64 0
%23 = load i32, i32* %arrayidx56, align 4
%cmp57 = icmp sgt i32 %22, %23
br i1 %cmp57, label %land.lhs.true58, label %if.end72
land.lhs.true58: ; preds = %invoke.cont54
%call60 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont59 unwind label %lpad
invoke.cont59: ; preds = %land.lhs.true58
%arrayidx61 = getelementptr inbounds i32, i32* %call60, i64 1
%24 = load i32, i32* %arrayidx61, align 4
%25 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box62 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %25, i32 0, i32 3
%call64 = invoke i32* @_ZNK3BoxixEi(%struct.Box* %global_box62, i32 2)
to label %invoke.cont63 unwind label %lpad
invoke.cont63: ; preds = %invoke.cont59
%arrayidx65 = getelementptr inbounds i32, i32* %call64, i64 1
%26 = load i32, i32* %arrayidx65, align 4
%cmp66 = icmp eq i32 %24, %26
br i1 %cmp66, label %if.then67, label %if.end72
if.then67: ; preds = %invoke.cont63
%call69 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont68 unwind label %lpad
invoke.cont68: ; preds = %if.then67
%arrayidx70 = getelementptr inbounds i32, i32* %call69, i64 1
%27 = load i32, i32* %arrayidx70, align 4
%inc71 = add nsw i32 %27, 1
store i32 %inc71, i32* %arrayidx70, align 4
br label %if.end72
if.end72: ; preds = %invoke.cont68, %invoke.cont63, %invoke.cont54
%28 = load i32, i32* %global_nodes_x, align 4
store i32 %28, i32* %global_nrows, align 4
%29 = load i32, i32* %global_nodes_y, align 4
%30 = load i32, i32* %global_nodes_z, align 4
%mul = mul nsw i32 %29, %30
%31 = load i32, i32* %global_nrows, align 4
%mul73 = mul nsw i32 %31, %mul
store i32 %mul73, i32* %global_nrows, align 4
%call75 = invoke i32 @_ZN6miniFE11get_num_idsIiEET_RK3Box(%struct.Box* dereferenceable(24) %box)
to label %invoke.cont74 unwind label %lpad
invoke.cont74: ; preds = %if.end72
store i32 %call75, i32* %nrows, align 4
%32 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%33 = load i32, i32* %nrows, align 4
invoke void @_ZN6miniFE9CSRMatrixIdiiE13reserve_spaceEjj(%"struct.miniFE::CSRMatrix"* %32, i32 %33, i32 27)
to label %invoke.cont77 unwind label %lpad76
invoke.cont77: ; preds = %invoke.cont74
br label %try.cont
lpad76: ; preds = %invoke.cont74
%34 = landingpad { i8*, i32 }
catch i8* bitcast (i8** @_ZTISt9exception to i8*)
catch i8* null
%35 = extractvalue { i8*, i32 } %34, 0
store i8* %35, i8** %exn.slot, align 8
%36 = extractvalue { i8*, i32 } %34, 1
store i32 %36, i32* %ehselector.slot, align 4
br label %catch.dispatch
catch.dispatch: ; preds = %lpad76
%sel = load i32, i32* %ehselector.slot, align 4
%37 = call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTISt9exception to i8*)) #2
%matches = icmp eq i32 %sel, %37
br i1 %matches, label %catch, label %catch234
catch: ; preds = %catch.dispatch
%exn = load i8*, i8** %exn.slot, align 8
%38 = call i8* @__cxa_begin_catch(i8* %exn) #2
%exn.byref = bitcast i8* %38 to %"class.std::exception"*
store %"class.std::exception"* %exn.byref, %"class.std::exception"** %exc, align 8
invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode(%"class.std::__cxx11::basic_ostringstream"* %osstr, i32 16)
to label %invoke.cont79 unwind label %lpad78
invoke.cont79: ; preds = %catch
%39 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%call82 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %39, i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.86, i32 0, i32 0))
to label %invoke.cont81 unwind label %lpad80
invoke.cont81: ; preds = %invoke.cont79
%40 = load i32, i32* %nrows, align 4
%call84 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call82, i32 %40)
to label %invoke.cont83 unwind label %lpad80
invoke.cont83: ; preds = %invoke.cont81
%call86 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call84, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.87, i32 0, i32 0))
to label %invoke.cont85 unwind label %lpad80
invoke.cont85: ; preds = %invoke.cont83
%41 = bitcast %"class.std::__cxx11::basic_ostringstream"* %osstr to %"class.std::basic_ostream"*
%42 = load %"class.std::exception"*, %"class.std::exception"** %exc, align 8
%43 = bitcast %"class.std::exception"* %42 to i8* (%"class.std::exception"*)***
%vtable = load i8* (%"class.std::exception"*)**, i8* (%"class.std::exception"*)*** %43, align 8
%vfn = getelementptr inbounds i8* (%"class.std::exception"*)*, i8* (%"class.std::exception"*)** %vtable, i64 2
%44 = load i8* (%"class.std::exception"*)*, i8* (%"class.std::exception"*)** %vfn, align 8
%call87 = call i8* %44(%"class.std::exception"* %42) #2
%call89 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %41, i8* %call87)
to label %invoke.cont88 unwind label %lpad80
invoke.cont88: ; preds = %invoke.cont85
invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* sret %str1, %"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont90 unwind label %lpad80
invoke.cont90: ; preds = %invoke.cont88
%exception = call i8* @__cxa_allocate_exception(i64 16) #2
%45 = bitcast i8* %exception to %"class.std::runtime_error"*
invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%"class.std::runtime_error"* %45, %"class.std::__cxx11::basic_string"* dereferenceable(32) %str1)
to label %invoke.cont92 unwind label %lpad91
invoke.cont92: ; preds = %invoke.cont90
invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTISt13runtime_error to i8*), i8* bitcast (void (%"class.std::runtime_error"*)* @_ZNSt13runtime_errorD1Ev to i8*)) #18
to label %unreachable unwind label %lpad93
lpad78: ; preds = %catch
%46 = landingpad { i8*, i32 }
catch i8* null
%47 = extractvalue { i8*, i32 } %46, 0
store i8* %47, i8** %exn.slot, align 8
%48 = extractvalue { i8*, i32 } %46, 1
store i32 %48, i32* %ehselector.slot, align 4
br label %ehcleanup97
lpad80: ; preds = %invoke.cont88, %invoke.cont85, %invoke.cont83, %invoke.cont81, %invoke.cont79
%49 = landingpad { i8*, i32 }
catch i8* null
%50 = extractvalue { i8*, i32 } %49, 0
store i8* %50, i8** %exn.slot, align 8
%51 = extractvalue { i8*, i32 } %49, 1
store i32 %51, i32* %ehselector.slot, align 4
br label %ehcleanup95
lpad91: ; preds = %invoke.cont90
%52 = landingpad { i8*, i32 }
catch i8* null
%53 = extractvalue { i8*, i32 } %52, 0
store i8* %53, i8** %exn.slot, align 8
%54 = extractvalue { i8*, i32 } %52, 1
store i32 %54, i32* %ehselector.slot, align 4
call void @__cxa_free_exception(i8* %exception) #2
br label %ehcleanup
lpad93: ; preds = %invoke.cont92
%55 = landingpad { i8*, i32 }
catch i8* null
%56 = extractvalue { i8*, i32 } %55, 0
store i8* %56, i8** %exn.slot, align 8
%57 = extractvalue { i8*, i32 } %55, 1
store i32 %57, i32* %ehselector.slot, align 4
br label %ehcleanup
ehcleanup: ; preds = %lpad93, %lpad91
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %str1)
to label %invoke.cont94 unwind label %terminate.lpad
invoke.cont94: ; preds = %ehcleanup
br label %ehcleanup95
ehcleanup95: ; preds = %invoke.cont94, %lpad80
invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_ostringstream"* %osstr)
to label %invoke.cont96 unwind label %terminate.lpad
invoke.cont96: ; preds = %ehcleanup95
br label %ehcleanup97
ehcleanup97: ; preds = %invoke.cont96, %lpad78
invoke void @__cxa_end_catch()
to label %invoke.cont98 unwind label %terminate.lpad
invoke.cont98: ; preds = %ehcleanup97
br label %catch234
try.cont: ; preds = %invoke.cont77
%58 = load i32, i32* %nrows, align 4
%conv = sext i32 %58 to i64
store i32 0, i32* %ref.tmp, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp99) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %rows, i64 %conv, i32* dereferenceable(4) %ref.tmp, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp99)
to label %invoke.cont101 unwind label %lpad100
invoke.cont101: ; preds = %try.cont
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp99) #2
%59 = load i32, i32* %nrows, align 4
%add103 = add nsw i32 %59, 1
%conv104 = sext i32 %add103 to i64
store i32 0, i32* %ref.tmp105, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp106) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %row_offsets, i64 %conv104, i32* dereferenceable(4) %ref.tmp105, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp106)
to label %invoke.cont108 unwind label %lpad107
invoke.cont108: ; preds = %invoke.cont101
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp106) #2
%60 = load i32, i32* %nrows, align 4
%mul110 = mul nsw i32 %60, 3
%conv111 = sext i32 %mul110 to i64
store i32 0, i32* %ref.tmp112, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp113) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %row_coords, i64 %conv111, i32* dereferenceable(4) %ref.tmp112, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp113)
to label %invoke.cont115 unwind label %lpad114
invoke.cont115: ; preds = %invoke.cont108
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp113) #2
store i32 0, i32* %roffset, align 4
store i32 0, i32* %nnz, align 4
%call119 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont118 unwind label %lpad117
invoke.cont118: ; preds = %invoke.cont115
%arrayidx120 = getelementptr inbounds i32, i32* %call119, i64 0
%61 = load i32, i32* %arrayidx120, align 4
store i32 %61, i32* %iz, align 4
br label %for.cond
for.cond: ; preds = %for.inc201, %invoke.cont118
%62 = load i32, i32* %iz, align 4
%call122 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont121 unwind label %lpad117
invoke.cont121: ; preds = %for.cond
%arrayidx123 = getelementptr inbounds i32, i32* %call122, i64 1
%63 = load i32, i32* %arrayidx123, align 4
%cmp124 = icmp slt i32 %62, %63
br i1 %cmp124, label %for.body, label %for.end203
for.body: ; preds = %invoke.cont121
%call126 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont125 unwind label %lpad117
invoke.cont125: ; preds = %for.body
%arrayidx127 = getelementptr inbounds i32, i32* %call126, i64 0
%64 = load i32, i32* %arrayidx127, align 4
store i32 %64, i32* %iy, align 4
br label %for.cond128
for.cond128: ; preds = %for.inc198, %invoke.cont125
%65 = load i32, i32* %iy, align 4
%call130 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont129 unwind label %lpad117
invoke.cont129: ; preds = %for.cond128
%arrayidx131 = getelementptr inbounds i32, i32* %call130, i64 1
%66 = load i32, i32* %arrayidx131, align 4
%cmp132 = icmp slt i32 %65, %66
br i1 %cmp132, label %for.body133, label %for.end200
for.body133: ; preds = %invoke.cont129
%call135 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont134 unwind label %lpad117
invoke.cont134: ; preds = %for.body133
%arrayidx136 = getelementptr inbounds i32, i32* %call135, i64 0
%67 = load i32, i32* %arrayidx136, align 4
store i32 %67, i32* %ix, align 4
br label %for.cond137
for.cond137: ; preds = %for.inc195, %invoke.cont134
%68 = load i32, i32* %ix, align 4
%call139 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont138 unwind label %lpad117
invoke.cont138: ; preds = %for.cond137
%arrayidx140 = getelementptr inbounds i32, i32* %call139, i64 1
%69 = load i32, i32* %arrayidx140, align 4
%cmp141 = icmp slt i32 %68, %69
br i1 %cmp141, label %for.body142, label %for.end197
for.body142: ; preds = %invoke.cont138
%70 = load i32, i32* %global_nodes_x, align 4
%71 = load i32, i32* %global_nodes_y, align 4
%72 = load i32, i32* %global_nodes_z, align 4
%73 = load i32, i32* %ix, align 4
%74 = load i32, i32* %iy, align 4
%75 = load i32, i32* %iz, align 4
%call144 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %70, i32 %71, i32 %72, i32 %73, i32 %74, i32 %75)
to label %invoke.cont143 unwind label %lpad117
invoke.cont143: ; preds = %for.body142
store i32 %call144, i32* %row_id, align 4
%76 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%call146 = invoke i32 @_ZNK6miniFE23simple_mesh_descriptionIiE13map_id_to_rowERKi(%"class.miniFE::simple_mesh_description"* %76, i32* dereferenceable(4) %row_id)
to label %invoke.cont145 unwind label %lpad117
invoke.cont145: ; preds = %invoke.cont143
%77 = load i32, i32* %roffset, align 4
%conv147 = zext i32 %77 to i64
%call149 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %rows, i64 %conv147)
to label %invoke.cont148 unwind label %lpad117
invoke.cont148: ; preds = %invoke.cont145
store i32 %call146, i32* %call149, align 4
%78 = load i32, i32* %ix, align 4
%79 = load i32, i32* %roffset, align 4
%mul150 = mul i32 %79, 3
%conv151 = zext i32 %mul150 to i64
%call153 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_coords, i64 %conv151)
to label %invoke.cont152 unwind label %lpad117
invoke.cont152: ; preds = %invoke.cont148
store i32 %78, i32* %call153, align 4
%80 = load i32, i32* %iy, align 4
%81 = load i32, i32* %roffset, align 4
%mul154 = mul i32 %81, 3
%add155 = add i32 %mul154, 1
%conv156 = zext i32 %add155 to i64
%call158 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_coords, i64 %conv156)
to label %invoke.cont157 unwind label %lpad117
invoke.cont157: ; preds = %invoke.cont152
store i32 %80, i32* %call158, align 4
%82 = load i32, i32* %iz, align 4
%83 = load i32, i32* %roffset, align 4
%mul159 = mul i32 %83, 3
%add160 = add i32 %mul159, 2
%conv161 = zext i32 %add160 to i64
%call163 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_coords, i64 %conv161)
to label %invoke.cont162 unwind label %lpad117
invoke.cont162: ; preds = %invoke.cont157
store i32 %82, i32* %call163, align 4
%84 = load i32, i32* %nnz, align 4
%85 = load i32, i32* %roffset, align 4
%inc164 = add i32 %85, 1
store i32 %inc164, i32* %roffset, align 4
%conv165 = zext i32 %85 to i64
%call167 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets, i64 %conv165)
to label %invoke.cont166 unwind label %lpad117
invoke.cont166: ; preds = %invoke.cont162
store i32 %84, i32* %call167, align 4
store i32 -1, i32* %sz, align 4
br label %for.cond168
for.cond168: ; preds = %for.inc192, %invoke.cont166
%86 = load i32, i32* %sz, align 4
%cmp169 = icmp sle i32 %86, 1
br i1 %cmp169, label %for.body170, label %for.end194
for.body170: ; preds = %for.cond168
store i32 -1, i32* %sy, align 4
br label %for.cond171
for.cond171: ; preds = %for.inc189, %for.body170
%87 = load i32, i32* %sy, align 4
%cmp172 = icmp sle i32 %87, 1
br i1 %cmp172, label %for.body173, label %for.end191
for.body173: ; preds = %for.cond171
store i32 -1, i32* %sx, align 4
br label %for.cond174
for.cond174: ; preds = %for.inc, %for.body173
%88 = load i32, i32* %sx, align 4
%cmp175 = icmp sle i32 %88, 1
br i1 %cmp175, label %for.body176, label %for.end
for.body176: ; preds = %for.cond174
%89 = load i32, i32* %global_nodes_x, align 4
%90 = load i32, i32* %global_nodes_y, align 4
%91 = load i32, i32* %global_nodes_z, align 4
%92 = load i32, i32* %ix, align 4
%93 = load i32, i32* %sx, align 4
%add177 = add nsw i32 %92, %93
%94 = load i32, i32* %iy, align 4
%95 = load i32, i32* %sy, align 4
%add178 = add nsw i32 %94, %95
%96 = load i32, i32* %iz, align 4
%97 = load i32, i32* %sz, align 4
%add179 = add nsw i32 %96, %97
%call181 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %89, i32 %90, i32 %91, i32 %add177, i32 %add178, i32 %add179)
to label %invoke.cont180 unwind label %lpad117
invoke.cont180: ; preds = %for.body176
store i32 %call181, i32* %col_id, align 4
%98 = load i32, i32* %col_id, align 4
%cmp182 = icmp sge i32 %98, 0
br i1 %cmp182, label %land.lhs.true183, label %if.end187
land.lhs.true183: ; preds = %invoke.cont180
%99 = load i32, i32* %col_id, align 4
%100 = load i32, i32* %global_nrows, align 4
%cmp184 = icmp slt i32 %99, %100
br i1 %cmp184, label %if.then185, label %if.end187
if.then185: ; preds = %land.lhs.true183
%101 = load i32, i32* %nnz, align 4
%inc186 = add nsw i32 %101, 1
store i32 %inc186, i32* %nnz, align 4
br label %if.end187
lpad100: ; preds = %try.cont
%102 = landingpad { i8*, i32 }
catch i8* null
%103 = extractvalue { i8*, i32 } %102, 0
store i8* %103, i8** %exn.slot, align 8
%104 = extractvalue { i8*, i32 } %102, 1
store i32 %104, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp99) #2
br label %catch234
lpad107: ; preds = %invoke.cont101
%105 = landingpad { i8*, i32 }
catch i8* null
%106 = extractvalue { i8*, i32 } %105, 0
store i8* %106, i8** %exn.slot, align 8
%107 = extractvalue { i8*, i32 } %105, 1
store i32 %107, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp106) #2
br label %ehcleanup232
lpad114: ; preds = %invoke.cont108
%108 = landingpad { i8*, i32 }
catch i8* null
%109 = extractvalue { i8*, i32 } %108, 0
store i8* %109, i8** %exn.slot, align 8
%110 = extractvalue { i8*, i32 } %108, 1
store i32 %110, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp113) #2
br label %ehcleanup229
lpad117: ; preds = %invoke.cont220, %if.end218, %for.body176, %invoke.cont162, %invoke.cont157, %invoke.cont152, %invoke.cont148, %invoke.cont145, %invoke.cont143, %for.body142, %for.cond137, %for.body133, %for.cond128, %for.body, %for.cond, %invoke.cont115
%111 = landingpad { i8*, i32 }
catch i8* null
%112 = extractvalue { i8*, i32 } %111, 0
store i8* %112, i8** %exn.slot, align 8
%113 = extractvalue { i8*, i32 } %111, 1
store i32 %113, i32* %ehselector.slot, align 4
br label %ehcleanup225
if.end187: ; preds = %if.then185, %land.lhs.true183, %invoke.cont180
br label %for.inc
for.inc: ; preds = %if.end187
%114 = load i32, i32* %sx, align 4
%inc188 = add nsw i32 %114, 1
store i32 %inc188, i32* %sx, align 4
br label %for.cond174
for.end: ; preds = %for.cond174
br label %for.inc189
for.inc189: ; preds = %for.end
%115 = load i32, i32* %sy, align 4
%inc190 = add nsw i32 %115, 1
store i32 %inc190, i32* %sy, align 4
br label %for.cond171
for.end191: ; preds = %for.cond171
br label %for.inc192
for.inc192: ; preds = %for.end191
%116 = load i32, i32* %sz, align 4
%inc193 = add nsw i32 %116, 1
store i32 %inc193, i32* %sz, align 4
br label %for.cond168
for.end194: ; preds = %for.cond168
br label %for.inc195
for.inc195: ; preds = %for.end194
%117 = load i32, i32* %ix, align 4
%inc196 = add nsw i32 %117, 1
store i32 %inc196, i32* %ix, align 4
br label %for.cond137
for.end197: ; preds = %invoke.cont138
br label %for.inc198
for.inc198: ; preds = %for.end197
%118 = load i32, i32* %iy, align 4
%inc199 = add nsw i32 %118, 1
store i32 %inc199, i32* %iy, align 4
br label %for.cond128
for.end200: ; preds = %invoke.cont129
br label %for.inc201
for.inc201: ; preds = %for.end200
%119 = load i32, i32* %iz, align 4
%inc202 = add nsw i32 %119, 1
store i32 %inc202, i32* %iz, align 4
br label %for.cond
for.end203: ; preds = %invoke.cont121
%120 = load i32, i32* %roffset, align 4
%121 = load i32, i32* %nrows, align 4
%cmp204 = icmp ne i32 %120, %121
br i1 %cmp204, label %if.then205, label %if.end218
if.then205: ; preds = %for.end203
%exception206 = call i8* @__cxa_allocate_exception(i64 16) #2
store i1 true, i1* %cleanup.isactive, align 1
%122 = bitcast i8* %exception206 to %"class.std::runtime_error"*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp208) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp207, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.88, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp208)
to label %invoke.cont210 unwind label %lpad209
invoke.cont210: ; preds = %if.then205
invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%"class.std::runtime_error"* %122, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp207)
to label %invoke.cont212 unwind label %lpad211
invoke.cont212: ; preds = %invoke.cont210
store i1 false, i1* %cleanup.isactive, align 1
invoke void @__cxa_throw(i8* %exception206, i8* bitcast (i8** @_ZTISt13runtime_error to i8*), i8* bitcast (void (%"class.std::runtime_error"*)* @_ZNSt13runtime_errorD1Ev to i8*)) #18
to label %unreachable unwind label %lpad211
throw.cont: ; No predecessors!
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp207)
to label %invoke.cont213 unwind label %lpad209
invoke.cont213: ; preds = %throw.cont
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp208) #2
br label %if.end218
lpad209: ; preds = %throw.cont, %if.then205
%123 = landingpad { i8*, i32 }
catch i8* null
%124 = extractvalue { i8*, i32 } %123, 0
store i8* %124, i8** %exn.slot, align 8
%125 = extractvalue { i8*, i32 } %123, 1
store i32 %125, i32* %ehselector.slot, align 4
br label %ehcleanup216
lpad211: ; preds = %invoke.cont212, %invoke.cont210
%126 = landingpad { i8*, i32 }
catch i8* null
%127 = extractvalue { i8*, i32 } %126, 0
store i8* %127, i8** %exn.slot, align 8
%128 = extractvalue { i8*, i32 } %126, 1
store i32 %128, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp207)
to label %invoke.cont215 unwind label %terminate.lpad
invoke.cont215: ; preds = %lpad211
br label %ehcleanup216
ehcleanup216: ; preds = %invoke.cont215, %lpad209
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp208) #2
%cleanup.is_active = load i1, i1* %cleanup.isactive, align 1
br i1 %cleanup.is_active, label %cleanup.action, label %cleanup.done
cleanup.action: ; preds = %ehcleanup216
call void @__cxa_free_exception(i8* %exception206) #2
br label %cleanup.done
cleanup.done: ; preds = %cleanup.action, %ehcleanup216
br label %ehcleanup225
if.end218: ; preds = %invoke.cont213, %for.end203
%129 = load i32, i32* %nnz, align 4
%130 = load i32, i32* %roffset, align 4
%conv219 = zext i32 %130 to i64
%call221 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets, i64 %conv219)
to label %invoke.cont220 unwind label %lpad117
invoke.cont220: ; preds = %if.end218
store i32 %129, i32* %call221, align 4
%131 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%132 = load i32, i32* %global_nodes_x, align 4
%133 = load i32, i32* %global_nodes_y, align 4
%134 = load i32, i32* %global_nodes_z, align 4
%135 = load i32, i32* %global_nrows, align 4
%136 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
invoke void @_ZN6miniFE11init_matrixINS_9CSRMatrixIdiiEEEEvRT_RKSt6vectorINS3_17GlobalOrdinalTypeESaIS6_EERKS5_INS3_16LocalOrdinalTypeESaISB_EERKS5_IiSaIiEEiiiS6_RKNS_23simple_mesh_descriptionIS6_EE(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %131, %"class.std::vector.15"* dereferenceable(24) %rows, %"class.std::vector.15"* dereferenceable(24) %row_offsets, %"class.std::vector.15"* dereferenceable(24) %row_coords, i32 %132, i32 %133, i32 %134, i32 %135, %"class.miniFE::simple_mesh_description"* dereferenceable(192) %136)
to label %invoke.cont222 unwind label %lpad117
invoke.cont222: ; preds = %invoke.cont220
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %row_coords)
to label %invoke.cont224 unwind label %lpad223
invoke.cont224: ; preds = %invoke.cont222
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %row_offsets)
to label %invoke.cont228 unwind label %lpad227
invoke.cont228: ; preds = %invoke.cont224
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %rows)
to label %invoke.cont231 unwind label %lpad
invoke.cont231: ; preds = %invoke.cont228
br label %try.cont247
lpad223: ; preds = %invoke.cont222
%137 = landingpad { i8*, i32 }
catch i8* null
%138 = extractvalue { i8*, i32 } %137, 0
store i8* %138, i8** %exn.slot, align 8
%139 = extractvalue { i8*, i32 } %137, 1
store i32 %139, i32* %ehselector.slot, align 4
br label %ehcleanup229
ehcleanup225: ; preds = %cleanup.done, %lpad117
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %row_coords)
to label %invoke.cont226 unwind label %terminate.lpad
invoke.cont226: ; preds = %ehcleanup225
br label %ehcleanup229
lpad227: ; preds = %invoke.cont224
%140 = landingpad { i8*, i32 }
catch i8* null
%141 = extractvalue { i8*, i32 } %140, 0
store i8* %141, i8** %exn.slot, align 8
%142 = extractvalue { i8*, i32 } %140, 1
store i32 %142, i32* %ehselector.slot, align 4
br label %ehcleanup232
ehcleanup229: ; preds = %invoke.cont226, %lpad223, %lpad114
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %row_offsets)
to label %invoke.cont230 unwind label %terminate.lpad
invoke.cont230: ; preds = %ehcleanup229
br label %ehcleanup232
ehcleanup232: ; preds = %invoke.cont230, %lpad227, %lpad107
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %rows)
to label %invoke.cont233 unwind label %terminate.lpad
invoke.cont233: ; preds = %ehcleanup232
br label %catch234
catch234: ; preds = %invoke.cont233, %lpad100, %invoke.cont98, %catch.dispatch, %lpad
%exn235 = load i8*, i8** %exn.slot, align 8
%143 = call i8* @__cxa_begin_catch(i8* %exn235) #2
%call238 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.89, i32 0, i32 0))
to label %invoke.cont237 unwind label %lpad236
invoke.cont237: ; preds = %catch234
%144 = load i32, i32* %myproc, align 4
%call240 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call238, i32 %144)
to label %invoke.cont239 unwind label %lpad236
invoke.cont239: ; preds = %invoke.cont237
%call242 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call240, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.90, i32 0, i32 0))
to label %invoke.cont241 unwind label %lpad236
invoke.cont241: ; preds = %invoke.cont239
%call244 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call242, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont243 unwind label %lpad236
invoke.cont243: ; preds = %invoke.cont241
store i32 1, i32* %threw_exc, align 4
call void @__cxa_end_catch()
br label %try.cont247
try.cont247: ; preds = %invoke.cont243, %invoke.cont231
%145 = load i32, i32* %threw_exc, align 4
%tobool = icmp ne i32 %145, 0
br i1 %tobool, label %if.then248, label %if.end249
if.then248: ; preds = %try.cont247
store i32 1, i32* %retval, align 4
br label %return
lpad236: ; preds = %invoke.cont241, %invoke.cont239, %invoke.cont237, %catch234
%146 = landingpad { i8*, i32 }
cleanup
%147 = extractvalue { i8*, i32 } %146, 0
store i8* %147, i8** %exn.slot, align 8
%148 = extractvalue { i8*, i32 } %146, 1
store i32 %148, i32* %ehselector.slot, align 4
invoke void @__cxa_end_catch()
to label %invoke.cont246 unwind label %terminate.lpad
invoke.cont246: ; preds = %lpad236
br label %eh.resume
if.end249: ; preds = %try.cont247
store i32 0, i32* %retval, align 4
br label %return
return: ; preds = %if.end249, %if.then248
%149 = load i32, i32* %retval, align 4
ret i32 %149
eh.resume: ; preds = %invoke.cont246
%exn250 = load i8*, i8** %exn.slot, align 8
%sel251 = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn250, 0
%lpad.val252 = insertvalue { i8*, i32 } %lpad.val, i32 %sel251, 1
resume { i8*, i32 } %lpad.val252
terminate.lpad: ; preds = %lpad236, %ehcleanup232, %ehcleanup229, %ehcleanup225, %lpad211, %ehcleanup97, %ehcleanup95, %ehcleanup
%150 = landingpad { i8*, i32 }
catch i8* null
%151 = extractvalue { i8*, i32 } %150, 0
call void @__clang_call_terminate(i8* %151) #13
unreachable
unreachable: ; preds = %invoke.cont212, %invoke.cont92
unreachable
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %this) #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::vector.15"*, align 8
store %"class.std::vector.15"* %this, %"class.std::vector.15"** %this.addr, align 8
%this1 = load %"class.std::vector.15"*, %"class.std::vector.15"** %this.addr, align 8
%0 = bitcast %"class.std::vector.15"* %this1 to %"struct.std::_Vector_base.16"*
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base.16", %"struct.std::_Vector_base.16"* %0, i32 0, i32 0
%_M_finish = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl", %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 1
%1 = load i32*, i32** %_M_finish, align 8
%2 = bitcast %"class.std::vector.15"* %this1 to %"struct.std::_Vector_base.16"*
%_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.16", %"struct.std::_Vector_base.16"* %2, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl", %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
%3 = load i32*, i32** %_M_start, align 8
%sub.ptr.lhs.cast = ptrtoint i32* %1 to i64
%sub.ptr.rhs.cast = ptrtoint i32* %3 to i64
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 4
ret i64 %sub.ptr.div
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %this, i64 %__n) #4 comdat align 2 {
entry:
%this.addr = alloca %"class.std::vector.15"*, align 8
%__n.addr = alloca i64, align 8
store %"class.std::vector.15"* %this, %"class.std::vector.15"** %this.addr, align 8
store i64 %__n, i64* %__n.addr, align 8
%this1 = load %"class.std::vector.15"*, %"class.std::vector.15"** %this.addr, align 8
%0 = bitcast %"class.std::vector.15"* %this1 to %"struct.std::_Vector_base.16"*
%_M_impl = getelementptr inbounds %"struct.std::_Vector_base.16", %"struct.std::_Vector_base.16"* %0, i32 0, i32 0
%_M_start = getelementptr inbounds %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl", %"struct.std::_Vector_base<int, std::allocator<int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
%1 = load i32*, i32** %_M_start, align 8
%2 = load i64, i64* %__n.addr, align 8
%add.ptr = getelementptr inbounds i32, i32* %1, i64 %2
ret i32* %add.ptr
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %this, i32 %startIdx, i32 %local_sz) unnamed_addr #3 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%this.addr = alloca %"struct.miniFE::Vector"*, align 8
%startIdx.addr = alloca i32, align 4
%local_sz.addr = alloca i32, align 4
%ref.tmp = alloca double, align 8
%ref.tmp3 = alloca %"class.std::allocator.22", align 1
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%syncreg = call token @llvm.syncregion.start()
%__init = alloca i32, align 4
%__begin = alloca i32, align 4
%__end = alloca i32, align 4
store %"struct.miniFE::Vector"* %this, %"struct.miniFE::Vector"** %this.addr, align 8
store i32 %startIdx, i32* %startIdx.addr, align 4
store i32 %local_sz, i32* %local_sz.addr, align 4
%this1 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %this.addr, align 8
%startIndex = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %this1, i32 0, i32 0
%0 = load i32, i32* %startIdx.addr, align 4
store i32 %0, i32* %startIndex, align 8
%local_size = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %this1, i32 0, i32 1
%1 = load i32, i32* %local_sz.addr, align 4
store i32 %1, i32* %local_size, align 4
%coefs = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %this1, i32 0, i32 2
%local_size2 = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %this1, i32 0, i32 1
%2 = load i32, i32* %local_size2, align 4
%conv = sext i32 %2 to i64
store double 0.000000e+00, double* %ref.tmp, align 8
call void @_ZNSaIdEC2Ev(%"class.std::allocator.22"* %ref.tmp3) #2
invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(%"class.std::vector.20"* %coefs, i64 %conv, double* dereferenceable(8) %ref.tmp, %"class.std::allocator.22"* dereferenceable(1) %ref.tmp3)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
call void @_ZNSaIdED2Ev(%"class.std::allocator.22"* %ref.tmp3) #2
store i32 0, i32* %__init, align 4
store i32 0, i32* %__begin, align 4
%local_size4 = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %this1, i32 0, i32 1
%3 = load i32, i32* %local_size4, align 4
%sub = sub nsw i32 %3, 0
%sub5 = sub nsw i32 %sub, 1
%div = sdiv i32 %sub5, 1
%add = add nsw i32 %div, 1
store i32 %add, i32* %__end, align 4
br label %pfor.cond
pfor.cond: ; preds = %pfor.inc, %invoke.cont
%4 = load i32, i32* %__begin, align 4
%5 = load i32, i32* %__end, align 4
%cmp = icmp slt i32 %4, %5
br i1 %cmp, label %pfor.detach, label %pfor.end
pfor.detach: ; preds = %pfor.cond
%6 = load i32, i32* %__init, align 4
%7 = load i32, i32* %__begin, align 4
%mul = mul nsw i32 %7, 1
%add6 = add nsw i32 %6, %mul
detach within %syncreg, label %pfor.body.entry, label %pfor.inc
pfor.body.entry: ; preds = %pfor.detach
%i = alloca i32, align 4
%exn.slot10 = alloca i8*
%ehselector.slot11 = alloca i32
store i32 %add6, i32* %i, align 4
br label %pfor.body
pfor.body: ; preds = %pfor.body.entry
%coefs7 = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %this1, i32 0, i32 2
%8 = load i32, i32* %i, align 4
%conv8 = sext i32 %8 to i64
%call = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %coefs7, i64 %conv8)
to label %invoke.cont12 unwind label %lpad9
invoke.cont12: ; preds = %pfor.body
store double 0.000000e+00, double* %call, align 8
br label %pfor.preattach
pfor.preattach: ; preds = %invoke.cont12
reattach within %syncreg, label %pfor.inc
pfor.inc: ; preds = %pfor.preattach, %pfor.detach
%9 = load i32, i32* %__begin, align 4
%inc = add nsw i32 %9, 1
store i32 %inc, i32* %__begin, align 4
br label %pfor.cond, !llvm.loop !2
lpad: ; preds = %entry
%10 = landingpad { i8*, i32 }
cleanup
%11 = extractvalue { i8*, i32 } %10, 0
store i8* %11, i8** %exn.slot, align 8
%12 = extractvalue { i8*, i32 } %10, 1
store i32 %12, i32* %ehselector.slot, align 4
call void @_ZNSaIdED2Ev(%"class.std::allocator.22"* %ref.tmp3) #2
br label %eh.resume
lpad9: ; preds = %pfor.body
%13 = landingpad { i8*, i32 }
cleanup
%14 = extractvalue { i8*, i32 } %13, 0
store i8* %14, i8** %exn.slot10, align 8
%15 = extractvalue { i8*, i32 } %13, 1
store i32 %15, i32* %ehselector.slot11, align 4
br label %det.rethrow
det.rethrow: ; preds = %lpad9
invoke void @_ZNSt6vectorIdSaIdEED2Ev(%"class.std::vector.20"* %coefs)
to label %invoke.cont13 unwind label %terminate.lpad
pfor.end: ; preds = %pfor.cond
sync within %syncreg, label %pfor.end.continue
pfor.end.continue: ; preds = %pfor.end
ret void
invoke.cont13: ; preds = %det.rethrow
br label %eh.resume
eh.resume: ; preds = %invoke.cont13, %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val14
terminate.lpad: ; preds = %det.rethrow
%16 = landingpad { i8*, i32 }
catch i8* null
%17 = extractvalue { i8*, i32 } %16, 0
call void @__clang_call_terminate(i8* %17) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE16assemble_FE_dataINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERS6_RT0_RNS_10ParametersE(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %mesh, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, %"struct.miniFE::Parameters"* dereferenceable(96) %params) #3 comdat {
entry:
%mesh.addr = alloca %"class.miniFE::simple_mesh_description"*, align 8
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%b.addr = alloca %"struct.miniFE::Vector"*, align 8
%params.addr = alloca %"struct.miniFE::Parameters"*, align 8
%global_elems_x = alloca i32, align 4
%global_elems_y = alloca i32, align 4
%global_elems_z = alloca i32, align 4
%local_elem_box = alloca %struct.Box, align 4
%ghost = alloca i32, align 4
store %"class.miniFE::simple_mesh_description"* %mesh, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
store %"struct.miniFE::Vector"* %b, %"struct.miniFE::Vector"** %b.addr, align 8
store %"struct.miniFE::Parameters"* %params, %"struct.miniFE::Parameters"** %params.addr, align 8
%0 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %0, i32 0, i32 3
%call = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box, i32 0)
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
store i32 %1, i32* %global_elems_x, align 4
%2 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box1 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %2, i32 0, i32 3
%call2 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box1, i32 1)
%arrayidx3 = getelementptr inbounds i32, i32* %call2, i64 1
%3 = load i32, i32* %arrayidx3, align 4
store i32 %3, i32* %global_elems_y, align 4
%4 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box4 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %4, i32 0, i32 3
%call5 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box4, i32 2)
%arrayidx6 = getelementptr inbounds i32, i32* %call5, i64 1
%5 = load i32, i32* %arrayidx6, align 4
store i32 %5, i32* %global_elems_z, align 4
%6 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%local_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %6, i32 0, i32 4
call void @_ZN6miniFE8copy_boxERK3BoxRS0_(%struct.Box* dereferenceable(24) %local_box, %struct.Box* dereferenceable(24) %local_elem_box)
%call7 = call i32 @_ZN6miniFE11get_num_idsIiEET_RK3Box(%struct.Box* dereferenceable(24) %local_elem_box)
%cmp = icmp slt i32 %call7, 1
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
br label %return
if.end: ; preds = %entry
store i32 1, i32* %ghost, align 4
%call8 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 0)
%arrayidx9 = getelementptr inbounds i32, i32* %call8, i64 0
%7 = load i32, i32* %arrayidx9, align 4
%cmp10 = icmp sgt i32 %7, 0
br i1 %cmp10, label %if.then11, label %if.end14
if.then11: ; preds = %if.end
%8 = load i32, i32* %ghost, align 4
%call12 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 0)
%arrayidx13 = getelementptr inbounds i32, i32* %call12, i64 0
%9 = load i32, i32* %arrayidx13, align 4
%sub = sub nsw i32 %9, %8
store i32 %sub, i32* %arrayidx13, align 4
br label %if.end14
if.end14: ; preds = %if.then11, %if.end
%call15 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 1)
%arrayidx16 = getelementptr inbounds i32, i32* %call15, i64 0
%10 = load i32, i32* %arrayidx16, align 4
%cmp17 = icmp sgt i32 %10, 0
br i1 %cmp17, label %if.then18, label %if.end22
if.then18: ; preds = %if.end14
%11 = load i32, i32* %ghost, align 4
%call19 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 1)
%arrayidx20 = getelementptr inbounds i32, i32* %call19, i64 0
%12 = load i32, i32* %arrayidx20, align 4
%sub21 = sub nsw i32 %12, %11
store i32 %sub21, i32* %arrayidx20, align 4
br label %if.end22
if.end22: ; preds = %if.then18, %if.end14
%call23 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 2)
%arrayidx24 = getelementptr inbounds i32, i32* %call23, i64 0
%13 = load i32, i32* %arrayidx24, align 4
%cmp25 = icmp sgt i32 %13, 0
br i1 %cmp25, label %if.then26, label %if.end30
if.then26: ; preds = %if.end22
%14 = load i32, i32* %ghost, align 4
%call27 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 2)
%arrayidx28 = getelementptr inbounds i32, i32* %call27, i64 0
%15 = load i32, i32* %arrayidx28, align 4
%sub29 = sub nsw i32 %15, %14
store i32 %sub29, i32* %arrayidx28, align 4
br label %if.end30
if.end30: ; preds = %if.then26, %if.end22
%call31 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 0)
%arrayidx32 = getelementptr inbounds i32, i32* %call31, i64 1
%16 = load i32, i32* %arrayidx32, align 4
%17 = load i32, i32* %global_elems_x, align 4
%cmp33 = icmp slt i32 %16, %17
br i1 %cmp33, label %if.then34, label %if.end37
if.then34: ; preds = %if.end30
%18 = load i32, i32* %ghost, align 4
%call35 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 0)
%arrayidx36 = getelementptr inbounds i32, i32* %call35, i64 1
%19 = load i32, i32* %arrayidx36, align 4
%add = add nsw i32 %19, %18
store i32 %add, i32* %arrayidx36, align 4
br label %if.end37
if.end37: ; preds = %if.then34, %if.end30
%call38 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 1)
%arrayidx39 = getelementptr inbounds i32, i32* %call38, i64 1
%20 = load i32, i32* %arrayidx39, align 4
%21 = load i32, i32* %global_elems_y, align 4
%cmp40 = icmp slt i32 %20, %21
br i1 %cmp40, label %if.then41, label %if.end45
if.then41: ; preds = %if.end37
%22 = load i32, i32* %ghost, align 4
%call42 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 1)
%arrayidx43 = getelementptr inbounds i32, i32* %call42, i64 1
%23 = load i32, i32* %arrayidx43, align 4
%add44 = add nsw i32 %23, %22
store i32 %add44, i32* %arrayidx43, align 4
br label %if.end45
if.end45: ; preds = %if.then41, %if.end37
%call46 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 2)
%arrayidx47 = getelementptr inbounds i32, i32* %call46, i64 1
%24 = load i32, i32* %arrayidx47, align 4
%25 = load i32, i32* %global_elems_z, align 4
%cmp48 = icmp slt i32 %24, %25
br i1 %cmp48, label %if.then49, label %if.end53
if.then49: ; preds = %if.end45
%26 = load i32, i32* %ghost, align 4
%call50 = call i32* @_ZN3BoxixEi(%struct.Box* %local_elem_box, i32 2)
%arrayidx51 = getelementptr inbounds i32, i32* %call50, i64 1
%27 = load i32, i32* %arrayidx51, align 4
%add52 = add nsw i32 %27, %26
store i32 %add52, i32* %arrayidx51, align 4
br label %if.end53
if.end53: ; preds = %if.then49, %if.end45
%28 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%29 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%30 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%31 = load %"struct.miniFE::Parameters"*, %"struct.miniFE::Parameters"** %params.addr, align 8
call void @_ZN6miniFE20perform_element_loopIiNS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvRKNS_23simple_mesh_descriptionIT_EERK3BoxRT0_RT1_RNS_10ParametersE(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %28, %struct.Box* dereferenceable(24) %local_elem_box, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %29, %"struct.miniFE::Vector"* dereferenceable(32) %30, %"struct.miniFE::Parameters"* dereferenceable(96) %31)
br label %return
return: ; preds = %if.end53, %if.then
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE16impose_dirichletINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEEvNT_10ScalarTypeERS5_RT0_iiiRKSt3setINS5_17GlobalOrdinalTypeESt4lessISB_ESaISB_EE(double %prescribed_value, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, i32 %global_nx, i32 %global_ny, i32 %global_nz, %"class.std::set"* dereferenceable(48) %bc_rows) #3 comdat {
entry:
%prescribed_value.addr = alloca double, align 8
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%b.addr = alloca %"struct.miniFE::Vector"*, align 8
%global_nx.addr = alloca i32, align 4
%global_ny.addr = alloca i32, align 4
%global_nz.addr = alloca i32, align 4
%bc_rows.addr = alloca %"class.std::set"*, align 8
%first_local_row = alloca i32, align 4
%last_local_row = alloca i32, align 4
%bc_iter = alloca %"struct.std::_Rb_tree_const_iterator", align 8
%bc_end = alloca %"struct.std::_Rb_tree_const_iterator", align 8
%row = alloca i32, align 4
%local_row = alloca i64, align 8
%i = alloca i64, align 8
%row29 = alloca i32, align 4
%coerce = alloca %"struct.std::_Rb_tree_const_iterator", align 8
%ref.tmp = alloca %"struct.std::_Rb_tree_const_iterator", align 8
%row_length = alloca i64, align 8
%cols = alloca i32*, align 8
%coefs39 = alloca double*, align 8
%sum = alloca double, align 8
%j = alloca i64, align 8
%coerce44 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
%ref.tmp46 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
store double %prescribed_value, double* %prescribed_value.addr, align 8
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
store %"struct.miniFE::Vector"* %b, %"struct.miniFE::Vector"** %b.addr, align 8
store i32 %global_nx, i32* %global_nx.addr, align 4
store i32 %global_ny, i32* %global_ny.addr, align 4
store i32 %global_nz, i32* %global_nz.addr, align 4
store %"class.std::set"* %bc_rows, %"class.std::set"** %bc_rows.addr, align 8
%0 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %0, i32 0, i32 2
%call = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
%cmp = icmp ugt i64 %call, 0
br i1 %cmp, label %cond.true, label %cond.false
cond.true: ; preds = %entry
%1 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows1 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %1, i32 0, i32 2
%call2 = call dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %rows1, i64 0)
%2 = load i32, i32* %call2, align 4
br label %cond.end
cond.false: ; preds = %entry
br label %cond.end
cond.end: ; preds = %cond.false, %cond.true
%cond = phi i32 [ %2, %cond.true ], [ 0, %cond.false ]
store i32 %cond, i32* %first_local_row, align 4
%3 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows3 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %3, i32 0, i32 2
%call4 = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows3)
%cmp5 = icmp ugt i64 %call4, 0
br i1 %cmp5, label %cond.true6, label %cond.false11
cond.true6: ; preds = %cond.end
%4 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows7 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %4, i32 0, i32 2
%5 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows8 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %5, i32 0, i32 2
%call9 = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows8)
%sub = sub i64 %call9, 1
%call10 = call dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %rows7, i64 %sub)
%6 = load i32, i32* %call10, align 4
br label %cond.end12
cond.false11: ; preds = %cond.end
br label %cond.end12
cond.end12: ; preds = %cond.false11, %cond.true6
%cond13 = phi i32 [ %6, %cond.true6 ], [ -1, %cond.false11 ]
store i32 %cond13, i32* %last_local_row, align 4
%7 = load %"class.std::set"*, %"class.std::set"** %bc_rows.addr, align 8
%call14 = call %"struct.std::_Rb_tree_node_base"* @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(%"class.std::set"* %7)
%coerce.dive = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", %"struct.std::_Rb_tree_const_iterator"* %bc_iter, i32 0, i32 0
store %"struct.std::_Rb_tree_node_base"* %call14, %"struct.std::_Rb_tree_node_base"** %coerce.dive, align 8
%8 = load %"class.std::set"*, %"class.std::set"** %bc_rows.addr, align 8
%call15 = call %"struct.std::_Rb_tree_node_base"* @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(%"class.std::set"* %8)
%coerce.dive16 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", %"struct.std::_Rb_tree_const_iterator"* %bc_end, i32 0, i32 0
store %"struct.std::_Rb_tree_node_base"* %call15, %"struct.std::_Rb_tree_node_base"** %coerce.dive16, align 8
br label %for.cond
for.cond: ; preds = %for.inc, %cond.end12
%call17 = call zeroext i1 @_ZNKSt23_Rb_tree_const_iteratorIiEneERKS0_(%"struct.std::_Rb_tree_const_iterator"* %bc_iter, %"struct.std::_Rb_tree_const_iterator"* dereferenceable(8) %bc_end)
br i1 %call17, label %for.body, label %for.end
for.body: ; preds = %for.cond
%call18 = call dereferenceable(4) i32* @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(%"struct.std::_Rb_tree_const_iterator"* %bc_iter)
%9 = load i32, i32* %call18, align 4
store i32 %9, i32* %row, align 4
%10 = load i32, i32* %row, align 4
%11 = load i32, i32* %first_local_row, align 4
%cmp19 = icmp sge i32 %10, %11
br i1 %cmp19, label %land.lhs.true, label %if.end
land.lhs.true: ; preds = %for.body
%12 = load i32, i32* %row, align 4
%13 = load i32, i32* %last_local_row, align 4
%cmp20 = icmp sle i32 %12, %13
br i1 %cmp20, label %if.then, label %if.end
if.then: ; preds = %land.lhs.true
%14 = load i32, i32* %row, align 4
%15 = load i32, i32* %first_local_row, align 4
%sub21 = sub nsw i32 %14, %15
%conv = sext i32 %sub21 to i64
store i64 %conv, i64* %local_row, align 8
%16 = load double, double* %prescribed_value.addr, align 8
%17 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%coefs = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %17, i32 0, i32 2
%18 = load i64, i64* %local_row, align 8
%call22 = call dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %coefs, i64 %18)
store double %16, double* %call22, align 8
%19 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%20 = load i32, i32* %row, align 4
call void @_ZN6miniFE30zero_row_and_put_1_on_diagonalINS_9CSRMatrixIdiiEEEEvRT_NS3_17GlobalOrdinalTypeE(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %19, i32 %20)
br label %if.end
if.end: ; preds = %if.then, %land.lhs.true, %for.body
br label %for.inc
for.inc: ; preds = %if.end
%call23 = call dereferenceable(8) %"struct.std::_Rb_tree_const_iterator"* @_ZNSt23_Rb_tree_const_iteratorIiEppEv(%"struct.std::_Rb_tree_const_iterator"* %bc_iter)
br label %for.cond
for.end: ; preds = %for.cond
store i64 0, i64* %i, align 8
br label %for.cond24
for.cond24: ; preds = %for.inc59, %for.end
%21 = load i64, i64* %i, align 8
%22 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows25 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %22, i32 0, i32 2
%call26 = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows25)
%cmp27 = icmp ult i64 %21, %call26
br i1 %cmp27, label %for.body28, label %for.end61
for.body28: ; preds = %for.cond24
%23 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows30 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %23, i32 0, i32 2
%24 = load i64, i64* %i, align 8
%call31 = call dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %rows30, i64 %24)
%25 = load i32, i32* %call31, align 4
store i32 %25, i32* %row29, align 4
%26 = load %"class.std::set"*, %"class.std::set"** %bc_rows.addr, align 8
%call32 = call %"struct.std::_Rb_tree_node_base"* @_ZNKSt3setIiSt4lessIiESaIiEE4findERKi(%"class.std::set"* %26, i32* dereferenceable(4) %row29)
%coerce.dive33 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", %"struct.std::_Rb_tree_const_iterator"* %coerce, i32 0, i32 0
store %"struct.std::_Rb_tree_node_base"* %call32, %"struct.std::_Rb_tree_node_base"** %coerce.dive33, align 8
%27 = load %"class.std::set"*, %"class.std::set"** %bc_rows.addr, align 8
%call34 = call %"struct.std::_Rb_tree_node_base"* @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(%"class.std::set"* %27)
%coerce.dive35 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", %"struct.std::_Rb_tree_const_iterator"* %ref.tmp, i32 0, i32 0
store %"struct.std::_Rb_tree_node_base"* %call34, %"struct.std::_Rb_tree_node_base"** %coerce.dive35, align 8
%call36 = call zeroext i1 @_ZNKSt23_Rb_tree_const_iteratorIiEneERKS0_(%"struct.std::_Rb_tree_const_iterator"* %coerce, %"struct.std::_Rb_tree_const_iterator"* dereferenceable(8) %ref.tmp)
br i1 %call36, label %if.then37, label %if.end38
if.then37: ; preds = %for.body28
br label %for.inc59
if.end38: ; preds = %for.body28
store i64 0, i64* %row_length, align 8
store i32* null, i32** %cols, align 8
store double* null, double** %coefs39, align 8
%28 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%29 = load i32, i32* %row29, align 4
call void @_ZN6miniFE9CSRMatrixIdiiE16get_row_pointersEiRmRPiRPd(%"struct.miniFE::CSRMatrix"* %28, i32 %29, i64* dereferenceable(8) %row_length, i32** dereferenceable(8) %cols, double** dereferenceable(8) %coefs39)
store double 0.000000e+00, double* %sum, align 8
store i64 0, i64* %j, align 8
br label %for.cond40
for.cond40: ; preds = %for.inc54, %if.end38
%30 = load i64, i64* %j, align 8
%31 = load i64, i64* %row_length, align 8
%cmp41 = icmp ult i64 %30, %31
br i1 %cmp41, label %for.body42, label %for.end55
for.body42: ; preds = %for.cond40
%32 = load %"class.std::set"*, %"class.std::set"** %bc_rows.addr, align 8
%33 = load i32*, i32** %cols, align 8
%34 = load i64, i64* %j, align 8
%arrayidx = getelementptr inbounds i32, i32* %33, i64 %34
%call43 = call %"struct.std::_Rb_tree_node_base"* @_ZNKSt3setIiSt4lessIiESaIiEE4findERKi(%"class.std::set"* %32, i32* dereferenceable(4) %arrayidx)
%coerce.dive45 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", %"struct.std::_Rb_tree_const_iterator"* %coerce44, i32 0, i32 0
store %"struct.std::_Rb_tree_node_base"* %call43, %"struct.std::_Rb_tree_node_base"** %coerce.dive45, align 8
%35 = load %"class.std::set"*, %"class.std::set"** %bc_rows.addr, align 8
%call47 = call %"struct.std::_Rb_tree_node_base"* @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(%"class.std::set"* %35)
%coerce.dive48 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", %"struct.std::_Rb_tree_const_iterator"* %ref.tmp46, i32 0, i32 0
store %"struct.std::_Rb_tree_node_base"* %call47, %"struct.std::_Rb_tree_node_base"** %coerce.dive48, align 8
%call49 = call zeroext i1 @_ZNKSt23_Rb_tree_const_iteratorIiEneERKS0_(%"struct.std::_Rb_tree_const_iterator"* %coerce44, %"struct.std::_Rb_tree_const_iterator"* dereferenceable(8) %ref.tmp46)
br i1 %call49, label %if.then50, label %if.end53
if.then50: ; preds = %for.body42
%36 = load double*, double** %coefs39, align 8
%37 = load i64, i64* %j, align 8
%arrayidx51 = getelementptr inbounds double, double* %36, i64 %37
%38 = load double, double* %arrayidx51, align 8
%39 = load double, double* %sum, align 8
%add = fadd double %39, %38
store double %add, double* %sum, align 8
%40 = load double*, double** %coefs39, align 8
%41 = load i64, i64* %j, align 8
%arrayidx52 = getelementptr inbounds double, double* %40, i64 %41
store double 0.000000e+00, double* %arrayidx52, align 8
br label %if.end53
if.end53: ; preds = %if.then50, %for.body42
br label %for.inc54
for.inc54: ; preds = %if.end53
%42 = load i64, i64* %j, align 8
%inc = add i64 %42, 1
store i64 %inc, i64* %j, align 8
br label %for.cond40
for.end55: ; preds = %for.cond40
%43 = load double, double* %sum, align 8
%44 = load double, double* %prescribed_value.addr, align 8
%mul = fmul double %43, %44
%45 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%coefs56 = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %45, i32 0, i32 2
%46 = load i64, i64* %i, align 8
%call57 = call dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %coefs56, i64 %46)
%47 = load double, double* %call57, align 8
%sub58 = fsub double %47, %mul
store double %sub58, double* %call57, align 8
br label %for.inc59
for.inc59: ; preds = %for.end55, %if.then37
%48 = load i64, i64* %i, align 8
%inc60 = add i64 %48, 1
store i64 %inc60, i64* %i, align 8
br label %for.cond24
for.end61: ; preds = %for.cond24
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr void @_ZN6miniFE17make_local_matrixINS_9CSRMatrixIdiiEEEEvRT_(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A) #4 comdat {
entry:
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%0 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %0, i32 0, i32 2
%call = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
%conv = trunc i64 %call to i32
%1 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%num_cols = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %1, i32 0, i32 7
store i32 %conv, i32* %num_cols, align 8
%2 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%has_local_indices = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %2, i32 0, i32 0
store i8 1, i8* %has_local_indices, align 8
ret void
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr i64 @_ZN6miniFE20compute_matrix_statsINS_9CSRMatrixIdiiEEEEmRKT_iiR8YAML_Doc(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, i32 %myproc, i32 %numprocs, %class.YAML_Doc* dereferenceable(216) %ydoc) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%myproc.addr = alloca i32, align 4
%numprocs.addr = alloca i32, align 4
%ydoc.addr = alloca %class.YAML_Doc*, align 8
%min_nrows = alloca i32, align 4
%max_nrows = alloca i32, align 4
%global_nrows = alloca i32, align 4
%min_proc = alloca i32, align 4
%max_proc = alloca i32, align 4
%local_nrows = alloca i32, align 4
%local_nnz = alloca double, align 8
%dglobal_nnz = alloca double, align 8
%dmin_nnz = alloca double, align 8
%dmax_nnz = alloca double, align 8
%avg_nrows = alloca double, align 8
%avg_nnz = alloca double, align 8
%mem_overhead_MB = alloca double, align 8
%global_nnz = alloca i64, align 8
%min_nnz = alloca i64, align 8
%max_nnz = alloca i64, align 8
%global_num_rows = alloca i64, align 8
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp15 = alloca %"class.std::allocator", align 1
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%ref.tmp16 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp17 = alloca %"class.std::allocator", align 1
%ref.tmp29 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp30 = alloca %"class.std::allocator", align 1
%ref.tmp36 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp37 = alloca %"class.std::allocator", align 1
%ref.tmp51 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp52 = alloca %"class.std::allocator", align 1
%ref.tmp58 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp59 = alloca %"class.std::allocator", align 1
%invGB = alloca double, align 8
%memGB = alloca double, align 8
%ref.tmp86 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp87 = alloca %"class.std::allocator", align 1
%ref.tmp93 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp94 = alloca %"class.std::allocator", align 1
%ref.tmp108 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp109 = alloca %"class.std::allocator", align 1
%ref.tmp115 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp116 = alloca %"class.std::allocator", align 1
%min_num_rows = alloca i64, align 8
%max_num_rows = alloca i64, align 8
%ref.tmp132 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp133 = alloca %"class.std::allocator", align 1
%ref.tmp139 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp140 = alloca %"class.std::allocator", align 1
%ref.tmp154 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp155 = alloca %"class.std::allocator", align 1
%ref.tmp161 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp162 = alloca %"class.std::allocator", align 1
%ref.tmp176 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp177 = alloca %"class.std::allocator", align 1
%ref.tmp183 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp184 = alloca %"class.std::allocator", align 1
%ref.tmp198 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp199 = alloca %"class.std::allocator", align 1
%ref.tmp205 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp206 = alloca %"class.std::allocator", align 1
%ref.tmp220 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp221 = alloca %"class.std::allocator", align 1
%ref.tmp227 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp228 = alloca %"class.std::allocator", align 1
%ref.tmp242 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp243 = alloca %"class.std::allocator", align 1
%ref.tmp249 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp250 = alloca %"class.std::allocator", align 1
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
store i32 %myproc, i32* %myproc.addr, align 4
store i32 %numprocs, i32* %numprocs.addr, align 4
store %class.YAML_Doc* %ydoc, %class.YAML_Doc** %ydoc.addr, align 8
store i32 0, i32* %min_nrows, align 4
store i32 0, i32* %max_nrows, align 4
store i32 0, i32* %global_nrows, align 4
store i32 0, i32* %min_proc, align 4
store i32 0, i32* %max_proc, align 4
%0 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %0, i32 0, i32 2
%call = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
%conv = trunc i64 %call to i32
store i32 %conv, i32* %local_nrows, align 4
%1 = load i32, i32* %local_nrows, align 4
call void @_ZN6miniFE18get_global_min_maxIiEEvT_RS1_S2_RiS2_S3_(i32 %1, i32* dereferenceable(4) %global_nrows, i32* dereferenceable(4) %min_nrows, i32* dereferenceable(4) %min_proc, i32* dereferenceable(4) %max_nrows, i32* dereferenceable(4) %max_proc)
%2 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%call1 = call i64 @_ZNK6miniFE9CSRMatrixIdiiE12num_nonzerosEv(%"struct.miniFE::CSRMatrix"* %2)
%conv2 = uitofp i64 %call1 to double
store double %conv2, double* %local_nnz, align 8
store double 0.000000e+00, double* %dglobal_nnz, align 8
store double 0.000000e+00, double* %dmin_nnz, align 8
store double 0.000000e+00, double* %dmax_nnz, align 8
%3 = load double, double* %local_nnz, align 8
call void @_ZN6miniFE18get_global_min_maxIdEEvT_RS1_S2_RiS2_S3_(double %3, double* dereferenceable(8) %dglobal_nnz, double* dereferenceable(8) %dmin_nnz, i32* dereferenceable(4) %min_proc, double* dereferenceable(8) %dmax_nnz, i32* dereferenceable(4) %max_proc)
%4 = load i32, i32* %global_nrows, align 4
%conv3 = sitofp i32 %4 to double
store double %conv3, double* %avg_nrows, align 8
%5 = load i32, i32* %numprocs.addr, align 4
%conv4 = sitofp i32 %5 to double
%6 = load double, double* %avg_nrows, align 8
%div = fdiv double %6, %conv4
store double %div, double* %avg_nrows, align 8
%7 = load double, double* %dglobal_nnz, align 8
store double %7, double* %avg_nnz, align 8
%8 = load i32, i32* %numprocs.addr, align 4
%conv5 = sitofp i32 %8 to double
%9 = load double, double* %avg_nnz, align 8
%div6 = fdiv double %9, %conv5
store double %div6, double* %avg_nnz, align 8
%10 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%call7 = call double @_ZN6miniFE27parallel_memory_overhead_MBINS_9CSRMatrixIdiiEEEEdRKT_(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %10)
store double %call7, double* %mem_overhead_MB, align 8
%11 = load double, double* %dglobal_nnz, align 8
%call8 = call double @ceil(double %11) #15
%conv9 = fptoui double %call8 to i64
store i64 %conv9, i64* %global_nnz, align 8
%12 = load double, double* %dmin_nnz, align 8
%call10 = call double @ceil(double %12) #15
%conv11 = fptoui double %call10 to i64
store i64 %conv11, i64* %min_nnz, align 8
%13 = load double, double* %dmax_nnz, align 8
%call12 = call double @ceil(double %13) #15
%conv13 = fptoui double %call12 to i64
store i64 %conv13, i64* %max_nnz, align 8
%14 = load i32, i32* %global_nrows, align 4
%conv14 = sext i32 %14 to i64
store i64 %conv14, i64* %global_num_rows, align 8
%15 = load i32, i32* %myproc.addr, align 4
%cmp = icmp eq i32 %15, 0
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
%16 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%17 = bitcast %class.YAML_Doc* %16 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp15) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp15)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.then
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp17) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp16, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.3, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp17)
to label %invoke.cont19 unwind label %lpad18
invoke.cont19: ; preds = %invoke.cont
%call22 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_(%class.YAML_Element* %17, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp16)
to label %invoke.cont21 unwind label %lpad20
invoke.cont21: ; preds = %invoke.cont19
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp16)
to label %invoke.cont23 unwind label %lpad18
invoke.cont23: ; preds = %invoke.cont21
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp17) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont25 unwind label %lpad
invoke.cont25: ; preds = %invoke.cont23
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp15) #2
%18 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%19 = bitcast %class.YAML_Doc* %18 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp30) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp29, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp30)
to label %invoke.cont32 unwind label %lpad31
invoke.cont32: ; preds = %invoke.cont25
%call35 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %19, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp29)
to label %invoke.cont34 unwind label %lpad33
invoke.cont34: ; preds = %invoke.cont32
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp37) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp36, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.99, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp37)
to label %invoke.cont39 unwind label %lpad38
invoke.cont39: ; preds = %invoke.cont34
%20 = load i64, i64* %global_num_rows, align 8
%call42 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(%class.YAML_Element* %call35, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp36, i64 %20)
to label %invoke.cont41 unwind label %lpad40
invoke.cont41: ; preds = %invoke.cont39
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp36)
to label %invoke.cont43 unwind label %lpad38
invoke.cont43: ; preds = %invoke.cont41
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp37) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp29)
to label %invoke.cont47 unwind label %lpad31
invoke.cont47: ; preds = %invoke.cont43
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp30) #2
%21 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%22 = bitcast %class.YAML_Doc* %21 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp52) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp51, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp52)
to label %invoke.cont54 unwind label %lpad53
invoke.cont54: ; preds = %invoke.cont47
%call57 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %22, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp51)
to label %invoke.cont56 unwind label %lpad55
invoke.cont56: ; preds = %invoke.cont54
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp59) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp58, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.100, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp59)
to label %invoke.cont61 unwind label %lpad60
invoke.cont61: ; preds = %invoke.cont56
%23 = load i64, i64* %global_nnz, align 8
%call64 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(%class.YAML_Element* %call57, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp58, i64 %23)
to label %invoke.cont63 unwind label %lpad62
invoke.cont63: ; preds = %invoke.cont61
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp58)
to label %invoke.cont65 unwind label %lpad60
invoke.cont65: ; preds = %invoke.cont63
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp59) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp51)
to label %invoke.cont69 unwind label %lpad53
invoke.cont69: ; preds = %invoke.cont65
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp52) #2
store double 0x3E10000000000000, double* %invGB, align 8
%24 = load double, double* %invGB, align 8
%25 = load i32, i32* %global_nrows, align 4
%conv73 = sitofp i32 %25 to double
%mul = fmul double %24, %conv73
%mul74 = fmul double %mul, 4.000000e+00
store double %mul74, double* %memGB, align 8
%26 = load double, double* %invGB, align 8
%27 = load i32, i32* %global_nrows, align 4
%conv75 = sitofp i32 %27 to double
%mul76 = fmul double %26, %conv75
%mul77 = fmul double %mul76, 4.000000e+00
%28 = load double, double* %memGB, align 8
%add = fadd double %28, %mul77
store double %add, double* %memGB, align 8
%29 = load double, double* %invGB, align 8
%30 = load i64, i64* %global_nnz, align 8
%conv78 = uitofp i64 %30 to double
%mul79 = fmul double %29, %conv78
%mul80 = fmul double %mul79, 4.000000e+00
%31 = load double, double* %memGB, align 8
%add81 = fadd double %31, %mul80
store double %add81, double* %memGB, align 8
%32 = load double, double* %invGB, align 8
%33 = load i64, i64* %global_nnz, align 8
%conv82 = uitofp i64 %33 to double
%mul83 = fmul double %32, %conv82
%mul84 = fmul double %mul83, 8.000000e+00
%34 = load double, double* %memGB, align 8
%add85 = fadd double %34, %mul84
store double %add85, double* %memGB, align 8
%35 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%36 = bitcast %class.YAML_Doc* %35 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp87) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp86, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp87)
to label %invoke.cont89 unwind label %lpad88
invoke.cont89: ; preds = %invoke.cont69
%call92 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %36, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp86)
to label %invoke.cont91 unwind label %lpad90
invoke.cont91: ; preds = %invoke.cont89
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp94) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp93, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.101, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp94)
to label %invoke.cont96 unwind label %lpad95
invoke.cont96: ; preds = %invoke.cont91
%37 = load double, double* %memGB, align 8
%call99 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call92, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp93, double %37)
to label %invoke.cont98 unwind label %lpad97
invoke.cont98: ; preds = %invoke.cont96
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp93)
to label %invoke.cont100 unwind label %lpad95
invoke.cont100: ; preds = %invoke.cont98
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp94) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp86)
to label %invoke.cont104 unwind label %lpad88
invoke.cont104: ; preds = %invoke.cont100
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp87) #2
%38 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%39 = bitcast %class.YAML_Doc* %38 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp109) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp108, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp109)
to label %invoke.cont111 unwind label %lpad110
invoke.cont111: ; preds = %invoke.cont104
%call114 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %39, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp108)
to label %invoke.cont113 unwind label %lpad112
invoke.cont113: ; preds = %invoke.cont111
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp116) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp115, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.102, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp116)
to label %invoke.cont118 unwind label %lpad117
invoke.cont118: ; preds = %invoke.cont113
%40 = load double, double* %mem_overhead_MB, align 8
%call121 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call114, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp115, double %40)
to label %invoke.cont120 unwind label %lpad119
invoke.cont120: ; preds = %invoke.cont118
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp115)
to label %invoke.cont122 unwind label %lpad117
invoke.cont122: ; preds = %invoke.cont120
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp116) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp108)
to label %invoke.cont126 unwind label %lpad110
invoke.cont126: ; preds = %invoke.cont122
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp109) #2
%41 = load i32, i32* %min_nrows, align 4
%conv130 = sext i32 %41 to i64
store i64 %conv130, i64* %min_num_rows, align 8
%42 = load i32, i32* %max_nrows, align 4
%conv131 = sext i32 %42 to i64
store i64 %conv131, i64* %max_num_rows, align 8
%43 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%44 = bitcast %class.YAML_Doc* %43 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp133) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp132, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp133)
to label %invoke.cont135 unwind label %lpad134
invoke.cont135: ; preds = %invoke.cont126
%call138 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %44, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp132)
to label %invoke.cont137 unwind label %lpad136
invoke.cont137: ; preds = %invoke.cont135
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp140) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp139, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.103, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp140)
to label %invoke.cont142 unwind label %lpad141
invoke.cont142: ; preds = %invoke.cont137
%45 = load i64, i64* %min_num_rows, align 8
%call145 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(%class.YAML_Element* %call138, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp139, i64 %45)
to label %invoke.cont144 unwind label %lpad143
invoke.cont144: ; preds = %invoke.cont142
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp139)
to label %invoke.cont146 unwind label %lpad141
invoke.cont146: ; preds = %invoke.cont144
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp140) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp132)
to label %invoke.cont150 unwind label %lpad134
invoke.cont150: ; preds = %invoke.cont146
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp133) #2
%46 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%47 = bitcast %class.YAML_Doc* %46 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp155) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp154, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp155)
to label %invoke.cont157 unwind label %lpad156
invoke.cont157: ; preds = %invoke.cont150
%call160 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %47, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp154)
to label %invoke.cont159 unwind label %lpad158
invoke.cont159: ; preds = %invoke.cont157
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp162) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp161, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.104, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp162)
to label %invoke.cont164 unwind label %lpad163
invoke.cont164: ; preds = %invoke.cont159
%48 = load i64, i64* %max_num_rows, align 8
%call167 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(%class.YAML_Element* %call160, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp161, i64 %48)
to label %invoke.cont166 unwind label %lpad165
invoke.cont166: ; preds = %invoke.cont164
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp161)
to label %invoke.cont168 unwind label %lpad163
invoke.cont168: ; preds = %invoke.cont166
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp162) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp154)
to label %invoke.cont172 unwind label %lpad156
invoke.cont172: ; preds = %invoke.cont168
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp155) #2
%49 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%50 = bitcast %class.YAML_Doc* %49 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp177) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp176, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp177)
to label %invoke.cont179 unwind label %lpad178
invoke.cont179: ; preds = %invoke.cont172
%call182 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %50, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp176)
to label %invoke.cont181 unwind label %lpad180
invoke.cont181: ; preds = %invoke.cont179
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp184) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp183, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.105, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp184)
to label %invoke.cont186 unwind label %lpad185
invoke.cont186: ; preds = %invoke.cont181
%51 = load double, double* %avg_nrows, align 8
%call189 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call182, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp183, double %51)
to label %invoke.cont188 unwind label %lpad187
invoke.cont188: ; preds = %invoke.cont186
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp183)
to label %invoke.cont190 unwind label %lpad185
invoke.cont190: ; preds = %invoke.cont188
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp184) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp176)
to label %invoke.cont194 unwind label %lpad178
invoke.cont194: ; preds = %invoke.cont190
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp177) #2
%52 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%53 = bitcast %class.YAML_Doc* %52 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp199) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp198, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp199)
to label %invoke.cont201 unwind label %lpad200
invoke.cont201: ; preds = %invoke.cont194
%call204 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %53, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp198)
to label %invoke.cont203 unwind label %lpad202
invoke.cont203: ; preds = %invoke.cont201
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp206) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp205, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.106, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp206)
to label %invoke.cont208 unwind label %lpad207
invoke.cont208: ; preds = %invoke.cont203
%54 = load i64, i64* %min_nnz, align 8
%call211 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(%class.YAML_Element* %call204, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp205, i64 %54)
to label %invoke.cont210 unwind label %lpad209
invoke.cont210: ; preds = %invoke.cont208
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp205)
to label %invoke.cont212 unwind label %lpad207
invoke.cont212: ; preds = %invoke.cont210
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp206) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp198)
to label %invoke.cont216 unwind label %lpad200
invoke.cont216: ; preds = %invoke.cont212
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp199) #2
%55 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%56 = bitcast %class.YAML_Doc* %55 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp221) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp220, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp221)
to label %invoke.cont223 unwind label %lpad222
invoke.cont223: ; preds = %invoke.cont216
%call226 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %56, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp220)
to label %invoke.cont225 unwind label %lpad224
invoke.cont225: ; preds = %invoke.cont223
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp228) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp227, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.107, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp228)
to label %invoke.cont230 unwind label %lpad229
invoke.cont230: ; preds = %invoke.cont225
%57 = load i64, i64* %max_nnz, align 8
%call233 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(%class.YAML_Element* %call226, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp227, i64 %57)
to label %invoke.cont232 unwind label %lpad231
invoke.cont232: ; preds = %invoke.cont230
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp227)
to label %invoke.cont234 unwind label %lpad229
invoke.cont234: ; preds = %invoke.cont232
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp228) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp220)
to label %invoke.cont238 unwind label %lpad222
invoke.cont238: ; preds = %invoke.cont234
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp221) #2
%58 = load %class.YAML_Doc*, %class.YAML_Doc** %ydoc.addr, align 8
%59 = bitcast %class.YAML_Doc* %58 to %class.YAML_Element*
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp243) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp242, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.98, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp243)
to label %invoke.cont245 unwind label %lpad244
invoke.cont245: ; preds = %invoke.cont238
%call248 = invoke %class.YAML_Element* @_ZN12YAML_Element3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.YAML_Element* %59, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp242)
to label %invoke.cont247 unwind label %lpad246
invoke.cont247: ; preds = %invoke.cont245
call void @_ZNSaIcEC1Ev(%"class.std::allocator"* %ref.tmp250) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(%"class.std::__cxx11::basic_string"* %ref.tmp249, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.108, i32 0, i32 0), %"class.std::allocator"* dereferenceable(1) %ref.tmp250)
to label %invoke.cont252 unwind label %lpad251
invoke.cont252: ; preds = %invoke.cont247
%60 = load double, double* %avg_nnz, align 8
%call255 = invoke %class.YAML_Element* @_ZN12YAML_Element3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(%class.YAML_Element* %call248, %"class.std::__cxx11::basic_string"* dereferenceable(32) %ref.tmp249, double %60)
to label %invoke.cont254 unwind label %lpad253
invoke.cont254: ; preds = %invoke.cont252
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp249)
to label %invoke.cont256 unwind label %lpad251
invoke.cont256: ; preds = %invoke.cont254
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp250) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp242)
to label %invoke.cont260 unwind label %lpad244
invoke.cont260: ; preds = %invoke.cont256
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp243) #2
br label %if.end
lpad: ; preds = %invoke.cont23, %if.then
%61 = landingpad { i8*, i32 }
cleanup
%62 = extractvalue { i8*, i32 } %61, 0
store i8* %62, i8** %exn.slot, align 8
%63 = extractvalue { i8*, i32 } %61, 1
store i32 %63, i32* %ehselector.slot, align 4
br label %ehcleanup28
lpad18: ; preds = %invoke.cont21, %invoke.cont
%64 = landingpad { i8*, i32 }
cleanup
%65 = extractvalue { i8*, i32 } %64, 0
store i8* %65, i8** %exn.slot, align 8
%66 = extractvalue { i8*, i32 } %64, 1
store i32 %66, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad20: ; preds = %invoke.cont19
%67 = landingpad { i8*, i32 }
cleanup
%68 = extractvalue { i8*, i32 } %67, 0
store i8* %68, i8** %exn.slot, align 8
%69 = extractvalue { i8*, i32 } %67, 1
store i32 %69, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp16)
to label %invoke.cont24 unwind label %terminate.lpad
invoke.cont24: ; preds = %lpad20
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont24, %lpad18
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp17) #2
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp)
to label %invoke.cont27 unwind label %terminate.lpad
invoke.cont27: ; preds = %ehcleanup
br label %ehcleanup28
ehcleanup28: ; preds = %invoke.cont27, %lpad
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp15) #2
br label %eh.resume
lpad31: ; preds = %invoke.cont43, %invoke.cont25
%70 = landingpad { i8*, i32 }
cleanup
%71 = extractvalue { i8*, i32 } %70, 0
store i8* %71, i8** %exn.slot, align 8
%72 = extractvalue { i8*, i32 } %70, 1
store i32 %72, i32* %ehselector.slot, align 4
br label %ehcleanup50
lpad33: ; preds = %invoke.cont32
%73 = landingpad { i8*, i32 }
cleanup
%74 = extractvalue { i8*, i32 } %73, 0
store i8* %74, i8** %exn.slot, align 8
%75 = extractvalue { i8*, i32 } %73, 1
store i32 %75, i32* %ehselector.slot, align 4
br label %ehcleanup48
lpad38: ; preds = %invoke.cont41, %invoke.cont34
%76 = landingpad { i8*, i32 }
cleanup
%77 = extractvalue { i8*, i32 } %76, 0
store i8* %77, i8** %exn.slot, align 8
%78 = extractvalue { i8*, i32 } %76, 1
store i32 %78, i32* %ehselector.slot, align 4
br label %ehcleanup46
lpad40: ; preds = %invoke.cont39
%79 = landingpad { i8*, i32 }
cleanup
%80 = extractvalue { i8*, i32 } %79, 0
store i8* %80, i8** %exn.slot, align 8
%81 = extractvalue { i8*, i32 } %79, 1
store i32 %81, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp36)
to label %invoke.cont45 unwind label %terminate.lpad
invoke.cont45: ; preds = %lpad40
br label %ehcleanup46
ehcleanup46: ; preds = %invoke.cont45, %lpad38
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp37) #2
br label %ehcleanup48
ehcleanup48: ; preds = %ehcleanup46, %lpad33
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp29)
to label %invoke.cont49 unwind label %terminate.lpad
invoke.cont49: ; preds = %ehcleanup48
br label %ehcleanup50
ehcleanup50: ; preds = %invoke.cont49, %lpad31
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp30) #2
br label %eh.resume
lpad53: ; preds = %invoke.cont65, %invoke.cont47
%82 = landingpad { i8*, i32 }
cleanup
%83 = extractvalue { i8*, i32 } %82, 0
store i8* %83, i8** %exn.slot, align 8
%84 = extractvalue { i8*, i32 } %82, 1
store i32 %84, i32* %ehselector.slot, align 4
br label %ehcleanup72
lpad55: ; preds = %invoke.cont54
%85 = landingpad { i8*, i32 }
cleanup
%86 = extractvalue { i8*, i32 } %85, 0
store i8* %86, i8** %exn.slot, align 8
%87 = extractvalue { i8*, i32 } %85, 1
store i32 %87, i32* %ehselector.slot, align 4
br label %ehcleanup70
lpad60: ; preds = %invoke.cont63, %invoke.cont56
%88 = landingpad { i8*, i32 }
cleanup
%89 = extractvalue { i8*, i32 } %88, 0
store i8* %89, i8** %exn.slot, align 8
%90 = extractvalue { i8*, i32 } %88, 1
store i32 %90, i32* %ehselector.slot, align 4
br label %ehcleanup68
lpad62: ; preds = %invoke.cont61
%91 = landingpad { i8*, i32 }
cleanup
%92 = extractvalue { i8*, i32 } %91, 0
store i8* %92, i8** %exn.slot, align 8
%93 = extractvalue { i8*, i32 } %91, 1
store i32 %93, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp58)
to label %invoke.cont67 unwind label %terminate.lpad
invoke.cont67: ; preds = %lpad62
br label %ehcleanup68
ehcleanup68: ; preds = %invoke.cont67, %lpad60
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp59) #2
br label %ehcleanup70
ehcleanup70: ; preds = %ehcleanup68, %lpad55
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp51)
to label %invoke.cont71 unwind label %terminate.lpad
invoke.cont71: ; preds = %ehcleanup70
br label %ehcleanup72
ehcleanup72: ; preds = %invoke.cont71, %lpad53
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp52) #2
br label %eh.resume
lpad88: ; preds = %invoke.cont100, %invoke.cont69
%94 = landingpad { i8*, i32 }
cleanup
%95 = extractvalue { i8*, i32 } %94, 0
store i8* %95, i8** %exn.slot, align 8
%96 = extractvalue { i8*, i32 } %94, 1
store i32 %96, i32* %ehselector.slot, align 4
br label %ehcleanup107
lpad90: ; preds = %invoke.cont89
%97 = landingpad { i8*, i32 }
cleanup
%98 = extractvalue { i8*, i32 } %97, 0
store i8* %98, i8** %exn.slot, align 8
%99 = extractvalue { i8*, i32 } %97, 1
store i32 %99, i32* %ehselector.slot, align 4
br label %ehcleanup105
lpad95: ; preds = %invoke.cont98, %invoke.cont91
%100 = landingpad { i8*, i32 }
cleanup
%101 = extractvalue { i8*, i32 } %100, 0
store i8* %101, i8** %exn.slot, align 8
%102 = extractvalue { i8*, i32 } %100, 1
store i32 %102, i32* %ehselector.slot, align 4
br label %ehcleanup103
lpad97: ; preds = %invoke.cont96
%103 = landingpad { i8*, i32 }
cleanup
%104 = extractvalue { i8*, i32 } %103, 0
store i8* %104, i8** %exn.slot, align 8
%105 = extractvalue { i8*, i32 } %103, 1
store i32 %105, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp93)
to label %invoke.cont102 unwind label %terminate.lpad
invoke.cont102: ; preds = %lpad97
br label %ehcleanup103
ehcleanup103: ; preds = %invoke.cont102, %lpad95
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp94) #2
br label %ehcleanup105
ehcleanup105: ; preds = %ehcleanup103, %lpad90
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp86)
to label %invoke.cont106 unwind label %terminate.lpad
invoke.cont106: ; preds = %ehcleanup105
br label %ehcleanup107
ehcleanup107: ; preds = %invoke.cont106, %lpad88
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp87) #2
br label %eh.resume
lpad110: ; preds = %invoke.cont122, %invoke.cont104
%106 = landingpad { i8*, i32 }
cleanup
%107 = extractvalue { i8*, i32 } %106, 0
store i8* %107, i8** %exn.slot, align 8
%108 = extractvalue { i8*, i32 } %106, 1
store i32 %108, i32* %ehselector.slot, align 4
br label %ehcleanup129
lpad112: ; preds = %invoke.cont111
%109 = landingpad { i8*, i32 }
cleanup
%110 = extractvalue { i8*, i32 } %109, 0
store i8* %110, i8** %exn.slot, align 8
%111 = extractvalue { i8*, i32 } %109, 1
store i32 %111, i32* %ehselector.slot, align 4
br label %ehcleanup127
lpad117: ; preds = %invoke.cont120, %invoke.cont113
%112 = landingpad { i8*, i32 }
cleanup
%113 = extractvalue { i8*, i32 } %112, 0
store i8* %113, i8** %exn.slot, align 8
%114 = extractvalue { i8*, i32 } %112, 1
store i32 %114, i32* %ehselector.slot, align 4
br label %ehcleanup125
lpad119: ; preds = %invoke.cont118
%115 = landingpad { i8*, i32 }
cleanup
%116 = extractvalue { i8*, i32 } %115, 0
store i8* %116, i8** %exn.slot, align 8
%117 = extractvalue { i8*, i32 } %115, 1
store i32 %117, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp115)
to label %invoke.cont124 unwind label %terminate.lpad
invoke.cont124: ; preds = %lpad119
br label %ehcleanup125
ehcleanup125: ; preds = %invoke.cont124, %lpad117
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp116) #2
br label %ehcleanup127
ehcleanup127: ; preds = %ehcleanup125, %lpad112
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp108)
to label %invoke.cont128 unwind label %terminate.lpad
invoke.cont128: ; preds = %ehcleanup127
br label %ehcleanup129
ehcleanup129: ; preds = %invoke.cont128, %lpad110
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp109) #2
br label %eh.resume
lpad134: ; preds = %invoke.cont146, %invoke.cont126
%118 = landingpad { i8*, i32 }
cleanup
%119 = extractvalue { i8*, i32 } %118, 0
store i8* %119, i8** %exn.slot, align 8
%120 = extractvalue { i8*, i32 } %118, 1
store i32 %120, i32* %ehselector.slot, align 4
br label %ehcleanup153
lpad136: ; preds = %invoke.cont135
%121 = landingpad { i8*, i32 }
cleanup
%122 = extractvalue { i8*, i32 } %121, 0
store i8* %122, i8** %exn.slot, align 8
%123 = extractvalue { i8*, i32 } %121, 1
store i32 %123, i32* %ehselector.slot, align 4
br label %ehcleanup151
lpad141: ; preds = %invoke.cont144, %invoke.cont137
%124 = landingpad { i8*, i32 }
cleanup
%125 = extractvalue { i8*, i32 } %124, 0
store i8* %125, i8** %exn.slot, align 8
%126 = extractvalue { i8*, i32 } %124, 1
store i32 %126, i32* %ehselector.slot, align 4
br label %ehcleanup149
lpad143: ; preds = %invoke.cont142
%127 = landingpad { i8*, i32 }
cleanup
%128 = extractvalue { i8*, i32 } %127, 0
store i8* %128, i8** %exn.slot, align 8
%129 = extractvalue { i8*, i32 } %127, 1
store i32 %129, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp139)
to label %invoke.cont148 unwind label %terminate.lpad
invoke.cont148: ; preds = %lpad143
br label %ehcleanup149
ehcleanup149: ; preds = %invoke.cont148, %lpad141
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp140) #2
br label %ehcleanup151
ehcleanup151: ; preds = %ehcleanup149, %lpad136
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp132)
to label %invoke.cont152 unwind label %terminate.lpad
invoke.cont152: ; preds = %ehcleanup151
br label %ehcleanup153
ehcleanup153: ; preds = %invoke.cont152, %lpad134
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp133) #2
br label %eh.resume
lpad156: ; preds = %invoke.cont168, %invoke.cont150
%130 = landingpad { i8*, i32 }
cleanup
%131 = extractvalue { i8*, i32 } %130, 0
store i8* %131, i8** %exn.slot, align 8
%132 = extractvalue { i8*, i32 } %130, 1
store i32 %132, i32* %ehselector.slot, align 4
br label %ehcleanup175
lpad158: ; preds = %invoke.cont157
%133 = landingpad { i8*, i32 }
cleanup
%134 = extractvalue { i8*, i32 } %133, 0
store i8* %134, i8** %exn.slot, align 8
%135 = extractvalue { i8*, i32 } %133, 1
store i32 %135, i32* %ehselector.slot, align 4
br label %ehcleanup173
lpad163: ; preds = %invoke.cont166, %invoke.cont159
%136 = landingpad { i8*, i32 }
cleanup
%137 = extractvalue { i8*, i32 } %136, 0
store i8* %137, i8** %exn.slot, align 8
%138 = extractvalue { i8*, i32 } %136, 1
store i32 %138, i32* %ehselector.slot, align 4
br label %ehcleanup171
lpad165: ; preds = %invoke.cont164
%139 = landingpad { i8*, i32 }
cleanup
%140 = extractvalue { i8*, i32 } %139, 0
store i8* %140, i8** %exn.slot, align 8
%141 = extractvalue { i8*, i32 } %139, 1
store i32 %141, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp161)
to label %invoke.cont170 unwind label %terminate.lpad
invoke.cont170: ; preds = %lpad165
br label %ehcleanup171
ehcleanup171: ; preds = %invoke.cont170, %lpad163
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp162) #2
br label %ehcleanup173
ehcleanup173: ; preds = %ehcleanup171, %lpad158
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp154)
to label %invoke.cont174 unwind label %terminate.lpad
invoke.cont174: ; preds = %ehcleanup173
br label %ehcleanup175
ehcleanup175: ; preds = %invoke.cont174, %lpad156
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp155) #2
br label %eh.resume
lpad178: ; preds = %invoke.cont190, %invoke.cont172
%142 = landingpad { i8*, i32 }
cleanup
%143 = extractvalue { i8*, i32 } %142, 0
store i8* %143, i8** %exn.slot, align 8
%144 = extractvalue { i8*, i32 } %142, 1
store i32 %144, i32* %ehselector.slot, align 4
br label %ehcleanup197
lpad180: ; preds = %invoke.cont179
%145 = landingpad { i8*, i32 }
cleanup
%146 = extractvalue { i8*, i32 } %145, 0
store i8* %146, i8** %exn.slot, align 8
%147 = extractvalue { i8*, i32 } %145, 1
store i32 %147, i32* %ehselector.slot, align 4
br label %ehcleanup195
lpad185: ; preds = %invoke.cont188, %invoke.cont181
%148 = landingpad { i8*, i32 }
cleanup
%149 = extractvalue { i8*, i32 } %148, 0
store i8* %149, i8** %exn.slot, align 8
%150 = extractvalue { i8*, i32 } %148, 1
store i32 %150, i32* %ehselector.slot, align 4
br label %ehcleanup193
lpad187: ; preds = %invoke.cont186
%151 = landingpad { i8*, i32 }
cleanup
%152 = extractvalue { i8*, i32 } %151, 0
store i8* %152, i8** %exn.slot, align 8
%153 = extractvalue { i8*, i32 } %151, 1
store i32 %153, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp183)
to label %invoke.cont192 unwind label %terminate.lpad
invoke.cont192: ; preds = %lpad187
br label %ehcleanup193
ehcleanup193: ; preds = %invoke.cont192, %lpad185
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp184) #2
br label %ehcleanup195
ehcleanup195: ; preds = %ehcleanup193, %lpad180
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp176)
to label %invoke.cont196 unwind label %terminate.lpad
invoke.cont196: ; preds = %ehcleanup195
br label %ehcleanup197
ehcleanup197: ; preds = %invoke.cont196, %lpad178
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp177) #2
br label %eh.resume
lpad200: ; preds = %invoke.cont212, %invoke.cont194
%154 = landingpad { i8*, i32 }
cleanup
%155 = extractvalue { i8*, i32 } %154, 0
store i8* %155, i8** %exn.slot, align 8
%156 = extractvalue { i8*, i32 } %154, 1
store i32 %156, i32* %ehselector.slot, align 4
br label %ehcleanup219
lpad202: ; preds = %invoke.cont201
%157 = landingpad { i8*, i32 }
cleanup
%158 = extractvalue { i8*, i32 } %157, 0
store i8* %158, i8** %exn.slot, align 8
%159 = extractvalue { i8*, i32 } %157, 1
store i32 %159, i32* %ehselector.slot, align 4
br label %ehcleanup217
lpad207: ; preds = %invoke.cont210, %invoke.cont203
%160 = landingpad { i8*, i32 }
cleanup
%161 = extractvalue { i8*, i32 } %160, 0
store i8* %161, i8** %exn.slot, align 8
%162 = extractvalue { i8*, i32 } %160, 1
store i32 %162, i32* %ehselector.slot, align 4
br label %ehcleanup215
lpad209: ; preds = %invoke.cont208
%163 = landingpad { i8*, i32 }
cleanup
%164 = extractvalue { i8*, i32 } %163, 0
store i8* %164, i8** %exn.slot, align 8
%165 = extractvalue { i8*, i32 } %163, 1
store i32 %165, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp205)
to label %invoke.cont214 unwind label %terminate.lpad
invoke.cont214: ; preds = %lpad209
br label %ehcleanup215
ehcleanup215: ; preds = %invoke.cont214, %lpad207
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp206) #2
br label %ehcleanup217
ehcleanup217: ; preds = %ehcleanup215, %lpad202
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp198)
to label %invoke.cont218 unwind label %terminate.lpad
invoke.cont218: ; preds = %ehcleanup217
br label %ehcleanup219
ehcleanup219: ; preds = %invoke.cont218, %lpad200
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp199) #2
br label %eh.resume
lpad222: ; preds = %invoke.cont234, %invoke.cont216
%166 = landingpad { i8*, i32 }
cleanup
%167 = extractvalue { i8*, i32 } %166, 0
store i8* %167, i8** %exn.slot, align 8
%168 = extractvalue { i8*, i32 } %166, 1
store i32 %168, i32* %ehselector.slot, align 4
br label %ehcleanup241
lpad224: ; preds = %invoke.cont223
%169 = landingpad { i8*, i32 }
cleanup
%170 = extractvalue { i8*, i32 } %169, 0
store i8* %170, i8** %exn.slot, align 8
%171 = extractvalue { i8*, i32 } %169, 1
store i32 %171, i32* %ehselector.slot, align 4
br label %ehcleanup239
lpad229: ; preds = %invoke.cont232, %invoke.cont225
%172 = landingpad { i8*, i32 }
cleanup
%173 = extractvalue { i8*, i32 } %172, 0
store i8* %173, i8** %exn.slot, align 8
%174 = extractvalue { i8*, i32 } %172, 1
store i32 %174, i32* %ehselector.slot, align 4
br label %ehcleanup237
lpad231: ; preds = %invoke.cont230
%175 = landingpad { i8*, i32 }
cleanup
%176 = extractvalue { i8*, i32 } %175, 0
store i8* %176, i8** %exn.slot, align 8
%177 = extractvalue { i8*, i32 } %175, 1
store i32 %177, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp227)
to label %invoke.cont236 unwind label %terminate.lpad
invoke.cont236: ; preds = %lpad231
br label %ehcleanup237
ehcleanup237: ; preds = %invoke.cont236, %lpad229
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp228) #2
br label %ehcleanup239
ehcleanup239: ; preds = %ehcleanup237, %lpad224
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp220)
to label %invoke.cont240 unwind label %terminate.lpad
invoke.cont240: ; preds = %ehcleanup239
br label %ehcleanup241
ehcleanup241: ; preds = %invoke.cont240, %lpad222
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp221) #2
br label %eh.resume
lpad244: ; preds = %invoke.cont256, %invoke.cont238
%178 = landingpad { i8*, i32 }
cleanup
%179 = extractvalue { i8*, i32 } %178, 0
store i8* %179, i8** %exn.slot, align 8
%180 = extractvalue { i8*, i32 } %178, 1
store i32 %180, i32* %ehselector.slot, align 4
br label %ehcleanup263
lpad246: ; preds = %invoke.cont245
%181 = landingpad { i8*, i32 }
cleanup
%182 = extractvalue { i8*, i32 } %181, 0
store i8* %182, i8** %exn.slot, align 8
%183 = extractvalue { i8*, i32 } %181, 1
store i32 %183, i32* %ehselector.slot, align 4
br label %ehcleanup261
lpad251: ; preds = %invoke.cont254, %invoke.cont247
%184 = landingpad { i8*, i32 }
cleanup
%185 = extractvalue { i8*, i32 } %184, 0
store i8* %185, i8** %exn.slot, align 8
%186 = extractvalue { i8*, i32 } %184, 1
store i32 %186, i32* %ehselector.slot, align 4
br label %ehcleanup259
lpad253: ; preds = %invoke.cont252
%187 = landingpad { i8*, i32 }
cleanup
%188 = extractvalue { i8*, i32 } %187, 0
store i8* %188, i8** %exn.slot, align 8
%189 = extractvalue { i8*, i32 } %187, 1
store i32 %189, i32* %ehselector.slot, align 4
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp249)
to label %invoke.cont258 unwind label %terminate.lpad
invoke.cont258: ; preds = %lpad253
br label %ehcleanup259
ehcleanup259: ; preds = %invoke.cont258, %lpad251
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp250) #2
br label %ehcleanup261
ehcleanup261: ; preds = %ehcleanup259, %lpad246
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(%"class.std::__cxx11::basic_string"* %ref.tmp242)
to label %invoke.cont262 unwind label %terminate.lpad
invoke.cont262: ; preds = %ehcleanup261
br label %ehcleanup263
ehcleanup263: ; preds = %invoke.cont262, %lpad244
call void @_ZNSaIcED1Ev(%"class.std::allocator"* %ref.tmp243) #2
br label %eh.resume
if.end: ; preds = %invoke.cont260, %entry
%190 = load i64, i64* %global_nnz, align 8
ret i64 %190
eh.resume: ; preds = %ehcleanup263, %ehcleanup241, %ehcleanup219, %ehcleanup197, %ehcleanup175, %ehcleanup153, %ehcleanup129, %ehcleanup107, %ehcleanup72, %ehcleanup50, %ehcleanup28
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val264 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val264
terminate.lpad: ; preds = %ehcleanup261, %lpad253, %ehcleanup239, %lpad231, %ehcleanup217, %lpad209, %ehcleanup195, %lpad187, %ehcleanup173, %lpad165, %ehcleanup151, %lpad143, %ehcleanup127, %lpad119, %ehcleanup105, %lpad97, %ehcleanup70, %lpad62, %ehcleanup48, %lpad40, %ehcleanup, %lpad20
%191 = landingpad { i8*, i32 }
catch i8* null
%192 = extractvalue { i8*, i32 } %191, 0
call void @__clang_call_terminate(i8* %192) #13
unreachable
}
; Function Attrs: noinline nounwind optnone uwtable
define linkonce_odr double @_ZNSt14numeric_limitsIdE7epsilonEv() #4 comdat align 2 {
entry:
ret double 0x3CB0000000000000
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE31rearrange_matrix_local_externalINS_9CSRMatrixIdiiEEEEvRT_(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%nrows = alloca i64, align 8
%tmp_row_offsets = alloca %"class.std::vector.15", align 8
%ref.tmp = alloca i32, align 4
%ref.tmp1 = alloca %"class.std::allocator.17", align 1
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%tmp_row_offsets_external = alloca %"class.std::vector.15", align 8
%ref.tmp3 = alloca i32, align 4
%ref.tmp4 = alloca %"class.std::allocator.17", align 1
%num_local_nz = alloca i32, align 4
%num_extern_nz = alloca i32, align 4
%i = alloca i64, align 8
%row_begin = alloca i32*, align 8
%row_end = alloca i32*, align 8
%coef_row_begin = alloca double*, align 8
%row_len = alloca i64, align 8
%row_iter = alloca i32*, align 8
%offset = alloca i32, align 4
%ext_cols = alloca %"class.std::vector.15", align 8
%ref.tmp90 = alloca i32, align 4
%ref.tmp91 = alloca %"class.std::allocator.17", align 1
%ext_coefs = alloca %"class.std::vector.20", align 8
%ref.tmp95 = alloca double, align 8
%ref.tmp96 = alloca %"class.std::allocator.22", align 1
%ext_offsets = alloca %"class.std::vector.15", align 8
%ref.tmp100 = alloca i32, align 4
%ref.tmp101 = alloca %"class.std::allocator.17", align 1
%offset104 = alloca i32, align 4
%i105 = alloca i64, align 8
%j = alloca i32, align 4
%i148 = alloca i64, align 8
%j155 = alloca i32, align 4
%i192 = alloca i32, align 4
%i222 = alloca i64, align 8
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%0 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %0, i32 0, i32 2
%call = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
store i64 %call, i64* %nrows, align 8
%1 = load i64, i64* %nrows, align 8
%mul = mul i64 %1, 2
store i32 0, i32* %ref.tmp, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp1) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %tmp_row_offsets, i64 %mul, i32* dereferenceable(4) %ref.tmp, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp1)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp1) #2
%2 = load i64, i64* %nrows, align 8
%mul2 = mul i64 %2, 2
store i32 0, i32* %ref.tmp3, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp4) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %mul2, i32* dereferenceable(4) %ref.tmp3, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp4)
to label %invoke.cont6 unwind label %lpad5
invoke.cont6: ; preds = %invoke.cont
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp4) #2
store i32 0, i32* %num_local_nz, align 4
store i32 0, i32* %num_extern_nz, align 4
store i64 0, i64* %i, align 8
br label %for.cond
for.cond: ; preds = %for.inc, %invoke.cont6
%3 = load i64, i64* %i, align 8
%4 = load i64, i64* %nrows, align 8
%cmp = icmp ult i64 %3, %4
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
%5 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_cols = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %5, i32 0, i32 5
%6 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %6, i32 0, i32 3
%7 = load i64, i64* %i, align 8
%call9 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets, i64 %7)
to label %invoke.cont8 unwind label %lpad7
invoke.cont8: ; preds = %for.body
%8 = load i32, i32* %call9, align 4
%conv = sext i32 %8 to i64
%call11 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %packed_cols, i64 %conv)
to label %invoke.cont10 unwind label %lpad7
invoke.cont10: ; preds = %invoke.cont8
store i32* %call11, i32** %row_begin, align 8
%9 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_cols12 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %9, i32 0, i32 5
%10 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets13 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %10, i32 0, i32 3
%11 = load i64, i64* %i, align 8
%add = add i64 %11, 1
%call15 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets13, i64 %add)
to label %invoke.cont14 unwind label %lpad7
invoke.cont14: ; preds = %invoke.cont10
%12 = load i32, i32* %call15, align 4
%conv16 = sext i32 %12 to i64
%call18 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %packed_cols12, i64 %conv16)
to label %invoke.cont17 unwind label %lpad7
invoke.cont17: ; preds = %invoke.cont14
store i32* %call18, i32** %row_end, align 8
%13 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_coefs = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %13, i32 0, i32 6
%14 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets19 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %14, i32 0, i32 3
%15 = load i64, i64* %i, align 8
%call21 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets19, i64 %15)
to label %invoke.cont20 unwind label %lpad7
invoke.cont20: ; preds = %invoke.cont17
%16 = load i32, i32* %call21, align 4
%conv22 = sext i32 %16 to i64
%call24 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %packed_coefs, i64 %conv22)
to label %invoke.cont23 unwind label %lpad7
invoke.cont23: ; preds = %invoke.cont20
store double* %call24, double** %coef_row_begin, align 8
%17 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets25 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %17, i32 0, i32 3
%18 = load i64, i64* %i, align 8
%call27 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets25, i64 %18)
to label %invoke.cont26 unwind label %lpad7
invoke.cont26: ; preds = %invoke.cont23
%19 = load i32, i32* %call27, align 4
%20 = load i64, i64* %i, align 8
%mul28 = mul i64 %20, 2
%call30 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %mul28)
to label %invoke.cont29 unwind label %lpad7
invoke.cont29: ; preds = %invoke.cont26
store i32 %19, i32* %call30, align 4
%21 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets31 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %21, i32 0, i32 3
%22 = load i64, i64* %i, align 8
%add32 = add i64 %22, 1
%call34 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets31, i64 %add32)
to label %invoke.cont33 unwind label %lpad7
invoke.cont33: ; preds = %invoke.cont29
%23 = load i32, i32* %call34, align 4
%24 = load i64, i64* %i, align 8
%mul35 = mul i64 %24, 2
%add36 = add i64 %mul35, 1
%call38 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %add36)
to label %invoke.cont37 unwind label %lpad7
invoke.cont37: ; preds = %invoke.cont33
store i32 %23, i32* %call38, align 4
%25 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets39 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %25, i32 0, i32 3
%26 = load i64, i64* %i, align 8
%add40 = add i64 %26, 1
%call42 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets39, i64 %add40)
to label %invoke.cont41 unwind label %lpad7
invoke.cont41: ; preds = %invoke.cont37
%27 = load i32, i32* %call42, align 4
%28 = load i64, i64* %i, align 8
%mul43 = mul i64 %28, 2
%call45 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %mul43)
to label %invoke.cont44 unwind label %lpad7
invoke.cont44: ; preds = %invoke.cont41
store i32 %27, i32* %call45, align 4
%29 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets46 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %29, i32 0, i32 3
%30 = load i64, i64* %i, align 8
%add47 = add i64 %30, 1
%call49 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets46, i64 %add47)
to label %invoke.cont48 unwind label %lpad7
invoke.cont48: ; preds = %invoke.cont44
%31 = load i32, i32* %call49, align 4
%32 = load i64, i64* %i, align 8
%mul50 = mul i64 %32, 2
%add51 = add i64 %mul50, 1
%call53 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %add51)
to label %invoke.cont52 unwind label %lpad7
invoke.cont52: ; preds = %invoke.cont48
store i32 %31, i32* %call53, align 4
%33 = load i32*, i32** %row_end, align 8
%34 = load i32*, i32** %row_begin, align 8
%sub.ptr.lhs.cast = ptrtoint i32* %33 to i64
%sub.ptr.rhs.cast = ptrtoint i32* %34 to i64
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 4
store i64 %sub.ptr.div, i64* %row_len, align 8
%35 = load i64, i64* %row_len, align 8
%36 = load i32*, i32** %row_begin, align 8
%37 = load double*, double** %coef_row_begin, align 8
invoke void @_ZN6miniFE20sort_with_companionsIidEEvlPT_PT0_(i64 %35, i32* %36, double* %37)
to label %invoke.cont54 unwind label %lpad7
invoke.cont54: ; preds = %invoke.cont52
%38 = load i32*, i32** %row_begin, align 8
%39 = load i32*, i32** %row_end, align 8
%call56 = invoke i32* @_ZSt11lower_boundIPimET_S1_S1_RKT0_(i32* %38, i32* %39, i64* dereferenceable(8) %nrows)
to label %invoke.cont55 unwind label %lpad7
invoke.cont55: ; preds = %invoke.cont54
store i32* %call56, i32** %row_iter, align 8
%40 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets57 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %40, i32 0, i32 3
%41 = load i64, i64* %i, align 8
%call59 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets57, i64 %41)
to label %invoke.cont58 unwind label %lpad7
invoke.cont58: ; preds = %invoke.cont55
%42 = load i32, i32* %call59, align 4
%43 = load i32*, i32** %row_iter, align 8
%idx.ext = sext i32 %42 to i64
%add.ptr = getelementptr inbounds i32, i32* %43, i64 %idx.ext
%44 = load i32*, i32** %row_begin, align 8
%sub.ptr.lhs.cast60 = ptrtoint i32* %add.ptr to i64
%sub.ptr.rhs.cast61 = ptrtoint i32* %44 to i64
%sub.ptr.sub62 = sub i64 %sub.ptr.lhs.cast60, %sub.ptr.rhs.cast61
%sub.ptr.div63 = sdiv exact i64 %sub.ptr.sub62, 4
%conv64 = trunc i64 %sub.ptr.div63 to i32
store i32 %conv64, i32* %offset, align 4
%45 = load i32, i32* %offset, align 4
%46 = load i64, i64* %i, align 8
%mul65 = mul i64 %46, 2
%add66 = add i64 %mul65, 1
%call68 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %add66)
to label %invoke.cont67 unwind label %lpad7
invoke.cont67: ; preds = %invoke.cont58
store i32 %45, i32* %call68, align 4
%47 = load i32, i32* %offset, align 4
%48 = load i64, i64* %i, align 8
%mul69 = mul i64 %48, 2
%call71 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %mul69)
to label %invoke.cont70 unwind label %lpad7
invoke.cont70: ; preds = %invoke.cont67
store i32 %47, i32* %call71, align 4
%49 = load i64, i64* %i, align 8
%mul72 = mul i64 %49, 2
%add73 = add i64 %mul72, 1
%call75 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %add73)
to label %invoke.cont74 unwind label %lpad7
invoke.cont74: ; preds = %invoke.cont70
%50 = load i32, i32* %call75, align 4
%51 = load i64, i64* %i, align 8
%mul76 = mul i64 %51, 2
%call78 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %mul76)
to label %invoke.cont77 unwind label %lpad7
invoke.cont77: ; preds = %invoke.cont74
%52 = load i32, i32* %call78, align 4
%sub = sub nsw i32 %50, %52
%53 = load i32, i32* %num_local_nz, align 4
%add79 = add nsw i32 %53, %sub
store i32 %add79, i32* %num_local_nz, align 4
%54 = load i64, i64* %i, align 8
%mul80 = mul i64 %54, 2
%add81 = add i64 %mul80, 1
%call83 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %add81)
to label %invoke.cont82 unwind label %lpad7
invoke.cont82: ; preds = %invoke.cont77
%55 = load i32, i32* %call83, align 4
%56 = load i64, i64* %i, align 8
%mul84 = mul i64 %56, 2
%call86 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %mul84)
to label %invoke.cont85 unwind label %lpad7
invoke.cont85: ; preds = %invoke.cont82
%57 = load i32, i32* %call86, align 4
%sub87 = sub nsw i32 %55, %57
%58 = load i32, i32* %num_extern_nz, align 4
%add88 = add nsw i32 %58, %sub87
store i32 %add88, i32* %num_extern_nz, align 4
br label %for.inc
for.inc: ; preds = %invoke.cont85
%59 = load i64, i64* %i, align 8
%inc = add i64 %59, 1
store i64 %inc, i64* %i, align 8
br label %for.cond
lpad: ; preds = %entry
%60 = landingpad { i8*, i32 }
cleanup
%61 = extractvalue { i8*, i32 } %60, 0
store i8* %61, i8** %exn.slot, align 8
%62 = extractvalue { i8*, i32 } %60, 1
store i32 %62, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp1) #2
br label %eh.resume
lpad5: ; preds = %invoke.cont
%63 = landingpad { i8*, i32 }
cleanup
%64 = extractvalue { i8*, i32 } %63, 0
store i8* %64, i8** %exn.slot, align 8
%65 = extractvalue { i8*, i32 } %63, 1
store i32 %65, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp4) #2
br label %ehcleanup248
lpad7: ; preds = %invoke.cont239, %invoke.cont82, %invoke.cont77, %invoke.cont74, %invoke.cont70, %invoke.cont67, %invoke.cont58, %invoke.cont55, %invoke.cont54, %invoke.cont52, %invoke.cont48, %invoke.cont44, %invoke.cont41, %invoke.cont37, %invoke.cont33, %invoke.cont29, %invoke.cont26, %invoke.cont23, %invoke.cont20, %invoke.cont17, %invoke.cont14, %invoke.cont10, %invoke.cont8, %for.body
%66 = landingpad { i8*, i32 }
cleanup
%67 = extractvalue { i8*, i32 } %66, 0
store i8* %67, i8** %exn.slot, align 8
%68 = extractvalue { i8*, i32 } %66, 1
store i32 %68, i32* %ehselector.slot, align 4
br label %ehcleanup246
for.end: ; preds = %for.cond
%69 = load i32, i32* %num_extern_nz, align 4
%conv89 = sext i32 %69 to i64
store i32 0, i32* %ref.tmp90, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp91) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %ext_cols, i64 %conv89, i32* dereferenceable(4) %ref.tmp90, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp91)
to label %invoke.cont93 unwind label %lpad92
invoke.cont93: ; preds = %for.end
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp91) #2
%70 = load i32, i32* %num_extern_nz, align 4
%conv94 = sext i32 %70 to i64
store double 0.000000e+00, double* %ref.tmp95, align 8
call void @_ZNSaIdEC2Ev(%"class.std::allocator.22"* %ref.tmp96) #2
invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(%"class.std::vector.20"* %ext_coefs, i64 %conv94, double* dereferenceable(8) %ref.tmp95, %"class.std::allocator.22"* dereferenceable(1) %ref.tmp96)
to label %invoke.cont98 unwind label %lpad97
invoke.cont98: ; preds = %invoke.cont93
call void @_ZNSaIdED2Ev(%"class.std::allocator.22"* %ref.tmp96) #2
%71 = load i64, i64* %nrows, align 8
%add99 = add i64 %71, 1
store i32 0, i32* %ref.tmp100, align 4
call void @_ZNSaIiEC2Ev(%"class.std::allocator.17"* %ref.tmp101) #2
invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(%"class.std::vector.15"* %ext_offsets, i64 %add99, i32* dereferenceable(4) %ref.tmp100, %"class.std::allocator.17"* dereferenceable(1) %ref.tmp101)
to label %invoke.cont103 unwind label %lpad102
invoke.cont103: ; preds = %invoke.cont98
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp101) #2
store i32 0, i32* %offset104, align 4
store i64 0, i64* %i105, align 8
br label %for.cond106
for.cond106: ; preds = %for.inc140, %invoke.cont103
%72 = load i64, i64* %i105, align 8
%73 = load i64, i64* %nrows, align 8
%cmp107 = icmp ult i64 %72, %73
br i1 %cmp107, label %for.body108, label %for.end142
for.body108: ; preds = %for.cond106
%74 = load i32, i32* %offset104, align 4
%75 = load i64, i64* %i105, align 8
%call111 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %ext_offsets, i64 %75)
to label %invoke.cont110 unwind label %lpad109
invoke.cont110: ; preds = %for.body108
store i32 %74, i32* %call111, align 4
%76 = load i64, i64* %i105, align 8
%mul112 = mul i64 %76, 2
%call114 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %mul112)
to label %invoke.cont113 unwind label %lpad109
invoke.cont113: ; preds = %invoke.cont110
%77 = load i32, i32* %call114, align 4
store i32 %77, i32* %j, align 4
br label %for.cond115
for.cond115: ; preds = %for.inc137, %invoke.cont113
%78 = load i32, i32* %j, align 4
%79 = load i64, i64* %i105, align 8
%mul116 = mul i64 %79, 2
%add117 = add i64 %mul116, 1
%call119 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets_external, i64 %add117)
to label %invoke.cont118 unwind label %lpad109
invoke.cont118: ; preds = %for.cond115
%80 = load i32, i32* %call119, align 4
%cmp120 = icmp slt i32 %78, %80
br i1 %cmp120, label %for.body121, label %for.end139
for.body121: ; preds = %invoke.cont118
%81 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_cols122 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %81, i32 0, i32 5
%82 = load i32, i32* %j, align 4
%conv123 = sext i32 %82 to i64
%call125 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %packed_cols122, i64 %conv123)
to label %invoke.cont124 unwind label %lpad109
invoke.cont124: ; preds = %for.body121
%83 = load i32, i32* %call125, align 4
%84 = load i32, i32* %offset104, align 4
%conv126 = sext i32 %84 to i64
%call128 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %ext_cols, i64 %conv126)
to label %invoke.cont127 unwind label %lpad109
invoke.cont127: ; preds = %invoke.cont124
store i32 %83, i32* %call128, align 4
%85 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_coefs129 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %85, i32 0, i32 6
%86 = load i32, i32* %j, align 4
%conv130 = sext i32 %86 to i64
%call132 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %packed_coefs129, i64 %conv130)
to label %invoke.cont131 unwind label %lpad109
invoke.cont131: ; preds = %invoke.cont127
%87 = load double, double* %call132, align 8
%88 = load i32, i32* %offset104, align 4
%inc133 = add nsw i32 %88, 1
store i32 %inc133, i32* %offset104, align 4
%conv134 = sext i32 %88 to i64
%call136 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %ext_coefs, i64 %conv134)
to label %invoke.cont135 unwind label %lpad109
invoke.cont135: ; preds = %invoke.cont131
store double %87, double* %call136, align 8
br label %for.inc137
for.inc137: ; preds = %invoke.cont135
%89 = load i32, i32* %j, align 4
%inc138 = add nsw i32 %89, 1
store i32 %inc138, i32* %j, align 4
br label %for.cond115
lpad92: ; preds = %for.end
%90 = landingpad { i8*, i32 }
cleanup
%91 = extractvalue { i8*, i32 } %90, 0
store i8* %91, i8** %exn.slot, align 8
%92 = extractvalue { i8*, i32 } %90, 1
store i32 %92, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp91) #2
br label %ehcleanup246
lpad97: ; preds = %invoke.cont93
%93 = landingpad { i8*, i32 }
cleanup
%94 = extractvalue { i8*, i32 } %93, 0
store i8* %94, i8** %exn.slot, align 8
%95 = extractvalue { i8*, i32 } %93, 1
store i32 %95, i32* %ehselector.slot, align 4
call void @_ZNSaIdED2Ev(%"class.std::allocator.22"* %ref.tmp96) #2
br label %ehcleanup242
lpad102: ; preds = %invoke.cont98
%96 = landingpad { i8*, i32 }
cleanup
%97 = extractvalue { i8*, i32 } %96, 0
store i8* %97, i8** %exn.slot, align 8
%98 = extractvalue { i8*, i32 } %96, 1
store i32 %98, i32* %ehselector.slot, align 4
call void @_ZNSaIiED2Ev(%"class.std::allocator.17"* %ref.tmp101) #2
br label %ehcleanup
lpad109: ; preds = %invoke.cont226, %for.body225, %for.end219, %invoke.cont211, %invoke.cont207, %invoke.cont203, %for.body200, %for.cond193, %for.end188, %invoke.cont176, %invoke.cont172, %invoke.cont168, %for.body165, %for.cond159, %invoke.cont153, %for.body151, %invoke.cont143, %for.end142, %invoke.cont131, %invoke.cont127, %invoke.cont124, %for.body121, %for.cond115, %invoke.cont110, %for.body108
%99 = landingpad { i8*, i32 }
cleanup
%100 = extractvalue { i8*, i32 } %99, 0
store i8* %100, i8** %exn.slot, align 8
%101 = extractvalue { i8*, i32 } %99, 1
store i32 %101, i32* %ehselector.slot, align 4
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %ext_offsets)
to label %invoke.cont237 unwind label %terminate.lpad
for.end139: ; preds = %invoke.cont118
br label %for.inc140
for.inc140: ; preds = %for.end139
%102 = load i64, i64* %i105, align 8
%inc141 = add i64 %102, 1
store i64 %inc141, i64* %i105, align 8
br label %for.cond106
for.end142: ; preds = %for.cond106
%103 = load i32, i32* %offset104, align 4
%104 = load i64, i64* %nrows, align 8
%call144 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %ext_offsets, i64 %104)
to label %invoke.cont143 unwind label %lpad109
invoke.cont143: ; preds = %for.end142
store i32 %103, i32* %call144, align 4
%105 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets145 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %105, i32 0, i32 3
%106 = load i64, i64* %nrows, align 8
%add146 = add i64 %106, 1
invoke void @_ZNSt6vectorIiSaIiEE6resizeEmi(%"class.std::vector.15"* %row_offsets145, i64 %add146, i32 0)
to label %invoke.cont147 unwind label %lpad109
invoke.cont147: ; preds = %invoke.cont143
store i32 0, i32* %offset104, align 4
store i64 0, i64* %i148, align 8
br label %for.cond149
for.cond149: ; preds = %for.inc186, %invoke.cont147
%107 = load i64, i64* %i148, align 8
%108 = load i64, i64* %nrows, align 8
%cmp150 = icmp ult i64 %107, %108
br i1 %cmp150, label %for.body151, label %for.end188
for.body151: ; preds = %for.cond149
%109 = load i32, i32* %offset104, align 4
%110 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets152 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %110, i32 0, i32 3
%111 = load i64, i64* %i148, align 8
%call154 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets152, i64 %111)
to label %invoke.cont153 unwind label %lpad109
invoke.cont153: ; preds = %for.body151
store i32 %109, i32* %call154, align 4
%112 = load i64, i64* %i148, align 8
%mul156 = mul i64 %112, 2
%call158 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %mul156)
to label %invoke.cont157 unwind label %lpad109
invoke.cont157: ; preds = %invoke.cont153
%113 = load i32, i32* %call158, align 4
store i32 %113, i32* %j155, align 4
br label %for.cond159
for.cond159: ; preds = %for.inc183, %invoke.cont157
%114 = load i32, i32* %j155, align 4
%115 = load i64, i64* %i148, align 8
%mul160 = mul i64 %115, 2
%add161 = add i64 %mul160, 1
%call163 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %tmp_row_offsets, i64 %add161)
to label %invoke.cont162 unwind label %lpad109
invoke.cont162: ; preds = %for.cond159
%116 = load i32, i32* %call163, align 4
%cmp164 = icmp slt i32 %114, %116
br i1 %cmp164, label %for.body165, label %for.end185
for.body165: ; preds = %invoke.cont162
%117 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_cols166 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %117, i32 0, i32 5
%118 = load i32, i32* %j155, align 4
%conv167 = sext i32 %118 to i64
%call169 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %packed_cols166, i64 %conv167)
to label %invoke.cont168 unwind label %lpad109
invoke.cont168: ; preds = %for.body165
%119 = load i32, i32* %call169, align 4
%120 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_cols170 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %120, i32 0, i32 5
%121 = load i32, i32* %offset104, align 4
%conv171 = sext i32 %121 to i64
%call173 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %packed_cols170, i64 %conv171)
to label %invoke.cont172 unwind label %lpad109
invoke.cont172: ; preds = %invoke.cont168
store i32 %119, i32* %call173, align 4
%122 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_coefs174 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %122, i32 0, i32 6
%123 = load i32, i32* %j155, align 4
%conv175 = sext i32 %123 to i64
%call177 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %packed_coefs174, i64 %conv175)
to label %invoke.cont176 unwind label %lpad109
invoke.cont176: ; preds = %invoke.cont172
%124 = load double, double* %call177, align 8
%125 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_coefs178 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %125, i32 0, i32 6
%126 = load i32, i32* %offset104, align 4
%inc179 = add nsw i32 %126, 1
store i32 %inc179, i32* %offset104, align 4
%conv180 = sext i32 %126 to i64
%call182 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %packed_coefs178, i64 %conv180)
to label %invoke.cont181 unwind label %lpad109
invoke.cont181: ; preds = %invoke.cont176
store double %124, double* %call182, align 8
br label %for.inc183
for.inc183: ; preds = %invoke.cont181
%127 = load i32, i32* %j155, align 4
%inc184 = add nsw i32 %127, 1
store i32 %inc184, i32* %j155, align 4
br label %for.cond159
for.end185: ; preds = %invoke.cont162
br label %for.inc186
for.inc186: ; preds = %for.end185
%128 = load i64, i64* %i148, align 8
%inc187 = add i64 %128, 1
store i64 %inc187, i64* %i148, align 8
br label %for.cond149
for.end188: ; preds = %for.cond149
%129 = load i32, i32* %offset104, align 4
%130 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets189 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %130, i32 0, i32 3
%131 = load i64, i64* %nrows, align 8
%call191 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets189, i64 %131)
to label %invoke.cont190 unwind label %lpad109
invoke.cont190: ; preds = %for.end188
store i32 %129, i32* %call191, align 4
%132 = load i32, i32* %offset104, align 4
store i32 %132, i32* %i192, align 4
br label %for.cond193
for.cond193: ; preds = %for.inc217, %invoke.cont190
%133 = load i32, i32* %i192, align 4
%conv194 = sext i32 %133 to i64
%134 = load i32, i32* %offset104, align 4
%conv195 = sext i32 %134 to i64
%call197 = invoke i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %ext_cols)
to label %invoke.cont196 unwind label %lpad109
invoke.cont196: ; preds = %for.cond193
%add198 = add i64 %conv195, %call197
%cmp199 = icmp ult i64 %conv194, %add198
br i1 %cmp199, label %for.body200, label %for.end219
for.body200: ; preds = %invoke.cont196
%135 = load i32, i32* %i192, align 4
%136 = load i32, i32* %offset104, align 4
%sub201 = sub nsw i32 %135, %136
%conv202 = sext i32 %sub201 to i64
%call204 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %ext_cols, i64 %conv202)
to label %invoke.cont203 unwind label %lpad109
invoke.cont203: ; preds = %for.body200
%137 = load i32, i32* %call204, align 4
%138 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_cols205 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %138, i32 0, i32 5
%139 = load i32, i32* %i192, align 4
%conv206 = sext i32 %139 to i64
%call208 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %packed_cols205, i64 %conv206)
to label %invoke.cont207 unwind label %lpad109
invoke.cont207: ; preds = %invoke.cont203
store i32 %137, i32* %call208, align 4
%140 = load i32, i32* %i192, align 4
%141 = load i32, i32* %offset104, align 4
%sub209 = sub nsw i32 %140, %141
%conv210 = sext i32 %sub209 to i64
%call212 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %ext_coefs, i64 %conv210)
to label %invoke.cont211 unwind label %lpad109
invoke.cont211: ; preds = %invoke.cont207
%142 = load double, double* %call212, align 8
%143 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%packed_coefs213 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %143, i32 0, i32 6
%144 = load i32, i32* %i192, align 4
%conv214 = sext i32 %144 to i64
%call216 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %packed_coefs213, i64 %conv214)
to label %invoke.cont215 unwind label %lpad109
invoke.cont215: ; preds = %invoke.cont211
store double %142, double* %call216, align 8
br label %for.inc217
for.inc217: ; preds = %invoke.cont215
%145 = load i32, i32* %i192, align 4
%inc218 = add nsw i32 %145, 1
store i32 %inc218, i32* %i192, align 4
br label %for.cond193
for.end219: ; preds = %invoke.cont196
%146 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets_external = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %146, i32 0, i32 4
%147 = load i64, i64* %nrows, align 8
%add220 = add i64 %147, 1
invoke void @_ZNSt6vectorIiSaIiEE6resizeEmi(%"class.std::vector.15"* %row_offsets_external, i64 %add220, i32 0)
to label %invoke.cont221 unwind label %lpad109
invoke.cont221: ; preds = %for.end219
store i64 0, i64* %i222, align 8
br label %for.cond223
for.cond223: ; preds = %for.inc232, %invoke.cont221
%148 = load i64, i64* %i222, align 8
%149 = load i64, i64* %nrows, align 8
%cmp224 = icmp ule i64 %148, %149
br i1 %cmp224, label %for.body225, label %for.end234
for.body225: ; preds = %for.cond223
%150 = load i64, i64* %i222, align 8
%call227 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %ext_offsets, i64 %150)
to label %invoke.cont226 unwind label %lpad109
invoke.cont226: ; preds = %for.body225
%151 = load i32, i32* %call227, align 4
%152 = load i32, i32* %offset104, align 4
%add228 = add nsw i32 %151, %152
%153 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%row_offsets_external229 = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %153, i32 0, i32 4
%154 = load i64, i64* %i222, align 8
%call231 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %row_offsets_external229, i64 %154)
to label %invoke.cont230 unwind label %lpad109
invoke.cont230: ; preds = %invoke.cont226
store i32 %add228, i32* %call231, align 4
br label %for.inc232
for.inc232: ; preds = %invoke.cont230
%155 = load i64, i64* %i222, align 8
%inc233 = add i64 %155, 1
store i64 %inc233, i64* %i222, align 8
br label %for.cond223
for.end234: ; preds = %for.cond223
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %ext_offsets)
to label %invoke.cont236 unwind label %lpad235
invoke.cont236: ; preds = %for.end234
invoke void @_ZNSt6vectorIdSaIdEED2Ev(%"class.std::vector.20"* %ext_coefs)
to label %invoke.cont239 unwind label %lpad238
invoke.cont239: ; preds = %invoke.cont236
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %ext_cols)
to label %invoke.cont241 unwind label %lpad7
invoke.cont241: ; preds = %invoke.cont239
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %tmp_row_offsets_external)
to label %invoke.cont245 unwind label %lpad244
invoke.cont245: ; preds = %invoke.cont241
call void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %tmp_row_offsets)
ret void
lpad235: ; preds = %for.end234
%156 = landingpad { i8*, i32 }
cleanup
%157 = extractvalue { i8*, i32 } %156, 0
store i8* %157, i8** %exn.slot, align 8
%158 = extractvalue { i8*, i32 } %156, 1
store i32 %158, i32* %ehselector.slot, align 4
br label %ehcleanup
invoke.cont237: ; preds = %lpad109
br label %ehcleanup
lpad238: ; preds = %invoke.cont236
%159 = landingpad { i8*, i32 }
cleanup
%160 = extractvalue { i8*, i32 } %159, 0
store i8* %160, i8** %exn.slot, align 8
%161 = extractvalue { i8*, i32 } %159, 1
store i32 %161, i32* %ehselector.slot, align 4
br label %ehcleanup242
ehcleanup: ; preds = %invoke.cont237, %lpad235, %lpad102
invoke void @_ZNSt6vectorIdSaIdEED2Ev(%"class.std::vector.20"* %ext_coefs)
to label %invoke.cont240 unwind label %terminate.lpad
invoke.cont240: ; preds = %ehcleanup
br label %ehcleanup242
ehcleanup242: ; preds = %invoke.cont240, %lpad238, %lpad97
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %ext_cols)
to label %invoke.cont243 unwind label %terminate.lpad
invoke.cont243: ; preds = %ehcleanup242
br label %ehcleanup246
lpad244: ; preds = %invoke.cont241
%162 = landingpad { i8*, i32 }
cleanup
%163 = extractvalue { i8*, i32 } %162, 0
store i8* %163, i8** %exn.slot, align 8
%164 = extractvalue { i8*, i32 } %162, 1
store i32 %164, i32* %ehselector.slot, align 4
br label %ehcleanup248
ehcleanup246: ; preds = %invoke.cont243, %lpad92, %lpad7
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %tmp_row_offsets_external)
to label %invoke.cont247 unwind label %terminate.lpad
invoke.cont247: ; preds = %ehcleanup246
br label %ehcleanup248
ehcleanup248: ; preds = %invoke.cont247, %lpad244, %lpad5
invoke void @_ZNSt6vectorIiSaIiEED2Ev(%"class.std::vector.15"* %tmp_row_offsets)
to label %invoke.cont249 unwind label %terminate.lpad
invoke.cont249: ; preds = %ehcleanup248
br label %eh.resume
eh.resume: ; preds = %invoke.cont249, %lpad
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val250 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val250
terminate.lpad: ; preds = %ehcleanup248, %ehcleanup246, %ehcleanup242, %ehcleanup, %lpad109
%165 = landingpad { i8*, i32 }
catch i8* null
%166 = extractvalue { i8*, i32 } %165, 0
call void @__clang_call_terminate(i8* %166) #13
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_14matvec_overlapIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, %"struct.miniFE::Vector"* dereferenceable(32) %x, i32 %max_iter, double* dereferenceable(8) %tolerance, i32* dereferenceable(4) %num_iters, double* dereferenceable(8) %normr, double* %my_cg_times) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%matvec = alloca %"struct.miniFE::matvec_overlap", align 1
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%b.addr = alloca %"struct.miniFE::Vector"*, align 8
%x.addr = alloca %"struct.miniFE::Vector"*, align 8
%max_iter.addr = alloca i32, align 4
%tolerance.addr = alloca double*, align 8
%num_iters.addr = alloca i32*, align 8
%normr.addr = alloca double*, align 8
%my_cg_times.addr = alloca double*, align 8
%t0 = alloca double, align 8
%tWAXPY = alloca double, align 8
%tDOT = alloca double, align 8
%tMATVEC = alloca double, align 8
%tMATVECDOT = alloca double, align 8
%total_time = alloca double, align 8
%myproc = alloca i32, align 4
%nrows = alloca i64, align 8
%ncols = alloca i32, align 4
%r = alloca %"struct.miniFE::Vector", align 8
%p = alloca %"struct.miniFE::Vector", align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%Ap = alloca %"struct.miniFE::Vector", align 8
%rtrans = alloca double, align 8
%oldrtrans = alloca double, align 8
%print_freq = alloca i32, align 4
%one = alloca double, align 8
%zero = alloca double, align 8
%brkdown_tol = alloca double, align 8
%k = alloca i32, align 4
%beta = alloca double, align 8
%alpha = alloca double, align 8
%p_ap_dot = alloca double, align 8
%cleanup.dest.slot = alloca i32
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
store %"struct.miniFE::Vector"* %b, %"struct.miniFE::Vector"** %b.addr, align 8
store %"struct.miniFE::Vector"* %x, %"struct.miniFE::Vector"** %x.addr, align 8
store i32 %max_iter, i32* %max_iter.addr, align 4
store double* %tolerance, double** %tolerance.addr, align 8
store i32* %num_iters, i32** %num_iters.addr, align 8
store double* %normr, double** %normr.addr, align 8
store double* %my_cg_times, double** %my_cg_times.addr, align 8
store double 0.000000e+00, double* %t0, align 8
store double 0.000000e+00, double* %tWAXPY, align 8
store double 0.000000e+00, double* %tDOT, align 8
store double 0.000000e+00, double* %tMATVEC, align 8
store double 0.000000e+00, double* %tMATVECDOT, align 8
%call = call double @_ZN6miniFE7mytimerEv()
store double %call, double* %total_time, align 8
store i32 0, i32* %myproc, align 4
%0 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%has_local_indices = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %0, i32 0, i32 0
%1 = load i8, i8* %has_local_indices, align 8
%tobool = trunc i8 %1 to i1
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%call1 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cerr, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.109, i32 0, i32 0))
%call2 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call1, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.110, i32 0, i32 0))
%call3 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call2, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
br label %cleanup.cont
if.end: ; preds = %entry
%2 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %2, i32 0, i32 2
%call4 = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
store i64 %call4, i64* %nrows, align 8
%3 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%num_cols = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %3, i32 0, i32 7
%4 = load i32, i32* %num_cols, align 8
store i32 %4, i32* %ncols, align 4
%5 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%startIndex = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %5, i32 0, i32 0
%6 = load i32, i32* %startIndex, align 8
%7 = load i64, i64* %nrows, align 8
%conv = trunc i64 %7 to i32
call void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %r, i32 %6, i32 %conv)
%8 = load i32, i32* %ncols, align 4
invoke void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %p, i32 0, i32 %8)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.end
%9 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%startIndex5 = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %9, i32 0, i32 0
%10 = load i32, i32* %startIndex5, align 8
%11 = load i64, i64* %nrows, align 8
%conv6 = trunc i64 %11 to i32
invoke void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %Ap, i32 %10, i32 %conv6)
to label %invoke.cont8 unwind label %lpad7
invoke.cont8: ; preds = %invoke.cont
%12 = load double*, double** %normr.addr, align 8
store double 0.000000e+00, double* %12, align 8
store double 0.000000e+00, double* %rtrans, align 8
store double 0.000000e+00, double* %oldrtrans, align 8
%13 = load i32, i32* %max_iter.addr, align 4
%div = sdiv i32 %13, 10
store i32 %div, i32* %print_freq, align 4
%14 = load i32, i32* %print_freq, align 4
%cmp = icmp sgt i32 %14, 50
br i1 %cmp, label %if.then9, label %if.end10
if.then9: ; preds = %invoke.cont8
store i32 50, i32* %print_freq, align 4
br label %if.end10
lpad: ; preds = %invoke.cont151, %if.end
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
br label %ehcleanup157
lpad7: ; preds = %cleanup, %invoke.cont
%18 = landingpad { i8*, i32 }
cleanup
%19 = extractvalue { i8*, i32 } %18, 0
store i8* %19, i8** %exn.slot, align 8
%20 = extractvalue { i8*, i32 } %18, 1
store i32 %20, i32* %ehselector.slot, align 4
br label %ehcleanup
if.end10: ; preds = %if.then9, %invoke.cont8
%21 = load i32, i32* %print_freq, align 4
%cmp11 = icmp slt i32 %21, 1
br i1 %cmp11, label %if.then12, label %if.end13
if.then12: ; preds = %if.end10
store i32 1, i32* %print_freq, align 4
br label %if.end13
if.end13: ; preds = %if.then12, %if.end10
store double 1.000000e+00, double* %one, align 8
store double 0.000000e+00, double* %zero, align 8
%call16 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont15 unwind label %lpad14
invoke.cont15: ; preds = %if.end13
store double %call16, double* %t0, align 8
%22 = load double, double* %one, align 8
%23 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
%24 = load double, double* %zero, align 8
%25 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
invoke void @_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_(double %22, %"struct.miniFE::Vector"* dereferenceable(32) %23, double %24, %"struct.miniFE::Vector"* dereferenceable(32) %25, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont17 unwind label %lpad14
invoke.cont17: ; preds = %invoke.cont15
%call19 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont18 unwind label %lpad14
invoke.cont18: ; preds = %invoke.cont17
%26 = load double, double* %t0, align 8
%sub = fsub double %call19, %26
%27 = load double, double* %tWAXPY, align 8
%add = fadd double %27, %sub
store double %add, double* %tWAXPY, align 8
%call21 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont20 unwind label %lpad14
invoke.cont20: ; preds = %invoke.cont18
store double %call21, double* %t0, align 8
%28 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
invoke void @_ZN6miniFE14matvec_overlapINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEclERS2_RS4_S7_(%"struct.miniFE::matvec_overlap"* %matvec, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %28, %"struct.miniFE::Vector"* dereferenceable(32) %p, %"struct.miniFE::Vector"* dereferenceable(32) %Ap)
to label %invoke.cont22 unwind label %lpad14
invoke.cont22: ; preds = %invoke.cont20
%call24 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont23 unwind label %lpad14
invoke.cont23: ; preds = %invoke.cont22
%29 = load double, double* %t0, align 8
%sub25 = fsub double %call24, %29
%30 = load double, double* %tMATVEC, align 8
%add26 = fadd double %30, %sub25
store double %add26, double* %tMATVEC, align 8
%call28 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont27 unwind label %lpad14
invoke.cont27: ; preds = %invoke.cont23
store double %call28, double* %t0, align 8
%31 = load double, double* %one, align 8
%32 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%33 = load double, double* %one, align 8
%sub29 = fsub double -0.000000e+00, %33
invoke void @_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_(double %31, %"struct.miniFE::Vector"* dereferenceable(32) %32, double %sub29, %"struct.miniFE::Vector"* dereferenceable(32) %Ap, %"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont30 unwind label %lpad14
invoke.cont30: ; preds = %invoke.cont27
%call32 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont31 unwind label %lpad14
invoke.cont31: ; preds = %invoke.cont30
%34 = load double, double* %t0, align 8
%sub33 = fsub double %call32, %34
%35 = load double, double* %tWAXPY, align 8
%add34 = fadd double %35, %sub33
store double %add34, double* %tWAXPY, align 8
%call36 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont35 unwind label %lpad14
invoke.cont35: ; preds = %invoke.cont31
store double %call36, double* %t0, align 8
%call38 = invoke double @_ZN6miniFE3dotINS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_S9_(%"struct.miniFE::Vector"* dereferenceable(32) %r, %"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont37 unwind label %lpad14
invoke.cont37: ; preds = %invoke.cont35
store double %call38, double* %rtrans, align 8
%call40 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont39 unwind label %lpad14
invoke.cont39: ; preds = %invoke.cont37
%36 = load double, double* %t0, align 8
%sub41 = fsub double %call40, %36
%37 = load double, double* %tDOT, align 8
%add42 = fadd double %37, %sub41
store double %add42, double* %tDOT, align 8
%38 = load double, double* %rtrans, align 8
%call43 = call double @sqrt(double %38) #2
%39 = load double*, double** %normr.addr, align 8
store double %call43, double* %39, align 8
%40 = load i32, i32* %myproc, align 4
%cmp44 = icmp eq i32 %40, 0
br i1 %cmp44, label %if.then45, label %if.end52
if.then45: ; preds = %invoke.cont39
%call47 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.111, i32 0, i32 0))
to label %invoke.cont46 unwind label %lpad14
invoke.cont46: ; preds = %if.then45
%41 = load double*, double** %normr.addr, align 8
%42 = load double, double* %41, align 8
%call49 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call47, double %42)
to label %invoke.cont48 unwind label %lpad14
invoke.cont48: ; preds = %invoke.cont46
%call51 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call49, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont50 unwind label %lpad14
invoke.cont50: ; preds = %invoke.cont48
br label %if.end52
lpad14: ; preds = %for.end, %invoke.cont138, %invoke.cont136, %invoke.cont134, %if.end132, %invoke.cont122, %invoke.cont120, %if.then119, %lor.lhs.false116, %invoke.cont107, %invoke.cont105, %invoke.cont101, %invoke.cont100, %invoke.cont98, %if.end97, %invoke.cont93, %invoke.cont91, %invoke.cont89, %invoke.cont87, %if.then86, %invoke.cont76, %invoke.cont74, %invoke.cont69, %invoke.cont67, %invoke.cont65, %if.else, %invoke.cont60, %invoke.cont58, %if.then57, %invoke.cont48, %invoke.cont46, %if.then45, %invoke.cont37, %invoke.cont35, %invoke.cont31, %invoke.cont30, %invoke.cont27, %invoke.cont23, %invoke.cont22, %invoke.cont20, %invoke.cont18, %invoke.cont17, %invoke.cont15, %if.end13
%43 = landingpad { i8*, i32 }
cleanup
%44 = extractvalue { i8*, i32 } %43, 0
store i8* %44, i8** %exn.slot, align 8
%45 = extractvalue { i8*, i32 } %43, 1
store i32 %45, i32* %ehselector.slot, align 4
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %Ap)
to label %invoke.cont152 unwind label %terminate.lpad
if.end52: ; preds = %invoke.cont50, %invoke.cont39
%call53 = call double @_ZNSt14numeric_limitsIdE7epsilonEv() #2
store double %call53, double* %brkdown_tol, align 8
store i32 1, i32* %k, align 4
br label %for.cond
for.cond: ; preds = %for.inc, %if.end52
%46 = load i32, i32* %k, align 4
%47 = load i32, i32* %max_iter.addr, align 4
%cmp54 = icmp sle i32 %46, %47
br i1 %cmp54, label %land.rhs, label %land.end
land.rhs: ; preds = %for.cond
%48 = load double*, double** %normr.addr, align 8
%49 = load double, double* %48, align 8
%50 = load double*, double** %tolerance.addr, align 8
%51 = load double, double* %50, align 8
%cmp55 = fcmp ogt double %49, %51
br label %land.end
land.end: ; preds = %land.rhs, %for.cond
%52 = phi i1 [ false, %for.cond ], [ %cmp55, %land.rhs ]
br i1 %52, label %for.body, label %for.end
for.body: ; preds = %land.end
%53 = load i32, i32* %k, align 4
%cmp56 = icmp eq i32 %53, 1
br i1 %cmp56, label %if.then57, label %if.else
if.then57: ; preds = %for.body
%call59 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont58 unwind label %lpad14
invoke.cont58: ; preds = %if.then57
store double %call59, double* %t0, align 8
%54 = load double, double* %one, align 8
%55 = load double, double* %zero, align 8
invoke void @_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_(double %54, %"struct.miniFE::Vector"* dereferenceable(32) %r, double %55, %"struct.miniFE::Vector"* dereferenceable(32) %r, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont60 unwind label %lpad14
invoke.cont60: ; preds = %invoke.cont58
%call62 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont61 unwind label %lpad14
invoke.cont61: ; preds = %invoke.cont60
%56 = load double, double* %t0, align 8
%sub63 = fsub double %call62, %56
%57 = load double, double* %tWAXPY, align 8
%add64 = fadd double %57, %sub63
store double %add64, double* %tWAXPY, align 8
br label %if.end81
if.else: ; preds = %for.body
%58 = load double, double* %rtrans, align 8
store double %58, double* %oldrtrans, align 8
%call66 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont65 unwind label %lpad14
invoke.cont65: ; preds = %if.else
store double %call66, double* %t0, align 8
%call68 = invoke double @_ZN6miniFE6dot_r2INS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_(%"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont67 unwind label %lpad14
invoke.cont67: ; preds = %invoke.cont65
store double %call68, double* %rtrans, align 8
%call70 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont69 unwind label %lpad14
invoke.cont69: ; preds = %invoke.cont67
%59 = load double, double* %t0, align 8
%sub71 = fsub double %call70, %59
%60 = load double, double* %tDOT, align 8
%add72 = fadd double %60, %sub71
store double %add72, double* %tDOT, align 8
%61 = load double, double* %rtrans, align 8
%62 = load double, double* %oldrtrans, align 8
%div73 = fdiv double %61, %62
store double %div73, double* %beta, align 8
%call75 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont74 unwind label %lpad14
invoke.cont74: ; preds = %invoke.cont69
store double %call75, double* %t0, align 8
%63 = load double, double* %one, align 8
%64 = load double, double* %beta, align 8
invoke void @_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_(double %63, %"struct.miniFE::Vector"* dereferenceable(32) %r, double %64, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont76 unwind label %lpad14
invoke.cont76: ; preds = %invoke.cont74
%call78 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont77 unwind label %lpad14
invoke.cont77: ; preds = %invoke.cont76
%65 = load double, double* %t0, align 8
%sub79 = fsub double %call78, %65
%66 = load double, double* %tWAXPY, align 8
%add80 = fadd double %66, %sub79
store double %add80, double* %tWAXPY, align 8
br label %if.end81
if.end81: ; preds = %invoke.cont77, %invoke.cont61
%67 = load double, double* %rtrans, align 8
%call82 = call double @sqrt(double %67) #2
%68 = load double*, double** %normr.addr, align 8
store double %call82, double* %68, align 8
%69 = load i32, i32* %myproc, align 4
%cmp83 = icmp eq i32 %69, 0
br i1 %cmp83, label %land.lhs.true, label %if.end97
land.lhs.true: ; preds = %if.end81
%70 = load i32, i32* %k, align 4
%71 = load i32, i32* %print_freq, align 4
%rem = srem i32 %70, %71
%cmp84 = icmp eq i32 %rem, 0
br i1 %cmp84, label %if.then86, label %lor.lhs.false
lor.lhs.false: ; preds = %land.lhs.true
%72 = load i32, i32* %k, align 4
%73 = load i32, i32* %max_iter.addr, align 4
%cmp85 = icmp eq i32 %72, %73
br i1 %cmp85, label %if.then86, label %if.end97
if.then86: ; preds = %lor.lhs.false, %land.lhs.true
%call88 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.112, i32 0, i32 0))
to label %invoke.cont87 unwind label %lpad14
invoke.cont87: ; preds = %if.then86
%74 = load i32, i32* %k, align 4
%call90 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call88, i32 %74)
to label %invoke.cont89 unwind label %lpad14
invoke.cont89: ; preds = %invoke.cont87
%call92 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call90, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.113, i32 0, i32 0))
to label %invoke.cont91 unwind label %lpad14
invoke.cont91: ; preds = %invoke.cont89
%75 = load double*, double** %normr.addr, align 8
%76 = load double, double* %75, align 8
%call94 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call92, double %76)
to label %invoke.cont93 unwind label %lpad14
invoke.cont93: ; preds = %invoke.cont91
%call96 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call94, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont95 unwind label %lpad14
invoke.cont95: ; preds = %invoke.cont93
br label %if.end97
if.end97: ; preds = %invoke.cont95, %lor.lhs.false, %if.end81
store double 0.000000e+00, double* %alpha, align 8
store double 0.000000e+00, double* %p_ap_dot, align 8
%call99 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont98 unwind label %lpad14
invoke.cont98: ; preds = %if.end97
store double %call99, double* %t0, align 8
%77 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
invoke void @_ZN6miniFE14matvec_overlapINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEclERS2_RS4_S7_(%"struct.miniFE::matvec_overlap"* %matvec, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %77, %"struct.miniFE::Vector"* dereferenceable(32) %p, %"struct.miniFE::Vector"* dereferenceable(32) %Ap)
to label %invoke.cont100 unwind label %lpad14
invoke.cont100: ; preds = %invoke.cont98
%call102 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont101 unwind label %lpad14
invoke.cont101: ; preds = %invoke.cont100
%78 = load double, double* %t0, align 8
%sub103 = fsub double %call102, %78
%79 = load double, double* %tMATVEC, align 8
%add104 = fadd double %79, %sub103
store double %add104, double* %tMATVEC, align 8
%call106 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont105 unwind label %lpad14
invoke.cont105: ; preds = %invoke.cont101
store double %call106, double* %t0, align 8
%call108 = invoke double @_ZN6miniFE3dotINS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_S9_(%"struct.miniFE::Vector"* dereferenceable(32) %Ap, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont107 unwind label %lpad14
invoke.cont107: ; preds = %invoke.cont105
store double %call108, double* %p_ap_dot, align 8
%call110 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont109 unwind label %lpad14
invoke.cont109: ; preds = %invoke.cont107
%80 = load double, double* %t0, align 8
%sub111 = fsub double %call110, %80
%81 = load double, double* %tDOT, align 8
%add112 = fadd double %81, %sub111
store double %add112, double* %tDOT, align 8
%82 = load double, double* %p_ap_dot, align 8
%83 = load double, double* %brkdown_tol, align 8
%cmp113 = fcmp olt double %82, %83
br i1 %cmp113, label %if.then114, label %if.end132
if.then114: ; preds = %invoke.cont109
%84 = load double, double* %p_ap_dot, align 8
%cmp115 = fcmp olt double %84, 0.000000e+00
br i1 %cmp115, label %if.then119, label %lor.lhs.false116
lor.lhs.false116: ; preds = %if.then114
%85 = load double, double* %p_ap_dot, align 8
%call118 = invoke zeroext i1 @_ZN6miniFE9breakdownINS_6VectorIdiiEEEEbNT_10ScalarTypeERKS3_S6_(double %85, %"struct.miniFE::Vector"* dereferenceable(32) %Ap, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont117 unwind label %lpad14
invoke.cont117: ; preds = %lor.lhs.false116
br i1 %call118, label %if.then119, label %if.else130
if.then119: ; preds = %invoke.cont117, %if.then114
%call121 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cerr, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.114, i32 0, i32 0))
to label %invoke.cont120 unwind label %lpad14
invoke.cont120: ; preds = %if.then119
%call123 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call121, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont122 unwind label %lpad14
invoke.cont122: ; preds = %invoke.cont120
%86 = load double, double* %tWAXPY, align 8
%87 = load double*, double** %my_cg_times.addr, align 8
%arrayidx = getelementptr inbounds double, double* %87, i64 0
store double %86, double* %arrayidx, align 8
%88 = load double, double* %tDOT, align 8
%89 = load double*, double** %my_cg_times.addr, align 8
%arrayidx124 = getelementptr inbounds double, double* %89, i64 1
store double %88, double* %arrayidx124, align 8
%90 = load double, double* %tMATVEC, align 8
%91 = load double*, double** %my_cg_times.addr, align 8
%arrayidx125 = getelementptr inbounds double, double* %91, i64 2
store double %90, double* %arrayidx125, align 8
%call127 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont126 unwind label %lpad14
invoke.cont126: ; preds = %invoke.cont122
%92 = load double, double* %total_time, align 8
%sub128 = fsub double %call127, %92
%93 = load double*, double** %my_cg_times.addr, align 8
%arrayidx129 = getelementptr inbounds double, double* %93, i64 4
store double %sub128, double* %arrayidx129, align 8
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.else130: ; preds = %invoke.cont117
%94 = load double, double* %p_ap_dot, align 8
%mul = fmul double 1.000000e-01, %94
store double %mul, double* %brkdown_tol, align 8
br label %if.end131
if.end131: ; preds = %if.else130
br label %if.end132
if.end132: ; preds = %if.end131, %invoke.cont109
%95 = load double, double* %rtrans, align 8
%96 = load double, double* %p_ap_dot, align 8
%div133 = fdiv double %95, %96
store double %div133, double* %alpha, align 8
%call135 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont134 unwind label %lpad14
invoke.cont134: ; preds = %if.end132
store double %call135, double* %t0, align 8
%97 = load double, double* %alpha, align 8
%98 = load double, double* %one, align 8
%99 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
invoke void @_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_(double %97, %"struct.miniFE::Vector"* dereferenceable(32) %p, double %98, %"struct.miniFE::Vector"* dereferenceable(32) %99)
to label %invoke.cont136 unwind label %lpad14
invoke.cont136: ; preds = %invoke.cont134
%100 = load double, double* %alpha, align 8
%sub137 = fsub double -0.000000e+00, %100
%101 = load double, double* %one, align 8
invoke void @_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_(double %sub137, %"struct.miniFE::Vector"* dereferenceable(32) %Ap, double %101, %"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont138 unwind label %lpad14
invoke.cont138: ; preds = %invoke.cont136
%call140 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont139 unwind label %lpad14
invoke.cont139: ; preds = %invoke.cont138
%102 = load double, double* %t0, align 8
%sub141 = fsub double %call140, %102
%103 = load double, double* %tWAXPY, align 8
%add142 = fadd double %103, %sub141
store double %add142, double* %tWAXPY, align 8
%104 = load i32, i32* %k, align 4
%105 = load i32*, i32** %num_iters.addr, align 8
store i32 %104, i32* %105, align 4
br label %for.inc
for.inc: ; preds = %invoke.cont139
%106 = load i32, i32* %k, align 4
%inc = add nsw i32 %106, 1
store i32 %inc, i32* %k, align 4
br label %for.cond
for.end: ; preds = %land.end
%107 = load double, double* %tWAXPY, align 8
%108 = load double*, double** %my_cg_times.addr, align 8
%arrayidx143 = getelementptr inbounds double, double* %108, i64 0
store double %107, double* %arrayidx143, align 8
%109 = load double, double* %tDOT, align 8
%110 = load double*, double** %my_cg_times.addr, align 8
%arrayidx144 = getelementptr inbounds double, double* %110, i64 1
store double %109, double* %arrayidx144, align 8
%111 = load double, double* %tMATVEC, align 8
%112 = load double*, double** %my_cg_times.addr, align 8
%arrayidx145 = getelementptr inbounds double, double* %112, i64 2
store double %111, double* %arrayidx145, align 8
%113 = load double, double* %tMATVECDOT, align 8
%114 = load double*, double** %my_cg_times.addr, align 8
%arrayidx146 = getelementptr inbounds double, double* %114, i64 3
store double %113, double* %arrayidx146, align 8
%call148 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont147 unwind label %lpad14
invoke.cont147: ; preds = %for.end
%115 = load double, double* %total_time, align 8
%sub149 = fsub double %call148, %115
%116 = load double*, double** %my_cg_times.addr, align 8
%arrayidx150 = getelementptr inbounds double, double* %116, i64 4
store double %sub149, double* %arrayidx150, align 8
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %invoke.cont147, %invoke.cont126
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %Ap)
to label %invoke.cont151 unwind label %lpad7
invoke.cont151: ; preds = %cleanup
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %p)
to label %invoke.cont154 unwind label %lpad
invoke.cont154: ; preds = %invoke.cont151
call void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %r)
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %unreachable [
i32 0, label %cleanup.cont
i32 1, label %cleanup.cont
]
cleanup.cont: ; preds = %if.then, %invoke.cont154, %invoke.cont154
ret void
invoke.cont152: ; preds = %lpad14
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont152, %lpad7
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %p)
to label %invoke.cont155 unwind label %terminate.lpad
invoke.cont155: ; preds = %ehcleanup
br label %ehcleanup157
ehcleanup157: ; preds = %invoke.cont155, %lpad
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %r)
to label %invoke.cont158 unwind label %terminate.lpad
invoke.cont158: ; preds = %ehcleanup157
br label %eh.resume
eh.resume: ; preds = %invoke.cont158
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val159 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val159
terminate.lpad: ; preds = %ehcleanup157, %ehcleanup, %lpad14
%117 = landingpad { i8*, i32 }
catch i8* null
%118 = extractvalue { i8*, i32 } %117, 0
call void @__clang_call_terminate(i8* %118) #13
unreachable
unreachable: ; preds = %invoke.cont154
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr void @_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_10matvec_stdIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd(%"struct.miniFE::CSRMatrix"* dereferenceable(136) %A, %"struct.miniFE::Vector"* dereferenceable(32) %b, %"struct.miniFE::Vector"* dereferenceable(32) %x, i32 %max_iter, double* dereferenceable(8) %tolerance, i32* dereferenceable(4) %num_iters, double* dereferenceable(8) %normr, double* %my_cg_times) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%matvec = alloca %"struct.miniFE::matvec_std", align 1
%A.addr = alloca %"struct.miniFE::CSRMatrix"*, align 8
%b.addr = alloca %"struct.miniFE::Vector"*, align 8
%x.addr = alloca %"struct.miniFE::Vector"*, align 8
%max_iter.addr = alloca i32, align 4
%tolerance.addr = alloca double*, align 8
%num_iters.addr = alloca i32*, align 8
%normr.addr = alloca double*, align 8
%my_cg_times.addr = alloca double*, align 8
%t0 = alloca double, align 8
%tWAXPY = alloca double, align 8
%tDOT = alloca double, align 8
%tMATVEC = alloca double, align 8
%tMATVECDOT = alloca double, align 8
%total_time = alloca double, align 8
%myproc = alloca i32, align 4
%nrows = alloca i64, align 8
%ncols = alloca i32, align 4
%r = alloca %"struct.miniFE::Vector", align 8
%p = alloca %"struct.miniFE::Vector", align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%Ap = alloca %"struct.miniFE::Vector", align 8
%rtrans = alloca double, align 8
%oldrtrans = alloca double, align 8
%print_freq = alloca i32, align 4
%one = alloca double, align 8
%zero = alloca double, align 8
%brkdown_tol = alloca double, align 8
%k = alloca i32, align 4
%beta = alloca double, align 8
%alpha = alloca double, align 8
%p_ap_dot = alloca double, align 8
%cleanup.dest.slot = alloca i32
store %"struct.miniFE::CSRMatrix"* %A, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
store %"struct.miniFE::Vector"* %b, %"struct.miniFE::Vector"** %b.addr, align 8
store %"struct.miniFE::Vector"* %x, %"struct.miniFE::Vector"** %x.addr, align 8
store i32 %max_iter, i32* %max_iter.addr, align 4
store double* %tolerance, double** %tolerance.addr, align 8
store i32* %num_iters, i32** %num_iters.addr, align 8
store double* %normr, double** %normr.addr, align 8
store double* %my_cg_times, double** %my_cg_times.addr, align 8
store double 0.000000e+00, double* %t0, align 8
store double 0.000000e+00, double* %tWAXPY, align 8
store double 0.000000e+00, double* %tDOT, align 8
store double 0.000000e+00, double* %tMATVEC, align 8
store double 0.000000e+00, double* %tMATVECDOT, align 8
%call = call double @_ZN6miniFE7mytimerEv()
store double %call, double* %total_time, align 8
store i32 0, i32* %myproc, align 4
%0 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%has_local_indices = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %0, i32 0, i32 0
%1 = load i8, i8* %has_local_indices, align 8
%tobool = trunc i8 %1 to i1
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
%call1 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cerr, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.109, i32 0, i32 0))
%call2 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call1, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.110, i32 0, i32 0))
%call3 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call2, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
br label %cleanup.cont
if.end: ; preds = %entry
%2 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%rows = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %2, i32 0, i32 2
%call4 = call i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
store i64 %call4, i64* %nrows, align 8
%3 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
%num_cols = getelementptr inbounds %"struct.miniFE::CSRMatrix", %"struct.miniFE::CSRMatrix"* %3, i32 0, i32 7
%4 = load i32, i32* %num_cols, align 8
store i32 %4, i32* %ncols, align 4
%5 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%startIndex = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %5, i32 0, i32 0
%6 = load i32, i32* %startIndex, align 8
%7 = load i64, i64* %nrows, align 8
%conv = trunc i64 %7 to i32
call void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %r, i32 %6, i32 %conv)
%8 = load i32, i32* %ncols, align 4
invoke void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %p, i32 0, i32 %8)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.end
%9 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%startIndex5 = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %9, i32 0, i32 0
%10 = load i32, i32* %startIndex5, align 8
%11 = load i64, i64* %nrows, align 8
%conv6 = trunc i64 %11 to i32
invoke void @_ZN6miniFE6VectorIdiiEC2Eii(%"struct.miniFE::Vector"* %Ap, i32 %10, i32 %conv6)
to label %invoke.cont8 unwind label %lpad7
invoke.cont8: ; preds = %invoke.cont
%12 = load double*, double** %normr.addr, align 8
store double 0.000000e+00, double* %12, align 8
store double 0.000000e+00, double* %rtrans, align 8
store double 0.000000e+00, double* %oldrtrans, align 8
%13 = load i32, i32* %max_iter.addr, align 4
%div = sdiv i32 %13, 10
store i32 %div, i32* %print_freq, align 4
%14 = load i32, i32* %print_freq, align 4
%cmp = icmp sgt i32 %14, 50
br i1 %cmp, label %if.then9, label %if.end10
if.then9: ; preds = %invoke.cont8
store i32 50, i32* %print_freq, align 4
br label %if.end10
lpad: ; preds = %invoke.cont151, %if.end
%15 = landingpad { i8*, i32 }
cleanup
%16 = extractvalue { i8*, i32 } %15, 0
store i8* %16, i8** %exn.slot, align 8
%17 = extractvalue { i8*, i32 } %15, 1
store i32 %17, i32* %ehselector.slot, align 4
br label %ehcleanup157
lpad7: ; preds = %cleanup, %invoke.cont
%18 = landingpad { i8*, i32 }
cleanup
%19 = extractvalue { i8*, i32 } %18, 0
store i8* %19, i8** %exn.slot, align 8
%20 = extractvalue { i8*, i32 } %18, 1
store i32 %20, i32* %ehselector.slot, align 4
br label %ehcleanup
if.end10: ; preds = %if.then9, %invoke.cont8
%21 = load i32, i32* %print_freq, align 4
%cmp11 = icmp slt i32 %21, 1
br i1 %cmp11, label %if.then12, label %if.end13
if.then12: ; preds = %if.end10
store i32 1, i32* %print_freq, align 4
br label %if.end13
if.end13: ; preds = %if.then12, %if.end10
store double 1.000000e+00, double* %one, align 8
store double 0.000000e+00, double* %zero, align 8
%call16 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont15 unwind label %lpad14
invoke.cont15: ; preds = %if.end13
store double %call16, double* %t0, align 8
%22 = load double, double* %one, align 8
%23 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
%24 = load double, double* %zero, align 8
%25 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
invoke void @_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_(double %22, %"struct.miniFE::Vector"* dereferenceable(32) %23, double %24, %"struct.miniFE::Vector"* dereferenceable(32) %25, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont17 unwind label %lpad14
invoke.cont17: ; preds = %invoke.cont15
%call19 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont18 unwind label %lpad14
invoke.cont18: ; preds = %invoke.cont17
%26 = load double, double* %t0, align 8
%sub = fsub double %call19, %26
%27 = load double, double* %tWAXPY, align 8
%add = fadd double %27, %sub
store double %add, double* %tWAXPY, align 8
%call21 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont20 unwind label %lpad14
invoke.cont20: ; preds = %invoke.cont18
store double %call21, double* %t0, align 8
%28 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
invoke void @_ZN6miniFE10matvec_stdINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEclERS2_RS4_S7_(%"struct.miniFE::matvec_std"* %matvec, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %28, %"struct.miniFE::Vector"* dereferenceable(32) %p, %"struct.miniFE::Vector"* dereferenceable(32) %Ap)
to label %invoke.cont22 unwind label %lpad14
invoke.cont22: ; preds = %invoke.cont20
%call24 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont23 unwind label %lpad14
invoke.cont23: ; preds = %invoke.cont22
%29 = load double, double* %t0, align 8
%sub25 = fsub double %call24, %29
%30 = load double, double* %tMATVEC, align 8
%add26 = fadd double %30, %sub25
store double %add26, double* %tMATVEC, align 8
%call28 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont27 unwind label %lpad14
invoke.cont27: ; preds = %invoke.cont23
store double %call28, double* %t0, align 8
%31 = load double, double* %one, align 8
%32 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %b.addr, align 8
%33 = load double, double* %one, align 8
%sub29 = fsub double -0.000000e+00, %33
invoke void @_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_(double %31, %"struct.miniFE::Vector"* dereferenceable(32) %32, double %sub29, %"struct.miniFE::Vector"* dereferenceable(32) %Ap, %"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont30 unwind label %lpad14
invoke.cont30: ; preds = %invoke.cont27
%call32 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont31 unwind label %lpad14
invoke.cont31: ; preds = %invoke.cont30
%34 = load double, double* %t0, align 8
%sub33 = fsub double %call32, %34
%35 = load double, double* %tWAXPY, align 8
%add34 = fadd double %35, %sub33
store double %add34, double* %tWAXPY, align 8
%call36 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont35 unwind label %lpad14
invoke.cont35: ; preds = %invoke.cont31
store double %call36, double* %t0, align 8
%call38 = invoke double @_ZN6miniFE3dotINS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_S9_(%"struct.miniFE::Vector"* dereferenceable(32) %r, %"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont37 unwind label %lpad14
invoke.cont37: ; preds = %invoke.cont35
store double %call38, double* %rtrans, align 8
%call40 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont39 unwind label %lpad14
invoke.cont39: ; preds = %invoke.cont37
%36 = load double, double* %t0, align 8
%sub41 = fsub double %call40, %36
%37 = load double, double* %tDOT, align 8
%add42 = fadd double %37, %sub41
store double %add42, double* %tDOT, align 8
%38 = load double, double* %rtrans, align 8
%call43 = call double @sqrt(double %38) #2
%39 = load double*, double** %normr.addr, align 8
store double %call43, double* %39, align 8
%40 = load i32, i32* %myproc, align 4
%cmp44 = icmp eq i32 %40, 0
br i1 %cmp44, label %if.then45, label %if.end52
if.then45: ; preds = %invoke.cont39
%call47 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.111, i32 0, i32 0))
to label %invoke.cont46 unwind label %lpad14
invoke.cont46: ; preds = %if.then45
%41 = load double*, double** %normr.addr, align 8
%42 = load double, double* %41, align 8
%call49 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call47, double %42)
to label %invoke.cont48 unwind label %lpad14
invoke.cont48: ; preds = %invoke.cont46
%call51 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call49, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont50 unwind label %lpad14
invoke.cont50: ; preds = %invoke.cont48
br label %if.end52
lpad14: ; preds = %for.end, %invoke.cont138, %invoke.cont136, %invoke.cont134, %if.end132, %invoke.cont122, %invoke.cont120, %if.then119, %lor.lhs.false116, %invoke.cont107, %invoke.cont105, %invoke.cont101, %invoke.cont100, %invoke.cont98, %if.end97, %invoke.cont93, %invoke.cont91, %invoke.cont89, %invoke.cont87, %if.then86, %invoke.cont76, %invoke.cont74, %invoke.cont69, %invoke.cont67, %invoke.cont65, %if.else, %invoke.cont60, %invoke.cont58, %if.then57, %invoke.cont48, %invoke.cont46, %if.then45, %invoke.cont37, %invoke.cont35, %invoke.cont31, %invoke.cont30, %invoke.cont27, %invoke.cont23, %invoke.cont22, %invoke.cont20, %invoke.cont18, %invoke.cont17, %invoke.cont15, %if.end13
%43 = landingpad { i8*, i32 }
cleanup
%44 = extractvalue { i8*, i32 } %43, 0
store i8* %44, i8** %exn.slot, align 8
%45 = extractvalue { i8*, i32 } %43, 1
store i32 %45, i32* %ehselector.slot, align 4
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %Ap)
to label %invoke.cont152 unwind label %terminate.lpad
if.end52: ; preds = %invoke.cont50, %invoke.cont39
%call53 = call double @_ZNSt14numeric_limitsIdE7epsilonEv() #2
store double %call53, double* %brkdown_tol, align 8
store i32 1, i32* %k, align 4
br label %for.cond
for.cond: ; preds = %for.inc, %if.end52
%46 = load i32, i32* %k, align 4
%47 = load i32, i32* %max_iter.addr, align 4
%cmp54 = icmp sle i32 %46, %47
br i1 %cmp54, label %land.rhs, label %land.end
land.rhs: ; preds = %for.cond
%48 = load double*, double** %normr.addr, align 8
%49 = load double, double* %48, align 8
%50 = load double*, double** %tolerance.addr, align 8
%51 = load double, double* %50, align 8
%cmp55 = fcmp ogt double %49, %51
br label %land.end
land.end: ; preds = %land.rhs, %for.cond
%52 = phi i1 [ false, %for.cond ], [ %cmp55, %land.rhs ]
br i1 %52, label %for.body, label %for.end
for.body: ; preds = %land.end
%53 = load i32, i32* %k, align 4
%cmp56 = icmp eq i32 %53, 1
br i1 %cmp56, label %if.then57, label %if.else
if.then57: ; preds = %for.body
%call59 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont58 unwind label %lpad14
invoke.cont58: ; preds = %if.then57
store double %call59, double* %t0, align 8
%54 = load double, double* %one, align 8
%55 = load double, double* %zero, align 8
invoke void @_ZN6miniFE6waxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_S6_RS3_(double %54, %"struct.miniFE::Vector"* dereferenceable(32) %r, double %55, %"struct.miniFE::Vector"* dereferenceable(32) %r, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont60 unwind label %lpad14
invoke.cont60: ; preds = %invoke.cont58
%call62 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont61 unwind label %lpad14
invoke.cont61: ; preds = %invoke.cont60
%56 = load double, double* %t0, align 8
%sub63 = fsub double %call62, %56
%57 = load double, double* %tWAXPY, align 8
%add64 = fadd double %57, %sub63
store double %add64, double* %tWAXPY, align 8
br label %if.end81
if.else: ; preds = %for.body
%58 = load double, double* %rtrans, align 8
store double %58, double* %oldrtrans, align 8
%call66 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont65 unwind label %lpad14
invoke.cont65: ; preds = %if.else
store double %call66, double* %t0, align 8
%call68 = invoke double @_ZN6miniFE6dot_r2INS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_(%"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont67 unwind label %lpad14
invoke.cont67: ; preds = %invoke.cont65
store double %call68, double* %rtrans, align 8
%call70 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont69 unwind label %lpad14
invoke.cont69: ; preds = %invoke.cont67
%59 = load double, double* %t0, align 8
%sub71 = fsub double %call70, %59
%60 = load double, double* %tDOT, align 8
%add72 = fadd double %60, %sub71
store double %add72, double* %tDOT, align 8
%61 = load double, double* %rtrans, align 8
%62 = load double, double* %oldrtrans, align 8
%div73 = fdiv double %61, %62
store double %div73, double* %beta, align 8
%call75 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont74 unwind label %lpad14
invoke.cont74: ; preds = %invoke.cont69
store double %call75, double* %t0, align 8
%63 = load double, double* %one, align 8
%64 = load double, double* %beta, align 8
invoke void @_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_(double %63, %"struct.miniFE::Vector"* dereferenceable(32) %r, double %64, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont76 unwind label %lpad14
invoke.cont76: ; preds = %invoke.cont74
%call78 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont77 unwind label %lpad14
invoke.cont77: ; preds = %invoke.cont76
%65 = load double, double* %t0, align 8
%sub79 = fsub double %call78, %65
%66 = load double, double* %tWAXPY, align 8
%add80 = fadd double %66, %sub79
store double %add80, double* %tWAXPY, align 8
br label %if.end81
if.end81: ; preds = %invoke.cont77, %invoke.cont61
%67 = load double, double* %rtrans, align 8
%call82 = call double @sqrt(double %67) #2
%68 = load double*, double** %normr.addr, align 8
store double %call82, double* %68, align 8
%69 = load i32, i32* %myproc, align 4
%cmp83 = icmp eq i32 %69, 0
br i1 %cmp83, label %land.lhs.true, label %if.end97
land.lhs.true: ; preds = %if.end81
%70 = load i32, i32* %k, align 4
%71 = load i32, i32* %print_freq, align 4
%rem = srem i32 %70, %71
%cmp84 = icmp eq i32 %rem, 0
br i1 %cmp84, label %if.then86, label %lor.lhs.false
lor.lhs.false: ; preds = %land.lhs.true
%72 = load i32, i32* %k, align 4
%73 = load i32, i32* %max_iter.addr, align 4
%cmp85 = icmp eq i32 %72, %73
br i1 %cmp85, label %if.then86, label %if.end97
if.then86: ; preds = %lor.lhs.false, %land.lhs.true
%call88 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cout, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.112, i32 0, i32 0))
to label %invoke.cont87 unwind label %lpad14
invoke.cont87: ; preds = %if.then86
%74 = load i32, i32* %k, align 4
%call90 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call88, i32 %74)
to label %invoke.cont89 unwind label %lpad14
invoke.cont89: ; preds = %invoke.cont87
%call92 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) %call90, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.113, i32 0, i32 0))
to label %invoke.cont91 unwind label %lpad14
invoke.cont91: ; preds = %invoke.cont89
%75 = load double*, double** %normr.addr, align 8
%76 = load double, double* %75, align 8
%call94 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEd(%"class.std::basic_ostream"* %call92, double %76)
to label %invoke.cont93 unwind label %lpad14
invoke.cont93: ; preds = %invoke.cont91
%call96 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call94, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont95 unwind label %lpad14
invoke.cont95: ; preds = %invoke.cont93
br label %if.end97
if.end97: ; preds = %invoke.cont95, %lor.lhs.false, %if.end81
store double 0.000000e+00, double* %alpha, align 8
store double 0.000000e+00, double* %p_ap_dot, align 8
%call99 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont98 unwind label %lpad14
invoke.cont98: ; preds = %if.end97
store double %call99, double* %t0, align 8
%77 = load %"struct.miniFE::CSRMatrix"*, %"struct.miniFE::CSRMatrix"** %A.addr, align 8
invoke void @_ZN6miniFE10matvec_stdINS_9CSRMatrixIdiiEENS_6VectorIdiiEEEclERS2_RS4_S7_(%"struct.miniFE::matvec_std"* %matvec, %"struct.miniFE::CSRMatrix"* dereferenceable(136) %77, %"struct.miniFE::Vector"* dereferenceable(32) %p, %"struct.miniFE::Vector"* dereferenceable(32) %Ap)
to label %invoke.cont100 unwind label %lpad14
invoke.cont100: ; preds = %invoke.cont98
%call102 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont101 unwind label %lpad14
invoke.cont101: ; preds = %invoke.cont100
%78 = load double, double* %t0, align 8
%sub103 = fsub double %call102, %78
%79 = load double, double* %tMATVEC, align 8
%add104 = fadd double %79, %sub103
store double %add104, double* %tMATVEC, align 8
%call106 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont105 unwind label %lpad14
invoke.cont105: ; preds = %invoke.cont101
store double %call106, double* %t0, align 8
%call108 = invoke double @_ZN6miniFE3dotINS_6VectorIdiiEEEENS_10TypeTraitsINT_10ScalarTypeEE14magnitude_typeERKS4_S9_(%"struct.miniFE::Vector"* dereferenceable(32) %Ap, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont107 unwind label %lpad14
invoke.cont107: ; preds = %invoke.cont105
store double %call108, double* %p_ap_dot, align 8
%call110 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont109 unwind label %lpad14
invoke.cont109: ; preds = %invoke.cont107
%80 = load double, double* %t0, align 8
%sub111 = fsub double %call110, %80
%81 = load double, double* %tDOT, align 8
%add112 = fadd double %81, %sub111
store double %add112, double* %tDOT, align 8
%82 = load double, double* %p_ap_dot, align 8
%83 = load double, double* %brkdown_tol, align 8
%cmp113 = fcmp olt double %82, %83
br i1 %cmp113, label %if.then114, label %if.end132
if.then114: ; preds = %invoke.cont109
%84 = load double, double* %p_ap_dot, align 8
%cmp115 = fcmp olt double %84, 0.000000e+00
br i1 %cmp115, label %if.then119, label %lor.lhs.false116
lor.lhs.false116: ; preds = %if.then114
%85 = load double, double* %p_ap_dot, align 8
%call118 = invoke zeroext i1 @_ZN6miniFE9breakdownINS_6VectorIdiiEEEEbNT_10ScalarTypeERKS3_S6_(double %85, %"struct.miniFE::Vector"* dereferenceable(32) %Ap, %"struct.miniFE::Vector"* dereferenceable(32) %p)
to label %invoke.cont117 unwind label %lpad14
invoke.cont117: ; preds = %lor.lhs.false116
br i1 %call118, label %if.then119, label %if.else130
if.then119: ; preds = %invoke.cont117, %if.then114
%call121 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* dereferenceable(272) @_ZSt4cerr, i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.114, i32 0, i32 0))
to label %invoke.cont120 unwind label %lpad14
invoke.cont120: ; preds = %if.then119
%call123 = invoke dereferenceable(272) %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call121, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
to label %invoke.cont122 unwind label %lpad14
invoke.cont122: ; preds = %invoke.cont120
%86 = load double, double* %tWAXPY, align 8
%87 = load double*, double** %my_cg_times.addr, align 8
%arrayidx = getelementptr inbounds double, double* %87, i64 0
store double %86, double* %arrayidx, align 8
%88 = load double, double* %tDOT, align 8
%89 = load double*, double** %my_cg_times.addr, align 8
%arrayidx124 = getelementptr inbounds double, double* %89, i64 1
store double %88, double* %arrayidx124, align 8
%90 = load double, double* %tMATVEC, align 8
%91 = load double*, double** %my_cg_times.addr, align 8
%arrayidx125 = getelementptr inbounds double, double* %91, i64 2
store double %90, double* %arrayidx125, align 8
%call127 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont126 unwind label %lpad14
invoke.cont126: ; preds = %invoke.cont122
%92 = load double, double* %total_time, align 8
%sub128 = fsub double %call127, %92
%93 = load double*, double** %my_cg_times.addr, align 8
%arrayidx129 = getelementptr inbounds double, double* %93, i64 4
store double %sub128, double* %arrayidx129, align 8
store i32 1, i32* %cleanup.dest.slot, align 4
br label %cleanup
if.else130: ; preds = %invoke.cont117
%94 = load double, double* %p_ap_dot, align 8
%mul = fmul double 1.000000e-01, %94
store double %mul, double* %brkdown_tol, align 8
br label %if.end131
if.end131: ; preds = %if.else130
br label %if.end132
if.end132: ; preds = %if.end131, %invoke.cont109
%95 = load double, double* %rtrans, align 8
%96 = load double, double* %p_ap_dot, align 8
%div133 = fdiv double %95, %96
store double %div133, double* %alpha, align 8
%call135 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont134 unwind label %lpad14
invoke.cont134: ; preds = %if.end132
store double %call135, double* %t0, align 8
%97 = load double, double* %alpha, align 8
%98 = load double, double* %one, align 8
%99 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
invoke void @_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_(double %97, %"struct.miniFE::Vector"* dereferenceable(32) %p, double %98, %"struct.miniFE::Vector"* dereferenceable(32) %99)
to label %invoke.cont136 unwind label %lpad14
invoke.cont136: ; preds = %invoke.cont134
%100 = load double, double* %alpha, align 8
%sub137 = fsub double -0.000000e+00, %100
%101 = load double, double* %one, align 8
invoke void @_ZN6miniFE6daxpbyINS_6VectorIdiiEEEEvNT_10ScalarTypeERKS3_S4_RS3_(double %sub137, %"struct.miniFE::Vector"* dereferenceable(32) %Ap, double %101, %"struct.miniFE::Vector"* dereferenceable(32) %r)
to label %invoke.cont138 unwind label %lpad14
invoke.cont138: ; preds = %invoke.cont136
%call140 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont139 unwind label %lpad14
invoke.cont139: ; preds = %invoke.cont138
%102 = load double, double* %t0, align 8
%sub141 = fsub double %call140, %102
%103 = load double, double* %tWAXPY, align 8
%add142 = fadd double %103, %sub141
store double %add142, double* %tWAXPY, align 8
%104 = load i32, i32* %k, align 4
%105 = load i32*, i32** %num_iters.addr, align 8
store i32 %104, i32* %105, align 4
br label %for.inc
for.inc: ; preds = %invoke.cont139
%106 = load i32, i32* %k, align 4
%inc = add nsw i32 %106, 1
store i32 %inc, i32* %k, align 4
br label %for.cond
for.end: ; preds = %land.end
%107 = load double, double* %tWAXPY, align 8
%108 = load double*, double** %my_cg_times.addr, align 8
%arrayidx143 = getelementptr inbounds double, double* %108, i64 0
store double %107, double* %arrayidx143, align 8
%109 = load double, double* %tDOT, align 8
%110 = load double*, double** %my_cg_times.addr, align 8
%arrayidx144 = getelementptr inbounds double, double* %110, i64 1
store double %109, double* %arrayidx144, align 8
%111 = load double, double* %tMATVEC, align 8
%112 = load double*, double** %my_cg_times.addr, align 8
%arrayidx145 = getelementptr inbounds double, double* %112, i64 2
store double %111, double* %arrayidx145, align 8
%113 = load double, double* %tMATVECDOT, align 8
%114 = load double*, double** %my_cg_times.addr, align 8
%arrayidx146 = getelementptr inbounds double, double* %114, i64 3
store double %113, double* %arrayidx146, align 8
%call148 = invoke double @_ZN6miniFE7mytimerEv()
to label %invoke.cont147 unwind label %lpad14
invoke.cont147: ; preds = %for.end
%115 = load double, double* %total_time, align 8
%sub149 = fsub double %call148, %115
%116 = load double*, double** %my_cg_times.addr, align 8
%arrayidx150 = getelementptr inbounds double, double* %116, i64 4
store double %sub149, double* %arrayidx150, align 8
store i32 0, i32* %cleanup.dest.slot, align 4
br label %cleanup
cleanup: ; preds = %invoke.cont147, %invoke.cont126
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %Ap)
to label %invoke.cont151 unwind label %lpad7
invoke.cont151: ; preds = %cleanup
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %p)
to label %invoke.cont154 unwind label %lpad
invoke.cont154: ; preds = %invoke.cont151
call void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %r)
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4
switch i32 %cleanup.dest, label %unreachable [
i32 0, label %cleanup.cont
i32 1, label %cleanup.cont
]
cleanup.cont: ; preds = %if.then, %invoke.cont154, %invoke.cont154
ret void
invoke.cont152: ; preds = %lpad14
br label %ehcleanup
ehcleanup: ; preds = %invoke.cont152, %lpad7
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %p)
to label %invoke.cont155 unwind label %terminate.lpad
invoke.cont155: ; preds = %ehcleanup
br label %ehcleanup157
ehcleanup157: ; preds = %invoke.cont155, %lpad
invoke void @_ZN6miniFE6VectorIdiiED2Ev(%"struct.miniFE::Vector"* %r)
to label %invoke.cont158 unwind label %terminate.lpad
invoke.cont158: ; preds = %ehcleanup157
br label %eh.resume
eh.resume: ; preds = %invoke.cont158
%exn = load i8*, i8** %exn.slot, align 8
%sel = load i32, i32* %ehselector.slot, align 4
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
%lpad.val159 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
resume { i8*, i32 } %lpad.val159
terminate.lpad: ; preds = %ehcleanup157, %ehcleanup, %lpad14
%117 = landingpad { i8*, i32 }
catch i8* null
%118 = extractvalue { i8*, i32 } %117, 0
call void @__clang_call_terminate(i8* %118) #13
unreachable
unreachable: ; preds = %invoke.cont154
unreachable
}
; Function Attrs: noinline optnone uwtable
define linkonce_odr i32 @_ZN6miniFE15verify_solutionINS_6VectorIdiiEEEEiRKNS_23simple_mesh_descriptionINT_17GlobalOrdinalTypeEEERKS4_db(%"class.miniFE::simple_mesh_description"* dereferenceable(192) %mesh, %"struct.miniFE::Vector"* dereferenceable(32) %x, double %tolerance, i1 zeroext %verify_whole_domain) #3 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%mesh.addr = alloca %"class.miniFE::simple_mesh_description"*, align 8
%x.addr = alloca %"struct.miniFE::Vector"*, align 8
%tolerance.addr = alloca double, align 8
%verify_whole_domain.addr = alloca i8, align 1
%global_nodes_x = alloca i32, align 4
%global_nodes_y = alloca i32, align 4
%global_nodes_z = alloca i32, align 4
%box = alloca %struct.Box, align 4
%rows = alloca %"class.std::vector.15", align 8
%row_coords = alloca %"class.std::vector.20", align 8
%exn.slot = alloca i8*
%ehselector.slot = alloca i32
%roffset = alloca i32, align 4
%iz = alloca i32, align 4
%iy = alloca i32, align 4
%ix = alloca i32, align 4
%row_id = alloca i32, align 4
%x83 = alloca double, align 8
%y = alloca double, align 8
%z = alloca double, align 8
%verify_this_point = alloca i8, align 1
%return_code = alloca i32, align 4
%num_terms = alloca i32, align 4
%max_error = alloca %"struct.miniFE::err_info", align 8
%i = alloca i64, align 8
%computed_soln = alloca double, align 8
%x126 = alloca double, align 8
%y129 = alloca double, align 8
%z134 = alloca double, align 8
%analytic_soln = alloca double, align 8
%err158 = alloca double, align 8
%local_max_err = alloca double, align 8
%global_max_err = alloca double, align 8
store %"class.miniFE::simple_mesh_description"* %mesh, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
store %"struct.miniFE::Vector"* %x, %"struct.miniFE::Vector"** %x.addr, align 8
store double %tolerance, double* %tolerance.addr, align 8
%frombool = zext i1 %verify_whole_domain to i8
store i8 %frombool, i8* %verify_whole_domain.addr, align 1
%0 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %0, i32 0, i32 3
%call = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box, i32 0)
%arrayidx = getelementptr inbounds i32, i32* %call, i64 1
%1 = load i32, i32* %arrayidx, align 4
%add = add nsw i32 %1, 1
store i32 %add, i32* %global_nodes_x, align 4
%2 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box1 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %2, i32 0, i32 3
%call2 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box1, i32 1)
%arrayidx3 = getelementptr inbounds i32, i32* %call2, i64 1
%3 = load i32, i32* %arrayidx3, align 4
%add4 = add nsw i32 %3, 1
store i32 %add4, i32* %global_nodes_y, align 4
%4 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box5 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %4, i32 0, i32 3
%call6 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box5, i32 2)
%arrayidx7 = getelementptr inbounds i32, i32* %call6, i64 1
%5 = load i32, i32* %arrayidx7, align 4
%add8 = add nsw i32 %5, 1
store i32 %add8, i32* %global_nodes_z, align 4
%6 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%local_box = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %6, i32 0, i32 4
call void @_ZN6miniFE8copy_boxERK3BoxRS0_(%struct.Box* dereferenceable(24) %local_box, %struct.Box* dereferenceable(24) %box)
%call9 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
%arrayidx10 = getelementptr inbounds i32, i32* %call9, i64 1
%7 = load i32, i32* %arrayidx10, align 4
%call11 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
%arrayidx12 = getelementptr inbounds i32, i32* %call11, i64 0
%8 = load i32, i32* %arrayidx12, align 4
%cmp = icmp sgt i32 %7, %8
br i1 %cmp, label %land.lhs.true, label %if.end
land.lhs.true: ; preds = %entry
%call13 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
%arrayidx14 = getelementptr inbounds i32, i32* %call13, i64 1
%9 = load i32, i32* %arrayidx14, align 4
%10 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box15 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %10, i32 0, i32 3
%call16 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box15, i32 0)
%arrayidx17 = getelementptr inbounds i32, i32* %call16, i64 1
%11 = load i32, i32* %arrayidx17, align 4
%cmp18 = icmp eq i32 %9, %11
br i1 %cmp18, label %if.then, label %if.end
if.then: ; preds = %land.lhs.true
%call19 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
%arrayidx20 = getelementptr inbounds i32, i32* %call19, i64 1
%12 = load i32, i32* %arrayidx20, align 4
%inc = add nsw i32 %12, 1
store i32 %inc, i32* %arrayidx20, align 4
br label %if.end
if.end: ; preds = %if.then, %land.lhs.true, %entry
%call21 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
%arrayidx22 = getelementptr inbounds i32, i32* %call21, i64 1
%13 = load i32, i32* %arrayidx22, align 4
%call23 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
%arrayidx24 = getelementptr inbounds i32, i32* %call23, i64 0
%14 = load i32, i32* %arrayidx24, align 4
%cmp25 = icmp sgt i32 %13, %14
br i1 %cmp25, label %land.lhs.true26, label %if.end37
land.lhs.true26: ; preds = %if.end
%call27 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
%arrayidx28 = getelementptr inbounds i32, i32* %call27, i64 1
%15 = load i32, i32* %arrayidx28, align 4
%16 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box29 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %16, i32 0, i32 3
%call30 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box29, i32 1)
%arrayidx31 = getelementptr inbounds i32, i32* %call30, i64 1
%17 = load i32, i32* %arrayidx31, align 4
%cmp32 = icmp eq i32 %15, %17
br i1 %cmp32, label %if.then33, label %if.end37
if.then33: ; preds = %land.lhs.true26
%call34 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
%arrayidx35 = getelementptr inbounds i32, i32* %call34, i64 1
%18 = load i32, i32* %arrayidx35, align 4
%inc36 = add nsw i32 %18, 1
store i32 %inc36, i32* %arrayidx35, align 4
br label %if.end37
if.end37: ; preds = %if.then33, %land.lhs.true26, %if.end
%call38 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
%arrayidx39 = getelementptr inbounds i32, i32* %call38, i64 1
%19 = load i32, i32* %arrayidx39, align 4
%call40 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
%arrayidx41 = getelementptr inbounds i32, i32* %call40, i64 0
%20 = load i32, i32* %arrayidx41, align 4
%cmp42 = icmp sgt i32 %19, %20
br i1 %cmp42, label %land.lhs.true43, label %if.end54
land.lhs.true43: ; preds = %if.end37
%call44 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
%arrayidx45 = getelementptr inbounds i32, i32* %call44, i64 1
%21 = load i32, i32* %arrayidx45, align 4
%22 = load %"class.miniFE::simple_mesh_description"*, %"class.miniFE::simple_mesh_description"** %mesh.addr, align 8
%global_box46 = getelementptr inbounds %"class.miniFE::simple_mesh_description", %"class.miniFE::simple_mesh_description"* %22, i32 0, i32 3
%call47 = call i32* @_ZNK3BoxixEi(%struct.Box* %global_box46, i32 2)
%arrayidx48 = getelementptr inbounds i32, i32* %call47, i64 1
%23 = load i32, i32* %arrayidx48, align 4
%cmp49 = icmp eq i32 %21, %23
br i1 %cmp49, label %if.then50, label %if.end54
if.then50: ; preds = %land.lhs.true43
%call51 = call i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
%arrayidx52 = getelementptr inbounds i32, i32* %call51, i64 1
%24 = load i32, i32* %arrayidx52, align 4
%inc53 = add nsw i32 %24, 1
store i32 %inc53, i32* %arrayidx52, align 4
br label %if.end54
if.end54: ; preds = %if.then50, %land.lhs.true43, %if.end37
call void @_ZNSt6vectorIiSaIiEEC2Ev(%"class.std::vector.15"* %rows)
invoke void @_ZNSt6vectorIdSaIdEEC2Ev(%"class.std::vector.20"* %row_coords)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %if.end54
store i32 0, i32* %roffset, align 4
%call57 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont56 unwind label %lpad55
invoke.cont56: ; preds = %invoke.cont
%arrayidx58 = getelementptr inbounds i32, i32* %call57, i64 0
%25 = load i32, i32* %arrayidx58, align 4
store i32 %25, i32* %iz, align 4
br label %for.cond
for.cond: ; preds = %for.inc114, %invoke.cont56
%26 = load i32, i32* %iz, align 4
%call60 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 2)
to label %invoke.cont59 unwind label %lpad55
invoke.cont59: ; preds = %for.cond
%arrayidx61 = getelementptr inbounds i32, i32* %call60, i64 1
%27 = load i32, i32* %arrayidx61, align 4
%cmp62 = icmp slt i32 %26, %27
br i1 %cmp62, label %for.body, label %for.end116
for.body: ; preds = %invoke.cont59
%call64 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont63 unwind label %lpad55
invoke.cont63: ; preds = %for.body
%arrayidx65 = getelementptr inbounds i32, i32* %call64, i64 0
%28 = load i32, i32* %arrayidx65, align 4
store i32 %28, i32* %iy, align 4
br label %for.cond66
for.cond66: ; preds = %for.inc111, %invoke.cont63
%29 = load i32, i32* %iy, align 4
%call68 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 1)
to label %invoke.cont67 unwind label %lpad55
invoke.cont67: ; preds = %for.cond66
%arrayidx69 = getelementptr inbounds i32, i32* %call68, i64 1
%30 = load i32, i32* %arrayidx69, align 4
%cmp70 = icmp slt i32 %29, %30
br i1 %cmp70, label %for.body71, label %for.end113
for.body71: ; preds = %invoke.cont67
%call73 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont72 unwind label %lpad55
invoke.cont72: ; preds = %for.body71
%arrayidx74 = getelementptr inbounds i32, i32* %call73, i64 0
%31 = load i32, i32* %arrayidx74, align 4
store i32 %31, i32* %ix, align 4
br label %for.cond75
for.cond75: ; preds = %for.inc, %invoke.cont72
%32 = load i32, i32* %ix, align 4
%call77 = invoke i32* @_ZN3BoxixEi(%struct.Box* %box, i32 0)
to label %invoke.cont76 unwind label %lpad55
invoke.cont76: ; preds = %for.cond75
%arrayidx78 = getelementptr inbounds i32, i32* %call77, i64 1
%33 = load i32, i32* %arrayidx78, align 4
%cmp79 = icmp slt i32 %32, %33
br i1 %cmp79, label %for.body80, label %for.end
for.body80: ; preds = %invoke.cont76
%34 = load i32, i32* %global_nodes_x, align 4
%35 = load i32, i32* %global_nodes_y, align 4
%36 = load i32, i32* %global_nodes_z, align 4
%37 = load i32, i32* %ix, align 4
%38 = load i32, i32* %iy, align 4
%39 = load i32, i32* %iz, align 4
%call82 = invoke i32 @_ZN6miniFE6get_idIiEET_iiiiii(i32 %34, i32 %35, i32 %36, i32 %37, i32 %38, i32 %39)
to label %invoke.cont81 unwind label %lpad55
invoke.cont81: ; preds = %for.body80
store i32 %call82, i32* %row_id, align 4
%40 = load i32, i32* %row_id, align 4
%41 = load i32, i32* %global_nodes_x, align 4
%42 = load i32, i32* %global_nodes_y, align 4
%43 = load i32, i32* %global_nodes_z, align 4
invoke void @_ZN6miniFE10get_coordsIidEEvT_iiiRT0_S3_S3_(i32 %40, i32 %41, i32 %42, i32 %43, double* dereferenceable(8) %x83, double* dereferenceable(8) %y, double* dereferenceable(8) %z)
to label %invoke.cont84 unwind label %lpad55
invoke.cont84: ; preds = %invoke.cont81
store i8 0, i8* %verify_this_point, align 1
%44 = load i8, i8* %verify_whole_domain.addr, align 1
%tobool = trunc i8 %44 to i1
br i1 %tobool, label %if.then85, label %if.else
if.then85: ; preds = %invoke.cont84
store i8 1, i8* %verify_this_point, align 1
br label %if.end101
lpad: ; preds = %if.end237, %if.end54
%45 = landingpad { i8*, i32 }
cleanup
%46 = extractvalue { i8*, i32 } %45, 0
store i8* %46, i8** %exn.slot, align 8
%47 = extractvalue { i8*, i32 } %45, 1
store i32 %47, i32* %ehselector.slot, align 4
br label %ehcleanup
lpad55: ; preds = %invoke.cont229, %invoke.cont227, %invoke.cont225, %if.else224, %invoke.cont220, %invoke.cont217, %invoke.cont215, %invoke.cont212, %invoke.cont210, %invoke.cont208, %invoke.cont206, %invoke.cont202, %invoke.cont200, %invoke.cont196, %invoke.cont194, %invoke.cont190, %invoke.cont188, %invoke.cont186, %invoke.cont184, %invoke.cont181, %if.then180, %if.end157, %if.else152, %invoke.cont132, %invoke.cont127, %invoke.cont124, %invoke.cont122, %for.body121, %for.cond117, %invoke.cont106, %invoke.cont105, %invoke.cont104, %if.then103, %land.lhs.true94, %land.lhs.true89, %if.else, %invoke.cont81, %for.body80, %for.cond75, %for.body71, %for.cond66, %for.body, %for.cond, %invoke.cont
%48 = landingpad { i8*, i32 }
cleanup
%49 = extractvalue { i8*, i32 } %48, 0
store i8* %49, i8** %exn.slot, align 8
%50 = extractvalue { i8*, i32 } %48, 1
store i32 %50, i32* %ehselector.slot, align 4
invoke void @_ZNSt6vectorIdSaIdEED2Ev(%"class.std::vector.20"* %row_coords)
to label %invoke.cont239 unwind label %terminate.lpad
if.else: ; preds = %invoke.cont84
%51 = load double, double* %x83, align 8
%sub = fsub double %51, 5.000000e-01
%call87 = invoke double @_ZSt3absd(double %sub)
to label %invoke.cont86 unwind label %lpad55
invoke.cont86: ; preds = %if.else
%cmp88 = fcmp olt double %call87, 5.000000e-02
br i1 %cmp88, label %land.lhs.true89, label %if.end100
land.lhs.true89: ; preds = %invoke.cont86
%52 = load double, double* %y, align 8
%sub90 = fsub double %52, 5.000000e-01
%call92 = invoke double @_ZSt3absd(double %sub90)
to label %invoke.cont91 unwind label %lpad55
invoke.cont91: ; preds = %land.lhs.true89
%cmp93 = fcmp olt double %call92, 5.000000e-02
br i1 %cmp93, label %land.lhs.true94, label %if.end100
land.lhs.true94: ; preds = %invoke.cont91
%53 = load double, double* %z, align 8
%sub95 = fsub double %53, 5.000000e-01
%call97 = invoke double @_ZSt3absd(double %sub95)
to label %invoke.cont96 unwind label %lpad55
invoke.cont96: ; preds = %land.lhs.true94
%cmp98 = fcmp olt double %call97, 5.000000e-02
br i1 %cmp98, label %if.then99, label %if.end100
if.then99: ; preds = %invoke.cont96
store i8 1, i8* %verify_this_point, align 1
br label %if.end100
if.end100: ; preds = %if.then99, %invoke.cont96, %invoke.cont91, %invoke.cont86
br label %if.end101
if.end101: ; preds = %if.end100, %if.then85
%54 = load i8, i8* %verify_this_point, align 1
%tobool102 = trunc i8 %54 to i1
br i1 %tobool102, label %if.then103, label %if.end108
if.then103: ; preds = %if.end101
invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(%"class.std::vector.15"* %rows, i32* dereferenceable(4) %roffset)
to label %invoke.cont104 unwind label %lpad55
invoke.cont104: ; preds = %if.then103
invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(%"class.std::vector.20"* %row_coords, double* dereferenceable(8) %x83)
to label %invoke.cont105 unwind label %lpad55
invoke.cont105: ; preds = %invoke.cont104
invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(%"class.std::vector.20"* %row_coords, double* dereferenceable(8) %y)
to label %invoke.cont106 unwind label %lpad55
invoke.cont106: ; preds = %invoke.cont105
invoke void @_ZNSt6vectorIdSaIdEE9push_backERKd(%"class.std::vector.20"* %row_coords, double* dereferenceable(8) %z)
to label %invoke.cont107 unwind label %lpad55
invoke.cont107: ; preds = %invoke.cont106
br label %if.end108
if.end108: ; preds = %invoke.cont107, %if.end101
%55 = load i32, i32* %roffset, align 4
%inc109 = add nsw i32 %55, 1
store i32 %inc109, i32* %roffset, align 4
br label %for.inc
for.inc: ; preds = %if.end108
%56 = load i32, i32* %ix, align 4
%inc110 = add nsw i32 %56, 1
store i32 %inc110, i32* %ix, align 4
br label %for.cond75
for.end: ; preds = %invoke.cont76
br label %for.inc111
for.inc111: ; preds = %for.end
%57 = load i32, i32* %iy, align 4
%inc112 = add nsw i32 %57, 1
store i32 %inc112, i32* %iy, align 4
br label %for.cond66
for.end113: ; preds = %invoke.cont67
br label %for.inc114
for.inc114: ; preds = %for.end113
%58 = load i32, i32* %iz, align 4
%inc115 = add nsw i32 %58, 1
store i32 %inc115, i32* %iz, align 4
br label %for.cond
for.end116: ; preds = %invoke.cont59
store i32 0, i32* %return_code, align 4
store i32 300, i32* %num_terms, align 4
%err = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 0
store double 0.000000e+00, double* %err, align 8
store i64 0, i64* %i, align 8
br label %for.cond117
for.cond117: ; preds = %for.inc172, %for.end116
%59 = load i64, i64* %i, align 8
%call119 = invoke i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(%"class.std::vector.15"* %rows)
to label %invoke.cont118 unwind label %lpad55
invoke.cont118: ; preds = %for.cond117
%cmp120 = icmp ult i64 %59, %call119
br i1 %cmp120, label %for.body121, label %for.end174
for.body121: ; preds = %invoke.cont118
%60 = load %"struct.miniFE::Vector"*, %"struct.miniFE::Vector"** %x.addr, align 8
%coefs = getelementptr inbounds %"struct.miniFE::Vector", %"struct.miniFE::Vector"* %60, i32 0, i32 2
%61 = load i64, i64* %i, align 8
%call123 = invoke dereferenceable(4) i32* @_ZNSt6vectorIiSaIiEEixEm(%"class.std::vector.15"* %rows, i64 %61)
to label %invoke.cont122 unwind label %lpad55
invoke.cont122: ; preds = %for.body121
%62 = load i32, i32* %call123, align 4
%conv = sext i32 %62 to i64
%call125 = invoke dereferenceable(8) double* @_ZNKSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %coefs, i64 %conv)
to label %invoke.cont124 unwind label %lpad55
invoke.cont124: ; preds = %invoke.cont122
%63 = load double, double* %call125, align 8
store double %63, double* %computed_soln, align 8
%64 = load i64, i64* %i, align 8
%mul = mul i64 %64, 3
%call128 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %row_coords, i64 %mul)
to label %invoke.cont127 unwind label %lpad55
invoke.cont127: ; preds = %invoke.cont124
%65 = load double, double* %call128, align 8
store double %65, double* %x126, align 8
%66 = load i64, i64* %i, align 8
%mul130 = mul i64 %66, 3
%add131 = add i64 %mul130, 1
%call133 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %row_coords, i64 %add131)
to label %invoke.cont132 unwind label %lpad55
invoke.cont132: ; preds = %invoke.cont127
%67 = load double, double* %call133, align 8
store double %67, double* %y129, align 8
%68 = load i64, i64* %i, align 8
%mul135 = mul i64 %68, 3
%add136 = add i64 %mul135, 2
%call138 = invoke dereferenceable(8) double* @_ZNSt6vectorIdSaIdEEixEm(%"class.std::vector.20"* %row_coords, i64 %add136)
to label %invoke.cont137 unwind label %lpad55
invoke.cont137: ; preds = %invoke.cont132
%69 = load double, double* %call138, align 8
store double %69, double* %z134, align 8
store double 0.000000e+00, double* %analytic_soln, align 8
%70 = load double, double* %x126, align 8
%cmp139 = fcmp oeq double %70, 1.000000e+00
br i1 %cmp139, label %if.then140, label %if.else141
if.then140: ; preds = %invoke.cont137
store double 1.000000e+00, double* %analytic_soln, align 8
br label %if.end157
if.else141: ; preds = %invoke.cont137
%71 = load double, double* %x126, align 8
%cmp142 = fcmp oeq double %71, 0.000000e+00
br i1 %cmp142, label %if.then146, label %lor.lhs.false
lor.lhs.false: ; preds = %if.else141
%72 = load double, double* %y129, align 8
%cmp143 = fcmp oeq double %72, 0.000000e+00
br i1 %cmp143, label %if.then146, label %lor.lhs.false144
lor.lhs.false144: ; preds = %lor.lhs.false
%73 = load double, double* %z134, align 8
%cmp145 = fcmp oeq double %73, 0.000000e+00
br i1 %cmp145, label %if.then146, label %if.else147
if.then146: ; preds = %lor.lhs.false144, %lor.lhs.false, %if.else141
store double 0.000000e+00, double* %analytic_soln, align 8
br label %if.end156
if.else147: ; preds = %lor.lhs.false144
%74 = load double, double* %y129, align 8
%cmp148 = fcmp oeq double %74, 1.000000e+00
br i1 %cmp148, label %if.then151, label %lor.lhs.false149
lor.lhs.false149: ; preds = %if.else147
%75 = load double, double* %z134, align 8
%cmp150 = fcmp oeq double %75, 1.000000e+00
br i1 %cmp150, label %if.then151, label %if.else152
if.then151: ; preds = %lor.lhs.false149, %if.else147
store double 0.000000e+00, double* %analytic_soln, align 8
br label %if.end155
if.else152: ; preds = %lor.lhs.false149
%76 = load double, double* %x126, align 8
%77 = load double, double* %y129, align 8
%78 = load double, double* %z134, align 8
%call154 = invoke double @_ZN6miniFE4solnEdddii(double %76, double %77, double %78, i32 300, i32 300)
to label %invoke.cont153 unwind label %lpad55
invoke.cont153: ; preds = %if.else152
store double %call154, double* %analytic_soln, align 8
br label %if.end155
if.end155: ; preds = %invoke.cont153, %if.then151
br label %if.end156
if.end156: ; preds = %if.end155, %if.then146
br label %if.end157
if.end157: ; preds = %if.end156, %if.then140
%79 = load double, double* %analytic_soln, align 8
%80 = load double, double* %computed_soln, align 8
%sub159 = fsub double %79, %80
%call161 = invoke double @_ZSt3absd(double %sub159)
to label %invoke.cont160 unwind label %lpad55
invoke.cont160: ; preds = %if.end157
store double %call161, double* %err158, align 8
%81 = load double, double* %err158, align 8
%err162 = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 0
%82 = load double, double* %err162, align 8
%cmp163 = fcmp ogt double %81, %82
br i1 %cmp163, label %if.then164, label %if.end171
if.then164: ; preds = %invoke.cont160
%83 = load double, double* %err158, align 8
%err165 = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 0
store double %83, double* %err165, align 8
%84 = load double, double* %computed_soln, align 8
%computed = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 1
store double %84, double* %computed, align 8
%85 = load double, double* %analytic_soln, align 8
%analytic = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 2
store double %85, double* %analytic, align 8
%86 = load double, double* %x126, align 8
%coords = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 3
%arrayidx166 = getelementptr inbounds [3 x double], [3 x double]* %coords, i64 0, i64 0
store double %86, double* %arrayidx166, align 8
%87 = load double, double* %y129, align 8
%coords167 = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 3
%arrayidx168 = getelementptr inbounds [3 x double], [3 x double]* %coords167, i64 0, i64 1
store double %87, double* %arrayidx168, align 8
%88 = load double, double* %z134, align 8
%coords169 = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_error, i32 0, i32 3
%arrayidx170 = getelementptr inbounds [3 x double], [3 x double]* %coords169, i64 0, i64 2
store double %88, double* %arrayidx170, align 8
br label %if.end171
if.end171: ; preds = %if.then164, %invoke.cont160
br label %for.inc172
for.inc172: ; preds = %if.end171
%89 = load i64, i64* %i, align 8
%inc173 = add i64 %89, 1
store i64 %inc173, i64* %i, align 8
br label %for.cond117
for.end174: ; preds = %invoke.cont118
%err175 = getelementptr inbounds %"struct.miniFE::err_info", %"struct.miniFE::err_info"* %max_er
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment