; LLVM IR from thepowersgang/mrustc :: tools/minicargo/build.ll (ZN15Job_BuildTarget5startEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.helpers::path" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.RunnableJob = type { ptr, %class.StringList, %class.StringListKV, %"class.helpers::path", %"class.helpers::path" }
%class.StringList = type { %"class.std::vector.16", %"class.std::vector.135" }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.StringListKV = type { %class.StringList, %class.StringList }
%"class.__gnu_cxx::__normal_iterator.141" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.140" = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.144 = type { ptr, ptr }
%class.anon.145 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.146" = type { ptr }
%class.Job_Build = type { %class.Job, ptr, ptr, %"class.std::__cxx11::basic_string", i8, %"class.std::vector.16" }
%class.Job = type { ptr }
%class.Job_BuildTarget = type { %class.Job_Build, ptr, i8, %"class.helpers::path" }
%struct.PackageTarget = type { i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i8, i8, i8, i8, i8, i8, i8, %"class.std::vector.98", %"class.std::vector.16" }
%"class.std::vector.98" = type { %"struct.std::_Vector_base.99" }
%"struct.std::_Vector_base.99" = type { %"struct.std::_Vector_base<PackageTarget::CrateType, std::allocator<PackageTarget::CrateType>>::_Vector_impl" }
%"struct.std::_Vector_base<PackageTarget::CrateType, std::allocator<PackageTarget::CrateType>>::_Vector_impl" = type { %"struct.std::_Vector_base<PackageTarget::CrateType, std::allocator<PackageTarget::CrateType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<PackageTarget::CrateType, std::allocator<PackageTarget::CrateType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.RunState = type <{ ptr, ptr, i8, [7 x i8] }>
%struct.BuildOptions = type <{ %"class.helpers::path", %"class.helpers::path", %"class.std::vector.36", i8, i8, [6 x i8], ptr, i32, [4 x i8] }>
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl" }
%"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl" = type { %"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl_data" }
%"struct.std::_Vector_base<helpers::path, std::allocator<helpers::path>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.BuildScriptOutput = type { %"class.std::vector.16", %"class.std::vector.21", %"class.std::vector.21", %"class.std::vector.16", %"class.std::vector.16", %"class.std::vector.26", %"class.std::vector.26" }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<const char *, std::__cxx11::basic_string<char>>, std::allocator<std::pair<const char *, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.26" = type { %"struct.std::_Vector_base.27" }
%"struct.std::_Vector_base.27" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.142" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.std::pair.147" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

declare i32 @__gxx_personality_v0(...)

declare noundef zeroext i1 @_ZNK15PackageManifest11has_libraryEv(ptr noundef nonnull align 8 dereferenceable(594)) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest21iter_dev_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(136) ptr @_ZNK15PackageManifest11get_libraryEv(ptr noundef nonnull align 8 dereferenceable(594)) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8RunState20get_build_script_outB5cxx11ERK15PackageManifest(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(594)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8RunState14get_crate_pathERK15PackageManifestRK13PackageTargetbPPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(594), ptr noundef nonnull align 8 dereferenceable(136), i1 noundef zeroext, ptr noundef, ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8RunState14get_output_dirEb(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(17), i1 noundef zeroext) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9Job_Build16push_args_commonER10StringListRKN7helpers4pathEb(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK8RunState8is_rustcEv(ptr noundef nonnull align 8 dereferenceable(17)) #2 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15Job_BuildTarget5startEv(ptr dead_on_unwind noalias writable sret(%struct.RunnableJob) align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.helpers::path", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.helpers::path", align 8
  %11 = alloca %class.StringList, align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.helpers::path", align 8
  %14 = alloca %"class.helpers::path", align 8
  %15 = alloca %"class.helpers::path", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %29 = alloca ptr, align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"class.helpers::path", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::function", align 8
  %43 = alloca %class.anon.144, align 8
  %44 = alloca %"class.std::function", align 8
  %45 = alloca %class.anon.145, align 8
  %46 = alloca %class.StringListKV, align 8
  %47 = alloca %"class.helpers::path", align 8
  %48 = alloca %"class.helpers::path", align 8
  %49 = alloca %"class.helpers::path", align 8
  %50 = alloca %"class.helpers::path", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.146", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator.146", align 8
  %56 = alloca ptr, align 8
  %57 = alloca %class.StringList, align 8
  %58 = alloca %class.StringListKV, align 8
  %59 = alloca %"class.helpers::path", align 8
  %60 = alloca %"class.helpers::path", align 8
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  %61 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #6
  %62 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %63 = load ptr, ptr %62, align 8, !tbaa !9
  %64 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %65 = load ptr, ptr %64, align 8, !tbaa !20
  %66 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %67 = load ptr, ptr %66, align 8, !tbaa !21
  %68 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 2
  %69 = load i8, ptr %68, align 8, !tbaa !24, !range !25, !noundef !26
  %70 = trunc i8 %69 to i1
  invoke void @_ZNK8RunState14get_crate_pathERK15PackageManifestRK13PackageTargetbPPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %7, ptr noundef nonnull align 8 dereferenceable(17) %63, ptr noundef nonnull align 8 dereferenceable(594) %65, ptr noundef nonnull align 8 dereferenceable(136) %67, i1 noundef zeroext %70, ptr noundef %5, ptr noundef %6)
          to label %71 unwind label %109

71:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.2)
          to label %72 unwind label %113

72:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #6
  invoke void @_ZN10StringListC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11)
          to label %73 unwind label %117

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #6
  %74 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %75 = load ptr, ptr %74, align 8, !tbaa !20
  invoke void @_ZNK15PackageManifest9directoryEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %14, ptr noundef nonnull align 8 dereferenceable(594) %75)
          to label %76 unwind label %121

76:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #6
  %77 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %78 = load ptr, ptr %77, align 8, !tbaa !21
  %79 = getelementptr inbounds %struct.PackageTarget, ptr %78, i32 0, i32 2
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %80 unwind label %125

80:                                               ; preds = %76
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %81 unwind label %129

81:                                               ; preds = %80
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %82 unwind label %133

82:                                               ; preds = %81
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %12)
          to label %83 unwind label %137

83:                                               ; preds = %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  %84 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 2
  %85 = load i8, ptr %84, align 8, !tbaa !24, !range !25, !noundef !26
  %86 = trunc i8 %85 to i1
  invoke void @_ZNK9Job_Build16push_args_commonER10StringListRKN7helpers4pathEb(ptr noundef nonnull align 8 dereferenceable(88) %61, ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %7, i1 noundef zeroext %86)
          to label %87 unwind label %145

87:                                               ; preds = %83
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.28)
          to label %88 unwind label %145

88:                                               ; preds = %87
  %89 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %90 = load ptr, ptr %89, align 8, !tbaa !21
  %91 = getelementptr inbounds %struct.PackageTarget, ptr %90, i32 0, i32 1
  %92 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %92)
          to label %93 unwind label %145

93:                                               ; preds = %88
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.29)
          to label %94 unwind label %145

94:                                               ; preds = %93
  %95 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %95)
          to label %96 unwind label %145

96:                                               ; preds = %94
  %97 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br i1 %97, label %193, label %98

98:                                               ; preds = %96
  %99 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %100 = load ptr, ptr %99, align 8, !tbaa !9
  %101 = invoke noundef zeroext i1 @_ZNK8RunState8is_rustcEv(ptr noundef nonnull align 8 dereferenceable(17) %100)
          to label %102 unwind label %145

102:                                              ; preds = %98
  br i1 %101, label %158, label %103

103:                                              ; preds = %102
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.30)
          to label %104 unwind label %145

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %105 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  %106 = getelementptr inbounds i8, ptr %105, i64 1
  store ptr %106, ptr %17, align 8, !tbaa !5
  invoke void @_Z6formatIJPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %107 unwind label %149

107:                                              ; preds = %104
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %16)
          to label %108 unwind label %153

108:                                              ; preds = %107
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %192

109:                                              ; preds = %2
  %110 = landingpad { ptr, i32 }
          cleanup
  %111 = extractvalue { ptr, i32 } %110, 0
  store ptr %111, ptr %8, align 8
  %112 = extractvalue { ptr, i32 } %110, 1
  store i32 %112, ptr %9, align 4
  br label %577

113:                                              ; preds = %71
  %114 = landingpad { ptr, i32 }
          cleanup
  %115 = extractvalue { ptr, i32 } %114, 0
  store ptr %115, ptr %8, align 8
  %116 = extractvalue { ptr, i32 } %114, 1
  store i32 %116, ptr %9, align 4
  br label %576

117:                                              ; preds = %72
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %8, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %9, align 4
  br label %575

121:                                              ; preds = %73
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %8, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %9, align 4
  br label %144

125:                                              ; preds = %76
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %8, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %9, align 4
  br label %143

129:                                              ; preds = %80
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %8, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %9, align 4
  br label %142

133:                                              ; preds = %81
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %8, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %9, align 4
  br label %141

137:                                              ; preds = %82
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %8, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %141

141:                                              ; preds = %137, %133
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %142

142:                                              ; preds = %141, %129
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %143

143:                                              ; preds = %142, %125
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %144

144:                                              ; preds = %143, %121
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  br label %574

145:                                              ; preds = %426, %415, %375, %207, %206, %168, %163, %158, %103, %98, %94, %93, %88, %87, %83
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %8, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %9, align 4
  br label %574

149:                                              ; preds = %104
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %8, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %9, align 4
  br label %157

153:                                              ; preds = %107
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %8, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %157

157:                                              ; preds = %153, %149
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %574

158:                                              ; preds = %102
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.15)
          to label %159 unwind label %145

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %160 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  %161 = getelementptr inbounds i8, ptr %160, i64 1
  store ptr %161, ptr %19, align 8, !tbaa !5
  invoke void @_Z6formatIJA10_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 1 dereferenceable(10) @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %162 unwind label %173

162:                                              ; preds = %159
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %18)
          to label %163 unwind label %177

163:                                              ; preds = %162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  %164 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %165 unwind label %145

165:                                              ; preds = %163
  %166 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef 0) #6
  %167 = icmp ne i64 %166, -1
  br i1 %167, label %168, label %191

168:                                              ; preds = %165
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.15)
          to label %169 unwind label %145

169:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %170 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  store ptr %170, ptr %21, align 8, !tbaa !5
  invoke void @_Z6formatIJA16_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 1 dereferenceable(16) @.str.32, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %171 unwind label %182

171:                                              ; preds = %169
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %20)
          to label %172 unwind label %186

172:                                              ; preds = %171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %191

173:                                              ; preds = %159
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %8, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %9, align 4
  br label %181

177:                                              ; preds = %162
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %8, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %181

181:                                              ; preds = %177, %173
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %574

182:                                              ; preds = %169
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %8, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %9, align 4
  br label %190

186:                                              ; preds = %171
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %8, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %190

190:                                              ; preds = %186, %182
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %574

191:                                              ; preds = %172, %165
  br label %192

192:                                              ; preds = %191, %108
  br label %193

193:                                              ; preds = %192, %96
  %194 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %195 = load ptr, ptr %194, align 8, !tbaa !9
  %196 = getelementptr inbounds %struct.RunState, ptr %195, i32 0, i32 0
  %197 = load ptr, ptr %196, align 8, !tbaa !27
  %198 = getelementptr inbounds %struct.BuildOptions, ptr %197, i32 0, i32 6
  %199 = load ptr, ptr %198, align 8, !tbaa !29
  %200 = icmp ne ptr %199, null
  br i1 %200, label %201, label %216

201:                                              ; preds = %193
  %202 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 2
  %203 = load i8, ptr %202, align 8, !tbaa !24, !range !25, !noundef !26
  %204 = trunc i8 %203 to i1
  br i1 %204, label %205, label %206

205:                                              ; preds = %201
  br label %215

206:                                              ; preds = %201
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.33)
          to label %207 unwind label %145

207:                                              ; preds = %206
  %208 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %209 = load ptr, ptr %208, align 8, !tbaa !9
  %210 = getelementptr inbounds %struct.RunState, ptr %209, i32 0, i32 0
  %211 = load ptr, ptr %210, align 8, !tbaa !27
  %212 = getelementptr inbounds %struct.BuildOptions, ptr %211, i32 0, i32 6
  %213 = load ptr, ptr %212, align 8, !tbaa !29
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %213)
          to label %214 unwind label %145

214:                                              ; preds = %207
  br label %215

215:                                              ; preds = %214, %205
  br label %216

216:                                              ; preds = %215, %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %217 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %218 = load ptr, ptr %217, align 8, !tbaa !20
  %219 = invoke noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %218)
          to label %220 unwind label %231

220:                                              ; preds = %216
  %221 = getelementptr inbounds %class.BuildScriptOutput, ptr %219, i32 0, i32 1
  store ptr %221, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %222 = load ptr, ptr %22, align 8, !tbaa !5
  %223 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %222) #6
  %224 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.141", ptr %23, i32 0, i32 0
  store ptr %223, ptr %224, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %225 = load ptr, ptr %22, align 8, !tbaa !5
  %226 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #6
  %227 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.141", ptr %24, i32 0, i32 0
  store ptr %226, ptr %227, align 8
  br label %228

228:                                              ; preds = %242, %220
  %229 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  br i1 %229, label %235, label %230

230:                                              ; preds = %228
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  br label %249

231:                                              ; preds = %216
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %8, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %9, align 4
  br label %248

235:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %236 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  store ptr %236, ptr %25, align 8, !tbaa !5
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.24)
          to label %237 unwind label %244

237:                                              ; preds = %235
  %238 = load ptr, ptr %25, align 8, !tbaa !5
  %239 = getelementptr inbounds %"struct.std::pair.142", ptr %238, i32 0, i32 1
  %240 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %239) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %240)
          to label %241 unwind label %244

241:                                              ; preds = %237
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  br label %242

242:                                              ; preds = %241
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  br label %228

244:                                              ; preds = %237, %235
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %8, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %248

248:                                              ; preds = %244, %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  br label %574

249:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %250 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %251 = load ptr, ptr %250, align 8, !tbaa !20
  %252 = invoke noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %251)
          to label %253 unwind label %264

253:                                              ; preds = %249
  %254 = getelementptr inbounds %class.BuildScriptOutput, ptr %252, i32 0, i32 2
  store ptr %254, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  %255 = load ptr, ptr %26, align 8, !tbaa !5
  %256 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %255) #6
  %257 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.141", ptr %27, i32 0, i32 0
  store ptr %256, ptr %257, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  %258 = load ptr, ptr %26, align 8, !tbaa !5
  %259 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %258) #6
  %260 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.141", ptr %28, i32 0, i32 0
  store ptr %259, ptr %260, align 8
  br label %261

261:                                              ; preds = %302, %253
  %262 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #6
  br i1 %262, label %268, label %263

263:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  br label %306

264:                                              ; preds = %249
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %8, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %9, align 4
  br label %305

268:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  %269 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  store ptr %269, ptr %29, align 8, !tbaa !5
  %270 = load ptr, ptr %29, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.std::pair.142", ptr %270, i32 0, i32 0
  %272 = load ptr, ptr %271, align 8, !tbaa !36
  %273 = call i32 @strcmp(ptr noundef %272, ptr noundef @.str.34) #7
  %274 = icmp ne i32 %273, 0
  br i1 %274, label %295, label %275

275:                                              ; preds = %268
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.35)
          to label %276 unwind label %282

276:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  %277 = load ptr, ptr %29, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.std::pair.142", ptr %277, i32 0, i32 1
  %279 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %278) #6
  store ptr %279, ptr %31, align 8, !tbaa !5
  invoke void @_Z6formatIJA11_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 1 dereferenceable(11) @.str.36, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %280 unwind label %286

280:                                              ; preds = %276
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %30)
          to label %281 unwind label %290

281:                                              ; preds = %280
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  br label %301

282:                                              ; preds = %296, %295, %275
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %8, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %9, align 4
  br label %304

286:                                              ; preds = %276
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %8, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %9, align 4
  br label %294

290:                                              ; preds = %280
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %8, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %294

294:                                              ; preds = %290, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  br label %304

295:                                              ; preds = %268
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.35)
          to label %296 unwind label %282

296:                                              ; preds = %295
  %297 = load ptr, ptr %29, align 8, !tbaa !5
  %298 = getelementptr inbounds %"struct.std::pair.142", ptr %297, i32 0, i32 1
  %299 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %298) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %299)
          to label %300 unwind label %282

300:                                              ; preds = %296
  br label %301

301:                                              ; preds = %300, %281
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  br label %302

302:                                              ; preds = %301
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  br label %261

304:                                              ; preds = %294, %282
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  br label %305

305:                                              ; preds = %304, %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  br label %574

306:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %307 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %308 = load ptr, ptr %307, align 8, !tbaa !20
  %309 = invoke noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %308)
          to label %310 unwind label %321

310:                                              ; preds = %306
  %311 = getelementptr inbounds %class.BuildScriptOutput, ptr %309, i32 0, i32 3
  store ptr %311, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  %312 = load ptr, ptr %32, align 8, !tbaa !5
  %313 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %312) #6
  %314 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.140", ptr %33, i32 0, i32 0
  store ptr %313, ptr %314, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  %315 = load ptr, ptr %32, align 8, !tbaa !5
  %316 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %315) #6
  %317 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.140", ptr %34, i32 0, i32 0
  store ptr %316, ptr %317, align 8
  br label %318

318:                                              ; preds = %331, %310
  %319 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #6
  br i1 %319, label %325, label %320

320:                                              ; preds = %318
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %338

321:                                              ; preds = %306
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %8, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %9, align 4
  br label %337

325:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  %326 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  store ptr %326, ptr %35, align 8, !tbaa !5
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.20)
          to label %327 unwind label %333

327:                                              ; preds = %325
  %328 = load ptr, ptr %35, align 8, !tbaa !5
  %329 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %328) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %329)
          to label %330 unwind label %333

330:                                              ; preds = %327
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  br label %331

331:                                              ; preds = %330
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  br label %318

333:                                              ; preds = %327, %325
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %8, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  br label %337

337:                                              ; preds = %333, %321
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %574

338:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  %339 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %340 = load ptr, ptr %339, align 8, !tbaa !20
  %341 = invoke noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %340)
          to label %342 unwind label %353

342:                                              ; preds = %338
  %343 = getelementptr inbounds %class.BuildScriptOutput, ptr %341, i32 0, i32 4
  store ptr %343, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  %344 = load ptr, ptr %36, align 8, !tbaa !5
  %345 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %344) #6
  %346 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.140", ptr %37, i32 0, i32 0
  store ptr %345, ptr %346, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #6
  %347 = load ptr, ptr %36, align 8, !tbaa !5
  %348 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %347) #6
  %349 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.140", ptr %38, i32 0, i32 0
  store ptr %348, ptr %349, align 8
  br label %350

350:                                              ; preds = %362, %342
  %351 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #6
  br i1 %351, label %357, label %352

352:                                              ; preds = %350
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  br label %369

353:                                              ; preds = %338
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %8, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %9, align 4
  br label %368

357:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %358 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  store ptr %358, ptr %39, align 8, !tbaa !5
  %359 = load ptr, ptr %39, align 8, !tbaa !5
  %360 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %359) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %360)
          to label %361 unwind label %364

361:                                              ; preds = %357
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  br label %362

362:                                              ; preds = %361
  %363 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  br label %350

364:                                              ; preds = %357
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %8, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %368

368:                                              ; preds = %364, %353
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  br label %574

369:                                              ; preds = %352
  %370 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %371 = load ptr, ptr %370, align 8, !tbaa !21
  %372 = getelementptr inbounds %struct.PackageTarget, ptr %371, i32 0, i32 0
  %373 = load i32, ptr %372, align 8, !tbaa !38
  %374 = icmp ne i32 %373, 0
  br i1 %374, label %375, label %415

375:                                              ; preds = %369
  %376 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %377 = load ptr, ptr %376, align 8, !tbaa !20
  %378 = invoke noundef zeroext i1 @_ZNK15PackageManifest11has_libraryEv(ptr noundef nonnull align 8 dereferenceable(594) %377)
          to label %379 unwind label %145

379:                                              ; preds = %375
  br i1 %378, label %380, label %415

380:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #6
  %381 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %382 = load ptr, ptr %381, align 8, !tbaa !9
  %383 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %384 = load ptr, ptr %383, align 8, !tbaa !20
  %385 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %386 = load ptr, ptr %385, align 8, !tbaa !20
  %387 = invoke noundef nonnull align 8 dereferenceable(136) ptr @_ZNK15PackageManifest11get_libraryEv(ptr noundef nonnull align 8 dereferenceable(594) %386)
          to label %388 unwind label %401

388:                                              ; preds = %380
  %389 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 2
  %390 = load i8, ptr %389, align 8, !tbaa !24, !range !25, !noundef !26
  %391 = trunc i8 %390 to i1
  invoke void @_ZNK8RunState14get_crate_pathERK15PackageManifestRK13PackageTargetbPPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %40, ptr noundef nonnull align 8 dereferenceable(17) %382, ptr noundef nonnull align 8 dereferenceable(594) %384, ptr noundef nonnull align 8 dereferenceable(136) %387, i1 noundef zeroext %391, ptr noundef null, ptr noundef null)
          to label %392 unwind label %401

392:                                              ; preds = %388
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.37)
          to label %393 unwind label %405

393:                                              ; preds = %392
  %394 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %395 = load ptr, ptr %394, align 8, !tbaa !20
  %396 = invoke noundef nonnull align 8 dereferenceable(136) ptr @_ZNK15PackageManifest11get_libraryEv(ptr noundef nonnull align 8 dereferenceable(594) %395)
          to label %397 unwind label %405

397:                                              ; preds = %393
  %398 = getelementptr inbounds %struct.PackageTarget, ptr %396, i32 0, i32 1
  invoke void @_Z6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cN7helpers4pathEEES5_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef nonnull align 1 dereferenceable(2) @.str.38, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %399 unwind label %405

399:                                              ; preds = %397
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef %41)
          to label %400 unwind label %409

400:                                              ; preds = %399
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  br label %415

401:                                              ; preds = %388, %380
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %8, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %9, align 4
  br label %414

405:                                              ; preds = %397, %393, %392
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %8, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %9, align 4
  br label %413

409:                                              ; preds = %399
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %8, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %413

413:                                              ; preds = %409, %405
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %414

414:                                              ; preds = %413, %401
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  br label %574

415:                                              ; preds = %400, %379, %369
  %416 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %417 = load ptr, ptr %416, align 8, !tbaa !21
  %418 = getelementptr inbounds %struct.PackageTarget, ptr %417, i32 0, i32 3
  %419 = load i32, ptr %418, align 8, !tbaa !46
  invoke void @_ZN12_GLOBAL__N_117push_args_editionER10StringList7Edition(ptr noundef nonnull align 8 dereferenceable(48) %11, i32 noundef %419)
          to label %420 unwind label %145

420:                                              ; preds = %415
  %421 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %422 = load ptr, ptr %421, align 8, !tbaa !21
  %423 = getelementptr inbounds %struct.PackageTarget, ptr %422, i32 0, i32 0
  %424 = load i32, ptr %423, align 8, !tbaa !38
  %425 = icmp eq i32 %424, 2
  br i1 %425, label %426, label %428

426:                                              ; preds = %420
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef @.str.39)
          to label %427 unwind label %145

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427, %420
  %429 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %430 = load ptr, ptr %429, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #6
  %431 = getelementptr inbounds %class.anon.144, ptr %43, i32 0, i32 0
  store ptr %61, ptr %431, align 8, !tbaa !47
  %432 = getelementptr inbounds %class.anon.144, ptr %43, i32 0, i32 1
  store ptr %11, ptr %432, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(16) %43) #6
  invoke void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %430, ptr noundef %42)
          to label %433 unwind label %445

433:                                              ; preds = %428
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #6
  %434 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 1
  %435 = load ptr, ptr %434, align 8, !tbaa !21
  %436 = getelementptr inbounds %struct.PackageTarget, ptr %435, i32 0, i32 0
  %437 = load i32, ptr %436, align 8, !tbaa !38
  %438 = icmp eq i32 %437, 2
  br i1 %438, label %439, label %453

439:                                              ; preds = %433
  %440 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %441 = load ptr, ptr %440, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #6
  %442 = getelementptr inbounds %class.anon.145, ptr %45, i32 0, i32 0
  store ptr %61, ptr %442, align 8, !tbaa !49
  %443 = getelementptr inbounds %class.anon.145, ptr %45, i32 0, i32 1
  store ptr %11, ptr %443, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(16) %45) #6
  invoke void @_ZNK15PackageManifest21iter_dev_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %441, ptr noundef %44)
          to label %444 unwind label %449

444:                                              ; preds = %439
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #6
  br label %453

445:                                              ; preds = %428
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %8, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #6
  br label %574

449:                                              ; preds = %439
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %8, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %9, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #6
  br label %574

453:                                              ; preds = %444, %433
  call void @llvm.lifetime.start.p0(i64 96, ptr %46) #6
  invoke void @_ZN12StringListKVC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %46)
          to label %454 unwind label %487

454:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #6
  %455 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %456 = load ptr, ptr %455, align 8, !tbaa !9
  %457 = getelementptr inbounds %class.Job_BuildTarget, ptr %61, i32 0, i32 2
  %458 = load i8, ptr %457, align 8, !tbaa !24, !range !25, !noundef !26
  %459 = trunc i8 %458 to i1
  invoke void @_ZNK8RunState14get_output_dirEb(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %49, ptr noundef nonnull align 8 dereferenceable(17) %456, i1 noundef zeroext %459)
          to label %460 unwind label %491

460:                                              ; preds = %454
  invoke void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %461 unwind label %495

461:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  %462 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %463 = load ptr, ptr %462, align 8, !tbaa !9
  %464 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %465 = load ptr, ptr %464, align 8, !tbaa !20
  invoke void @_ZNK8RunState20get_build_script_outB5cxx11ERK15PackageManifest(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(17) %463, ptr noundef nonnull align 8 dereferenceable(594) %465)
          to label %466 unwind label %499

466:                                              ; preds = %461
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %467 unwind label %503

467:                                              ; preds = %466
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %468 unwind label %507

468:                                              ; preds = %467
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  %469 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %470 unwind label %515

470:                                              ; preds = %468
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %469)
          to label %471 unwind label %515

471:                                              ; preds = %470
  invoke void @_ZN12StringListKV9push_backEPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %46, ptr noundef @.str.40, ptr noundef %52)
          to label %472 unwind label %519

472:                                              ; preds = %471
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #6
  %473 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %474 = load ptr, ptr %473, align 8, !tbaa !20
  %475 = invoke noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %474)
          to label %476 unwind label %523

476:                                              ; preds = %472
  %477 = getelementptr inbounds %class.BuildScriptOutput, ptr %475, i32 0, i32 5
  store ptr %477, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #6
  %478 = load ptr, ptr %53, align 8, !tbaa !5
  %479 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %478) #6
  %480 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.146", ptr %54, i32 0, i32 0
  store ptr %479, ptr %480, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  %481 = load ptr, ptr %53, align 8, !tbaa !5
  %482 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %481) #6
  %483 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.146", ptr %55, i32 0, i32 0
  store ptr %482, ptr %483, align 8
  br label %484

484:                                              ; preds = %536, %476
  %485 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #6
  br i1 %485, label %527, label %486

486:                                              ; preds = %484
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  br label %543

487:                                              ; preds = %453
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %8, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %9, align 4
  br label %573

491:                                              ; preds = %454
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %8, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %9, align 4
  br label %514

495:                                              ; preds = %460
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %8, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %9, align 4
  br label %513

499:                                              ; preds = %461
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %8, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %9, align 4
  br label %512

503:                                              ; preds = %466
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %8, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %9, align 4
  br label %511

507:                                              ; preds = %467
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %8, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %511

511:                                              ; preds = %507, %503
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %512

512:                                              ; preds = %511, %499
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  br label %513

513:                                              ; preds = %512, %495
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %514

514:                                              ; preds = %513, %491
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  br label %572

515:                                              ; preds = %546, %543, %470, %468
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %8, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %9, align 4
  br label %571

519:                                              ; preds = %471
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %8, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %571

523:                                              ; preds = %472
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %8, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %9, align 4
  br label %542

527:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  %528 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #6
  store ptr %528, ptr %56, align 8, !tbaa !5
  %529 = load ptr, ptr %56, align 8, !tbaa !5
  %530 = getelementptr inbounds %"struct.std::pair.147", ptr %529, i32 0, i32 0
  %531 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %530) #6
  %532 = load ptr, ptr %56, align 8, !tbaa !5
  %533 = getelementptr inbounds %"struct.std::pair.147", ptr %532, i32 0, i32 1
  %534 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %533) #6
  invoke void @_ZN12StringListKV9push_backEPKcS1_(ptr noundef nonnull align 8 dereferenceable(96) %46, ptr noundef %531, ptr noundef %534)
          to label %535 unwind label %538

535:                                              ; preds = %527
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  br label %536

536:                                              ; preds = %535
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #6
  br label %484

538:                                              ; preds = %527
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %8, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  br label %542

542:                                              ; preds = %538, %523
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  br label %571

543:                                              ; preds = %486
  %544 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 2
  %545 = load ptr, ptr %544, align 8, !tbaa !20
  invoke void @_ZN12_GLOBAL__N_115push_env_commonER12StringListKVRK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(96) %46, ptr noundef nonnull align 8 dereferenceable(594) %545)
          to label %546 unwind label %515

546:                                              ; preds = %543
  %547 = getelementptr inbounds %class.Job_Build, ptr %61, i32 0, i32 1
  %548 = load ptr, ptr %547, align 8, !tbaa !9
  %549 = getelementptr inbounds %struct.RunState, ptr %548, i32 0, i32 1
  %550 = load ptr, ptr %549, align 8, !tbaa !51
  %551 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %550)
          to label %552 unwind label %515

552:                                              ; preds = %546
  %553 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %551) #6
  call void @_ZN10StringListC2EOS_(ptr noundef nonnull align 8 dereferenceable(48) %57, ptr noundef nonnull align 8 dereferenceable(48) %11) #6
  call void @_ZN12StringListKVC2EOS_(ptr noundef nonnull align 8 dereferenceable(96) %58, ptr noundef nonnull align 8 dereferenceable(96) %46) #6
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.41)
          to label %554 unwind label %557

554:                                              ; preds = %552
  invoke void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %555 unwind label %561

555:                                              ; preds = %554
  invoke void @_ZN11RunnableJobC2EPKc10StringList12StringListKVN7helpers4pathES5_(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %553, ptr noundef %57, ptr noundef %58, ptr noundef %59, ptr noundef %60)
          to label %556 unwind label %565

556:                                              ; preds = %555
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %58) #6
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %57) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %46) #6
  call void @llvm.lifetime.end.p0(i64 96, ptr %46) #6
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  ret void

557:                                              ; preds = %552
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %8, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %9, align 4
  br label %570

561:                                              ; preds = %554
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %8, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %9, align 4
  br label %569

565:                                              ; preds = %555
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %8, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %9, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %569

569:                                              ; preds = %565, %561
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %570

570:                                              ; preds = %569, %557
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %58) #6
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %57) #6
  br label %571

571:                                              ; preds = %570, %542, %519, %515
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %572

572:                                              ; preds = %571, %514
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %46) #6
  br label %573

573:                                              ; preds = %572, %487
  call void @llvm.lifetime.end.p0(i64 96, ptr %46) #6
  br label %574

574:                                              ; preds = %573, %449, %445, %414, %368, %337, %305, %248, %190, %181, %157, %145, %144
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #6
  br label %575

575:                                              ; preds = %574, %117
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %576

576:                                              ; preds = %575, %113
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %577

577:                                              ; preds = %576, %109
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  br label %578

578:                                              ; preds = %577
  %579 = load ptr, ptr %8, align 8
  %580 = load i32, ptr %9, align 4
  %581 = insertvalue { ptr, i32 } poison, ptr %579, 0
  %582 = insertvalue { ptr, i32 } %581, i32 %580, 1
  resume { ptr, i32 } %582
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10StringListC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest9directoryEv(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(594)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJA10_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJA16_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJA11_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cN7helpers4pathEEES5_DpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_117push_args_editionER10StringList7Edition(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12StringListKVC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #2 align 2

declare void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12StringListKV9push_backEPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12StringListKV9push_backEPKcS1_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_115push_env_commonER12StringListKVRK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(594)) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10StringListC2EOS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12StringListKVC2EOS_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11RunnableJobC2EPKc10StringList12StringListKVN7helpers4pathES5_(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #4 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 8}
!10 = !{!"_ZTS9Job_Build", !11, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !15, i64 56, !16, i64 64}
!11 = !{!"_ZTS3Job"}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !14, i64 8, !7, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!10, !6, i64 16}
!21 = !{!22, !6, i64 88}
!22 = !{!"_ZTS15Job_BuildTarget", !10, i64 0, !6, i64 88, !15, i64 96, !23, i64 104}
!23 = !{!"_ZTSN7helpers4pathE", !12, i64 0}
!24 = !{!22, !15, i64 96}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!28, !6, i64 0}
!28 = !{!"_ZTS8RunState", !6, i64 0, !6, i64 8, !15, i64 16}
!29 = !{!30, !6, i64 96}
!30 = !{!"_ZTS12BuildOptions", !23, i64 0, !23, i64 32, !31, i64 64, !15, i64 88, !15, i64 89, !6, i64 96, !35, i64 104}
!31 = !{!"_ZTSSt6vectorIN7helpers4pathESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7helpers4pathESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSN12BuildOptions4ModeE", !7, i64 0}
!36 = !{!37, !6, i64 0}
!37 = !{!"_ZTSSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE", !6, i64 0, !12, i64 8}
!38 = !{!39, !40, i64 0}
!39 = !{!"_ZTS13PackageTarget", !40, i64 0, !12, i64 8, !12, i64 40, !41, i64 72, !15, i64 76, !15, i64 77, !15, i64 78, !15, i64 79, !15, i64 80, !15, i64 81, !15, i64 82, !42, i64 88, !16, i64 112}
!40 = !{!"_ZTSN13PackageTarget4TypeE", !7, i64 0}
!41 = !{!"_ZTS7Edition", !7, i64 0}
!42 = !{!"_ZTSSt6vectorIN13PackageTarget9CrateTypeESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN13PackageTarget9CrateTypeESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN13PackageTarget9CrateTypeESaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN13PackageTarget9CrateTypeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!46 = !{!39, !41, i64 72}
!47 = !{!48, !6, i64 0}
!48 = !{!"_ZTSZN15Job_BuildTarget5startEvE3$_0", !6, i64 0, !6, i64 8}
!49 = !{!50, !6, i64 0}
!50 = !{!"_ZTSZN15Job_BuildTarget5startEvE3$_1", !6, i64 0, !6, i64 8}
!51 = !{!28, !6, i64 8}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.helpers::path" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.RunnableJob = type { ptr, %class.StringList, %class.StringListKV, %"class.helpers::path", %"class.helpers::path" }
%class.StringList = type { %"class.std::vector.16", %"class.std::vector.135" }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const char *, std::allocator<const char *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.StringListKV = type { %class.StringList, %class.StringList }
%"class.__gnu_cxx::__normal_iterator.141" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.140" = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.144 = type { ptr, ptr }
%class.anon.145 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.146" = type { ptr }

@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

declare i32 @__gxx_personality_v0(...)

declare noundef zeroext i1 @_ZNK15PackageManifest11has_libraryEv(ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest21iter_dev_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(136) ptr @_ZNK15PackageManifest11get_libraryEv(ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8RunState20get_build_script_outB5cxx11ERK15PackageManifest(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8RunState14get_crate_pathERK15PackageManifestRK13PackageTargetbPPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(594), ptr noundef nonnull align 8 dereferenceable(136), i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8RunState14get_output_dirEb(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(17), i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9Job_Build16push_args_commonER10StringListRKN7helpers4pathEb(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK8RunState8is_rustcEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15Job_BuildTarget5startEv(ptr dead_on_unwind noalias writable sret(%struct.RunnableJob) align 8 %0, ptr noundef nonnull align 8 dereferenceable(136) %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.helpers::path", align 8
  %6 = alloca %"class.helpers::path", align 8
  %7 = alloca %class.StringList, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.helpers::path", align 8
  %10 = alloca %"class.helpers::path", align 8
  %11 = alloca %"class.helpers::path", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca ptr, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca ptr, align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.141", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.140", align 8
  %28 = alloca %"class.helpers::path", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::function", align 8
  %31 = alloca %class.anon.144, align 8
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %class.anon.145, align 8
  %34 = alloca %class.StringListKV, align 8
  %35 = alloca %"class.helpers::path", align 8
  %36 = alloca %"class.helpers::path", align 8
  %37 = alloca %"class.helpers::path", align 8
  %38 = alloca %"class.helpers::path", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.146", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.146", align 8
  %43 = alloca %class.StringList, align 8
  %44 = alloca %class.StringListKV, align 8
  %45 = alloca %"class.helpers::path", align 8
  %46 = alloca %"class.helpers::path", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  %47 = getelementptr inbounds i8, ptr %1, i64 8
  %48 = load ptr, ptr %47, align 8, !tbaa !5
  %49 = getelementptr inbounds i8, ptr %1, i64 16
  %50 = load ptr, ptr %49, align 8, !tbaa !19
  %51 = getelementptr inbounds i8, ptr %1, i64 88
  %52 = load ptr, ptr %51, align 8, !tbaa !20
  %53 = getelementptr inbounds i8, ptr %1, i64 96
  %54 = load i8, ptr %53, align 8, !tbaa !23, !range !24, !noundef !25
  %55 = trunc nuw i8 %54 to i1
  invoke void @_ZNK8RunState14get_crate_pathERK15PackageManifestRK13PackageTargetbPPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %5, ptr noundef nonnull align 8 dereferenceable(17) %48, ptr noundef nonnull align 8 dereferenceable(594) %50, ptr noundef nonnull align 8 dereferenceable(136) %52, i1 noundef zeroext %55, ptr noundef nonnull %3, ptr noundef nonnull %4)
          to label %56 unwind label %88

56:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.2)
          to label %57 unwind label %90

57:                                               ; preds = %56
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #6
  call void @_ZN10StringListC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  %58 = load ptr, ptr %49, align 8, !tbaa !19
  invoke void @_ZNK15PackageManifest9directoryEv(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %10, ptr noundef nonnull align 8 dereferenceable(594) %58)
          to label %59 unwind label %92

59:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  %60 = load ptr, ptr %51, align 8, !tbaa !20
  %61 = getelementptr inbounds i8, ptr %60, i64 40
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %62 unwind label %94

62:                                               ; preds = %59
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %63 unwind label %96

63:                                               ; preds = %62
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %64 unwind label %98

64:                                               ; preds = %63
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull %8)
          to label %65 unwind label %100

65:                                               ; preds = %64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  %66 = load i8, ptr %53, align 8, !tbaa !23, !range !24, !noundef !25
  %67 = trunc nuw i8 %66 to i1
  invoke void @_ZNK9Job_Build16push_args_commonER10StringListRKN7helpers4pathEb(ptr noundef nonnull align 8 dereferenceable(88) %1, ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull align 8 dereferenceable(32) %5, i1 noundef zeroext %67)
          to label %68 unwind label %106

68:                                               ; preds = %65
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.28)
          to label %69 unwind label %106

69:                                               ; preds = %68
  %70 = load ptr, ptr %51, align 8, !tbaa !20
  %71 = getelementptr inbounds i8, ptr %70, i64 8
  %72 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %72)
          to label %73 unwind label %106

73:                                               ; preds = %69
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.29)
          to label %74 unwind label %106

74:                                               ; preds = %73
  %75 = load ptr, ptr %3, align 8, !tbaa !26
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %75)
          to label %76 unwind label %106

76:                                               ; preds = %74
  %77 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br i1 %77, label %136, label %78

78:                                               ; preds = %76
  %79 = load ptr, ptr %47, align 8, !tbaa !5
  %80 = invoke noundef zeroext i1 @_ZNK8RunState8is_rustcEv(ptr noundef nonnull align 8 dereferenceable(17) %79)
          to label %81 unwind label %106

81:                                               ; preds = %78
  br i1 %80, label %113, label %82

82:                                               ; preds = %81
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.30)
          to label %83 unwind label %106

83:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %84 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  %85 = getelementptr inbounds i8, ptr %84, i64 1
  store ptr %85, ptr %13, align 8, !tbaa !26
  invoke void @_Z6formatIJPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %86 unwind label %108

86:                                               ; preds = %83
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull %12)
          to label %87 unwind label %110

87:                                               ; preds = %86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %136

88:                                               ; preds = %2
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %341

90:                                               ; preds = %56
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %340

92:                                               ; preds = %57
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %105

94:                                               ; preds = %59
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %104

96:                                               ; preds = %62
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %103

98:                                               ; preds = %63
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %102

100:                                              ; preds = %64
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %102

102:                                              ; preds = %100, %98
  %.pn = phi { ptr, i32 } [ %101, %100 ], [ %99, %98 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %103

103:                                              ; preds = %102, %96
  %.pn.pn = phi { ptr, i32 } [ %.pn, %102 ], [ %97, %96 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %104

104:                                              ; preds = %103, %94
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %103 ], [ %95, %94 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %105

105:                                              ; preds = %104, %92
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %104 ], [ %93, %92 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %339

106:                                              ; preds = %260, %252, %225, %145, %144, %121, %113, %82, %78, %74, %73, %69, %68, %65
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %339

108:                                              ; preds = %83
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %112

110:                                              ; preds = %86
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %112

112:                                              ; preds = %110, %108
  %.pn45 = phi { ptr, i32 } [ %111, %110 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %339

113:                                              ; preds = %81
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.15)
          to label %114 unwind label %106

114:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  %115 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  %116 = getelementptr inbounds i8, ptr %115, i64 1
  store ptr %116, ptr %15, align 8, !tbaa !26
  invoke void @_Z6formatIJA10_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 1 dereferenceable(10) @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %117 unwind label %126

117:                                              ; preds = %114
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull %14)
          to label %118 unwind label %128

118:                                              ; preds = %117
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  %119 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %5)
  %120 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef 0) #6
  %.not = icmp eq i64 %120, -1
  br i1 %.not, label %136, label %121

121:                                              ; preds = %118
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.15)
          to label %122 unwind label %106

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %123 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  store ptr %123, ptr %17, align 8, !tbaa !26
  invoke void @_Z6formatIJA16_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 1 dereferenceable(16) @.str.32, ptr noundef nonnull align 8 dereferenceable(8) %17)
          to label %124 unwind label %131

124:                                              ; preds = %122
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull %16)
          to label %125 unwind label %133

125:                                              ; preds = %124
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  br label %136

126:                                              ; preds = %114
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %130

128:                                              ; preds = %117
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %130

130:                                              ; preds = %128, %126
  %.pn47 = phi { ptr, i32 } [ %129, %128 ], [ %127, %126 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  br label %339

131:                                              ; preds = %122
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %135

133:                                              ; preds = %124
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %135

135:                                              ; preds = %133, %131
  %.pn49 = phi { ptr, i32 } [ %134, %133 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  br label %339

136:                                              ; preds = %87, %125, %118, %76
  %137 = load ptr, ptr %47, align 8, !tbaa !5
  %138 = load ptr, ptr %137, align 8, !tbaa !27
  %139 = getelementptr inbounds i8, ptr %138, i64 96
  %140 = load ptr, ptr %139, align 8, !tbaa !29
  %.not51 = icmp eq ptr %140, null
  br i1 %.not51, label %150, label %141

141:                                              ; preds = %136
  %142 = load i8, ptr %53, align 8, !tbaa !23, !range !24, !noundef !25
  %143 = trunc nuw i8 %142 to i1
  br i1 %143, label %150, label %144

144:                                              ; preds = %141
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.33)
          to label %145 unwind label %106

145:                                              ; preds = %144
  %146 = load ptr, ptr %47, align 8, !tbaa !5
  %147 = load ptr, ptr %146, align 8, !tbaa !27
  %148 = getelementptr inbounds i8, ptr %147, i64 96
  %149 = load ptr, ptr %148, align 8, !tbaa !29
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %149)
          to label %150 unwind label %106

150:                                              ; preds = %141, %145, %136
  %151 = load ptr, ptr %49, align 8, !tbaa !19
  %152 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %151)
  %153 = getelementptr inbounds i8, ptr %152, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  %154 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #6
  store ptr %154, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  %155 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #6
  store ptr %155, ptr %19, align 8
  %156 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  br i1 %156, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %167, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  %157 = load ptr, ptr %49, align 8, !tbaa !19
  %158 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %157)
  %159 = getelementptr inbounds i8, ptr %158, i64 48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #6
  %160 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %159) #6
  store ptr %160, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  %161 = call ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %159) #6
  store ptr %161, ptr %21, align 8
  %162 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  br i1 %162, label %.lr.ph75, label %._crit_edge76

.lr.ph:                                           ; preds = %150, %167
  %163 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.24)
          to label %164 unwind label %170

164:                                              ; preds = %.lr.ph
  %165 = getelementptr inbounds i8, ptr %163, i64 8
  %166 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %165) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %166)
          to label %167 unwind label %170

167:                                              ; preds = %164
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #6
  %169 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #6
  br i1 %169, label %.lr.ph, label %._crit_edge

170:                                              ; preds = %164, %.lr.ph
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %339

._crit_edge76:                                    ; preds = %198, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  %172 = load ptr, ptr %49, align 8, !tbaa !19
  %173 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %172)
  %174 = getelementptr inbounds i8, ptr %173, i64 72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  %175 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %174) #6
  store ptr %175, ptr %24, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #6
  %176 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %174) #6
  store ptr %176, ptr %25, align 8
  %177 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  br i1 %177, label %.lr.ph78, label %._crit_edge79

.lr.ph75:                                         ; preds = %._crit_edge, %198
  %178 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  %179 = load ptr, ptr %178, align 8, !tbaa !36
  %180 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %179, ptr noundef nonnull dereferenceable(1) @.str.34) #7
  %.not65 = icmp eq i32 %180, 0
  br i1 %.not65, label %181, label %194

181:                                              ; preds = %.lr.ph75
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.35)
          to label %182 unwind label %187

182:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  %183 = getelementptr inbounds i8, ptr %178, i64 8
  %184 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  store ptr %184, ptr %23, align 8, !tbaa !26
  invoke void @_Z6formatIJA11_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 1 dereferenceable(11) @.str.36, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %185 unwind label %189

185:                                              ; preds = %182
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull %22)
          to label %186 unwind label %191

186:                                              ; preds = %185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %198

187:                                              ; preds = %195, %194, %181
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %201

189:                                              ; preds = %182
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %193

191:                                              ; preds = %185
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %193

193:                                              ; preds = %191, %189
  %.pn66 = phi { ptr, i32 } [ %192, %191 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %201

194:                                              ; preds = %.lr.ph75
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.35)
          to label %195 unwind label %187

195:                                              ; preds = %194
  %196 = getelementptr inbounds i8, ptr %178, i64 8
  %197 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %196) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %197)
          to label %198 unwind label %187

198:                                              ; preds = %195, %186
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #6
  %200 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #6
  br i1 %200, label %.lr.ph75, label %._crit_edge76

201:                                              ; preds = %193, %187
  %.pn68 = phi { ptr, i32 } [ %188, %187 ], [ %.pn66, %193 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #6
  br label %339

._crit_edge79:                                    ; preds = %211, %._crit_edge76
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  %202 = load ptr, ptr %49, align 8, !tbaa !19
  %203 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %202)
  %204 = getelementptr inbounds i8, ptr %203, i64 96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  %205 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #6
  store ptr %205, ptr %26, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  %206 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #6
  store ptr %206, ptr %27, align 8
  %207 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  br i1 %207, label %.lr.ph81, label %._crit_edge82

.lr.ph78:                                         ; preds = %._crit_edge76, %211
  %208 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.20)
          to label %209 unwind label %214

209:                                              ; preds = %.lr.ph78
  %210 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %208) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %210)
          to label %211 unwind label %214

211:                                              ; preds = %209
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  %213 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  br i1 %213, label %.lr.ph78, label %._crit_edge79

214:                                              ; preds = %209, %.lr.ph78
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  br label %339

._crit_edge82:                                    ; preds = %220, %._crit_edge79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  %216 = load ptr, ptr %51, align 8, !tbaa !20
  %217 = load i32, ptr %216, align 8, !tbaa !38
  %.not52 = icmp eq i32 %217, 0
  br i1 %.not52, label %252, label %225

.lr.ph81:                                         ; preds = %._crit_edge79, %220
  %218 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  %219 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %218) #6
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef %219)
          to label %220 unwind label %223

220:                                              ; preds = %.lr.ph81
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  %222 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #6
  br i1 %222, label %.lr.ph81, label %._crit_edge82

223:                                              ; preds = %.lr.ph81
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  br label %339

225:                                              ; preds = %._crit_edge82
  %226 = load ptr, ptr %49, align 8, !tbaa !19
  %227 = invoke noundef zeroext i1 @_ZNK15PackageManifest11has_libraryEv(ptr noundef nonnull align 8 dereferenceable(594) %226)
          to label %228 unwind label %106

228:                                              ; preds = %225
  br i1 %227, label %229, label %252

229:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #6
  %230 = load ptr, ptr %47, align 8, !tbaa !5
  %231 = load ptr, ptr %49, align 8, !tbaa !19
  %232 = invoke noundef nonnull align 8 dereferenceable(136) ptr @_ZNK15PackageManifest11get_libraryEv(ptr noundef nonnull align 8 dereferenceable(594) %231)
          to label %233 unwind label %244

233:                                              ; preds = %229
  %234 = load i8, ptr %53, align 8, !tbaa !23, !range !24, !noundef !25
  %235 = trunc nuw i8 %234 to i1
  invoke void @_ZNK8RunState14get_crate_pathERK15PackageManifestRK13PackageTargetbPPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %28, ptr noundef nonnull align 8 dereferenceable(17) %230, ptr noundef nonnull align 8 dereferenceable(594) %231, ptr noundef nonnull align 8 dereferenceable(136) %232, i1 noundef zeroext %235, ptr noundef null, ptr noundef null)
          to label %236 unwind label %244

236:                                              ; preds = %233
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.37)
          to label %237 unwind label %246

237:                                              ; preds = %236
  %238 = load ptr, ptr %49, align 8, !tbaa !19
  %239 = invoke noundef nonnull align 8 dereferenceable(136) ptr @_ZNK15PackageManifest11get_libraryEv(ptr noundef nonnull align 8 dereferenceable(594) %238)
          to label %240 unwind label %246

240:                                              ; preds = %237
  %241 = getelementptr inbounds i8, ptr %239, i64 8
  invoke void @_Z6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cN7helpers4pathEEES5_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull align 1 dereferenceable(2) @.str.38, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %242 unwind label %246

242:                                              ; preds = %240
  invoke void @_ZN10StringList9push_backENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull %29)
          to label %243 unwind label %248

243:                                              ; preds = %242
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  br label %252

244:                                              ; preds = %233, %229
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %251

246:                                              ; preds = %240, %237, %236
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %250

248:                                              ; preds = %242
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %250

250:                                              ; preds = %248, %246
  %.pn53 = phi { ptr, i32 } [ %249, %248 ], [ %247, %246 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %251

251:                                              ; preds = %250, %244
  %.pn53.pn = phi { ptr, i32 } [ %.pn53, %250 ], [ %245, %244 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  br label %339

252:                                              ; preds = %243, %228, %._crit_edge82
  %253 = load ptr, ptr %51, align 8, !tbaa !20
  %254 = getelementptr inbounds i8, ptr %253, i64 72
  %255 = load i32, ptr %254, align 8, !tbaa !46
  invoke void @_ZN12_GLOBAL__N_117push_args_editionER10StringList7Edition(ptr noundef nonnull align 8 dereferenceable(48) %7, i32 noundef %255)
          to label %256 unwind label %106

256:                                              ; preds = %252
  %257 = load ptr, ptr %51, align 8, !tbaa !20
  %258 = load i32, ptr %257, align 8, !tbaa !38
  %259 = icmp eq i32 %258, 2
  br i1 %259, label %260, label %261

260:                                              ; preds = %256
  invoke void @_ZN10StringList9push_backEPKc(ptr noundef nonnull align 8 dereferenceable(48) %7, ptr noundef nonnull @.str.39)
          to label %261 unwind label %106

261:                                              ; preds = %260, %256
  %262 = load ptr, ptr %49, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #6
  store ptr %1, ptr %31, align 8, !tbaa !47
  %263 = getelementptr inbounds i8, ptr %31, i64 8
  store ptr %7, ptr %263, align 8, !tbaa !26
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(16) %31) #6
  invoke void @_ZNK15PackageManifest22iter_main_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %262, ptr noundef nonnull %30)
          to label %264 unwind label %272

264:                                              ; preds = %261
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #6
  %265 = load ptr, ptr %51, align 8, !tbaa !20
  %266 = load i32, ptr %265, align 8, !tbaa !38
  %267 = icmp eq i32 %266, 2
  br i1 %267, label %268, label %276

268:                                              ; preds = %264
  %269 = load ptr, ptr %49, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #6
  store ptr %1, ptr %33, align 8, !tbaa !49
  %270 = getelementptr inbounds i8, ptr %33, i64 8
  store ptr %7, ptr %270, align 8, !tbaa !26
  call void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(16) %33) #6
  invoke void @_ZNK15PackageManifest21iter_dev_dependenciesESt8functionIFvRK10PackageRefEE(ptr noundef nonnull align 8 dereferenceable(594) %269, ptr noundef nonnull %32)
          to label %271 unwind label %274

271:                                              ; preds = %268
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #6
  br label %276

272:                                              ; preds = %261
  %273 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #6
  br label %339

274:                                              ; preds = %268
  %275 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #6
  br label %339

276:                                              ; preds = %271, %264
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %34) #6
  invoke void @_ZN12StringListKVC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %34)
          to label %277 unwind label %298

277:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #6
  %278 = load ptr, ptr %47, align 8, !tbaa !5
  %279 = load i8, ptr %53, align 8, !tbaa !23, !range !24, !noundef !25
  %280 = trunc nuw i8 %279 to i1
  invoke void @_ZNK8RunState14get_output_dirEb(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %37, ptr noundef nonnull align 8 dereferenceable(17) %278, i1 noundef zeroext %280)
          to label %281 unwind label %300

281:                                              ; preds = %277
  invoke void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %282 unwind label %302

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  %283 = load ptr, ptr %47, align 8, !tbaa !5
  %284 = load ptr, ptr %49, align 8, !tbaa !19
  invoke void @_ZNK8RunState20get_build_script_outB5cxx11ERK15PackageManifest(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(17) %283, ptr noundef nonnull align 8 dereferenceable(594) %284)
          to label %285 unwind label %304

285:                                              ; preds = %282
  invoke void @_ZN7helpers4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %286 unwind label %306

286:                                              ; preds = %285
  invoke void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %287 unwind label %308

287:                                              ; preds = %286
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  %288 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %35)
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %288)
          to label %289 unwind label %314

289:                                              ; preds = %287
  invoke void @_ZN12StringListKV9push_backEPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %34, ptr noundef nonnull @.str.40, ptr noundef nonnull %40)
          to label %290 unwind label %316

290:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  %291 = load ptr, ptr %49, align 8, !tbaa !19
  %292 = call noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594) %291)
  %293 = getelementptr inbounds i8, ptr %292, i64 120
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  %294 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %293) #6
  store ptr %294, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  %295 = call ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %293) #6
  store ptr %295, ptr %42, align 8
  %296 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  br i1 %296, label %.lr.ph84, label %._crit_edge85

._crit_edge85:                                    ; preds = %322, %290
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  %297 = load ptr, ptr %49, align 8, !tbaa !19
  invoke void @_ZN12_GLOBAL__N_115push_env_commonER12StringListKVRK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(96) %34, ptr noundef nonnull align 8 dereferenceable(594) %297)
          to label %327 unwind label %314

298:                                              ; preds = %276
  %299 = landingpad { ptr, i32 }
          cleanup
  br label %338

300:                                              ; preds = %277
  %301 = landingpad { ptr, i32 }
          cleanup
  br label %313

302:                                              ; preds = %281
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %312

304:                                              ; preds = %282
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %311

306:                                              ; preds = %285
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %310

308:                                              ; preds = %286
  %309 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %310

310:                                              ; preds = %308, %306
  %.pn56 = phi { ptr, i32 } [ %309, %308 ], [ %307, %306 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %311

311:                                              ; preds = %310, %304
  %.pn56.pn = phi { ptr, i32 } [ %.pn56, %310 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %312

312:                                              ; preds = %311, %302
  %.pn56.pn.pn = phi { ptr, i32 } [ %.pn56.pn, %311 ], [ %303, %302 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %313

313:                                              ; preds = %312, %300
  %.pn56.pn.pn.pn = phi { ptr, i32 } [ %.pn56.pn.pn, %312 ], [ %301, %300 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  br label %337

314:                                              ; preds = %._crit_edge85, %287
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %336

316:                                              ; preds = %289
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %336

.lr.ph84:                                         ; preds = %290, %322
  %318 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  %319 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %318) #6
  %320 = getelementptr inbounds i8, ptr %318, i64 32
  %321 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %320) #6
  invoke void @_ZN12StringListKV9push_backEPKcS1_(ptr noundef nonnull align 8 dereferenceable(96) %34, ptr noundef %319, ptr noundef %321)
          to label %322 unwind label %325

322:                                              ; preds = %.lr.ph84
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  %324 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  br i1 %324, label %.lr.ph84, label %._crit_edge85

325:                                              ; preds = %.lr.ph84
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  br label %336

327:                                              ; preds = %._crit_edge85
  %328 = load ptr, ptr %47, align 8, !tbaa !5
  %329 = getelementptr inbounds i8, ptr %328, i64 8
  %330 = load ptr, ptr %329, align 8, !tbaa !51
  %331 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %330)
  %332 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %331) #6
  call void @_ZN10StringListC2EOS_(ptr noundef nonnull align 8 dereferenceable(48) %43, ptr noundef nonnull align 8 dereferenceable(48) %7) #6
  call void @_ZN12StringListKVC2EOS_(ptr noundef nonnull align 8 dereferenceable(96) %44, ptr noundef nonnull align 8 dereferenceable(96) %34) #6
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.41)
          to label %333 unwind label %334

333:                                              ; preds = %327
  call void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46)
  call void @_ZN11RunnableJobC2EPKc10StringList12StringListKVN7helpers4pathES5_(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef %332, ptr noundef nonnull %43, ptr noundef nonnull %44, ptr noundef nonnull %45, ptr noundef nonnull %46)
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %44) #6
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %34) #6
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %34) #6
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #6
  ret void

334:                                              ; preds = %327
  %335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %44) #6
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #6
  br label %336

336:                                              ; preds = %334, %325, %316, %314
  %.pn61 = phi { ptr, i32 } [ %326, %325 ], [ %335, %334 ], [ %315, %314 ], [ %317, %316 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %337

337:                                              ; preds = %336, %313
  %.pn61.pn = phi { ptr, i32 } [ %.pn61, %336 ], [ %.pn56.pn.pn.pn, %313 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %34) #6
  br label %338

338:                                              ; preds = %337, %298
  %.pn61.pn.pn = phi { ptr, i32 } [ %.pn61.pn, %337 ], [ %299, %298 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %34) #6
  br label %339

339:                                              ; preds = %338, %274, %272, %251, %223, %214, %201, %170, %135, %130, %112, %106, %105
  %.pn70 = phi { ptr, i32 } [ %171, %170 ], [ %.pn68, %201 ], [ %215, %214 ], [ %224, %223 ], [ %.pn61.pn.pn, %338 ], [ %275, %274 ], [ %273, %272 ], [ %107, %106 ], [ %.pn53.pn, %251 ], [ %.pn49, %135 ], [ %.pn47, %130 ], [ %.pn45, %112 ], [ %.pn.pn.pn.pn, %105 ]
  call void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %7) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %340

340:                                              ; preds = %339, %90
  %.pn70.pn = phi { ptr, i32 } [ %.pn70, %339 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %341

341:                                              ; preds = %340, %88
  %.pn70.pn.pn = phi { ptr, i32 } [ %.pn70.pn, %340 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #6
  resume { ptr, i32 } %.pn70.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10StringListC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK15PackageManifest9directoryEv(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvERKS0_(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJA10_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(10), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJA16_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(168) ptr @_ZNK15PackageManifest19build_script_outputEv(ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJA11_cPKcEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(11), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6formatIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cN7helpers4pathEEES5_DpRKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_117push_args_editionER10StringList7Edition(ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRK10PackageRefEEC2IZN15Job_BuildTarget5startEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12StringListKVC2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #2 align 2

declare void @_ZNK7helpers4path11to_absoluteEv(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12StringListKV9push_backEPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12StringListKV9push_backEPKcS1_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_115push_env_commonER12StringListKVRK15PackageManifest(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(594)) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10StringListC2EOS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN12StringListKVC2EOS_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11RunnableJobC2EPKc10StringList12StringListKVN7helpers4pathES5_(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN12StringListKVD2Ev(ptr noundef nonnull align 8 dereferenceable(96)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10StringListD2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #4 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !8, i64 8}
!6 = !{!"_ZTS9Job_Build", !7, i64 0, !8, i64 8, !8, i64 16, !11, i64 24, !14, i64 56, !15, i64 64}
!7 = !{!"_ZTS3Job"}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !9, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !8, i64 0}
!13 = !{!"long", !9, i64 0}
!14 = !{!"bool", !9, i64 0}
!15 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !8, i64 0, !8, i64 8, !8, i64 16}
!19 = !{!6, !8, i64 16}
!20 = !{!21, !8, i64 88}
!21 = !{!"_ZTS15Job_BuildTarget", !6, i64 0, !8, i64 88, !14, i64 96, !22, i64 104}
!22 = !{!"_ZTSN7helpers4pathE", !11, i64 0}
!23 = !{!21, !14, i64 96}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = !{!8, !8, i64 0}
!27 = !{!28, !8, i64 0}
!28 = !{!"_ZTS8RunState", !8, i64 0, !8, i64 8, !14, i64 16}
!29 = !{!30, !8, i64 96}
!30 = !{!"_ZTS12BuildOptions", !22, i64 0, !22, i64 32, !31, i64 64, !14, i64 88, !14, i64 89, !8, i64 96, !35, i64 104}
!31 = !{!"_ZTSSt6vectorIN7helpers4pathESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7helpers4pathESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7helpers4pathESaIS1_EE17_Vector_impl_dataE", !8, i64 0, !8, i64 8, !8, i64 16}
!35 = !{!"_ZTSN12BuildOptions4ModeE", !9, i64 0}
!36 = !{!37, !8, i64 0}
!37 = !{!"_ZTSSt4pairIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE", !8, i64 0, !11, i64 8}
!38 = !{!39, !40, i64 0}
!39 = !{!"_ZTS13PackageTarget", !40, i64 0, !11, i64 8, !11, i64 40, !41, i64 72, !14, i64 76, !14, i64 77, !14, i64 78, !14, i64 79, !14, i64 80, !14, i64 81, !14, i64 82, !42, i64 88, !15, i64 112}
!40 = !{!"_ZTSN13PackageTarget4TypeE", !9, i64 0}
!41 = !{!"_ZTS7Edition", !9, i64 0}
!42 = !{!"_ZTSSt6vectorIN13PackageTarget9CrateTypeESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN13PackageTarget9CrateTypeESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN13PackageTarget9CrateTypeESaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN13PackageTarget9CrateTypeESaIS1_EE17_Vector_impl_dataE", !8, i64 0, !8, i64 8, !8, i64 16}
!46 = !{!39, !41, i64 72}
!47 = !{!48, !8, i64 0}
!48 = !{!"_ZTSZN15Job_BuildTarget5startEvE3$_0", !8, i64 0, !8, i64 8}
!49 = !{!50, !8, i64 0}
!50 = !{!"_ZTSZN15Job_BuildTarget5startEvE3$_1", !8, i64 0, !8, i64 8}
!51 = !{!28, !8, i64 8}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass