Created
July 27, 2013 21:15
-
-
Save luqmana/6096303 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'rust.rc' | |
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%tydesc = type { i64, i64, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)* } | |
%enum.ValidUsage = type { i64, i64, [0 x i8] } | |
%enum.Action = type { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } | |
%str_slice = type { i8*, i64 } | |
%enum.UsageSource = type { i64, %str_slice, [0 x i8] } | |
%"enum.std::libc::types::common::c95::c_void[#1]" = type {} | |
%"enum.std::option::Option<~str>[#1]" = type { { i64, i64, [0 x i8] }* } | |
%"struct.std::path::PosixPath[#1]" = type { i8, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* } | |
%"struct.std::unstable::extfmt::rt::Conv[#1]" = type { i32, %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Ty[#1]" } | |
%"enum.std::unstable::extfmt::rt::Count[#1]" = type { i64, i64, [0 x i8] } | |
%"enum.std::unstable::extfmt::rt::Ty[#1]" = type { i64 } | |
%struct.Command = type { %str_slice, %enum.Action, %str_slice, %enum.UsageSource } | |
%"struct.std::unstable::raw::Vec<()>[#1]" = type { i64, i64, {} } | |
%"enum.std::option::Option<Command>[#1]" = type { i64, [88 x i8] } | |
@_rust_crate_map_rust_0.8-pre_8d2fe0c0fe8188b = global { i32, i8*, i64, [8 x i64] } { i32 1, i8* bitcast (void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE" to i8*), i64 ptrtoint ([1 x { i64, i64 }]* @_rust_mod_map to i64), [8 x i64] [i64 ptrtoint (i64* @_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 to i64), i64 ptrtoint (i64* @_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 to i64), i64 ptrtoint (i64* @_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a to i64), i64 ptrtoint (i64* @_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 to i64), i64 ptrtoint (i64* @_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc to i64), i64 ptrtoint (i64* @_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 to i64), i64 ptrtoint (i64* @_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff to i64), i64 0] } | |
@"_ZN10ValidUsage5Valid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0 | |
@"_ZN10ValidUsage7Invalid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1 | |
@"_ZN6Action4Call7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0 | |
@"_ZN6Action8CallMain7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1 | |
@"_ZN11UsageSource6UsgStr7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0 | |
@"_ZN11UsageSource7UsgCall7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1 | |
@str10647 = internal constant [6 x i8] c"build\00" | |
@str10648 = internal constant [6 x i8] c"rustc\00" | |
@str10649 = internal constant [26 x i8] c"compile rust source files\00" | |
@str10651 = internal constant [4 x i8] c"run\00" | |
@str10653 = internal constant [32 x i8] c"build an executable, and run it\00" | |
@str10654 = internal constant [167 x i8] c"The run command is an shortcut for the command line \0A\22rustc <filename> -o <filestem>~ && ./<filestem>~ [<arguments>...]\22.\0A\0AUsage:\09rust run <filename> [<arguments>...]\00" | |
@str10655 = internal constant [5 x i8] c"test\00" | |
@str10656 = internal constant [36 x i8] c"build a test executable, and run it\00" | |
@str10657 = internal constant [149 x i8] c"The test command is an shortcut for the command line \0A\22rustc --test <filename> -o <filestem>test~ && ./<filestem>test~\22\0A\0AUsage:\09rust test <filename>\00" | |
@str10658 = internal constant [4 x i8] c"doc\00" | |
@str10659 = internal constant [8 x i8] c"rustdoc\00" | |
@str10660 = internal constant [41 x i8] c"generate documentation from doc comments\00" | |
@str10661 = internal constant [4 x i8] c"pkg\00" | |
@str10662 = internal constant [8 x i8] c"rustpkg\00" | |
@str10663 = internal constant [39 x i8] c"download, build, install rust packages\00" | |
@str10664 = internal constant [7 x i8] c"sketch\00" | |
@str10665 = internal constant [6 x i8] c"rusti\00" | |
@str10666 = internal constant [23 x i8] c"run a rust interpreter\00" | |
@str10667 = internal constant [14 x i8] c"\0AUsage:\09rusti\00" | |
@str10668 = internal constant [5 x i8] c"help\00" | |
@str10669 = internal constant [33 x i8] c"show detailed usage of a command\00" | |
@str10670 = internal constant [160 x i8] c"The help command displays the usage text of another command.\0AThe text is either build in, or provided by the corresponding program.\0A\0AUsage:\09rust help <command>\00" | |
@const = private constant { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } } { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10647, i32 0, i32 0), i64 6 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10648, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([26 x i8]* @str10649, i32 0, i32 0), i64 26 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10651, i32 0, i32 0), i64 4 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([32 x i8]* @str10653, i32 0, i32 0), i64 32 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([167 x i8]* @str10654, i32 0, i32 0), i64 167 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10655, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([36 x i8]* @str10656, i32 0, i32 0), i64 36 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([149 x i8]* @str10657, i32 0, i32 0), i64 149 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10658, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10659, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([41 x i8]* @str10660, i32 0, i32 0), i64 41 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10661, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10662, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([39 x i8]* @str10663, i32 0, i32 0), i64 39 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([7 x i8]* @str10664, i32 0, i32 0), i64 7 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10665, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([23 x i8]* @str10666, i32 0, i32 0), i64 23 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([14 x i8]* @str10667, i32 0, i32 0), i64 14 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10668, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([33 x i8]* @str10669, i32 0, i32 0), i64 33 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([160 x i8]* @str10670, i32 0, i32 0), i64 160 }, [0 x i8] undef } } } | |
@str10726 = internal constant [40 x i8] c"/scratch/laden/rust/src/librust/rust.rs\00" | |
@str10809 = internal constant [27 x i8] c"vector size is too large: \00" | |
@str10820 = internal constant [38 x i8] c"/scratch/laden/rust/src/libstd/vec.rs\00" | |
@str10873 = internal constant [19 x i8] c"assertion failed: \00" | |
@str10874 = internal constant [8 x i8] c"len > 0\00" | |
@str10875 = internal constant [38 x i8] c"/scratch/laden/rust/src/libstd/str.rs\00" | |
@str11019 = internal constant [5 x i8] c"The \00" | |
@str11020 = internal constant [30 x i8] c" command is an alias for the \00" | |
@str11021 = internal constant [10 x i8] c" program.\00" | |
@str11022 = internal constant [1 x i8] zeroinitializer | |
@str11023 = internal constant [2 x i8] c"\0A\00" | |
@str11026 = internal constant [20 x i8] c"option::unwrap None\00" | |
@str11027 = internal constant [41 x i8] c"/scratch/laden/rust/src/libstd/option.rs\00" | |
@str11042 = internal constant [6 x i8] c"test~\00" | |
@str11044 = internal constant [7 x i8] c"--test\00" | |
@str11051 = internal constant [3 x i8] c"-o\00" | |
@str11052 = internal constant [3 x i8] c"./\00" | |
@str11159 = internal constant [177 x i8] c"The rust tool is a convenience for managing rust source code.\0AIt acts as a shortcut for programs of the rust tool chain.\0A\0AUsage:\09rust <command> [arguments]\0A\0AThe commands are:\0A\0A\00" | |
@str11165 = internal constant [2 x i8] c" \00" | |
@str11166 = internal constant [5 x i8] c" \00" | |
@str11167 = internal constant [67 x i8] c"\0AUse \22rust help <command>\22 for more information about a command.\0A\0A\00" | |
@str11171 = internal constant [3 x i8] c"-v\00" | |
@str11172 = internal constant [10 x i8] c"--version\00" | |
@str11180 = internal constant [13 x i8] c"start <= end\00" | |
@_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 = external global i64 | |
@_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 = external global i64 | |
@_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a = external global i64 | |
@_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 = external global i64 | |
@_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc = external global i64 | |
@_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 = external global i64 | |
@_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff = external global i64 | |
@_rust_mod_map = internal global [1 x { i64, i64 }] zeroinitializer | |
@rust_abi_version = constant i64 1 | |
@rust_metadata = internal global { [7415 x i8] } { [7415 x i8] c"rust\00\00\00\01\ED]\09x\1B\D5\9D\97\1D\E7\8Es\10\02\E1H+\E2\E0$\92\0F\DD\87IBB\92\16h\13\BA\04Bi0b43r\06\CB\92\A2\C3\B1e+\1C\91\9DK\E4 \E1\8A\08\09\81PJ[Ji\17J\E9\C1U\CAW\B6\1F\B0\D0\B2e{l\BB\ED\EE\B6\DD\B6\DB\83\DD\D2\D2\EE\FE\DEhf\9E\DE\8C,\C9\8Em\DCn\F3}?e\F4\E6\CD\FB\1F\EF\F7\FE\EF?o4\CF\0F\CF5\99\E6\F8\04GH\B4\F1\B6\90\E8\B3\FB|\C1\FB\E7\9Aj&\9F\C4\89/=\88\8F'\EF\C1G]X\8At\DE\8D\833\E4o\11\AEK<A\0E\E2\A9D\92\14/\90\8B\BB\C5x\82\14O\B5\B5\F8\9Acq\91\9Cq\C8gR)I g\96\B88\87K\E0\9C\CEf7\CF\FB\9A]6\A7\B7\D9\EFt;\9A\1D|P\F4\07\05\BF\E0\F0\F2\E4\B25\E4\B2I\A9x\98\5C\E5\DA\9AL\C6\12m\AD\AD\1DRrk*\D8\C2G\BBZ\BB\A2i)\1C\E6Z\89\06\AD\C9\B8(\B6vq\89\A4\18oM\C4y\B9\90\18\F0>\D2\D49\A4\A9\A9a\89\17#\09Y\EBi\1B.\BB\AAu\CD\A6\0F;H\95\F3I\95\B3I\95\19|\9CK\8A\81doL\AE5),\05O\C1\13W>\84/\CB\1F!%\89\A4\F0\A9\22\F3>\89\E3\B9\1E\DE\E3\E6C\AE\A0\CB\E5t\BA\ECA;\A9\DDLjO%J\C4:;\0CW8}\9C\CFc\F7\FA`\AD[\F4\8A\F2\15Vr\C5d\B1'\19\E7\0C\F59/os\DB\F8\90\E0\F2\04\1D\BC\9F\A3\F5\89\04\DEP_p\F2A\1F\EF\E0y\C1\E7\E2\BC\9CW\AB?%\D1\1BIr=\FA\0B\E6x\5C\1E\87?\E4\0D\D9x\0F\E7\0F\F2\AC\05B\D4(\C1\13t\F9\B9\90\CB\EF\F2yl^Ha5\92\0C\F5\DDN\D1&\86\1C\9Ch\F7{8.\14\FA\0D\0AM\EF\90\8F\D57\E1\F3\CD\D57\E3\F3\B5?\93\06lm^\BB\97\1C\D5\D9\DA\EC.\F5\C0\A1\1E8\95\03\A7z\CA\EDQ\0E\5C\EA\81\DB\AD\1Cx|\EA\81z\95Gm\D9\E7W\84\D9=n\F5\C8\EBS\8E\1C\0E\87r\E4\B4iG^\A7r\84~V\8F|\EA\B5n\87W=\D2\EAy\FC\FE[\E7\9Av|n\F7\5CSr\D6\1E\94\FDn\D7N[\9Bm/\8Ej\BA\B27\0F\CF\D8\C7\FE\82\AC~\86\8C\B0g\B3\E8\DC\9A\E7n&\86\AF\DE5\00Cm>\C5\F4}\82\18Lu\04\BA8>\1E%u/\90\EB\D6>\97\0B\04\C0\B6By\E2\B9\E2Z\A4\91Ur#v\AF\D2\08SY\F5\A5\CDG\DA;S\91\CDTA\13\93?\B3+K\DC,\B7\90\CC\E1\B3>\B9\85\14\F4GZ\22[\DA\DB\B3{7saI\B8:\C1u\88\FB\D5\AEP\0F\9C\AF\A2\81k\F2;\BB\A4\C8\C0nS\E1\DFt|\E5z\B4\AFs^\9Bk\9A\B40\9F\93\22\88\95\A2\10\90\92b\D7A\14M>D\F41\DD>\D7T\FB\87\FC\80$\88\91d\AEHT~\80K&\E3\89\C3d|\1E\91k\E6o\95\04\AD\D5\D9\F9l$*\A0\16i.\80\F6j\F7\CB\EDM&\ED\ED\CC\EF\EE\E6\E2\12\17I\92\EBk[\E4\EBk\EF@\D0\8A)\97eI\A4\CE\0D\C8\E2JH\CAvJ\11!\9FS\1A\09\90o\10azKS\D9\F4\0A\A9\FE\0D\B9z\0D\1A6}5\7Fk\B2\97\D1p\86\22jg\B2\97\E8g\DA#_<\93\5C\BC#\9FM\C4\B8H~\B0#\1C\0Dr\E1\BD\B7\98\F2\83\B2\03d%\E6\D2V'\E7vJ\91d\FE\D6x,?xE,)E#\A4\A5\99T\0DS~\80\C4eF\F9!j\16\F5OAz\B1\B23\99o\B3\F2{\04)\11\0F\88=\B1\F8\90\82wvK\89\FC^|HA),%{i\85\DAB\05Y\0A\B1\E2Q\C6\E9\BB.\8Bt\0F\CF\EDgQ\B13\87\E2C\FD\E8\A9\9C\DF\13\96BbR\EA\12\13rK\9BE\DE\D0\D2\1Etj\8C\8Bs]CW\A9N\D8\EB\E0\E7\D9o\E2\FByoh\D4\FE\16\BE\CE:J&\8B\06WHh\13\1A\DE\C2q'{\FE\BA\FC\EE\0E1\22\C6%>\91?@(PP' \88!\C6\A5\B9\B8\D8\01W\14\CE\0E\E9\18p\B7X\1E\D1g\A9&o\16\91\B7\90\9C\9F\FF\01i\CB\95\98\C9\9A\DA\B7H\EDE\BA\85\D9\BA\EDc\A1\DB\B4\06\BF\DD\83\80\D3\C0:\AB\BE\82\B3\EA\C7\DCY\DF\C6\F1\D5\9A\BC\E9D\DE\07\F2;\D14\B9p\85|\E1,r\A1=\BF+\16\97\BA\02\05&4\D0\16\17b\F0\83\ED\C5\0C)H\22Q\FB\8CB\D4~\BE(2\92\B0\FF\9A\1C\B3\1Dr\CC\EE\CE\16\E2\D8\01u\C2\FC=)\95n\C3\E7\FA\C0\C76\DAm\F4\D2\E2c\B7|h\F7\06\EC\A2/\E4\17\82\00\C9ry\9F\DD\15\B0-\E9q\88>|\08HU\D6\93\96\D6\E8Z*\5C\ED\15\C4\04\0F\A3\D0\8A\CF&\D8\ED6\AF7(8\05\9F\10\F2\18Z\C9\15w\221\AD^1\AD\A0=\B1*'[\E5T\ACR\03E\09\BB\D6\EA\B4\F1*U\87\AB\8F\DA\87D\9D9\8A:\AAX\A2P;Q\C8Y\98\1A\A5\E2\0B\B2\FB\03\085Id\CE`H\22\10\B8\9F\F4\D7\AF\8B:\E9%%3q\90\A6\CFR\9A\D6]D$\BC.KpdwK\89\80,\F6O\84\CF\8DA\CE\D6\AF\88z\97\B0B\1Bw\ED\C1\82\17^\C6gm\A3$k\16:\A0\A6AD\C5Y\1F(\AAL\A4\9B\0B\89\84^\FA\F3\9AH\E2\D1\0F\11\8F\BA\D8\1Av[\97\98\DC\8A\FF<N\BFO\ADl\F7\04\ECv\B7\8Ds\86\FC.\DE\E9s\D8C\06\CF\C2\AEY\CD\C4.\B7G\97T\B8=jR1\B8\86'\83K\C9#\5C\1E\E5\C0\EDFB1\F3{lB\B1\84M(\FCH(\A6\FD\DA\90PL\FB\BE6t\A6\BD\AE&\14\8A\98\0A\C9\84O\9FLL\EB\D4\92\89i70\C9\C4\B4\99Z2Q\F7\0Bf^\CB\AE\E5\C2\E1\AA'\B5\BA\8Fj\DA\D6m@\F5\BAK\B5Y\BFn\A5!\97hbs\89\BA\A9\F2\C5\D3q\F1\A4w\F3\83\B1T\1C\F3\8B\FA?\8D\225\CA<\C3\051\13e\83R2q+)\9E[\CD\04\97\15D>L\02S,UH\A2\9E\D2\F4\AB}4O\A8\D3\95J\06\E5\D4E\AF\EC2V\D9\9A\07\E4v\A7\A2\DD\9A\BB\CB\05U\A6\91\A5\BAF\DCr\E5:\D2\88\C5P\B9Q\97j\FD@\AE<\89\B4\FC\86\A1\F2\85\A3\93\97%\92\F1Q\CE\CB\96(\D2\07d\CF\E6\F7\E2?N\9F:\D4\14\E7)\A3_qg\8CK2\CEjP)\8E\13\B2\B7\EE\A3\17\1D\CE\E7\82 \B3\14\C1\ED\08\EA\0C\D1di_\CE\A3\BE\9C\92\CBr\F1\8E\C4\E88\B3Dj\BB<?\18M%Ac\A6\D4\AAc\C1A\CA\82\81\B2\9A\9FM5\9F\C5\DC\AF\8C.\19,\AA%|(\BF'.&q\CF\D6\1B\1E\CA\C7\C5\8653\DFZF5\93\9F4\9B\89x\BBI\C4\DB\C0I\91\AA\A3^m\8A\DE\F4\DDH\A2\8AHo\CD>b\18\A9\0E]\0C8\97\06\929\C5\C6\B4P\8F40\0D\B4\AA\FCW&\83D\92KJ\BCA\8E}\A2F\04\DBp\C7o\B1Un\E2\D4\C9\06c]:c_\D1\A6\12\D3\0B\E33\95P\F3K\8CK\A7N\BDR\83{\B8C\C2\C3|\F3\FE\05\DF)\BE\C0\DE\FC\F8\8An~\04\B7\C3p\F3\E3\1B\C3\9B\9F\82<\A2\CF%\9A\BC\16\22\CFI\CE\B7\D0$\94\1Em\EEn\DD\D1*\A7\B6\EA\CDc{\91\DA]l3\D7\8F\85\DA\D3\1B\EC^\17\D6\F4DYq\8F&\D1K$.%5\16Su\BB[\1B\93E\B9t\A4\B4\B2\DE1U6\E4\C7\02\A4|\8B\B9R\93\B8\84Hl\D1n1\97\D0[\CCs\98[\CC\994\0B2\91\16\D6k-XH\0B\1E\AD\85&\B9\E2\0CR\F1\82\FC\80\BC\DA\AF\8D\16Sa<\D2u7V\17\DB\08t!\F7$\B3\95;\22%?'wB_%w\0C.\8Fr\F3'g\D3\CA}\8D\DBC\EF\FC\DAp\9F\E2)\5C\A4\FC\E7\225q\C3\E7\17\FD\9C\D7\E5\15\EC>\BB\C7\C7\D9\C5\92\B7\B1\17\D1\CB\E5\EB\86{\C3H\09D\AC\98\A5X!+KlxE\BE\EBq+6h\F3c\09;V\19\EC\F0\A9\B5\A1K\D0\E1\F1:}x\98\E0\F0\FA\9C6w\B0\A4-\17\D3&\B4kGbO\81c\C4\9E\B9\8A=\9A\E2\B0i\DAlb\93\C7G\EF\E4\E6\90;9\8F\AF?\12L\14\EE\E5\F6\C9\09\D0\A6h*\CE\AB+\C4\1E\A7z\E0}u\AEij\8E\BD\A1\F3\B37t\EBqCW\F7c\C3\0D]\DDk\F4\16\E9Eu\0E/\96U\E1\AEn\9D\FE\AE\AE\EEZ\ED\AE\AEn#sW7\E9%-\0F\A9519\CE\E0\D5\89\8EM\98\D8\AB\CDpj$M\E9\9A\EBQ\BD\E6Z-G\A8\D9h\98\8CW\EA2\9C\854\C3\A9/\0E\0FMt\82\BB\80i\A0\8D\CDp\B2\091\1C2HY1Q\F3\9B\8BN'\BFY\C5|\BBxT\13\DD\9A/\B0K\D6 \C1\B0\EE\EEk\CC\94\05\0B\08\0B\A8'K\A4dk&vJ\B6z\0CR\B2K\98ok\C7<%[A\D5\B1\13{\9B(\B3\D9\01\E5/5\A0F5\87\BB\99\A4\1E\E7k3\E8:2\83\D6\17V\B8\F1\98\9Co\0B\C9\09\C6ml\85\1D\A7\9B`0\11\E4\80R\AB\C0Z^4(\AB\AD\B9+\1A\11\95\9B4\8D.&\1A-\22\15\162\D9R0\D1^l\C2~\F6\82\9B\DE\13\13\A678\EC\0Eo\9B\DD'\DB\D0\AA\A9\B4\96\A8d&5\CE\A364\D8}6o\1B\DF0\84\19k\DF[3\C4`\9B=\A8\CB\05/\1Aa\FE5_\99\E9\8B\A7\D3\17\AB\D2\88\A49\DF\91S\02u\9D^\99\22\95$\C7\E3\A3I\CE\A5dQ\D9^$\82\F9\E2)\5C\87T\C5\E5\B6\FBD/\EF\B1{\1D\BC\C3\E6,\FD\04b\AD\BE1\E5\FA\E1\A7<*#\98D\B4\D0\18\B1\EE{\B2u^\F5)\84\12\FBK\98wYY\F3\BC\CA\85\D0+\E4\F6\BB\1DA\A7M\F4\05\B9\90\D3\E9-i\DF:}kj\03#1\B0\C0\15\E6\B1\86\D2\1A\B1\D0*\DB\B61\BB\93\EF\12H\9D\99J\1D\F2\9D\B40Y\1E\CC\C4\0D^\17\A9\EFT\EA\0Frr\B6\C9\F8\ADPTx6R\B8?\92\AF\F3\92\EB\FC\CAu{S\C4\AA\00\C9\EE\98gZ\B4\98\95\EAs\90\ABW\B0W\87R\E1p\89\ABIq\AE8V\C9\0Dx\D0\C0\8C3\E5\C3\82\12\9B\E4\CC\95\DBB\0Ah\E6\BAkm\B4\AB\8B\8B\08\F7\AB\E3B\F3\96r\A2\BA1\F1\02>\E6\15\F9\B4\E09Rz&\EB\B9\82k\C8\89\85F\D7\14,/q\92\98X\B0\EA\D0\5C\D3\F4U\109\D9EB\8D\E94>\EA\8F\10\9Fa5|:\0A6\9Cnk\13\EEC3o\0D\0A\AE\FC\AB3\EFo\1F\FFO?4^\DF\84\82\CD\7F\9D6V\E7\81%\DFA\C1\E5\C3\BA\9C<[\C5\7F\8D'\80S\C0#\C0g\80\CF\03O\01_\01\9E\07^\02\BE\09\FC#\F0&\F0]\E0\97\C0o\81\DF\03\7F\C2Za-0\15\98\05\CC\03\CE\02\CE\03\CC\C0\85\80\05h\05\5C\80\1FX\05\AC\05.\056\00W\02\D7\00\D7\01\1C\10\02:\81\18\90\02\D2\00\FAx)&\99\A5{\80\FD\C0a\E0n\E0\18p\12\F88\F0)\E0\B3\C0\13\C0\D3\00\F4^\0A\BD\97B\EF\A5\D0{\E9\0F\81\7F\03~\0E\FC\17\F06\F0\07\E0\7F\F1\9C\16\CEX\86\F0\BFl60\1FX\08,\02\16\03K\81&\C0\0Ex\80\8B\80\D5\C0z\E0r\E0\0A\E0*\E0Z\E0z\80\07\B6\02]@\1C\D8\0E\F4\03\B7\00\83\C0>\E0 p\07p\148\0E<\08|\02x\14\F8\1C\F0\05\E0\CB\C0s\C0\D7\81\7F\00^\03\BE\0D\FC3\F0/\C0O\80\9F\01\BF\02~\07\BC\03\FC\19\0F\F9&\01`\C5\F2z\E0\0C\E0l\E0|\E0\02\A0\11\B0\026\C0\0D\B4\01\17\03\EB\80\CB\80\8D\C0&\E0\A3@;\10\04:\800\B0\0D\E8\06\FA\80\9B\81\01`/p\008\02\DC\03\DC\07<\00<\0C|\1Ax\1Cx\12\F8\12\F0,\F0\22\F02\F0*\F0-\E0-\E0\07\C0\8F\81\9F\02\E0\D6rpk9\B8\B5\1C\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\18\13\16\8C\09\0B\C6\84\05c\C2\821a\C1\98\B0`LX0&,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15c\C2\8A1a\C5\98\B0bLX1&\AC\CF\00_\03\BE\01\BC\82\C4\F0\E2z\F2\A3Y\BB\A7\B0N\CB\93\CC\F0\8C\CDjj\98\943C,\FD\93\9C\DC\86\9C\DC\B7\F6\8A\0D\1B\D6l\5C\B7\09\F9\B7\C3\8E\9B\14\A7\CB\CB\D9\9C\A2\D3\E1s\19\F2o\AC\F9*\B5\D9\F5T\A5\10k\A1\AB\0E\B2k\A1\D7\B1k\A1\0Fa-t\F9\D9\86\B5\D0\E5u\DAb\C3\B2w\D4\C5\09\AD\D9\0A\0B\A1\A7\F4\0B\A1\CB\0E\D0\D6\B2L\D5\80nA\F2.\BA \99\AB\EA\91\EB\C7\AA{\E4z\BDN\CE\14\ED\E7\1D\A6?\1A*\B7\EB\16\A0\1E\A3\EB\97\A7\CA\AE_\9EIWy\A6\E7\D4\94^\BF\869\A4)[J\9B2\FCe\CE\EB\C6\EC\F7\1A\E5j\14\9B\F2\A0\CA\00\B2\C2F|\D8\B8KS\B4\B1\9F\A9\FA\80\A1\AA_k\B5\B1\05f7\D6\CBfO\85W'K\CC\A5\92\FE\D2\C9k\E5K\DFG\EEX|\A7\DFS\E5W\9BqX\F7\B4|XG\9A\89\AB\FDFn\C8\F2Yyi\B1X\D9\1B\F4\CA\9A\5C\1A\D7M\CB\D5\E5_xV>w\06\15=57\10LIaA\B1\A7\E8\93<=\A8\D5\E8R\B8\E3+!Y\D0K\AEyV\BB\97\ACy\82\A9\CA\19\94\0C\CBU\17\10E\B8\B2\1E]@=:\A3\E8\97\1A\C3[\C0\97\05\A0\A0\A6N{>\82\11^\ACa\F04\DC(\BF\A6\A3s\A0\E9(\D3<oh>I\1D \95u\C0\22\AA\B2*K\F9\B9Q\D7\08\1D\91\DFC\DC\B8)\D5\C1\C5\87X\07\D7\AC\B8M{\A3\81\DE\DF\97\A0\82h0\EFR\EA\BD\95z\EF5R\81\E7\E5\EE\E1\A3]1),\9A\89e\E6\84\BCbd\0E\A1 Q\92\985't\1A\91E\85\12\1Am5\90s\0B%\E7G\98\AA!\83\F2\9D\B4on\18\C6pW\9F\AE\8C\8C\9B\A6\E3\B4\B1#\8C\82\1D\06\05#TA~\18\BF\F2\92\C9\13\D8*\86ccH\9B\F2?i#\D1v+c]\DC\10m/\A1\D1\D6;\1E\D1\F6\8B4\DA\C6*D\DB\1B\0D]\E1\A0D_\AA'\FA\5C*\1A\CF\1D\E3\A9HiJ\DFY9\D6v\19\E8|5\A5\F3\E5L\D5N\83\8A[)[\DA\87\F1k\C6\D3\E1\F2\BD\B4\A5C\8Cv\E1\D1\1Al\E8\9F\00\F1\E8\D8\C6\BF\C3\D5\C5\BF\88\C1\AA\8D\94\16k\F5\B4h\A2\02/\C8\1D\97'a3\171\8B=\22O\D2\A0\B0\D8\84\AF\02\02b\C4,%KO\CFS\AB\8B\82\DB\0C\B4y\8E\D2\E6I\A6j\D4`\C2\8D\B4c\02e;f>\ED\98i\DA\0F\0DF8AO\A5m\BD\CB\E8\173\E8\F7m\EA\E2\97\F5.\FE<\15\F7\89\DC\EA\87\AE\DA*\CA\EE\E4\0B!\C2,%\88\C3\13[\A3\F1$\5Cn\0EE\E3\E6$\AA\A8\A7I/\9Bg,\96\C3\A5y\05\99\8C\C8\E3\F3U\E6\E6h\E1[\02\F7\1F\ABv\98\1B\1B\CD-\AD\C5\05[Vp\F1\8ET\17\F1\CB\AA\96\96\96\F6\C5-3f\C8\0FB\DA\A6\CB\B3\1BQ\A1\A89}u\A6\ABG+\D8^\C7x\B1\CF\10l=4\D8Z\C7#\D8>J\83\ED\B6\0A\C16a\E8r'\ED\F2e\FA.\9FGE#x%\D1'\A5\A3\ED]\95\A3m\B7a\D8l\A6\C3\E6CL\D5\E4D\88\B6\C7hK\B73\DA\A5F+\EF&\D1Vv\E9\D8\86\DB\BB\AA\0B\B7\DB\0Df]I\89\F1A=1lT\E0\85\B9\07\94pk&\D6\0C'\E4\D6\BC]]\C8M\1B\B8\F3\18\E5\CE)\A6j\CF\84\08\B9\A6\B7i[?c\F4\EB5\E8\F7\02u\F3Sz7\9F\A4\E2\EE\CA\AD>BB\AE\EC\E3\91\C4\DC\E6f\F9\D2\A1B/9i\08\BFr\E1b6\E0\EAZ\19\93\00{\90\F1\D9\80!\C0\DEH\03l`<\02\EC\8F\AA\CFf\FBO#\9B\15\A2|\E9\D4dJ\E5\F8z\B3a\8C|\8D\8E\91/2U3\13e\E5`\1A\BD\0Dg\A7\D4\1D\06\0D=\D4\89V\BD\13\CF\A4\E2\D0\C9\CA\06\1C\FA0x/#\E0&\83\80n\EA\82\CE\B2.x?U\9AJ\1B\BF\D5\83{\AB\0B\E7\B7\18\0C\BC\86z\F0\C3z\0F\BA\A9@K\EEa\F97L\5CR4\C309\95\E2\88-\E6P<\DAE\8A\E4\F0B\BCQ:\A6?Q]L\CF\1A\F8\BA\8D\F25\C4T\BDu\82,&\FC=m\EC\11F\C1\9D\06\05\B3T\C1\DE\B2\0A6\CBmN2\B2\09S\10\1F\8D\84\A4\0Ee\91*5\82\17\C9F7(\1F`l>`\08\CA\12\0D\CA\D7\8FGP\FEa\F5Ay\F04\82r\AC\B3c\C4Ayo\F5Ay\D7\84\0F\CA\BBO3(\EB\1Ci\0C\CA{F3(C\DA\F8\05\E5\A3\D5\05\E5}\06\03\AF\A6\1E\BC\5C\EFA'\15\B8,\F7\90\10\DD\1E\09G9\A1\C9,g\DBMf)\82\87N\E1pa\8D7\C6\F1\9D\10<DH~\B2\BA\90\BC\DF\C0\D68ek\07S57AB\F2\13\B4\B1O2\0A\DEfPp\80*\98.\AB`\8B!$+\5CR\A3\B0r\A60M\86\DF\D3\98\ECb\8C\BE\C7\10\93g\D3\98<i<b\F2 \8D\C9\89\0A1\F9\A0\A1\87\DCt0X\F4\83a>\15\8D\991\D1)&\F9\AD#~\CAv\A4\FA\A7l\87&\FCS\B6\DBO\F3)\9BT\FE)\DB\E1\D1|\CA&\8D_H\DE[]H\BE\C3`\DEz\EA\BD6\BD\F7\8Aw\E6\C9\DDIV6\B8B\FC\95\22I1\1E\8B\8B\F8,\1D\82\BB\AA\0B\C1w\1B\98\B9\8C2s\11S\F5\CE\89\B1\D2\D1E\DB\0A2\FA\DDe\D0o\05\F5\AC]\EF\D9s\A9\B89\B9\DB\8A\17\1C\A41Ya\10\18]O\1A\02\E7*\1A8\9D\E3\118\9F\A8~\09\F7\E8i,\E1\CA\CF)G\BA\84{\AC\FA%\DC\FC\84^\C2\BDw4\97p\C7\F8\D1o\E1\D1uU\B1\EC>\83YWPb\AC\D3\13\A3\99\0A\5C\9C;\815\C4\EDfALrX\D7\13\CC\B2\18s4\84\F0\A6\AC%\96\9EkM\D5E\B5\FB\0D\C4y\9A\12\E71\A6\EA\F1\89\F1\C8\CCD\DBz\9B\D1\EF\84A\BFW\A8\8F_\D0\FB\F8\D3T\DC\C9\DC\EA\E3d\FD\96\D0E[\A0\15\A4D,\CC\F5&\E4U\DB\82\D3\93bOR\F6|$\8A\C2\B8Z\B5eFa\F1\17'\B1\E8+J\F2\B9\C2\BA\BB\14i2c\E17\16\8Fv\C3\19\829\D8\AB,\02\C7\E3b\22\16\95w\E1!g;\E2\5C\97\EE\E1\99\AC\CC\0AE\C4\E8/\E5V\F1+\B5}\B2\1F\BB\13\C9h\BC\E8\D5\99I\C5U\AA~}r\C1\DF\91\F7\F8\16i/\C0\9D\FA\16\BE\CEV^\91\0B\85\C8\A6x\BA\0D\1AN\8D\E1\06\0D\AADv{\85\EBF\BE\BD\C2\B5\ACu\0F\96\B0\8E\AD\F1@\89\1A\AC6R)m\E6U\AF\CD\F9lK\CA\AB\AA\90eo+l\A3\B1P\ABp\03\A90\9DT\A8#\9Bg\B0\9B\95\08\86\CDJ\D8\8B\83\EC\C5\C4\88v\ED$ONn\D4\8CXG{\C3\AF7\A2\8E1\A2n\CD\8BC\BD:\CD\1A\C7\17\BF\87[x\0D\94\A8\10\D2*p\A4\C25\9A\0A\1B\E4\96\E4\97\B4/\A9\E4G_\A5\0A^\B6S\B9\A2NU\F7g`\9D%\1A=\BDX;\B9\95\9C\9CON\CEV\B7j(\FC\AA\99\F5iG\F5>\D5\EB\FBxu>\ED\A8\E4\D3\D0\C8}\BA\AER\85\B5\EC\0B\BF\A1\F2/\FC\BAy\DE\0B>\B3C'>jC'^i\E8\DCXn\E8t\19\86\0E\DB\93\E1\11\F7d\CD\D3\E5zr\11+Ac\A4\8Bk\B3\EB\BB\B2s\0C\87G\0B\ABL'\AB\8C\B6\9F\0F\F5f\C4\E8M\DA\17\DB\8A\FAB\E9v\F6\EA\981\12Q;\A3cH\D9\8B\89\1EVV\D4\F9D\8F\B3\D9]\89\86\A0k\DF\A8\D1\B5\AF\12]\13\E5\E8\DA]\81\AE\A9\91\D35U\1D]S\15\E9\9A\1C?\BA&+\D2u{9\BA\A6+\D1\B5\B7\1C]{\C6\9A\AE\8BXQ\8A\9D\1E\9B/\D4f\F7\EA\08:0j\04\1D\A8D\D0\FEr\04\BD\B9B*\B2\A3\5C*rS\F5\EC\9D\C2\1A\F1\C1\86\EA\A6\CD\9B*M\9B\99\F1KE2\15S\91[\CA\917k$/\EB\CD\9D#\F6f\CD\A1\EA\BC\B9\B3\927o\1D\EB$d\11+J\F1\A6[\10xuC\0F:D\0E\8C\DA\109Pi\88\0C\96\1B\22{+\0C\91\DD\E5\86\C8\9E\EA;\B5\965\A2\F9\B2\EA:uO\A5N\DD5~CdW\C5!\B2\AF\DC\10\D9_i\88\DC6bo6.\AC\CE\9B\B7U\F2fn\FC\86H\AE\E2\10\B9g\D4\86\C8=\95\86\C8\C1rC\E4H\85!r{\B9!r\B8\FAN\9D\CA\1AQ\7F{u\9Dz\B8R\A7\1E\1A\BF!r\A8\E2\10\B9\A3\DC\10\B9\BBR\0AtW\B9\14\E8\CE\F1K\81\EE\AC\98\02\9D\1C5\F2\9E\ACD\DE\A3\E5\C8{\ACB\8E~\EF\C8s\F4\96\EAr\F4{+\E6\E8\F9\F1\CB\D1\F3\15s\F4\FB\CA\11\F4\FEJ\04=Q\8E\A0\C7\C7\8F\A0\C7K\10\94\EC\B5\D4+\BF\11\EF-\EC\F2\19\CA\15\07\8Dl\D1\EBo\CC\FEK\B4X\DE>\89\BC/\EF\90\FF.\07=a\F7\04\04\AF\0B#>\E8\E6]\0E\1F\EF\15K\FD\B1\08\D3}D\BA\C3\E1\A0\D2\9D\EC\C6rd\CB\E0\E4\16{\9B\C7\E6p\DB\E4?!\A1\ED\E4\C4\D9\FB\E5\B5\AD\F6\F6\EC\EE\90\14\11\02\CA\9EV\DA\BB\F7j\A1\A6\A4\FCR\BFZj\F7\06\04\97\C7\EB\16y^\E0\82\BE\A0`\F7\94T\F1\98\AC\A2\AFH\C5\05\C5*\EEPw4\CE\EE\8B\C5\C9_s\91\17\FA\89\1E\8B\94\BF\BE\A1=Gz\BE\B8\86\A6\D4J\A2\94Z\C5n/\AA\02\0D\DD\0E\AF\D3\17\E4=\1E7\E7t\DB]|I\0D\93DC\A7\ADHC:\AE\B2\9At\C65j!\EB\1AM\0Bo\C0\E3\E2\05\87\83\0F\F9\DC\9C\D7\11\0C\96\13\ECu\0E-\98\FC\9C\DC \98\14\1A\05\93\D2j\05o#\82]\AE\D2\82\D5\17\DD\98]\BD\942Ml+\C4z\95\C2j\A5\E6d\A9>7\95\BA\DC@Vu\A7k{\7F\A8Q\EA\0Ar\8E\FE\16\B2\81t$;(E\BA\A3\9D\22\B3\83Z\A1H\D3\A9\89l\EB[(\B3\BB\03\02\0F}<Ng\88\E3D\9F\BB\A4B\F7\12\85@\11\AA\90\85*T\F8K2\9E\10\87\E1moP\F5rh;pg\F7\0A\D1\80\F2p\88\19\DD\B4X\D3\CC)\8Fnz\82x,\E4\108Qt\DB\1D^\9B\8B\F7q\A5\14\9C\F4aYA\A7\83n\B7Q\93\22\ED\B9\D0\9E[\E6\B8\E7\B2\8D\EB\D6o\BC\8A\EC\E2\CC9m\A2\C7\17\0C\8A\02\CFqA\E3\1F\97\C9\0E\16\EA\12e\17(c\AB\F0\93\AD\E7\953\AF\E2\A1\E5w\98M6j\E71\9Bl\D4.xM\DE\E2U\BF\C9F\CD)m\96\AB\D1~\ED\A74Z~\8B\8D\DA3\D5G\86\EA\16\1B5\0E\DA\D6R\A6\EA\19JUu7\8B\BDrEy7\8B\9B\86\F1\D0<5\EA\7F\18\0E^\AA\FCD\AF\D8\92\F9\86\E7\A4^\FA\9C\B4I\FF\9Ct\01}\EA7cP\9D\8F\A61\0F\1A\AB~\0Ahz\87Lk\0B\DE\D0\DCO\A6\B5)Gef\BD\85O\91=\B3y,\9E\FE\D5\A4\C8,\BEY\934\8FH\FA\A06\8B\AF\94/\91\B7\E2t0[q.\A1\EE<'\BF+U\FAO\7F\B1\E6\CD/2\8F\8CxI\1EP\C5\11\97\CE\D6\03\DA\CC\A3\FD}-v\A6i\D2F]\95\B3s\88H\F3\F8\FD\A5\A4\C9\BF\F2b\B6B'\05\9A,+d\B9HI\15\A2\0E\CD5\CD8\06\E3\A7\1C\AE\B4\F5W\DD\BF\A3`v\F9\BD\BE\0C\17\E96:T\8B#?G\C1\E3U\B65!6>\9B%\A0\C0\5C\FA\DC\B6\A5\84\22\86\E2\EE{@\A2\95F\97\9C\C6\E6\88\E7*m4\FC\0F\0A\D6*_\E2\1F\87\9C9\A3eh\DD\83h\ED\9B\EF\A5\CBU#'\85\C80T\BE\D4\AF\C0\B1o\CC\BB\B9\95\ECowj\F4\DB\AD\0B\C0\AB/T_\FF\C2gPp\ED\E9\C9\8C\CD\02-\CF-}\EE\BC)(Xg(\DE>\15j>=\AA\96\CF\DC\86\82\FA\B1\EC\B3\19y\14\CC\AA\AAjTB\C1\F7\19Gk[:\AA%\89K\C9\046\96\0A\CF\AAE\C1bCq\FC,\F4\D7O\CA\5CwN\04\05-\C3 \C0\A3d]\A0\F4\B9m'\C8c\E8\EA\DB:\D7\81\02oqI\C39(\B9\B8\FA\16F\BEu\E4\F6~\E0\16`\10\D8\07\1C\04N\02\08|\DB?\05|\16x\02x\1Ax\06\F8\1A\F0&\F0]\E0\97\C0o\81\DF\03\7F\C2\E32\F8\BE\07,\EF\C1\E0\E8\99\07\C0\E9=\E7\01f\E0B\C0\02\B4\02.\C0\0F\AC\02\D6\02`E\CF\06\E0J\E0\1A\E0:\80\03\10\A4z:\81\18\90\02\D2\008\D5\83\89\B9g\0F\B0\1F\80\AF{N\01\8F\00_\02\9E\05^\07\FE\09\F8\19\F0+\E0w\C0;\C0\9F\B1,0\09\80\C7z\EB\813\80\B3\81\F3\81\8B\80\D5\C0z\E0r\E0\0A\E0*\E0Z\E0z\80\07\B6\02]@\1C\D8\0E@\87^\E8\D0{\18\B8\1B8\06\C0w\BD\F0]/|\D7\0B\DF\F5\C2w\BD\F0]/|\D7\0B\DF\F5~\03x\05x\03@\AF\F5~\1F\F8W\E0?\80_\00\BF\010\03\F5\BE\8B\E7\A45\00|\97\86\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\BB\80\9C\C9\94>\04\DCI^&\01\E0\BB4|\97\86\EF\D2\9F\01>\0F<\05|\05x\1Ex\09\F8&\F0\03\E0\C7\C0O\01\F4y\1A}\9EF\9F\A7\D1\E7}s\803\010\B6\EF}@\03\B0\0Ch\06\C0\EB>/\80\F9\A5\0F3s\DF&\E0\A3@;\10\05\92\00x\D7\07\DE\F5\81w}w\00G\81\E3\00\A6\CA\BEO\00\18g}\9F\03\BE\00|\19x\0E\F8:\00\DF\F5\C1w}\F0]\1F|\D7\07\DF\F5\C1w}\F0]\1F|\D7\0F\DF\F5#\10\F7\CF\04\C0\F7\FE\05\C0\B9\C0\FB\81%\C0r\00}\DE\8F>\EFG\9F\F7\A3\CF\FB\D1\E7\FD\E8\F3~\F8\AE\BF\07\D8\0B\1C\00\8E\00H8\FA\EF\03\1E\00\1E\06>\0D<\0E<\09\80w\FD\E0]\FF\8B\C0\CB\C0\AB\E4i-\F0\16\F0\9F\C0\AF\F1\D4\11\BC\CB\80w\19\F0.\03\DEe\A0C\06:dZ\00'\E0\03V\02\97\00\D0!\03\DEe\C0\BB\0C\FA/\83\FE\CB\80\FB\19p?\03\EEg\C0\BB\0Cx\97A\FFe\A0C\06:d\A0C\06:d\A0C\06:d\A0C\E6G\002\CB\0Ct\C8\10\1D\FE\1B\F8#\1E\06c\DC\EF\98\0C\CC\C0\81\E9\FF\00" }, section ".note.rustc" | |
@llvm.used = appending global [1 x i8*] [i8* getelementptr inbounds ({ [7415 x i8] }* @rust_metadata, i32 0, i32 0, i32 0)] | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0 | |
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0 | |
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #0 | |
declare i32 @upcall_rust_personality() #0 | |
declare void @upcall_reset_stack_limit() #0 | |
define void @"_ZN10ValidUsage10ValidUsage5Valid17_1e8f9dbf9d8188c814_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, i64) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 0, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1 | |
store i64 %2, i64* %4, align 8 | |
ret void | |
} | |
define void @"_ZN6Action6Action4Call17_9e9a747d18168a1e14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0 | |
store i64 0, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1 | |
store void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* %2, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %4, align 8 | |
ret void | |
} | |
define void @"_ZN6Action6Action8CallMain17_b2673849a278305b14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 { | |
"function top level": | |
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0 | |
store i64 1, i64* %4, align 8 | |
%5 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1 | |
%6 = bitcast %str_slice* %2 to i8* | |
%7 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %5 to i8* | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 16, i32 8, i1 false) | |
%8 = getelementptr inbounds %enum.Action* %0, i64 0, i32 2, i64 8 | |
%9 = bitcast i8* %8 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %3, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %9, align 8 | |
ret void | |
} | |
define void @"_ZN11UsageSource11UsageSource6UsgStr17_4518e7c6172c203814_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0 | |
store i64 0, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1 | |
%5 = bitcast %str_slice* %2 to i8* | |
%6 = bitcast %str_slice* %4 to i8* | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 16, i32 8, i1 false) | |
ret void | |
} | |
define void @"_ZN11UsageSource11UsageSource7UsgCall17_f5952b30e8baf33714_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0 | |
store i64 1, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1, i32 0 | |
%.c = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %2 to i8* | |
store i8* %.c, i8** %4, align 8 | |
ret void | |
} | |
declare void @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
define void @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 { | |
"function top level": | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%1 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
%2 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 0 | |
%3 = load i64* %2, align 8 | |
%4 = icmp eq i64 %3, 0 | |
br i1 %4, label %cond, label %next | |
next: ; preds = %"function top level" | |
%5 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0 | |
%6 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %6) | |
%7 = load { i64, i64, [0 x i8] }** %5, align 8 | |
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0 | |
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0 | |
%10 = load i64* %9, align 8 | |
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %8, i8** %11, align 8 | |
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %10, i64* %12, align 8 | |
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13) | |
to label %"normal return1" unwind label %unwind | |
cond: ; preds = %"function top level" | |
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([40 x i8]* @str10726, i64 0, i64 0), i64 121, i64 0, i64 0) | |
to label %"normal return" unwind label %unwind | |
"normal return": ; preds = %cond | |
unreachable | |
unwind: ; preds = %next, %cond | |
%15 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%16 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null | |
br i1 %16, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit", label %cond.i | |
cond.i: ; preds = %unwind | |
%17 = load i64* %2, align 8 | |
%18 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0 | |
%19 = bitcast { i64, i64, [0 x i8] }** %18 to i8* | |
%20 = getelementptr inbounds i8* %19, i64 %17 | |
%21 = bitcast i8* %20 to { i64, i64, [0 x i8] }** | |
%22 = icmp ult { i64, i64, [0 x i8] }** %18, %21 | |
br i1 %22, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i" | |
iter_vec_loop_body.i.i: ; preds = %cond.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i" | |
%23 = phi { i64, i64, [0 x i8] }** [ %27, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i" ], [ %18, %cond.i ] | |
%24 = load { i64, i64, [0 x i8] }** %23, align 8 | |
%25 = icmp eq { i64, i64, [0 x i8] }* %24, null | |
br i1 %25, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i", label %cond.i.i.i.i | |
cond.i.i.i.i: ; preds = %iter_vec_loop_body.i.i | |
%26 = bitcast { i64, i64, [0 x i8] }* %24 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %26) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i": ; preds = %cond.i.i.i.i, %iter_vec_loop_body.i.i | |
%27 = getelementptr inbounds { i64, i64, [0 x i8] }** %23, i64 1 | |
%28 = icmp ult { i64, i64, [0 x i8] }** %27, %21 | |
br i1 %28, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i", %cond.i | |
%29 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %29) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit": ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i" | |
resume { i8*, i32 } %15 | |
"normal return1": ; preds = %next | |
call void @llvm.lifetime.end(i64 16, i8* %6) | |
%30 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null | |
br i1 %30, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10", label %cond.i5 | |
cond.i5: ; preds = %"normal return1" | |
%31 = load i64* %2, align 8 | |
%32 = bitcast { i64, i64, [0 x i8] }** %5 to i8* | |
%33 = getelementptr inbounds i8* %32, i64 %31 | |
%34 = bitcast i8* %33 to { i64, i64, [0 x i8] }** | |
%35 = icmp ult { i64, i64, [0 x i8] }** %5, %34 | |
br i1 %35, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9" | |
iter_vec_loop_body.i.i6: ; preds = %cond.i5, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8" | |
%36 = phi { i64, i64, [0 x i8] }** [ %40, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8" ], [ %5, %cond.i5 ] | |
%37 = load { i64, i64, [0 x i8] }** %36, align 8 | |
%38 = icmp eq { i64, i64, [0 x i8] }* %37, null | |
br i1 %38, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8", label %cond.i.i.i.i7 | |
cond.i.i.i.i7: ; preds = %iter_vec_loop_body.i.i6 | |
%39 = bitcast { i64, i64, [0 x i8] }* %37 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %39) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8": ; preds = %cond.i.i.i.i7, %iter_vec_loop_body.i.i6 | |
%40 = getelementptr inbounds { i64, i64, [0 x i8] }** %36, i64 1 | |
%41 = icmp ult { i64, i64, [0 x i8] }** %40, %34 | |
br i1 %41, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8", %cond.i5 | |
%42 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %42) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10": ; preds = %"normal return1", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9" | |
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 2, i64 0 | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0 | |
%45 = load i64* %44, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %43, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx15 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %45, i64* %__adjust.sroa.1.8..idx15, align 8 | |
%46 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
invoke void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %46) | |
to label %"normal return2" unwind label %unwind3 | |
"normal return2": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10" | |
%47 = icmp eq { i64, i64, [0 x i8] }* %14, null | |
br i1 %47, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit", label %cond.i11 | |
cond.i11: ; preds = %"normal return2" | |
%48 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit": ; preds = %"normal return2", %cond.i11 | |
ret void | |
unwind3: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10" | |
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%50 = icmp eq { i64, i64, [0 x i8] }* %14, null | |
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit13", label %cond.i12 | |
cond.i12: ; preds = %unwind3 | |
%51 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit13" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit13": ; preds = %unwind3, %cond.i12 | |
resume { i8*, i32 } %49 | |
} | |
define void @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i62 = alloca { i64, i64, [0 x i8] }*, align 8 | |
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg.i = alloca %str_slice, align 8 | |
%__arg2.i = alloca %str_slice, align 8 | |
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8 | |
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%__adjust2 = alloca { i8*, i64 }, align 8 | |
%__arg6 = alloca %str_slice, align 8 | |
%5 = alloca [3 x { i64, i64, [0 x i8] }*], align 8 | |
%__adjust7 = alloca { i8*, i64 }, align 8 | |
%__adjust15 = alloca { i8*, i64 }, align 8 | |
%__arg20 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg22 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%__adjust27 = alloca { i8*, i64 }, align 8 | |
%__arg33 = alloca { i8*, i64 }, align 8 | |
%__arg35 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%.sub = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0 | |
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%7 = load i64* %6, align 8 | |
%8 = icmp sgt i64 %7, 7 | |
br i1 %8, label %match_case, label %compare_vec_len_next | |
match_case: ; preds = %"function top level" | |
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%10 = load { i64, i64, [0 x i8] }*** %9, align 8 | |
%11 = getelementptr inbounds { i64, i64, [0 x i8] }** %10, i64 1 | |
%12 = add i64 %7, -8 | |
%13 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%14 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 2, i64 0 | |
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 0 | |
%16 = load i64* %15, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %14, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx145 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %16, i64* %__adjust.sroa.1.8..idx145, align 8 | |
%17 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %17) | |
%18 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke void @"_ZN4path14__extensions__10meth_225818filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %18) | |
to label %"normal return" unwind label %unwind | |
compare_vec_len_next: ; preds = %"function top level" | |
%19 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %19, align 8 | |
br label %join | |
"normal return": ; preds = %match_case | |
%20 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%21 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %20, align 8 | |
%22 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, null | |
br i1 %22, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit, label %cond.i.i.i | |
cond.i.i.i: ; preds = %"normal return" | |
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 0 | |
%24 = load i64* %23, align 8 | |
%25 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 2, i64 0 | |
%26 = bitcast { i64, i64, [0 x i8] }** %25 to i8* | |
%27 = getelementptr inbounds i8* %26, i64 %24 | |
%28 = bitcast i8* %27 to { i64, i64, [0 x i8] }** | |
%29 = icmp ult { i64, i64, [0 x i8] }** %25, %28 | |
br i1 %29, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i" | |
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" | |
%30 = phi { i64, i64, [0 x i8] }** [ %34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" ], [ %25, %cond.i.i.i ] | |
%31 = load { i64, i64, [0 x i8] }** %30, align 8 | |
%32 = icmp eq { i64, i64, [0 x i8] }* %31, null | |
br i1 %32, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", label %cond.i.i.i.i.i.i | |
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i | |
%33 = bitcast { i64, i64, [0 x i8] }* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i | |
%34 = getelementptr inbounds { i64, i64, [0 x i8] }** %30, i64 1 | |
%35 = icmp ult { i64, i64, [0 x i8] }** %34, %28 | |
br i1 %35, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", %cond.i.i.i | |
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i" | |
%37 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0 | |
%38 = load { i64, i64, [0 x i8] }** %37, align 8 | |
%39 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %39) | |
%40 = bitcast %str_slice* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %40) | |
%41 = bitcast %str_slice* %__arg2.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %41) | |
%42 = icmp eq { i64, i64, [0 x i8] }* %38, null | |
br i1 %42, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit | |
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([20 x i8]* @str11026, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8 | |
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1 | |
store i64 20, i64* %.sroa.111.8..idx12.i, align 8 | |
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([41 x i8]* @str11027, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8 | |
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1 | |
store i64 41, i64* %.sroa.18.8..idx9.i, align 8 | |
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320) | |
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i" | |
"normal return.i": ; preds = %match_else.i | |
unreachable | |
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i": ; preds = %match_else.i | |
%43 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
resume { i8*, i32 } %43 | |
"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit | |
call void @llvm.lifetime.end(i64 0, i8* %39) | |
call void @llvm.lifetime.end(i64 16, i8* %40) | |
call void @llvm.lifetime.end(i64 16, i8* %41) | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0 | |
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0 | |
%46 = load i64* %45, align 8 | |
%47 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0 | |
store i8* %44, i8** %47, align 8 | |
%48 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1 | |
store i64 %46, i64* %48, align 8 | |
%49 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %50) | |
%51 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %49) | |
to label %.noexc unwind label %unwind4 | |
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
store { i64, i64, [0 x i8] }* %51, { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%52 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%53 = getelementptr inbounds { i64, i64, [0 x i8] }* %51, i64 0, i32 0 | |
%54 = load i64* %53, align 8 | |
%55 = lshr i64 %54, 1 | |
%56 = or i64 %55, %54 | |
%57 = lshr i64 %56, 2 | |
%58 = or i64 %57, %56 | |
%59 = lshr i64 %58, 4 | |
%60 = or i64 %59, %58 | |
%61 = lshr i64 %60, 8 | |
%62 = or i64 %61, %60 | |
%63 = lshr i64 %62, 16 | |
%64 = or i64 %63, %62 | |
%65 = lshr i64 %64, 32 | |
%66 = or i64 %65, %64 | |
%67 = add i64 %66, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %52, i64 %67) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" unwind label %unwind.i40 | |
unwind.i40: ; preds = %.noexc | |
%68 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%69 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%70 = icmp eq { i64, i64, [0 x i8] }* %69, null | |
br i1 %70, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49", label %cond.i.i2.i | |
cond.i.i2.i: ; preds = %unwind.i40 | |
%71 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %71) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49" unwind label %unwind4 | |
unwind: ; preds = %match_case | |
%72 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%73 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%74 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %73, align 8 | |
%75 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, null | |
br i1 %75, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit47, label %cond.i.i.i42 | |
cond.i.i.i42: ; preds = %unwind | |
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 0 | |
%77 = load i64* %76, align 8 | |
%78 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 2, i64 0 | |
%79 = bitcast { i64, i64, [0 x i8] }** %78 to i8* | |
%80 = getelementptr inbounds i8* %79, i64 %77 | |
%81 = bitcast i8* %80 to { i64, i64, [0 x i8] }** | |
%82 = icmp ult { i64, i64, [0 x i8] }** %78, %81 | |
br i1 %82, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46" | |
iter_vec_loop_body.i.i.i.i43: ; preds = %cond.i.i.i42, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45" | |
%83 = phi { i64, i64, [0 x i8] }** [ %87, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45" ], [ %78, %cond.i.i.i42 ] | |
%84 = load { i64, i64, [0 x i8] }** %83, align 8 | |
%85 = icmp eq { i64, i64, [0 x i8] }* %84, null | |
br i1 %85, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45", label %cond.i.i.i.i.i.i44 | |
cond.i.i.i.i.i.i44: ; preds = %iter_vec_loop_body.i.i.i.i43 | |
%86 = bitcast { i64, i64, [0 x i8] }* %84 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %86) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45": ; preds = %cond.i.i.i.i.i.i44, %iter_vec_loop_body.i.i.i.i43 | |
%87 = getelementptr inbounds { i64, i64, [0 x i8] }** %83, i64 1 | |
%88 = icmp ult { i64, i64, [0 x i8] }** %87, %81 | |
br i1 %88, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45", %cond.i.i.i42 | |
%89 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %89) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit47 | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit47: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46" | |
resume { i8*, i32 } %72 | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit": ; preds = %.noexc | |
%90 = add i64 %54, -1 | |
%91 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%92 = getelementptr inbounds { i64, i64, [0 x i8] }* %91, i64 0, i32 2, i64 0 | |
%93 = ptrtoint i8* %92 to i64 | |
%94 = add i64 %90, %93 | |
%95 = inttoptr i64 %94 to i8* | |
store i8 126, i8* %95, align 1 | |
%96 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%97 = add i64 %54, 1 | |
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 0, i32 0 | |
store i64 %97, i64* %98, align 8 | |
%99 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 1 | |
%100 = ptrtoint { i64, i64, [0 x i8] }* %99 to i64 | |
%101 = add i64 %100, %54 | |
%102 = inttoptr i64 %101 to i8* | |
store i8 0, i8* %102, align 1 | |
%103 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %50) | |
%104 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %104) | |
%.sroa.093.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0 | |
store i8* getelementptr inbounds ([6 x i8]* @str10648, i64 0, i64 0), i8** %.sroa.093.0..idx, align 8 | |
%.sroa.194.8..idx95 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1 | |
store i64 6, i64* %.sroa.194.8..idx95, align 8 | |
%105 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%106 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 2, i64 0 | |
%107 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 0 | |
%108 = load i64* %107, align 8 | |
%109 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 0 | |
store i8* %106, i8** %109, align 8 | |
%110 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 1 | |
store i64 %108, i64* %110, align 8 | |
%111 = bitcast { i8*, i64 }* %__adjust7 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%112 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %111) | |
to label %"normal return8" unwind label %unwind9 | |
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
%113 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49": ; preds = %unwind.i40, %cond.i.i2.i, %unwind4 | |
%eh.lpad-body = phi { i8*, i32 } [ %113, %unwind4 ], [ %68, %cond.i.i2.i ], [ %68, %unwind.i40 ] | |
call void @upcall_reset_stack_limit() | |
%114 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %114) | |
resume { i8*, i32 } %eh.lpad-body | |
"normal return8": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" | |
store { i64, i64, [0 x i8] }* %112, { i64, i64, [0 x i8] }** %.sub, align 8 | |
%115 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1 | |
%116 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11051, i64 0, i64 0), i64 2) | |
to label %"normal return12" unwind label %unwind13 | |
unwind9: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" | |
%117 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract110 = extractvalue { i8*, i32 } %117, 0 | |
%.fca.1.extract112 = extractvalue { i8*, i32 } %117, 1 | |
br label %cleanup10 | |
cleanup10: ; preds = %cond.i.i52, %cleanup14, %unwind24, %unwind9 | |
%.sroa.0139.0 = phi i8* [ %.fca.0.extract128, %unwind24 ], [ %.fca.0.extract110, %unwind9 ], [ %.sroa.0139.2, %cleanup14 ], [ %.sroa.0139.2, %cond.i.i52 ] | |
%.sroa.1142.0 = phi i32 [ %.fca.1.extract130, %unwind24 ], [ %.fca.1.extract112, %unwind9 ], [ %.sroa.1142.2, %cleanup14 ], [ %.sroa.1142.2, %cond.i.i52 ] | |
%118 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i | |
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cleanup10 | |
%119 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup10 ], [ %123, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ] | |
%120 = load { i64, i64, [0 x i8] }** %119, align 8 | |
%121 = icmp eq { i64, i64, [0 x i8] }* %120, null | |
br i1 %121, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i51 | |
cond.i.i.i51: ; preds = %iter_vec_loop_body.i | |
%122 = bitcast { i64, i64, [0 x i8] }* %120 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %122) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i51, %iter_vec_loop_body.i | |
%123 = getelementptr inbounds { i64, i64, [0 x i8] }** %119, i64 1 | |
%124 = icmp ult { i64, i64, [0 x i8] }** %123, %118 | |
br i1 %124, label %iter_vec_loop_body.i, label %cleanup11 | |
cleanup11: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cond.i81, %unwind37, %cond.i.i77, %unwind30.body, %unwind26 | |
%.sroa.0139.1 = phi i8* [ %.fca.0.extract132, %unwind26 ], [ %eh.lpad-body73.fca.0.extract, %unwind30.body ], [ %eh.lpad-body73.fca.0.extract, %cond.i.i77 ], [ %.fca.0.extract136, %unwind37 ], [ %.fca.0.extract136, %cond.i81 ], [ %.sroa.0139.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ] | |
%.sroa.1142.1 = phi i32 [ %.fca.1.extract134, %unwind26 ], [ %eh.lpad-body73.fca.1.extract, %unwind30.body ], [ %eh.lpad-body73.fca.1.extract, %cond.i.i77 ], [ %.fca.1.extract138, %unwind37 ], [ %.fca.1.extract138, %cond.i81 ], [ %.sroa.1142.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ] | |
%125 = icmp eq { i64, i64, [0 x i8] }* %103, null | |
br i1 %125, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i | |
cond.i.i: ; preds = %cleanup11 | |
%126 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %126) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %cleanup11, %cond.i.i | |
%.fca.0.insert115 = insertvalue { i8*, i32 } undef, i8* %.sroa.0139.1, 0 | |
%.fca.1.insert118 = insertvalue { i8*, i32 } %.fca.0.insert115, i32 %.sroa.1142.1, 1 | |
resume { i8*, i32 } %.fca.1.insert118 | |
"normal return12": ; preds = %"normal return8" | |
store { i64, i64, [0 x i8] }* %116, { i64, i64, [0 x i8] }** %115, align 8 | |
%127 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 2, i64 0 | |
%128 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 0 | |
%129 = load i64* %128, align 8 | |
%130 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 0 | |
store i8* %127, i8** %130, align 8 | |
%131 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 1 | |
store i64 %129, i64* %131, align 8 | |
%132 = bitcast { i8*, i64 }* %__adjust15 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%133 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %132) | |
to label %"normal return16" unwind label %unwind17 | |
unwind13: ; preds = %"normal return8" | |
%134 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract120 = extractvalue { i8*, i32 } %134, 0 | |
%.fca.1.extract122 = extractvalue { i8*, i32 } %134, 1 | |
br label %cleanup14 | |
cleanup14: ; preds = %cond.i.i54, %unwind17, %unwind13 | |
%.sroa.0139.2 = phi i8* [ %.fca.0.extract120, %unwind13 ], [ %.fca.0.extract124, %unwind17 ], [ %.fca.0.extract124, %cond.i.i54 ] | |
%.sroa.1142.2 = phi i32 [ %.fca.1.extract122, %unwind13 ], [ %.fca.1.extract126, %unwind17 ], [ %.fca.1.extract126, %cond.i.i54 ] | |
%135 = load { i64, i64, [0 x i8] }** %.sub, align 8 | |
%136 = icmp eq { i64, i64, [0 x i8] }* %135, null | |
br i1 %136, label %cleanup10, label %cond.i.i52 | |
cond.i.i52: ; preds = %cleanup14 | |
%137 = bitcast { i64, i64, [0 x i8] }* %135 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %137) | |
br label %cleanup10 | |
"normal return16": ; preds = %"normal return12" | |
%138 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2 | |
store { i64, i64, [0 x i8] }* %133, { i64, i64, [0 x i8] }** %138, align 8 | |
%__adjust19.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust19.sroa.0.0..idx, align 8 | |
%__adjust19.sroa.1.8..idx92 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 1 | |
store i64 24, i64* %__adjust19.sroa.1.8..idx92, align 8 | |
%__adjust21.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 0 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust21.sroa.0.0..idx, align 8 | |
%__adjust21.sroa.1.8..idx91 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 1 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust21.sroa.1.8..idx91, align 8 | |
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg20, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22) | |
to label %"normal return23" unwind label %unwind24 | |
unwind17: ; preds = %"normal return12" | |
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract124 = extractvalue { i8*, i32 } %139, 0 | |
%.fca.1.extract126 = extractvalue { i8*, i32 } %139, 1 | |
%140 = load { i64, i64, [0 x i8] }** %115, align 8 | |
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null | |
br i1 %141, label %cleanup14, label %cond.i.i54 | |
cond.i.i54: ; preds = %unwind17 | |
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142) | |
br label %cleanup14 | |
"normal return23": ; preds = %"normal return16" | |
%143 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i56 | |
iter_vec_loop_body.i56: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58", %"normal return23" | |
%144 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return23" ], [ %148, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58" ] | |
%145 = load { i64, i64, [0 x i8] }** %144, align 8 | |
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null | |
br i1 %146, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58", label %cond.i.i.i57 | |
cond.i.i.i57: ; preds = %iter_vec_loop_body.i56 | |
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58": ; preds = %cond.i.i.i57, %iter_vec_loop_body.i56 | |
%148 = getelementptr inbounds { i64, i64, [0 x i8] }** %144, i64 1 | |
%149 = icmp ult { i64, i64, [0 x i8] }** %148, %143 | |
br i1 %149, label %iter_vec_loop_body.i56, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59" | |
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58" | |
%150 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11052, i64 0, i64 0), i64 2) | |
to label %"normal return25" unwind label %unwind26 | |
unwind24: ; preds = %"normal return16" | |
%151 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract128 = extractvalue { i8*, i32 } %151, 0 | |
%.fca.1.extract130 = extractvalue { i8*, i32 } %151, 1 | |
br label %cleanup10 | |
"normal return25": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59" | |
%152 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 2, i64 0 | |
%153 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 0 | |
%154 = load i64* %153, align 8 | |
%155 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 0 | |
store i8* %152, i8** %155, align 8 | |
%156 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 1 | |
store i64 %154, i64* %156, align 8 | |
%157 = bitcast { i8*, i64 }* %__adjust27 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%158 = load i64* %128, align 8 | |
%159 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %159) | |
%160 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %157) | |
to label %.noexc71 unwind label %unwind30 | |
.noexc71: ; preds = %"normal return25" | |
store { i64, i64, [0 x i8] }* %160, { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%161 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%162 = getelementptr inbounds { i64, i64, [0 x i8] }* %160, i64 0, i32 0 | |
%163 = load i64* %162, align 8 | |
%164 = add i64 %163, -1 | |
%165 = add i64 %158, -1 | |
%166 = add i64 %164, %165 | |
%167 = lshr i64 %166, 1 | |
%168 = or i64 %167, %166 | |
%169 = lshr i64 %168, 2 | |
%170 = or i64 %169, %168 | |
%171 = lshr i64 %170, 4 | |
%172 = or i64 %171, %170 | |
%173 = lshr i64 %172, 8 | |
%174 = or i64 %173, %172 | |
%175 = lshr i64 %174, 16 | |
%176 = or i64 %175, %174 | |
%177 = lshr i64 %176, 32 | |
%178 = or i64 %177, %176 | |
%179 = add i64 %178, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %161, i64 %179) | |
to label %"normal return29" unwind label %unwind.i68 | |
unwind.i68: ; preds = %.noexc71 | |
%180 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%181 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%182 = icmp eq { i64, i64, [0 x i8] }* %181, null | |
br i1 %182, label %unwind30.body, label %cond.i.i2.i69 | |
cond.i.i2.i69: ; preds = %unwind.i68 | |
%183 = bitcast { i64, i64, [0 x i8] }* %181 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %183) | |
to label %unwind30.body unwind label %unwind30 | |
unwind26: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59" | |
%184 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract132 = extractvalue { i8*, i32 } %184, 0 | |
%.fca.1.extract134 = extractvalue { i8*, i32 } %184, 1 | |
br label %cleanup11 | |
"normal return29": ; preds = %.noexc71 | |
%185 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%186 = getelementptr inbounds { i64, i64, [0 x i8] }* %185, i64 0, i32 2, i64 0 | |
%187 = ptrtoint i8* %186 to i64 | |
%188 = add i64 %187, %164 | |
%189 = inttoptr i64 %188 to i8* | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %189, i8* %127, i64 %165, i32 1, i1 false) | |
%190 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%191 = add i64 %163, %165 | |
%192 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 0 | |
store i64 %191, i64* %192, align 8 | |
%193 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 1 | |
%194 = ptrtoint { i64, i64, [0 x i8] }* %193 to i64 | |
%195 = add i64 %194, %166 | |
%196 = inttoptr i64 %195 to i8* | |
store i8 0, i8* %196, align 1 | |
%197 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %159) | |
%198 = icmp eq { i64, i64, [0 x i8] }* %150, null | |
br i1 %198, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76", label %cond.i.i75 | |
cond.i.i75: ; preds = %"normal return29" | |
%199 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %199) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76": ; preds = %"normal return29", %cond.i.i75 | |
%200 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 2, i64 0 | |
%201 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 0 | |
%202 = load i64* %201, align 8 | |
%__adjust32.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 0 | |
store i8* %200, i8** %__adjust32.sroa.0.0..idx, align 8 | |
%__adjust32.sroa.1.8..idx87 = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 1 | |
store i64 %202, i64* %__adjust32.sroa.1.8..idx87, align 8 | |
%203 = bitcast { i8*, i64 }* %__arg33 to %str_slice* | |
%__adjust34.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %11, { i64, i64, [0 x i8] }*** %__adjust34.sroa.0.0..idx, align 8 | |
%__adjust34.sroa.1.8..idx86 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 1 | |
store i64 %12, i64* %__adjust34.sroa.1.8..idx86, align 8 | |
%204 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %203, { { i64, i64, [0 x i8] }**, i64 }* %__arg35) | |
to label %"normal return36" unwind label %unwind37 | |
unwind30: ; preds = %cond.i.i2.i69, %"normal return25" | |
%205 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind30.body | |
unwind30.body: ; preds = %unwind.i68, %cond.i.i2.i69, %unwind30 | |
%eh.lpad-body73 = phi { i8*, i32 } [ %205, %unwind30 ], [ %180, %cond.i.i2.i69 ], [ %180, %unwind.i68 ] | |
call void @upcall_reset_stack_limit() | |
%eh.lpad-body73.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 0 | |
%eh.lpad-body73.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 1 | |
%206 = icmp eq { i64, i64, [0 x i8] }* %150, null | |
br i1 %206, label %cleanup11, label %cond.i.i77 | |
cond.i.i77: ; preds = %unwind30.body | |
%207 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %207) | |
br label %cleanup11 | |
"normal return36": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76" | |
%208 = icmp eq { i64, i64, [0 x i8] }* %197, null | |
br i1 %208, label %"normal return39", label %cond.i79 | |
cond.i79: ; preds = %"normal return36" | |
%209 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %209) | |
br label %"normal return39" | |
unwind37: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76" | |
%210 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract136 = extractvalue { i8*, i32 } %210, 0 | |
%.fca.1.extract138 = extractvalue { i8*, i32 } %210, 1 | |
%211 = icmp eq { i64, i64, [0 x i8] }* %197, null | |
br i1 %211, label %cleanup11, label %cond.i81 | |
cond.i81: ; preds = %unwind37 | |
%212 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %212) | |
br label %cleanup11 | |
"normal return39": ; preds = %cond.i79, %"normal return36" | |
%213 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 0, i64* %213, align 8 | |
%214 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1 | |
store i64 %204, i64* %214, align 8 | |
%215 = icmp eq { i64, i64, [0 x i8] }* %103, null | |
br i1 %215, label %join, label %cond.i.i83 | |
cond.i.i83: ; preds = %"normal return39" | |
%216 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %216) | |
br label %join | |
join: ; preds = %cond.i.i83, %"normal return39", %compare_vec_len_next | |
ret void | |
} | |
define void @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i69 = alloca { i64, i64, [0 x i8] }*, align 8 | |
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg.i = alloca %str_slice, align 8 | |
%__arg2.i = alloca %str_slice, align 8 | |
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8 | |
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%__adjust2 = alloca { i8*, i64 }, align 8 | |
%__arg6 = alloca %str_slice, align 8 | |
%5 = alloca [4 x { i64, i64, [0 x i8] }*], align 8 | |
%__adjust11 = alloca { i8*, i64 }, align 8 | |
%__adjust18 = alloca { i8*, i64 }, align 8 | |
%__arg23 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg25 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%__adjust30 = alloca { i8*, i64 }, align 8 | |
%__arg36 = alloca { i8*, i64 }, align 8 | |
%__arg38 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%.sub = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0 | |
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%7 = load i64* %6, align 8 | |
%.off = add i64 %7, -8 | |
%8 = icmp ult i64 %.off, 8 | |
br i1 %8, label %match_case, label %compare_vec_len_next | |
match_case: ; preds = %"function top level" | |
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%10 = load { i64, i64, [0 x i8] }*** %9, align 8 | |
%11 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%12 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 2, i64 0 | |
%13 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 0 | |
%14 = load i64* %13, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %12, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx156 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %14, i64* %__adjust.sroa.1.8..idx156, align 8 | |
%15 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15) | |
%16 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke void @"_ZN4path14__extensions__10meth_225818filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %16) | |
to label %"normal return" unwind label %unwind | |
compare_vec_len_next: ; preds = %"function top level" | |
%17 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %17, align 8 | |
br label %join | |
"normal return": ; preds = %match_case | |
%18 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%19 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %18, align 8 | |
%20 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, null | |
br i1 %20, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit, label %cond.i.i.i | |
cond.i.i.i: ; preds = %"normal return" | |
%21 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 0 | |
%22 = load i64* %21, align 8 | |
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 2, i64 0 | |
%24 = bitcast { i64, i64, [0 x i8] }** %23 to i8* | |
%25 = getelementptr inbounds i8* %24, i64 %22 | |
%26 = bitcast i8* %25 to { i64, i64, [0 x i8] }** | |
%27 = icmp ult { i64, i64, [0 x i8] }** %23, %26 | |
br i1 %27, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i" | |
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" | |
%28 = phi { i64, i64, [0 x i8] }** [ %32, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" ], [ %23, %cond.i.i.i ] | |
%29 = load { i64, i64, [0 x i8] }** %28, align 8 | |
%30 = icmp eq { i64, i64, [0 x i8] }* %29, null | |
br i1 %30, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", label %cond.i.i.i.i.i.i | |
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i | |
%31 = bitcast { i64, i64, [0 x i8] }* %29 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %31) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i | |
%32 = getelementptr inbounds { i64, i64, [0 x i8] }** %28, i64 1 | |
%33 = icmp ult { i64, i64, [0 x i8] }** %32, %26 | |
br i1 %33, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", %cond.i.i.i | |
%34 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %34) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i" | |
%35 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0 | |
%36 = load { i64, i64, [0 x i8] }** %35, align 8 | |
%37 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %37) | |
%38 = bitcast %str_slice* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %38) | |
%39 = bitcast %str_slice* %__arg2.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %39) | |
%40 = icmp eq { i64, i64, [0 x i8] }* %36, null | |
br i1 %40, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit | |
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([20 x i8]* @str11026, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8 | |
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1 | |
store i64 20, i64* %.sroa.111.8..idx12.i, align 8 | |
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([41 x i8]* @str11027, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8 | |
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1 | |
store i64 41, i64* %.sroa.18.8..idx9.i, align 8 | |
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320) | |
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i" | |
"normal return.i": ; preds = %match_else.i | |
unreachable | |
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i": ; preds = %match_else.i | |
%41 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
resume { i8*, i32 } %41 | |
"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit | |
call void @llvm.lifetime.end(i64 0, i8* %37) | |
call void @llvm.lifetime.end(i64 16, i8* %38) | |
call void @llvm.lifetime.end(i64 16, i8* %39) | |
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 2, i64 0 | |
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 0 | |
%44 = load i64* %43, align 8 | |
%45 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0 | |
store i8* %42, i8** %45, align 8 | |
%46 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1 | |
store i64 %44, i64* %46, align 8 | |
%47 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%48 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %48) | |
%49 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %47) | |
to label %.noexc unwind label %unwind4 | |
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
store { i64, i64, [0 x i8] }* %49, { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%51 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0 | |
%52 = load i64* %51, align 8 | |
%53 = add i64 %52, 4 | |
%54 = lshr i64 %53, 1 | |
%55 = or i64 %54, %53 | |
%56 = lshr i64 %55, 2 | |
%57 = or i64 %56, %55 | |
%58 = lshr i64 %57, 4 | |
%59 = or i64 %58, %57 | |
%60 = lshr i64 %59, 8 | |
%61 = or i64 %60, %59 | |
%62 = lshr i64 %61, 16 | |
%63 = or i64 %62, %61 | |
%64 = lshr i64 %63, 32 | |
%65 = or i64 %64, %63 | |
%66 = add i64 %65, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %50, i64 %66) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" unwind label %unwind.i43 | |
unwind.i43: ; preds = %.noexc | |
%67 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%68 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%69 = icmp eq { i64, i64, [0 x i8] }* %68, null | |
br i1 %69, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53", label %cond.i.i2.i | |
cond.i.i2.i: ; preds = %unwind.i43 | |
%70 = bitcast { i64, i64, [0 x i8] }* %68 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %70) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53" unwind label %unwind4 | |
unwind: ; preds = %match_case | |
%71 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%72 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%73 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %72, align 8 | |
%74 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, null | |
br i1 %74, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit50, label %cond.i.i.i45 | |
cond.i.i.i45: ; preds = %unwind | |
%75 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 0 | |
%76 = load i64* %75, align 8 | |
%77 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 2, i64 0 | |
%78 = bitcast { i64, i64, [0 x i8] }** %77 to i8* | |
%79 = getelementptr inbounds i8* %78, i64 %76 | |
%80 = bitcast i8* %79 to { i64, i64, [0 x i8] }** | |
%81 = icmp ult { i64, i64, [0 x i8] }** %77, %80 | |
br i1 %81, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49" | |
iter_vec_loop_body.i.i.i.i46: ; preds = %cond.i.i.i45, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48" | |
%82 = phi { i64, i64, [0 x i8] }** [ %86, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48" ], [ %77, %cond.i.i.i45 ] | |
%83 = load { i64, i64, [0 x i8] }** %82, align 8 | |
%84 = icmp eq { i64, i64, [0 x i8] }* %83, null | |
br i1 %84, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48", label %cond.i.i.i.i.i.i47 | |
cond.i.i.i.i.i.i47: ; preds = %iter_vec_loop_body.i.i.i.i46 | |
%85 = bitcast { i64, i64, [0 x i8] }* %83 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %85) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48": ; preds = %cond.i.i.i.i.i.i47, %iter_vec_loop_body.i.i.i.i46 | |
%86 = getelementptr inbounds { i64, i64, [0 x i8] }** %82, i64 1 | |
%87 = icmp ult { i64, i64, [0 x i8] }** %86, %80 | |
br i1 %87, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48", %cond.i.i.i45 | |
%88 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %88) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit50 | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit50: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49" | |
resume { i8*, i32 } %71 | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit": ; preds = %.noexc | |
%89 = add i64 %52, -1 | |
%90 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 2, i64 0 | |
%92 = ptrtoint i8* %91 to i64 | |
%93 = add i64 %89, %92 | |
%94 = inttoptr i64 %93 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %94, i8* getelementptr inbounds ([6 x i8]* @str11042, i64 0, i64 0), i64 5, i32 1, i1 false) | |
%95 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%96 = add i64 %52, 5 | |
%97 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 0, i32 0 | |
store i64 %96, i64* %97, align 8 | |
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 1 | |
%99 = ptrtoint { i64, i64, [0 x i8] }* %98 to i64 | |
%100 = add i64 %99, %53 | |
%101 = inttoptr i64 %100 to i8* | |
store i8 0, i8* %101, align 1 | |
%102 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %48) | |
%103 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %103) | |
%.sroa.0100.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0 | |
store i8* getelementptr inbounds ([6 x i8]* @str10648, i64 0, i64 0), i8** %.sroa.0100.0..idx, align 8 | |
%.sroa.1101.8..idx102 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1 | |
store i64 6, i64* %.sroa.1101.8..idx102, align 8 | |
%104 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([7 x i8]* @str11044, i64 0, i64 0), i64 6) | |
to label %"normal return7" unwind label %unwind8 | |
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
%105 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53": ; preds = %unwind.i43, %cond.i.i2.i, %unwind4 | |
%eh.lpad-body = phi { i8*, i32 } [ %105, %unwind4 ], [ %67, %cond.i.i2.i ], [ %67, %unwind.i43 ] | |
call void @upcall_reset_stack_limit() | |
%106 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %106) | |
resume { i8*, i32 } %eh.lpad-body | |
"normal return7": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" | |
store { i64, i64, [0 x i8] }* %104, { i64, i64, [0 x i8] }** %.sub, align 8 | |
%107 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1 | |
%108 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%109 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 2, i64 0 | |
%110 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 0 | |
%111 = load i64* %110, align 8 | |
%112 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 0 | |
store i8* %109, i8** %112, align 8 | |
%113 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 1 | |
store i64 %111, i64* %113, align 8 | |
%114 = bitcast { i8*, i64 }* %__adjust11 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%115 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %114) | |
to label %"normal return12" unwind label %unwind13 | |
unwind8: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" | |
%116 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract117 = extractvalue { i8*, i32 } %116, 0 | |
%.fca.1.extract119 = extractvalue { i8*, i32 } %116, 1 | |
br label %cleanup9 | |
cleanup9: ; preds = %cond.i.i57, %cleanup14, %unwind27, %unwind8 | |
%.sroa.0150.0 = phi i8* [ %.fca.0.extract139, %unwind27 ], [ %.fca.0.extract117, %unwind8 ], [ %.sroa.0150.2, %cleanup14 ], [ %.sroa.0150.2, %cond.i.i57 ] | |
%.sroa.1153.0 = phi i32 [ %.fca.1.extract141, %unwind27 ], [ %.fca.1.extract119, %unwind8 ], [ %.sroa.1153.2, %cleanup14 ], [ %.sroa.1153.2, %cond.i.i57 ] | |
%117 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i | |
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cleanup9 | |
%118 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup9 ], [ %122, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ] | |
%119 = load { i64, i64, [0 x i8] }** %118, align 8 | |
%120 = icmp eq { i64, i64, [0 x i8] }* %119, null | |
br i1 %120, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i54 | |
cond.i.i.i54: ; preds = %iter_vec_loop_body.i | |
%121 = bitcast { i64, i64, [0 x i8] }* %119 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %121) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i54, %iter_vec_loop_body.i | |
%122 = getelementptr inbounds { i64, i64, [0 x i8] }** %118, i64 1 | |
%123 = icmp ult { i64, i64, [0 x i8] }** %122, %117 | |
br i1 %123, label %iter_vec_loop_body.i, label %cleanup10 | |
cleanup10: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cond.i88, %unwind40, %cond.i.i84, %unwind33.body, %unwind29 | |
%.sroa.0150.1 = phi i8* [ %.fca.0.extract143, %unwind29 ], [ %eh.lpad-body80.fca.0.extract, %unwind33.body ], [ %eh.lpad-body80.fca.0.extract, %cond.i.i84 ], [ %.fca.0.extract147, %unwind40 ], [ %.fca.0.extract147, %cond.i88 ], [ %.sroa.0150.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ] | |
%.sroa.1153.1 = phi i32 [ %.fca.1.extract145, %unwind29 ], [ %eh.lpad-body80.fca.1.extract, %unwind33.body ], [ %eh.lpad-body80.fca.1.extract, %cond.i.i84 ], [ %.fca.1.extract149, %unwind40 ], [ %.fca.1.extract149, %cond.i88 ], [ %.sroa.1153.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ] | |
%124 = icmp eq { i64, i64, [0 x i8] }* %102, null | |
br i1 %124, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i | |
cond.i.i: ; preds = %cleanup10 | |
%125 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %125) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %cleanup10, %cond.i.i | |
%.fca.0.insert122 = insertvalue { i8*, i32 } undef, i8* %.sroa.0150.1, 0 | |
%.fca.1.insert125 = insertvalue { i8*, i32 } %.fca.0.insert122, i32 %.sroa.1153.1, 1 | |
resume { i8*, i32 } %.fca.1.insert125 | |
"normal return12": ; preds = %"normal return7" | |
store { i64, i64, [0 x i8] }* %115, { i64, i64, [0 x i8] }** %107, align 8 | |
%126 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2 | |
%127 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11051, i64 0, i64 0), i64 2) | |
to label %"normal return15" unwind label %unwind16 | |
unwind13: ; preds = %"normal return7" | |
%128 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract127 = extractvalue { i8*, i32 } %128, 0 | |
%.fca.1.extract129 = extractvalue { i8*, i32 } %128, 1 | |
br label %cleanup14 | |
cleanup14: ; preds = %cond.i.i59, %cleanup17, %unwind13 | |
%.sroa.0150.2 = phi i8* [ %.fca.0.extract127, %unwind13 ], [ %.sroa.0150.3, %cleanup17 ], [ %.sroa.0150.3, %cond.i.i59 ] | |
%.sroa.1153.2 = phi i32 [ %.fca.1.extract129, %unwind13 ], [ %.sroa.1153.3, %cleanup17 ], [ %.sroa.1153.3, %cond.i.i59 ] | |
%129 = load { i64, i64, [0 x i8] }** %.sub, align 8 | |
%130 = icmp eq { i64, i64, [0 x i8] }* %129, null | |
br i1 %130, label %cleanup9, label %cond.i.i57 | |
cond.i.i57: ; preds = %cleanup14 | |
%131 = bitcast { i64, i64, [0 x i8] }* %129 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %131) | |
br label %cleanup9 | |
"normal return15": ; preds = %"normal return12" | |
store { i64, i64, [0 x i8] }* %127, { i64, i64, [0 x i8] }** %126, align 8 | |
%132 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 2, i64 0 | |
%133 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 0 | |
%134 = load i64* %133, align 8 | |
%135 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 0 | |
store i8* %132, i8** %135, align 8 | |
%136 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 1 | |
store i64 %134, i64* %136, align 8 | |
%137 = bitcast { i8*, i64 }* %__adjust18 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%138 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %137) | |
to label %"normal return19" unwind label %unwind20 | |
unwind16: ; preds = %"normal return12" | |
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract131 = extractvalue { i8*, i32 } %139, 0 | |
%.fca.1.extract133 = extractvalue { i8*, i32 } %139, 1 | |
br label %cleanup17 | |
cleanup17: ; preds = %cond.i.i61, %unwind20, %unwind16 | |
%.sroa.0150.3 = phi i8* [ %.fca.0.extract131, %unwind16 ], [ %.fca.0.extract135, %unwind20 ], [ %.fca.0.extract135, %cond.i.i61 ] | |
%.sroa.1153.3 = phi i32 [ %.fca.1.extract133, %unwind16 ], [ %.fca.1.extract137, %unwind20 ], [ %.fca.1.extract137, %cond.i.i61 ] | |
%140 = load { i64, i64, [0 x i8] }** %107, align 8 | |
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null | |
br i1 %141, label %cleanup14, label %cond.i.i59 | |
cond.i.i59: ; preds = %cleanup17 | |
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142) | |
br label %cleanup14 | |
"normal return19": ; preds = %"normal return15" | |
%143 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 3 | |
store { i64, i64, [0 x i8] }* %138, { i64, i64, [0 x i8] }** %143, align 8 | |
%__adjust22.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust22.sroa.0.0..idx, align 8 | |
%__adjust22.sroa.1.8..idx99 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 1 | |
store i64 32, i64* %__adjust22.sroa.1.8..idx99, align 8 | |
%__adjust24.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 0 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust24.sroa.0.0..idx, align 8 | |
%__adjust24.sroa.1.8..idx98 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 1 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust24.sroa.1.8..idx98, align 8 | |
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg23, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25) | |
to label %"normal return26" unwind label %unwind27 | |
unwind20: ; preds = %"normal return15" | |
%144 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract135 = extractvalue { i8*, i32 } %144, 0 | |
%.fca.1.extract137 = extractvalue { i8*, i32 } %144, 1 | |
%145 = load { i64, i64, [0 x i8] }** %126, align 8 | |
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null | |
br i1 %146, label %cleanup17, label %cond.i.i61 | |
cond.i.i61: ; preds = %unwind20 | |
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147) | |
br label %cleanup17 | |
"normal return26": ; preds = %"normal return19" | |
%148 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i63 | |
iter_vec_loop_body.i63: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65", %"normal return26" | |
%149 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return26" ], [ %153, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65" ] | |
%150 = load { i64, i64, [0 x i8] }** %149, align 8 | |
%151 = icmp eq { i64, i64, [0 x i8] }* %150, null | |
br i1 %151, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65", label %cond.i.i.i64 | |
cond.i.i.i64: ; preds = %iter_vec_loop_body.i63 | |
%152 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %152) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65": ; preds = %cond.i.i.i64, %iter_vec_loop_body.i63 | |
%153 = getelementptr inbounds { i64, i64, [0 x i8] }** %149, i64 1 | |
%154 = icmp ult { i64, i64, [0 x i8] }** %153, %148 | |
br i1 %154, label %iter_vec_loop_body.i63, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66" | |
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65" | |
%155 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11052, i64 0, i64 0), i64 2) | |
to label %"normal return28" unwind label %unwind29 | |
unwind27: ; preds = %"normal return19" | |
%156 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract139 = extractvalue { i8*, i32 } %156, 0 | |
%.fca.1.extract141 = extractvalue { i8*, i32 } %156, 1 | |
br label %cleanup9 | |
"normal return28": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66" | |
%157 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 2, i64 0 | |
%158 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 0 | |
%159 = load i64* %158, align 8 | |
%160 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 0 | |
store i8* %157, i8** %160, align 8 | |
%161 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 1 | |
store i64 %159, i64* %161, align 8 | |
%162 = bitcast { i8*, i64 }* %__adjust30 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%163 = load i64* %133, align 8 | |
%164 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %164) | |
%165 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %162) | |
to label %.noexc78 unwind label %unwind33 | |
.noexc78: ; preds = %"normal return28" | |
store { i64, i64, [0 x i8] }* %165, { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%166 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%167 = getelementptr inbounds { i64, i64, [0 x i8] }* %165, i64 0, i32 0 | |
%168 = load i64* %167, align 8 | |
%169 = add i64 %168, -1 | |
%170 = add i64 %163, -1 | |
%171 = add i64 %169, %170 | |
%172 = lshr i64 %171, 1 | |
%173 = or i64 %172, %171 | |
%174 = lshr i64 %173, 2 | |
%175 = or i64 %174, %173 | |
%176 = lshr i64 %175, 4 | |
%177 = or i64 %176, %175 | |
%178 = lshr i64 %177, 8 | |
%179 = or i64 %178, %177 | |
%180 = lshr i64 %179, 16 | |
%181 = or i64 %180, %179 | |
%182 = lshr i64 %181, 32 | |
%183 = or i64 %182, %181 | |
%184 = add i64 %183, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %166, i64 %184) | |
to label %"normal return32" unwind label %unwind.i75 | |
unwind.i75: ; preds = %.noexc78 | |
%185 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%186 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%187 = icmp eq { i64, i64, [0 x i8] }* %186, null | |
br i1 %187, label %unwind33.body, label %cond.i.i2.i76 | |
cond.i.i2.i76: ; preds = %unwind.i75 | |
%188 = bitcast { i64, i64, [0 x i8] }* %186 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %188) | |
to label %unwind33.body unwind label %unwind33 | |
unwind29: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66" | |
%189 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract143 = extractvalue { i8*, i32 } %189, 0 | |
%.fca.1.extract145 = extractvalue { i8*, i32 } %189, 1 | |
br label %cleanup10 | |
"normal return32": ; preds = %.noexc78 | |
%190 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%191 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 2, i64 0 | |
%192 = ptrtoint i8* %191 to i64 | |
%193 = add i64 %192, %169 | |
%194 = inttoptr i64 %193 to i8* | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %194, i8* %132, i64 %170, i32 1, i1 false) | |
%195 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%196 = add i64 %168, %170 | |
%197 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 0, i32 0 | |
store i64 %196, i64* %197, align 8 | |
%198 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 1 | |
%199 = ptrtoint { i64, i64, [0 x i8] }* %198 to i64 | |
%200 = add i64 %199, %171 | |
%201 = inttoptr i64 %200 to i8* | |
store i8 0, i8* %201, align 1 | |
%202 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %164) | |
%203 = icmp eq { i64, i64, [0 x i8] }* %155, null | |
br i1 %203, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83", label %cond.i.i82 | |
cond.i.i82: ; preds = %"normal return32" | |
%204 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %204) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83": ; preds = %"normal return32", %cond.i.i82 | |
%205 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 2, i64 0 | |
%206 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 0 | |
%207 = load i64* %206, align 8 | |
%__adjust35.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 0 | |
store i8* %205, i8** %__adjust35.sroa.0.0..idx, align 8 | |
%__adjust35.sroa.1.8..idx94 = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 1 | |
store i64 %207, i64* %__adjust35.sroa.1.8..idx94, align 8 | |
%208 = bitcast { i8*, i64 }* %__arg36 to %str_slice* | |
%209 = bitcast {}* %__trans_ret_slot.i to { i64, i64, [0 x i8] }** | |
%__adjust37.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %209, { i64, i64, [0 x i8] }*** %__adjust37.sroa.0.0..idx, align 8 | |
%__adjust37.sroa.1.8..idx93 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 1 | |
store i64 0, i64* %__adjust37.sroa.1.8..idx93, align 8 | |
%210 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %208, { { i64, i64, [0 x i8] }**, i64 }* %__arg38) | |
to label %"normal return39" unwind label %unwind40 | |
unwind33: ; preds = %cond.i.i2.i76, %"normal return28" | |
%211 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind33.body | |
unwind33.body: ; preds = %unwind.i75, %cond.i.i2.i76, %unwind33 | |
%eh.lpad-body80 = phi { i8*, i32 } [ %211, %unwind33 ], [ %185, %cond.i.i2.i76 ], [ %185, %unwind.i75 ] | |
call void @upcall_reset_stack_limit() | |
%eh.lpad-body80.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 0 | |
%eh.lpad-body80.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 1 | |
%212 = icmp eq { i64, i64, [0 x i8] }* %155, null | |
br i1 %212, label %cleanup10, label %cond.i.i84 | |
cond.i.i84: ; preds = %unwind33.body | |
%213 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %213) | |
br label %cleanup10 | |
"normal return39": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83" | |
%214 = icmp eq { i64, i64, [0 x i8] }* %202, null | |
br i1 %214, label %"normal return42", label %cond.i86 | |
cond.i86: ; preds = %"normal return39" | |
%215 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %215) | |
br label %"normal return42" | |
unwind40: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83" | |
%216 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract147 = extractvalue { i8*, i32 } %216, 0 | |
%.fca.1.extract149 = extractvalue { i8*, i32 } %216, 1 | |
%217 = icmp eq { i64, i64, [0 x i8] }* %202, null | |
br i1 %217, label %cleanup10, label %cond.i88 | |
cond.i88: ; preds = %unwind40 | |
%218 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %218) | |
br label %cleanup10 | |
"normal return42": ; preds = %cond.i86, %"normal return39" | |
%219 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 0, i64* %219, align 8 | |
%220 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1 | |
store i64 %210, i64* %220, align 8 | |
%221 = icmp eq { i64, i64, [0 x i8] }* %102, null | |
br i1 %221, label %join, label %cond.i.i90 | |
cond.i.i90: ; preds = %"normal return42" | |
%222 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %222) | |
br label %join | |
join: ; preds = %cond.i.i90, %"normal return42", %compare_vec_len_next | |
ret void | |
} | |
declare void @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
define void @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%.sroa.1.sroa.0.i = alloca [16 x i8], align 8 | |
%command.sroa.0.i = alloca %str_slice, align 8 | |
%command.sroa.2.i = alloca [40 x i8], align 8 | |
%prog.i = alloca %str_slice, align 8 | |
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg10.i = alloca %str_slice, align 8 | |
%__arg14.i = alloca %str_slice, align 8 | |
%__arg16.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg17.i = alloca %str_slice, align 8 | |
%__arg19.i = alloca %str_slice, align 8 | |
%__arg22.i = alloca { i8*, i64 }, align 8 | |
%__fmtbuf32.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg34.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg35.i = alloca %str_slice, align 8 | |
%__arg39.i = alloca %str_slice, align 8 | |
%__arg42.i = alloca { i8*, i64 }, align 8 | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%3 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%4 = load i64* %3, align 8 | |
%.off = add i64 %4, -8 | |
%5 = icmp ult i64 %.off, 8 | |
br i1 %5, label %match_case, label %compare_vec_len_next | |
match_case: ; preds = %"function top level" | |
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%7 = load { i64, i64, [0 x i8] }*** %6, align 8 | |
%8 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %8) | |
%9 = load { i64, i64, [0 x i8] }** %7, align 8 | |
%10 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 2, i64 0 | |
%11 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 0 | |
%12 = load i64* %11, align 8 | |
%13 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %10, i8** %13, align 8 | |
%14 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %12, i64* %14, align 8 | |
%15 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%16 = call fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %15) | |
call void @llvm.lifetime.end(i64 16, i8* %8) | |
%.sroa.1.sroa.0.i.0.idx = getelementptr inbounds [16 x i8]* %.sroa.1.sroa.0.i, i64 0, i64 0 | |
call void @llvm.lifetime.start(i64 16, i8* %.sroa.1.sroa.0.i.0.idx) | |
%command.sroa.0.i.0.cast = bitcast %str_slice* %command.sroa.0.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %command.sroa.0.i.0.cast) | |
%command.sroa.2.i.0.idx30 = getelementptr inbounds [40 x i8]* %command.sroa.2.i, i64 0, i64 0 | |
call void @llvm.lifetime.start(i64 40, i8* %command.sroa.2.i.0.idx30) | |
%prog.i.0.cast = bitcast %str_slice* %prog.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %prog.i.0.cast) | |
%17 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %17) | |
%18 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8* | |
call void @llvm.lifetime.start(i64 48, i8* %18) | |
%19 = bitcast %str_slice* %__arg10.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %19) | |
%20 = bitcast %str_slice* %__arg14.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %20) | |
%21 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i to i8* | |
call void @llvm.lifetime.start(i64 48, i8* %21) | |
%22 = bitcast %str_slice* %__arg17.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %22) | |
%23 = bitcast %str_slice* %__arg19.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %23) | |
%24 = bitcast { i8*, i64 }* %__arg22.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %24) | |
%25 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf32.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %25) | |
%26 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i to i8* | |
call void @llvm.lifetime.start(i64 48, i8* %26) | |
%27 = bitcast %str_slice* %__arg35.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %27) | |
%28 = bitcast %str_slice* %__arg39.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %28) | |
%29 = bitcast { i8*, i64 }* %__arg42.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %29) | |
%30 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 0 | |
%31 = load i64* %30, align 8 | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" | |
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i": ; preds = %match_case | |
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 2, i64 0 | |
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%34 = add i64 %31, -1 | |
br label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i": ; preds = %"`loop`.i.i.backedge.i.i", %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" | |
%.sroa.08.091.i.i = phi i64 [ %35, %"`loop`.i.i.backedge.i.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" ] | |
%35 = add i64 %.sroa.08.091.i.i, 88 | |
%36 = inttoptr i64 %.sroa.08.091.i.i to %struct.Command* | |
%__arg1.i.sroa.1.8..idx43.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 1 | |
%__arg1.i.sroa.1.8.copyload.i.i = load i64* %__arg1.i.sroa.1.8..idx43.i.i, align 8 | |
%37 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i.i, %31 | |
br i1 %37, label %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i, label %"`loop`.i.i.backedge.i.i" | |
"`loop`.i.i.backedge.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
%38 = inttoptr i64 %35 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%39 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %38, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%40 = icmp eq i64 %35, 0 | |
%or.cond.i.i = or i1 %39, %40 | |
br i1 %or.cond.i.i, label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
%__arg1.i.sroa.0.0..idx.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 0 | |
%__arg1.i.sroa.0.0.copyload.i.i = load i8** %__arg1.i.sroa.0.0..idx.i.i, align 8 | |
%41 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i.i to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%42 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, i64 %34) | |
to label %.noexc.i unwind label %unwind.loopexit.i | |
.noexc.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i | |
%43 = icmp eq i32 %42, 0 | |
br i1 %43, label %match_case.i, label %"`loop`.i.i.backedge.i.i" | |
unwind.loopexit.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i | |
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.i | |
unwind.nonloopexit.i: ; preds = %match_case31.i, %match_else30.i, %match_case7.i | |
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.i | |
unwind.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i | |
%lpad.phi.i = phi { i8*, i32 } [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ] | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 0 | |
%.fca.1.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 1 | |
br label %cleanup.i | |
cleanup.i: ; preds = %cond.i18.i, %unwind44.i, %cond.i.i12.i, %unwind37.i, %cond.i8.i, %unwind24.i, %cond.i.i4.i, %unwind12.i, %unwind.i | |
%.sroa.085.0.i = phi i8* [ %.fca.0.extract.i, %unwind.i ], [ %.fca.0.extract70.i, %unwind12.i ], [ %.fca.0.extract70.i, %cond.i.i4.i ], [ %.fca.0.extract74.i, %unwind24.i ], [ %.fca.0.extract74.i, %cond.i8.i ], [ %.fca.0.extract78.i, %unwind37.i ], [ %.fca.0.extract78.i, %cond.i.i12.i ], [ %.fca.0.extract82.i, %unwind44.i ], [ %.fca.0.extract82.i, %cond.i18.i ] | |
%.sroa.186.0.i = phi i32 [ %.fca.1.extract.i, %unwind.i ], [ %.fca.1.extract72.i, %unwind12.i ], [ %.fca.1.extract72.i, %cond.i.i4.i ], [ %.fca.1.extract76.i, %unwind24.i ], [ %.fca.1.extract76.i, %cond.i8.i ], [ %.fca.1.extract80.i, %unwind37.i ], [ %.fca.1.extract80.i, %cond.i.i12.i ], [ %.fca.1.extract84.i, %unwind44.i ], [ %.fca.1.extract84.i, %cond.i18.i ] | |
%44 = icmp eq { i64, i64, [0 x i8] }* %16, null | |
br i1 %44, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i | |
cond.i.i.i: ; preds = %cleanup.i | |
%45 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %45) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i, %cleanup.i | |
%.fca.0.insert.i = insertvalue { i8*, i32 } undef, i8* %.sroa.085.0.i, 0 | |
%.fca.1.insert.i = insertvalue { i8*, i32 } %.fca.0.insert.i, i32 %.sroa.186.0.i, 1 | |
resume { i8*, i32 } %.fca.1.insert.i | |
match_else.i: ; preds = %"`loop`.i.i.backedge.i.i", %match_case | |
%46 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %46, align 8 | |
br label %join49.i | |
match_case.i: ; preds = %.noexc.i | |
%47 = inttoptr i64 %.sroa.08.091.i.i to i8* | |
%__arg.i.i.i.sroa.1.16..idx = getelementptr inbounds i8* %47, i64 16 | |
%__arg.i.i.i.sroa.1.16..cast = bitcast i8* %__arg.i.i.i.sroa.1.16..idx to i64* | |
%__arg.i.i.i.sroa.1.16.copyload = load i64* %__arg.i.i.i.sroa.1.16..cast, align 8 | |
%__arg.i.i.i.sroa.2.24..raw_idx = getelementptr inbounds i8* %47, i64 24 | |
%__arg.i.i.i.sroa.3.64..idx = getelementptr inbounds i8* %47, i64 64 | |
%__arg.i.i.i.sroa.3.64..cast = bitcast i8* %__arg.i.i.i.sroa.3.64..idx to i64* | |
%__arg.i.i.i.sroa.3.64.copyload = load i64* %__arg.i.i.i.sroa.3.64..cast, align 8 | |
%__arg.i.i.i.sroa.4.72..idx = getelementptr inbounds i8* %47, i64 72 | |
%__arg.i.i.i.sroa.4.72..cast = bitcast i8* %__arg.i.i.i.sroa.4.72..idx to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
%__arg.i.i.i.sroa.4.72.copyload = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__arg.i.i.i.sroa.4.72..cast, align 8 | |
%__arg.i.i.i.sroa.5.80..idx = getelementptr inbounds i8* %47, i64 80 | |
%__arg.i.i.i.sroa.5.80..cast = bitcast i8* %__arg.i.i.i.sroa.5.80..idx to i64* | |
%__arg.i.i.i.sroa.5.80.copyload = load i64* %__arg.i.i.i.sroa.5.80..cast, align 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %.sroa.1.sroa.0.i.0.idx, i8* %47, i64 16, i32 8, i1 false) | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %command.sroa.2.i.0.idx30, i8* %__arg.i.i.i.sroa.2.24..raw_idx, i64 40, i32 8, i1 false) | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %command.sroa.0.i.0.cast, i8* %.sroa.1.sroa.0.i.0.idx, i64 16, i32 8, i1 false) | |
%cond1.i = icmp eq i64 %__arg.i.i.i.sroa.1.16.copyload, 1 | |
br i1 %cond1.i, label %match_case7.i, label %join.i | |
match_case7.i: ; preds = %match_case.i | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %prog.i.0.cast, i8* %command.sroa.2.i.0.idx30, i64 16, i32 8, i1 false) | |
%48 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11019, i64 0, i64 0), i64 4) | |
to label %"normal return8.i" unwind label %unwind.nonloopexit.i | |
"normal return8.i": ; preds = %match_case7.i | |
store { i64, i64, [0 x i8] }* %48, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%.sroa.054.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0 | |
store i32 0, i32* %.sroa.054.0..idx.i, align 8 | |
%.sroa.256.8..idx57.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.256.8..idx57.i, align 8 | |
%.sroa.460.24..idx61.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.460.24..idx61.i, align 8 | |
%.sroa.664.40..idx65.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.664.40..idx65.i, align 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %19, i8* %command.sroa.0.i.0.cast, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return11.i" unwind label %unwind12.i | |
"normal return11.i": ; preds = %"normal return8.i" | |
%.sroa.051.0..idx.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([30 x i8]* @str11020, i64 0, i64 0), i8** %.sroa.051.0..idx.i, align 8 | |
%.sroa.152.8..idx53.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 1 | |
store i64 30, i64* %.sroa.152.8..idx53.i, align 8 | |
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg14.i) | |
to label %"normal return15.i" unwind label %unwind12.i | |
unwind12.i: ; preds = %"normal return18.i", %"normal return15.i", %"normal return11.i", %"normal return8.i" | |
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract70.i = extractvalue { i8*, i32 } %49, 0 | |
%.fca.1.extract72.i = extractvalue { i8*, i32 } %49, 1 | |
%50 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%51 = icmp eq { i64, i64, [0 x i8] }* %50, null | |
br i1 %51, label %cleanup.i, label %cond.i.i4.i | |
cond.i.i4.i: ; preds = %unwind12.i | |
%52 = bitcast { i64, i64, [0 x i8] }* %50 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %52) | |
br label %cleanup.i | |
"normal return15.i": ; preds = %"normal return11.i" | |
%.sroa.039.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 0 | |
store i32 0, i32* %.sroa.039.0..idx.i, align 8 | |
%.sroa.241.8..idx42.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.241.8..idx42.i, align 8 | |
%.sroa.445.24..idx46.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.445.24..idx46.i, align 8 | |
%.sroa.649.40..idx50.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.649.40..idx50.i, align 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %prog.i.0.cast, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, %str_slice* %__arg17.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return18.i" unwind label %unwind12.i | |
"normal return18.i": ; preds = %"normal return15.i" | |
%.sroa.036.0..idx.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([10 x i8]* @str11021, i64 0, i64 0), i8** %.sroa.036.0..idx.i, align 8 | |
%.sroa.137.8..idx38.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 1 | |
store i64 10, i64* %.sroa.137.8..idx38.i, align 8 | |
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg19.i) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i" unwind label %unwind12.i | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i": ; preds = %"normal return18.i" | |
%53 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%54 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 2, i64 0 | |
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 0 | |
%56 = load i64* %55, align 8 | |
%__adjust21.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 0 | |
store i8* %54, i8** %__adjust21.sroa.0.0..idx.i, align 8 | |
%__adjust21.sroa.1.8..idx35.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 1 | |
store i64 %56, i64* %__adjust21.sroa.1.8..idx35.i, align 8 | |
%57 = bitcast { i8*, i64 }* %__arg22.i to %str_slice* | |
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %57) | |
to label %"normal return23.i" unwind label %unwind24.i | |
"normal return23.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i" | |
%58 = icmp eq { i64, i64, [0 x i8] }* %53, null | |
br i1 %58, label %join.i, label %cond.i.i | |
cond.i.i: ; preds = %"normal return23.i" | |
%59 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %59) | |
br label %join.i | |
unwind24.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i" | |
%60 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract74.i = extractvalue { i8*, i32 } %60, 0 | |
%.fca.1.extract76.i = extractvalue { i8*, i32 } %60, 1 | |
%61 = icmp eq { i64, i64, [0 x i8] }* %53, null | |
br i1 %61, label %cleanup.i, label %cond.i8.i | |
cond.i8.i: ; preds = %unwind24.i | |
%62 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %62) | |
br label %cleanup.i | |
join.i: ; preds = %cond.i.i, %"normal return23.i", %match_case.i | |
%cond2.i = icmp eq i64 %__arg.i.i.i.sroa.3.64.copyload, 0 | |
br i1 %cond2.i, label %match_case31.i, label %match_else30.i | |
match_else30.i: ; preds = %join.i | |
invoke void %__arg.i.i.i.sroa.4.72.copyload({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
to label %join47.i unwind label %unwind.nonloopexit.i | |
match_case31.i: ; preds = %join.i | |
%63 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([1 x i8]* @str11022, i64 0, i64 0), i64 0) | |
to label %"normal return33.i" unwind label %unwind.nonloopexit.i | |
"normal return33.i": ; preds = %match_case31.i | |
store { i64, i64, [0 x i8] }* %63, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
%.sroa.025.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 0 | |
store i32 0, i32* %.sroa.025.0..idx.i, align 8 | |
%.sroa.2.8..idx27.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.2.8..idx27.i, align 8 | |
%.sroa.4.24..idx29.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.4.24..idx29.i, align 8 | |
%.sroa.6.40..idx31.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.6.40..idx31.i, align 8 | |
%64 = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 0 | |
%.sroa.1.sroa.4.72.copyload.c.i = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %__arg.i.i.i.sroa.4.72.copyload to i8* | |
store i8* %.sroa.1.sroa.4.72.copyload.c.i, i8** %64, align 8 | |
%msg.sroa.1.8..idx96.i = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 1 | |
store i64 %__arg.i.i.i.sroa.5.80.copyload, i64* %msg.sroa.1.8..idx96.i, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, %str_slice* %__arg35.i, { i64, i64, [0 x i8] }** %__fmtbuf32.i) | |
to label %"normal return36.i" unwind label %unwind37.i | |
"normal return36.i": ; preds = %"normal return33.i" | |
%.sroa.0.0..idx.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([2 x i8]* @str11023, i64 0, i64 0), i8** %.sroa.0.0..idx.i, align 8 | |
%.sroa.1.8..idx24.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 1 | |
store i64 2, i64* %.sroa.1.8..idx24.i, align 8 | |
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf32.i, %str_slice* %__arg39.i) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i" unwind label %unwind37.i | |
unwind37.i: ; preds = %"normal return36.i", %"normal return33.i" | |
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract78.i = extractvalue { i8*, i32 } %65, 0 | |
%.fca.1.extract80.i = extractvalue { i8*, i32 } %65, 1 | |
%66 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
%67 = icmp eq { i64, i64, [0 x i8] }* %66, null | |
br i1 %67, label %cleanup.i, label %cond.i.i12.i | |
cond.i.i12.i: ; preds = %unwind37.i | |
%68 = bitcast { i64, i64, [0 x i8] }* %66 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %68) | |
br label %cleanup.i | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i": ; preds = %"normal return36.i" | |
%69 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 2, i64 0 | |
%71 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0 | |
%72 = load i64* %71, align 8 | |
%__adjust41.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 0 | |
store i8* %70, i8** %__adjust41.sroa.0.0..idx.i, align 8 | |
%__adjust41.sroa.1.8..idx23.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 1 | |
store i64 %72, i64* %__adjust41.sroa.1.8..idx23.i, align 8 | |
%73 = bitcast { i8*, i64 }* %__arg42.i to %str_slice* | |
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %73) | |
to label %"normal return43.i" unwind label %unwind44.i | |
"normal return43.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i" | |
%74 = icmp eq { i64, i64, [0 x i8] }* %69, null | |
br i1 %74, label %join47.i, label %cond.i16.i | |
cond.i16.i: ; preds = %"normal return43.i" | |
%75 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %75) | |
br label %join47.i | |
unwind44.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i" | |
%76 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract82.i = extractvalue { i8*, i32 } %76, 0 | |
%.fca.1.extract84.i = extractvalue { i8*, i32 } %76, 1 | |
%77 = icmp eq { i64, i64, [0 x i8] }* %69, null | |
br i1 %77, label %cleanup.i, label %cond.i18.i | |
cond.i18.i: ; preds = %unwind44.i | |
%78 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %78) | |
br label %cleanup.i | |
join47.i: ; preds = %cond.i16.i, %"normal return43.i", %match_else30.i | |
%79 = bitcast %enum.ValidUsage* %0 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %79, i8 0, i64 16, i32 8, i1 false) | |
br label %join49.i | |
join49.i: ; preds = %join47.i, %match_else.i | |
%80 = icmp eq { i64, i64, [0 x i8] }* %16, null | |
br i1 %80, label %join, label %cond.i.i20.i | |
cond.i.i20.i: ; preds = %join49.i | |
%81 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %81) | |
br label %join | |
compare_vec_len_next: ; preds = %"function top level" | |
%82 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %82, align 8 | |
br label %join | |
join: ; preds = %cond.i.i20.i, %join49.i, %compare_vec_len_next | |
ret void | |
} | |
declare void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
define internal fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%__arg3.i = alloca %str_slice, align 8 | |
%v.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg.sroa.0.0..cast.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to i8** | |
%__arg.sroa.0.0.copyload.i = load i8** %__arg.sroa.0.0..cast.i, align 8 | |
%__arg.sroa.1.8..idx.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 1 | |
%__arg.sroa.1.8..cast.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i to i64* | |
%__arg.sroa.1.8.copyload.i = load i64* %__arg.sroa.1.8..cast.i, align 8 | |
%1 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %1) | |
%2 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %2) | |
%3 = bitcast %str_slice* %__arg3.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %3) | |
%4 = bitcast { i64, i64, [0 x i8] }** %v.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %4) | |
%5 = icmp eq i64 %__arg.sroa.1.8.copyload.i, 0 | |
br i1 %5, label %then.i, label %next.i | |
then.i: ; preds = %"function top level" | |
%6 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10873, i64 0, i64 0), i64 18) | |
%7 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 2, i64 0 | |
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 0 | |
%9 = load i64* %8, align 8 | |
%10 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %7, i8** %10, align 8 | |
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %9, i64* %11, align 8 | |
%12 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%13 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %13) | |
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %12) | |
to label %.noexc110 unwind label %unwind.i | |
.noexc110: ; preds = %then.i | |
store { i64, i64, [0 x i8] }* %14, { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0 | |
%16 = load i64* %15, align 8 | |
%17 = add i64 %16, 6 | |
%18 = lshr i64 %17, 1 | |
%19 = or i64 %18, %17 | |
%20 = lshr i64 %19, 2 | |
%21 = or i64 %20, %19 | |
%22 = lshr i64 %21, 4 | |
%23 = or i64 %22, %21 | |
%24 = lshr i64 %23, 8 | |
%25 = or i64 %24, %23 | |
%26 = lshr i64 %25, 16 | |
%27 = or i64 %26, %25 | |
%28 = lshr i64 %27, 32 | |
%29 = or i64 %28, %27 | |
%30 = add i64 %29, 1 | |
%31 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %31, i64 %30) | |
to label %"normal return.i" unwind label %unwind.i7 | |
unwind.i7: ; preds = %.noexc110 | |
%32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%33 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%34 = icmp eq { i64, i64, [0 x i8] }* %33, null | |
br i1 %34, label %unwind.i.body, label %cond.i12 | |
cond.i12: ; preds = %unwind.i7 | |
%35 = bitcast { i64, i64, [0 x i8] }* %33 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %35) | |
to label %unwind.i.body unwind label %unwind.i | |
"normal return.i": ; preds = %.noexc110 | |
%36 = add i64 %16, -1 | |
%37 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%38 = getelementptr inbounds { i64, i64, [0 x i8] }* %37, i64 0, i32 2, i64 0 | |
%39 = ptrtoint i8* %38 to i64 | |
%40 = add i64 %36, %39 | |
%41 = inttoptr i64 %40 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* getelementptr inbounds ([8 x i8]* @str10874, i64 0, i64 0), i64 7, i32 1, i1 false) | |
%42 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%43 = add i64 %16, 7 | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 0, i32 0 | |
store i64 %43, i64* %44, align 8 | |
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 1 | |
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64 | |
%47 = add i64 %17, %46 | |
%48 = inttoptr i64 %47 to i8* | |
store i8 0, i8* %48, align 1 | |
%49 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %13) | |
%50 = icmp eq { i64, i64, [0 x i8] }* %6, null | |
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18", label %cond.i17 | |
cond.i17: ; preds = %"normal return.i" | |
%51 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18": ; preds = %"normal return.i", %cond.i17 | |
%.sroa.0186.0..idx = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([38 x i8]* @str10875, i64 0, i64 0), i8** %.sroa.0186.0..idx, align 8 | |
%.sroa.1188.8..idx189 = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1 | |
store i64 38, i64* %.sroa.1188.8..idx189, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 1581) | |
unreachable | |
unwind.i: ; preds = %cond.i12, %then.i | |
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.i.body | |
unwind.i.body: ; preds = %unwind.i7, %cond.i12, %unwind.i | |
%eh.lpad-body = phi { i8*, i32 } [ %52, %unwind.i ], [ %32, %cond.i12 ], [ %32, %unwind.i7 ] | |
call void @upcall_reset_stack_limit() | |
%53 = icmp eq { i64, i64, [0 x i8] }* %6, null | |
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit21", label %cond.i20 | |
cond.i20: ; preds = %unwind.i.body | |
%54 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit21" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit21": ; preds = %unwind.i.body, %cond.i20 | |
resume { i8*, i32 } %eh.lpad-body | |
next.i: ; preds = %"function top level" | |
%55 = add i64 %__arg.sroa.1.8.copyload.i, 16 | |
%56 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %55) | |
%57 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %56, null | |
br i1 %57, label %then.i24, label %.noexc40 | |
then.i24: ; preds = %next.i | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %.noexc40 | |
unwind7.i.body: ; preds = %"while loop cond.i170.preheader" | |
%58 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%59 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%60 = icmp eq { i64, i64, [0 x i8] }* %59, null | |
br i1 %60, label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10893E.exit37", label %cond.i36 | |
cond.i36: ; preds = %unwind7.i.body | |
%61 = bitcast { i64, i64, [0 x i8] }* %59 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %61) | |
br label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10893E.exit37" | |
"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10893E.exit37": ; preds = %unwind7.i.body, %cond.i36 | |
resume { i8*, i32 } %58 | |
.noexc40: ; preds = %then.i24, %next.i | |
%62 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%63 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %62, i64 0, i32 1 | |
store i64 %__arg.sroa.1.8.copyload.i, i64* %63, align 8 | |
%64 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to i64* | |
store i64 0, i64* %64, align 8 | |
%.c.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to { i64, i64, [0 x i8] }* | |
store { i64, i64, [0 x i8] }* %.c.i, { i64, i64, [0 x i8] }** %v.i, align 8 | |
%65 = getelementptr inbounds { i64, i64, [0 x i8] }* %.c.i, i64 0, i32 2, i64 0 | |
%66 = add i64 %__arg.sroa.1.8.copyload.i, -1 | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %65, i8* %__arg.sroa.0.0.copyload.i, i64 %66, i32 1, i1 false) | |
%67 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%68 = getelementptr inbounds { i64, i64, [0 x i8] }* %67, i64 0, i32 0 | |
store i64 %66, i64* %68, align 8 | |
%69 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0 | |
%71 = load i64* %70, align 8 | |
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 1 | |
%73 = load i64* %72, align 8 | |
%74 = icmp ugt i64 %73, %71 | |
br i1 %74, label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit, label %"while loop cond.i170.preheader" | |
"while loop cond.i170.preheader": ; preds = %.noexc40 | |
%75 = bitcast { i64, i64, [0 x i8] }** %v.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%76 = lshr i64 %71, 1 | |
%77 = or i64 %76, %71 | |
%78 = lshr i64 %77, 2 | |
%79 = or i64 %78, %77 | |
%80 = lshr i64 %79, 4 | |
%81 = or i64 %80, %79 | |
%82 = lshr i64 %81, 8 | |
%83 = or i64 %82, %81 | |
%84 = lshr i64 %83, 16 | |
%85 = or i64 %84, %83 | |
%86 = lshr i64 %85, 32 | |
%87 = or i64 %86, %85 | |
%88 = add i64 %87, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %75, i64 %88) | |
to label %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge" unwind label %unwind7.i.body | |
"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge": ; preds = %"while loop cond.i170.preheader" | |
%.pre = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%.phi.trans.insert = getelementptr inbounds { i64, i64, [0 x i8] }* %.pre, i64 0, i32 0 | |
%.pre390 = load i64* %.phi.trans.insert, align 8 | |
br label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit | |
_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit: ; preds = %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge", %.noexc40 | |
%89 = phi i64 [ %.pre390, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge" ], [ %71, %.noexc40 ] | |
%90 = phi { i64, i64, [0 x i8] }* [ %.pre, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge" ], [ %69, %.noexc40 ] | |
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 0 | |
%92 = add i64 %89, 1 | |
store i64 %92, i64* %91, align 8 | |
%93 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%94 = getelementptr inbounds { i64, i64, [0 x i8] }* %93, i64 1 | |
%95 = ptrtoint { i64, i64, [0 x i8] }* %94 to i64 | |
%96 = add i64 %95, %89 | |
%97 = inttoptr i64 %96 to i8* | |
store i8 0, i8* %97, align 1 | |
%98 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
call void @llvm.lifetime.end(i64 0, i8* %1) | |
call void @llvm.lifetime.end(i64 16, i8* %2) | |
call void @llvm.lifetime.end(i64 16, i8* %3) | |
call void @llvm.lifetime.end(i64 8, i8* %4) | |
ret { i64, i64, [0 x i8] }* %98 | |
} | |
declare void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }*, %str_slice*, i64) | |
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 { | |
"function top level": | |
%__trans_ret_slot = alloca {}, align 8 | |
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg7 = alloca %str_slice, align 8 | |
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"** | |
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8 | |
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1 | |
%5 = load i64* %4, align 8 | |
%6 = icmp ult i64 %5, %1 | |
br i1 %6, label %join, label %next10 | |
join: ; preds = %"function top level" | |
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %1, i64 16) | |
%7 = extractvalue { i64, i1 } %uadd, 1 | |
br i1 %7, label %then3, label %next8 | |
then3: ; preds = %join | |
%8 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10809, i64 0, i64 0), i64 26) | |
store { i64, i64, [0 x i8] }* %8, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0 | |
store i32 0, i32* %.sroa.018.0..idx, align 8 | |
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.2.8..idx20, align 8 | |
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.4.24..idx22, align 8 | |
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.6.40..idx24, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12" unwind label %unwind | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12": ; preds = %then3 | |
%9 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0 | |
store i8* getelementptr inbounds ([38 x i8]* @str10820, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8 | |
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1 | |
store i64 38, i64* %.sroa.1.8..idx13, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %9, %str_slice* %__arg7, i64 1166) | |
unreachable | |
unwind: ; preds = %then3 | |
%10 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%11 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%12 = icmp eq { i64, i64, [0 x i8] }* %11, null | |
br i1 %12, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i | |
cond.i.i: ; preds = %unwind | |
%13 = bitcast { i64, i64, [0 x i8] }* %11 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %13) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %unwind, %cond.i.i | |
resume { i8*, i32 } %10 | |
next8: ; preds = %join | |
%14 = extractvalue { i64, i1 } %uadd, 0 | |
%15 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%16 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %15, i64 %14) | |
%17 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %16, null | |
br i1 %17, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
then.i: ; preds = %next8 | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i | |
%18 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%19 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0 | |
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to i64 | |
store i64 %.c, i64* %19, align 8 | |
%20 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %18, i64 0, i32 1 | |
store i64 %1, i64* %20, align 8 | |
br label %next10 | |
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
ret void | |
} | |
declare { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64) | |
declare void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, i64, { i64, i64, [0 x i8] }**) | |
declare void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64) | |
declare void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) | |
declare { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64, i64, i64) | |
define void @"_ZN8find_cmd17_d4675eccdab8bd1614_0$x2e8$x2dpreE"(%"enum.std::option::Option<Command>[#1]"* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #2 { | |
"function top level": | |
%__arg.i = alloca %struct.Command, align 8 | |
%__arg2.i.sroa.0.0..idx = getelementptr inbounds %str_slice* %2, i64 0, i32 0 | |
%__arg2.i.sroa.1.8..idx78 = getelementptr inbounds %str_slice* %2, i64 0, i32 1 | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52" | |
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52": ; preds = %"`loop`.i.i.backedge", %"function top level" | |
%.sroa.08.091 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"function top level" ], [ %3, %"`loop`.i.i.backedge" ] | |
%3 = add i64 %.sroa.08.091, 88 | |
%4 = inttoptr i64 %.sroa.08.091 to %struct.Command* | |
%__arg1.i.sroa.1.8..idx43 = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 1 | |
%__arg1.i.sroa.1.8.copyload = load i64* %__arg1.i.sroa.1.8..idx43, align 8 | |
%__arg2.i.sroa.1.8.copyload = load i64* %__arg2.i.sroa.1.8..idx78, align 8 | |
%5 = icmp eq i64 %__arg1.i.sroa.1.8.copyload, %__arg2.i.sroa.1.8.copyload | |
br i1 %5, label %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit, label %"`loop`.i.i.backedge" | |
"`loop`.i.i.backedge": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52", %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit | |
%6 = inttoptr i64 %3 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%7 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %6, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%8 = icmp eq i64 %3, 0 | |
%or.cond = or i1 %7, %8 | |
br i1 %or.cond, label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52" | |
_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52" | |
%__arg1.i.sroa.0.0..idx = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 0 | |
%__arg2.i.sroa.0.0.copyload = load i8** %__arg2.i.sroa.0.0..idx, align 8 | |
%__arg1.i.sroa.0.0.copyload = load i8** %__arg1.i.sroa.0.0..idx, align 8 | |
%9 = bitcast i8* %__arg1.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%10 = bitcast i8* %__arg2.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%11 = add i64 %__arg1.i.sroa.1.8.copyload, -1 | |
%12 = call i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %9, %"enum.std::libc::types::common::c95::c_void[#1]"* %10, i64 %11) | |
%13 = icmp eq i32 %12, 0 | |
br i1 %13, label %match_else.i, label %"`loop`.i.i.backedge" | |
match_else.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit | |
%14 = bitcast %struct.Command* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %14) | |
%15 = inttoptr i64 %.sroa.08.091 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %15, i64 88, i32 8, i1 false) | |
%16 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0 | |
store i64 1, i64* %16, align 8 | |
%17 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 1, i64 0 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %14, i64 88, i32 8, i1 false) #0 | |
br label %"_ZN6option14__extensions__17map_consume_1094616_40771e9153818ec14_0$x2e8$x2dpreE.exit" | |
match_case.i: ; preds = %"`loop`.i.i.backedge", %"function top level" | |
%18 = bitcast %struct.Command* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %18) | |
%19 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0 | |
store i64 0, i64* %19, align 8 | |
br label %"_ZN6option14__extensions__17map_consume_1094616_40771e9153818ec14_0$x2e8$x2dpreE.exit" | |
"_ZN6option14__extensions__17map_consume_1094616_40771e9153818ec14_0$x2e8$x2dpreE.exit": ; preds = %match_else.i, %match_case.i | |
%20 = phi i8* [ %14, %match_else.i ], [ %18, %match_case.i ] | |
call void @llvm.lifetime.end(i64 88, i8* %20) | |
ret void | |
} | |
declare i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64) | |
declare void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
declare void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, %str_slice*, { i64, i64, [0 x i8] }**) | |
declare void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }**, %str_slice*) | |
declare void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, %str_slice*, i64) | |
declare void @"_ZN4path14__extensions__10meth_225818filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
define void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* nocapture) #2 { | |
"function top level": | |
%__adjust.i.i = alloca { i8*, i64 }, align 8 | |
%result.i = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8 | |
%osargs = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8 | |
%4 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 48) | |
%5 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %4, null | |
br i1 %5, label %then.i.i, label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
then.i.i: ; preds = %"function top level" | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit": ; preds = %"function top level", %then.i.i | |
%6 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i8* | |
%7 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i64* | |
store i64 8, i64* %7, align 8 | |
%8 = getelementptr inbounds i8* %6, i64 8 | |
%9 = bitcast i8* %8 to i64* | |
store i64 32, i64* %9, align 8 | |
%10 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%11 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %10) | |
to label %"normal return" unwind label %unwind | |
"normal return": ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
%12 = getelementptr inbounds i8* %6, i64 16 | |
%13 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* | |
%14 = bitcast i8* %12 to { i64, i64, [0 x i8] }** | |
store { i64, i64, [0 x i8] }* %11, { i64, i64, [0 x i8] }** %14, align 8 | |
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %13, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%15 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %15) | |
%s.sroa.1.8..idx.i.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%s.sroa.1.8.copyload.i.i.i = load i64* %s.sroa.1.8..idx.i.i.i, align 1 | |
%16 = and i64 %s.sroa.1.8.copyload.i.i.i, -8 | |
%17 = add i64 %16, 16 | |
%18 = invoke %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %17) | |
to label %.noexc unwind label %unwind2.nonloopexit.nonloopexit | |
.noexc: ; preds = %"normal return" | |
%19 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %18, null | |
br i1 %19, label %then.i.i.i, label %"normal return.i" | |
then.i.i.i: ; preds = %.noexc | |
invoke void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
to label %"normal return.i" unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return.i": ; preds = %then.i.i.i, %.noexc | |
%20 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%21 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %20, i64 0, i32 1 | |
store i64 %16, i64* %21, align 8 | |
%22 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to i64* | |
store i64 0, i64* %22, align 8 | |
%.c.i.i.i.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* | |
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.c.i.i.i.i, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%23 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%24 = load { i64, i64, [0 x i8] }*** %23, align 8 | |
%25 = load i64* %s.sroa.1.8..idx.i.i.i, align 8 | |
%26 = ptrtoint { i64, i64, [0 x i8] }** %24 to i64 | |
%27 = and i64 %25, -8 | |
%28 = add i64 %27, %26 | |
%29 = inttoptr i64 %28 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%30 = bitcast { i64, i64, [0 x i8] }** %24 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%31 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %30, %29 | |
br i1 %31, label %"normal return1", label %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" | |
"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i": ; preds = %"normal return.i" | |
%32 = bitcast { i8*, i64 }* %__adjust.i.i to i8* | |
%33 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 0 | |
%34 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 1 | |
%35 = bitcast { i8*, i64 }* %__adjust.i.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
br label %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" | |
%.sroa.015.082.i = phi i64 [ %26, %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" ], [ %37, %.noexc.i ] | |
%37 = add i64 %.sroa.015.082.i, 8 | |
%38 = icmp eq i64 %.sroa.015.082.i, 0 | |
br i1 %38, label %"normal return2.loopexit.i", label %match_case.i.i | |
match_case.i.i: ; preds = %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
call void @llvm.lifetime.start(i64 16, i8* %32) | |
%39 = inttoptr i64 %.sroa.015.082.i to { i64, i64, [0 x i8] }** | |
%40 = load { i64, i64, [0 x i8] }** %39, align 8 | |
%41 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 2, i64 0 | |
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 0 | |
%43 = load i64* %42, align 8 | |
store i8* %41, i8** %33, align 8 | |
store i64 %43, i64* %34, align 8 | |
%44 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %35) | |
to label %"normal return8.i.i" unwind label %unwind.loopexit.i | |
unwind.i.body.i: ; preds = %"normal return12.i.i" | |
%45 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%46 = icmp eq { i64, i64, [0 x i8] }* %44, null | |
br i1 %46, label %unwind.body.i, label %cond.i.i34.i | |
cond.i.i34.i: ; preds = %unwind.i.body.i | |
%47 = bitcast { i64, i64, [0 x i8] }* %44 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %47) | |
to label %unwind.body.i unwind label %unwind.nonloopexit.i | |
"normal return8.i.i": ; preds = %match_case.i.i | |
call void @llvm.lifetime.end(i64 16, i8* %32) | |
%48 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%49 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 0 | |
%50 = load i64* %49, align 8 | |
%51 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 1 | |
%52 = load i64* %51, align 8 | |
%53 = icmp ugt i64 %52, %50 | |
br i1 %53, label %.noexc.i, label %"normal return12.i.i" | |
"normal return12.i.i": ; preds = %"normal return8.i.i" | |
%54 = lshr i64 %50, 3 | |
%55 = lshr i64 %50, 4 | |
%56 = or i64 %55, %54 | |
%57 = lshr i64 %56, 2 | |
%58 = or i64 %57, %56 | |
%59 = lshr i64 %58, 4 | |
%60 = or i64 %59, %58 | |
%61 = lshr i64 %60, 8 | |
%62 = or i64 %61, %60 | |
%63 = lshr i64 %62, 16 | |
%64 = or i64 %63, %62 | |
%65 = lshr i64 %64, 32 | |
%66 = or i64 %65, %64 | |
%67 = add i64 %66, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1108916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %36, i64 %67) | |
to label %"normal return12.i..noexc_crit_edge.i" unwind label %unwind.i.body.i | |
"normal return12.i..noexc_crit_edge.i": ; preds = %"normal return12.i.i" | |
%.pre.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%.phi.trans.insert.i = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.pre.i, i64 0, i32 0 | |
%.pre84.i = load i64* %.phi.trans.insert.i, align 8 | |
br label %.noexc.i | |
.noexc.i: ; preds = %"normal return12.i..noexc_crit_edge.i", %"normal return8.i.i" | |
%68 = phi i64 [ %.pre84.i, %"normal return12.i..noexc_crit_edge.i" ], [ %50, %"normal return8.i.i" ] | |
%69 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre.i, %"normal return12.i..noexc_crit_edge.i" ], [ %48, %"normal return8.i.i" ] | |
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %69, i64 0, i32 0 | |
%71 = add i64 %68, 8 | |
store i64 %71, i64* %70, align 8 | |
%72 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%73 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %72, i64 1 | |
%74 = ptrtoint { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to i64 | |
%75 = add i64 %74, %68 | |
%76 = inttoptr i64 %75 to { i64, i64, [0 x i8] }** | |
store { i64, i64, [0 x i8] }* %44, { i64, i64, [0 x i8] }** %76, align 8 | |
%77 = inttoptr i64 %37 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%78 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %77, %29 | |
br i1 %78, label %"normal return2.loopexit.i", label %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
unwind.loopexit.i: ; preds = %match_case.i.i | |
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.body.i | |
unwind.nonloopexit.i: ; preds = %cond.i.i34.i | |
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.body.i | |
unwind.body.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i, %cond.i.i34.i, %unwind.i.body.i | |
%eh.lpad-body.i = phi { i8*, i32 } [ %45, %unwind.i.body.i ], [ %45, %cond.i.i34.i ], [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ] | |
call void @upcall_reset_stack_limit() | |
%79 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%80 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, null | |
br i1 %80, label %unwind2.body, label %cond.i.i3.i | |
cond.i.i3.i: ; preds = %unwind.body.i | |
%81 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 0 | |
%82 = load i64* %81, align 8 | |
%83 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 2, i64 0 | |
%84 = bitcast { i64, i64, [0 x i8] }** %83 to i8* | |
%85 = getelementptr inbounds i8* %84, i64 %82 | |
%86 = bitcast i8* %85 to { i64, i64, [0 x i8] }** | |
%87 = icmp ult { i64, i64, [0 x i8] }** %83, %86 | |
br i1 %87, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i" | |
iter_vec_loop_body.i.i.i4.i: ; preds = %cond.i.i3.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i" | |
%88 = phi { i64, i64, [0 x i8] }** [ %92, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i" ], [ %83, %cond.i.i3.i ] | |
%89 = load { i64, i64, [0 x i8] }** %88, align 8 | |
%90 = icmp eq { i64, i64, [0 x i8] }* %89, null | |
br i1 %90, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i", label %cond.i.i.i.i.i5.i | |
cond.i.i.i.i.i5.i: ; preds = %iter_vec_loop_body.i.i.i4.i | |
%91 = bitcast { i64, i64, [0 x i8] }* %89 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %91) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i" unwind label %unwind2.nonloopexit.loopexit | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i": ; preds = %cond.i.i.i.i.i5.i, %iter_vec_loop_body.i.i.i4.i | |
%92 = getelementptr inbounds { i64, i64, [0 x i8] }** %88, i64 1 | |
%93 = icmp ult { i64, i64, [0 x i8] }** %92, %86 | |
br i1 %93, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i", %cond.i.i3.i | |
%94 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %94) | |
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return2.loopexit.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
%.pre85.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
br label %"normal return1" | |
unwind: ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
%95 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %4) | |
resume { i8*, i32 } %95 | |
"normal return1": ; preds = %"normal return2.loopexit.i", %"normal return.i" | |
%96 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre85.i, %"normal return2.loopexit.i" ], [ %.c.i.i.i.i, %"normal return.i" ] | |
call void @llvm.lifetime.end(i64 8, i8* %15) | |
%97 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs to { i64, %tydesc*, i8*, i8*, i8 }* | |
%98 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%99 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %98, i64 0, i32 0 | |
%100 = load i64* %99, align 8 | |
%101 = lshr i64 %100, 3 | |
%102 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 0 | |
%103 = load i64* %102, align 8 | |
%104 = lshr i64 %103, 3 | |
%105 = add i64 %104, %101 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1108916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %97, i64 %105) | |
to label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i" unwind label %cond.i.i12.i | |
cond.i.i12.i: ; preds = %"normal return1" | |
%106 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%107 = load i64* %102, align 8 | |
%108 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0 | |
%109 = bitcast { i64, i64, [0 x i8] }** %108 to i8* | |
%110 = getelementptr inbounds i8* %109, i64 %107 | |
%111 = bitcast i8* %110 to { i64, i64, [0 x i8] }** | |
%112 = icmp ult { i64, i64, [0 x i8] }** %108, %111 | |
br i1 %112, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i" | |
iter_vec_loop_body.i.i.i13.i: ; preds = %cond.i.i12.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i" | |
%113 = phi { i64, i64, [0 x i8] }** [ %117, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i" ], [ %108, %cond.i.i12.i ] | |
%114 = load { i64, i64, [0 x i8] }** %113, align 8 | |
%115 = icmp eq { i64, i64, [0 x i8] }* %114, null | |
br i1 %115, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i", label %cond.i.i.i.i.i14.i | |
cond.i.i.i.i.i14.i: ; preds = %iter_vec_loop_body.i.i.i13.i | |
%116 = bitcast { i64, i64, [0 x i8] }* %114 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %116) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i" unwind label %unwind2.loopexit | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i": ; preds = %cond.i.i.i.i.i14.i, %iter_vec_loop_body.i.i.i13.i | |
%117 = getelementptr inbounds { i64, i64, [0 x i8] }** %113, i64 1 | |
%118 = icmp ult { i64, i64, [0 x i8] }** %117, %111 | |
br i1 %118, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i", %cond.i.i12.i | |
%119 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %119) | |
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i": ; preds = %"normal return1" | |
%120 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%121 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %120, i64 0, i32 2, i64 0 | |
%122 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0 | |
%123 = ptrtoint { i64, i64, [0 x i8] }** %121 to i64 | |
%124 = shl nuw i64 %101, 3 | |
%125 = add i64 %123, %124 | |
%126 = inttoptr i64 %125 to i8* | |
%127 = bitcast { i64, i64, [0 x i8] }** %122 to i8* | |
%128 = shl nuw i64 %104, 3 | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %126, i8* %127, i64 %128, i32 8, i1 false) #0 | |
%129 = shl i64 %105, 3 | |
%130 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%131 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %130, i64 0, i32 0 | |
store i64 %129, i64* %131, align 8 | |
store i64 0, i64* %102, align 8 | |
%132 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %132) | |
to label %"normal return4" unwind label %unwind2.nonloopexit.nonloopexit | |
unwind2.loopexit: ; preds = %cond.i.i.i.i.i14.i | |
%lpad.loopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind2.body | |
unwind2.nonloopexit.loopexit: ; preds = %cond.i.i.i.i.i5.i | |
%lpad.loopexit32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind2.body | |
unwind2.nonloopexit.nonloopexit: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i", %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i", %then.i.i.i, %"normal return", %"normal return6", %"normal return4" | |
%lpad.nonloopexit33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind2.body | |
unwind2.body: ; preds = %unwind2.loopexit, %unwind2.nonloopexit.nonloopexit, %unwind2.nonloopexit.loopexit, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i", %unwind.body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i" | |
%eh.lpad-body = phi { i8*, i32 } [ %eh.lpad-body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i" ], [ %eh.lpad-body.i, %unwind.body.i ], [ %106, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i" ], [ %lpad.loopexit, %unwind2.loopexit ], [ %lpad.loopexit32, %unwind2.nonloopexit.loopexit ], [ %lpad.nonloopexit33, %unwind2.nonloopexit.nonloopexit ] | |
call void @upcall_reset_stack_limit() | |
%133 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%134 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, null | |
br i1 %134, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit", label %cond.i.i | |
cond.i.i: ; preds = %unwind2.body | |
%135 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 0 | |
%136 = load i64* %135, align 8 | |
%137 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 2, i64 0 | |
%138 = bitcast { i64, i64, [0 x i8] }** %137 to i8* | |
%139 = getelementptr inbounds i8* %138, i64 %136 | |
%140 = bitcast i8* %139 to { i64, i64, [0 x i8] }** | |
%141 = icmp ult { i64, i64, [0 x i8] }** %137, %140 | |
br i1 %141, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i" | |
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" | |
%142 = phi { i64, i64, [0 x i8] }** [ %146, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" ], [ %137, %cond.i.i ] | |
%143 = load { i64, i64, [0 x i8] }** %142, align 8 | |
%144 = icmp eq { i64, i64, [0 x i8] }* %143, null | |
br i1 %144, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", label %cond.i.i.i.i.i | |
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i | |
%145 = bitcast { i64, i64, [0 x i8] }* %143 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %145) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i | |
%146 = getelementptr inbounds { i64, i64, [0 x i8] }** %142, i64 1 | |
%147 = icmp ult { i64, i64, [0 x i8] }** %146, %140 | |
br i1 %147, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", %cond.i.i | |
%148 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %148) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit": ; preds = %unwind2.body, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i" | |
resume { i8*, i32 } %eh.lpad-body | |
"normal return4": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i" | |
%149 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* null, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
invoke void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %149) | |
to label %"normal return6" unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return6": ; preds = %"normal return4" | |
%150 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 0 | |
%151 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %150, align 8 | |
%152 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 1 | |
%153 = load { i64, %tydesc*, i8*, i8*, i8 }** %152, align 8 | |
invoke void %151({ i64, %tydesc*, i8*, i8*, i8 }* %153) | |
to label %"normal return7" unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return7": ; preds = %"normal return6" | |
%154 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%155 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, null | |
br i1 %155, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit21", label %cond.i.i16 | |
cond.i.i16: ; preds = %"normal return7" | |
%156 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 0 | |
%157 = load i64* %156, align 8 | |
%158 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 2, i64 0 | |
%159 = bitcast { i64, i64, [0 x i8] }** %158 to i8* | |
%160 = getelementptr inbounds i8* %159, i64 %157 | |
%161 = bitcast i8* %160 to { i64, i64, [0 x i8] }** | |
%162 = icmp ult { i64, i64, [0 x i8] }** %158, %161 | |
br i1 %162, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20" | |
iter_vec_loop_body.i.i.i17: ; preds = %cond.i.i16, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19" | |
%163 = phi { i64, i64, [0 x i8] }** [ %167, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19" ], [ %158, %cond.i.i16 ] | |
%164 = load { i64, i64, [0 x i8] }** %163, align 8 | |
%165 = icmp eq { i64, i64, [0 x i8] }* %164, null | |
br i1 %165, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19", label %cond.i.i.i.i.i18 | |
cond.i.i.i.i.i18: ; preds = %iter_vec_loop_body.i.i.i17 | |
%166 = bitcast { i64, i64, [0 x i8] }* %164 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %166) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19": ; preds = %cond.i.i.i.i.i18, %iter_vec_loop_body.i.i.i17 | |
%167 = getelementptr inbounds { i64, i64, [0 x i8] }** %163, i64 1 | |
%168 = icmp ult { i64, i64, [0 x i8] }** %167, %161 | |
br i1 %168, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19", %cond.i.i16 | |
%169 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %169) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit21" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit21": ; preds = %"normal return7", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20" | |
ret void | |
} | |
declare i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, { { i64, i64, [0 x i8] }**, i64 }*) | |
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1108916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 { | |
"function top level": | |
%__trans_ret_slot = alloca {}, align 8 | |
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg7 = alloca %str_slice, align 8 | |
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"** | |
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8 | |
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1 | |
%5 = load i64* %4, align 8 | |
%6 = lshr i64 %5, 3 | |
%7 = icmp ult i64 %6, %1 | |
br i1 %7, label %next, label %next10 | |
next: ; preds = %"function top level" | |
%8 = shl i64 %1, 3 | |
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %8, i64 16) | |
%9 = extractvalue { i64, i1 } %uadd, 0 | |
%10 = and i64 %1, 2305843009213693951 | |
%11 = icmp ne i64 %10, %1 | |
%12 = zext i1 %11 to i8 | |
br i1 %11, label %join, label %rhs | |
join: ; preds = %rhs, %next | |
%13 = phi i8 [ %12, %next ], [ %16, %rhs ] | |
%14 = icmp eq i8 %13, 0 | |
br i1 %14, label %next8, label %then3 | |
rhs: ; preds = %next | |
%15 = extractvalue { i64, i1 } %uadd, 1 | |
%16 = zext i1 %15 to i8 | |
br label %join | |
then3: ; preds = %join | |
%17 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10809, i64 0, i64 0), i64 26) | |
store { i64, i64, [0 x i8] }* %17, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0 | |
store i32 0, i32* %.sroa.018.0..idx, align 8 | |
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.2.8..idx20, align 8 | |
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.4.24..idx22, align 8 | |
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.6.40..idx24, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12" unwind label %unwind | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12": ; preds = %then3 | |
%18 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0 | |
store i8* getelementptr inbounds ([38 x i8]* @str10820, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8 | |
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1 | |
store i64 38, i64* %.sroa.1.8..idx13, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %18, %str_slice* %__arg7, i64 1166) | |
unreachable | |
unwind: ; preds = %then3 | |
%19 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%20 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%21 = icmp eq { i64, i64, [0 x i8] }* %20, null | |
br i1 %21, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i | |
cond.i.i: ; preds = %unwind | |
%22 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %22) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %unwind, %cond.i.i | |
resume { i8*, i32 } %19 | |
next8: ; preds = %join | |
%23 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%24 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %23, i64 %9) | |
%25 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %24, null | |
br i1 %25, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
then.i: ; preds = %next8 | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i | |
%26 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%27 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0 | |
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to i64 | |
store i64 %.c, i64* %27, align 8 | |
%28 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %26, i64 0, i32 1 | |
store i64 %8, i64* %28, align 8 | |
br label %next10 | |
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
ret void | |
} | |
declare void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*) | |
define void @"_ZN10do_command17_6f2daee512704c8a14_0$x2e8$x2dpreE"(%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %struct.Command*, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%__arg5 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg6 = alloca %str_slice, align 8 | |
%__arg8 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg10 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%4 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 0 | |
%5 = load i64* %4, align 8, !range !0 | |
%cond = icmp eq i64 %5, 0 | |
%6 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 1 | |
br i1 %cond, label %match_case, label %match_else | |
match_else: ; preds = %"function top level" | |
%7 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 2, i64 8 | |
%8 = bitcast i8* %7 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
%9 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %8, align 8 | |
%10 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6 to i8* | |
%__arg614 = bitcast %str_slice* %__arg6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %__arg614, i8* %10, i64 16, i32 8, i1 false) | |
%11 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0 | |
%12 = load { i64, i64, [0 x i8] }*** %11, align 8 | |
%13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1 | |
%14 = load i64* %13, align 8 | |
%__adjust7.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %12, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx, align 8 | |
%__adjust7.sroa.1.8..idx12 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 1 | |
store i64 %14, i64* %__adjust7.sroa.1.8..idx12, align 8 | |
%__adjust9.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 0 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %9, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx, align 8 | |
%__adjust9.sroa.1.8..idx11 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 1 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11, align 8 | |
call void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg8, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10) | |
%15 = bitcast %enum.ValidUsage* %0 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false) | |
br label %join | |
match_case: ; preds = %"function top level" | |
%16 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6, align 8 | |
%17 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0 | |
%18 = load { i64, i64, [0 x i8] }*** %17, align 8 | |
%19 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1 | |
%20 = load i64* %19, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %18, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 1 | |
store i64 %20, i64* %__adjust.sroa.1.8..idx13, align 8 | |
call void %16(%enum.ValidUsage* %0, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5) | |
br label %join | |
join: ; preds = %match_else, %match_case | |
ret void | |
} | |
define void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 { | |
"function top level": | |
%1 = alloca %str_slice, align 8 | |
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg1.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg2.i = alloca %str_slice, align 8 | |
%__arg6.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg7.i = alloca { i8*, i64 }, align 8 | |
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg10.i = alloca %str_slice, align 8 | |
%__arg13.i = alloca { i8*, i64 }, align 8 | |
%__arg = alloca %str_slice, align 8 | |
%__arg2 = alloca %str_slice, align 8 | |
%.sroa.010.0..idx = getelementptr inbounds %str_slice* %__arg, i64 0, i32 0 | |
store i8* getelementptr inbounds ([177 x i8]* @str11159, i64 0, i64 0), i8** %.sroa.010.0..idx, align 8 | |
%.sroa.111.8..idx12 = getelementptr inbounds %str_slice* %__arg, i64 0, i32 1 | |
store i64 177, i64* %.sroa.111.8..idx12, align 8 | |
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg) | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"_ZN8iterator14__extensions__13advance_1116015_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i.lr.ph | |
match_case.i.lr.ph: ; preds = %"function top level" | |
%2 = bitcast %str_slice* %1 to i8* | |
%3 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8* | |
%4 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i to i8* | |
%5 = bitcast %str_slice* %__arg2.i to i8* | |
%6 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i to i8* | |
%7 = bitcast { i8*, i64 }* %__arg7.i to i8* | |
%8 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8* | |
%9 = bitcast %str_slice* %__arg10.i to i8* | |
%10 = bitcast { i8*, i64 }* %__arg13.i to i8* | |
%11 = getelementptr inbounds %str_slice* %1, i64 0, i32 0 | |
%12 = getelementptr inbounds %str_slice* %1, i64 0, i32 1 | |
%13 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%.sroa.063.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 0 | |
%.sroa.267.8..idx68 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 1, i32 0 | |
%.sroa.473.24..idx74 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 2, i32 0 | |
%.sroa.679.40..idx80 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 3, i32 0 | |
%.sroa.044.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 0 | |
%.sroa.248.8..idx49 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 1, i32 0 | |
%.sroa.454.24..idx55 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 2, i32 0 | |
%.sroa.660.40..idx61 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 3, i32 0 | |
%__adjust.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 0 | |
%__adjust.i.sroa.1.8..idx42 = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 1 | |
%14 = bitcast { i8*, i64 }* %__arg7.i to %str_slice* | |
%.sroa.0.0..idx28 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0 | |
%.sroa.2.8..idx31 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0 | |
%.sroa.4.24..idx35 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0 | |
%.sroa.6.40..idx39 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0 | |
%__adjust12.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 0 | |
%__adjust12.i.sroa.1.8..idx26 = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 1 | |
%15 = bitcast { i8*, i64 }* %__arg13.i to %str_slice* | |
br label %match_case.i | |
match_case.i: ; preds = %match_case.i.lr.ph, %"`loop`.i.backedge" | |
%.sroa.08.0110 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %match_case.i.lr.ph ], [ %16, %"`loop`.i.backedge" ] | |
%16 = add i64 %.sroa.08.0110, 88 | |
%17 = inttoptr i64 %.sroa.08.0110 to %struct.Command* | |
call void @llvm.lifetime.start(i64 16, i8* %2) | |
call void @llvm.lifetime.start(i64 8, i8* %3) | |
call void @llvm.lifetime.start(i64 48, i8* %4) | |
call void @llvm.lifetime.start(i64 16, i8* %5) | |
call void @llvm.lifetime.start(i64 48, i8* %6) | |
call void @llvm.lifetime.start(i64 16, i8* %7) | |
call void @llvm.lifetime.start(i64 48, i8* %8) | |
call void @llvm.lifetime.start(i64 16, i8* %9) | |
call void @llvm.lifetime.start(i64 16, i8* %10) | |
store i8* getelementptr inbounds ([2 x i8]* @str11165, i64 0, i64 0), i8** %11, align 8 | |
store i64 2, i64* %12, align 8 | |
%18 = inttoptr i64 %.sroa.08.0110 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%__arg.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %18, i64 0, i32 1 | |
%__arg.sroa.1.8..cast.i.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i.i to i64* | |
%__arg.sroa.1.8.copyload.i.i = load i64* %__arg.sroa.1.8..cast.i.i, align 8 | |
%19 = sub i64 9, %__arg.sroa.1.8.copyload.i.i | |
%20 = call { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13, i64 %19) | |
%21 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11166, i64 0, i64 0), i64 4) | |
to label %"normal return.i" unwind label %unwind.i | |
"normal return.i": ; preds = %match_case.i | |
store { i64, i64, [0 x i8] }* %21, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
store i32 0, i32* %.sroa.063.0..idx, align 8 | |
store i64 1, i64* %.sroa.267.8..idx68, align 8 | |
store i64 1, i64* %.sroa.473.24..idx74, align 8 | |
store i64 0, i64* %.sroa.679.40..idx80, align 8 | |
%22 = inttoptr i64 %.sroa.08.0110 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %22, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, %str_slice* %__arg2.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return3.i" unwind label %unwind4.i | |
unwind.i: ; preds = %match_case.i | |
%23 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract = extractvalue { i8*, i32 } %23, 0 | |
%.fca.1.extract = extractvalue { i8*, i32 } %23, 1 | |
br label %cleanup.i | |
cleanup.i: ; preds = %cond.i, %unwind15.i, %cond.i.i13, %unwind4.i, %unwind.i | |
%.sroa.092.0 = phi i8* [ %.fca.0.extract, %unwind.i ], [ %.fca.0.extract85, %unwind4.i ], [ %.fca.0.extract85, %cond.i.i13 ], [ %.fca.0.extract89, %unwind15.i ], [ %.fca.0.extract89, %cond.i ] | |
%.sroa.194.0 = phi i32 [ %.fca.1.extract, %unwind.i ], [ %.fca.1.extract87, %unwind4.i ], [ %.fca.1.extract87, %cond.i.i13 ], [ %.fca.1.extract91, %unwind15.i ], [ %.fca.1.extract91, %cond.i ] | |
%24 = icmp eq { i64, i64, [0 x i8] }* %20, null | |
br i1 %24, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i | |
cond.i.i: ; preds = %cleanup.i | |
%25 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %25) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %cleanup.i, %cond.i.i | |
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.092.0, 0 | |
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.194.0, 1 | |
resume { i8*, i32 } %.fca.1.insert | |
"normal return3.i": ; preds = %"normal return.i" | |
store i32 0, i32* %.sroa.044.0..idx, align 8 | |
store i64 1, i64* %.sroa.248.8..idx49, align 8 | |
store i64 1, i64* %.sroa.454.24..idx55, align 8 | |
store i64 0, i64* %.sroa.660.40..idx61, align 8 | |
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 2, i64 0 | |
%27 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 0 | |
%28 = load i64* %27, align 8 | |
store i8* %26, i8** %__adjust.i.sroa.0.0..idx, align 8 | |
store i64 %28, i64* %__adjust.i.sroa.1.8..idx42, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, %str_slice* %14, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return8.i" unwind label %unwind4.i | |
unwind4.i: ; preds = %"normal return8.i", %"normal return3.i", %"normal return.i" | |
%29 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract85 = extractvalue { i8*, i32 } %29, 0 | |
%.fca.1.extract87 = extractvalue { i8*, i32 } %29, 1 | |
%30 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%31 = icmp eq { i64, i64, [0 x i8] }* %30, null | |
br i1 %31, label %cleanup.i, label %cond.i.i13 | |
cond.i.i13: ; preds = %unwind4.i | |
%32 = bitcast { i64, i64, [0 x i8] }* %30 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %32) | |
br label %cleanup.i | |
"normal return8.i": ; preds = %"normal return3.i" | |
store i32 0, i32* %.sroa.0.0..idx28, align 8 | |
store i64 1, i64* %.sroa.2.8..idx31, align 8 | |
store i64 1, i64* %.sroa.4.24..idx35, align 8 | |
store i64 0, i64* %.sroa.6.40..idx39, align 8 | |
%33 = getelementptr inbounds %struct.Command* %17, i64 0, i32 2 | |
%34 = bitcast %str_slice* %33 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %34, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16" unwind label %unwind4.i | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16": ; preds = %"normal return8.i" | |
%35 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%36 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 2, i64 0 | |
%37 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 0 | |
%38 = load i64* %37, align 8 | |
store i8* %36, i8** %__adjust12.i.sroa.0.0..idx, align 8 | |
store i64 %38, i64* %__adjust12.i.sroa.1.8..idx26, align 8 | |
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15) | |
to label %_ZN5usage4anon13expr_fn_11163E.exit unwind label %unwind15.i | |
unwind15.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16" | |
%39 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract89 = extractvalue { i8*, i32 } %39, 0 | |
%.fca.1.extract91 = extractvalue { i8*, i32 } %39, 1 | |
%40 = icmp eq { i64, i64, [0 x i8] }* %35, null | |
br i1 %40, label %cleanup.i, label %cond.i | |
cond.i: ; preds = %unwind15.i | |
%41 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41) | |
br label %cleanup.i | |
_ZN5usage4anon13expr_fn_11163E.exit: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16" | |
%42 = icmp eq { i64, i64, [0 x i8] }* %35, null | |
br i1 %42, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18", label %cond.i17 | |
cond.i17: ; preds = %_ZN5usage4anon13expr_fn_11163E.exit | |
%43 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %43) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18": ; preds = %_ZN5usage4anon13expr_fn_11163E.exit, %cond.i17 | |
%44 = icmp eq { i64, i64, [0 x i8] }* %20, null | |
br i1 %44, label %"`loop`.i.backedge", label %cond.i.i19 | |
"`loop`.i.backedge": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18", %cond.i.i19 | |
%45 = inttoptr i64 %16 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%46 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %45, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%47 = icmp eq i64 %16, 0 | |
%or.cond = or i1 %46, %47 | |
br i1 %or.cond, label %"_ZN8iterator14__extensions__13advance_1116015_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i | |
cond.i.i19: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18" | |
%48 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48) | |
br label %"`loop`.i.backedge" | |
"_ZN8iterator14__extensions__13advance_1116015_c1aea65ce534e914_0$x2e8$x2dpreE.exit": ; preds = %"`loop`.i.backedge", %"function top level" | |
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 0 | |
store i8* getelementptr inbounds ([67 x i8]* @str11167, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8 | |
%.sroa.1.8..idx3 = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 1 | |
store i64 67, i64* %.sroa.1.8..idx3, align 8 | |
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg2) | |
ret void | |
} | |
declare void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
declare { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) | |
define void @"_ZN4main16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 { | |
"normal return": | |
%__trans_ret_slot.i92 = alloca {}, align 8 | |
%__arg5.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg6.i = alloca %str_slice, align 8 | |
%__arg8.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg10.i = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%result.i = alloca %enum.ValidUsage, align 8 | |
%1 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg.i.i = alloca %struct.Command, align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%args = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__adjust21 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%r = alloca %"enum.std::option::Option<Command>[#1]", align 8 | |
%2 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
%3 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 0 | |
%4 = load i64* %3, align 8 | |
%5 = icmp ugt i64 %4, 15 | |
%6 = zext i1 %5 to i8 | |
br i1 %5, label %next, label %join | |
unwind.loopexit.loopexit: ; preds = %match_case.i55, %match_else.i, %match_case.i99 | |
%lpad.loopexit114 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind.loopexit.nonloopexit: ; preds = %.noexc96 | |
%lpad.nonloopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind.nonloopexit.loopexit: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i | |
%lpad.loopexit85 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind.nonloopexit.nonloopexit: ; preds = %next8, %next, %next32, %next20, %"normal return18", %next15, %cond16, %cond9 | |
%lpad.nonloopexit86 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind: ; preds = %unwind.loopexit.loopexit, %unwind.loopexit.nonloopexit, %unwind.nonloopexit.loopexit, %unwind.nonloopexit.nonloopexit | |
%lpad.phi = phi { i8*, i32 } [ %lpad.loopexit85, %unwind.nonloopexit.loopexit ], [ %lpad.nonloopexit86, %unwind.nonloopexit.nonloopexit ], [ %lpad.loopexit114, %unwind.loopexit.loopexit ], [ %lpad.nonloopexit, %unwind.loopexit.nonloopexit ] | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract = extractvalue { i8*, i32 } %lpad.phi, 0 | |
%.fca.1.extract = extractvalue { i8*, i32 } %lpad.phi, 1 | |
br label %cleanup | |
cleanup: ; preds = %cond.i.i51, %unwind13, %cond.i.i41, %unwind4, %unwind | |
%.sroa.078.0 = phi i8* [ %.fca.0.extract, %unwind ], [ %.fca.0.extract71, %unwind4 ], [ %.fca.0.extract71, %cond.i.i41 ], [ %.fca.0.extract75, %unwind13 ], [ %.fca.0.extract75, %cond.i.i51 ] | |
%.sroa.179.0 = phi i32 [ %.fca.1.extract, %unwind ], [ %.fca.1.extract73, %unwind4 ], [ %.fca.1.extract73, %cond.i.i41 ], [ %.fca.1.extract77, %unwind13 ], [ %.fca.1.extract77, %cond.i.i51 ] | |
%7 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null | |
br i1 %7, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit39", label %cond.i.i34 | |
cond.i.i34: ; preds = %cleanup | |
%8 = load i64* %3, align 8 | |
%9 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0 | |
%10 = bitcast { i64, i64, [0 x i8] }** %9 to i8* | |
%11 = getelementptr inbounds i8* %10, i64 %8 | |
%12 = bitcast i8* %11 to { i64, i64, [0 x i8] }** | |
%13 = icmp ult { i64, i64, [0 x i8] }** %9, %12 | |
br i1 %13, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38" | |
iter_vec_loop_body.i.i.i35: ; preds = %cond.i.i34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37" | |
%14 = phi { i64, i64, [0 x i8] }** [ %18, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37" ], [ %9, %cond.i.i34 ] | |
%15 = load { i64, i64, [0 x i8] }** %14, align 8 | |
%16 = icmp eq { i64, i64, [0 x i8] }* %15, null | |
br i1 %16, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37", label %cond.i.i.i.i.i36 | |
cond.i.i.i.i.i36: ; preds = %iter_vec_loop_body.i.i.i35 | |
%17 = bitcast { i64, i64, [0 x i8] }* %15 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %17) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37": ; preds = %cond.i.i.i.i.i36, %iter_vec_loop_body.i.i.i35 | |
%18 = getelementptr inbounds { i64, i64, [0 x i8] }** %14, i64 1 | |
%19 = icmp ult { i64, i64, [0 x i8] }** %18, %12 | |
br i1 %19, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37", %cond.i.i34 | |
%20 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %20) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit39" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit39": ; preds = %cleanup, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38" | |
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.078.0, 0 | |
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.179.0, 1 | |
resume { i8*, i32 } %.fca.1.insert | |
join: ; preds = %cond.i.i49, %"normal return12", %"normal return" | |
%21 = phi i8 [ %6, %"normal return" ], [ %storemerge.i.i.i46, %"normal return12" ], [ %storemerge.i.i.i46, %cond.i.i49 ] | |
%22 = icmp eq i8 %21, 0 | |
br i1 %22, label %next20, label %then | |
next: ; preds = %"normal return" | |
%23 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11171, i64 0, i64 0), i64 2) | |
to label %"normal return2" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return2": ; preds = %next | |
%24 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 1 | |
%25 = load { i64, i64, [0 x i8] }** %24, align 8 | |
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 0 | |
%27 = load i64* %26, align 8 | |
%28 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 0 | |
%29 = load i64* %28, align 8 | |
%30 = icmp eq i64 %27, %29 | |
br i1 %30, label %else.i.i.i, label %"normal return3" | |
else.i.i.i: ; preds = %"normal return2" | |
%31 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 2, i64 0 | |
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 2, i64 0 | |
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%34 = bitcast i8* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%35 = add i64 %27, -1 | |
%36 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, %"enum.std::libc::types::common::c95::c_void[#1]"* %34, i64 %35) | |
to label %.noexc unwind label %unwind4 | |
.noexc: ; preds = %else.i.i.i | |
%37 = icmp eq i32 %36, 0 | |
%38 = zext i1 %37 to i8 | |
br label %"normal return3" | |
"normal return3": ; preds = %.noexc, %"normal return2" | |
%storemerge.i.i.i = phi i8 [ %38, %.noexc ], [ 0, %"normal return2" ] | |
%39 = icmp eq { i64, i64, [0 x i8] }* %23, null | |
br i1 %39, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i40 | |
cond.i.i40: ; preds = %"normal return3" | |
%40 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %40) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %"normal return3", %cond.i.i40 | |
%41 = icmp eq i8 %storemerge.i.i.i, 0 | |
br i1 %41, label %rhs7, label %then | |
unwind4: ; preds = %else.i.i.i | |
%42 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract71 = extractvalue { i8*, i32 } %42, 0 | |
%.fca.1.extract73 = extractvalue { i8*, i32 } %42, 1 | |
%43 = icmp eq { i64, i64, [0 x i8] }* %23, null | |
br i1 %43, label %cleanup, label %cond.i.i41 | |
cond.i.i41: ; preds = %unwind4 | |
%44 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %44) | |
br label %cleanup | |
rhs7: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit" | |
%45 = load i64* %3, align 8 | |
%46 = icmp ult i64 %45, 9 | |
br i1 %46, label %cond9, label %next8 | |
next8: ; preds = %rhs7 | |
%47 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([10 x i8]* @str11172, i64 0, i64 0), i64 9) | |
to label %"normal return11" unwind label %unwind.nonloopexit.nonloopexit | |
cond9: ; preds = %rhs7 | |
%48 = lshr i64 %45, 3 | |
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([40 x i8]* @str10726, i64 0, i64 0), i64 228, i64 1, i64 %48) | |
to label %"normal return10" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return10": ; preds = %cond9 | |
unreachable | |
"normal return11": ; preds = %next8 | |
%49 = load { i64, i64, [0 x i8] }** %24, align 8 | |
%50 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0 | |
%51 = load i64* %50, align 8 | |
%52 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 0 | |
%53 = load i64* %52, align 8 | |
%54 = icmp eq i64 %51, %53 | |
br i1 %54, label %else.i.i.i45, label %"normal return12" | |
else.i.i.i45: ; preds = %"normal return11" | |
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 2, i64 0 | |
%56 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 2, i64 0 | |
%57 = bitcast i8* %56 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%58 = bitcast i8* %55 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%59 = add i64 %51, -1 | |
%60 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %57, %"enum.std::libc::types::common::c95::c_void[#1]"* %58, i64 %59) | |
to label %.noexc47 unwind label %unwind13 | |
.noexc47: ; preds = %else.i.i.i45 | |
%61 = icmp eq i32 %60, 0 | |
%62 = zext i1 %61 to i8 | |
br label %"normal return12" | |
"normal return12": ; preds = %.noexc47, %"normal return11" | |
%storemerge.i.i.i46 = phi i8 [ %62, %.noexc47 ], [ 0, %"normal return11" ] | |
%63 = icmp eq { i64, i64, [0 x i8] }* %47, null | |
br i1 %63, label %join, label %cond.i.i49 | |
cond.i.i49: ; preds = %"normal return12" | |
%64 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %64) | |
br label %join | |
unwind13: ; preds = %else.i.i.i45 | |
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract75 = extractvalue { i8*, i32 } %65, 0 | |
%.fca.1.extract77 = extractvalue { i8*, i32 } %65, 1 | |
%66 = icmp eq { i64, i64, [0 x i8] }* %47, null | |
br i1 %66, label %cleanup, label %cond.i.i51 | |
cond.i.i51: ; preds = %unwind13 | |
%67 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %67) | |
br label %cleanup | |
then: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", %join | |
%68 = load i64* %3, align 8 | |
%69 = icmp eq i64 %68, 0 | |
br i1 %69, label %cond16, label %next15 | |
next15: ; preds = %then | |
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0 | |
%71 = load { i64, i64, [0 x i8] }** %70, align 8 | |
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 2, i64 0 | |
%73 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 0 | |
%74 = load i64* %73, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %72, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx60 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %74, i64* %__adjust.sroa.1.8..idx60, align 8 | |
%75 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
invoke void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %75) | |
to label %"normal return18" unwind label %unwind.nonloopexit.nonloopexit | |
cond16: ; preds = %then | |
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([40 x i8]* @str10726, i64 0, i64 0), i64 229, i64 0, i64 0) | |
to label %"normal return17" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return17": ; preds = %cond16 | |
unreachable | |
"normal return18": ; preds = %next15 | |
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 0) | |
to label %"normal return19" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return19": ; preds = %"normal return18" | |
unreachable | |
next20: ; preds = %join | |
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0 | |
%77 = load i64* %3, align 8 | |
%78 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %76, { i64, i64, [0 x i8] }*** %78, align 8 | |
%79 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 1 | |
store i64 %77, i64* %79, align 8 | |
%80 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__adjust21 to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke fastcc void @"_ZN3vec14__extensions__10tail_1117416_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %args, { i64, %tydesc*, i8*, i8*, i8 }* %80) | |
to label %"normal return23" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return23": ; preds = %next20 | |
%s.sroa.1.8..idx.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 1 | |
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..idx.i.i, align 8 | |
%81 = icmp ult i64 %s.sroa.1.8.copyload.i.i, 8 | |
br i1 %81, label %next32, label %"normal return25" | |
"normal return25": ; preds = %"normal return23" | |
%82 = bitcast {}* %__trans_ret_slot.i92 to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %82) | |
%83 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 0 | |
%84 = load { i64, i64, [0 x i8] }*** %83, align 8 | |
call void @llvm.lifetime.end(i64 0, i8* %82) | |
%85 = load { i64, i64, [0 x i8] }** %84, align 8 | |
%86 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 0 | |
%87 = load i64* %86, align 8 | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader" | |
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader": ; preds = %"normal return25" | |
%88 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 2, i64 0 | |
%89 = bitcast i8* %88 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%90 = add i64 %87, -1 | |
br label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader", %"`loop`.i.i.backedge.i" | |
%.sroa.08.091.i = phi i64 [ %91, %"`loop`.i.i.backedge.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader" ] | |
%91 = add i64 %.sroa.08.091.i, 88 | |
%92 = inttoptr i64 %.sroa.08.091.i to %struct.Command* | |
%__arg1.i.sroa.1.8..idx43.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 1 | |
%__arg1.i.sroa.1.8.copyload.i = load i64* %__arg1.i.sroa.1.8..idx43.i, align 8 | |
%93 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i, %87 | |
br i1 %93, label %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i, label %"`loop`.i.i.backedge.i" | |
"`loop`.i.i.backedge.i": ; preds = %.noexc54, %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
%94 = inttoptr i64 %91 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%95 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %94, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%96 = icmp eq i64 %91, 0 | |
%or.cond.i = or i1 %95, %96 | |
br i1 %or.cond.i, label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
%__arg1.i.sroa.0.0..idx.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 0 | |
%__arg1.i.sroa.0.0.copyload.i = load i8** %__arg1.i.sroa.0.0..idx.i, align 8 | |
%97 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%98 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %97, %"enum.std::libc::types::common::c95::c_void[#1]"* %89, i64 %90) | |
to label %.noexc54 unwind label %unwind.nonloopexit.loopexit | |
.noexc54: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i | |
%99 = icmp eq i32 %98, 0 | |
br i1 %99, label %match_case.i, label %"`loop`.i.i.backedge.i" | |
"normal return28": ; preds = %"`loop`.i.i.backedge.i", %"normal return25" | |
%__arg.i.i.0.cast = bitcast %struct.Command* %__arg.i.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %__arg.i.i.0.cast) | |
%100 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0 | |
store i64 0, i64* %100, align 8 | |
call void @llvm.lifetime.end(i64 88, i8* %__arg.i.i.0.cast) | |
br label %"`loop`.i.preheader" | |
match_case.i: ; preds = %.noexc54 | |
%101 = bitcast %struct.Command* %__arg.i.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %101) | |
%102 = inttoptr i64 %.sroa.08.091.i to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %101, i8* %102, i64 88, i32 8, i1 false) | |
%103 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0 | |
store i64 1, i64* %103, align 8 | |
%104 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1, i64 0 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %104, i8* %101, i64 88, i32 8, i1 false) #0 | |
call void @llvm.lifetime.end(i64 88, i8* %101) | |
%105 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1 | |
%106 = ptrtoint [88 x i8]* %105 to i64 | |
br label %"`loop`.i.preheader" | |
"`loop`.i.preheader": ; preds = %"normal return28", %match_case.i | |
%.sroa.058.1.ph = phi i64 [ %106, %match_case.i ], [ 0, %"normal return28" ] | |
%107 = bitcast %enum.ValidUsage* %result.i to i8* | |
%108 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %1 to i8* | |
%109 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %args to { i64, %tydesc*, i8*, i8*, i8 }* | |
%110 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 0 | |
%111 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 1 | |
%112 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i to i8* | |
%113 = bitcast %str_slice* %__arg6.i to i8* | |
%114 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i to i8* | |
%115 = bitcast { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i to i8* | |
%__adjust.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 0 | |
%__adjust.sroa.1.8..idx13.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 1 | |
%116 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 0 | |
%__adjust7.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 0 | |
%__adjust7.sroa.1.8..idx12.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 1 | |
%__adjust9.sroa.0.0..idx.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 0 | |
%__adjust9.sroa.1.8..idx11.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 1 | |
br label %"`loop`.i" | |
"`loop`.i": ; preds = %"`loop`.i.preheader", %match_case.i99..noexc95_crit_edge | |
%.sroa.058.1 = phi i64 [ 0, %match_case.i99..noexc95_crit_edge ], [ %.sroa.058.1.ph, %"`loop`.i.preheader" ] | |
%117 = icmp eq i64 %.sroa.058.1, 0 | |
br i1 %117, label %next32, label %match_case.i55 | |
match_case.i55: ; preds = %"`loop`.i" | |
%118 = inttoptr i64 %.sroa.058.1 to %struct.Command* | |
call void @llvm.lifetime.start(i64 0, i8* %82) | |
call void @llvm.lifetime.start(i64 16, i8* %107) | |
call void @llvm.lifetime.start(i64 16, i8* %108) | |
invoke fastcc void @"_ZN3vec14__extensions__10tail_1117416_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %1, { i64, %tydesc*, i8*, i8*, i8 }* %109) | |
to label %.noexc94 unwind label %unwind.loopexit.loopexit | |
.noexc94: ; preds = %match_case.i55 | |
%119 = load { i64, i64, [0 x i8] }*** %110, align 8 | |
%120 = load i64* %111, align 8 | |
call void @llvm.lifetime.start(i64 16, i8* %112) | |
call void @llvm.lifetime.start(i64 16, i8* %113) | |
call void @llvm.lifetime.start(i64 16, i8* %114) | |
call void @llvm.lifetime.start(i64 16, i8* %115) | |
%121 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 0 | |
%122 = load i64* %121, align 8, !range !0 | |
%cond.i98 = icmp eq i64 %122, 0 | |
%123 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 1 | |
br i1 %cond.i98, label %match_case.i99, label %match_else.i | |
match_else.i: ; preds = %.noexc94 | |
%124 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 2, i64 8 | |
%125 = bitcast i8* %124 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
%126 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %125, align 8 | |
%127 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %113, i8* %127, i64 16, i32 8, i1 false) | |
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx.i, align 8 | |
store i64 %120, i64* %__adjust7.sroa.1.8..idx12.i, align 8 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %126, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx.i, align 8 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11.i, align 8 | |
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6.i, { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i) | |
to label %.noexc100 unwind label %unwind.loopexit.loopexit | |
.noexc100: ; preds = %match_else.i | |
call void @llvm.memset.p0i8.i64(i8* %107, i8 0, i64 16, i32 8, i1 false) | |
call void @llvm.lifetime.end(i64 16, i8* %112) | |
call void @llvm.lifetime.end(i64 16, i8* %113) | |
call void @llvm.lifetime.end(i64 16, i8* %114) | |
call void @llvm.lifetime.end(i64 16, i8* %115) | |
br label %.noexc96 | |
match_case.i99: ; preds = %.noexc94 | |
%128 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123, align 8 | |
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx.i, align 8 | |
store i64 %120, i64* %__adjust.sroa.1.8..idx13.i, align 8 | |
invoke void %128(%enum.ValidUsage* %result.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i) | |
to label %match_case.i99..noexc95_crit_edge unwind label %unwind.loopexit.loopexit | |
match_case.i99..noexc95_crit_edge: ; preds = %match_case.i99 | |
%.pre = load i64* %116, align 8 | |
%phitmp = icmp eq i64 %.pre, 0 | |
call void @llvm.lifetime.end(i64 16, i8* %112) | |
call void @llvm.lifetime.end(i64 16, i8* %113) | |
call void @llvm.lifetime.end(i64 16, i8* %114) | |
call void @llvm.lifetime.end(i64 16, i8* %115) | |
br i1 %phitmp, label %.noexc96, label %"`loop`.i" | |
.noexc96: ; preds = %.noexc100, %match_case.i99..noexc95_crit_edge | |
%129 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 1 | |
%130 = load i64* %129, align 8 | |
%131 = trunc i64 %130 to i32 | |
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 %131) | |
to label %.noexc97 unwind label %unwind.loopexit.nonloopexit | |
.noexc97: ; preds = %.noexc96 | |
unreachable | |
next32: ; preds = %"`loop`.i", %"normal return23" | |
invoke void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
to label %"normal return33" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return33": ; preds = %next32 | |
%132 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null | |
br i1 %132, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit", label %cond.i.i | |
cond.i.i: ; preds = %"normal return33" | |
%133 = load i64* %3, align 8 | |
%134 = bitcast { i64, i64, [0 x i8] }** %76 to i8* | |
%135 = getelementptr inbounds i8* %134, i64 %133 | |
%136 = bitcast i8* %135 to { i64, i64, [0 x i8] }** | |
%137 = icmp ult { i64, i64, [0 x i8] }** %76, %136 | |
br i1 %137, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i" | |
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" | |
%138 = phi { i64, i64, [0 x i8] }** [ %142, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" ], [ %76, %cond.i.i ] | |
%139 = load { i64, i64, [0 x i8] }** %138, align 8 | |
%140 = icmp eq { i64, i64, [0 x i8] }* %139, null | |
br i1 %140, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", label %cond.i.i.i.i.i | |
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i | |
%141 = bitcast { i64, i64, [0 x i8] }* %139 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %141) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i | |
%142 = getelementptr inbounds { i64, i64, [0 x i8] }** %138, i64 1 | |
%143 = icmp ult { i64, i64, [0 x i8] }** %142, %136 | |
br i1 %143, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", %cond.i.i | |
%144 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %144) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit": ; preds = %"normal return33", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i" | |
ret void | |
} | |
declare void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
declare void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, i32) | |
define internal fastcc void @"_ZN3vec14__extensions__10tail_1117416_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%__arg3.i = alloca %str_slice, align 8 | |
%s.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %1, i64 0, i32 1 | |
%s.sroa.1.8..cast.i.i = bitcast %tydesc** %s.sroa.1.8..idx.i.i to i64* | |
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..cast.i.i, align 1 | |
%2 = lshr i64 %s.sroa.1.8.copyload.i.i, 3 | |
%3 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %3) | |
%4 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %4) | |
%5 = bitcast %str_slice* %__arg3.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %5) | |
%6 = icmp eq i64 %2, 0 | |
br i1 %6, label %then.i, label %"_ZN3vec14__extensions__11slice_1117717_7dfbf588b669df8914_0$x2e8$x2dpreE.exit" | |
then.i: ; preds = %"function top level" | |
%7 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10873, i64 0, i64 0), i64 18) | |
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0 | |
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0 | |
%10 = load i64* %9, align 8 | |
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %8, i8** %11, align 8 | |
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %10, i64* %12, align 8 | |
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%14 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %14) | |
%15 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13) | |
to label %.noexc.i unwind label %unwind.i | |
.noexc.i: ; preds = %then.i | |
store { i64, i64, [0 x i8] }* %15, { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
%16 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%17 = getelementptr inbounds { i64, i64, [0 x i8] }* %15, i64 0, i32 0 | |
%18 = load i64* %17, align 8 | |
%19 = add i64 %18, 11 | |
%20 = lshr i64 %19, 1 | |
%21 = or i64 %20, %19 | |
%22 = lshr i64 %21, 2 | |
%23 = or i64 %22, %21 | |
%24 = lshr i64 %23, 4 | |
%25 = or i64 %24, %23 | |
%26 = lshr i64 %25, 8 | |
%27 = or i64 %26, %25 | |
%28 = lshr i64 %27, 16 | |
%29 = or i64 %28, %27 | |
%30 = lshr i64 %29, 32 | |
%31 = or i64 %30, %29 | |
%32 = add i64 %31, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %16, i64 %32) | |
to label %"normal return.i" unwind label %unwind.i.i | |
unwind.i.i: ; preds = %.noexc.i | |
%33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%34 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
%35 = icmp eq { i64, i64, [0 x i8] }* %34, null | |
br i1 %35, label %unwind.body.i, label %cond.i.i2.i.i | |
cond.i.i2.i.i: ; preds = %unwind.i.i | |
%36 = bitcast { i64, i64, [0 x i8] }* %34 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36) | |
to label %unwind.body.i unwind label %unwind.i | |
"normal return.i": ; preds = %.noexc.i | |
%37 = add i64 %18, -1 | |
%38 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
%39 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0 | |
%40 = ptrtoint i8* %39 to i64 | |
%41 = add i64 %37, %40 | |
%42 = inttoptr i64 %41 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* getelementptr inbounds ([13 x i8]* @str11180, i64 0, i64 0), i64 12, i32 1, i1 false) | |
%43 = add i64 %18, 12 | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0 | |
store i64 %43, i64* %44, align 8 | |
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 1 | |
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64 | |
%47 = add i64 %46, %19 | |
%48 = inttoptr i64 %47 to i8* | |
store i8 0, i8* %48, align 1 | |
%49 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %14) | |
%50 = icmp eq { i64, i64, [0 x i8] }* %7, null | |
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i | |
cond.i.i.i: ; preds = %"normal return.i" | |
%51 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i, %"normal return.i" | |
%.sroa.028.0..idx.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([38 x i8]* @str10820, i64 0, i64 0), i8** %.sroa.028.0..idx.i, align 8 | |
%.sroa.129.8..idx30.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1 | |
store i64 38, i64* %.sroa.129.8..idx30.i, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 735) | |
unreachable | |
unwind.i: ; preds = %cond.i.i2.i.i, %then.i | |
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.body.i | |
unwind.body.i: ; preds = %unwind.i, %cond.i.i2.i.i, %unwind.i.i | |
%eh.lpad-body.i = phi { i8*, i32 } [ %52, %unwind.i ], [ %33, %cond.i.i2.i.i ], [ %33, %unwind.i.i ] | |
call void @upcall_reset_stack_limit() | |
%53 = icmp eq { i64, i64, [0 x i8] }* %7, null | |
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit3.i", label %cond.i.i2.i | |
cond.i.i2.i: ; preds = %unwind.body.i | |
%54 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit3.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit3.i": ; preds = %cond.i.i2.i, %unwind.body.i | |
resume { i8*, i32 } %eh.lpad-body.i | |
"_ZN3vec14__extensions__11slice_1117717_7dfbf588b669df8914_0$x2e8$x2dpreE.exit": ; preds = %"function top level" | |
%s.sroa.0.0..cast.i.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %1 to { i64, i64, [0 x i8] }*** | |
%s.sroa.0.0.copyload.i.i = load { i64, i64, [0 x i8] }*** %s.sroa.0.0..cast.i.i, align 1 | |
%55 = ptrtoint { i64, i64, [0 x i8] }** %s.sroa.0.0.copyload.i.i to i64 | |
%56 = add i64 %55, 8 | |
%57 = inttoptr i64 %56 to { i64, i64, [0 x i8] }** | |
%58 = shl nuw i64 %2, 3 | |
%59 = add i64 %58, -8 | |
%__arg2.i.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %57, { i64, i64, [0 x i8] }*** %__arg2.i.sroa.0.0..idx.i, align 1 | |
%60 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 1 | |
store i64 %59, i64* %60, align 1 | |
call void @llvm.lifetime.end(i64 0, i8* %3) | |
call void @llvm.lifetime.end(i64 16, i8* %4) | |
call void @llvm.lifetime.end(i64 16, i8* %5) | |
ret void | |
} | |
declare void @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @llvm.lifetime.start(i64, i8* nocapture) #0 | |
declare void @llvm.lifetime.end(i64, i8* nocapture) #0 | |
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #4 | |
attributes #0 = { nounwind } | |
attributes #1 = { inlinehint nounwind } | |
attributes #2 = { uwtable } | |
attributes #3 = { inlinehint uwtable } | |
attributes #4 = { nounwind readnone } | |
!0 = metadata !{i64 0, i64 2} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'rust.rc' | |
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" | |
target triple = "x86_64-apple-darwin" | |
%tydesc = type { i64, i64, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)* } | |
%enum.ValidUsage = type { i64, i64, [0 x i8] } | |
%enum.Action = type { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } | |
%str_slice = type { i8*, i64 } | |
%enum.UsageSource = type { i64, %str_slice, [0 x i8] } | |
%"enum.std::libc::types::common::c95::c_void[#1]" = type {} | |
%"enum.std::option::Option<~str>[#1]" = type { { i64, i64, [0 x i8] }* } | |
%"struct.std::path::PosixPath[#1]" = type { i8, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* } | |
%"struct.std::unstable::extfmt::rt::Conv[#1]" = type { i32, %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Ty[#1]" } | |
%"enum.std::unstable::extfmt::rt::Count[#1]" = type { i64, i64, [0 x i8] } | |
%"enum.std::unstable::extfmt::rt::Ty[#1]" = type { i64 } | |
%struct.Command = type { %str_slice, %enum.Action, %str_slice, %enum.UsageSource } | |
%"struct.std::unstable::raw::Vec<()>[#1]" = type { i64, i64, {} } | |
%"enum.std::option::Option<Command>[#1]" = type { i64, [88 x i8] } | |
@_rust_crate_map_rust_0.8-pre_8d2fe0c0fe8188b = global { i32, i8*, i64, [8 x i64] } { i32 1, i8* bitcast (void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE" to i8*), i64 ptrtoint ([1 x { i64, i64 }]* @_rust_mod_map to i64), [8 x i64] [i64 ptrtoint (i64* @_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 to i64), i64 ptrtoint (i64* @_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 to i64), i64 ptrtoint (i64* @_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a to i64), i64 ptrtoint (i64* @_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 to i64), i64 ptrtoint (i64* @_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc to i64), i64 ptrtoint (i64* @_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 to i64), i64 ptrtoint (i64* @_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff to i64), i64 0] } | |
@"_ZN10ValidUsage5Valid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0 | |
@"_ZN10ValidUsage7Invalid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1 | |
@"_ZN6Action4Call7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0 | |
@"_ZN6Action8CallMain7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1 | |
@"_ZN11UsageSource6UsgStr7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0 | |
@"_ZN11UsageSource7UsgCall7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1 | |
@str10719 = internal constant [6 x i8] c"build\00" | |
@str10720 = internal constant [6 x i8] c"rustc\00" | |
@str10721 = internal constant [26 x i8] c"compile rust source files\00" | |
@str10723 = internal constant [4 x i8] c"run\00" | |
@str10725 = internal constant [32 x i8] c"build an executable, and run it\00" | |
@str10726 = internal constant [167 x i8] c"The run command is an shortcut for the command line \0A\22rustc <filename> -o <filestem>~ && ./<filestem>~ [<arguments>...]\22.\0A\0AUsage:\09rust run <filename> [<arguments>...]\00" | |
@str10727 = internal constant [5 x i8] c"test\00" | |
@str10728 = internal constant [36 x i8] c"build a test executable, and run it\00" | |
@str10729 = internal constant [149 x i8] c"The test command is an shortcut for the command line \0A\22rustc --test <filename> -o <filestem>test~ && ./<filestem>test~\22\0A\0AUsage:\09rust test <filename>\00" | |
@str10730 = internal constant [4 x i8] c"doc\00" | |
@str10731 = internal constant [8 x i8] c"rustdoc\00" | |
@str10732 = internal constant [41 x i8] c"generate documentation from doc comments\00" | |
@str10733 = internal constant [4 x i8] c"pkg\00" | |
@str10734 = internal constant [8 x i8] c"rustpkg\00" | |
@str10735 = internal constant [39 x i8] c"download, build, install rust packages\00" | |
@str10736 = internal constant [7 x i8] c"sketch\00" | |
@str10737 = internal constant [6 x i8] c"rusti\00" | |
@str10738 = internal constant [23 x i8] c"run a rust interpreter\00" | |
@str10739 = internal constant [14 x i8] c"\0AUsage:\09rusti\00" | |
@str10740 = internal constant [5 x i8] c"help\00" | |
@str10741 = internal constant [33 x i8] c"show detailed usage of a command\00" | |
@str10742 = internal constant [160 x i8] c"The help command displays the usage text of another command.\0AThe text is either build in, or provided by the corresponding program.\0A\0AUsage:\09rust help <command>\00" | |
@const = private constant { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } } { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10719, i32 0, i32 0), i64 6 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10720, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([26 x i8]* @str10721, i32 0, i32 0), i64 26 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10723, i32 0, i32 0), i64 4 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([32 x i8]* @str10725, i32 0, i32 0), i64 32 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([167 x i8]* @str10726, i32 0, i32 0), i64 167 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10727, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([36 x i8]* @str10728, i32 0, i32 0), i64 36 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([149 x i8]* @str10729, i32 0, i32 0), i64 149 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10730, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10731, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([41 x i8]* @str10732, i32 0, i32 0), i64 41 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10733, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10734, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([39 x i8]* @str10735, i32 0, i32 0), i64 39 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([7 x i8]* @str10736, i32 0, i32 0), i64 7 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10737, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([23 x i8]* @str10738, i32 0, i32 0), i64 23 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([14 x i8]* @str10739, i32 0, i32 0), i64 14 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10740, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([33 x i8]* @str10741, i32 0, i32 0), i64 33 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([160 x i8]* @str10742, i32 0, i32 0), i64 160 }, [0 x i8] undef } } } | |
@str10798 = internal constant [55 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/librust/rust.rs\00" | |
@str10881 = internal constant [27 x i8] c"vector size is too large: \00" | |
@str10892 = internal constant [53 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/libstd/vec.rs\00" | |
@str10945 = internal constant [19 x i8] c"assertion failed: \00" | |
@str10946 = internal constant [8 x i8] c"len > 0\00" | |
@str10947 = internal constant [53 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/libstd/str.rs\00" | |
@str11091 = internal constant [5 x i8] c"The \00" | |
@str11092 = internal constant [30 x i8] c" command is an alias for the \00" | |
@str11093 = internal constant [10 x i8] c" program.\00" | |
@str11094 = internal constant [1 x i8] zeroinitializer | |
@str11095 = internal constant [2 x i8] c"\0A\00" | |
@str11098 = internal constant [20 x i8] c"option::unwrap None\00" | |
@str11099 = internal constant [56 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/libstd/option.rs\00" | |
@str11114 = internal constant [6 x i8] c"test~\00" | |
@str11116 = internal constant [7 x i8] c"--test\00" | |
@str11123 = internal constant [3 x i8] c"-o\00" | |
@str11124 = internal constant [3 x i8] c"./\00" | |
@str11231 = internal constant [177 x i8] c"The rust tool is a convenience for managing rust source code.\0AIt acts as a shortcut for programs of the rust tool chain.\0A\0AUsage:\09rust <command> [arguments]\0A\0AThe commands are:\0A\0A\00" | |
@str11237 = internal constant [2 x i8] c" \00" | |
@str11238 = internal constant [5 x i8] c" \00" | |
@str11239 = internal constant [67 x i8] c"\0AUse \22rust help <command>\22 for more information about a command.\0A\0A\00" | |
@str11243 = internal constant [3 x i8] c"-v\00" | |
@str11244 = internal constant [10 x i8] c"--version\00" | |
@str11252 = internal constant [13 x i8] c"start <= end\00" | |
@_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 = external global i64 | |
@_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 = external global i64 | |
@_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a = external global i64 | |
@_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 = external global i64 | |
@_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc = external global i64 | |
@_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 = external global i64 | |
@_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff = external global i64 | |
@_rust_mod_map = internal global [1 x { i64, i64 }] zeroinitializer | |
@rust_abi_version = constant i64 1 | |
@rust_metadata = internal global { [7414 x i8] } { [7414 x i8] c"rust\00\00\00\01\ED]\09x\1B\D5\9D\97\1D\E7\8Es\10\02\E1H+\E2\E0$\92\0F\DD\92M\12\12\92\B4@\9B\D0%\10J\83\11\A3\99\913XWt8\B6l\85#\B2s\89\1C$\5C\11!!\10JiK)\EDB)=\B8J\F9\CA\F6\03\16Z\B6l\8Fm\B7\DD\DD\B6\DBv{\B0[Z\DA\DD\DF\1B\CD\CC\D3\9B\91%\D9\B1\8D\DBm\BE\EF\A7\8C\DE\BCy\FF\E3\FD\DE\FF\FD\E7\8D\E6\F9\E1\B9&\D3\1C\9F\E0\08\8A6\DE\16\14}v\9F/p\FF\5CS\CD\E4\938\F1\A5\07\F1\F1\E4=\F8\A8\0BI\91\AE\BBqp\86\FC-\C2\85\C5\13\E4 \9EJ$I\F1\02\B9\B8[\8C'H\F1T[\8B\AF9\16\17\C9\19\87|&\95\92\04rf\89\8Bs\B8\04\CE\E9lv\F3\BC\AF\D9esz\9B\DB\9CnG\B3\83\0F\88m\01\A1Mpxyr\D9\1Ar\D9\A4T<D\AErmM&c\89\F6\D6\D6N)\B95\15h\E1\A3\E1\D6p4-\85B\5C+\D1\A05\19\17\C5\D60\97H\8A\F1\D6D\9C\97\0B\89\01\EF#M\9DC\9A\9A\1A\92x1\92\90\B5\9E\B6\E1\B2\ABZ\D7l\FA\B0\83T9\9FT9\9BT\99\C1\C7\B9\A4\E8O\F6\C6\E4Z\93BR\E0\14<q\E5C\F8\B2\FC\11R\92H\0A\9F*2\EF\938\9E\EB\E1=n>\E8\0A\B8\5CN\A7\CB\1E\B0\93\DA\CD\A4\F6T\A2D\AC\AB\D3p\85\D3\C7\F9<v\AF\0F\D6\BAE\AF(_a%WL\16{\92q\CEP\9F\F3\F26\B7\8D\0F\0A.O\C0\C1\B7q\B4>\91\C0\1B\EA\0BN>\E0\E3\1D</\F8\5C\9C\97\F3j\F5\A7$z#I\AEG\7F\C1\1C\8F\CB\E3h\0Bz\836\DE\C3\B5\05x\D6\02!j\94\E0\09\B8\DA\B8\A0\AB\CD\E5\F3\D8\BC\90\C2j$\19\EA\BB\9D\A2M\0C:8\D1\DE\E6\E1\B8`\F07(4\BDC>V\DF\84\CF7W\DF\8C\CF\D7\FEL\1A\B0\B5{\ED^rTgk\B7\BB\D4\03\87z\E0T\0E\9C\EA)\B7G9p\A9\07n\B7r\E0\F1\A9\07\EAU\1E\B5e_\9B\22\CC\EEq\ABG^\9Fr\E4p8\94#\A7M;\F2:\95#\F4\B3z\E4S\AFu;\BC\EA\91V\CF\D3\D6v\EB\5C\D3\8E\CF\ED\9EkJ\CE\DA\83\B2\DF\ED\DAik\B7\ED\C5QM8{\F3\F0\8C}\EC/\C8\EAg\C8\08{6\8B\CE\ADy\EEfb\F8\EA]\030\D4\E6SL\DF'\88\81T\A7?\CC\F1\F1(\A9{\81\5C\B7\F6\B9\9C\DF\0F\B6\15\CA\13\CF\15\D7\22\8D\AC\92\1B\B1{\95F\98\CA\AA/m>\D2\DE\99\8Al\A6\0A\9A\98\FC\99]Y\E2f\B9\85d\0E\9F\F5\C9-\A4\A0?\D2\12\D9\D2\D1\91\DD\BB\99\0BI\C2\D5\09\AES\DC\AFv\85z\E0|\15\0D\5C\93\DF\19\96\22\03\BBM\85\7F\D3\F1\95\EB\D1\BE\CEym\AEi\D2\C2|N\8A V\8A\82_J\8A\E1\83(\9A|\88\E8c\BA}\AE\A9\F6\0F\F9\01I\10#\C9\5C\91\A8\FC\00\97L\C6\13\87\C9\F8<\22\D7\CC\DF*\09Z\AB\B3\F3\D9HT@-\D2\9C\1F\ED\D5\EE\97\DB\9BL\DA\DB\99\DF\DD\CD\C5%.\92$\D7\D7\B6\C8\D7\D7\DE\81\A0\15S.\CB\92H\9D\1B\90\C5\95\90\94\ED\92\22B>\A74\E2'\DF \C2\F4\96\A6\B2\E9\15R\FD\1Br\F5\1A4l\FAj\FE\D6d/\A3\E1\0CE\D4\CEd/\D1\CF\B4G\BEx&\B9xG>\9B\88q\91\FC`g(\1A\E0B{o1\E5\07e\07\C8J\CC\A5\ADN\CE\ED\94\22\C9\FC\AD\F1X~\F0\8AXR\8AFHK3\A9\1A\A6\FC\00\89\CB\8C\F2C\D4,\EA\9F\82\F4beg2\DFf\E5\F7\08R\22\EE\17{b\F1!\05\EF\EC\96\12\F9\BD\F8\90\02RHJ\F6\D2\0A\B5\85\0A\B2\14b\C5\A3\8C\D3w]\16\E9\1E\9E\DB\CF\A2bg\0E\C5\87\FA\D1S9\BF'$\05\C5\A4\14\16\13rK\9BE\DE\D0\D2\1Etj\8C\8Bs\E1\A1\ABT'\ECu\F0\F3\EC7\F1\FD\BC74j\7F\0B_g\1D%\93E\83+(\B4\0B\0Do\E1\B8\8B=\7F]~w\A7\18\11\E3\12\9F\C8\1F \14(\A8\E3\17\C4 \E3\D2\5C\5C\EC\84+\0Ag\87t\0C\B8[,\8F\E8\B3T\937\8B\C8[H\CE\CF\FF\80\B4\E5J\CCdM\1D[\A4\8E\22\DDBl\DD\8E\B1\D0mZC\9B\DD\83\80\D3\C0:\AB\BE\82\B3\EA\C7\DCY\DF\C6\F1\D5\9A\BC\E9D\DE\07\F2;\D14\B9p\85|\E1,r\A1=\BF+\16\97\C2\FE\02\13\1Ah\8B\0B1\F8\C1\F6b\86\14$\91\A8}F!j?_\14\19I\D8\7FM\8E\D9\0E9fwg\0Bq\EC\80:a\FE\9E\94J\B7\E1s\BD\FFc\1B\ED6zi\F1\B1[>\B4{\FDv\D1\17l\13\02\00\C9ry\9F\DD\E5\B7-\E9q\88>|\08HU\D6\93\96\D6\E8Z*\5C\ED\15\C4\04\0F\A3\D0\8A\CF&\D8\ED6\AF7 8\05\9F\10\F4\18Z\C9\15w\221\AD^1\AD\A0=\B1*'[\E5T\ACR\03E\09\BB\D6\EA\B4\F1*U\87\AB\8F\DA\87D\9D9\8A:\AAX\A2P\07Q\C8Y\98\1A\A5\E2\0B\B2\FB\FD\085Id\CE`H\C2\EF\BF\9F\F4\D7\AF\8B:\E9%%3q\90\A6\CFR\9A\D6]D$\BC.KpdwK\09\BF,\F6O\84\CF\8D\01\CE\D6\AF\88z\97\B0B\1Bw\1D\81\82\17^\C6gm\A3$k\16<\A0\A6AD\C5Y\1F(\AAL\A4\9B\0B\89\84^\FA\F3\9AH\E2\D1\0F\11\8F\BA\D8\1Av[XLn\C5\7F^\BB\DD\A7V\B6{\FCv\BB\DB\C69\83m.\DE\E9s\D8\83\06\CF\C2\AEY\CD\C4.\B7G\97T\B8=jR1\B8\86'\83K\C9#\5C\1E\E5\C0\EDFB1\F3{lB\B1\84M(\DA\90PL\FB\B5!\A1\98\F6}m\E8L{]M(\141\15\92\09\9F>\99\98\D6\A5%\13\D3n`\92\89i3\B5d\A2\EE\17\CC\BC\96]\CB\85BUOju\1F\D5\B4\AD\DB\80\EAu\97j\B3~\DDJC.\D1\C4\E6\12uS\E5\8B\A7\E3\E2I\EF\E6\07c\A98\E6\17\F5\7F\1AEj\94y\86\0B`&\CA\06\A4d\E2VR<\B7\9A\09.+\88|\88\04\A6X\AA\90D=\A5\E9W\FBh\9EP'\9CJ\06\E4\D4E\AF\EC2V\D9\9A\07\E4v\A7\A2\DD\9A\BB\CB\05U\A6\91\A5\BAF\DCr\E5:\D2\88\C5P\B9Q\97j\FD@\AE<\89\B4\FC\86\A1\F2\85\A3\93\97%\92\F1Q\CE\CB\96(\D2\07d\CF\E6\F7\E2?N\9F:\D4\14\E7)\A3_qg\8CK2\CEjP)\8E\13\B2\B7\EE\A3\17\1D\CE\E7\02 \B3\14\C1\ED\08\EA\0C\D1di_\CE\A3\BE\9C\92\CBr\F1\CE\C4\E88\B3Dj\BB<?\18M%Ac\A6\D4\AAc\C1A\CA\82\81\B2\9A\9FM5\9F\C5\DC\AF\8C.\19,\AA%|0\BF'.&q\CF\D6\1B\1A\CA\C7\C5\8653\DFZF5\93\9F4\9B\89x\BBI\C4\DB\C0I\91\AA\A3^m\8A\DE\F4\DDH\A2\8AHo\CD>b\18\A9\0E]\0C8\97\06\929\C5\C6\B4P\8F40\0D\B4\AA\FCW&\83D\92KJ\BCA\8E}\A2F\04\DBp\C7o\B1Un\E2\D4\C9\06c]:c_\D1\A6\12\D3\0B\E33\95P\F3K\8CK\A7N\BDR\83{\B8C\C2\C3|\F3\FE\05\DF)\BE\C0\DE\FC\F8\8An~\04\B7\C3p\F3\E3\1B\C3\9B\9F\82<\A2\CF%\9A\BC\16\22\CFI\CE\B7\D0$\94\1Em\EEn\DD\D1*\A7\B6\EA\CDcG\91\DAa\B6\99\EB\C7B\ED\E9\0Dv\AF\0Bkz\A2\AC\B8G\93\E8%\12\97\92\1A\8B\A9\BA\DD\AD\8D\C9\A2\5C:RZY\EF\98*\1Bl\C3\02\A4|\8B\B9R\93\B8\84Hl\D1n1\97\D0[\CCs\98[\CC\994\0B2\91\16\D6k-XH\0B\1E\AD\85&\B9\E2\0CR\F1\82\FC\80\BC\DA\AF\8D\16Sa<\D2u7V\17\DB\08t!\F7$\B3\95;\22%?'wB_%w\0C.\8Fr\F3'g\D3\CA}\8D\DBC\EF\FC\DAq\9F\E2)\5C\A4\FC\E7\225q\C3\D7&\B6q^\97W\B0\FB\EC\1E\1Fg\17K\DE\C6^D/\97\AF\1B\EE\0D#%\10\B1b\96b\85\AC,\B1\E1\15\F9\AE\C7\AD\D8\A0\CD\8F%\ECXe\B0\C3\A7\D6\86.\01\87\C7\EB\F4\E1a\82\C3\EBs\DA\DC\81\92\B6\5CL\9B\D0\AE\1D\89=\05\8E\11{\E6*\F6h\8A\C3\A6i\B3\89M\1E\1F\BD\93\9BC\EE\E4<\BE\FEH Q\B8\97\DB''@\9B\A2\A98\AF\AE\10{\9C\EA\81\F7\D5\B9\A6\A99\F6\86\AE\8D\BD\A1[\8F\1B\BA\BA\1F\1Bn\E8\EA^\A3\B7H/\AAsx\B1\AC\0Awu\EB\F4wuu\D7jwuu\1B\99\BB\BAI/iyH\AD\89\C9q\06\AFNtn\C2\C4^m\86S#iJ\D7\5C\8F\EA5\D7j9B\CDF\C3d\BCR\97\E1,\A4\19N}qxh\A2\13\DC\05L\03\EDl\86\93M\88\A1\A0A\CA\8A\89\9A\DF\5Ct:\F9\CD*\E6\DB\C5\A3\9A\E8\D6|\81]\B2\06\09\86uw_c\A6,X@X@=Y\22%[3\B1S\B2\D5c\90\92]\C2|[;\E6)\D9\0A\AA\8E\9D\D8\DBD\99\CD\0E\A8\B6R\03jTs\B8\9BI\EAq\BE6\83\AE#3h}a\85\1B\8F\C9\F9\F6\A0\9C`\DC\C6V\D8q\BA\09\06\13A\0E(\B5\0A\AC\E5E\83\B2\DA\9A\BB\A2\11Q\B9I\D3\E8b\A2\D1\22Ra!\93-\05\12\1D\C5&\ECg/\B8\E9=1az\83\C3\EE\F0\B6\DB}\B2\0D\AD\9AJk\89JfR\E3<jC\83\DDg\F3\B6\F3\0DC\98\B1\F6\BD5C\0C\B4\DB\03\BA\5C\F0\A2\11\E6_\F3\95\99\BEx:}\B1*\8DH\9A\F3\1D9%P\D7\E9\95)RIr<>\9A\E4\5CJ\16\95\EDE\22\98/\9E\C2uHU\5Cn\BBO\F4\F2\1E\BB\D7\C1;l\CE\D2O \D6\EA\1BS\AE\1F~\CA\A32\82ID\0B\8D\11\EB\BE'[\E7U\9FB(\B1\BF\84y\97\955\CF\AB\5C\08\BD\82\EE6\B7#\E0\B4\89\BE\00\17t:\BD%\ED[\A7oMm`$\06\16\B8\C2<\D6PZ#\16Ze\DB6fw\F2a\81\D4\99\A9\D4!\DFI\0B\93\E5\C1L\DC\E0u\91\FAN\A5\FE 'g\9B\8C\DF\0AE\85g#\85\FB#\F9:/\B9\AEM\B9no\8AX\E5'\D9\1D\F3L\8B\16\B3R}\0Er\F5\0A\F6\EA`*\14*q5)\CE\15\C7*\B9\01\0F\1A\98q\A6|XPb\93\9C\B9r[H\01\CD\5Cw\AD\8D\86\C3\5CD\B8_\1D\17\9A\B7\94\13\D5\8D\89\17\F01\AF\C8\A7\05\CF\91\D23Y\CF\15\5CCN,4\BA\A6`y\89\93\C4\C4\82U\87\E6\9A\A6\AF\82\C8\C9.\12jL\A7\F1Q\7F\84\F8\0C\AB\E1\D3Q\B0\E1t[\9Bp\1F\9AykPp\E5_\9Dy\7F\FB\F8\7F\FA\A1\F1\FA&\14l\FE\EB\B4\B1:\0F,\F9\0E\0A.\1F\D6\E5\E4\D9*\FEk<\01\9C\02\1E\01>\03|\1Ex\0A\F8\0A\F0<\F0\12\F0M\E0\1F\817\81\EF\02\BF\04~\0B\FC\1E\F8\13\D6\0Ak\81\A9\C0,`\1Ep\16p\1E`\06.\04,@+\E0\02\DA\80U\C0Z\E0R`\03p%p\0Dp\1D\C0\01A\A0\0B\88\01) \0D\A0\8F\97b\92Y\BA\07\D8\0F\1C\06\EE\06\8E\01'\81\8F\03\9F\02>\0B<\01<\0D@\EF\A5\D0{)\F4^\0A\BD\97\FE\10\F87\E0\E7\C0\7F\01o\03\7F\00\FE\17\CFi\E1\8Ce\08\FF\CBf\03\F3\81\85\C0\22`1\B0\14h\02\EC\80\07\B8\08X\0D\AC\07.\07\AE\00\AE\02\AE\05\AE\07x`+\10\06\E2\C0v\A0\1F\B8\05\18\04\F6\01\07\81;\80\A3\C0q\E0A\E0\13\C0\A3\C0\E7\80/\00_\06\9E\03\BE\0E\FC\03\F0\1A\F0m\E0\9F\81\7F\01~\02\FC\0C\F8\15\F0;\E0\1D\E0\CFx\C87\09\00+\96\D7\03g\00g\03\E7\03\17\00\8D\80\15\B0\01n\A0\1D\B8\18X\07\5C\06l\046\01\1F\05:\80\00\D0\09\84\80m@7\D0\07\DC\0C\0C\00{\81\03\C0\11\E0\1E\E0>\E0\01\E0a\E0\D3\C0\E3\C0\93\C0\97\80g\81\17\81\97\81W\81o\01o\01?\00~\0C\FC\14\00\B7\96\83[\CB\C1\AD\E5\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\C1\98\B0`LX0&,\18\13\16\8C\09\0B\C6\84\05c\C2\821a\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\18\13V\8C\09+\C6\84\15c\C2\8A1a}\06\F8\1A\F0\0D\E0\15$\86\17\D7\93\1F\CD\DA=\85uZ\9Ed\86glVS\C3\A4\9C\19b\E9\9F\E4\E46\E4\E4\BE\B5Wl\D8\B0f\E3\BAM\C8\BF\1Dv\DC\A48]^\CE\E6\14\9D\0E\9F\CB\90\7Fc\CDW\A9\CD\AE\A7*\85X\0B]u\90]\0B\BD\8E]\0B}\08k\A1\CB\CF6\AC\85.\AF\D3\16\1B\96\BD\A3.Nh\CDVX\08=\A5_\08]v\80\B6\96e\AA\FAu\0B\92w\D1\05\C9\5CU\8F\5C?V\DD#\D7\EBur\A6h?\EF0\FD\D1P\B9C\B7\00\F5\18]\BF<Uv\FD\F2L\BA\CA3=\A7\A6\F4\FA5\CC!M\D9R\DA\94\E1/s^7f\BF\D7(W\A3\D8\94\07U\06\90\156\E2\C3\C6]\9A\A2\8D\FDL\D5\07\0CU\DB\B4V\1B[`vc\BDl\F6Txu\B2\C4\5C*\E9/\9D\BCV\BE\F4}\E4\8E\C5w\FA=U~\B5\19\87uO\CB\87u\A4\99\B8\DAo\E4\86,\9F\95\97\16\8B\95\BDA\AF\AC\C9\A5q\DD\B4\5C]\FE\85g\E5sgP\D1Ss\03\81\94\14\12\14{\8A>\C9\D3\83Z\8D.\85;\BE\12\92\05\BD\E4\9Ag\B5{\C9\9A'\98\AA\9CA\C9\90\5Cu\01Q\84+\EB\D1\05\D4\A33\8A~\A91\BC\05|Y\00\0Aj\EA\B4\E7#\18\E1\C5\1A\06N\C3\8D\F2k::\07\9A\8E2\CD\F3\86\E6\93\D4\01RY\07,\A2*\AB\B2\94\9F\1B\85G\E8\88\FC\1E\E2\C6M\A9N.>\C4:\B8f\C5m\DA\1B\0D\F4\FE\BE\04\15D\83y\97R\EF\AD\D4{\AF\91\0A</w\0F\1F\0D\C7\A4\90h&\96\99\13\F2\8A\919\88\82DIb\D6\9C\D0iD\16\15Jh\B4\D5@\CE-\94\9C\1Fa\AA\06\0D\CAw\D1\BE\B9a\18\C3]}\BA22n\9A\8E\D3\C6\8E0\0Av\1A\14\8CP\05\F9a\FC\CAK&\8F\7F\AB\18\8A\8D!m\CA\FF\A4\8DD\DB\AD\8CuqC\B4\BD\84F[\EFxD\DB/\D2h\1B\AB\10mo4t\85\83\12}\A9\9E\E8s\A9h<w\8C\A7\22\A5)}g\E5X\1B6\D0\F9jJ\E7\CB\99\AA]\06\15\B7R\B6t\0C\E3\D7\8C\A7\C3\E5{iK\87\18\EDB\A35\D8\D0?~\E2\D1\B1\8D\7F\87\AB\8B\7F\11\83U\1B)-\D6\EAi\D1D\05^\90;.O\C2f.b\16{D\9E\A4A!\B1\09_\05\04\C4\88YJ\96\9E\9E\A7V\17\05\B7\19h\F3\1C\A5\CD\93L\D5\A8\C1\84\1Bi\C7\F8\CBv\CC|\DA1\D3\B4\1F\1A\8Cp\82\9EJ\DBz\97\D1/f\D0\EF\DB\D4\C5/\EB]\FCy*\EE\13\B9\D5\0F]\B5U\94\DD\C9\17B\84YJ\10\87'\B6F\E3I\B8\DC\1C\8C\C6\CDITQO\93^6\CFX,\87K\F3\0A2\19\91\C7\E7\AB\CC\CD\D1\C2\B7\04\EE?V\ED076\9A[Z\8B\0B\B6\AC\E0\E2\9D\A90\F1\CB\AA\96\96\96\8E\C5-3f\C8\0FB\DA\A7\CB\B3\1BQ\A1\A89}u\A6\ABG+\D8^\C7x\B1\CF\10l=4\D8Z\C7#\D8>J\83\ED\B6\0A\C16a\E8r'\ED\F2e\FA.\9FGE#x%\D1'\A5\A3\ED]\95\A3m\B7a\D8l\A6\C3\E6CL\D5\E4D\88\B6\C7hK\B73\DA\A5F+\EF&\D1Vv\E9\D8\86\DB\BB\AA\0B\B7\DB\0Df]I\89\F1A=1lT\E0\85\B9\07\94pk&\D6\0C'\E4\D6\BC]]\C8M\1B\B8\F3\18\E5\CE)\A6j\CF\84\08\B9\A6\B7i[?c\F4\EB5\E8\F7\02u\F3Sz7\9F\A4\E2\EE\CA\AD>BB\AE\EC\E3\91\C4\DC\E6f\F9\D2\A1B/9i\08\BFr\E1b6\E0\EAZ\19\93\00{\90\F1\D9\80!\C0\DEH\03\AC\7F<\02\EC\8F\AA\CFf\FBO#\9B\15\A2|\E9\D4dJ\E5\F8z\B3a\8C|\8D\8E\91/2U3\13e\E5`\1A\BD\0Dg\A7\D4\1D\06\0D=\D4\89V\BD\13\CF\A4\E2\D0\C9\CA\06\1C\FA0x/#\E0&\83\80n\EA\82\AE\B2.x?U\9AJ\1B\BF\D5\83{\AB\0B\E7\B7\18\0C\BC\86z\F0\C3z\0F\BA\A9@K\EEa\F97L\5CR4\C309\95\E2\88-\E6`<\1A&Erx!\DE(\1D\D3\9F\A8.\A6g\0D|\DDF\F9\1Ad\AA\DE:A\16\13\FE\9E6\F6\08\A3\E0N\83\82Y\AA`oY\05\9B\E56'\19\D9\84)\88\8FF\82R\A7\B2H\95\1A\C1\8Bd\A3\1B\94\0F06\1F0\04e\89\06\E5\EB\C7#(\FF\B0\FA\A0<x\1AA9\D6\D59\E2\A0\BC\B7\FA\A0\BCk\C2\07\E5\DD\A7\19\94u\8E4\06\E5=\A3\19\94!m\FC\82\F2\D1\EA\82\F2>\83\81WS\0F^\AE\F7\A0\93\0A\5C\96{H\88n\8F\84\A2\9C\D0d\96\B3\ED&\B3\14\C1C\A7P\A8\B0\C6\1B\E3\F8.\08\1E\22$?Y]H\DEo`k\9C\B2\B5\93\A9\9A\9B !\F9\09\DA\D8'\19\05o3(8@\15L\97U\B0\C5\10\92\15.\A9QX9S\98&C\EFiLv1F\DFc\88\C9\B3iL\9E4\1E1y\90\C6\E4D\85\98|\D0\D0Cn:\18,\FA\C10\9F\8A\C6\CC\98\E8\12\93\FC\D6\11?e;R\FDS\B6C\13\FE)\DB\ED\A7\F9\94M*\FF\94\ED\F0h>e\93\C6/$\EF\AD.$\DFa0o=\F5^\BB\DE{\C5;\F3\E4\EE$+\1B\5C!\FEJ\91\A4\18\8F\C5E|\96\0E\C1\E1\EAB\F0\DD\06f.\A3\CC\5C\C4T\BDsb\ACt\84i[\01F\BF\BB\0C\FA\AD\A0\9E\B5\EB={.\157'w[\F1\82\834&+\0C\02\A3\EBIC\E0\5CE\03\A7s<\02\E7\13\D5/\E1\1E=\8D%\5C\F99\E5H\97p\8FU\BF\84\9B\9F\D0K\B8\F7\8E\E6\12\EE\18?\FA-<\BA\AE*\96\DDg0\EB\0AJ\8Cuzb4S\81\8Bs'\B0\86\B8\DD,\88I\0E\EBz\82Y\16c\8E\06\11\DE\94\B5\C4\D2s\AD\A9\BA\A8v\BF\818OS\E2<\C6T=>1\1E\99\99h[o3\FA\9D0\E8\F7\0A\F5\F1\0Bz\1F\7F\9A\8A;\99[}\9C\AC\DF\12\BAh\0B\B4\82\94\88\85\B8\DE\84\BCj[pzR\ECI\CA\9E\8FDQ\18W\AB\B6\CC(,\FE\E2$\16}EI>WXw\97\22Mf,\FC\C6\E2\D1n8C0\07z\95E\E0x\5CL\C4\A2\F2.<\E4lg\9C\0B\EB\1E\9E\C9\CA\ACPD\8C\FERn\15\BFR\DB'\FB\B1;\91\8C\C6\8B^\9D\99T\5C\A5\EA\D7'\17\FC\1Dy\8Fo\91\F6\02\DC\A9o\E1\EBl\E5\15\B9`\90l\8A\A7\DB\A0\E1\D4\18n\D0\A0Jd\B7W\B8n\E4\DB+\5C\CBZ\F7`\09\EB\D8\1A\0F\94\A8\C1j#\95\D2f^\F5\DA\9C\CF\B6\A4\BC\AA\0AY\F6\F6\C26\1A\0B\B5\0A7\90\0A\D3I\85:\B2y\06\BBY\89`\D8\AC\84\BD8\C0^L\8C\E8\D0N\F2\E4\E4F\CD\88u\B47\DA\F4F\D41F\D4\ADyq\A8W\A7Y\E3\F8\E2\F7p\0B\AF\81\12\15\82Z\05\8ET\B8FSa\83\DC\92\FC\92\F6%\95\FC\E8\ABT\C1\CBv*W\D4\A9\EA\FE\0C\AC\B3D\A3\A7\17k'\B7\92\93\F3\C9\C9\D9\EAV\0D\85_5\B3>\ED\AC\DE\A7z}\1F\AF\CE\A7\9D\95|\1A\1C\B9O\D7U\AA\B0\96}\E17X\FE\85_7\CF{\C1gv\E8\C4Gm\E8\C4+\0D\9D\1B\CB\0D\9D\B0a\E8\B0=\19\1AqO\D6<]\AE'\17\B1\124F\BA\B8v\BB\BE+\BB\C6px\B4\B0\CAt\B1\CAh\FB\F9PoF\8C\DE\A4}\B1\AD\A8/\94ng\AF\8E\19#\11\B53:\86\94\BD\98\E8aeE\9DO\F48\9B\DD\95h\08\BA\F6\8D\1A]\FB*\D15Q\8E\AE\DD\15\E8\9A\1A9]S\D5\D15U\91\AE\C9\F1\A3k\B2\22]\B7\97\A3k\BA\12]{\CB\D1\B5g\AC\E9\BA\88\15\A5\D8\E9\B1\F9\82\EDv\AF\8E\A0\03\A3F\D0\81J\04\ED/G\D0\9B+\A4\22;\CA\A5\227U\CF\DE)\AC\11\1Fl\A8n\DA\BC\A9\D2\B4\99\19\BFT$S1\15\B9\A5\1Cy\B3F\F2\B2\DE\DC9bo\D6\1C\AA\CE\9B;+y\F3\D6\B1NB\16\B1\A2\14o\BA\05\81W7\F4\A0C\E4\C0\A8\0D\91\03\95\86\C8`\B9!\B2\B7\C2\10\D9]n\88\EC\A9\BESkY#\9A/\AB\AES\F7T\EA\D4]\E37DvU\1C\22\FB\CA\0D\91\FD\95\86\C8m#\F6f\E3\C2\EA\BCy[%o\E6\C6o\88\E4*\0E\91{Fm\88\DCSi\88\1C,7D\8ET\18\22\B7\97\1B\22\87\AB\EF\D4\A9\AC\11\F5\B7W\D7\A9\87+u\EA\A1\F1\1B\22\87*\0E\91;\CA\0D\91\BB+\A5@w\95K\81\EE\1C\BF\14\E8\CE\8A)\D0\C9Q#\EF\C9J\E4=Z\8E\BC\C7*\E4\E8\F7\8E<Go\A9.G\BF\B7b\8E\9E\1F\BF\1C=_1G\BF\AF\1CA\EF\AFD\D0\13\E5\08z|\FC\08z\BC\04A\C9^K\BD\F2\1B\F1\DE\C2.\9F\C1\5Cq\D0\C8\16\BD\FE\C6\EC\BFD\8B\E5\ED\93\C8\FB\F2\0E\F9\EFr\D0\13v\8F_\F0\BA0\E2\03n\DE\E5\F0\F1^\B1\D4\1F\8B0\DDG\A4;\1C\0E*\DD\C9n,G\B6\0CNn\B1\B7{l\0E\B7M\FE\13\12\DANN\9C\BD_^\DB\EA\E8\C8\EE\0EJ\11\C1\AF\ECi\A5\BD{\AF\16jJ\CA/\F5\AB\A5v\AF_py\BCn\91\E7\05.\E0\0B\08vOI\15\8F\C9*\FA\8AT\5CP\AC\E2\0EuG\E3\EC\BEX\9C\FC5\17y\A1\9F\E8\B1H\F9\EB\1B\DAs\A4\E7\8BkhJ\AD$J\A9U\EC\F6\A2*\D0\D0\ED\F0:}\01\DE\E3qsN\B7\DD\C5\97\D40I4t\DA\8A4\A4\E3*\ABIg\5C\A3\16\B2\AE\D1\B4\F0\FA=.^p8\F8\A0\CF\CDy\1D\81@9\C1^\E7\D0\82\C9\CF\C9\0D\82I\A1Q0)\ADV\F06\22\D8\E5*-X}\D1\8D\D9\D5K)\D3\C4\B6B\ACW)\ACVjN\96\EAsS\A9\CB\0DdUw\BA\B6\F7\07\1B\A5p\80s\F4\B7\90\0D\A4#\D9A)\D2\1D\ED\12\99\1D\D4\0AE\9ANMd[\DFB\99\DD\ED\17x\E8\E3q:\83\1C'\FA\DC%\15\BA\97(\04\8AP\85,T\A1\C2_\92\F1\049\0Co{\83\AA\97C\DB\81;\BBW\88\FA\95\87C\CC\E8\A6\C5\9AfNyt\D3\13\C4cA\87\C0\89\A2\DB\EE\F0\DA\5C\BC\8F+\A5\E0\A4\0F\CB\0A:\1Dt\BB\8D\9A\14i\CF\85\F6\DC2\C7=\97m\5C\B7~\E3Ud\17g\CEi\13=\BE@@\14x\8E\0B\18\FF\B8Lv\B0P\97(\BB@\19[\85\9Fl=\AF\9Cy\15\0F-\BF\C3l\B2Q;\8F\D9d\A3v\C1k\F2\16\AF\FAM6jNi\B3\5C\8D\F6k?\A5\D1\F2[l\D4\9E\A9>2T\B7\D8\A8q\D0\B6\962U\CFP\AA\AA\BBY\EC\95+\CA\BBY\DC4\8C\87\E6\A9Q\FF\C3p\F0R\E5'z\C5\96\CC7<'\F5\D2\E7\A4M\FA\E7\A4\0B\E8S\BF\19\83\EA|4\8Dy\D0X\F5S@\D3;dZ[\F0\86\E6~2\ADM9*3\EB-|\8A\EC\99\CDc\F1\F4\AF&Ef\F1\CD\9A\A4yD\D2\07\B5Y|\A5|\89\BC\15\A7\83\D9\8As\09u\E79\F9]\A9\D2\7F\FA\8B5o~\91yd\C4K\F2\80*\8E\B8t\B6\1E\D0f\1E\ED\EFk\B13M\936\EA\AA\9C\9D\83D\9A\A7\AD\AD\944\F9W^\CCV\E8\A4@\93e\85,\17)\A9B\D4\A1\B9\A6\19\C7`\FC\94\C3\95\B6\FE\AA\FBw\14\CC.\BF\D7\97\E1\22\DDF\87jq\E4\E7(x\BC\CA\B6&\C4\C6g\B3\04\14\98K\9F\DB\B6\94P\C4P\DC}\0FH\B4\D2\E8\92\D3\D8\1C\F1\5C\A5\8D\86\FFA\C1Z\E5K\FC\E3\903g\B4\0C\AD{\10\AD}\F3\BDt\B9j\E4\A4 \19\86\CA\97\FA\158\F6\8Dy7\B7\92\FD\EDN\8D~\BBu~x\F5\85\EA\EB_\F8\0C\0A\AE==\99\B1Y\A0\E5\B9\A5\CF\9D7\05\05\EB\0C\C5\DB\A7B\CD\A7G\D5\F2\99\DBPP?\96}6#\8F\82YUU\8DJ(\F8>\E3hmKG\B5$q)\99\C0\C6R\E1Y\B5(Xl(\8E\9F\85\FE\FAI\99\EB\CE\89\A0\A0e\18\04x\94\AC\0B\94>\B7\ED\04y\0C]}[\E7:P\E0-.i8\07%\17W\DF\C2\C8\B7\8E\DC\DE\0F\DC\02\0C\02\FB\80\83\C0I\00\81o\FB\A7\80\CF\02O\00O\03\CF\00_\03\DE\04\BE\0B\FC\12\F8-\F0{\E0Ox\5C\06\DF\F7\80\E5=\18\1C=\F3\008\BD\E7<\C0\0C\5C\08X\80V\C0\05\B4\01\AB\80\B5\00X\D1\B3\01\B8\12\B8\06\B8\0E\E0\00\04\A9\9E. \06\A4\804\00N\F5`b\EE\D9\03\EC\07\E0\EB\9ES\C0#\C0\97\80g\81\D7\81\7F\02~\06\FC\0A\F8\1D\F0\0E\F0g,\0BL\02\E0\B1\DEz\E0\0C\E0l\E0|\E0\22`5\B0\1E\B8\1C\B8\02\B8\0A\B8\16\B8\1E\E0\81\AD@\18\88\03\DB\01\E8\D0\0B\1Dz\0F\03w\03\C7\00\F8\AE\17\BE\EB\85\EFz\E1\BB^\F8\AE\17\BE\EB\85\EFz\E1\BB\DEo\00\AF\00o\00\E8\B5\DE\EF\03\FF\0A\FC\07\F0\0B\E07\00f\A0\DEw\F1\9C\B4\06\80\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\F0]z\17\903\99\D2\87\80;\C9\CB$\00|\97\86\EF\D2\F0]\FA3\C0\E7\81\A7\80\AF\00\CF\03/\01\DF\04~\00\FC\18\F8)\80>O\A3\CF\D3\E8\F34\FA\BCo\0Ep&\00\C6\F6\BD\0Fh\00\96\01\CD\00x\DD\E7\050\BF\F4af\EE\DB\04|\14\E8\00\A2@\12\00\EF\FA\C0\BB>\F0\AE\EF\0E\E0(p\1C\C0T\D9\F7\09\00\E3\AC\EFs\C0\17\80/\03\CF\01_\07\E0\BB>\F8\AE\0F\BE\EB\83\EF\FA\E0\BB>\F8\AE\0F\BE\EB\83\EF\FA\E1\BB~\04\E2\FE\99\00\F8\DE\BF\008\17x?\B0\04X\0E\A0\CF\FB\D1\E7\FD\E8\F3~\F4y?\FA\BC\1F}\DE\0F\DF\F5\F7\00{\81\03\C0\11\00\09G\FF}\C0\03\C0\C3\C0\A7\81\C7\81'\01\F0\AE\1F\BC\EB\7F\11x\19x\95<\AD\05\DE\02\FE\13\F85\9E:\82w\19\F0.\03\DEe\C0\BB\0Ct\C8@\87L\0B\E0\04|\C0J\E0\12\00:d\C0\BB\0Cx\97A\FFe\D0\7F\19p?\03\EEg\C0\FD\0Cx\97\01\EF2\E8\BF\0Ct\C8@\87\0Ct\C8@\87\0Ct\C8@\87\0Ct\C8\FC\08@f\99\81\0E\19\A2\C3\7F\03\7F\C4\C3`\8C\FB\1D\93\81\1980\FD\1F" }, section "__DATA,__note.rustc" | |
@llvm.used = appending global [1 x i8*] [i8* getelementptr inbounds ({ [7414 x i8] }* @rust_metadata, i32 0, i32 0, i32 0)] | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0 | |
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0 | |
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #0 | |
declare i32 @upcall_rust_personality() #0 | |
declare void @upcall_reset_stack_limit() #0 | |
define void @"_ZN10ValidUsage10ValidUsage5Valid17_1e8f9dbf9d8188c814_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, i64) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 0, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1 | |
store i64 %2, i64* %4, align 8 | |
ret void | |
} | |
define void @"_ZN6Action6Action4Call17_9e9a747d18168a1e14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0 | |
store i64 0, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1 | |
store void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* %2, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %4, align 8 | |
ret void | |
} | |
define void @"_ZN6Action6Action8CallMain17_b2673849a278305b14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 { | |
"function top level": | |
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0 | |
store i64 1, i64* %4, align 8 | |
%5 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1 | |
%6 = bitcast %str_slice* %2 to i8* | |
%7 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %5 to i8* | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 16, i32 8, i1 false) | |
%8 = getelementptr inbounds %enum.Action* %0, i64 0, i32 2, i64 8 | |
%9 = bitcast i8* %8 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %3, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %9, align 8 | |
ret void | |
} | |
define void @"_ZN11UsageSource11UsageSource6UsgStr17_4518e7c6172c203814_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0 | |
store i64 0, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1 | |
%5 = bitcast %str_slice* %2 to i8* | |
%6 = bitcast %str_slice* %4 to i8* | |
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 16, i32 8, i1 false) | |
ret void | |
} | |
define void @"_ZN11UsageSource11UsageSource7UsgCall17_f5952b30e8baf33714_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 { | |
"function top level": | |
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0 | |
store i64 1, i64* %3, align 8 | |
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1, i32 0 | |
%.c = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %2 to i8* | |
store i8* %.c, i8** %4, align 8 | |
ret void | |
} | |
declare void @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
define void @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 { | |
"function top level": | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%1 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
%2 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 0 | |
%3 = load i64* %2, align 8 | |
%4 = icmp eq i64 %3, 0 | |
br i1 %4, label %cond, label %next | |
next: ; preds = %"function top level" | |
%5 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0 | |
%6 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %6) | |
%7 = load { i64, i64, [0 x i8] }** %5, align 8 | |
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0 | |
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0 | |
%10 = load i64* %9, align 8 | |
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %8, i8** %11, align 8 | |
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %10, i64* %12, align 8 | |
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13) | |
to label %"normal return1" unwind label %unwind | |
cond: ; preds = %"function top level" | |
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([55 x i8]* @str10798, i64 0, i64 0), i64 121, i64 0, i64 0) | |
to label %"normal return" unwind label %unwind | |
"normal return": ; preds = %cond | |
unreachable | |
unwind: ; preds = %next, %cond | |
%15 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%16 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null | |
br i1 %16, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit", label %cond.i | |
cond.i: ; preds = %unwind | |
%17 = load i64* %2, align 8 | |
%18 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0 | |
%19 = bitcast { i64, i64, [0 x i8] }** %18 to i8* | |
%20 = getelementptr inbounds i8* %19, i64 %17 | |
%21 = bitcast i8* %20 to { i64, i64, [0 x i8] }** | |
%22 = icmp ult { i64, i64, [0 x i8] }** %18, %21 | |
br i1 %22, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i" | |
iter_vec_loop_body.i.i: ; preds = %cond.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i" | |
%23 = phi { i64, i64, [0 x i8] }** [ %27, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i" ], [ %18, %cond.i ] | |
%24 = load { i64, i64, [0 x i8] }** %23, align 8 | |
%25 = icmp eq { i64, i64, [0 x i8] }* %24, null | |
br i1 %25, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i", label %cond.i.i.i.i | |
cond.i.i.i.i: ; preds = %iter_vec_loop_body.i.i | |
%26 = bitcast { i64, i64, [0 x i8] }* %24 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %26) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i": ; preds = %cond.i.i.i.i, %iter_vec_loop_body.i.i | |
%27 = getelementptr inbounds { i64, i64, [0 x i8] }** %23, i64 1 | |
%28 = icmp ult { i64, i64, [0 x i8] }** %27, %21 | |
br i1 %28, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i", %cond.i | |
%29 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %29) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit": ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i" | |
resume { i8*, i32 } %15 | |
"normal return1": ; preds = %next | |
call void @llvm.lifetime.end(i64 16, i8* %6) | |
%30 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null | |
br i1 %30, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10", label %cond.i5 | |
cond.i5: ; preds = %"normal return1" | |
%31 = load i64* %2, align 8 | |
%32 = bitcast { i64, i64, [0 x i8] }** %5 to i8* | |
%33 = getelementptr inbounds i8* %32, i64 %31 | |
%34 = bitcast i8* %33 to { i64, i64, [0 x i8] }** | |
%35 = icmp ult { i64, i64, [0 x i8] }** %5, %34 | |
br i1 %35, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9" | |
iter_vec_loop_body.i.i6: ; preds = %cond.i5, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8" | |
%36 = phi { i64, i64, [0 x i8] }** [ %40, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8" ], [ %5, %cond.i5 ] | |
%37 = load { i64, i64, [0 x i8] }** %36, align 8 | |
%38 = icmp eq { i64, i64, [0 x i8] }* %37, null | |
br i1 %38, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8", label %cond.i.i.i.i7 | |
cond.i.i.i.i7: ; preds = %iter_vec_loop_body.i.i6 | |
%39 = bitcast { i64, i64, [0 x i8] }* %37 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %39) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8": ; preds = %cond.i.i.i.i7, %iter_vec_loop_body.i.i6 | |
%40 = getelementptr inbounds { i64, i64, [0 x i8] }** %36, i64 1 | |
%41 = icmp ult { i64, i64, [0 x i8] }** %40, %34 | |
br i1 %41, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8", %cond.i5 | |
%42 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %42) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10": ; preds = %"normal return1", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9" | |
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 2, i64 0 | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0 | |
%45 = load i64* %44, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %43, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx15 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %45, i64* %__adjust.sroa.1.8..idx15, align 8 | |
%46 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
invoke void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %46) | |
to label %"normal return2" unwind label %unwind3 | |
"normal return2": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10" | |
%47 = icmp eq { i64, i64, [0 x i8] }* %14, null | |
br i1 %47, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit", label %cond.i11 | |
cond.i11: ; preds = %"normal return2" | |
%48 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit": ; preds = %"normal return2", %cond.i11 | |
ret void | |
unwind3: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10" | |
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%50 = icmp eq { i64, i64, [0 x i8] }* %14, null | |
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit13", label %cond.i12 | |
cond.i12: ; preds = %unwind3 | |
%51 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit13" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit13": ; preds = %unwind3, %cond.i12 | |
resume { i8*, i32 } %49 | |
} | |
define void @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i62 = alloca { i64, i64, [0 x i8] }*, align 8 | |
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg.i = alloca %str_slice, align 8 | |
%__arg2.i = alloca %str_slice, align 8 | |
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8 | |
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%__adjust2 = alloca { i8*, i64 }, align 8 | |
%__arg6 = alloca %str_slice, align 8 | |
%5 = alloca [3 x { i64, i64, [0 x i8] }*], align 8 | |
%__adjust7 = alloca { i8*, i64 }, align 8 | |
%__adjust15 = alloca { i8*, i64 }, align 8 | |
%__arg20 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg22 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%__adjust27 = alloca { i8*, i64 }, align 8 | |
%__arg33 = alloca { i8*, i64 }, align 8 | |
%__arg35 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%.sub = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0 | |
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%7 = load i64* %6, align 8 | |
%8 = icmp sgt i64 %7, 7 | |
br i1 %8, label %match_case, label %compare_vec_len_next | |
match_case: ; preds = %"function top level" | |
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%10 = load { i64, i64, [0 x i8] }*** %9, align 8 | |
%11 = getelementptr inbounds { i64, i64, [0 x i8] }** %10, i64 1 | |
%12 = add i64 %7, -8 | |
%13 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%14 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 2, i64 0 | |
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 0 | |
%16 = load i64* %15, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %14, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx145 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %16, i64* %__adjust.sroa.1.8..idx145, align 8 | |
%17 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %17) | |
%18 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke void @"_ZN4path14__extensions__10meth_225708filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %18) | |
to label %"normal return" unwind label %unwind | |
compare_vec_len_next: ; preds = %"function top level" | |
%19 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %19, align 8 | |
br label %join | |
"normal return": ; preds = %match_case | |
%20 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%21 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %20, align 8 | |
%22 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, null | |
br i1 %22, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit, label %cond.i.i.i | |
cond.i.i.i: ; preds = %"normal return" | |
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 0 | |
%24 = load i64* %23, align 8 | |
%25 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 2, i64 0 | |
%26 = bitcast { i64, i64, [0 x i8] }** %25 to i8* | |
%27 = getelementptr inbounds i8* %26, i64 %24 | |
%28 = bitcast i8* %27 to { i64, i64, [0 x i8] }** | |
%29 = icmp ult { i64, i64, [0 x i8] }** %25, %28 | |
br i1 %29, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i" | |
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" | |
%30 = phi { i64, i64, [0 x i8] }** [ %34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" ], [ %25, %cond.i.i.i ] | |
%31 = load { i64, i64, [0 x i8] }** %30, align 8 | |
%32 = icmp eq { i64, i64, [0 x i8] }* %31, null | |
br i1 %32, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", label %cond.i.i.i.i.i.i | |
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i | |
%33 = bitcast { i64, i64, [0 x i8] }* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i | |
%34 = getelementptr inbounds { i64, i64, [0 x i8] }** %30, i64 1 | |
%35 = icmp ult { i64, i64, [0 x i8] }** %34, %28 | |
br i1 %35, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", %cond.i.i.i | |
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i" | |
%37 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0 | |
%38 = load { i64, i64, [0 x i8] }** %37, align 8 | |
%39 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %39) | |
%40 = bitcast %str_slice* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %40) | |
%41 = bitcast %str_slice* %__arg2.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %41) | |
%42 = icmp eq { i64, i64, [0 x i8] }* %38, null | |
br i1 %42, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit | |
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([20 x i8]* @str11098, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8 | |
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1 | |
store i64 20, i64* %.sroa.111.8..idx12.i, align 8 | |
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([56 x i8]* @str11099, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8 | |
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1 | |
store i64 56, i64* %.sroa.18.8..idx9.i, align 8 | |
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320) | |
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i" | |
"normal return.i": ; preds = %match_else.i | |
unreachable | |
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i": ; preds = %match_else.i | |
%43 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
resume { i8*, i32 } %43 | |
"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit | |
call void @llvm.lifetime.end(i64 0, i8* %39) | |
call void @llvm.lifetime.end(i64 16, i8* %40) | |
call void @llvm.lifetime.end(i64 16, i8* %41) | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0 | |
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0 | |
%46 = load i64* %45, align 8 | |
%47 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0 | |
store i8* %44, i8** %47, align 8 | |
%48 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1 | |
store i64 %46, i64* %48, align 8 | |
%49 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %50) | |
%51 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %49) | |
to label %.noexc unwind label %unwind4 | |
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
store { i64, i64, [0 x i8] }* %51, { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%52 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%53 = getelementptr inbounds { i64, i64, [0 x i8] }* %51, i64 0, i32 0 | |
%54 = load i64* %53, align 8 | |
%55 = lshr i64 %54, 1 | |
%56 = or i64 %55, %54 | |
%57 = lshr i64 %56, 2 | |
%58 = or i64 %57, %56 | |
%59 = lshr i64 %58, 4 | |
%60 = or i64 %59, %58 | |
%61 = lshr i64 %60, 8 | |
%62 = or i64 %61, %60 | |
%63 = lshr i64 %62, 16 | |
%64 = or i64 %63, %62 | |
%65 = lshr i64 %64, 32 | |
%66 = or i64 %65, %64 | |
%67 = add i64 %66, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %52, i64 %67) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" unwind label %unwind.i40 | |
unwind.i40: ; preds = %.noexc | |
%68 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%69 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%70 = icmp eq { i64, i64, [0 x i8] }* %69, null | |
br i1 %70, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49", label %cond.i.i2.i | |
cond.i.i2.i: ; preds = %unwind.i40 | |
%71 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %71) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49" unwind label %unwind4 | |
unwind: ; preds = %match_case | |
%72 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%73 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%74 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %73, align 8 | |
%75 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, null | |
br i1 %75, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit47, label %cond.i.i.i42 | |
cond.i.i.i42: ; preds = %unwind | |
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 0 | |
%77 = load i64* %76, align 8 | |
%78 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 2, i64 0 | |
%79 = bitcast { i64, i64, [0 x i8] }** %78 to i8* | |
%80 = getelementptr inbounds i8* %79, i64 %77 | |
%81 = bitcast i8* %80 to { i64, i64, [0 x i8] }** | |
%82 = icmp ult { i64, i64, [0 x i8] }** %78, %81 | |
br i1 %82, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46" | |
iter_vec_loop_body.i.i.i.i43: ; preds = %cond.i.i.i42, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45" | |
%83 = phi { i64, i64, [0 x i8] }** [ %87, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45" ], [ %78, %cond.i.i.i42 ] | |
%84 = load { i64, i64, [0 x i8] }** %83, align 8 | |
%85 = icmp eq { i64, i64, [0 x i8] }* %84, null | |
br i1 %85, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45", label %cond.i.i.i.i.i.i44 | |
cond.i.i.i.i.i.i44: ; preds = %iter_vec_loop_body.i.i.i.i43 | |
%86 = bitcast { i64, i64, [0 x i8] }* %84 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %86) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45": ; preds = %cond.i.i.i.i.i.i44, %iter_vec_loop_body.i.i.i.i43 | |
%87 = getelementptr inbounds { i64, i64, [0 x i8] }** %83, i64 1 | |
%88 = icmp ult { i64, i64, [0 x i8] }** %87, %81 | |
br i1 %88, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45", %cond.i.i.i42 | |
%89 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %89) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit47 | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit47: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46" | |
resume { i8*, i32 } %72 | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit": ; preds = %.noexc | |
%90 = add i64 %54, -1 | |
%91 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%92 = getelementptr inbounds { i64, i64, [0 x i8] }* %91, i64 0, i32 2, i64 0 | |
%93 = ptrtoint i8* %92 to i64 | |
%94 = add i64 %90, %93 | |
%95 = inttoptr i64 %94 to i8* | |
store i8 126, i8* %95, align 1 | |
%96 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%97 = add i64 %54, 1 | |
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 0, i32 0 | |
store i64 %97, i64* %98, align 8 | |
%99 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 1 | |
%100 = ptrtoint { i64, i64, [0 x i8] }* %99 to i64 | |
%101 = add i64 %100, %54 | |
%102 = inttoptr i64 %101 to i8* | |
store i8 0, i8* %102, align 1 | |
%103 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %50) | |
%104 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %104) | |
%.sroa.093.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0 | |
store i8* getelementptr inbounds ([6 x i8]* @str10720, i64 0, i64 0), i8** %.sroa.093.0..idx, align 8 | |
%.sroa.194.8..idx95 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1 | |
store i64 6, i64* %.sroa.194.8..idx95, align 8 | |
%105 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%106 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 2, i64 0 | |
%107 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 0 | |
%108 = load i64* %107, align 8 | |
%109 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 0 | |
store i8* %106, i8** %109, align 8 | |
%110 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 1 | |
store i64 %108, i64* %110, align 8 | |
%111 = bitcast { i8*, i64 }* %__adjust7 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%112 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %111) | |
to label %"normal return8" unwind label %unwind9 | |
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
%113 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49": ; preds = %unwind.i40, %cond.i.i2.i, %unwind4 | |
%eh.lpad-body = phi { i8*, i32 } [ %113, %unwind4 ], [ %68, %cond.i.i2.i ], [ %68, %unwind.i40 ] | |
call void @upcall_reset_stack_limit() | |
%114 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %114) | |
resume { i8*, i32 } %eh.lpad-body | |
"normal return8": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" | |
store { i64, i64, [0 x i8] }* %112, { i64, i64, [0 x i8] }** %.sub, align 8 | |
%115 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1 | |
%116 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11123, i64 0, i64 0), i64 2) | |
to label %"normal return12" unwind label %unwind13 | |
unwind9: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" | |
%117 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract110 = extractvalue { i8*, i32 } %117, 0 | |
%.fca.1.extract112 = extractvalue { i8*, i32 } %117, 1 | |
br label %cleanup10 | |
cleanup10: ; preds = %cond.i.i52, %cleanup14, %unwind24, %unwind9 | |
%.sroa.0139.0 = phi i8* [ %.fca.0.extract128, %unwind24 ], [ %.fca.0.extract110, %unwind9 ], [ %.sroa.0139.2, %cleanup14 ], [ %.sroa.0139.2, %cond.i.i52 ] | |
%.sroa.1142.0 = phi i32 [ %.fca.1.extract130, %unwind24 ], [ %.fca.1.extract112, %unwind9 ], [ %.sroa.1142.2, %cleanup14 ], [ %.sroa.1142.2, %cond.i.i52 ] | |
%118 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i | |
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cleanup10 | |
%119 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup10 ], [ %123, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ] | |
%120 = load { i64, i64, [0 x i8] }** %119, align 8 | |
%121 = icmp eq { i64, i64, [0 x i8] }* %120, null | |
br i1 %121, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i51 | |
cond.i.i.i51: ; preds = %iter_vec_loop_body.i | |
%122 = bitcast { i64, i64, [0 x i8] }* %120 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %122) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i51, %iter_vec_loop_body.i | |
%123 = getelementptr inbounds { i64, i64, [0 x i8] }** %119, i64 1 | |
%124 = icmp ult { i64, i64, [0 x i8] }** %123, %118 | |
br i1 %124, label %iter_vec_loop_body.i, label %cleanup11 | |
cleanup11: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cond.i81, %unwind37, %cond.i.i77, %unwind30.body, %unwind26 | |
%.sroa.0139.1 = phi i8* [ %.fca.0.extract132, %unwind26 ], [ %eh.lpad-body73.fca.0.extract, %unwind30.body ], [ %eh.lpad-body73.fca.0.extract, %cond.i.i77 ], [ %.fca.0.extract136, %unwind37 ], [ %.fca.0.extract136, %cond.i81 ], [ %.sroa.0139.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ] | |
%.sroa.1142.1 = phi i32 [ %.fca.1.extract134, %unwind26 ], [ %eh.lpad-body73.fca.1.extract, %unwind30.body ], [ %eh.lpad-body73.fca.1.extract, %cond.i.i77 ], [ %.fca.1.extract138, %unwind37 ], [ %.fca.1.extract138, %cond.i81 ], [ %.sroa.1142.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ] | |
%125 = icmp eq { i64, i64, [0 x i8] }* %103, null | |
br i1 %125, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i | |
cond.i.i: ; preds = %cleanup11 | |
%126 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %126) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %cleanup11, %cond.i.i | |
%.fca.0.insert115 = insertvalue { i8*, i32 } undef, i8* %.sroa.0139.1, 0 | |
%.fca.1.insert118 = insertvalue { i8*, i32 } %.fca.0.insert115, i32 %.sroa.1142.1, 1 | |
resume { i8*, i32 } %.fca.1.insert118 | |
"normal return12": ; preds = %"normal return8" | |
store { i64, i64, [0 x i8] }* %116, { i64, i64, [0 x i8] }** %115, align 8 | |
%127 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 2, i64 0 | |
%128 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 0 | |
%129 = load i64* %128, align 8 | |
%130 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 0 | |
store i8* %127, i8** %130, align 8 | |
%131 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 1 | |
store i64 %129, i64* %131, align 8 | |
%132 = bitcast { i8*, i64 }* %__adjust15 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%133 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %132) | |
to label %"normal return16" unwind label %unwind17 | |
unwind13: ; preds = %"normal return8" | |
%134 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract120 = extractvalue { i8*, i32 } %134, 0 | |
%.fca.1.extract122 = extractvalue { i8*, i32 } %134, 1 | |
br label %cleanup14 | |
cleanup14: ; preds = %cond.i.i54, %unwind17, %unwind13 | |
%.sroa.0139.2 = phi i8* [ %.fca.0.extract120, %unwind13 ], [ %.fca.0.extract124, %unwind17 ], [ %.fca.0.extract124, %cond.i.i54 ] | |
%.sroa.1142.2 = phi i32 [ %.fca.1.extract122, %unwind13 ], [ %.fca.1.extract126, %unwind17 ], [ %.fca.1.extract126, %cond.i.i54 ] | |
%135 = load { i64, i64, [0 x i8] }** %.sub, align 8 | |
%136 = icmp eq { i64, i64, [0 x i8] }* %135, null | |
br i1 %136, label %cleanup10, label %cond.i.i52 | |
cond.i.i52: ; preds = %cleanup14 | |
%137 = bitcast { i64, i64, [0 x i8] }* %135 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %137) | |
br label %cleanup10 | |
"normal return16": ; preds = %"normal return12" | |
%138 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2 | |
store { i64, i64, [0 x i8] }* %133, { i64, i64, [0 x i8] }** %138, align 8 | |
%__adjust19.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust19.sroa.0.0..idx, align 8 | |
%__adjust19.sroa.1.8..idx92 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 1 | |
store i64 24, i64* %__adjust19.sroa.1.8..idx92, align 8 | |
%__adjust21.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 0 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust21.sroa.0.0..idx, align 8 | |
%__adjust21.sroa.1.8..idx91 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 1 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust21.sroa.1.8..idx91, align 8 | |
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg20, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22) | |
to label %"normal return23" unwind label %unwind24 | |
unwind17: ; preds = %"normal return12" | |
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract124 = extractvalue { i8*, i32 } %139, 0 | |
%.fca.1.extract126 = extractvalue { i8*, i32 } %139, 1 | |
%140 = load { i64, i64, [0 x i8] }** %115, align 8 | |
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null | |
br i1 %141, label %cleanup14, label %cond.i.i54 | |
cond.i.i54: ; preds = %unwind17 | |
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142) | |
br label %cleanup14 | |
"normal return23": ; preds = %"normal return16" | |
%143 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i56 | |
iter_vec_loop_body.i56: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58", %"normal return23" | |
%144 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return23" ], [ %148, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58" ] | |
%145 = load { i64, i64, [0 x i8] }** %144, align 8 | |
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null | |
br i1 %146, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58", label %cond.i.i.i57 | |
cond.i.i.i57: ; preds = %iter_vec_loop_body.i56 | |
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58": ; preds = %cond.i.i.i57, %iter_vec_loop_body.i56 | |
%148 = getelementptr inbounds { i64, i64, [0 x i8] }** %144, i64 1 | |
%149 = icmp ult { i64, i64, [0 x i8] }** %148, %143 | |
br i1 %149, label %iter_vec_loop_body.i56, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59" | |
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58" | |
%150 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11124, i64 0, i64 0), i64 2) | |
to label %"normal return25" unwind label %unwind26 | |
unwind24: ; preds = %"normal return16" | |
%151 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract128 = extractvalue { i8*, i32 } %151, 0 | |
%.fca.1.extract130 = extractvalue { i8*, i32 } %151, 1 | |
br label %cleanup10 | |
"normal return25": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59" | |
%152 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 2, i64 0 | |
%153 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 0 | |
%154 = load i64* %153, align 8 | |
%155 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 0 | |
store i8* %152, i8** %155, align 8 | |
%156 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 1 | |
store i64 %154, i64* %156, align 8 | |
%157 = bitcast { i8*, i64 }* %__adjust27 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%158 = load i64* %128, align 8 | |
%159 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %159) | |
%160 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %157) | |
to label %.noexc71 unwind label %unwind30 | |
.noexc71: ; preds = %"normal return25" | |
store { i64, i64, [0 x i8] }* %160, { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%161 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%162 = getelementptr inbounds { i64, i64, [0 x i8] }* %160, i64 0, i32 0 | |
%163 = load i64* %162, align 8 | |
%164 = add i64 %163, -1 | |
%165 = add i64 %158, -1 | |
%166 = add i64 %164, %165 | |
%167 = lshr i64 %166, 1 | |
%168 = or i64 %167, %166 | |
%169 = lshr i64 %168, 2 | |
%170 = or i64 %169, %168 | |
%171 = lshr i64 %170, 4 | |
%172 = or i64 %171, %170 | |
%173 = lshr i64 %172, 8 | |
%174 = or i64 %173, %172 | |
%175 = lshr i64 %174, 16 | |
%176 = or i64 %175, %174 | |
%177 = lshr i64 %176, 32 | |
%178 = or i64 %177, %176 | |
%179 = add i64 %178, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %161, i64 %179) | |
to label %"normal return29" unwind label %unwind.i68 | |
unwind.i68: ; preds = %.noexc71 | |
%180 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%181 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%182 = icmp eq { i64, i64, [0 x i8] }* %181, null | |
br i1 %182, label %unwind30.body, label %cond.i.i2.i69 | |
cond.i.i2.i69: ; preds = %unwind.i68 | |
%183 = bitcast { i64, i64, [0 x i8] }* %181 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %183) | |
to label %unwind30.body unwind label %unwind30 | |
unwind26: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59" | |
%184 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract132 = extractvalue { i8*, i32 } %184, 0 | |
%.fca.1.extract134 = extractvalue { i8*, i32 } %184, 1 | |
br label %cleanup11 | |
"normal return29": ; preds = %.noexc71 | |
%185 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%186 = getelementptr inbounds { i64, i64, [0 x i8] }* %185, i64 0, i32 2, i64 0 | |
%187 = ptrtoint i8* %186 to i64 | |
%188 = add i64 %187, %164 | |
%189 = inttoptr i64 %188 to i8* | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %189, i8* %127, i64 %165, i32 1, i1 false) | |
%190 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
%191 = add i64 %163, %165 | |
%192 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 0 | |
store i64 %191, i64* %192, align 8 | |
%193 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 1 | |
%194 = ptrtoint { i64, i64, [0 x i8] }* %193 to i64 | |
%195 = add i64 %194, %166 | |
%196 = inttoptr i64 %195 to i8* | |
store i8 0, i8* %196, align 1 | |
%197 = load { i64, i64, [0 x i8] }** %ret.i62, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %159) | |
%198 = icmp eq { i64, i64, [0 x i8] }* %150, null | |
br i1 %198, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76", label %cond.i.i75 | |
cond.i.i75: ; preds = %"normal return29" | |
%199 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %199) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76": ; preds = %"normal return29", %cond.i.i75 | |
%200 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 2, i64 0 | |
%201 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 0 | |
%202 = load i64* %201, align 8 | |
%__adjust32.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 0 | |
store i8* %200, i8** %__adjust32.sroa.0.0..idx, align 8 | |
%__adjust32.sroa.1.8..idx87 = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 1 | |
store i64 %202, i64* %__adjust32.sroa.1.8..idx87, align 8 | |
%203 = bitcast { i8*, i64 }* %__arg33 to %str_slice* | |
%__adjust34.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %11, { i64, i64, [0 x i8] }*** %__adjust34.sroa.0.0..idx, align 8 | |
%__adjust34.sroa.1.8..idx86 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 1 | |
store i64 %12, i64* %__adjust34.sroa.1.8..idx86, align 8 | |
%204 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %203, { { i64, i64, [0 x i8] }**, i64 }* %__arg35) | |
to label %"normal return36" unwind label %unwind37 | |
unwind30: ; preds = %cond.i.i2.i69, %"normal return25" | |
%205 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind30.body | |
unwind30.body: ; preds = %unwind.i68, %cond.i.i2.i69, %unwind30 | |
%eh.lpad-body73 = phi { i8*, i32 } [ %205, %unwind30 ], [ %180, %cond.i.i2.i69 ], [ %180, %unwind.i68 ] | |
call void @upcall_reset_stack_limit() | |
%eh.lpad-body73.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 0 | |
%eh.lpad-body73.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 1 | |
%206 = icmp eq { i64, i64, [0 x i8] }* %150, null | |
br i1 %206, label %cleanup11, label %cond.i.i77 | |
cond.i.i77: ; preds = %unwind30.body | |
%207 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %207) | |
br label %cleanup11 | |
"normal return36": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76" | |
%208 = icmp eq { i64, i64, [0 x i8] }* %197, null | |
br i1 %208, label %"normal return39", label %cond.i79 | |
cond.i79: ; preds = %"normal return36" | |
%209 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %209) | |
br label %"normal return39" | |
unwind37: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76" | |
%210 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract136 = extractvalue { i8*, i32 } %210, 0 | |
%.fca.1.extract138 = extractvalue { i8*, i32 } %210, 1 | |
%211 = icmp eq { i64, i64, [0 x i8] }* %197, null | |
br i1 %211, label %cleanup11, label %cond.i81 | |
cond.i81: ; preds = %unwind37 | |
%212 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %212) | |
br label %cleanup11 | |
"normal return39": ; preds = %cond.i79, %"normal return36" | |
%213 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 0, i64* %213, align 8 | |
%214 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1 | |
store i64 %204, i64* %214, align 8 | |
%215 = icmp eq { i64, i64, [0 x i8] }* %103, null | |
br i1 %215, label %join, label %cond.i.i83 | |
cond.i.i83: ; preds = %"normal return39" | |
%216 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %216) | |
br label %join | |
join: ; preds = %cond.i.i83, %"normal return39", %compare_vec_len_next | |
ret void | |
} | |
define void @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i69 = alloca { i64, i64, [0 x i8] }*, align 8 | |
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg.i = alloca %str_slice, align 8 | |
%__arg2.i = alloca %str_slice, align 8 | |
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8 | |
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%__adjust2 = alloca { i8*, i64 }, align 8 | |
%__arg6 = alloca %str_slice, align 8 | |
%5 = alloca [4 x { i64, i64, [0 x i8] }*], align 8 | |
%__adjust11 = alloca { i8*, i64 }, align 8 | |
%__adjust18 = alloca { i8*, i64 }, align 8 | |
%__arg23 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg25 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%__adjust30 = alloca { i8*, i64 }, align 8 | |
%__arg36 = alloca { i8*, i64 }, align 8 | |
%__arg38 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%.sub = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0 | |
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%7 = load i64* %6, align 8 | |
%.off = add i64 %7, -8 | |
%8 = icmp ult i64 %.off, 8 | |
br i1 %8, label %match_case, label %compare_vec_len_next | |
match_case: ; preds = %"function top level" | |
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%10 = load { i64, i64, [0 x i8] }*** %9, align 8 | |
%11 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%12 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 2, i64 0 | |
%13 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 0 | |
%14 = load i64* %13, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %12, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx156 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %14, i64* %__adjust.sroa.1.8..idx156, align 8 | |
%15 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15) | |
%16 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke void @"_ZN4path14__extensions__10meth_225708filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %16) | |
to label %"normal return" unwind label %unwind | |
compare_vec_len_next: ; preds = %"function top level" | |
%17 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %17, align 8 | |
br label %join | |
"normal return": ; preds = %match_case | |
%18 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%19 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %18, align 8 | |
%20 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, null | |
br i1 %20, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit, label %cond.i.i.i | |
cond.i.i.i: ; preds = %"normal return" | |
%21 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 0 | |
%22 = load i64* %21, align 8 | |
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 2, i64 0 | |
%24 = bitcast { i64, i64, [0 x i8] }** %23 to i8* | |
%25 = getelementptr inbounds i8* %24, i64 %22 | |
%26 = bitcast i8* %25 to { i64, i64, [0 x i8] }** | |
%27 = icmp ult { i64, i64, [0 x i8] }** %23, %26 | |
br i1 %27, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i" | |
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" | |
%28 = phi { i64, i64, [0 x i8] }** [ %32, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" ], [ %23, %cond.i.i.i ] | |
%29 = load { i64, i64, [0 x i8] }** %28, align 8 | |
%30 = icmp eq { i64, i64, [0 x i8] }* %29, null | |
br i1 %30, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", label %cond.i.i.i.i.i.i | |
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i | |
%31 = bitcast { i64, i64, [0 x i8] }* %29 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %31) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i | |
%32 = getelementptr inbounds { i64, i64, [0 x i8] }** %28, i64 1 | |
%33 = icmp ult { i64, i64, [0 x i8] }** %32, %26 | |
br i1 %33, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", %cond.i.i.i | |
%34 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %34) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i" | |
%35 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0 | |
%36 = load { i64, i64, [0 x i8] }** %35, align 8 | |
%37 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %37) | |
%38 = bitcast %str_slice* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %38) | |
%39 = bitcast %str_slice* %__arg2.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %39) | |
%40 = icmp eq { i64, i64, [0 x i8] }* %36, null | |
br i1 %40, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit | |
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([20 x i8]* @str11098, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8 | |
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1 | |
store i64 20, i64* %.sroa.111.8..idx12.i, align 8 | |
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([56 x i8]* @str11099, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8 | |
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1 | |
store i64 56, i64* %.sroa.18.8..idx9.i, align 8 | |
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320) | |
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i" | |
"normal return.i": ; preds = %match_else.i | |
unreachable | |
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i": ; preds = %match_else.i | |
%41 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
resume { i8*, i32 } %41 | |
"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit | |
call void @llvm.lifetime.end(i64 0, i8* %37) | |
call void @llvm.lifetime.end(i64 16, i8* %38) | |
call void @llvm.lifetime.end(i64 16, i8* %39) | |
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 2, i64 0 | |
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 0 | |
%44 = load i64* %43, align 8 | |
%45 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0 | |
store i8* %42, i8** %45, align 8 | |
%46 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1 | |
store i64 %44, i64* %46, align 8 | |
%47 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%48 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %48) | |
%49 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %47) | |
to label %.noexc unwind label %unwind4 | |
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
store { i64, i64, [0 x i8] }* %49, { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%51 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0 | |
%52 = load i64* %51, align 8 | |
%53 = add i64 %52, 4 | |
%54 = lshr i64 %53, 1 | |
%55 = or i64 %54, %53 | |
%56 = lshr i64 %55, 2 | |
%57 = or i64 %56, %55 | |
%58 = lshr i64 %57, 4 | |
%59 = or i64 %58, %57 | |
%60 = lshr i64 %59, 8 | |
%61 = or i64 %60, %59 | |
%62 = lshr i64 %61, 16 | |
%63 = or i64 %62, %61 | |
%64 = lshr i64 %63, 32 | |
%65 = or i64 %64, %63 | |
%66 = add i64 %65, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %50, i64 %66) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" unwind label %unwind.i43 | |
unwind.i43: ; preds = %.noexc | |
%67 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%68 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%69 = icmp eq { i64, i64, [0 x i8] }* %68, null | |
br i1 %69, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53", label %cond.i.i2.i | |
cond.i.i2.i: ; preds = %unwind.i43 | |
%70 = bitcast { i64, i64, [0 x i8] }* %68 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %70) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53" unwind label %unwind4 | |
unwind: ; preds = %match_case | |
%71 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%72 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1 | |
%73 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %72, align 8 | |
%74 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, null | |
br i1 %74, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit50, label %cond.i.i.i45 | |
cond.i.i.i45: ; preds = %unwind | |
%75 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 0 | |
%76 = load i64* %75, align 8 | |
%77 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 2, i64 0 | |
%78 = bitcast { i64, i64, [0 x i8] }** %77 to i8* | |
%79 = getelementptr inbounds i8* %78, i64 %76 | |
%80 = bitcast i8* %79 to { i64, i64, [0 x i8] }** | |
%81 = icmp ult { i64, i64, [0 x i8] }** %77, %80 | |
br i1 %81, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49" | |
iter_vec_loop_body.i.i.i.i46: ; preds = %cond.i.i.i45, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48" | |
%82 = phi { i64, i64, [0 x i8] }** [ %86, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48" ], [ %77, %cond.i.i.i45 ] | |
%83 = load { i64, i64, [0 x i8] }** %82, align 8 | |
%84 = icmp eq { i64, i64, [0 x i8] }* %83, null | |
br i1 %84, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48", label %cond.i.i.i.i.i.i47 | |
cond.i.i.i.i.i.i47: ; preds = %iter_vec_loop_body.i.i.i.i46 | |
%85 = bitcast { i64, i64, [0 x i8] }* %83 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %85) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48": ; preds = %cond.i.i.i.i.i.i47, %iter_vec_loop_body.i.i.i.i46 | |
%86 = getelementptr inbounds { i64, i64, [0 x i8] }** %82, i64 1 | |
%87 = icmp ult { i64, i64, [0 x i8] }** %86, %80 | |
br i1 %87, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48", %cond.i.i.i45 | |
%88 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %88) | |
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit50 | |
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit50: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49" | |
resume { i8*, i32 } %71 | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit": ; preds = %.noexc | |
%89 = add i64 %52, -1 | |
%90 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 2, i64 0 | |
%92 = ptrtoint i8* %91 to i64 | |
%93 = add i64 %89, %92 | |
%94 = inttoptr i64 %93 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %94, i8* getelementptr inbounds ([6 x i8]* @str11114, i64 0, i64 0), i64 5, i32 1, i1 false) | |
%95 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%96 = add i64 %52, 5 | |
%97 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 0, i32 0 | |
store i64 %96, i64* %97, align 8 | |
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 1 | |
%99 = ptrtoint { i64, i64, [0 x i8] }* %98 to i64 | |
%100 = add i64 %99, %53 | |
%101 = inttoptr i64 %100 to i8* | |
store i8 0, i8* %101, align 1 | |
%102 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %48) | |
%103 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %103) | |
%.sroa.0100.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0 | |
store i8* getelementptr inbounds ([6 x i8]* @str10720, i64 0, i64 0), i8** %.sroa.0100.0..idx, align 8 | |
%.sroa.1101.8..idx102 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1 | |
store i64 6, i64* %.sroa.1101.8..idx102, align 8 | |
%104 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([7 x i8]* @str11116, i64 0, i64 0), i64 6) | |
to label %"normal return7" unwind label %unwind8 | |
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit" | |
%105 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53": ; preds = %unwind.i43, %cond.i.i2.i, %unwind4 | |
%eh.lpad-body = phi { i8*, i32 } [ %105, %unwind4 ], [ %67, %cond.i.i2.i ], [ %67, %unwind.i43 ] | |
call void @upcall_reset_stack_limit() | |
%106 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %106) | |
resume { i8*, i32 } %eh.lpad-body | |
"normal return7": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" | |
store { i64, i64, [0 x i8] }* %104, { i64, i64, [0 x i8] }** %.sub, align 8 | |
%107 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1 | |
%108 = load { i64, i64, [0 x i8] }** %10, align 8 | |
%109 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 2, i64 0 | |
%110 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 0 | |
%111 = load i64* %110, align 8 | |
%112 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 0 | |
store i8* %109, i8** %112, align 8 | |
%113 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 1 | |
store i64 %111, i64* %113, align 8 | |
%114 = bitcast { i8*, i64 }* %__adjust11 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%115 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %114) | |
to label %"normal return12" unwind label %unwind13 | |
unwind8: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" | |
%116 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract117 = extractvalue { i8*, i32 } %116, 0 | |
%.fca.1.extract119 = extractvalue { i8*, i32 } %116, 1 | |
br label %cleanup9 | |
cleanup9: ; preds = %cond.i.i57, %cleanup14, %unwind27, %unwind8 | |
%.sroa.0150.0 = phi i8* [ %.fca.0.extract139, %unwind27 ], [ %.fca.0.extract117, %unwind8 ], [ %.sroa.0150.2, %cleanup14 ], [ %.sroa.0150.2, %cond.i.i57 ] | |
%.sroa.1153.0 = phi i32 [ %.fca.1.extract141, %unwind27 ], [ %.fca.1.extract119, %unwind8 ], [ %.sroa.1153.2, %cleanup14 ], [ %.sroa.1153.2, %cond.i.i57 ] | |
%117 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i | |
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cleanup9 | |
%118 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup9 ], [ %122, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ] | |
%119 = load { i64, i64, [0 x i8] }** %118, align 8 | |
%120 = icmp eq { i64, i64, [0 x i8] }* %119, null | |
br i1 %120, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i54 | |
cond.i.i.i54: ; preds = %iter_vec_loop_body.i | |
%121 = bitcast { i64, i64, [0 x i8] }* %119 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %121) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i54, %iter_vec_loop_body.i | |
%122 = getelementptr inbounds { i64, i64, [0 x i8] }** %118, i64 1 | |
%123 = icmp ult { i64, i64, [0 x i8] }** %122, %117 | |
br i1 %123, label %iter_vec_loop_body.i, label %cleanup10 | |
cleanup10: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cond.i88, %unwind40, %cond.i.i84, %unwind33.body, %unwind29 | |
%.sroa.0150.1 = phi i8* [ %.fca.0.extract143, %unwind29 ], [ %eh.lpad-body80.fca.0.extract, %unwind33.body ], [ %eh.lpad-body80.fca.0.extract, %cond.i.i84 ], [ %.fca.0.extract147, %unwind40 ], [ %.fca.0.extract147, %cond.i88 ], [ %.sroa.0150.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ] | |
%.sroa.1153.1 = phi i32 [ %.fca.1.extract145, %unwind29 ], [ %eh.lpad-body80.fca.1.extract, %unwind33.body ], [ %eh.lpad-body80.fca.1.extract, %cond.i.i84 ], [ %.fca.1.extract149, %unwind40 ], [ %.fca.1.extract149, %cond.i88 ], [ %.sroa.1153.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ] | |
%124 = icmp eq { i64, i64, [0 x i8] }* %102, null | |
br i1 %124, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i | |
cond.i.i: ; preds = %cleanup10 | |
%125 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %125) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %cleanup10, %cond.i.i | |
%.fca.0.insert122 = insertvalue { i8*, i32 } undef, i8* %.sroa.0150.1, 0 | |
%.fca.1.insert125 = insertvalue { i8*, i32 } %.fca.0.insert122, i32 %.sroa.1153.1, 1 | |
resume { i8*, i32 } %.fca.1.insert125 | |
"normal return12": ; preds = %"normal return7" | |
store { i64, i64, [0 x i8] }* %115, { i64, i64, [0 x i8] }** %107, align 8 | |
%126 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2 | |
%127 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11123, i64 0, i64 0), i64 2) | |
to label %"normal return15" unwind label %unwind16 | |
unwind13: ; preds = %"normal return7" | |
%128 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract127 = extractvalue { i8*, i32 } %128, 0 | |
%.fca.1.extract129 = extractvalue { i8*, i32 } %128, 1 | |
br label %cleanup14 | |
cleanup14: ; preds = %cond.i.i59, %cleanup17, %unwind13 | |
%.sroa.0150.2 = phi i8* [ %.fca.0.extract127, %unwind13 ], [ %.sroa.0150.3, %cleanup17 ], [ %.sroa.0150.3, %cond.i.i59 ] | |
%.sroa.1153.2 = phi i32 [ %.fca.1.extract129, %unwind13 ], [ %.sroa.1153.3, %cleanup17 ], [ %.sroa.1153.3, %cond.i.i59 ] | |
%129 = load { i64, i64, [0 x i8] }** %.sub, align 8 | |
%130 = icmp eq { i64, i64, [0 x i8] }* %129, null | |
br i1 %130, label %cleanup9, label %cond.i.i57 | |
cond.i.i57: ; preds = %cleanup14 | |
%131 = bitcast { i64, i64, [0 x i8] }* %129 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %131) | |
br label %cleanup9 | |
"normal return15": ; preds = %"normal return12" | |
store { i64, i64, [0 x i8] }* %127, { i64, i64, [0 x i8] }** %126, align 8 | |
%132 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 2, i64 0 | |
%133 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 0 | |
%134 = load i64* %133, align 8 | |
%135 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 0 | |
store i8* %132, i8** %135, align 8 | |
%136 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 1 | |
store i64 %134, i64* %136, align 8 | |
%137 = bitcast { i8*, i64 }* %__adjust18 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%138 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %137) | |
to label %"normal return19" unwind label %unwind20 | |
unwind16: ; preds = %"normal return12" | |
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract131 = extractvalue { i8*, i32 } %139, 0 | |
%.fca.1.extract133 = extractvalue { i8*, i32 } %139, 1 | |
br label %cleanup17 | |
cleanup17: ; preds = %cond.i.i61, %unwind20, %unwind16 | |
%.sroa.0150.3 = phi i8* [ %.fca.0.extract131, %unwind16 ], [ %.fca.0.extract135, %unwind20 ], [ %.fca.0.extract135, %cond.i.i61 ] | |
%.sroa.1153.3 = phi i32 [ %.fca.1.extract133, %unwind16 ], [ %.fca.1.extract137, %unwind20 ], [ %.fca.1.extract137, %cond.i.i61 ] | |
%140 = load { i64, i64, [0 x i8] }** %107, align 8 | |
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null | |
br i1 %141, label %cleanup14, label %cond.i.i59 | |
cond.i.i59: ; preds = %cleanup17 | |
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142) | |
br label %cleanup14 | |
"normal return19": ; preds = %"normal return15" | |
%143 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 3 | |
store { i64, i64, [0 x i8] }* %138, { i64, i64, [0 x i8] }** %143, align 8 | |
%__adjust22.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust22.sroa.0.0..idx, align 8 | |
%__adjust22.sroa.1.8..idx99 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 1 | |
store i64 32, i64* %__adjust22.sroa.1.8..idx99, align 8 | |
%__adjust24.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 0 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust24.sroa.0.0..idx, align 8 | |
%__adjust24.sroa.1.8..idx98 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 1 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust24.sroa.1.8..idx98, align 8 | |
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg23, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25) | |
to label %"normal return26" unwind label %unwind27 | |
unwind20: ; preds = %"normal return15" | |
%144 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract135 = extractvalue { i8*, i32 } %144, 0 | |
%.fca.1.extract137 = extractvalue { i8*, i32 } %144, 1 | |
%145 = load { i64, i64, [0 x i8] }** %126, align 8 | |
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null | |
br i1 %146, label %cleanup17, label %cond.i.i61 | |
cond.i.i61: ; preds = %unwind20 | |
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147) | |
br label %cleanup17 | |
"normal return26": ; preds = %"normal return19" | |
%148 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0 | |
br label %iter_vec_loop_body.i63 | |
iter_vec_loop_body.i63: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65", %"normal return26" | |
%149 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return26" ], [ %153, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65" ] | |
%150 = load { i64, i64, [0 x i8] }** %149, align 8 | |
%151 = icmp eq { i64, i64, [0 x i8] }* %150, null | |
br i1 %151, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65", label %cond.i.i.i64 | |
cond.i.i.i64: ; preds = %iter_vec_loop_body.i63 | |
%152 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %152) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65": ; preds = %cond.i.i.i64, %iter_vec_loop_body.i63 | |
%153 = getelementptr inbounds { i64, i64, [0 x i8] }** %149, i64 1 | |
%154 = icmp ult { i64, i64, [0 x i8] }** %153, %148 | |
br i1 %154, label %iter_vec_loop_body.i63, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66" | |
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65" | |
%155 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11124, i64 0, i64 0), i64 2) | |
to label %"normal return28" unwind label %unwind29 | |
unwind27: ; preds = %"normal return19" | |
%156 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract139 = extractvalue { i8*, i32 } %156, 0 | |
%.fca.1.extract141 = extractvalue { i8*, i32 } %156, 1 | |
br label %cleanup9 | |
"normal return28": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66" | |
%157 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 2, i64 0 | |
%158 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 0 | |
%159 = load i64* %158, align 8 | |
%160 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 0 | |
store i8* %157, i8** %160, align 8 | |
%161 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 1 | |
store i64 %159, i64* %161, align 8 | |
%162 = bitcast { i8*, i64 }* %__adjust30 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%163 = load i64* %133, align 8 | |
%164 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %164) | |
%165 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %162) | |
to label %.noexc78 unwind label %unwind33 | |
.noexc78: ; preds = %"normal return28" | |
store { i64, i64, [0 x i8] }* %165, { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%166 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%167 = getelementptr inbounds { i64, i64, [0 x i8] }* %165, i64 0, i32 0 | |
%168 = load i64* %167, align 8 | |
%169 = add i64 %168, -1 | |
%170 = add i64 %163, -1 | |
%171 = add i64 %169, %170 | |
%172 = lshr i64 %171, 1 | |
%173 = or i64 %172, %171 | |
%174 = lshr i64 %173, 2 | |
%175 = or i64 %174, %173 | |
%176 = lshr i64 %175, 4 | |
%177 = or i64 %176, %175 | |
%178 = lshr i64 %177, 8 | |
%179 = or i64 %178, %177 | |
%180 = lshr i64 %179, 16 | |
%181 = or i64 %180, %179 | |
%182 = lshr i64 %181, 32 | |
%183 = or i64 %182, %181 | |
%184 = add i64 %183, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %166, i64 %184) | |
to label %"normal return32" unwind label %unwind.i75 | |
unwind.i75: ; preds = %.noexc78 | |
%185 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%186 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%187 = icmp eq { i64, i64, [0 x i8] }* %186, null | |
br i1 %187, label %unwind33.body, label %cond.i.i2.i76 | |
cond.i.i2.i76: ; preds = %unwind.i75 | |
%188 = bitcast { i64, i64, [0 x i8] }* %186 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %188) | |
to label %unwind33.body unwind label %unwind33 | |
unwind29: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66" | |
%189 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract143 = extractvalue { i8*, i32 } %189, 0 | |
%.fca.1.extract145 = extractvalue { i8*, i32 } %189, 1 | |
br label %cleanup10 | |
"normal return32": ; preds = %.noexc78 | |
%190 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%191 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 2, i64 0 | |
%192 = ptrtoint i8* %191 to i64 | |
%193 = add i64 %192, %169 | |
%194 = inttoptr i64 %193 to i8* | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %194, i8* %132, i64 %170, i32 1, i1 false) | |
%195 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
%196 = add i64 %168, %170 | |
%197 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 0, i32 0 | |
store i64 %196, i64* %197, align 8 | |
%198 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 1 | |
%199 = ptrtoint { i64, i64, [0 x i8] }* %198 to i64 | |
%200 = add i64 %199, %171 | |
%201 = inttoptr i64 %200 to i8* | |
store i8 0, i8* %201, align 1 | |
%202 = load { i64, i64, [0 x i8] }** %ret.i69, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %164) | |
%203 = icmp eq { i64, i64, [0 x i8] }* %155, null | |
br i1 %203, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83", label %cond.i.i82 | |
cond.i.i82: ; preds = %"normal return32" | |
%204 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %204) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83": ; preds = %"normal return32", %cond.i.i82 | |
%205 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 2, i64 0 | |
%206 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 0 | |
%207 = load i64* %206, align 8 | |
%__adjust35.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 0 | |
store i8* %205, i8** %__adjust35.sroa.0.0..idx, align 8 | |
%__adjust35.sroa.1.8..idx94 = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 1 | |
store i64 %207, i64* %__adjust35.sroa.1.8..idx94, align 8 | |
%208 = bitcast { i8*, i64 }* %__arg36 to %str_slice* | |
%209 = bitcast {}* %__trans_ret_slot.i to { i64, i64, [0 x i8] }** | |
%__adjust37.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %209, { i64, i64, [0 x i8] }*** %__adjust37.sroa.0.0..idx, align 8 | |
%__adjust37.sroa.1.8..idx93 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 1 | |
store i64 0, i64* %__adjust37.sroa.1.8..idx93, align 8 | |
%210 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %208, { { i64, i64, [0 x i8] }**, i64 }* %__arg38) | |
to label %"normal return39" unwind label %unwind40 | |
unwind33: ; preds = %cond.i.i2.i76, %"normal return28" | |
%211 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind33.body | |
unwind33.body: ; preds = %unwind.i75, %cond.i.i2.i76, %unwind33 | |
%eh.lpad-body80 = phi { i8*, i32 } [ %211, %unwind33 ], [ %185, %cond.i.i2.i76 ], [ %185, %unwind.i75 ] | |
call void @upcall_reset_stack_limit() | |
%eh.lpad-body80.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 0 | |
%eh.lpad-body80.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 1 | |
%212 = icmp eq { i64, i64, [0 x i8] }* %155, null | |
br i1 %212, label %cleanup10, label %cond.i.i84 | |
cond.i.i84: ; preds = %unwind33.body | |
%213 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %213) | |
br label %cleanup10 | |
"normal return39": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83" | |
%214 = icmp eq { i64, i64, [0 x i8] }* %202, null | |
br i1 %214, label %"normal return42", label %cond.i86 | |
cond.i86: ; preds = %"normal return39" | |
%215 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %215) | |
br label %"normal return42" | |
unwind40: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83" | |
%216 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract147 = extractvalue { i8*, i32 } %216, 0 | |
%.fca.1.extract149 = extractvalue { i8*, i32 } %216, 1 | |
%217 = icmp eq { i64, i64, [0 x i8] }* %202, null | |
br i1 %217, label %cleanup10, label %cond.i88 | |
cond.i88: ; preds = %unwind40 | |
%218 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %218) | |
br label %cleanup10 | |
"normal return42": ; preds = %cond.i86, %"normal return39" | |
%219 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 0, i64* %219, align 8 | |
%220 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1 | |
store i64 %210, i64* %220, align 8 | |
%221 = icmp eq { i64, i64, [0 x i8] }* %102, null | |
br i1 %221, label %join, label %cond.i.i90 | |
cond.i.i90: ; preds = %"normal return42" | |
%222 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %222) | |
br label %join | |
join: ; preds = %cond.i.i90, %"normal return42", %compare_vec_len_next | |
ret void | |
} | |
declare void @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
define void @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%.sroa.1.sroa.0.i = alloca [16 x i8], align 8 | |
%command.sroa.0.i = alloca %str_slice, align 8 | |
%command.sroa.2.i = alloca [40 x i8], align 8 | |
%prog.i = alloca %str_slice, align 8 | |
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg10.i = alloca %str_slice, align 8 | |
%__arg14.i = alloca %str_slice, align 8 | |
%__arg16.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg17.i = alloca %str_slice, align 8 | |
%__arg19.i = alloca %str_slice, align 8 | |
%__arg22.i = alloca { i8*, i64 }, align 8 | |
%__fmtbuf32.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg34.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg35.i = alloca %str_slice, align 8 | |
%__arg39.i = alloca %str_slice, align 8 | |
%__arg42.i = alloca { i8*, i64 }, align 8 | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%3 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%4 = load i64* %3, align 8 | |
%.off = add i64 %4, -8 | |
%5 = icmp ult i64 %.off, 8 | |
br i1 %5, label %match_case, label %compare_vec_len_next | |
match_case: ; preds = %"function top level" | |
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%7 = load { i64, i64, [0 x i8] }*** %6, align 8 | |
%8 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %8) | |
%9 = load { i64, i64, [0 x i8] }** %7, align 8 | |
%10 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 2, i64 0 | |
%11 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 0 | |
%12 = load i64* %11, align 8 | |
%13 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %10, i8** %13, align 8 | |
%14 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %12, i64* %14, align 8 | |
%15 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%16 = call fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %15) | |
call void @llvm.lifetime.end(i64 16, i8* %8) | |
%.sroa.1.sroa.0.i.0.idx = getelementptr inbounds [16 x i8]* %.sroa.1.sroa.0.i, i64 0, i64 0 | |
call void @llvm.lifetime.start(i64 16, i8* %.sroa.1.sroa.0.i.0.idx) | |
%command.sroa.0.i.0.cast = bitcast %str_slice* %command.sroa.0.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %command.sroa.0.i.0.cast) | |
%command.sroa.2.i.0.idx30 = getelementptr inbounds [40 x i8]* %command.sroa.2.i, i64 0, i64 0 | |
call void @llvm.lifetime.start(i64 40, i8* %command.sroa.2.i.0.idx30) | |
%prog.i.0.cast = bitcast %str_slice* %prog.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %prog.i.0.cast) | |
%17 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %17) | |
%18 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8* | |
call void @llvm.lifetime.start(i64 48, i8* %18) | |
%19 = bitcast %str_slice* %__arg10.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %19) | |
%20 = bitcast %str_slice* %__arg14.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %20) | |
%21 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i to i8* | |
call void @llvm.lifetime.start(i64 48, i8* %21) | |
%22 = bitcast %str_slice* %__arg17.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %22) | |
%23 = bitcast %str_slice* %__arg19.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %23) | |
%24 = bitcast { i8*, i64 }* %__arg22.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %24) | |
%25 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf32.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %25) | |
%26 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i to i8* | |
call void @llvm.lifetime.start(i64 48, i8* %26) | |
%27 = bitcast %str_slice* %__arg35.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %27) | |
%28 = bitcast %str_slice* %__arg39.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %28) | |
%29 = bitcast { i8*, i64 }* %__arg42.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %29) | |
%30 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 0 | |
%31 = load i64* %30, align 8 | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" | |
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i": ; preds = %match_case | |
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 2, i64 0 | |
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%34 = add i64 %31, -1 | |
br label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i": ; preds = %"`loop`.i.i.backedge.i.i", %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" | |
%.sroa.08.091.i.i = phi i64 [ %35, %"`loop`.i.i.backedge.i.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" ] | |
%35 = add i64 %.sroa.08.091.i.i, 88 | |
%36 = inttoptr i64 %.sroa.08.091.i.i to %struct.Command* | |
%__arg1.i.sroa.1.8..idx43.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 1 | |
%__arg1.i.sroa.1.8.copyload.i.i = load i64* %__arg1.i.sroa.1.8..idx43.i.i, align 8 | |
%37 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i.i, %31 | |
br i1 %37, label %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i, label %"`loop`.i.i.backedge.i.i" | |
"`loop`.i.i.backedge.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
%38 = inttoptr i64 %35 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%39 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %38, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%40 = icmp eq i64 %35, 0 | |
%or.cond.i.i = or i1 %39, %40 | |
br i1 %or.cond.i.i, label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i" | |
%__arg1.i.sroa.0.0..idx.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 0 | |
%__arg1.i.sroa.0.0.copyload.i.i = load i8** %__arg1.i.sroa.0.0..idx.i.i, align 8 | |
%41 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i.i to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%42 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, i64 %34) | |
to label %.noexc.i unwind label %unwind.loopexit.i | |
.noexc.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i | |
%43 = icmp eq i32 %42, 0 | |
br i1 %43, label %match_case.i, label %"`loop`.i.i.backedge.i.i" | |
unwind.loopexit.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i | |
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.i | |
unwind.nonloopexit.i: ; preds = %match_case31.i, %match_else30.i, %match_case7.i | |
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.i | |
unwind.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i | |
%lpad.phi.i = phi { i8*, i32 } [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ] | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 0 | |
%.fca.1.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 1 | |
br label %cleanup.i | |
cleanup.i: ; preds = %cond.i18.i, %unwind44.i, %cond.i.i12.i, %unwind37.i, %cond.i8.i, %unwind24.i, %cond.i.i4.i, %unwind12.i, %unwind.i | |
%.sroa.085.0.i = phi i8* [ %.fca.0.extract.i, %unwind.i ], [ %.fca.0.extract70.i, %unwind12.i ], [ %.fca.0.extract70.i, %cond.i.i4.i ], [ %.fca.0.extract74.i, %unwind24.i ], [ %.fca.0.extract74.i, %cond.i8.i ], [ %.fca.0.extract78.i, %unwind37.i ], [ %.fca.0.extract78.i, %cond.i.i12.i ], [ %.fca.0.extract82.i, %unwind44.i ], [ %.fca.0.extract82.i, %cond.i18.i ] | |
%.sroa.186.0.i = phi i32 [ %.fca.1.extract.i, %unwind.i ], [ %.fca.1.extract72.i, %unwind12.i ], [ %.fca.1.extract72.i, %cond.i.i4.i ], [ %.fca.1.extract76.i, %unwind24.i ], [ %.fca.1.extract76.i, %cond.i8.i ], [ %.fca.1.extract80.i, %unwind37.i ], [ %.fca.1.extract80.i, %cond.i.i12.i ], [ %.fca.1.extract84.i, %unwind44.i ], [ %.fca.1.extract84.i, %cond.i18.i ] | |
%44 = icmp eq { i64, i64, [0 x i8] }* %16, null | |
br i1 %44, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i | |
cond.i.i.i: ; preds = %cleanup.i | |
%45 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %45) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i, %cleanup.i | |
%.fca.0.insert.i = insertvalue { i8*, i32 } undef, i8* %.sroa.085.0.i, 0 | |
%.fca.1.insert.i = insertvalue { i8*, i32 } %.fca.0.insert.i, i32 %.sroa.186.0.i, 1 | |
resume { i8*, i32 } %.fca.1.insert.i | |
match_else.i: ; preds = %"`loop`.i.i.backedge.i.i", %match_case | |
%46 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %46, align 8 | |
br label %join49.i | |
match_case.i: ; preds = %.noexc.i | |
%47 = inttoptr i64 %.sroa.08.091.i.i to i8* | |
%__arg.i.i.i.sroa.1.16..idx = getelementptr inbounds i8* %47, i64 16 | |
%__arg.i.i.i.sroa.1.16..cast = bitcast i8* %__arg.i.i.i.sroa.1.16..idx to i64* | |
%__arg.i.i.i.sroa.1.16.copyload = load i64* %__arg.i.i.i.sroa.1.16..cast, align 8 | |
%__arg.i.i.i.sroa.2.24..raw_idx = getelementptr inbounds i8* %47, i64 24 | |
%__arg.i.i.i.sroa.3.64..idx = getelementptr inbounds i8* %47, i64 64 | |
%__arg.i.i.i.sroa.3.64..cast = bitcast i8* %__arg.i.i.i.sroa.3.64..idx to i64* | |
%__arg.i.i.i.sroa.3.64.copyload = load i64* %__arg.i.i.i.sroa.3.64..cast, align 8 | |
%__arg.i.i.i.sroa.4.72..idx = getelementptr inbounds i8* %47, i64 72 | |
%__arg.i.i.i.sroa.4.72..cast = bitcast i8* %__arg.i.i.i.sroa.4.72..idx to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
%__arg.i.i.i.sroa.4.72.copyload = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__arg.i.i.i.sroa.4.72..cast, align 8 | |
%__arg.i.i.i.sroa.5.80..idx = getelementptr inbounds i8* %47, i64 80 | |
%__arg.i.i.i.sroa.5.80..cast = bitcast i8* %__arg.i.i.i.sroa.5.80..idx to i64* | |
%__arg.i.i.i.sroa.5.80.copyload = load i64* %__arg.i.i.i.sroa.5.80..cast, align 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %.sroa.1.sroa.0.i.0.idx, i8* %47, i64 16, i32 8, i1 false) | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %command.sroa.2.i.0.idx30, i8* %__arg.i.i.i.sroa.2.24..raw_idx, i64 40, i32 8, i1 false) | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %command.sroa.0.i.0.cast, i8* %.sroa.1.sroa.0.i.0.idx, i64 16, i32 8, i1 false) | |
%cond1.i = icmp eq i64 %__arg.i.i.i.sroa.1.16.copyload, 1 | |
br i1 %cond1.i, label %match_case7.i, label %join.i | |
match_case7.i: ; preds = %match_case.i | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %prog.i.0.cast, i8* %command.sroa.2.i.0.idx30, i64 16, i32 8, i1 false) | |
%48 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11091, i64 0, i64 0), i64 4) | |
to label %"normal return8.i" unwind label %unwind.nonloopexit.i | |
"normal return8.i": ; preds = %match_case7.i | |
store { i64, i64, [0 x i8] }* %48, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%.sroa.054.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0 | |
store i32 0, i32* %.sroa.054.0..idx.i, align 8 | |
%.sroa.256.8..idx57.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.256.8..idx57.i, align 8 | |
%.sroa.460.24..idx61.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.460.24..idx61.i, align 8 | |
%.sroa.664.40..idx65.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.664.40..idx65.i, align 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %19, i8* %command.sroa.0.i.0.cast, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return11.i" unwind label %unwind12.i | |
"normal return11.i": ; preds = %"normal return8.i" | |
%.sroa.051.0..idx.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([30 x i8]* @str11092, i64 0, i64 0), i8** %.sroa.051.0..idx.i, align 8 | |
%.sroa.152.8..idx53.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 1 | |
store i64 30, i64* %.sroa.152.8..idx53.i, align 8 | |
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg14.i) | |
to label %"normal return15.i" unwind label %unwind12.i | |
unwind12.i: ; preds = %"normal return18.i", %"normal return15.i", %"normal return11.i", %"normal return8.i" | |
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract70.i = extractvalue { i8*, i32 } %49, 0 | |
%.fca.1.extract72.i = extractvalue { i8*, i32 } %49, 1 | |
%50 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%51 = icmp eq { i64, i64, [0 x i8] }* %50, null | |
br i1 %51, label %cleanup.i, label %cond.i.i4.i | |
cond.i.i4.i: ; preds = %unwind12.i | |
%52 = bitcast { i64, i64, [0 x i8] }* %50 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %52) | |
br label %cleanup.i | |
"normal return15.i": ; preds = %"normal return11.i" | |
%.sroa.039.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 0 | |
store i32 0, i32* %.sroa.039.0..idx.i, align 8 | |
%.sroa.241.8..idx42.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.241.8..idx42.i, align 8 | |
%.sroa.445.24..idx46.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.445.24..idx46.i, align 8 | |
%.sroa.649.40..idx50.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.649.40..idx50.i, align 8 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %prog.i.0.cast, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, %str_slice* %__arg17.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return18.i" unwind label %unwind12.i | |
"normal return18.i": ; preds = %"normal return15.i" | |
%.sroa.036.0..idx.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([10 x i8]* @str11093, i64 0, i64 0), i8** %.sroa.036.0..idx.i, align 8 | |
%.sroa.137.8..idx38.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 1 | |
store i64 10, i64* %.sroa.137.8..idx38.i, align 8 | |
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg19.i) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i" unwind label %unwind12.i | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i": ; preds = %"normal return18.i" | |
%53 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%54 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 2, i64 0 | |
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 0 | |
%56 = load i64* %55, align 8 | |
%__adjust21.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 0 | |
store i8* %54, i8** %__adjust21.sroa.0.0..idx.i, align 8 | |
%__adjust21.sroa.1.8..idx35.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 1 | |
store i64 %56, i64* %__adjust21.sroa.1.8..idx35.i, align 8 | |
%57 = bitcast { i8*, i64 }* %__arg22.i to %str_slice* | |
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %57) | |
to label %"normal return23.i" unwind label %unwind24.i | |
"normal return23.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i" | |
%58 = icmp eq { i64, i64, [0 x i8] }* %53, null | |
br i1 %58, label %join.i, label %cond.i.i | |
cond.i.i: ; preds = %"normal return23.i" | |
%59 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %59) | |
br label %join.i | |
unwind24.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i" | |
%60 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract74.i = extractvalue { i8*, i32 } %60, 0 | |
%.fca.1.extract76.i = extractvalue { i8*, i32 } %60, 1 | |
%61 = icmp eq { i64, i64, [0 x i8] }* %53, null | |
br i1 %61, label %cleanup.i, label %cond.i8.i | |
cond.i8.i: ; preds = %unwind24.i | |
%62 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %62) | |
br label %cleanup.i | |
join.i: ; preds = %cond.i.i, %"normal return23.i", %match_case.i | |
%cond2.i = icmp eq i64 %__arg.i.i.i.sroa.3.64.copyload, 0 | |
br i1 %cond2.i, label %match_case31.i, label %match_else30.i | |
match_else30.i: ; preds = %join.i | |
invoke void %__arg.i.i.i.sroa.4.72.copyload({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
to label %join47.i unwind label %unwind.nonloopexit.i | |
match_case31.i: ; preds = %join.i | |
%63 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([1 x i8]* @str11094, i64 0, i64 0), i64 0) | |
to label %"normal return33.i" unwind label %unwind.nonloopexit.i | |
"normal return33.i": ; preds = %match_case31.i | |
store { i64, i64, [0 x i8] }* %63, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
%.sroa.025.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 0 | |
store i32 0, i32* %.sroa.025.0..idx.i, align 8 | |
%.sroa.2.8..idx27.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.2.8..idx27.i, align 8 | |
%.sroa.4.24..idx29.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.4.24..idx29.i, align 8 | |
%.sroa.6.40..idx31.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.6.40..idx31.i, align 8 | |
%64 = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 0 | |
%.sroa.1.sroa.4.72.copyload.c.i = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %__arg.i.i.i.sroa.4.72.copyload to i8* | |
store i8* %.sroa.1.sroa.4.72.copyload.c.i, i8** %64, align 8 | |
%msg.sroa.1.8..idx96.i = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 1 | |
store i64 %__arg.i.i.i.sroa.5.80.copyload, i64* %msg.sroa.1.8..idx96.i, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, %str_slice* %__arg35.i, { i64, i64, [0 x i8] }** %__fmtbuf32.i) | |
to label %"normal return36.i" unwind label %unwind37.i | |
"normal return36.i": ; preds = %"normal return33.i" | |
%.sroa.0.0..idx.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([2 x i8]* @str11095, i64 0, i64 0), i8** %.sroa.0.0..idx.i, align 8 | |
%.sroa.1.8..idx24.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 1 | |
store i64 2, i64* %.sroa.1.8..idx24.i, align 8 | |
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf32.i, %str_slice* %__arg39.i) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i" unwind label %unwind37.i | |
unwind37.i: ; preds = %"normal return36.i", %"normal return33.i" | |
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract78.i = extractvalue { i8*, i32 } %65, 0 | |
%.fca.1.extract80.i = extractvalue { i8*, i32 } %65, 1 | |
%66 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
%67 = icmp eq { i64, i64, [0 x i8] }* %66, null | |
br i1 %67, label %cleanup.i, label %cond.i.i12.i | |
cond.i.i12.i: ; preds = %unwind37.i | |
%68 = bitcast { i64, i64, [0 x i8] }* %66 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %68) | |
br label %cleanup.i | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i": ; preds = %"normal return36.i" | |
%69 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8 | |
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 2, i64 0 | |
%71 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0 | |
%72 = load i64* %71, align 8 | |
%__adjust41.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 0 | |
store i8* %70, i8** %__adjust41.sroa.0.0..idx.i, align 8 | |
%__adjust41.sroa.1.8..idx23.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 1 | |
store i64 %72, i64* %__adjust41.sroa.1.8..idx23.i, align 8 | |
%73 = bitcast { i8*, i64 }* %__arg42.i to %str_slice* | |
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %73) | |
to label %"normal return43.i" unwind label %unwind44.i | |
"normal return43.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i" | |
%74 = icmp eq { i64, i64, [0 x i8] }* %69, null | |
br i1 %74, label %join47.i, label %cond.i16.i | |
cond.i16.i: ; preds = %"normal return43.i" | |
%75 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %75) | |
br label %join47.i | |
unwind44.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i" | |
%76 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract82.i = extractvalue { i8*, i32 } %76, 0 | |
%.fca.1.extract84.i = extractvalue { i8*, i32 } %76, 1 | |
%77 = icmp eq { i64, i64, [0 x i8] }* %69, null | |
br i1 %77, label %cleanup.i, label %cond.i18.i | |
cond.i18.i: ; preds = %unwind44.i | |
%78 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %78) | |
br label %cleanup.i | |
join47.i: ; preds = %cond.i16.i, %"normal return43.i", %match_else30.i | |
%79 = bitcast %enum.ValidUsage* %0 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %79, i8 0, i64 16, i32 8, i1 false) | |
br label %join49.i | |
join49.i: ; preds = %join47.i, %match_else.i | |
%80 = icmp eq { i64, i64, [0 x i8] }* %16, null | |
br i1 %80, label %join, label %cond.i.i20.i | |
cond.i.i20.i: ; preds = %join49.i | |
%81 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %81) | |
br label %join | |
compare_vec_len_next: ; preds = %"function top level" | |
%82 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0 | |
store i64 1, i64* %82, align 8 | |
br label %join | |
join: ; preds = %cond.i.i20.i, %join49.i, %compare_vec_len_next | |
ret void | |
} | |
declare void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
define internal fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%__arg3.i = alloca %str_slice, align 8 | |
%v.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg.sroa.0.0..cast.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to i8** | |
%__arg.sroa.0.0.copyload.i = load i8** %__arg.sroa.0.0..cast.i, align 8 | |
%__arg.sroa.1.8..idx.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 1 | |
%__arg.sroa.1.8..cast.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i to i64* | |
%__arg.sroa.1.8.copyload.i = load i64* %__arg.sroa.1.8..cast.i, align 8 | |
%1 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %1) | |
%2 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %2) | |
%3 = bitcast %str_slice* %__arg3.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %3) | |
%4 = bitcast { i64, i64, [0 x i8] }** %v.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %4) | |
%5 = icmp eq i64 %__arg.sroa.1.8.copyload.i, 0 | |
br i1 %5, label %then.i, label %next.i | |
then.i: ; preds = %"function top level" | |
%6 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10945, i64 0, i64 0), i64 18) | |
%7 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 2, i64 0 | |
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 0 | |
%9 = load i64* %8, align 8 | |
%10 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %7, i8** %10, align 8 | |
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %9, i64* %11, align 8 | |
%12 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%13 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %13) | |
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %12) | |
to label %.noexc110 unwind label %unwind.i | |
.noexc110: ; preds = %then.i | |
store { i64, i64, [0 x i8] }* %14, { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0 | |
%16 = load i64* %15, align 8 | |
%17 = add i64 %16, 6 | |
%18 = lshr i64 %17, 1 | |
%19 = or i64 %18, %17 | |
%20 = lshr i64 %19, 2 | |
%21 = or i64 %20, %19 | |
%22 = lshr i64 %21, 4 | |
%23 = or i64 %22, %21 | |
%24 = lshr i64 %23, 8 | |
%25 = or i64 %24, %23 | |
%26 = lshr i64 %25, 16 | |
%27 = or i64 %26, %25 | |
%28 = lshr i64 %27, 32 | |
%29 = or i64 %28, %27 | |
%30 = add i64 %29, 1 | |
%31 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %31, i64 %30) | |
to label %"normal return.i" unwind label %unwind.i7 | |
unwind.i7: ; preds = %.noexc110 | |
%32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%33 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%34 = icmp eq { i64, i64, [0 x i8] }* %33, null | |
br i1 %34, label %unwind.i.body, label %cond.i12 | |
cond.i12: ; preds = %unwind.i7 | |
%35 = bitcast { i64, i64, [0 x i8] }* %33 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %35) | |
to label %unwind.i.body unwind label %unwind.i | |
"normal return.i": ; preds = %.noexc110 | |
%36 = add i64 %16, -1 | |
%37 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%38 = getelementptr inbounds { i64, i64, [0 x i8] }* %37, i64 0, i32 2, i64 0 | |
%39 = ptrtoint i8* %38 to i64 | |
%40 = add i64 %36, %39 | |
%41 = inttoptr i64 %40 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* getelementptr inbounds ([8 x i8]* @str10946, i64 0, i64 0), i64 7, i32 1, i1 false) | |
%42 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
%43 = add i64 %16, 7 | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 0, i32 0 | |
store i64 %43, i64* %44, align 8 | |
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 1 | |
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64 | |
%47 = add i64 %17, %46 | |
%48 = inttoptr i64 %47 to i8* | |
store i8 0, i8* %48, align 1 | |
%49 = load { i64, i64, [0 x i8] }** %ret.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %13) | |
%50 = icmp eq { i64, i64, [0 x i8] }* %6, null | |
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18", label %cond.i17 | |
cond.i17: ; preds = %"normal return.i" | |
%51 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18": ; preds = %"normal return.i", %cond.i17 | |
%.sroa.0186.0..idx = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([53 x i8]* @str10947, i64 0, i64 0), i8** %.sroa.0186.0..idx, align 8 | |
%.sroa.1188.8..idx189 = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1 | |
store i64 53, i64* %.sroa.1188.8..idx189, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 1581) | |
unreachable | |
unwind.i: ; preds = %cond.i12, %then.i | |
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.i.body | |
unwind.i.body: ; preds = %unwind.i7, %cond.i12, %unwind.i | |
%eh.lpad-body = phi { i8*, i32 } [ %52, %unwind.i ], [ %32, %cond.i12 ], [ %32, %unwind.i7 ] | |
call void @upcall_reset_stack_limit() | |
%53 = icmp eq { i64, i64, [0 x i8] }* %6, null | |
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit21", label %cond.i20 | |
cond.i20: ; preds = %unwind.i.body | |
%54 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit21" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit21": ; preds = %unwind.i.body, %cond.i20 | |
resume { i8*, i32 } %eh.lpad-body | |
next.i: ; preds = %"function top level" | |
%55 = add i64 %__arg.sroa.1.8.copyload.i, 16 | |
%56 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %55) | |
%57 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %56, null | |
br i1 %57, label %then.i24, label %.noexc40 | |
then.i24: ; preds = %next.i | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %.noexc40 | |
unwind7.i.body: ; preds = %"while loop cond.i170.preheader" | |
%58 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%59 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%60 = icmp eq { i64, i64, [0 x i8] }* %59, null | |
br i1 %60, label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10965E.exit37", label %cond.i36 | |
cond.i36: ; preds = %unwind7.i.body | |
%61 = bitcast { i64, i64, [0 x i8] }* %59 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %61) | |
br label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10965E.exit37" | |
"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10965E.exit37": ; preds = %unwind7.i.body, %cond.i36 | |
resume { i8*, i32 } %58 | |
.noexc40: ; preds = %then.i24, %next.i | |
%62 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%63 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %62, i64 0, i32 1 | |
store i64 %__arg.sroa.1.8.copyload.i, i64* %63, align 8 | |
%64 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to i64* | |
store i64 0, i64* %64, align 8 | |
%.c.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to { i64, i64, [0 x i8] }* | |
store { i64, i64, [0 x i8] }* %.c.i, { i64, i64, [0 x i8] }** %v.i, align 8 | |
%65 = getelementptr inbounds { i64, i64, [0 x i8] }* %.c.i, i64 0, i32 2, i64 0 | |
%66 = add i64 %__arg.sroa.1.8.copyload.i, -1 | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %65, i8* %__arg.sroa.0.0.copyload.i, i64 %66, i32 1, i1 false) | |
%67 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%68 = getelementptr inbounds { i64, i64, [0 x i8] }* %67, i64 0, i32 0 | |
store i64 %66, i64* %68, align 8 | |
%69 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0 | |
%71 = load i64* %70, align 8 | |
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 1 | |
%73 = load i64* %72, align 8 | |
%74 = icmp ugt i64 %73, %71 | |
br i1 %74, label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit, label %"while loop cond.i170.preheader" | |
"while loop cond.i170.preheader": ; preds = %.noexc40 | |
%75 = bitcast { i64, i64, [0 x i8] }** %v.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%76 = lshr i64 %71, 1 | |
%77 = or i64 %76, %71 | |
%78 = lshr i64 %77, 2 | |
%79 = or i64 %78, %77 | |
%80 = lshr i64 %79, 4 | |
%81 = or i64 %80, %79 | |
%82 = lshr i64 %81, 8 | |
%83 = or i64 %82, %81 | |
%84 = lshr i64 %83, 16 | |
%85 = or i64 %84, %83 | |
%86 = lshr i64 %85, 32 | |
%87 = or i64 %86, %85 | |
%88 = add i64 %87, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %75, i64 %88) | |
to label %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge" unwind label %unwind7.i.body | |
"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge": ; preds = %"while loop cond.i170.preheader" | |
%.pre = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%.phi.trans.insert = getelementptr inbounds { i64, i64, [0 x i8] }* %.pre, i64 0, i32 0 | |
%.pre390 = load i64* %.phi.trans.insert, align 8 | |
br label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit | |
_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit: ; preds = %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge", %.noexc40 | |
%89 = phi i64 [ %.pre390, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge" ], [ %71, %.noexc40 ] | |
%90 = phi { i64, i64, [0 x i8] }* [ %.pre, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge" ], [ %69, %.noexc40 ] | |
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 0 | |
%92 = add i64 %89, 1 | |
store i64 %92, i64* %91, align 8 | |
%93 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
%94 = getelementptr inbounds { i64, i64, [0 x i8] }* %93, i64 1 | |
%95 = ptrtoint { i64, i64, [0 x i8] }* %94 to i64 | |
%96 = add i64 %95, %89 | |
%97 = inttoptr i64 %96 to i8* | |
store i8 0, i8* %97, align 1 | |
%98 = load { i64, i64, [0 x i8] }** %v.i, align 8 | |
call void @llvm.lifetime.end(i64 0, i8* %1) | |
call void @llvm.lifetime.end(i64 16, i8* %2) | |
call void @llvm.lifetime.end(i64 16, i8* %3) | |
call void @llvm.lifetime.end(i64 8, i8* %4) | |
ret { i64, i64, [0 x i8] }* %98 | |
} | |
declare void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }*, %str_slice*, i64) | |
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 { | |
"function top level": | |
%__trans_ret_slot = alloca {}, align 8 | |
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg7 = alloca %str_slice, align 8 | |
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"** | |
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8 | |
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1 | |
%5 = load i64* %4, align 8 | |
%6 = icmp ult i64 %5, %1 | |
br i1 %6, label %join, label %next10 | |
join: ; preds = %"function top level" | |
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %1, i64 16) | |
%7 = extractvalue { i64, i1 } %uadd, 1 | |
br i1 %7, label %then3, label %next8 | |
then3: ; preds = %join | |
%8 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10881, i64 0, i64 0), i64 26) | |
store { i64, i64, [0 x i8] }* %8, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0 | |
store i32 0, i32* %.sroa.018.0..idx, align 8 | |
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.2.8..idx20, align 8 | |
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.4.24..idx22, align 8 | |
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.6.40..idx24, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12" unwind label %unwind | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12": ; preds = %then3 | |
%9 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0 | |
store i8* getelementptr inbounds ([53 x i8]* @str10892, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8 | |
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1 | |
store i64 53, i64* %.sroa.1.8..idx13, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %9, %str_slice* %__arg7, i64 1166) | |
unreachable | |
unwind: ; preds = %then3 | |
%10 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%11 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%12 = icmp eq { i64, i64, [0 x i8] }* %11, null | |
br i1 %12, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i | |
cond.i.i: ; preds = %unwind | |
%13 = bitcast { i64, i64, [0 x i8] }* %11 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %13) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %unwind, %cond.i.i | |
resume { i8*, i32 } %10 | |
next8: ; preds = %join | |
%14 = extractvalue { i64, i1 } %uadd, 0 | |
%15 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%16 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %15, i64 %14) | |
%17 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %16, null | |
br i1 %17, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
then.i: ; preds = %next8 | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i | |
%18 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%19 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0 | |
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to i64 | |
store i64 %.c, i64* %19, align 8 | |
%20 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %18, i64 0, i32 1 | |
store i64 %1, i64* %20, align 8 | |
br label %next10 | |
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
ret void | |
} | |
declare { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64) | |
declare void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, i64, { i64, i64, [0 x i8] }**) | |
declare void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64) | |
declare void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) | |
declare { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64, i64, i64) | |
define void @"_ZN8find_cmd17_d4675eccdab8bd1614_0$x2e8$x2dpreE"(%"enum.std::option::Option<Command>[#1]"* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #2 { | |
"function top level": | |
%__arg.i = alloca %struct.Command, align 8 | |
%__arg2.i.sroa.0.0..idx = getelementptr inbounds %str_slice* %2, i64 0, i32 0 | |
%__arg2.i.sroa.1.8..idx78 = getelementptr inbounds %str_slice* %2, i64 0, i32 1 | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52" | |
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52": ; preds = %"`loop`.i.i.backedge", %"function top level" | |
%.sroa.08.091 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"function top level" ], [ %3, %"`loop`.i.i.backedge" ] | |
%3 = add i64 %.sroa.08.091, 88 | |
%4 = inttoptr i64 %.sroa.08.091 to %struct.Command* | |
%__arg1.i.sroa.1.8..idx43 = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 1 | |
%__arg1.i.sroa.1.8.copyload = load i64* %__arg1.i.sroa.1.8..idx43, align 8 | |
%__arg2.i.sroa.1.8.copyload = load i64* %__arg2.i.sroa.1.8..idx78, align 8 | |
%5 = icmp eq i64 %__arg1.i.sroa.1.8.copyload, %__arg2.i.sroa.1.8.copyload | |
br i1 %5, label %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit, label %"`loop`.i.i.backedge" | |
"`loop`.i.i.backedge": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52", %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit | |
%6 = inttoptr i64 %3 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%7 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %6, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%8 = icmp eq i64 %3, 0 | |
%or.cond = or i1 %7, %8 | |
br i1 %or.cond, label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52" | |
_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52" | |
%__arg1.i.sroa.0.0..idx = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 0 | |
%__arg2.i.sroa.0.0.copyload = load i8** %__arg2.i.sroa.0.0..idx, align 8 | |
%__arg1.i.sroa.0.0.copyload = load i8** %__arg1.i.sroa.0.0..idx, align 8 | |
%9 = bitcast i8* %__arg1.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%10 = bitcast i8* %__arg2.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%11 = add i64 %__arg1.i.sroa.1.8.copyload, -1 | |
%12 = call i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %9, %"enum.std::libc::types::common::c95::c_void[#1]"* %10, i64 %11) | |
%13 = icmp eq i32 %12, 0 | |
br i1 %13, label %match_else.i, label %"`loop`.i.i.backedge" | |
match_else.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit | |
%14 = bitcast %struct.Command* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %14) | |
%15 = inttoptr i64 %.sroa.08.091 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %15, i64 88, i32 8, i1 false) | |
%16 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0 | |
store i64 1, i64* %16, align 8 | |
%17 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 1, i64 0 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %14, i64 88, i32 8, i1 false) #0 | |
br label %"_ZN6option14__extensions__17map_consume_1101816_40771e9153818ec14_0$x2e8$x2dpreE.exit" | |
match_case.i: ; preds = %"`loop`.i.i.backedge", %"function top level" | |
%18 = bitcast %struct.Command* %__arg.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %18) | |
%19 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0 | |
store i64 0, i64* %19, align 8 | |
br label %"_ZN6option14__extensions__17map_consume_1101816_40771e9153818ec14_0$x2e8$x2dpreE.exit" | |
"_ZN6option14__extensions__17map_consume_1101816_40771e9153818ec14_0$x2e8$x2dpreE.exit": ; preds = %match_else.i, %match_case.i | |
%20 = phi i8* [ %14, %match_else.i ], [ %18, %match_case.i ] | |
call void @llvm.lifetime.end(i64 88, i8* %20) | |
ret void | |
} | |
declare i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64) | |
declare void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
declare void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, %str_slice*, { i64, i64, [0 x i8] }**) | |
declare void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }**, %str_slice*) | |
declare void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, %str_slice*, i64) | |
declare void @"_ZN4path14__extensions__10meth_225708filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
define void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* nocapture) #2 { | |
"function top level": | |
%__adjust.i.i = alloca { i8*, i64 }, align 8 | |
%result.i = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8 | |
%osargs = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8 | |
%4 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 48) | |
%5 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %4, null | |
br i1 %5, label %then.i.i, label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
then.i.i: ; preds = %"function top level" | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit": ; preds = %"function top level", %then.i.i | |
%6 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i8* | |
%7 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i64* | |
store i64 8, i64* %7, align 8 | |
%8 = getelementptr inbounds i8* %6, i64 8 | |
%9 = bitcast i8* %8 to i64* | |
store i64 32, i64* %9, align 8 | |
%10 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%11 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %10) | |
to label %"normal return" unwind label %unwind | |
"normal return": ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
%12 = getelementptr inbounds i8* %6, i64 16 | |
%13 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* | |
%14 = bitcast i8* %12 to { i64, i64, [0 x i8] }** | |
store { i64, i64, [0 x i8] }* %11, { i64, i64, [0 x i8] }** %14, align 8 | |
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %13, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%15 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %15) | |
%s.sroa.1.8..idx.i.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1 | |
%s.sroa.1.8.copyload.i.i.i = load i64* %s.sroa.1.8..idx.i.i.i, align 1 | |
%16 = and i64 %s.sroa.1.8.copyload.i.i.i, -8 | |
%17 = add i64 %16, 16 | |
%18 = invoke %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %17) | |
to label %.noexc unwind label %unwind2.nonloopexit.nonloopexit | |
.noexc: ; preds = %"normal return" | |
%19 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %18, null | |
br i1 %19, label %then.i.i.i, label %"normal return.i" | |
then.i.i.i: ; preds = %.noexc | |
invoke void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
to label %"normal return.i" unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return.i": ; preds = %then.i.i.i, %.noexc | |
%20 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%21 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %20, i64 0, i32 1 | |
store i64 %16, i64* %21, align 8 | |
%22 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to i64* | |
store i64 0, i64* %22, align 8 | |
%.c.i.i.i.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* | |
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.c.i.i.i.i, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%23 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0 | |
%24 = load { i64, i64, [0 x i8] }*** %23, align 8 | |
%25 = load i64* %s.sroa.1.8..idx.i.i.i, align 8 | |
%26 = ptrtoint { i64, i64, [0 x i8] }** %24 to i64 | |
%27 = and i64 %25, -8 | |
%28 = add i64 %27, %26 | |
%29 = inttoptr i64 %28 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%30 = bitcast { i64, i64, [0 x i8] }** %24 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%31 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %30, %29 | |
br i1 %31, label %"normal return1", label %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" | |
"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i": ; preds = %"normal return.i" | |
%32 = bitcast { i8*, i64 }* %__adjust.i.i to i8* | |
%33 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 0 | |
%34 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 1 | |
%35 = bitcast { i8*, i64 }* %__adjust.i.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
br label %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" | |
%.sroa.015.082.i = phi i64 [ %26, %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" ], [ %37, %.noexc.i ] | |
%37 = add i64 %.sroa.015.082.i, 8 | |
%38 = icmp eq i64 %.sroa.015.082.i, 0 | |
br i1 %38, label %"normal return2.loopexit.i", label %match_case.i.i | |
match_case.i.i: ; preds = %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
call void @llvm.lifetime.start(i64 16, i8* %32) | |
%39 = inttoptr i64 %.sroa.015.082.i to { i64, i64, [0 x i8] }** | |
%40 = load { i64, i64, [0 x i8] }** %39, align 8 | |
%41 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 2, i64 0 | |
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 0 | |
%43 = load i64* %42, align 8 | |
store i8* %41, i8** %33, align 8 | |
store i64 %43, i64* %34, align 8 | |
%44 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %35) | |
to label %"normal return8.i.i" unwind label %unwind.loopexit.i | |
unwind.i.body.i: ; preds = %"normal return12.i.i" | |
%45 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%46 = icmp eq { i64, i64, [0 x i8] }* %44, null | |
br i1 %46, label %unwind.body.i, label %cond.i.i34.i | |
cond.i.i34.i: ; preds = %unwind.i.body.i | |
%47 = bitcast { i64, i64, [0 x i8] }* %44 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %47) | |
to label %unwind.body.i unwind label %unwind.nonloopexit.i | |
"normal return8.i.i": ; preds = %match_case.i.i | |
call void @llvm.lifetime.end(i64 16, i8* %32) | |
%48 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%49 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 0 | |
%50 = load i64* %49, align 8 | |
%51 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 1 | |
%52 = load i64* %51, align 8 | |
%53 = icmp ugt i64 %52, %50 | |
br i1 %53, label %.noexc.i, label %"normal return12.i.i" | |
"normal return12.i.i": ; preds = %"normal return8.i.i" | |
%54 = lshr i64 %50, 3 | |
%55 = lshr i64 %50, 4 | |
%56 = or i64 %55, %54 | |
%57 = lshr i64 %56, 2 | |
%58 = or i64 %57, %56 | |
%59 = lshr i64 %58, 4 | |
%60 = or i64 %59, %58 | |
%61 = lshr i64 %60, 8 | |
%62 = or i64 %61, %60 | |
%63 = lshr i64 %62, 16 | |
%64 = or i64 %63, %62 | |
%65 = lshr i64 %64, 32 | |
%66 = or i64 %65, %64 | |
%67 = add i64 %66, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1116116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %36, i64 %67) | |
to label %"normal return12.i..noexc_crit_edge.i" unwind label %unwind.i.body.i | |
"normal return12.i..noexc_crit_edge.i": ; preds = %"normal return12.i.i" | |
%.pre.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%.phi.trans.insert.i = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.pre.i, i64 0, i32 0 | |
%.pre84.i = load i64* %.phi.trans.insert.i, align 8 | |
br label %.noexc.i | |
.noexc.i: ; preds = %"normal return12.i..noexc_crit_edge.i", %"normal return8.i.i" | |
%68 = phi i64 [ %.pre84.i, %"normal return12.i..noexc_crit_edge.i" ], [ %50, %"normal return8.i.i" ] | |
%69 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre.i, %"normal return12.i..noexc_crit_edge.i" ], [ %48, %"normal return8.i.i" ] | |
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %69, i64 0, i32 0 | |
%71 = add i64 %68, 8 | |
store i64 %71, i64* %70, align 8 | |
%72 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%73 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %72, i64 1 | |
%74 = ptrtoint { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to i64 | |
%75 = add i64 %74, %68 | |
%76 = inttoptr i64 %75 to { i64, i64, [0 x i8] }** | |
store { i64, i64, [0 x i8] }* %44, { i64, i64, [0 x i8] }** %76, align 8 | |
%77 = inttoptr i64 %37 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%78 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %77, %29 | |
br i1 %78, label %"normal return2.loopexit.i", label %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
unwind.loopexit.i: ; preds = %match_case.i.i | |
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.body.i | |
unwind.nonloopexit.i: ; preds = %cond.i.i34.i | |
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.body.i | |
unwind.body.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i, %cond.i.i34.i, %unwind.i.body.i | |
%eh.lpad-body.i = phi { i8*, i32 } [ %45, %unwind.i.body.i ], [ %45, %cond.i.i34.i ], [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ] | |
call void @upcall_reset_stack_limit() | |
%79 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
%80 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, null | |
br i1 %80, label %unwind2.body, label %cond.i.i3.i | |
cond.i.i3.i: ; preds = %unwind.body.i | |
%81 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 0 | |
%82 = load i64* %81, align 8 | |
%83 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 2, i64 0 | |
%84 = bitcast { i64, i64, [0 x i8] }** %83 to i8* | |
%85 = getelementptr inbounds i8* %84, i64 %82 | |
%86 = bitcast i8* %85 to { i64, i64, [0 x i8] }** | |
%87 = icmp ult { i64, i64, [0 x i8] }** %83, %86 | |
br i1 %87, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i" | |
iter_vec_loop_body.i.i.i4.i: ; preds = %cond.i.i3.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i" | |
%88 = phi { i64, i64, [0 x i8] }** [ %92, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i" ], [ %83, %cond.i.i3.i ] | |
%89 = load { i64, i64, [0 x i8] }** %88, align 8 | |
%90 = icmp eq { i64, i64, [0 x i8] }* %89, null | |
br i1 %90, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i", label %cond.i.i.i.i.i5.i | |
cond.i.i.i.i.i5.i: ; preds = %iter_vec_loop_body.i.i.i4.i | |
%91 = bitcast { i64, i64, [0 x i8] }* %89 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %91) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i" unwind label %unwind2.nonloopexit.loopexit | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i": ; preds = %cond.i.i.i.i.i5.i, %iter_vec_loop_body.i.i.i4.i | |
%92 = getelementptr inbounds { i64, i64, [0 x i8] }** %88, i64 1 | |
%93 = icmp ult { i64, i64, [0 x i8] }** %92, %86 | |
br i1 %93, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i", %cond.i.i3.i | |
%94 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %94) | |
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return2.loopexit.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i" | |
%.pre85.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8 | |
br label %"normal return1" | |
unwind: ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit" | |
%95 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %4) | |
resume { i8*, i32 } %95 | |
"normal return1": ; preds = %"normal return2.loopexit.i", %"normal return.i" | |
%96 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre85.i, %"normal return2.loopexit.i" ], [ %.c.i.i.i.i, %"normal return.i" ] | |
call void @llvm.lifetime.end(i64 8, i8* %15) | |
%97 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs to { i64, %tydesc*, i8*, i8*, i8 }* | |
%98 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%99 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %98, i64 0, i32 0 | |
%100 = load i64* %99, align 8 | |
%101 = lshr i64 %100, 3 | |
%102 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 0 | |
%103 = load i64* %102, align 8 | |
%104 = lshr i64 %103, 3 | |
%105 = add i64 %104, %101 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1116116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %97, i64 %105) | |
to label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i" unwind label %cond.i.i12.i | |
cond.i.i12.i: ; preds = %"normal return1" | |
%106 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%107 = load i64* %102, align 8 | |
%108 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0 | |
%109 = bitcast { i64, i64, [0 x i8] }** %108 to i8* | |
%110 = getelementptr inbounds i8* %109, i64 %107 | |
%111 = bitcast i8* %110 to { i64, i64, [0 x i8] }** | |
%112 = icmp ult { i64, i64, [0 x i8] }** %108, %111 | |
br i1 %112, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i" | |
iter_vec_loop_body.i.i.i13.i: ; preds = %cond.i.i12.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i" | |
%113 = phi { i64, i64, [0 x i8] }** [ %117, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i" ], [ %108, %cond.i.i12.i ] | |
%114 = load { i64, i64, [0 x i8] }** %113, align 8 | |
%115 = icmp eq { i64, i64, [0 x i8] }* %114, null | |
br i1 %115, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i", label %cond.i.i.i.i.i14.i | |
cond.i.i.i.i.i14.i: ; preds = %iter_vec_loop_body.i.i.i13.i | |
%116 = bitcast { i64, i64, [0 x i8] }* %114 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %116) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i" unwind label %unwind2.loopexit | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i": ; preds = %cond.i.i.i.i.i14.i, %iter_vec_loop_body.i.i.i13.i | |
%117 = getelementptr inbounds { i64, i64, [0 x i8] }** %113, i64 1 | |
%118 = icmp ult { i64, i64, [0 x i8] }** %117, %111 | |
br i1 %118, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i", %cond.i.i12.i | |
%119 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %119) | |
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i": ; preds = %"normal return1" | |
%120 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%121 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %120, i64 0, i32 2, i64 0 | |
%122 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0 | |
%123 = ptrtoint { i64, i64, [0 x i8] }** %121 to i64 | |
%124 = shl nuw i64 %101, 3 | |
%125 = add i64 %123, %124 | |
%126 = inttoptr i64 %125 to i8* | |
%127 = bitcast { i64, i64, [0 x i8] }** %122 to i8* | |
%128 = shl nuw i64 %104, 3 | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* %126, i8* %127, i64 %128, i32 8, i1 false) #0 | |
%129 = shl i64 %105, 3 | |
%130 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%131 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %130, i64 0, i32 0 | |
store i64 %129, i64* %131, align 8 | |
store i64 0, i64* %102, align 8 | |
%132 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %132) | |
to label %"normal return4" unwind label %unwind2.nonloopexit.nonloopexit | |
unwind2.loopexit: ; preds = %cond.i.i.i.i.i14.i | |
%lpad.loopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind2.body | |
unwind2.nonloopexit.loopexit: ; preds = %cond.i.i.i.i.i5.i | |
%lpad.loopexit32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind2.body | |
unwind2.nonloopexit.nonloopexit: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i", %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i", %then.i.i.i, %"normal return", %"normal return6", %"normal return4" | |
%lpad.nonloopexit33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind2.body | |
unwind2.body: ; preds = %unwind2.loopexit, %unwind2.nonloopexit.nonloopexit, %unwind2.nonloopexit.loopexit, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i", %unwind.body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i" | |
%eh.lpad-body = phi { i8*, i32 } [ %eh.lpad-body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i" ], [ %eh.lpad-body.i, %unwind.body.i ], [ %106, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i" ], [ %lpad.loopexit, %unwind2.loopexit ], [ %lpad.loopexit32, %unwind2.nonloopexit.loopexit ], [ %lpad.nonloopexit33, %unwind2.nonloopexit.nonloopexit ] | |
call void @upcall_reset_stack_limit() | |
%133 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%134 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, null | |
br i1 %134, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit", label %cond.i.i | |
cond.i.i: ; preds = %unwind2.body | |
%135 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 0 | |
%136 = load i64* %135, align 8 | |
%137 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 2, i64 0 | |
%138 = bitcast { i64, i64, [0 x i8] }** %137 to i8* | |
%139 = getelementptr inbounds i8* %138, i64 %136 | |
%140 = bitcast i8* %139 to { i64, i64, [0 x i8] }** | |
%141 = icmp ult { i64, i64, [0 x i8] }** %137, %140 | |
br i1 %141, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i" | |
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" | |
%142 = phi { i64, i64, [0 x i8] }** [ %146, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" ], [ %137, %cond.i.i ] | |
%143 = load { i64, i64, [0 x i8] }** %142, align 8 | |
%144 = icmp eq { i64, i64, [0 x i8] }* %143, null | |
br i1 %144, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", label %cond.i.i.i.i.i | |
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i | |
%145 = bitcast { i64, i64, [0 x i8] }* %143 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %145) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i | |
%146 = getelementptr inbounds { i64, i64, [0 x i8] }** %142, i64 1 | |
%147 = icmp ult { i64, i64, [0 x i8] }** %146, %140 | |
br i1 %147, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", %cond.i.i | |
%148 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %148) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit": ; preds = %unwind2.body, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i" | |
resume { i8*, i32 } %eh.lpad-body | |
"normal return4": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i" | |
%149 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* null, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
invoke void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %149) | |
to label %"normal return6" unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return6": ; preds = %"normal return4" | |
%150 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 0 | |
%151 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %150, align 8 | |
%152 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 1 | |
%153 = load { i64, %tydesc*, i8*, i8*, i8 }** %152, align 8 | |
invoke void %151({ i64, %tydesc*, i8*, i8*, i8 }* %153) | |
to label %"normal return7" unwind label %unwind2.nonloopexit.nonloopexit | |
"normal return7": ; preds = %"normal return6" | |
%154 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8 | |
%155 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, null | |
br i1 %155, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit21", label %cond.i.i16 | |
cond.i.i16: ; preds = %"normal return7" | |
%156 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 0 | |
%157 = load i64* %156, align 8 | |
%158 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 2, i64 0 | |
%159 = bitcast { i64, i64, [0 x i8] }** %158 to i8* | |
%160 = getelementptr inbounds i8* %159, i64 %157 | |
%161 = bitcast i8* %160 to { i64, i64, [0 x i8] }** | |
%162 = icmp ult { i64, i64, [0 x i8] }** %158, %161 | |
br i1 %162, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20" | |
iter_vec_loop_body.i.i.i17: ; preds = %cond.i.i16, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19" | |
%163 = phi { i64, i64, [0 x i8] }** [ %167, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19" ], [ %158, %cond.i.i16 ] | |
%164 = load { i64, i64, [0 x i8] }** %163, align 8 | |
%165 = icmp eq { i64, i64, [0 x i8] }* %164, null | |
br i1 %165, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19", label %cond.i.i.i.i.i18 | |
cond.i.i.i.i.i18: ; preds = %iter_vec_loop_body.i.i.i17 | |
%166 = bitcast { i64, i64, [0 x i8] }* %164 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %166) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19": ; preds = %cond.i.i.i.i.i18, %iter_vec_loop_body.i.i.i17 | |
%167 = getelementptr inbounds { i64, i64, [0 x i8] }** %163, i64 1 | |
%168 = icmp ult { i64, i64, [0 x i8] }** %167, %161 | |
br i1 %168, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19", %cond.i.i16 | |
%169 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %169) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit21" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit21": ; preds = %"normal return7", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20" | |
ret void | |
} | |
declare i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, { { i64, i64, [0 x i8] }**, i64 }*) | |
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1116116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 { | |
"function top level": | |
%__trans_ret_slot = alloca {}, align 8 | |
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg7 = alloca %str_slice, align 8 | |
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"** | |
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8 | |
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1 | |
%5 = load i64* %4, align 8 | |
%6 = lshr i64 %5, 3 | |
%7 = icmp ult i64 %6, %1 | |
br i1 %7, label %next, label %next10 | |
next: ; preds = %"function top level" | |
%8 = shl i64 %1, 3 | |
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %8, i64 16) | |
%9 = extractvalue { i64, i1 } %uadd, 0 | |
%10 = and i64 %1, 2305843009213693951 | |
%11 = icmp ne i64 %10, %1 | |
%12 = zext i1 %11 to i8 | |
br i1 %11, label %join, label %rhs | |
join: ; preds = %rhs, %next | |
%13 = phi i8 [ %12, %next ], [ %16, %rhs ] | |
%14 = icmp eq i8 %13, 0 | |
br i1 %14, label %next8, label %then3 | |
rhs: ; preds = %next | |
%15 = extractvalue { i64, i1 } %uadd, 1 | |
%16 = zext i1 %15 to i8 | |
br label %join | |
then3: ; preds = %join | |
%17 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10881, i64 0, i64 0), i64 26) | |
store { i64, i64, [0 x i8] }* %17, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0 | |
store i32 0, i32* %.sroa.018.0..idx, align 8 | |
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0 | |
store i64 1, i64* %.sroa.2.8..idx20, align 8 | |
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0 | |
store i64 1, i64* %.sroa.4.24..idx22, align 8 | |
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0 | |
store i64 0, i64* %.sroa.6.40..idx24, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12" unwind label %unwind | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12": ; preds = %then3 | |
%18 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0 | |
store i8* getelementptr inbounds ([53 x i8]* @str10892, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8 | |
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1 | |
store i64 53, i64* %.sroa.1.8..idx13, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %18, %str_slice* %__arg7, i64 1166) | |
unreachable | |
unwind: ; preds = %then3 | |
%19 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%20 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8 | |
%21 = icmp eq { i64, i64, [0 x i8] }* %20, null | |
br i1 %21, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i | |
cond.i.i: ; preds = %unwind | |
%22 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %22) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %unwind, %cond.i.i | |
resume { i8*, i32 } %19 | |
next8: ; preds = %join | |
%23 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%24 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %23, i64 %9) | |
%25 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %24, null | |
br i1 %25, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
then.i: ; preds = %next8 | |
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i | |
%26 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to %"struct.std::unstable::raw::Vec<()>[#1]"* | |
%27 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0 | |
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to i64 | |
store i64 %.c, i64* %27, align 8 | |
%28 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %26, i64 0, i32 1 | |
store i64 %8, i64* %28, align 8 | |
br label %next10 | |
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit" | |
ret void | |
} | |
declare void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*) | |
define void @"_ZN10do_command17_6f2daee512704c8a14_0$x2e8$x2dpreE"(%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %struct.Command*, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 { | |
"function top level": | |
%__arg5 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg6 = alloca %str_slice, align 8 | |
%__arg8 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg10 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%4 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 0 | |
%5 = load i64* %4, align 8, !range !0 | |
%cond = icmp eq i64 %5, 0 | |
%6 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 1 | |
br i1 %cond, label %match_case, label %match_else | |
match_else: ; preds = %"function top level" | |
%7 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 2, i64 8 | |
%8 = bitcast i8* %7 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
%9 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6 to i8* | |
%__arg614 = bitcast %str_slice* %__arg6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %__arg614, i8* %9, i64 16, i32 8, i1 false) | |
%10 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %8, align 8 | |
%11 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0 | |
%12 = load { i64, i64, [0 x i8] }*** %11, align 8 | |
%13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1 | |
%14 = load i64* %13, align 8 | |
%__adjust7.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %12, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx, align 8 | |
%__adjust7.sroa.1.8..idx12 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 1 | |
store i64 %14, i64* %__adjust7.sroa.1.8..idx12, align 8 | |
%__adjust9.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 0 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %10, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx, align 8 | |
%__adjust9.sroa.1.8..idx11 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 1 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11, align 8 | |
call void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg8, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10) | |
%15 = bitcast %enum.ValidUsage* %0 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false) | |
br label %join | |
match_case: ; preds = %"function top level" | |
%16 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6, align 8 | |
%17 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0 | |
%18 = load { i64, i64, [0 x i8] }*** %17, align 8 | |
%19 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1 | |
%20 = load i64* %19, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %18, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 1 | |
store i64 %20, i64* %__adjust.sroa.1.8..idx13, align 8 | |
call void %16(%enum.ValidUsage* %0, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5) | |
br label %join | |
join: ; preds = %match_else, %match_case | |
ret void | |
} | |
define void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 { | |
"function top level": | |
%1 = alloca %str_slice, align 8 | |
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__arg1.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg2.i = alloca %str_slice, align 8 | |
%__arg6.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg7.i = alloca { i8*, i64 }, align 8 | |
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8 | |
%__arg10.i = alloca %str_slice, align 8 | |
%__arg13.i = alloca { i8*, i64 }, align 8 | |
%__arg = alloca %str_slice, align 8 | |
%__arg2 = alloca %str_slice, align 8 | |
%.sroa.010.0..idx = getelementptr inbounds %str_slice* %__arg, i64 0, i32 0 | |
store i8* getelementptr inbounds ([177 x i8]* @str11231, i64 0, i64 0), i8** %.sroa.010.0..idx, align 8 | |
%.sroa.111.8..idx12 = getelementptr inbounds %str_slice* %__arg, i64 0, i32 1 | |
store i64 177, i64* %.sroa.111.8..idx12, align 8 | |
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg) | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"_ZN8iterator14__extensions__13advance_1123215_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i.lr.ph | |
match_case.i.lr.ph: ; preds = %"function top level" | |
%2 = bitcast %str_slice* %1 to i8* | |
%3 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8* | |
%4 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i to i8* | |
%5 = bitcast %str_slice* %__arg2.i to i8* | |
%6 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i to i8* | |
%7 = bitcast { i8*, i64 }* %__arg7.i to i8* | |
%8 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8* | |
%9 = bitcast %str_slice* %__arg10.i to i8* | |
%10 = bitcast { i8*, i64 }* %__arg13.i to i8* | |
%11 = getelementptr inbounds %str_slice* %1, i64 0, i32 0 | |
%12 = getelementptr inbounds %str_slice* %1, i64 0, i32 1 | |
%13 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%.sroa.063.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 0 | |
%.sroa.267.8..idx68 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 1, i32 0 | |
%.sroa.473.24..idx74 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 2, i32 0 | |
%.sroa.679.40..idx80 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 3, i32 0 | |
%.sroa.044.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 0 | |
%.sroa.248.8..idx49 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 1, i32 0 | |
%.sroa.454.24..idx55 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 2, i32 0 | |
%.sroa.660.40..idx61 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 3, i32 0 | |
%__adjust.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 0 | |
%__adjust.i.sroa.1.8..idx42 = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 1 | |
%14 = bitcast { i8*, i64 }* %__arg7.i to %str_slice* | |
%.sroa.0.0..idx28 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0 | |
%.sroa.2.8..idx31 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0 | |
%.sroa.4.24..idx35 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0 | |
%.sroa.6.40..idx39 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0 | |
%__adjust12.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 0 | |
%__adjust12.i.sroa.1.8..idx26 = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 1 | |
%15 = bitcast { i8*, i64 }* %__arg13.i to %str_slice* | |
br label %match_case.i | |
match_case.i: ; preds = %match_case.i.lr.ph, %"`loop`.i.backedge" | |
%.sroa.08.0110 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %match_case.i.lr.ph ], [ %16, %"`loop`.i.backedge" ] | |
%16 = add i64 %.sroa.08.0110, 88 | |
%17 = inttoptr i64 %.sroa.08.0110 to %struct.Command* | |
call void @llvm.lifetime.start(i64 16, i8* %2) | |
call void @llvm.lifetime.start(i64 8, i8* %3) | |
call void @llvm.lifetime.start(i64 48, i8* %4) | |
call void @llvm.lifetime.start(i64 16, i8* %5) | |
call void @llvm.lifetime.start(i64 48, i8* %6) | |
call void @llvm.lifetime.start(i64 16, i8* %7) | |
call void @llvm.lifetime.start(i64 48, i8* %8) | |
call void @llvm.lifetime.start(i64 16, i8* %9) | |
call void @llvm.lifetime.start(i64 16, i8* %10) | |
store i8* getelementptr inbounds ([2 x i8]* @str11237, i64 0, i64 0), i8** %11, align 8 | |
store i64 2, i64* %12, align 8 | |
%18 = inttoptr i64 %.sroa.08.0110 to { i64, %tydesc*, i8*, i8*, i8 }* | |
%__arg.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %18, i64 0, i32 1 | |
%__arg.sroa.1.8..cast.i.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i.i to i64* | |
%__arg.sroa.1.8.copyload.i.i = load i64* %__arg.sroa.1.8..cast.i.i, align 8 | |
%19 = sub i64 9, %__arg.sroa.1.8.copyload.i.i | |
%20 = call { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13, i64 %19) | |
%21 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11238, i64 0, i64 0), i64 4) | |
to label %"normal return.i" unwind label %unwind.i | |
"normal return.i": ; preds = %match_case.i | |
store { i64, i64, [0 x i8] }* %21, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
store i32 0, i32* %.sroa.063.0..idx, align 8 | |
store i64 1, i64* %.sroa.267.8..idx68, align 8 | |
store i64 1, i64* %.sroa.473.24..idx74, align 8 | |
store i64 0, i64* %.sroa.679.40..idx80, align 8 | |
%22 = inttoptr i64 %.sroa.08.0110 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %22, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, %str_slice* %__arg2.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return3.i" unwind label %unwind4.i | |
unwind.i: ; preds = %match_case.i | |
%23 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract = extractvalue { i8*, i32 } %23, 0 | |
%.fca.1.extract = extractvalue { i8*, i32 } %23, 1 | |
br label %cleanup.i | |
cleanup.i: ; preds = %cond.i, %unwind15.i, %cond.i.i13, %unwind4.i, %unwind.i | |
%.sroa.092.0 = phi i8* [ %.fca.0.extract, %unwind.i ], [ %.fca.0.extract85, %unwind4.i ], [ %.fca.0.extract85, %cond.i.i13 ], [ %.fca.0.extract89, %unwind15.i ], [ %.fca.0.extract89, %cond.i ] | |
%.sroa.194.0 = phi i32 [ %.fca.1.extract, %unwind.i ], [ %.fca.1.extract87, %unwind4.i ], [ %.fca.1.extract87, %cond.i.i13 ], [ %.fca.1.extract91, %unwind15.i ], [ %.fca.1.extract91, %cond.i ] | |
%24 = icmp eq { i64, i64, [0 x i8] }* %20, null | |
br i1 %24, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i | |
cond.i.i: ; preds = %cleanup.i | |
%25 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %25) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %cleanup.i, %cond.i.i | |
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.092.0, 0 | |
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.194.0, 1 | |
resume { i8*, i32 } %.fca.1.insert | |
"normal return3.i": ; preds = %"normal return.i" | |
store i32 0, i32* %.sroa.044.0..idx, align 8 | |
store i64 1, i64* %.sroa.248.8..idx49, align 8 | |
store i64 1, i64* %.sroa.454.24..idx55, align 8 | |
store i64 0, i64* %.sroa.660.40..idx61, align 8 | |
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 2, i64 0 | |
%27 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 0 | |
%28 = load i64* %27, align 8 | |
store i8* %26, i8** %__adjust.i.sroa.0.0..idx, align 8 | |
store i64 %28, i64* %__adjust.i.sroa.1.8..idx42, align 8 | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, %str_slice* %14, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"normal return8.i" unwind label %unwind4.i | |
unwind4.i: ; preds = %"normal return8.i", %"normal return3.i", %"normal return.i" | |
%29 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract85 = extractvalue { i8*, i32 } %29, 0 | |
%.fca.1.extract87 = extractvalue { i8*, i32 } %29, 1 | |
%30 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%31 = icmp eq { i64, i64, [0 x i8] }* %30, null | |
br i1 %31, label %cleanup.i, label %cond.i.i13 | |
cond.i.i13: ; preds = %unwind4.i | |
%32 = bitcast { i64, i64, [0 x i8] }* %30 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %32) | |
br label %cleanup.i | |
"normal return8.i": ; preds = %"normal return3.i" | |
store i32 0, i32* %.sroa.0.0..idx28, align 8 | |
store i64 1, i64* %.sroa.2.8..idx31, align 8 | |
store i64 1, i64* %.sroa.4.24..idx35, align 8 | |
store i64 0, i64* %.sroa.6.40..idx39, align 8 | |
%33 = getelementptr inbounds %struct.Command* %17, i64 0, i32 2 | |
%34 = bitcast %str_slice* %33 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %34, i64 16, i32 8, i1 false) | |
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i) | |
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16" unwind label %unwind4.i | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16": ; preds = %"normal return8.i" | |
%35 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8 | |
%36 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 2, i64 0 | |
%37 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 0 | |
%38 = load i64* %37, align 8 | |
store i8* %36, i8** %__adjust12.i.sroa.0.0..idx, align 8 | |
store i64 %38, i64* %__adjust12.i.sroa.1.8..idx26, align 8 | |
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15) | |
to label %_ZN5usage4anon13expr_fn_11235E.exit unwind label %unwind15.i | |
unwind15.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16" | |
%39 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract89 = extractvalue { i8*, i32 } %39, 0 | |
%.fca.1.extract91 = extractvalue { i8*, i32 } %39, 1 | |
%40 = icmp eq { i64, i64, [0 x i8] }* %35, null | |
br i1 %40, label %cleanup.i, label %cond.i | |
cond.i: ; preds = %unwind15.i | |
%41 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41) | |
br label %cleanup.i | |
_ZN5usage4anon13expr_fn_11235E.exit: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16" | |
%42 = icmp eq { i64, i64, [0 x i8] }* %35, null | |
br i1 %42, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18", label %cond.i17 | |
cond.i17: ; preds = %_ZN5usage4anon13expr_fn_11235E.exit | |
%43 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %43) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18": ; preds = %_ZN5usage4anon13expr_fn_11235E.exit, %cond.i17 | |
%44 = icmp eq { i64, i64, [0 x i8] }* %20, null | |
br i1 %44, label %"`loop`.i.backedge", label %cond.i.i19 | |
"`loop`.i.backedge": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18", %cond.i.i19 | |
%45 = inttoptr i64 %16 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%46 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %45, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%47 = icmp eq i64 %16, 0 | |
%or.cond = or i1 %46, %47 | |
br i1 %or.cond, label %"_ZN8iterator14__extensions__13advance_1123215_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i | |
cond.i.i19: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18" | |
%48 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48) | |
br label %"`loop`.i.backedge" | |
"_ZN8iterator14__extensions__13advance_1123215_c1aea65ce534e914_0$x2e8$x2dpreE.exit": ; preds = %"`loop`.i.backedge", %"function top level" | |
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 0 | |
store i8* getelementptr inbounds ([67 x i8]* @str11239, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8 | |
%.sroa.1.8..idx3 = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 1 | |
store i64 67, i64* %.sroa.1.8..idx3, align 8 | |
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg2) | |
ret void | |
} | |
declare void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
declare { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) | |
define void @"_ZN4main16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 { | |
"normal return": | |
%__trans_ret_slot.i92 = alloca {}, align 8 | |
%__arg5.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg6.i = alloca %str_slice, align 8 | |
%__arg8.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg10.i = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8 | |
%result.i = alloca %enum.ValidUsage, align 8 | |
%1 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__arg.i.i = alloca %struct.Command, align 8 | |
%__arg = alloca { i8*, i64 }, align 8 | |
%args = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%__adjust21 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8 | |
%r = alloca %"enum.std::option::Option<Command>[#1]", align 8 | |
%2 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
%3 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 0 | |
%4 = load i64* %3, align 8 | |
%5 = icmp ugt i64 %4, 15 | |
%6 = zext i1 %5 to i8 | |
br i1 %5, label %next, label %join | |
unwind.loopexit.loopexit: ; preds = %match_case.i55, %match_else.i, %match_case.i99 | |
%lpad.loopexit114 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind.loopexit.nonloopexit: ; preds = %.noexc96 | |
%lpad.nonloopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind.nonloopexit.loopexit: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i | |
%lpad.loopexit85 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind.nonloopexit.nonloopexit: ; preds = %next8, %next, %next32, %next20, %"normal return18", %next15, %cond16, %cond9 | |
%lpad.nonloopexit86 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind | |
unwind: ; preds = %unwind.loopexit.loopexit, %unwind.loopexit.nonloopexit, %unwind.nonloopexit.loopexit, %unwind.nonloopexit.nonloopexit | |
%lpad.phi = phi { i8*, i32 } [ %lpad.loopexit85, %unwind.nonloopexit.loopexit ], [ %lpad.nonloopexit86, %unwind.nonloopexit.nonloopexit ], [ %lpad.loopexit114, %unwind.loopexit.loopexit ], [ %lpad.nonloopexit, %unwind.loopexit.nonloopexit ] | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract = extractvalue { i8*, i32 } %lpad.phi, 0 | |
%.fca.1.extract = extractvalue { i8*, i32 } %lpad.phi, 1 | |
br label %cleanup | |
cleanup: ; preds = %cond.i.i51, %unwind13, %cond.i.i41, %unwind4, %unwind | |
%.sroa.078.0 = phi i8* [ %.fca.0.extract, %unwind ], [ %.fca.0.extract71, %unwind4 ], [ %.fca.0.extract71, %cond.i.i41 ], [ %.fca.0.extract75, %unwind13 ], [ %.fca.0.extract75, %cond.i.i51 ] | |
%.sroa.179.0 = phi i32 [ %.fca.1.extract, %unwind ], [ %.fca.1.extract73, %unwind4 ], [ %.fca.1.extract73, %cond.i.i41 ], [ %.fca.1.extract77, %unwind13 ], [ %.fca.1.extract77, %cond.i.i51 ] | |
%7 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null | |
br i1 %7, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit39", label %cond.i.i34 | |
cond.i.i34: ; preds = %cleanup | |
%8 = load i64* %3, align 8 | |
%9 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0 | |
%10 = bitcast { i64, i64, [0 x i8] }** %9 to i8* | |
%11 = getelementptr inbounds i8* %10, i64 %8 | |
%12 = bitcast i8* %11 to { i64, i64, [0 x i8] }** | |
%13 = icmp ult { i64, i64, [0 x i8] }** %9, %12 | |
br i1 %13, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38" | |
iter_vec_loop_body.i.i.i35: ; preds = %cond.i.i34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37" | |
%14 = phi { i64, i64, [0 x i8] }** [ %18, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37" ], [ %9, %cond.i.i34 ] | |
%15 = load { i64, i64, [0 x i8] }** %14, align 8 | |
%16 = icmp eq { i64, i64, [0 x i8] }* %15, null | |
br i1 %16, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37", label %cond.i.i.i.i.i36 | |
cond.i.i.i.i.i36: ; preds = %iter_vec_loop_body.i.i.i35 | |
%17 = bitcast { i64, i64, [0 x i8] }* %15 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %17) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37": ; preds = %cond.i.i.i.i.i36, %iter_vec_loop_body.i.i.i35 | |
%18 = getelementptr inbounds { i64, i64, [0 x i8] }** %14, i64 1 | |
%19 = icmp ult { i64, i64, [0 x i8] }** %18, %12 | |
br i1 %19, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37", %cond.i.i34 | |
%20 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %20) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit39" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit39": ; preds = %cleanup, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38" | |
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.078.0, 0 | |
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.179.0, 1 | |
resume { i8*, i32 } %.fca.1.insert | |
join: ; preds = %cond.i.i49, %"normal return12", %"normal return" | |
%21 = phi i8 [ %6, %"normal return" ], [ %storemerge.i.i.i46, %"normal return12" ], [ %storemerge.i.i.i46, %cond.i.i49 ] | |
%22 = icmp eq i8 %21, 0 | |
br i1 %22, label %next20, label %then | |
next: ; preds = %"normal return" | |
%23 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11243, i64 0, i64 0), i64 2) | |
to label %"normal return2" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return2": ; preds = %next | |
%24 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 1 | |
%25 = load { i64, i64, [0 x i8] }** %24, align 8 | |
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 0 | |
%27 = load i64* %26, align 8 | |
%28 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 0 | |
%29 = load i64* %28, align 8 | |
%30 = icmp eq i64 %27, %29 | |
br i1 %30, label %else.i.i.i, label %"normal return3" | |
else.i.i.i: ; preds = %"normal return2" | |
%31 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 2, i64 0 | |
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 2, i64 0 | |
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%34 = bitcast i8* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%35 = add i64 %27, -1 | |
%36 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, %"enum.std::libc::types::common::c95::c_void[#1]"* %34, i64 %35) | |
to label %.noexc unwind label %unwind4 | |
.noexc: ; preds = %else.i.i.i | |
%37 = icmp eq i32 %36, 0 | |
%38 = zext i1 %37 to i8 | |
br label %"normal return3" | |
"normal return3": ; preds = %.noexc, %"normal return2" | |
%storemerge.i.i.i = phi i8 [ %38, %.noexc ], [ 0, %"normal return2" ] | |
%39 = icmp eq { i64, i64, [0 x i8] }* %23, null | |
br i1 %39, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i40 | |
cond.i.i40: ; preds = %"normal return3" | |
%40 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %40) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %"normal return3", %cond.i.i40 | |
%41 = icmp eq i8 %storemerge.i.i.i, 0 | |
br i1 %41, label %rhs7, label %then | |
unwind4: ; preds = %else.i.i.i | |
%42 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract71 = extractvalue { i8*, i32 } %42, 0 | |
%.fca.1.extract73 = extractvalue { i8*, i32 } %42, 1 | |
%43 = icmp eq { i64, i64, [0 x i8] }* %23, null | |
br i1 %43, label %cleanup, label %cond.i.i41 | |
cond.i.i41: ; preds = %unwind4 | |
%44 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %44) | |
br label %cleanup | |
rhs7: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit" | |
%45 = load i64* %3, align 8 | |
%46 = icmp ult i64 %45, 9 | |
br i1 %46, label %cond9, label %next8 | |
next8: ; preds = %rhs7 | |
%47 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([10 x i8]* @str11244, i64 0, i64 0), i64 9) | |
to label %"normal return11" unwind label %unwind.nonloopexit.nonloopexit | |
cond9: ; preds = %rhs7 | |
%48 = lshr i64 %45, 3 | |
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([55 x i8]* @str10798, i64 0, i64 0), i64 228, i64 1, i64 %48) | |
to label %"normal return10" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return10": ; preds = %cond9 | |
unreachable | |
"normal return11": ; preds = %next8 | |
%49 = load { i64, i64, [0 x i8] }** %24, align 8 | |
%50 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0 | |
%51 = load i64* %50, align 8 | |
%52 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 0 | |
%53 = load i64* %52, align 8 | |
%54 = icmp eq i64 %51, %53 | |
br i1 %54, label %else.i.i.i45, label %"normal return12" | |
else.i.i.i45: ; preds = %"normal return11" | |
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 2, i64 0 | |
%56 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 2, i64 0 | |
%57 = bitcast i8* %56 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%58 = bitcast i8* %55 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%59 = add i64 %51, -1 | |
%60 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %57, %"enum.std::libc::types::common::c95::c_void[#1]"* %58, i64 %59) | |
to label %.noexc47 unwind label %unwind13 | |
.noexc47: ; preds = %else.i.i.i45 | |
%61 = icmp eq i32 %60, 0 | |
%62 = zext i1 %61 to i8 | |
br label %"normal return12" | |
"normal return12": ; preds = %.noexc47, %"normal return11" | |
%storemerge.i.i.i46 = phi i8 [ %62, %.noexc47 ], [ 0, %"normal return11" ] | |
%63 = icmp eq { i64, i64, [0 x i8] }* %47, null | |
br i1 %63, label %join, label %cond.i.i49 | |
cond.i.i49: ; preds = %"normal return12" | |
%64 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %64) | |
br label %join | |
unwind13: ; preds = %else.i.i.i45 | |
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%.fca.0.extract75 = extractvalue { i8*, i32 } %65, 0 | |
%.fca.1.extract77 = extractvalue { i8*, i32 } %65, 1 | |
%66 = icmp eq { i64, i64, [0 x i8] }* %47, null | |
br i1 %66, label %cleanup, label %cond.i.i51 | |
cond.i.i51: ; preds = %unwind13 | |
%67 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %67) | |
br label %cleanup | |
then: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", %join | |
%68 = load i64* %3, align 8 | |
%69 = icmp eq i64 %68, 0 | |
br i1 %69, label %cond16, label %next15 | |
next15: ; preds = %then | |
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0 | |
%71 = load { i64, i64, [0 x i8] }** %70, align 8 | |
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 2, i64 0 | |
%73 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 0 | |
%74 = load i64* %73, align 8 | |
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0 | |
store i8* %72, i8** %__adjust.sroa.0.0..idx, align 8 | |
%__adjust.sroa.1.8..idx60 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1 | |
store i64 %74, i64* %__adjust.sroa.1.8..idx60, align 8 | |
%75 = bitcast { i8*, i64 }* %__arg to %str_slice* | |
invoke void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %75) | |
to label %"normal return18" unwind label %unwind.nonloopexit.nonloopexit | |
cond16: ; preds = %then | |
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([55 x i8]* @str10798, i64 0, i64 0), i64 229, i64 0, i64 0) | |
to label %"normal return17" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return17": ; preds = %cond16 | |
unreachable | |
"normal return18": ; preds = %next15 | |
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 0) | |
to label %"normal return19" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return19": ; preds = %"normal return18" | |
unreachable | |
next20: ; preds = %join | |
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0 | |
%77 = load i64* %3, align 8 | |
%78 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %76, { i64, i64, [0 x i8] }*** %78, align 8 | |
%79 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 1 | |
store i64 %77, i64* %79, align 8 | |
%80 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__adjust21 to { i64, %tydesc*, i8*, i8*, i8 }* | |
invoke fastcc void @"_ZN3vec14__extensions__10tail_1124616_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %args, { i64, %tydesc*, i8*, i8*, i8 }* %80) | |
to label %"normal return23" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return23": ; preds = %next20 | |
%s.sroa.1.8..idx.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 1 | |
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..idx.i.i, align 8 | |
%81 = icmp ult i64 %s.sroa.1.8.copyload.i.i, 8 | |
br i1 %81, label %next32, label %"normal return25" | |
"normal return25": ; preds = %"normal return23" | |
%82 = bitcast {}* %__trans_ret_slot.i92 to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %82) | |
%83 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 0 | |
%84 = load { i64, i64, [0 x i8] }*** %83, align 8 | |
call void @llvm.lifetime.end(i64 0, i8* %82) | |
%85 = load { i64, i64, [0 x i8] }** %84, align 8 | |
%86 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 0 | |
%87 = load i64* %86, align 8 | |
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader" | |
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader": ; preds = %"normal return25" | |
%88 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 2, i64 0 | |
%89 = bitcast i8* %88 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%90 = add i64 %87, -1 | |
br label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader", %"`loop`.i.i.backedge.i" | |
%.sroa.08.091.i = phi i64 [ %91, %"`loop`.i.i.backedge.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader" ] | |
%91 = add i64 %.sroa.08.091.i, 88 | |
%92 = inttoptr i64 %.sroa.08.091.i to %struct.Command* | |
%__arg1.i.sroa.1.8..idx43.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 1 | |
%__arg1.i.sroa.1.8.copyload.i = load i64* %__arg1.i.sroa.1.8..idx43.i, align 8 | |
%93 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i, %87 | |
br i1 %93, label %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i, label %"`loop`.i.i.backedge.i" | |
"`loop`.i.i.backedge.i": ; preds = %.noexc54, %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
%94 = inttoptr i64 %91 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%95 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %94, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*) | |
%96 = icmp eq i64 %91, 0 | |
%or.cond.i = or i1 %95, %96 | |
br i1 %or.cond.i, label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i" | |
%__arg1.i.sroa.0.0..idx.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 0 | |
%__arg1.i.sroa.0.0.copyload.i = load i8** %__arg1.i.sroa.0.0..idx.i, align 8 | |
%97 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
%98 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %97, %"enum.std::libc::types::common::c95::c_void[#1]"* %89, i64 %90) | |
to label %.noexc54 unwind label %unwind.nonloopexit.loopexit | |
.noexc54: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i | |
%99 = icmp eq i32 %98, 0 | |
br i1 %99, label %match_case.i, label %"`loop`.i.i.backedge.i" | |
"normal return28": ; preds = %"`loop`.i.i.backedge.i", %"normal return25" | |
%__arg.i.i.0.cast = bitcast %struct.Command* %__arg.i.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %__arg.i.i.0.cast) | |
%100 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0 | |
store i64 0, i64* %100, align 8 | |
call void @llvm.lifetime.end(i64 88, i8* %__arg.i.i.0.cast) | |
br label %"`loop`.i.preheader" | |
match_case.i: ; preds = %.noexc54 | |
%101 = bitcast %struct.Command* %__arg.i.i to i8* | |
call void @llvm.lifetime.start(i64 88, i8* %101) | |
%102 = inttoptr i64 %.sroa.08.091.i to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %101, i8* %102, i64 88, i32 8, i1 false) | |
%103 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0 | |
store i64 1, i64* %103, align 8 | |
%104 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1, i64 0 | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %104, i8* %101, i64 88, i32 8, i1 false) #0 | |
call void @llvm.lifetime.end(i64 88, i8* %101) | |
%105 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1 | |
%106 = ptrtoint [88 x i8]* %105 to i64 | |
br label %"`loop`.i.preheader" | |
"`loop`.i.preheader": ; preds = %"normal return28", %match_case.i | |
%.sroa.058.1.ph = phi i64 [ %106, %match_case.i ], [ 0, %"normal return28" ] | |
%107 = bitcast %enum.ValidUsage* %result.i to i8* | |
%108 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %1 to i8* | |
%109 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %args to { i64, %tydesc*, i8*, i8*, i8 }* | |
%110 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 0 | |
%111 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 1 | |
%112 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i to i8* | |
%113 = bitcast %str_slice* %__arg6.i to i8* | |
%114 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i to i8* | |
%115 = bitcast { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i to i8* | |
%__adjust.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 0 | |
%__adjust.sroa.1.8..idx13.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 1 | |
%116 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 0 | |
%__adjust7.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 0 | |
%__adjust7.sroa.1.8..idx12.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 1 | |
%__adjust9.sroa.0.0..idx.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 0 | |
%__adjust9.sroa.1.8..idx11.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 1 | |
br label %"`loop`.i" | |
"`loop`.i": ; preds = %"`loop`.i.preheader", %match_case.i99..noexc95_crit_edge | |
%.sroa.058.1 = phi i64 [ 0, %match_case.i99..noexc95_crit_edge ], [ %.sroa.058.1.ph, %"`loop`.i.preheader" ] | |
%117 = icmp eq i64 %.sroa.058.1, 0 | |
br i1 %117, label %next32, label %match_case.i55 | |
match_case.i55: ; preds = %"`loop`.i" | |
%118 = inttoptr i64 %.sroa.058.1 to %struct.Command* | |
call void @llvm.lifetime.start(i64 0, i8* %82) | |
call void @llvm.lifetime.start(i64 16, i8* %107) | |
call void @llvm.lifetime.start(i64 16, i8* %108) | |
invoke fastcc void @"_ZN3vec14__extensions__10tail_1124616_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %1, { i64, %tydesc*, i8*, i8*, i8 }* %109) | |
to label %.noexc94 unwind label %unwind.loopexit.loopexit | |
.noexc94: ; preds = %match_case.i55 | |
%119 = load { i64, i64, [0 x i8] }*** %110, align 8 | |
%120 = load i64* %111, align 8 | |
call void @llvm.lifetime.start(i64 16, i8* %112) | |
call void @llvm.lifetime.start(i64 16, i8* %113) | |
call void @llvm.lifetime.start(i64 16, i8* %114) | |
call void @llvm.lifetime.start(i64 16, i8* %115) | |
%121 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 0 | |
%122 = load i64* %121, align 8, !range !0 | |
%cond.i98 = icmp eq i64 %122, 0 | |
%123 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 1 | |
br i1 %cond.i98, label %match_case.i99, label %match_else.i | |
match_else.i: ; preds = %.noexc94 | |
%124 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 2, i64 8 | |
%125 = bitcast i8* %124 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)** | |
%126 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %113, i8* %126, i64 16, i32 8, i1 false) | |
%127 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %125, align 8 | |
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx.i, align 8 | |
store i64 %120, i64* %__adjust7.sroa.1.8..idx12.i, align 8 | |
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %127, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx.i, align 8 | |
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11.i, align 8 | |
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6.i, { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i) | |
to label %.noexc100 unwind label %unwind.loopexit.loopexit | |
.noexc100: ; preds = %match_else.i | |
call void @llvm.memset.p0i8.i64(i8* %107, i8 0, i64 16, i32 8, i1 false) | |
call void @llvm.lifetime.end(i64 16, i8* %112) | |
call void @llvm.lifetime.end(i64 16, i8* %113) | |
call void @llvm.lifetime.end(i64 16, i8* %114) | |
call void @llvm.lifetime.end(i64 16, i8* %115) | |
br label %.noexc96 | |
match_case.i99: ; preds = %.noexc94 | |
%128 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123, align 8 | |
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx.i, align 8 | |
store i64 %120, i64* %__adjust.sroa.1.8..idx13.i, align 8 | |
invoke void %128(%enum.ValidUsage* %result.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i) | |
to label %match_case.i99..noexc95_crit_edge unwind label %unwind.loopexit.loopexit | |
match_case.i99..noexc95_crit_edge: ; preds = %match_case.i99 | |
%.pre = load i64* %116, align 8 | |
%phitmp = icmp eq i64 %.pre, 0 | |
call void @llvm.lifetime.end(i64 16, i8* %112) | |
call void @llvm.lifetime.end(i64 16, i8* %113) | |
call void @llvm.lifetime.end(i64 16, i8* %114) | |
call void @llvm.lifetime.end(i64 16, i8* %115) | |
br i1 %phitmp, label %.noexc96, label %"`loop`.i" | |
.noexc96: ; preds = %.noexc100, %match_case.i99..noexc95_crit_edge | |
%129 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 1 | |
%130 = load i64* %129, align 8 | |
%131 = trunc i64 %130 to i32 | |
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 %131) | |
to label %.noexc97 unwind label %unwind.loopexit.nonloopexit | |
.noexc97: ; preds = %.noexc96 | |
unreachable | |
next32: ; preds = %"`loop`.i", %"normal return23" | |
invoke void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef) | |
to label %"normal return33" unwind label %unwind.nonloopexit.nonloopexit | |
"normal return33": ; preds = %next32 | |
%132 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null | |
br i1 %132, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit", label %cond.i.i | |
cond.i.i: ; preds = %"normal return33" | |
%133 = load i64* %3, align 8 | |
%134 = bitcast { i64, i64, [0 x i8] }** %76 to i8* | |
%135 = getelementptr inbounds i8* %134, i64 %133 | |
%136 = bitcast i8* %135 to { i64, i64, [0 x i8] }** | |
%137 = icmp ult { i64, i64, [0 x i8] }** %76, %136 | |
br i1 %137, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i" | |
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" | |
%138 = phi { i64, i64, [0 x i8] }** [ %142, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" ], [ %76, %cond.i.i ] | |
%139 = load { i64, i64, [0 x i8] }** %138, align 8 | |
%140 = icmp eq { i64, i64, [0 x i8] }* %139, null | |
br i1 %140, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", label %cond.i.i.i.i.i | |
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i | |
%141 = bitcast { i64, i64, [0 x i8] }* %139 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %141) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i | |
%142 = getelementptr inbounds { i64, i64, [0 x i8] }** %138, i64 1 | |
%143 = icmp ult { i64, i64, [0 x i8] }** %142, %136 | |
br i1 %143, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i" | |
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", %cond.i.i | |
%144 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %144) | |
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit" | |
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit": ; preds = %"normal return33", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i" | |
ret void | |
} | |
declare void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*) | |
declare void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, i32) | |
define internal fastcc void @"_ZN3vec14__extensions__10tail_1124616_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 { | |
"function top level": | |
%__trans_ret_slot.i = alloca {}, align 8 | |
%ret.i.i = alloca { i64, i64, [0 x i8] }*, align 8 | |
%__adjust.i = alloca { i8*, i64 }, align 8 | |
%__arg3.i = alloca %str_slice, align 8 | |
%s.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %1, i64 0, i32 1 | |
%s.sroa.1.8..cast.i.i = bitcast %tydesc** %s.sroa.1.8..idx.i.i to i64* | |
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..cast.i.i, align 1 | |
%2 = lshr i64 %s.sroa.1.8.copyload.i.i, 3 | |
%3 = bitcast {}* %__trans_ret_slot.i to i8* | |
call void @llvm.lifetime.start(i64 0, i8* %3) | |
%4 = bitcast { i8*, i64 }* %__adjust.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %4) | |
%5 = bitcast %str_slice* %__arg3.i to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %5) | |
%6 = icmp eq i64 %2, 0 | |
br i1 %6, label %then.i, label %"_ZN3vec14__extensions__11slice_1124917_7dfbf588b669df8914_0$x2e8$x2dpreE.exit" | |
then.i: ; preds = %"function top level" | |
%7 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10945, i64 0, i64 0), i64 18) | |
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0 | |
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0 | |
%10 = load i64* %9, align 8 | |
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0 | |
store i8* %8, i8** %11, align 8 | |
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1 | |
store i64 %10, i64* %12, align 8 | |
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%14 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to i8* | |
call void @llvm.lifetime.start(i64 8, i8* %14) | |
%15 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13) | |
to label %.noexc.i unwind label %unwind.i | |
.noexc.i: ; preds = %then.i | |
store { i64, i64, [0 x i8] }* %15, { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
%16 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to { i64, %tydesc*, i8*, i8*, i8 }* | |
%17 = getelementptr inbounds { i64, i64, [0 x i8] }* %15, i64 0, i32 0 | |
%18 = load i64* %17, align 8 | |
%19 = add i64 %18, 11 | |
%20 = lshr i64 %19, 1 | |
%21 = or i64 %20, %19 | |
%22 = lshr i64 %21, 2 | |
%23 = or i64 %22, %21 | |
%24 = lshr i64 %23, 4 | |
%25 = or i64 %24, %23 | |
%26 = lshr i64 %25, 8 | |
%27 = or i64 %26, %25 | |
%28 = lshr i64 %27, 16 | |
%29 = or i64 %28, %27 | |
%30 = lshr i64 %29, 32 | |
%31 = or i64 %30, %29 | |
%32 = add i64 %31, 1 | |
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %16, i64 %32) | |
to label %"normal return.i" unwind label %unwind.i.i | |
unwind.i.i: ; preds = %.noexc.i | |
%33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
call void @upcall_reset_stack_limit() | |
%34 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
%35 = icmp eq { i64, i64, [0 x i8] }* %34, null | |
br i1 %35, label %unwind.body.i, label %cond.i.i2.i.i | |
cond.i.i2.i.i: ; preds = %unwind.i.i | |
%36 = bitcast { i64, i64, [0 x i8] }* %34 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36) | |
to label %unwind.body.i unwind label %unwind.i | |
"normal return.i": ; preds = %.noexc.i | |
%37 = add i64 %18, -1 | |
%38 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
%39 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0 | |
%40 = ptrtoint i8* %39 to i64 | |
%41 = add i64 %37, %40 | |
%42 = inttoptr i64 %41 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* getelementptr inbounds ([13 x i8]* @str11252, i64 0, i64 0), i64 12, i32 1, i1 false) | |
%43 = add i64 %18, 12 | |
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0 | |
store i64 %43, i64* %44, align 8 | |
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 1 | |
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64 | |
%47 = add i64 %46, %19 | |
%48 = inttoptr i64 %47 to i8* | |
store i8 0, i8* %48, align 1 | |
%49 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8 | |
call void @llvm.lifetime.end(i64 8, i8* %14) | |
%50 = icmp eq { i64, i64, [0 x i8] }* %7, null | |
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i | |
cond.i.i.i: ; preds = %"normal return.i" | |
%51 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i, %"normal return.i" | |
%.sroa.028.0..idx.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0 | |
store i8* getelementptr inbounds ([53 x i8]* @str10892, i64 0, i64 0), i8** %.sroa.028.0..idx.i, align 8 | |
%.sroa.129.8..idx30.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1 | |
store i64 53, i64* %.sroa.129.8..idx30.i, align 8 | |
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 735) | |
unreachable | |
unwind.i: ; preds = %cond.i.i2.i.i, %then.i | |
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality | |
cleanup | |
br label %unwind.body.i | |
unwind.body.i: ; preds = %unwind.i, %cond.i.i2.i.i, %unwind.i.i | |
%eh.lpad-body.i = phi { i8*, i32 } [ %52, %unwind.i ], [ %33, %cond.i.i2.i.i ], [ %33, %unwind.i.i ] | |
call void @upcall_reset_stack_limit() | |
%53 = icmp eq { i64, i64, [0 x i8] }* %7, null | |
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit3.i", label %cond.i.i2.i | |
cond.i.i2.i: ; preds = %unwind.body.i | |
%54 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"* | |
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54) | |
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit3.i" | |
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit3.i": ; preds = %cond.i.i2.i, %unwind.body.i | |
resume { i8*, i32 } %eh.lpad-body.i | |
"_ZN3vec14__extensions__11slice_1124917_7dfbf588b669df8914_0$x2e8$x2dpreE.exit": ; preds = %"function top level" | |
%s.sroa.0.0..cast.i.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %1 to { i64, i64, [0 x i8] }*** | |
%s.sroa.0.0.copyload.i.i = load { i64, i64, [0 x i8] }*** %s.sroa.0.0..cast.i.i, align 1 | |
%55 = ptrtoint { i64, i64, [0 x i8] }** %s.sroa.0.0.copyload.i.i to i64 | |
%56 = add i64 %55, 8 | |
%57 = inttoptr i64 %56 to { i64, i64, [0 x i8] }** | |
%58 = shl nuw i64 %2, 3 | |
%59 = add i64 %58, -8 | |
%__arg2.i.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 0 | |
store { i64, i64, [0 x i8] }** %57, { i64, i64, [0 x i8] }*** %__arg2.i.sroa.0.0..idx.i, align 1 | |
%60 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 1 | |
store i64 %59, i64* %60, align 1 | |
call void @llvm.lifetime.end(i64 0, i8* %3) | |
call void @llvm.lifetime.end(i64 16, i8* %4) | |
call void @llvm.lifetime.end(i64 16, i8* %5) | |
ret void | |
} | |
declare void @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*) | |
declare void @llvm.lifetime.start(i64, i8* nocapture) #0 | |
declare void @llvm.lifetime.end(i64, i8* nocapture) #0 | |
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #4 | |
attributes #0 = { nounwind } | |
attributes #1 = { inlinehint nounwind } | |
attributes #2 = { uwtable } | |
attributes #3 = { inlinehint uwtable } | |
attributes #4 = { nounwind readnone } | |
!0 = metadata !{i64 0, i64 2} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment