Created
June 5, 2011 10:35
-
-
Save axiomsofchoice/1008855 to your computer and use it in GitHub Desktop.
Annotated llvm bytecode for the cubescript example in the tests suite in emscripten
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 = 'command' | |
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-linux-gnu" | |
%0 = type { i32, void ()* } | |
%struct.__class_type_info_pseudo = type { %struct.__type_info_pseudo } | |
%struct.__type_info_pseudo = type { i8*, i8* } | |
%struct.__va_list_tag = type { i32, i32, i8*, i8* } | |
%struct.cline = type { i8*, i32, i32 } | |
%"struct.hashset<hashtableentry<const char*, ident> >" = type { i32, i32, %"struct.hashset<hashtableentry<const char*, ident> >::chain"**, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"*, %"struct.hashset<hashtableentry<const char*, ident> >::chain"* } | |
%"struct.hashset<hashtableentry<const char*, ident> >::chain" = type { %"struct.hashtableentry<const char*,ident>", %"struct.hashset<hashtableentry<const char*, ident> >::chain"* } | |
%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk" = type { [64 x %"struct.hashset<hashtableentry<const char*, ident> >::chain"], %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* } | |
%"struct.hashtable<const char*,ident>" = type { %"struct.hashset<hashtableentry<const char*, ident> >" } | |
%"struct.hashtableentry<const char*,ident>" = type { i8*, %struct.ident } | |
%struct.ident = type { i32 (...)**, i32, i8*, %union..0._39, %union..0._39, i32, %"union.ident::._35", %struct.stringformatter, %struct.stringformatter, %union.identvalptr, i32 } | |
%struct.identstack = type { i8*, %struct.identstack* } | |
%struct.stringformatter = type { i8* } | |
%"struct.vector<char*>" = type { i8**, i32, i32 } | |
%"struct.vector<cline>" = type { %struct.cline*, i32, i32 } | |
%"struct.vector<ident*>" = type { %struct.ident**, i32, i32 } | |
%"struct.vector<vector<char>*>" = type { %struct.cline**, i32, i32 } | |
%union..0._39 = type { i32 } | |
%"union.ident::._35" = type { void ()* } | |
%union.identvalptr = type { i32* } | |
@_ZTV5ident = weak_odr constant [5 x i32 (...)*] [i32 (...)* null, i32 (...)* bitcast (%struct.__class_type_info_pseudo* @_ZTI5ident to i32 (...)*), i32 (...)* bitcast (void (%struct.ident*)* @_ZN5identD1Ev to i32 (...)*), i32 (...)* bitcast (void (%struct.ident*)* @_ZN5identD0Ev to i32 (...)*), i32 (...)* bitcast (void (%struct.ident*)* @_ZN5ident7changedEv to i32 (...)*)], align 32 ; <[5 x i32 (...)*]*> [#uses=1] | |
@_ZTI5ident = weak_odr constant %struct.__class_type_info_pseudo { %struct.__type_info_pseudo { i8* inttoptr (i64 add (i64 ptrtoint ([0 x i32 (...)*]* @_ZTVN10__cxxabiv117__class_type_infoE to i64), i64 16) to i8*), i8* getelementptr inbounds ([7 x i8]* @_ZTS5ident, i64 0, i64 0) } }, align 16 ; <%struct.__class_type_info_pseudo*> [#uses=1] | |
@_ZTVN10__cxxabiv117__class_type_infoE = external constant [0 x i32 (...)*] ; <[0 x i32 (...)*]*> [#uses=1] | |
@_ZTS5ident = weak_odr constant [7 x i8] c"5ident\00" ; <[7 x i8]*> [#uses=1] | |
@_ZL5state = internal global [625 x i32] zeroinitializer, align 32 ; <[625 x i32]*> [#uses=12] | |
@_ZL4left = internal global i32 -1 ; <i32*> [#uses=8] | |
@conlines = global %"struct.vector<cline>" zeroinitializer, align 16 ; <%"struct.vector<cline>"*> [#uses=3] | |
@_ZL8wordbufs = internal global %"struct.vector<vector<char>*>" zeroinitializer, align 16 ; <%"struct.vector<vector<char>*>"*> [#uses=3] | |
@maxcon = global i32 0 ; <i32*> [#uses=5] | |
@_ZZ10parsemacroRPKciR6vectorIcEE5ident = internal global %struct.cline zeroinitializer, align 16 ; <%struct.cline*> [#uses=3] | |
@_ZZ10executeretPKcE6argids = internal global %"struct.vector<ident*>" zeroinitializer, align 16 ; <%"struct.vector<ident*>"*> [#uses=4] | |
@_ZZ5fatalPKczE6errors = internal global i32 0 ; <i32*> [#uses=2] | |
@_ZL6retidx = internal global i32 0 ; <i32*> [#uses=221] | |
@.str = private constant [5 x i8] c"%.1f\00", align 1 ; <[5 x i8]*> [#uses=25] | |
@.str1 = private constant [5 x i8] c"%.7g\00", align 1 ; <[5 x i8]*> [#uses=25] | |
@_ZL6retbuf = internal global [3 x [260 x i8]] zeroinitializer, align 32 ; <[3 x [260 x i8]]*> [#uses=148] | |
@.str2 = private constant [3 x i8] c"%d\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZL4next = internal global i32* null ; <i32**> [#uses=5] | |
@.str3 = private constant [1 x i8] zeroinitializer, align 1 ; <[1 x i8]*> [#uses=1] | |
@totalmillis = global i32 -1 ; <i32*> [#uses=1] | |
@_ZZ8conoutfviPKcP13__va_list_tagE3buf = internal global [512 x i8] zeroinitializer, align 32 ; <[512 x i8]*> [#uses=2] | |
@.str4 = private constant [25 x i8] c"variable %s is read-only\00", align 1 ; <[25 x i8]*> [#uses=1] | |
@overrideidents = global i8 0 ; <i8*> [#uses=11] | |
@.str5 = private constant [39 x i8] c"cannot override persistent variable %s\00", align 8 ; <[39 x i8]*> [#uses=1] | |
@.str6 = private constant [29 x i8] c"valid range for %s is %s..%s\00", align 1 ; <[29 x i8]*> [#uses=1] | |
@.str7 = private constant [31 x i8] c"valid range for %s is %d..0x%X\00", align 8 ; <[31 x i8]*> [#uses=1] | |
@.str8 = private constant [33 x i8] c"valid range for %s is 0x%X..0x%X\00", align 8 ; <[33 x i8]*> [#uses=1] | |
@.str9 = private constant [29 x i8] c"valid range for %s is %d..%d\00", align 1 ; <[29 x i8]*> [#uses=1] | |
@.str10 = private constant [3 x i8] c"%s\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@commandret = global i8* null ; <i8**> [#uses=88] | |
@idents = global %"struct.hashtable<const char*,ident>"* null ; <%"struct.hashtable<const char*,ident>"**> [#uses=36] | |
@.str11 = private constant [25 x i8] c"unknown alias lookup: %s\00", align 1 ; <[25 x i8]*> [#uses=1] | |
@.str12 = private constant [4 x i8] c"\0A\09 \00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str13 = private constant [4 x i8] c"\22\0A\00\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str14 = private constant [5 x i8] c"\0A\09 \00\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@persistidents = global i8 1 ; <i8*> [#uses=3] | |
@.str16 = private constant [41 x i8] c"cannot redefine builtin %s with an alias\00", align 8 ; <[41 x i8]*> [#uses=1] | |
@.str17 = private constant [5 x i8] c"push\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@.str18 = private constant [3 x i8] c"ss\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@.str19 = private constant [4 x i8] c"pop\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str20 = private constant [2 x i8] c"s\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@.str21 = private constant [9 x i8] c"resetvar\00", align 1 ; <[9 x i8]*> [#uses=1] | |
@.str22 = private constant [6 x i8] c"alias\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@__dso_handle = external global i8* ; <i8**> [#uses=1] | |
@.str23 = private constant [8 x i8] c"numargs\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@_numargs = global i32 0 ; <i32*> [#uses=3] | |
@.str24 = private constant [3 x i8] c"if\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@.str25 = private constant [4 x i8] c"sss\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi844EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str26 = private constant [2 x i8] c"?\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi845EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str27 = private constant [5 x i8] c"loop\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@.str28 = private constant [4 x i8] c"sis\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi858EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str29 = private constant [10 x i8] c"loopwhile\00", align 1 ; <[10 x i8]*> [#uses=1] | |
@.str30 = private constant [5 x i8] c"siss\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi872EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str31 = private constant [6 x i8] c"while\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi873EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str32 = private constant [7 x i8] c"concat\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@.str33 = private constant [2 x i8] c"C\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@.str34 = private constant [7 x i8] c"result\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@.str35 = private constant [11 x i8] c"concatword\00", align 1 ; <[11 x i8]*> [#uses=1] | |
@.str36 = private constant [2 x i8] c"V\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@.str37 = private constant [7 x i8] c"format\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@.str38 = private constant [3 x i8] c"at\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@.str39 = private constant [3 x i8] c"si\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@.str40 = private constant [7 x i8] c"substr\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@.str41 = private constant [8 x i8] c"listlen\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi971EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str42 = private constant [9 x i8] c"getalias\00", align 1 ; <[9 x i8]*> [#uses=1] | |
@.str43 = private constant [11 x i8] c"prettylist\00", align 1 ; <[11 x i8]*> [#uses=1] | |
@.str44 = private constant [8 x i8] c"listdel\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1068EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str45 = private constant [8 x i8] c"indexof\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1069EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str46 = private constant [9 x i8] c"listfind\00", align 1 ; <[9 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1070EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str47 = private constant [9 x i8] c"looplist\00", align 1 ; <[9 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1071EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str48 = private constant [2 x i8] c"+\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@.str49 = private constant [3 x i8] c"ii\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1073EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str50 = private constant [2 x i8] c"*\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1074EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str51 = private constant [2 x i8] c"-\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1075EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str52 = private constant [3 x i8] c"+f\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@.str53 = private constant [3 x i8] c"ff\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1076EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str54 = private constant [3 x i8] c"*f\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1077EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str55 = private constant [3 x i8] c"-f\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1078EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str56 = private constant [2 x i8] c"=\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1079EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str57 = private constant [3 x i8] c"!=\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1080EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str58 = private constant [2 x i8] c"<\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1081EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str59 = private constant [2 x i8] c">\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1082EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str60 = private constant [3 x i8] c"<=\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1083EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str61 = private constant [3 x i8] c">=\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1084EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str62 = private constant [3 x i8] c"=f\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1085EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str63 = private constant [4 x i8] c"!=f\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1086EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str64 = private constant [3 x i8] c"<f\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1087EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str65 = private constant [3 x i8] c">f\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1088EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str66 = private constant [4 x i8] c"<=f\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1089EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str67 = private constant [4 x i8] c">=f\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1090EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str68 = private constant [2 x i8] c"^\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1091EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str69 = private constant [2 x i8] c"!\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@.str70 = private constant [2 x i8] c"i\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1092EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str71 = private constant [2 x i8] c"&\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1093EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str72 = private constant [2 x i8] c"|\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1094EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str73 = private constant [2 x i8] c"~\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1095EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str74 = private constant [3 x i8] c"^~\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1096EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str75 = private constant [3 x i8] c"&~\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1097EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str76 = private constant [3 x i8] c"|~\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1098EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str77 = private constant [3 x i8] c"<<\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1099EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str78 = private constant [3 x i8] c">>\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1100EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str79 = private constant [3 x i8] c"&&\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1106EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str80 = private constant [3 x i8] c"||\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1112EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str81 = private constant [4 x i8] c"div\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1114EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str82 = private constant [4 x i8] c"mod\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1115EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str83 = private constant [5 x i8] c"divf\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1116EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str84 = private constant [5 x i8] c"modf\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1117EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str85 = private constant [4 x i8] c"sin\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str86 = private constant [2 x i8] c"f\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1118EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str87 = private constant [4 x i8] c"cos\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1119EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str88 = private constant [4 x i8] c"tan\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1120EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str89 = private constant [5 x i8] c"asin\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1121EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str90 = private constant [5 x i8] c"acos\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1122EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str91 = private constant [5 x i8] c"atan\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1123EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str92 = private constant [5 x i8] c"sqrt\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1124EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str93 = private constant [4 x i8] c"pow\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1125EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str94 = private constant [5 x i8] c"loge\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1126EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str95 = private constant [5 x i8] c"log2\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1127EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str96 = private constant [6 x i8] c"log10\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1128EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str97 = private constant [4 x i8] c"exp\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1129EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str98 = private constant [4 x i8] c"min\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1135EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str99 = private constant [4 x i8] c"max\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1141EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str100 = private constant [5 x i8] c"minf\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1147EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str101 = private constant [5 x i8] c"maxf\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1153EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str102 = private constant [5 x i8] c"cond\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1165EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str103 = private constant [5 x i8] c"case\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@.str104 = private constant [3 x i8] c"iV\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1180EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str105 = private constant [6 x i8] c"casef\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@.str106 = private constant [3 x i8] c"fV\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1181EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str107 = private constant [6 x i8] c"cases\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@.str108 = private constant [3 x i8] c"sV\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1182EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str109 = private constant [4 x i8] c"rnd\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1184EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str110 = private constant [7 x i8] c"strcmp\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1185EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str111 = private constant [3 x i8] c"=s\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1186EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str112 = private constant [4 x i8] c"!=s\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1187EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str113 = private constant [3 x i8] c"<s\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1188EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str114 = private constant [3 x i8] c">s\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1189EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str115 = private constant [4 x i8] c"<=s\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1190EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str116 = private constant [4 x i8] c">=s\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1191EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str117 = private constant [5 x i8] c"echo\00", align 1 ; <[5 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1192EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str118 = private constant [6 x i8] c"error\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1193EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str119 = private constant [7 x i8] c"strstr\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1194EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str120 = private constant [7 x i8] c"strlen\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1195EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str121 = private constant [11 x i8] c"strreplace\00", align 1 ; <[11 x i8]*> [#uses=1] | |
@_ZN7_stdcmdILi1221EE4initE = global i8 0 ; <i8*> [#uses=1] | |
@.str122 = private constant [7 x i8] c"maxcon\00", align 1 ; <[7 x i8]*> [#uses=1] | |
@.str123 = private constant [8 x i8] c"somevar\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@somevar = global i32 0 ; <i32*> [#uses=2] | |
@.str124 = private constant [4 x i8] c";\0A\00\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str125 = private constant [20 x i8] c"unknown command: %s\00", align 1 ; <[20 x i8]*> [#uses=1] | |
@.str126 = private constant [35 x i8] c"builtin declared with illegal type\00", align 8 ; <[35 x i8]*> [#uses=1] | |
@.str127 = private constant [45 x i8] c"builtin declared with too many args (use V?)\00", align 8 ; <[45 x i8]*> [#uses=1] | |
@.str128 = private constant [25 x i8] c"%s = 0x%.6X (%d, %d, %d)\00", align 1 ; <[25 x i8]*> [#uses=1] | |
@.str129 = private constant [10 x i8] c"%s = 0x%X\00", align 1 ; <[10 x i8]*> [#uses=1] | |
@.str130 = private constant [8 x i8] c"%s = %d\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@.str131 = private constant [8 x i8] c"%s = %s\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@.str132 = private constant [10 x i8] c"%s = [%s]\00", align 1 ; <[10 x i8]*> [#uses=1] | |
@.str133 = private constant [10 x i8] c"%s = \22%s\22\00", align 1 ; <[10 x i8]*> [#uses=1] | |
@_ZGVZ10executeretPKcE6argids = internal global i64 0 ; <i64*> [#uses=3] | |
@.str134 = private constant [6 x i8] c"arg%d\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@.str135 = private constant [10 x i8] c"somevar 9\00", align 1 ; <[10 x i8]*> [#uses=1] | |
@.str136 = private constant [23 x i8] c"temp = (+ 22 $somevar)\00", align 1 ; <[23 x i8]*> [#uses=1] | |
@.str137 = private constant [62 x i8] c"if (> $temp 30) [ temp = (+ $temp 1) ] [ temp = (* $temp 2) ]\00", align 8 ; <[62 x i8]*> [#uses=1] | |
@.str138 = private constant [52 x i8] c"if (< $temp 30) [ temp = 0 ] [ temp = (+ $temp 1) ]\00", align 8 ; <[52 x i8]*> [#uses=1] | |
@.str139 = private constant [21 x i8] c"echo [Temp is] $temp\00", align 1 ; <[21 x i8]*> [#uses=1] | |
@.str140 = private constant [4 x i8] c"%d\0A\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str141 = private constant [6 x i8] c"x = 2\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@.str142 = private constant [9 x i8] c"push x 5\00", align 1 ; <[9 x i8]*> [#uses=1] | |
@.str143 = private constant [10 x i8] c"push x 11\00", align 1 ; <[10 x i8]*> [#uses=1] | |
@.str144 = private constant [6 x i8] c"pop x\00", align 1 ; <[6 x i8]*> [#uses=1] | |
@.str145 = private constant [8 x i8] c"echo $x\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@.str146 = private constant [30 x i8] c"greet = [ echo hello, $arg1 ]\00", align 1 ; <[30 x i8]*> [#uses=1] | |
@.str147 = private constant [15 x i8] c"greet everyone\00", align 1 ; <[15 x i8]*> [#uses=1] | |
@.str148 = private constant [2 x i8] c"0\00", align 1 ; <[2 x i8]*> [#uses=1] | |
@_ZL7bufnest = internal global i32 0 ; <i32*> [#uses=5] | |
@.str149 = private constant [9 x i8] c"\0D@\22/()[]\00", align 1 ; <[9 x i8]*> [#uses=1] | |
@.str150 = private constant [3 x i8] c"\0A\00\00", align 1 ; <[3 x i8]*> [#uses=1] | |
@.str151 = private constant [13 x i8] c"missing \22%c\22\00", align 1 ; <[13 x i8]*> [#uses=1] | |
@.str152 = private constant [4 x i8] c" \09\0D\00", align 1 ; <[4 x i8]*> [#uses=1] | |
@.str153 = private constant [8 x i8] c"/; \09\0D\0A\00\00", align 1 ; <[8 x i8]*> [#uses=1] | |
@_ZGVZ10parsemacroRPKciR6vectorIcEE5ident = internal global i64 0 ; <i64*> [#uses=3] | |
@commandmillis = global i32 -1 ; <i32*> [#uses=0] | |
@commandbuf = global [260 x i8] zeroinitializer, align 32 ; <[260 x i8]*> [#uses=0] | |
@commandaction = global i8* null ; <i8**> [#uses=0] | |
@commandprompt = global i8* null ; <i8**> [#uses=0] | |
@commandpos = global i32 -1 ; <i32*> [#uses=0] | |
@llvm.global_ctors = appending global [1 x %0] [%0 { i32 65535, void ()* @_GLOBAL__I__Z11exchangestrPcPKc }] ; <[1 x %0]*> [#uses=0] | |
define i8* @_Z11exchangestrPcPKc(i8* %o, i8* nocapture %n) { | |
entry: | |
%0 = icmp eq i8* %o, null ; <i1> [#uses=1] | |
br i1 %0, label %bb1, label %bb | |
bb: ; preds = %entry | |
tail call void @_ZdaPv(i8* %o) nounwind | |
br label %bb1 | |
bb1: ; preds = %bb, %entry | |
%1 = tail call i64 @strlen(i8* %n) nounwind readonly ; <i64> [#uses=2] | |
%2 = add i64 %1, 1 ; <i64> [#uses=2] | |
%3 = tail call i8* @_Znam(i64 %2) ; <i8*> [#uses=3] | |
%4 = tail call i8* @strncpy(i8* noalias %3, i8* noalias %n, i64 %2) nounwind ; <i8*> [#uses=0] | |
%5 = getelementptr inbounds i8* %3, i64 %1 ; <i8*> [#uses=1] | |
store i8 0, i8* %5, align 1 | |
ret i8* %3 | |
} | |
define internal void @_GLOBAL__I__Z11exchangestrPcPKc() { | |
entry: | |
%0 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str17, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_Z4pushPcS_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
%1 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str19, i64 0, i64 0), void ()* bitcast (void (i8*)* @_Z3popPc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str20, i64 0, i64 0)) ; <i8> [#uses=0] | |
%2 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([9 x i8]* @.str21, i64 0, i64 0), void ()* bitcast (void (i8*)* @_Z8resetvarPc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str20, i64 0, i64 0)) ; <i8> [#uses=0] | |
%3 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([6 x i8]* @.str22, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_Z5aliasPKcS0_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
%4 = tail call i32 @__cxa_atexit(void (i8*)* @__tcf_2, i8* null, i8* bitcast (i8** @__dso_handle to i8*)) nounwind ; <i32> [#uses=0] | |
%5 = tail call i32 @_Z8variablePKciiiPiPFvvEi(i8* getelementptr inbounds ([8 x i8]* @.str23, i64 0, i64 0), i32 25, i32 0, i32 0, i32* @_numargs, void ()* null, i32 0) ; <i32> [#uses=1] | |
store i32 %5, i32* @_numargs, align 4 | |
%6 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str24, i64 0, i64 0), void ()* bitcast (void (i8*, i8*, i8*)* @_ZN7_stdcmdILi844EE3runEPcS1_S1_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str25, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi844EE4initE, align 1 | |
%7 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str26, i64 0, i64 0), void ()* bitcast (void (i8*, i8*, i8*)* @_ZN7_stdcmdILi845EE3runEPcS1_S1_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str25, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi845EE4initE, align 1 | |
%8 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str27, i64 0, i64 0), void ()* bitcast (void (i8*, i32*, i8*)* @_ZN7_stdcmdILi858EE3runEPcPiS1_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str28, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi858EE4initE, align 1 | |
%9 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([10 x i8]* @.str29, i64 0, i64 0), void ()* bitcast (void (i8*, i32*, i8*, i8*)* @_ZN7_stdcmdILi872EE3runEPcPiS1_S1_ to void ()*), i8* getelementptr inbounds ([5 x i8]* @.str30, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi872EE4initE, align 1 | |
%10 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([6 x i8]* @.str31, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi873EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi873EE4initE, align 1 | |
%11 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str32, i64 0, i64 0), void ()* bitcast (void (i8*)* @_Z6concatPKc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str33, i64 0, i64 0)) ; <i8> [#uses=0] | |
%12 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str34, i64 0, i64 0), void ()* bitcast (void (i8*)* @_Z6resultPKc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str20, i64 0, i64 0)) ; <i8> [#uses=0] | |
%13 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([11 x i8]* @.str35, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_Z10concatwordPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
%14 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str37, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_Z6formatPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
%15 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str38, i64 0, i64 0), void ()* bitcast (void (i8*, i32*)* @_Z2atPcPi to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str39, i64 0, i64 0)) ; <i8> [#uses=0] | |
%16 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str40, i64 0, i64 0), void ()* bitcast (void (i8*, i32*, i8*)* @_Z6substrPcPiS_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str28, i64 0, i64 0)) ; <i8> [#uses=0] | |
%17 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([8 x i8]* @.str41, i64 0, i64 0), void ()* bitcast (void (i8*)* @_ZN7_stdcmdILi971EE3runEPc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str20, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi971EE4initE, align 1 | |
%18 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([9 x i8]* @.str42, i64 0, i64 0), void ()* bitcast (void (i8*)* @_Z9getalias_Pc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str20, i64 0, i64 0)) ; <i8> [#uses=0] | |
%19 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([11 x i8]* @.str43, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_Z10prettylistPKcS0_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
%20 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([8 x i8]* @.str44, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1068EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1068EE4initE, align 1 | |
%21 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([8 x i8]* @.str45, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1069EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1069EE4initE, align 1 | |
%22 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([9 x i8]* @.str46, i64 0, i64 0), void ()* bitcast (void (i8*, i8*, i8*)* @_ZN7_stdcmdILi1070EE3runEPcS1_S1_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str25, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1070EE4initE, align 1 | |
%23 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([9 x i8]* @.str47, i64 0, i64 0), void ()* bitcast (void (i8*, i8*, i8*)* @_ZN7_stdcmdILi1071EE3runEPcS1_S1_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str25, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1071EE4initE, align 1 | |
%24 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str48, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1073EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1073EE4initE, align 1 | |
%25 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str50, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1074EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1074EE4initE, align 1 | |
%26 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str51, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1075EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1075EE4initE, align 1 | |
%27 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str52, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1076EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1076EE4initE, align 1 | |
%28 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str54, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1077EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1077EE4initE, align 1 | |
%29 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str55, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1078EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1078EE4initE, align 1 | |
%30 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str56, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1079EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1079EE4initE, align 1 | |
%31 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str57, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1080EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1080EE4initE, align 1 | |
%32 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str58, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1081EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1081EE4initE, align 1 | |
%33 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str59, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1082EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1082EE4initE, align 1 | |
%34 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str60, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1083EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1083EE4initE, align 1 | |
%35 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str61, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1084EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1084EE4initE, align 1 | |
%36 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str62, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1085EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1085EE4initE, align 1 | |
%37 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str63, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1086EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1086EE4initE, align 1 | |
%38 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str64, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1087EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1087EE4initE, align 1 | |
%39 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str65, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1088EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1088EE4initE, align 1 | |
%40 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str66, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1089EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1089EE4initE, align 1 | |
%41 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str67, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1090EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1090EE4initE, align 1 | |
%42 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str68, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1091EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1091EE4initE, align 1 | |
%43 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str69, i64 0, i64 0), void ()* bitcast (void (i32*)* @_ZN7_stdcmdILi1092EE3runEPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str70, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1092EE4initE, align 1 | |
%44 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str71, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1093EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1093EE4initE, align 1 | |
%45 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str72, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1094EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1094EE4initE, align 1 | |
%46 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([2 x i8]* @.str73, i64 0, i64 0), void ()* bitcast (void (i32*)* @_ZN7_stdcmdILi1095EE3runEPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str70, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1095EE4initE, align 1 | |
%47 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str74, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1096EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1096EE4initE, align 1 | |
%48 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str75, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1097EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1097EE4initE, align 1 | |
%49 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str76, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1098EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1098EE4initE, align 1 | |
%50 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str77, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1099EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1099EE4initE, align 1 | |
%51 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str78, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1100EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1100EE4initE, align 1 | |
%52 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str79, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1106EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1106EE4initE, align 1 | |
%53 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str80, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1112EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1112EE4initE, align 1 | |
%54 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str81, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1114EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1114EE4initE, align 1 | |
%55 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str82, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1115EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1115EE4initE, align 1 | |
%56 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str83, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1116EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1116EE4initE, align 1 | |
%57 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str84, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1117EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1117EE4initE, align 1 | |
%58 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str85, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1118EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1118EE4initE, align 1 | |
%59 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str87, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1119EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1119EE4initE, align 1 | |
%60 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str88, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1120EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1120EE4initE, align 1 | |
%61 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str89, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1121EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1121EE4initE, align 1 | |
%62 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str90, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1122EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1122EE4initE, align 1 | |
%63 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str91, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1123EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1123EE4initE, align 1 | |
%64 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str92, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1124EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1124EE4initE, align 1 | |
%65 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str93, i64 0, i64 0), void ()* bitcast (void (float*, float*)* @_ZN7_stdcmdILi1125EE3runEPfS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str53, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1125EE4initE, align 1 | |
%66 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str94, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1126EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1126EE4initE, align 1 | |
%67 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str95, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1127EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1127EE4initE, align 1 | |
%68 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([6 x i8]* @.str96, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1128EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1128EE4initE, align 1 | |
%69 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str97, i64 0, i64 0), void ()* bitcast (void (float*)* @_ZN7_stdcmdILi1129EE3runEPf to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str86, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1129EE4initE, align 1 | |
%70 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str98, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1135EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1135EE4initE, align 1 | |
%71 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str99, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1141EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1141EE4initE, align 1 | |
%72 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str100, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1147EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1147EE4initE, align 1 | |
%73 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str101, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1153EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1153EE4initE, align 1 | |
%74 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str102, i64 0, i64 0), void ()* bitcast (void (i8**, i32*)* @_ZN7_stdcmdILi1165EE3runEPPcPi to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str36, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1165EE4initE, align 1 | |
%75 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str103, i64 0, i64 0), void ()* bitcast (void (i32*, i8**, i32*)* @_ZN7_stdcmdILi1180EE3runEPiPPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str104, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1180EE4initE, align 1 | |
%76 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([6 x i8]* @.str105, i64 0, i64 0), void ()* bitcast (void (float*, i8**, i32*)* @_ZN7_stdcmdILi1181EE3runEPfPPcPi to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str106, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1181EE4initE, align 1 | |
%77 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([6 x i8]* @.str107, i64 0, i64 0), void ()* bitcast (void (i8*, i8**, i32*)* @_ZN7_stdcmdILi1182EE3runEPcPS1_Pi to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str108, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1182EE4initE, align 1 | |
%78 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str109, i64 0, i64 0), void ()* bitcast (void (i32*, i32*)* @_ZN7_stdcmdILi1184EE3runEPiS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str49, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1184EE4initE, align 1 | |
%79 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str110, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1185EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1185EE4initE, align 1 | |
%80 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str111, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1186EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1186EE4initE, align 1 | |
%81 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str112, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1187EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1187EE4initE, align 1 | |
%82 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str113, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1188EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1188EE4initE, align 1 | |
%83 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([3 x i8]* @.str114, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1189EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1189EE4initE, align 1 | |
%84 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str115, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1190EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1190EE4initE, align 1 | |
%85 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([4 x i8]* @.str116, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1191EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1191EE4initE, align 1 | |
%86 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([5 x i8]* @.str117, i64 0, i64 0), void ()* bitcast (void (i8*)* @_ZN7_stdcmdILi1192EE3runEPc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str33, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1192EE4initE, align 1 | |
%87 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([6 x i8]* @.str118, i64 0, i64 0), void ()* bitcast (void (i8*)* @_ZN7_stdcmdILi1193EE3runEPc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str33, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1193EE4initE, align 1 | |
%88 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str119, i64 0, i64 0), void ()* bitcast (void (i8*, i8*)* @_ZN7_stdcmdILi1194EE3runEPcS1_ to void ()*), i8* getelementptr inbounds ([3 x i8]* @.str18, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1194EE4initE, align 1 | |
%89 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([7 x i8]* @.str120, i64 0, i64 0), void ()* bitcast (void (i8*)* @_ZN7_stdcmdILi1195EE3runEPc to void ()*), i8* getelementptr inbounds ([2 x i8]* @.str20, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1195EE4initE, align 1 | |
%90 = tail call zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* getelementptr inbounds ([11 x i8]* @.str121, i64 0, i64 0), void ()* bitcast (void (i8*, i8*, i8*)* @_ZN7_stdcmdILi1221EE3runEPcS1_S1_ to void ()*), i8* getelementptr inbounds ([4 x i8]* @.str25, i64 0, i64 0)) ; <i8> [#uses=0] | |
store i8 0, i8* @_ZN7_stdcmdILi1221EE4initE, align 1 | |
%91 = tail call i32 @__cxa_atexit(void (i8*)* @__tcf_3, i8* null, i8* bitcast (i8** @__dso_handle to i8*)) nounwind ; <i32> [#uses=0] | |
%92 = tail call i32 @_Z8variablePKciiiPiPFvvEi(i8* getelementptr inbounds ([7 x i8]* @.str122, i64 0, i64 0), i32 10, i32 200, i32 1000, i32* @maxcon, void ()* @_Z10var_maxconv, i32 1) ; <i32> [#uses=1] | |
store i32 %92, i32* @maxcon, align 4 | |
%93 = tail call i32 @_Z8variablePKciiiPiPFvvEi(i8* getelementptr inbounds ([8 x i8]* @.str123, i64 0, i64 0), i32 0, i32 0, i32 1024, i32* @somevar, void ()* null, i32 1) ; <i32> [#uses=1] | |
store i32 %93, i32* @somevar, align 4 | |
ret void | |
} | |
define linkonce_odr void @_ZN5identD1Ev(%struct.ident* nocapture %this) nounwind align 2 { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %this, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %0, align 8 | |
ret void | |
} | |
define linkonce_odr void @_ZN5identD0Ev(%struct.ident* %this) nounwind align 2 { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %this, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %0, align 8 | |
%1 = bitcast %struct.ident* %this to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %1) nounwind | |
ret void | |
} | |
define linkonce_odr void @_ZN5ident7changedEv(%struct.ident* nocapture %this) align 2 { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %this, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%1 = load void ()** %0, align 8 ; <void ()*> [#uses=2] | |
%2 = icmp eq void ()* %1, null ; <i1> [#uses=1] | |
br i1 %2, label %return, label %bb | |
bb: ; preds = %entry | |
tail call void %1() | |
ret void | |
return: ; preds = %entry | |
ret void | |
} | |
define i8* @_Z11parsestringPKc(i8* %p) nounwind readonly { | |
entry: | |
br label %bb5 | |
bb2: ; preds = %bb5 | |
%0 = getelementptr inbounds i8* %p_addr.1, i64 1 ; <i8*> [#uses=3] | |
%1 = load i8* %0, align 1 ; <i8> [#uses=1] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb7, label %bb4 | |
bb4: ; preds = %bb5, %bb2 | |
%p_addr.0 = phi i8* [ %0, %bb2 ], [ %p_addr.1, %bb5 ] ; <i8*> [#uses=1] | |
%3 = getelementptr inbounds i8* %p_addr.0, i64 1 ; <i8*> [#uses=1] | |
br label %bb5 | |
bb5: ; preds = %bb4, %entry | |
%p_addr.1 = phi i8* [ %p, %entry ], [ %3, %bb4 ] ; <i8*> [#uses=7] | |
%4 = load i8* %p_addr.1, align 1 ; <i8> [#uses=1] | |
switch i8 %4, label %bb4 [ | |
i8 0, label %bb7 | |
i8 10, label %bb7 | |
i8 13, label %bb7 | |
i8 34, label %bb7 | |
i8 94, label %bb2 | |
] | |
bb7: ; preds = %bb5, %bb5, %bb5, %bb5, %bb2 | |
%.0 = phi i8* [ %0, %bb2 ], [ %p_addr.1, %bb5 ], [ %p_addr.1, %bb5 ], [ %p_addr.1, %bb5 ], [ %p_addr.1, %bb5 ] ; <i8*> [#uses=1] | |
ret i8* %.0 | |
} | |
define i32 @_Z12escapestringPcPKcS1_(i8* %dst, i8* %src, i8* %end) nounwind { | |
entry: | |
br label %bb8 | |
bb: ; preds = %bb8 | |
%0 = load i8* %src_addr.0, align 1 ; <i8> [#uses=2] | |
%1 = getelementptr inbounds i8* %src_addr.0, i64 1 ; <i8*> [#uses=3] | |
%2 = icmp eq i8 %0, 94 ; <i1> [#uses=1] | |
br i1 %2, label %bb1, label %bb7 | |
bb1: ; preds = %bb | |
%3 = icmp ult i8* %1, %end ; <i1> [#uses=1] | |
br i1 %3, label %bb2, label %bb9 | |
bb2: ; preds = %bb1 | |
%4 = load i8* %1, align 1 ; <i8> [#uses=2] | |
%5 = sext i8 %4 to i32 ; <i32> [#uses=1] | |
%6 = getelementptr inbounds i8* %src_addr.0, i64 2 ; <i8*> [#uses=4] | |
switch i32 %5, label %bb6 [ | |
i32 102, label %bb5 | |
i32 110, label %bb3 | |
i32 116, label %bb4 | |
] | |
bb3: ; preds = %bb2 | |
store i8 10, i8* %dst_addr.0, align 1 | |
br label %bb8.backedge | |
bb8.backedge: ; preds = %bb7, %bb6, %bb5, %bb4, %bb3 | |
%src_addr.0.be = phi i8* [ %6, %bb6 ], [ %6, %bb4 ], [ %6, %bb3 ], [ %6, %bb5 ], [ %1, %bb7 ] ; <i8*> [#uses=1] | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb8 | |
bb4: ; preds = %bb2 | |
store i8 9, i8* %dst_addr.0, align 1 | |
br label %bb8.backedge | |
bb5: ; preds = %bb2 | |
store i8 12, i8* %dst_addr.0, align 1 | |
br label %bb8.backedge | |
bb6: ; preds = %bb2 | |
store i8 %4, i8* %dst_addr.0, align 1 | |
br label %bb8.backedge | |
bb7: ; preds = %bb | |
store i8 %0, i8* %dst_addr.0, align 1 | |
br label %bb8.backedge | |
bb8: ; preds = %bb8.backedge, %entry | |
%indvar = phi i64 [ %indvar.next, %bb8.backedge ], [ 0, %entry ] ; <i64> [#uses=3] | |
%src_addr.0 = phi i8* [ %src_addr.0.be, %bb8.backedge ], [ %src, %entry ] ; <i8*> [#uses=4] | |
%dst_addr.0 = getelementptr i8* %dst, i64 %indvar ; <i8*> [#uses=5] | |
%7 = icmp ult i8* %src_addr.0, %end ; <i1> [#uses=1] | |
br i1 %7, label %bb, label %bb9 | |
bb9: ; preds = %bb8, %bb1 | |
%8 = trunc i64 %indvar to i32 ; <i32> [#uses=1] | |
ret i32 %8 | |
} | |
define void @_Z6seedMTj(i32 %seed) nounwind { | |
bb.nph: | |
%0 = or i32 %seed, 1 ; <i32> [#uses=2] | |
store i32 0, i32* @_ZL4left, align 4 | |
store i32 %0, i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 0), align 32 | |
br label %bb | |
bb: ; preds = %bb, %bb.nph | |
%indvar = phi i64 [ 0, %bb.nph ], [ %tmp, %bb ] ; <i64> [#uses=1] | |
%x.03 = phi i32 [ %0, %bb.nph ], [ %1, %bb ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar, 1 ; <i64> [#uses=3] | |
%s.04 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %tmp ; <i32*> [#uses=1] | |
%1 = mul i32 %x.03, 69069 ; <i32> [#uses=2] | |
store i32 %1, i32* %s.04, align 4 | |
%exitcond = icmp eq i64 %tmp, 623 ; <i1> [#uses=1] | |
br i1 %exitcond, label %return, label %bb | |
return: ; preds = %bb | |
ret void | |
} | |
declare void @_ZdaPv(i8*) nounwind | |
define internal void @__tcf_3(i8* nocapture %unnamed_arg) nounwind { | |
entry: | |
%0 = load i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 ; <i32> [#uses=3] | |
%1 = icmp sgt i32 %0, 0 ; <i1> [#uses=1] | |
br i1 %1, label %bb.nph.i.i, label %_ZN6vectorI5clineE6shrinkEi.exit.i | |
bb.nph.i.i: ; preds = %entry | |
%tmp.i.i = sub i32 0, %0 ; <i32> [#uses=1] | |
%tmp4.i.i = icmp sgt i32 %tmp.i.i, -1 ; <i1> [#uses=1] | |
%tmp.i.op.i = add i32 %0, -1 ; <i32> [#uses=1] | |
%tmp5.i.i = select i1 %tmp4.i.i, i32 %tmp.i.op.i, i32 0 ; <i32> [#uses=1] | |
store i32 %tmp5.i.i, i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2) | |
br label %_ZN6vectorI5clineE6shrinkEi.exit.i | |
_ZN6vectorI5clineE6shrinkEi.exit.i: ; preds = %bb.nph.i.i, %entry | |
%2 = load %struct.cline** getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 0), align 16 ; <%struct.cline*> [#uses=2] | |
%3 = icmp eq %struct.cline* %2, null ; <i1> [#uses=1] | |
br i1 %3, label %_ZN6vectorI5clineED1Ev.exit, label %bb1.i | |
bb1.i: ; preds = %_ZN6vectorI5clineE6shrinkEi.exit.i | |
%4 = bitcast %struct.cline* %2 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %4) nounwind | |
ret void | |
_ZN6vectorI5clineED1Ev.exit: ; preds = %_ZN6vectorI5clineE6shrinkEi.exit.i | |
ret void | |
} | |
define internal void @__tcf_2(i8* nocapture %unnamed_arg) nounwind { | |
entry: | |
%0 = load i32* getelementptr inbounds (%"struct.vector<vector<char>*>"* @_ZL8wordbufs, i64 0, i32 2), align 4 ; <i32> [#uses=3] | |
%1 = icmp sgt i32 %0, 0 ; <i1> [#uses=1] | |
br i1 %1, label %bb.nph.i.i, label %_ZN6vectorIPS_IcEE6shrinkEi.exit.i | |
bb.nph.i.i: ; preds = %entry | |
%tmp.i.i = sub i32 0, %0 ; <i32> [#uses=1] | |
%tmp4.i.i = icmp sgt i32 %tmp.i.i, -1 ; <i1> [#uses=1] | |
%tmp.i.op.i = add i32 %0, -1 ; <i32> [#uses=1] | |
%tmp5.i.i = select i1 %tmp4.i.i, i32 %tmp.i.op.i, i32 0 ; <i32> [#uses=1] | |
store i32 %tmp5.i.i, i32* getelementptr inbounds (%"struct.vector<vector<char>*>"* @_ZL8wordbufs, i64 0, i32 2) | |
br label %_ZN6vectorIPS_IcEE6shrinkEi.exit.i | |
_ZN6vectorIPS_IcEE6shrinkEi.exit.i: ; preds = %bb.nph.i.i, %entry | |
%2 = load %struct.cline*** getelementptr inbounds (%"struct.vector<vector<char>*>"* @_ZL8wordbufs, i64 0, i32 0), align 16 ; <%struct.cline**> [#uses=2] | |
%3 = icmp eq %struct.cline** %2, null ; <i1> [#uses=1] | |
br i1 %3, label %_ZN6vectorIPS_IcEED1Ev.exit, label %bb1.i | |
bb1.i: ; preds = %_ZN6vectorIPS_IcEE6shrinkEi.exit.i | |
%4 = bitcast %struct.cline** %2 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %4) nounwind | |
ret void | |
_ZN6vectorIPS_IcEED1Ev.exit: ; preds = %_ZN6vectorIPS_IcEE6shrinkEi.exit.i | |
ret void | |
} | |
define void @_Z10var_maxconv() nounwind { | |
entry: | |
%0 = load i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 ; <i32> [#uses=2] | |
%1 = load i32* @maxcon, align 4 ; <i32> [#uses=1] | |
%2 = icmp sgt i32 %0, %1 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %return | |
bb: ; preds = %bb2.backedge, %entry | |
%3 = phi i32 [ %10, %bb2.backedge ], [ %0, %entry ] ; <i32> [#uses=1] | |
%4 = load %struct.cline** getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 0), align 16 ; <%struct.cline*> [#uses=1] | |
%5 = add nsw i32 %3, -1 ; <i32> [#uses=3] | |
store i32 %5, i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 | |
%6 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%7 = getelementptr inbounds %struct.cline* %4, i64 %6, i32 0 ; <i8**> [#uses=1] | |
%8 = load i8** %7, align 8 ; <i8*> [#uses=2] | |
%9 = icmp eq i8* %8, null ; <i1> [#uses=1] | |
br i1 %9, label %bb2.backedge, label %bb1 | |
bb1: ; preds = %bb | |
tail call void @_ZdaPv(i8* %8) nounwind | |
%.pre = load i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
br label %bb2.backedge | |
bb2.backedge: ; preds = %bb1, %bb | |
%10 = phi i32 [ %.pre, %bb1 ], [ %5, %bb ] ; <i32> [#uses=2] | |
%11 = load i32* @maxcon, align 4 ; <i32> [#uses=1] | |
%12 = icmp sgt i32 %10, %11 ; <i1> [#uses=1] | |
br i1 %12, label %bb, label %return | |
return: ; preds = %bb2.backedge, %entry | |
ret void | |
} | |
define internal void @__tcf_0(i8* nocapture %unnamed_arg) nounwind { | |
entry: | |
%0 = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 ; <i32> [#uses=3] | |
%1 = icmp sgt i32 %0, 0 ; <i1> [#uses=1] | |
br i1 %1, label %bb.nph.i.i, label %_ZN6vectorIcE6shrinkEi.exit.i | |
bb.nph.i.i: ; preds = %entry | |
%tmp.i.i = sub i32 0, %0 ; <i32> [#uses=1] | |
%tmp4.i.i = icmp sgt i32 %tmp.i.i, -1 ; <i1> [#uses=1] | |
%tmp.i.op.i = add i32 %0, -1 ; <i32> [#uses=1] | |
%tmp5.i.i = select i1 %tmp4.i.i, i32 %tmp.i.op.i, i32 0 ; <i32> [#uses=1] | |
store i32 %tmp5.i.i, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2) | |
br label %_ZN6vectorIcE6shrinkEi.exit.i | |
_ZN6vectorIcE6shrinkEi.exit.i: ; preds = %bb.nph.i.i, %entry | |
%2 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=2] | |
%3 = icmp eq i8* %2, null ; <i1> [#uses=1] | |
br i1 %3, label %_ZN6vectorIcED1Ev.exit, label %bb1.i | |
bb1.i: ; preds = %_ZN6vectorIcE6shrinkEi.exit.i | |
tail call void @_ZdaPv(i8* %2) nounwind | |
ret void | |
_ZN6vectorIcED1Ev.exit: ; preds = %_ZN6vectorIcE6shrinkEi.exit.i | |
ret void | |
} | |
define internal void @__tcf_1(i8* nocapture %unnamed_arg) nounwind { | |
entry: | |
%0 = load i32* getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 2), align 4 ; <i32> [#uses=3] | |
%1 = icmp sgt i32 %0, 0 ; <i1> [#uses=1] | |
br i1 %1, label %bb.nph.i.i, label %_ZN6vectorIP5identE6shrinkEi.exit.i | |
bb.nph.i.i: ; preds = %entry | |
%tmp.i.i = sub i32 0, %0 ; <i32> [#uses=1] | |
%tmp4.i.i = icmp sgt i32 %tmp.i.i, -1 ; <i1> [#uses=1] | |
%tmp.i.op.i = add i32 %0, -1 ; <i32> [#uses=1] | |
%tmp5.i.i = select i1 %tmp4.i.i, i32 %tmp.i.op.i, i32 0 ; <i32> [#uses=1] | |
store i32 %tmp5.i.i, i32* getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 2) | |
br label %_ZN6vectorIP5identE6shrinkEi.exit.i | |
_ZN6vectorIP5identE6shrinkEi.exit.i: ; preds = %bb.nph.i.i, %entry | |
%2 = load %struct.ident*** getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 0), align 16 ; <%struct.ident**> [#uses=2] | |
%3 = icmp eq %struct.ident** %2, null ; <i1> [#uses=1] | |
br i1 %3, label %_ZN6vectorIP5identED1Ev.exit, label %bb1.i | |
bb1.i: ; preds = %_ZN6vectorIP5identE6shrinkEi.exit.i | |
%4 = bitcast %struct.ident** %2 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %4) nounwind | |
ret void | |
_ZN6vectorIP5identED1Ev.exit: ; preds = %_ZN6vectorIP5identE6shrinkEi.exit.i | |
ret void | |
} | |
declare i32 @vsnprintf(i8* noalias nocapture, i64, i8* noalias nocapture, %struct.__va_list_tag*) nounwind | |
define void @_Z5fatalPKcz(i8* nocapture %s, ...) noreturn nounwind { | |
entry: | |
%msg = alloca [260 x i8], align 1 ; <[260 x i8]*> [#uses=2] | |
%ap = alloca [1 x %struct.__va_list_tag], align 8 ; <[1 x %struct.__va_list_tag]*> [#uses=2] | |
%0 = load i32* @_ZZ5fatalPKczE6errors, align 4 ; <i32> [#uses=1] | |
%1 = add nsw i32 %0, 1 ; <i32> [#uses=2] | |
store i32 %1, i32* @_ZZ5fatalPKczE6errors, align 4 | |
%2 = icmp slt i32 %1, 3 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%3 = bitcast [1 x %struct.__va_list_tag]* %ap to i8* ; <i8*> [#uses=2] | |
call void @llvm.va_start(i8* %3) | |
%4 = getelementptr inbounds [260 x i8]* %msg, i64 0, i64 0 ; <i8*> [#uses=2] | |
%5 = getelementptr inbounds [1 x %struct.__va_list_tag]* %ap, i64 0, i64 0 ; <%struct.__va_list_tag*> [#uses=1] | |
%6 = call i32 @vsnprintf(i8* noalias %4, i64 260, i8* noalias %s, %struct.__va_list_tag* %5) nounwind ; <i32> [#uses=0] | |
%7 = getelementptr inbounds [260 x i8]* %msg, i64 0, i64 259 ; <i8*> [#uses=1] | |
store i8 0, i8* %7, align 1 | |
call void @llvm.va_end(i8* %3) | |
%8 = call i32 @puts(i8* %4) ; <i32> [#uses=0] | |
br label %bb1 | |
bb1: ; preds = %bb, %entry | |
call void @exit(i32 1) noreturn nounwind | |
unreachable | |
} | |
declare void @llvm.va_start(i8*) nounwind | |
declare void @llvm.va_end(i8*) nounwind | |
declare i32 @puts(i8* nocapture) nounwind | |
declare void @exit(i32) noreturn nounwind | |
define linkonce_odr void @_ZN15stringformatterclEPKcz(%struct.stringformatter* nocapture %this, i8* nocapture %fmt, ...) nounwind align 2 { | |
entry: | |
%v = alloca [1 x %struct.__va_list_tag], align 8 ; <[1 x %struct.__va_list_tag]*> [#uses=2] | |
%0 = bitcast [1 x %struct.__va_list_tag]* %v to i8* ; <i8*> [#uses=2] | |
call void @llvm.va_start(i8* %0) | |
%1 = getelementptr inbounds %struct.stringformatter* %this, i64 0, i32 0 ; <i8**> [#uses=1] | |
%2 = load i8** %1, align 8 ; <i8*> [#uses=2] | |
%3 = getelementptr inbounds [1 x %struct.__va_list_tag]* %v, i64 0, i64 0 ; <%struct.__va_list_tag*> [#uses=1] | |
%4 = call i32 @vsnprintf(i8* noalias %2, i64 260, i8* noalias %fmt, %struct.__va_list_tag* %3) nounwind ; <i32> [#uses=0] | |
%5 = getelementptr inbounds i8* %2, i64 259 ; <i8*> [#uses=1] | |
store i8 0, i8* %5, align 1 | |
call void @llvm.va_end(i8* %0) | |
ret void | |
} | |
define i8* @_Z8floatstrf(float %v) nounwind { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%2 = add nsw i32 %1, 1 ; <i32> [#uses=1] | |
%3 = srem i32 %2, 3 ; <i32> [#uses=2] | |
store i32 %3, i32* @_ZL6retidx, align 4 | |
%4 = fpext float %v to double ; <double> [#uses=1] | |
%5 = fptosi float %v to i32 ; <i32> [#uses=1] | |
%6 = sitofp i32 %5 to float ; <float> [#uses=1] | |
%7 = fcmp oeq float %6, %v ; <i1> [#uses=1] | |
%iftmp.145.0 = select i1 %7, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%8 = getelementptr inbounds [5 x i8]* %iftmp.145.0, i64 0, i64 0 ; <i8*> [#uses=1] | |
%9 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%10 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %9, i64 0 ; <i8*> [#uses=1] | |
%11 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %10, i8** %11, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %8, double %4) | |
%12 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%13 = sext i32 %12 to i64 ; <i64> [#uses=1] | |
%14 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %13, i64 0 ; <i8*> [#uses=1] | |
ret i8* %14 | |
} | |
define i8* @_Z6intstri(i32 %v) nounwind { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%2 = add nsw i32 %1, 1 ; <i32> [#uses=1] | |
%3 = srem i32 %2, 3 ; <i32> [#uses=2] | |
store i32 %3, i32* @_ZL6retidx, align 4 | |
%4 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%5 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %4, i64 0 ; <i8*> [#uses=1] | |
%6 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %5, i8** %6, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %v) | |
%7 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
ret i8* %9 | |
} | |
define i32 @_Z8reloadMTv() nounwind { | |
entry: | |
%0 = load i32* @_ZL4left, align 4 ; <i32> [#uses=1] | |
%1 = icmp slt i32 %0, -1 ; <i1> [#uses=1] | |
br i1 %1, label %bb, label %bb.nph38 | |
bb: ; preds = %entry | |
%2 = tail call i64 @time(i64* null) nounwind ; <i64> [#uses=1] | |
%3 = trunc i64 %2 to i32 ; <i32> [#uses=1] | |
%4 = or i32 %3, 1 ; <i32> [#uses=2] | |
store i32 0, i32* @_ZL4left, align 4 | |
store i32 %4, i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 0), align 32 | |
br label %bb.i | |
bb.i: ; preds = %bb.i, %bb | |
%indvar.i = phi i64 [ 0, %bb ], [ %tmp57, %bb.i ] ; <i64> [#uses=1] | |
%x.03.i = phi i32 [ %4, %bb ], [ %5, %bb.i ] ; <i32> [#uses=1] | |
%tmp57 = add i64 %indvar.i, 1 ; <i64> [#uses=3] | |
%s.04.i = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %tmp57 ; <i32*> [#uses=1] | |
%5 = mul i32 %x.03.i, 69069 ; <i32> [#uses=2] | |
store i32 %5, i32* %s.04.i, align 4 | |
%exitcond56 = icmp eq i64 %tmp57, 623 ; <i1> [#uses=1] | |
br i1 %exitcond56, label %bb.nph38, label %bb.i | |
bb.nph38: ; preds = %bb.i, %entry | |
store i32 623, i32* @_ZL4left, align 4 | |
store i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 1), i32** @_ZL4next, align 8 | |
%6 = load i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 0), align 32 ; <i32> [#uses=1] | |
%s1.031 = load i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 1), align 4 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb2, %bb.nph38 | |
%indvar49 = phi i64 [ 0, %bb.nph38 ], [ %indvar.next50, %bb2 ] ; <i64> [#uses=4] | |
%s1.037 = phi i32 [ %s1.031, %bb.nph38 ], [ %s1.0, %bb2 ] ; <i32> [#uses=4] | |
%s0.035 = phi i32 [ %6, %bb.nph38 ], [ %s1.037, %bb2 ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar49, 397 ; <i64> [#uses=1] | |
%pM.034 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %tmp ; <i32*> [#uses=1] | |
%p0.033 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %indvar49 ; <i32*> [#uses=1] | |
%7 = load i32* %pM.034, align 4 ; <i32> [#uses=1] | |
%8 = and i32 %s0.035, -2147483648 ; <i32> [#uses=1] | |
%9 = and i32 %s1.037, 2147483646 ; <i32> [#uses=1] | |
%10 = or i32 %9, %8 ; <i32> [#uses=1] | |
%11 = lshr i32 %10, 1 ; <i32> [#uses=1] | |
%12 = and i32 %s1.037, 1 ; <i32> [#uses=1] | |
%toBool = icmp eq i32 %12, 0 ; <i1> [#uses=1] | |
%iftmp.205.0 = select i1 %toBool, i32 0, i32 -1727483681 ; <i32> [#uses=1] | |
%13 = xor i32 %11, %iftmp.205.0 ; <i32> [#uses=1] | |
%14 = xor i32 %13, %7 ; <i32> [#uses=1] | |
store i32 %14, i32* %p0.033, align 4 | |
%tmp54 = add i64 %indvar49, 2 ; <i64> [#uses=1] | |
%p2.032 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %tmp54 ; <i32*> [#uses=1] | |
%s1.0 = load i32* %p2.032, align 4 ; <i32> [#uses=2] | |
%indvar.next50 = add i64 %indvar49, 1 ; <i64> [#uses=2] | |
%exitcond51 = icmp eq i64 %indvar.next50, 227 ; <i1> [#uses=1] | |
br i1 %exitcond51, label %bb9, label %bb2 | |
bb9: ; preds = %bb9.bb9_crit_edge, %bb2 | |
%indvar = phi i64 [ %indvar.next, %bb9.bb9_crit_edge ], [ 0, %bb2 ] ; <i64> [#uses=4] | |
%s1.127 = phi i32 [ %23, %bb9.bb9_crit_edge ], [ %s1.0, %bb2 ] ; <i32> [#uses=4] | |
%s0.126 = phi i32 [ %s1.127, %bb9.bb9_crit_edge ], [ %s1.037, %bb2 ] ; <i32> [#uses=1] | |
%pM.125 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %indvar ; <i32*> [#uses=1] | |
%.sum = add i64 %indvar, 227 ; <i64> [#uses=1] | |
%p0.124 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %.sum ; <i32*> [#uses=1] | |
%15 = load i32* %pM.125, align 4 ; <i32> [#uses=1] | |
%16 = and i32 %s0.126, -2147483648 ; <i32> [#uses=1] | |
%17 = and i32 %s1.127, 2147483646 ; <i32> [#uses=1] | |
%18 = or i32 %17, %16 ; <i32> [#uses=1] | |
%19 = lshr i32 %18, 1 ; <i32> [#uses=1] | |
%20 = and i32 %s1.127, 1 ; <i32> [#uses=1] | |
%toBool10 = icmp eq i32 %20, 0 ; <i1> [#uses=1] | |
%iftmp.207.0 = select i1 %toBool10, i32 0, i32 -1727483681 ; <i32> [#uses=1] | |
%21 = xor i32 %19, %iftmp.207.0 ; <i32> [#uses=1] | |
%22 = xor i32 %21, %15 ; <i32> [#uses=1] | |
store i32 %22, i32* %p0.124, align 4 | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next, 396 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb16, label %bb9.bb9_crit_edge | |
bb9.bb9_crit_edge: ; preds = %bb9 | |
%.sum59 = add i64 %indvar, 229 ; <i64> [#uses=1] | |
%p2.123 = getelementptr [625 x i32]* @_ZL5state, i64 0, i64 %.sum59 ; <i32*> [#uses=1] | |
%23 = load i32* %p2.123, align 4 ; <i32> [#uses=1] | |
br label %bb9 | |
bb16: ; preds = %bb9 | |
%24 = load i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 0), align 32 ; <i32> [#uses=4] | |
%25 = load i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 396), align 16 ; <i32> [#uses=1] | |
%26 = and i32 %s1.127, -2147483648 ; <i32> [#uses=1] | |
%27 = and i32 %24, 2147483646 ; <i32> [#uses=1] | |
%28 = or i32 %27, %26 ; <i32> [#uses=1] | |
%29 = lshr i32 %28, 1 ; <i32> [#uses=1] | |
%30 = and i32 %24, 1 ; <i32> [#uses=1] | |
%toBool17 = icmp eq i32 %30, 0 ; <i1> [#uses=1] | |
%iftmp.208.0 = select i1 %toBool17, i32 0, i32 -1727483681 ; <i32> [#uses=1] | |
%31 = xor i32 %iftmp.208.0, %25 ; <i32> [#uses=1] | |
%32 = xor i32 %31, %29 ; <i32> [#uses=1] | |
store i32 %32, i32* getelementptr inbounds ([625 x i32]* @_ZL5state, i64 0, i64 623), align 4 | |
%33 = lshr i32 %24, 11 ; <i32> [#uses=1] | |
%34 = xor i32 %33, %24 ; <i32> [#uses=2] | |
%35 = shl i32 %34, 7 ; <i32> [#uses=1] | |
%36 = and i32 %35, -1658038656 ; <i32> [#uses=1] | |
%37 = xor i32 %36, %34 ; <i32> [#uses=2] | |
%38 = shl i32 %37, 15 ; <i32> [#uses=1] | |
%39 = and i32 %38, -272236544 ; <i32> [#uses=1] | |
%40 = xor i32 %39, %37 ; <i32> [#uses=2] | |
%41 = lshr i32 %40, 18 ; <i32> [#uses=1] | |
%42 = xor i32 %41, %40 ; <i32> [#uses=1] | |
ret i32 %42 | |
} | |
declare i64 @time(i64*) nounwind | |
define i32 @_Z8randomMTv() nounwind { | |
entry: | |
%0 = load i32* @_ZL4left, align 4 ; <i32> [#uses=1] | |
%1 = add nsw i32 %0, -1 ; <i32> [#uses=2] | |
store i32 %1, i32* @_ZL4left, align 4 | |
%toBool = icmp slt i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %toBool, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%2 = tail call i32 @_Z8reloadMTv() nounwind ; <i32> [#uses=1] | |
ret i32 %2 | |
bb1: ; preds = %entry | |
%3 = load i32** @_ZL4next, align 8 ; <i32*> [#uses=2] | |
%4 = load i32* %3, align 4 ; <i32> [#uses=2] | |
%5 = getelementptr inbounds i32* %3, i64 1 ; <i32*> [#uses=1] | |
store i32* %5, i32** @_ZL4next, align 8 | |
%6 = lshr i32 %4, 11 ; <i32> [#uses=1] | |
%7 = xor i32 %6, %4 ; <i32> [#uses=2] | |
%8 = shl i32 %7, 7 ; <i32> [#uses=1] | |
%9 = and i32 %8, -1658038656 ; <i32> [#uses=1] | |
%10 = xor i32 %9, %7 ; <i32> [#uses=2] | |
%11 = shl i32 %10, 15 ; <i32> [#uses=1] | |
%12 = and i32 %11, -272236544 ; <i32> [#uses=1] | |
%13 = xor i32 %12, %10 ; <i32> [#uses=2] | |
%14 = lshr i32 %13, 18 ; <i32> [#uses=1] | |
%15 = xor i32 %14, %13 ; <i32> [#uses=1] | |
ret i32 %15 | |
} | |
declare i8* @_Znam(i64) | |
declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind | |
define linkonce_odr %struct.cline* @_ZN6vectorI5clineE3addERKS0_(%"struct.vector<cline>"* nocapture %this, %struct.cline* nocapture %x) align 2 { | |
entry: | |
%0 = getelementptr inbounds %"struct.vector<cline>"* %this, i64 0, i32 2 ; <i32*> [#uses=4] | |
%1 = load i32* %0, align 4 ; <i32> [#uses=5] | |
%2 = getelementptr inbounds %"struct.vector<cline>"* %this, i64 0, i32 1 ; <i32*> [#uses=3] | |
%3 = load i32* %2, align 8 ; <i32> [#uses=7] | |
%4 = icmp eq i32 %1, %3 ; <i1> [#uses=1] | |
br i1 %4, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%5 = add nsw i32 %1, 1 ; <i32> [#uses=4] | |
%6 = icmp eq i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb.i, label %bb2.preheader.i | |
bb2.preheader.i: ; preds = %bb | |
%7 = icmp slt i32 %3, %5 ; <i1> [#uses=1] | |
br i1 %7, label %bb1.i, label %bb1 | |
bb.i: ; preds = %bb | |
%8 = icmp slt i32 %5, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i = select i1 %8, i32 8, i32 %5 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i, i32* %2, align 8 | |
br label %bb3.i | |
bb1.i: ; preds = %bb1.i, %bb2.preheader.i | |
%.tmp.0.i = phi i32 [ %9, %bb1.i ], [ %3, %bb2.preheader.i ] ; <i32> [#uses=1] | |
%9 = shl i32 %.tmp.0.i, 1 ; <i32> [#uses=4] | |
%10 = icmp slt i32 %9, %5 ; <i1> [#uses=1] | |
br i1 %10, label %bb1.i, label %bb2.bb3.loopexit_crit_edge.i | |
bb2.bb3.loopexit_crit_edge.i: ; preds = %bb1.i | |
store i32 %9, i32* %2 | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.bb3.loopexit_crit_edge.i, %bb.i | |
%11 = phi i32 [ %iftmp.215.0.i.i, %bb.i ], [ %9, %bb2.bb3.loopexit_crit_edge.i ] ; <i32> [#uses=2] | |
%12 = icmp sgt i32 %11, %3 ; <i1> [#uses=1] | |
br i1 %12, label %bb4.i, label %bb1 | |
bb4.i: ; preds = %bb3.i | |
%13 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%14 = shl i64 %13, 4 ; <i64> [#uses=1] | |
%15 = tail call i8* @_Znam(i64 %14) ; <i8*> [#uses=2] | |
%16 = icmp sgt i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %16, label %bb5.i, label %bb7.i | |
bb5.i: ; preds = %bb4.i | |
%17 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%18 = shl i64 %17, 4 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds %"struct.vector<cline>"* %this, i64 0, i32 0 ; <%struct.cline**> [#uses=2] | |
%20 = load %struct.cline** %19, align 8 ; <%struct.cline*> [#uses=1] | |
%21 = bitcast %struct.cline* %20 to i8* ; <i8*> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %15, i8* %21, i64 %18, i32 1) | |
%22 = load %struct.cline** %19, align 8 ; <%struct.cline*> [#uses=2] | |
%23 = icmp eq %struct.cline* %22, null ; <i1> [#uses=1] | |
br i1 %23, label %bb7.i, label %bb6.i | |
bb6.i: ; preds = %bb5.i | |
%24 = bitcast %struct.cline* %22 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %24) nounwind | |
br label %bb7.i | |
bb7.i: ; preds = %bb6.i, %bb5.i, %bb4.i | |
%25 = bitcast i8* %15 to %struct.cline* ; <%struct.cline*> [#uses=1] | |
%26 = getelementptr inbounds %"struct.vector<cline>"* %this, i64 0, i32 0 ; <%struct.cline**> [#uses=1] | |
store %struct.cline* %25, %struct.cline** %26, align 8 | |
%.pre = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb1 | |
bb1: ; preds = %bb7.i, %bb3.i, %bb2.preheader.i, %entry | |
%27 = phi i32 [ %.pre, %bb7.i ], [ %1, %entry ], [ %1, %bb2.preheader.i ], [ %1, %bb3.i ] ; <i32> [#uses=2] | |
%28 = getelementptr inbounds %"struct.vector<cline>"* %this, i64 0, i32 0 ; <%struct.cline**> [#uses=2] | |
%29 = load %struct.cline** %28, align 8 ; <%struct.cline*> [#uses=5] | |
%30 = sext i32 %27 to i64 ; <i64> [#uses=4] | |
%31 = getelementptr inbounds %struct.cline* %29, i64 %30 ; <%struct.cline*> [#uses=1] | |
%32 = icmp eq %struct.cline* %31, null ; <i1> [#uses=1] | |
br i1 %32, label %bb4, label %bb2 | |
bb2: ; preds = %bb1 | |
%33 = getelementptr inbounds %struct.cline* %29, i64 %30, i32 0 ; <i8**> [#uses=1] | |
%34 = getelementptr inbounds %struct.cline* %x, i64 0, i32 0 ; <i8**> [#uses=1] | |
%35 = load i8** %34, align 8 ; <i8*> [#uses=1] | |
store i8* %35, i8** %33, align 8 | |
%36 = getelementptr inbounds %struct.cline* %29, i64 %30, i32 1 ; <i32*> [#uses=1] | |
%37 = getelementptr inbounds %struct.cline* %x, i64 0, i32 1 ; <i32*> [#uses=1] | |
%38 = load i32* %37, align 8 ; <i32> [#uses=1] | |
store i32 %38, i32* %36, align 8 | |
%39 = getelementptr inbounds %struct.cline* %29, i64 %30, i32 2 ; <i32*> [#uses=1] | |
%40 = getelementptr inbounds %struct.cline* %x, i64 0, i32 2 ; <i32*> [#uses=1] | |
%41 = load i32* %40, align 4 ; <i32> [#uses=1] | |
store i32 %41, i32* %39, align 4 | |
%.pre6 = load %struct.cline** %28, align 8 ; <%struct.cline*> [#uses=1] | |
%.pre7 = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb2, %bb1 | |
%42 = phi i32 [ %27, %bb1 ], [ %.pre7, %bb2 ] ; <i32> [#uses=2] | |
%43 = phi %struct.cline* [ %29, %bb1 ], [ %.pre6, %bb2 ] ; <%struct.cline*> [#uses=1] | |
%44 = sext i32 %42 to i64 ; <i64> [#uses=1] | |
%45 = getelementptr inbounds %struct.cline* %43, i64 %44 ; <%struct.cline*> [#uses=1] | |
%46 = add nsw i32 %42, 1 ; <i32> [#uses=1] | |
store i32 %46, i32* %0, align 4 | |
ret %struct.cline* %45 | |
} | |
define linkonce_odr i8* @_ZN6vectorIcE3addERKc(%struct.cline* nocapture %this, i8* nocapture %x) align 2 { | |
entry: | |
%0 = getelementptr inbounds %struct.cline* %this, i64 0, i32 2 ; <i32*> [#uses=4] | |
%1 = load i32* %0, align 4 ; <i32> [#uses=5] | |
%2 = getelementptr inbounds %struct.cline* %this, i64 0, i32 1 ; <i32*> [#uses=3] | |
%3 = load i32* %2, align 8 ; <i32> [#uses=7] | |
%4 = icmp eq i32 %1, %3 ; <i1> [#uses=1] | |
br i1 %4, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%5 = add nsw i32 %1, 1 ; <i32> [#uses=4] | |
%6 = icmp eq i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb.i, label %bb2.preheader.i | |
bb2.preheader.i: ; preds = %bb | |
%7 = icmp slt i32 %3, %5 ; <i1> [#uses=1] | |
br i1 %7, label %bb1.i, label %bb1 | |
bb.i: ; preds = %bb | |
%8 = icmp slt i32 %5, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i = select i1 %8, i32 8, i32 %5 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i, i32* %2, align 8 | |
br label %bb3.i | |
bb1.i: ; preds = %bb1.i, %bb2.preheader.i | |
%.tmp.0.i = phi i32 [ %9, %bb1.i ], [ %3, %bb2.preheader.i ] ; <i32> [#uses=1] | |
%9 = shl i32 %.tmp.0.i, 1 ; <i32> [#uses=4] | |
%10 = icmp slt i32 %9, %5 ; <i1> [#uses=1] | |
br i1 %10, label %bb1.i, label %bb2.bb3.loopexit_crit_edge.i | |
bb2.bb3.loopexit_crit_edge.i: ; preds = %bb1.i | |
store i32 %9, i32* %2 | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.bb3.loopexit_crit_edge.i, %bb.i | |
%11 = phi i32 [ %iftmp.215.0.i.i, %bb.i ], [ %9, %bb2.bb3.loopexit_crit_edge.i ] ; <i32> [#uses=2] | |
%12 = icmp sgt i32 %11, %3 ; <i1> [#uses=1] | |
br i1 %12, label %bb4.i, label %bb1 | |
bb4.i: ; preds = %bb3.i | |
%13 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%14 = tail call i8* @_Znam(i64 %13) ; <i8*> [#uses=2] | |
%15 = icmp sgt i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %15, label %bb5.i, label %bb7.i | |
bb5.i: ; preds = %bb4.i | |
%16 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds %struct.cline* %this, i64 0, i32 0 ; <i8**> [#uses=2] | |
%18 = load i8** %17, align 8 ; <i8*> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %14, i8* %18, i64 %16, i32 1) | |
%19 = load i8** %17, align 8 ; <i8*> [#uses=2] | |
%20 = icmp eq i8* %19, null ; <i1> [#uses=1] | |
br i1 %20, label %bb7.i, label %bb6.i | |
bb6.i: ; preds = %bb5.i | |
tail call void @_ZdaPv(i8* %19) nounwind | |
br label %bb7.i | |
bb7.i: ; preds = %bb6.i, %bb5.i, %bb4.i | |
%21 = getelementptr inbounds %struct.cline* %this, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %14, i8** %21, align 8 | |
%.pre = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb1 | |
bb1: ; preds = %bb7.i, %bb3.i, %bb2.preheader.i, %entry | |
%22 = phi i32 [ %.pre, %bb7.i ], [ %1, %entry ], [ %1, %bb2.preheader.i ], [ %1, %bb3.i ] ; <i32> [#uses=2] | |
%23 = getelementptr inbounds %struct.cline* %this, i64 0, i32 0 ; <i8**> [#uses=2] | |
%24 = load i8** %23, align 8 ; <i8*> [#uses=2] | |
%25 = sext i32 %22 to i64 ; <i64> [#uses=1] | |
%26 = getelementptr inbounds i8* %24, i64 %25 ; <i8*> [#uses=2] | |
%27 = icmp eq i8* %26, null ; <i1> [#uses=1] | |
br i1 %27, label %bb4, label %bb2 | |
bb2: ; preds = %bb1 | |
%28 = load i8* %x, align 1 ; <i8> [#uses=1] | |
store i8 %28, i8* %26, align 1 | |
%.pre6 = load i8** %23, align 8 ; <i8*> [#uses=1] | |
%.pre7 = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb2, %bb1 | |
%29 = phi i32 [ %22, %bb1 ], [ %.pre7, %bb2 ] ; <i32> [#uses=2] | |
%30 = phi i8* [ %24, %bb1 ], [ %.pre6, %bb2 ] ; <i8*> [#uses=1] | |
%31 = sext i32 %29 to i64 ; <i64> [#uses=1] | |
%32 = getelementptr inbounds i8* %30, i64 %31 ; <i8*> [#uses=1] | |
%33 = add nsw i32 %29, 1 ; <i32> [#uses=1] | |
store i32 %33, i32* %0, align 4 | |
ret i8* %32 | |
} | |
define linkonce_odr i8** @_ZN6vectorIPcE3addERKS0_(%"struct.vector<char*>"* nocapture %this, i8** nocapture %x) align 2 { | |
entry: | |
%0 = getelementptr inbounds %"struct.vector<char*>"* %this, i64 0, i32 2 ; <i32*> [#uses=4] | |
%1 = load i32* %0, align 4 ; <i32> [#uses=5] | |
%2 = getelementptr inbounds %"struct.vector<char*>"* %this, i64 0, i32 1 ; <i32*> [#uses=3] | |
%3 = load i32* %2, align 8 ; <i32> [#uses=7] | |
%4 = icmp eq i32 %1, %3 ; <i1> [#uses=1] | |
br i1 %4, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%5 = add nsw i32 %1, 1 ; <i32> [#uses=4] | |
%6 = icmp eq i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb.i, label %bb2.preheader.i | |
bb2.preheader.i: ; preds = %bb | |
%7 = icmp slt i32 %3, %5 ; <i1> [#uses=1] | |
br i1 %7, label %bb1.i, label %bb1 | |
bb.i: ; preds = %bb | |
%8 = icmp slt i32 %5, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i = select i1 %8, i32 8, i32 %5 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i, i32* %2, align 8 | |
br label %bb3.i | |
bb1.i: ; preds = %bb1.i, %bb2.preheader.i | |
%.tmp.0.i = phi i32 [ %9, %bb1.i ], [ %3, %bb2.preheader.i ] ; <i32> [#uses=1] | |
%9 = shl i32 %.tmp.0.i, 1 ; <i32> [#uses=4] | |
%10 = icmp slt i32 %9, %5 ; <i1> [#uses=1] | |
br i1 %10, label %bb1.i, label %bb2.bb3.loopexit_crit_edge.i | |
bb2.bb3.loopexit_crit_edge.i: ; preds = %bb1.i | |
store i32 %9, i32* %2 | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.bb3.loopexit_crit_edge.i, %bb.i | |
%11 = phi i32 [ %iftmp.215.0.i.i, %bb.i ], [ %9, %bb2.bb3.loopexit_crit_edge.i ] ; <i32> [#uses=2] | |
%12 = icmp sgt i32 %11, %3 ; <i1> [#uses=1] | |
br i1 %12, label %bb4.i, label %bb1 | |
bb4.i: ; preds = %bb3.i | |
%13 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%14 = shl i64 %13, 3 ; <i64> [#uses=1] | |
%15 = tail call i8* @_Znam(i64 %14) ; <i8*> [#uses=2] | |
%16 = icmp sgt i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %16, label %bb5.i, label %bb7.i | |
bb5.i: ; preds = %bb4.i | |
%17 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%18 = shl i64 %17, 3 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds %"struct.vector<char*>"* %this, i64 0, i32 0 ; <i8***> [#uses=2] | |
%20 = load i8*** %19, align 8 ; <i8**> [#uses=1] | |
%21 = bitcast i8** %20 to i8* ; <i8*> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %15, i8* %21, i64 %18, i32 1) | |
%22 = load i8*** %19, align 8 ; <i8**> [#uses=2] | |
%23 = icmp eq i8** %22, null ; <i1> [#uses=1] | |
br i1 %23, label %bb7.i, label %bb6.i | |
bb6.i: ; preds = %bb5.i | |
%24 = bitcast i8** %22 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %24) nounwind | |
br label %bb7.i | |
bb7.i: ; preds = %bb6.i, %bb5.i, %bb4.i | |
%25 = bitcast i8* %15 to i8** ; <i8**> [#uses=1] | |
%26 = getelementptr inbounds %"struct.vector<char*>"* %this, i64 0, i32 0 ; <i8***> [#uses=1] | |
store i8** %25, i8*** %26, align 8 | |
%.pre = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb1 | |
bb1: ; preds = %bb7.i, %bb3.i, %bb2.preheader.i, %entry | |
%27 = phi i32 [ %.pre, %bb7.i ], [ %1, %entry ], [ %1, %bb2.preheader.i ], [ %1, %bb3.i ] ; <i32> [#uses=2] | |
%28 = getelementptr inbounds %"struct.vector<char*>"* %this, i64 0, i32 0 ; <i8***> [#uses=2] | |
%29 = load i8*** %28, align 8 ; <i8**> [#uses=2] | |
%30 = sext i32 %27 to i64 ; <i64> [#uses=1] | |
%31 = getelementptr inbounds i8** %29, i64 %30 ; <i8**> [#uses=2] | |
%32 = icmp eq i8** %31, null ; <i1> [#uses=1] | |
br i1 %32, label %bb4, label %bb2 | |
bb2: ; preds = %bb1 | |
%33 = load i8** %x, align 8 ; <i8*> [#uses=1] | |
store i8* %33, i8** %31, align 8 | |
%.pre6 = load i8*** %28, align 8 ; <i8**> [#uses=1] | |
%.pre7 = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb2, %bb1 | |
%34 = phi i32 [ %27, %bb1 ], [ %.pre7, %bb2 ] ; <i32> [#uses=2] | |
%35 = phi i8** [ %29, %bb1 ], [ %.pre6, %bb2 ] ; <i8**> [#uses=1] | |
%36 = sext i32 %34 to i64 ; <i64> [#uses=1] | |
%37 = getelementptr inbounds i8** %35, i64 %36 ; <i8**> [#uses=1] | |
%38 = add nsw i32 %34, 1 ; <i32> [#uses=1] | |
store i32 %38, i32* %0, align 4 | |
ret i8** %37 | |
} | |
define linkonce_odr %struct.ident** @_ZN6vectorIP5identE3addERKS1_(%"struct.vector<ident*>"* nocapture %this, %struct.ident** nocapture %x) align 2 { | |
entry: | |
%0 = getelementptr inbounds %"struct.vector<ident*>"* %this, i64 0, i32 2 ; <i32*> [#uses=4] | |
%1 = load i32* %0, align 4 ; <i32> [#uses=5] | |
%2 = getelementptr inbounds %"struct.vector<ident*>"* %this, i64 0, i32 1 ; <i32*> [#uses=3] | |
%3 = load i32* %2, align 8 ; <i32> [#uses=7] | |
%4 = icmp eq i32 %1, %3 ; <i1> [#uses=1] | |
br i1 %4, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%5 = add nsw i32 %1, 1 ; <i32> [#uses=4] | |
%6 = icmp eq i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb.i, label %bb2.preheader.i | |
bb2.preheader.i: ; preds = %bb | |
%7 = icmp slt i32 %3, %5 ; <i1> [#uses=1] | |
br i1 %7, label %bb1.i, label %bb1 | |
bb.i: ; preds = %bb | |
%8 = icmp slt i32 %5, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i = select i1 %8, i32 8, i32 %5 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i, i32* %2, align 8 | |
br label %bb3.i | |
bb1.i: ; preds = %bb1.i, %bb2.preheader.i | |
%.tmp.0.i = phi i32 [ %9, %bb1.i ], [ %3, %bb2.preheader.i ] ; <i32> [#uses=1] | |
%9 = shl i32 %.tmp.0.i, 1 ; <i32> [#uses=4] | |
%10 = icmp slt i32 %9, %5 ; <i1> [#uses=1] | |
br i1 %10, label %bb1.i, label %bb2.bb3.loopexit_crit_edge.i | |
bb2.bb3.loopexit_crit_edge.i: ; preds = %bb1.i | |
store i32 %9, i32* %2 | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.bb3.loopexit_crit_edge.i, %bb.i | |
%11 = phi i32 [ %iftmp.215.0.i.i, %bb.i ], [ %9, %bb2.bb3.loopexit_crit_edge.i ] ; <i32> [#uses=2] | |
%12 = icmp sgt i32 %11, %3 ; <i1> [#uses=1] | |
br i1 %12, label %bb4.i, label %bb1 | |
bb4.i: ; preds = %bb3.i | |
%13 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%14 = shl i64 %13, 3 ; <i64> [#uses=1] | |
%15 = tail call i8* @_Znam(i64 %14) ; <i8*> [#uses=2] | |
%16 = icmp sgt i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %16, label %bb5.i, label %bb7.i | |
bb5.i: ; preds = %bb4.i | |
%17 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%18 = shl i64 %17, 3 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds %"struct.vector<ident*>"* %this, i64 0, i32 0 ; <%struct.ident***> [#uses=2] | |
%20 = load %struct.ident*** %19, align 8 ; <%struct.ident**> [#uses=1] | |
%21 = bitcast %struct.ident** %20 to i8* ; <i8*> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %15, i8* %21, i64 %18, i32 1) | |
%22 = load %struct.ident*** %19, align 8 ; <%struct.ident**> [#uses=2] | |
%23 = icmp eq %struct.ident** %22, null ; <i1> [#uses=1] | |
br i1 %23, label %bb7.i, label %bb6.i | |
bb6.i: ; preds = %bb5.i | |
%24 = bitcast %struct.ident** %22 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %24) nounwind | |
br label %bb7.i | |
bb7.i: ; preds = %bb6.i, %bb5.i, %bb4.i | |
%25 = bitcast i8* %15 to %struct.ident** ; <%struct.ident**> [#uses=1] | |
%26 = getelementptr inbounds %"struct.vector<ident*>"* %this, i64 0, i32 0 ; <%struct.ident***> [#uses=1] | |
store %struct.ident** %25, %struct.ident*** %26, align 8 | |
%.pre = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb1 | |
bb1: ; preds = %bb7.i, %bb3.i, %bb2.preheader.i, %entry | |
%27 = phi i32 [ %.pre, %bb7.i ], [ %1, %entry ], [ %1, %bb2.preheader.i ], [ %1, %bb3.i ] ; <i32> [#uses=2] | |
%28 = getelementptr inbounds %"struct.vector<ident*>"* %this, i64 0, i32 0 ; <%struct.ident***> [#uses=2] | |
%29 = load %struct.ident*** %28, align 8 ; <%struct.ident**> [#uses=2] | |
%30 = sext i32 %27 to i64 ; <i64> [#uses=1] | |
%31 = getelementptr inbounds %struct.ident** %29, i64 %30 ; <%struct.ident**> [#uses=2] | |
%32 = icmp eq %struct.ident** %31, null ; <i1> [#uses=1] | |
br i1 %32, label %bb4, label %bb2 | |
bb2: ; preds = %bb1 | |
%33 = load %struct.ident** %x, align 8 ; <%struct.ident*> [#uses=1] | |
store %struct.ident* %33, %struct.ident** %31, align 8 | |
%.pre6 = load %struct.ident*** %28, align 8 ; <%struct.ident**> [#uses=1] | |
%.pre7 = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb2, %bb1 | |
%34 = phi i32 [ %27, %bb1 ], [ %.pre7, %bb2 ] ; <i32> [#uses=2] | |
%35 = phi %struct.ident** [ %29, %bb1 ], [ %.pre6, %bb2 ] ; <%struct.ident**> [#uses=1] | |
%36 = sext i32 %34 to i64 ; <i64> [#uses=1] | |
%37 = getelementptr inbounds %struct.ident** %35, i64 %36 ; <%struct.ident**> [#uses=1] | |
%38 = add nsw i32 %34, 1 ; <i32> [#uses=1] | |
store i32 %38, i32* %0, align 4 | |
ret %struct.ident** %37 | |
} | |
define linkonce_odr %struct.cline** @_ZN6vectorIPS_IcEE3addERKS1_(%"struct.vector<vector<char>*>"* nocapture %this, %struct.cline** nocapture %x) align 2 { | |
entry: | |
%0 = getelementptr inbounds %"struct.vector<vector<char>*>"* %this, i64 0, i32 2 ; <i32*> [#uses=4] | |
%1 = load i32* %0, align 4 ; <i32> [#uses=5] | |
%2 = getelementptr inbounds %"struct.vector<vector<char>*>"* %this, i64 0, i32 1 ; <i32*> [#uses=3] | |
%3 = load i32* %2, align 8 ; <i32> [#uses=7] | |
%4 = icmp eq i32 %1, %3 ; <i1> [#uses=1] | |
br i1 %4, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%5 = add nsw i32 %1, 1 ; <i32> [#uses=4] | |
%6 = icmp eq i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb.i, label %bb2.preheader.i | |
bb2.preheader.i: ; preds = %bb | |
%7 = icmp slt i32 %3, %5 ; <i1> [#uses=1] | |
br i1 %7, label %bb1.i, label %bb1 | |
bb.i: ; preds = %bb | |
%8 = icmp slt i32 %5, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i = select i1 %8, i32 8, i32 %5 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i, i32* %2, align 8 | |
br label %bb3.i | |
bb1.i: ; preds = %bb1.i, %bb2.preheader.i | |
%.tmp.0.i = phi i32 [ %9, %bb1.i ], [ %3, %bb2.preheader.i ] ; <i32> [#uses=1] | |
%9 = shl i32 %.tmp.0.i, 1 ; <i32> [#uses=4] | |
%10 = icmp slt i32 %9, %5 ; <i1> [#uses=1] | |
br i1 %10, label %bb1.i, label %bb2.bb3.loopexit_crit_edge.i | |
bb2.bb3.loopexit_crit_edge.i: ; preds = %bb1.i | |
store i32 %9, i32* %2 | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.bb3.loopexit_crit_edge.i, %bb.i | |
%11 = phi i32 [ %iftmp.215.0.i.i, %bb.i ], [ %9, %bb2.bb3.loopexit_crit_edge.i ] ; <i32> [#uses=2] | |
%12 = icmp sgt i32 %11, %3 ; <i1> [#uses=1] | |
br i1 %12, label %bb4.i, label %bb1 | |
bb4.i: ; preds = %bb3.i | |
%13 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%14 = shl i64 %13, 3 ; <i64> [#uses=1] | |
%15 = tail call i8* @_Znam(i64 %14) ; <i8*> [#uses=2] | |
%16 = icmp sgt i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %16, label %bb5.i, label %bb7.i | |
bb5.i: ; preds = %bb4.i | |
%17 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%18 = shl i64 %17, 3 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds %"struct.vector<vector<char>*>"* %this, i64 0, i32 0 ; <%struct.cline***> [#uses=2] | |
%20 = load %struct.cline*** %19, align 8 ; <%struct.cline**> [#uses=1] | |
%21 = bitcast %struct.cline** %20 to i8* ; <i8*> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %15, i8* %21, i64 %18, i32 1) | |
%22 = load %struct.cline*** %19, align 8 ; <%struct.cline**> [#uses=2] | |
%23 = icmp eq %struct.cline** %22, null ; <i1> [#uses=1] | |
br i1 %23, label %bb7.i, label %bb6.i | |
bb6.i: ; preds = %bb5.i | |
%24 = bitcast %struct.cline** %22 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdaPv(i8* %24) nounwind | |
br label %bb7.i | |
bb7.i: ; preds = %bb6.i, %bb5.i, %bb4.i | |
%25 = bitcast i8* %15 to %struct.cline** ; <%struct.cline**> [#uses=1] | |
%26 = getelementptr inbounds %"struct.vector<vector<char>*>"* %this, i64 0, i32 0 ; <%struct.cline***> [#uses=1] | |
store %struct.cline** %25, %struct.cline*** %26, align 8 | |
%.pre = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb1 | |
bb1: ; preds = %bb7.i, %bb3.i, %bb2.preheader.i, %entry | |
%27 = phi i32 [ %.pre, %bb7.i ], [ %1, %entry ], [ %1, %bb2.preheader.i ], [ %1, %bb3.i ] ; <i32> [#uses=2] | |
%28 = getelementptr inbounds %"struct.vector<vector<char>*>"* %this, i64 0, i32 0 ; <%struct.cline***> [#uses=2] | |
%29 = load %struct.cline*** %28, align 8 ; <%struct.cline**> [#uses=2] | |
%30 = sext i32 %27 to i64 ; <i64> [#uses=1] | |
%31 = getelementptr inbounds %struct.cline** %29, i64 %30 ; <%struct.cline**> [#uses=2] | |
%32 = icmp eq %struct.cline** %31, null ; <i1> [#uses=1] | |
br i1 %32, label %bb4, label %bb2 | |
bb2: ; preds = %bb1 | |
%33 = load %struct.cline** %x, align 8 ; <%struct.cline*> [#uses=1] | |
store %struct.cline* %33, %struct.cline** %31, align 8 | |
%.pre6 = load %struct.cline*** %28, align 8 ; <%struct.cline**> [#uses=1] | |
%.pre7 = load i32* %0, align 4 ; <i32> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb2, %bb1 | |
%34 = phi i32 [ %27, %bb1 ], [ %.pre7, %bb2 ] ; <i32> [#uses=2] | |
%35 = phi %struct.cline** [ %29, %bb1 ], [ %.pre6, %bb2 ] ; <%struct.cline**> [#uses=1] | |
%36 = sext i32 %34 to i64 ; <i64> [#uses=1] | |
%37 = getelementptr inbounds %struct.cline** %35, i64 %36 ; <%struct.cline**> [#uses=1] | |
%38 = add nsw i32 %34, 1 ; <i32> [#uses=1] | |
store i32 %38, i32* %0, align 4 | |
ret %struct.cline** %37 | |
} | |
declare i8* @strncpy(i8* noalias, i8* noalias nocapture, i64) nounwind | |
define void @_Z7conlineiPKc(i32 %type, i8* nocapture %sf) { | |
entry: | |
%0 = alloca %struct.cline, align 8 ; <%struct.cline*> [#uses=4] | |
%1 = load i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 ; <i32> [#uses=2] | |
%2 = load i32* @maxcon, align 4 ; <i32> [#uses=1] | |
%3 = icmp sgt i32 %1, %2 ; <i1> [#uses=1] | |
br i1 %3, label %bb, label %bb1 | |
bb: ; preds = %entry | |
%4 = load %struct.cline** getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 0), align 16 ; <%struct.cline*> [#uses=1] | |
%5 = add nsw i32 %1, -1 ; <i32> [#uses=2] | |
store i32 %5, i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 | |
%6 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%7 = getelementptr inbounds %struct.cline* %4, i64 %6, i32 0 ; <i8**> [#uses=1] | |
%8 = load i8** %7, align 8 ; <i8*> [#uses=1] | |
br label %bb2 | |
bb1: ; preds = %entry | |
%9 = call i8* @_Znam(i64 512) ; <i8*> [#uses=3] | |
call void @llvm.memset.i64(i8* %9, i8 0, i64 512, i32 1) | |
%10 = getelementptr inbounds i8* %9, i64 511 ; <i8*> [#uses=1] | |
store i8 0, i8* %10, align 1 | |
br label %bb2 | |
bb2: ; preds = %bb1, %bb | |
%iftmp.199.0 = phi i8* [ %8, %bb ], [ %9, %bb1 ] ; <i8*> [#uses=3] | |
%11 = load i32* @totalmillis, align 4 ; <i32> [#uses=1] | |
%12 = getelementptr inbounds %struct.cline* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* null, i8** %12, align 8 | |
%13 = getelementptr inbounds %struct.cline* %0, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 0, i32* %13, align 8 | |
%14 = getelementptr inbounds %struct.cline* %0, i64 0, i32 2 ; <i32*> [#uses=1] | |
store i32 0, i32* %14, align 4 | |
%15 = call %struct.cline* @_ZN6vectorI5clineE3addERKS0_(%"struct.vector<cline>"* @conlines, %struct.cline* %0) ; <%struct.cline*> [#uses=0] | |
%16 = load i32* getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 2), align 4 ; <i32> [#uses=2] | |
%p.04.i = add i32 %16, -1 ; <i32> [#uses=2] | |
%17 = icmp sgt i32 %p.04.i, 0 ; <i1> [#uses=1] | |
%18 = load %struct.cline** getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 0), align 16 ; <%struct.cline*> [#uses=2] | |
br i1 %17, label %bb.nph.i, label %_ZN6vectorI5clineE6insertEiRKS0_.exit | |
bb.nph.i: ; preds = %bb2 | |
%tmp8.i = add i32 %16, -2 ; <i32> [#uses=2] | |
%tmp = zext i32 %tmp8.i to i64 ; <i64> [#uses=1] | |
%tmp3 = add i64 %tmp, 1 ; <i64> [#uses=1] | |
%tmp6 = sext i32 %p.04.i to i64 ; <i64> [#uses=1] | |
%tmp9 = sext i32 %tmp8.i to i64 ; <i64> [#uses=1] | |
br label %bb.i | |
bb.i: ; preds = %bb.i, %bb.nph.i | |
%indvar.i = phi i64 [ 0, %bb.nph.i ], [ %indvar.next.i, %bb.i ] ; <i64> [#uses=3] | |
%19 = phi %struct.cline* [ %18, %bb.nph.i ], [ %23, %bb.i ] ; <%struct.cline*> [#uses=6] | |
%tmp7 = sub i64 %tmp6, %indvar.i ; <i64> [#uses=3] | |
%tmp10 = sub i64 %tmp9, %indvar.i ; <i64> [#uses=3] | |
%scevgep1516.i = getelementptr inbounds %struct.cline* %19, i64 %tmp10, i32 0 ; <i8**> [#uses=1] | |
%20 = load i8** %scevgep1516.i, align 8 ; <i8*> [#uses=1] | |
%scevgep2223.i = getelementptr inbounds %struct.cline* %19, i64 %tmp7, i32 0 ; <i8**> [#uses=1] | |
store i8* %20, i8** %scevgep2223.i, align 8 | |
%scevgep14.i = getelementptr %struct.cline* %19, i64 %tmp10, i32 1 ; <i32*> [#uses=1] | |
%21 = load i32* %scevgep14.i, align 8 ; <i32> [#uses=1] | |
%scevgep21.i = getelementptr %struct.cline* %19, i64 %tmp7, i32 1 ; <i32*> [#uses=1] | |
store i32 %21, i32* %scevgep21.i, align 8 | |
%scevgep.i = getelementptr %struct.cline* %19, i64 %tmp10, i32 2 ; <i32*> [#uses=1] | |
%22 = load i32* %scevgep.i, align 4 ; <i32> [#uses=1] | |
%scevgep20.i = getelementptr %struct.cline* %19, i64 %tmp7, i32 2 ; <i32*> [#uses=1] | |
store i32 %22, i32* %scevgep20.i, align 4 | |
%23 = load %struct.cline** getelementptr inbounds (%"struct.vector<cline>"* @conlines, i64 0, i32 0), align 16 ; <%struct.cline*> [#uses=2] | |
%indvar.next.i = add i64 %indvar.i, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next.i, %tmp3 ; <i1> [#uses=1] | |
br i1 %exitcond, label %_ZN6vectorI5clineE6insertEiRKS0_.exit, label %bb.i | |
_ZN6vectorI5clineE6insertEiRKS0_.exit: ; preds = %bb.i, %bb2 | |
%.lcssa.i = phi %struct.cline* [ %18, %bb2 ], [ %23, %bb.i ] ; <%struct.cline*> [#uses=3] | |
%24 = getelementptr inbounds %struct.cline* %.lcssa.i, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %iftmp.199.0, i8** %24, align 8 | |
%25 = getelementptr inbounds %struct.cline* %.lcssa.i, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 %type, i32* %25, align 8 | |
%26 = getelementptr inbounds %struct.cline* %.lcssa.i, i64 0, i32 2 ; <i32*> [#uses=1] | |
store i32 %11, i32* %26, align 4 | |
%27 = call i8* @strncpy(i8* noalias %iftmp.199.0, i8* noalias %sf, i64 512) nounwind ; <i8*> [#uses=0] | |
%28 = getelementptr inbounds i8* %iftmp.199.0, i64 511 ; <i8*> [#uses=1] | |
store i8 0, i8* %28, align 1 | |
ret void | |
} | |
define void @_Z8conoutfviPKcP13__va_list_tag(i32 %type, i8* nocapture %fmt, %struct.__va_list_tag* %args) { | |
entry: | |
%0 = tail call i32 @vsnprintf(i8* noalias getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0), i64 512, i8* noalias %fmt, %struct.__va_list_tag* %args) nounwind ; <i32> [#uses=0] | |
store i8 0, i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 511), align 1 | |
tail call void @_Z7conlineiPKc(i32 %type, i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0)) | |
%1 = tail call i32 @puts(i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0)) ; <i32> [#uses=0] | |
ret void | |
} | |
define void @_Z7conoutfiPKcz(i32 %type, i8* nocapture %fmt, ...) { | |
entry: | |
%args = alloca [1 x %struct.__va_list_tag], align 8 ; <[1 x %struct.__va_list_tag]*> [#uses=2] | |
%0 = bitcast [1 x %struct.__va_list_tag]* %args to i8* ; <i8*> [#uses=2] | |
call void @llvm.va_start(i8* %0) | |
%1 = getelementptr inbounds [1 x %struct.__va_list_tag]* %args, i64 0, i64 0 ; <%struct.__va_list_tag*> [#uses=1] | |
%2 = call i32 @vsnprintf(i8* noalias getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0), i64 512, i8* noalias %fmt, %struct.__va_list_tag* %1) nounwind ; <i32> [#uses=0] | |
store i8 0, i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 511), align 1 | |
call void @_Z7conlineiPKc(i32 %type, i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0)) | |
%3 = call i32 @puts(i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0)) ; <i32> [#uses=0] | |
call void @llvm.va_end(i8* %0) | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1193EE3runEPc(i8* nocapture %s) align 2 { | |
entry: | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* %s) | |
ret void | |
} | |
define void @_Z14setfvarcheckedP5identf(%struct.ident* %id, float %val) { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%2 = getelementptr inbounds %struct.ident* %id, i64 0, i32 10 ; <i32*> [#uses=1] | |
%3 = load i32* %2, align 8 ; <i32> [#uses=3] | |
%4 = and i32 %3, 8 ; <i32> [#uses=1] | |
%5 = icmp eq i32 %4, 0 ; <i1> [#uses=1] | |
br i1 %5, label %bb1, label %bb | |
bb: ; preds = %entry | |
%6 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%7 = load i8** %6, align 8 ; <i8*> [#uses=1] | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([25 x i8]* @.str4, i64 0, i64 0), i8* %7) | |
ret void | |
bb1: ; preds = %entry | |
%8 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool = icmp eq i8 %8, 0 ; <i1> [#uses=1] | |
br i1 %toBool, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%9 = and i32 %3, 2 ; <i32> [#uses=1] | |
%10 = icmp eq i32 %9, 0 ; <i1> [#uses=1] | |
br i1 %10, label %bb8, label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%11 = and i32 %3, 1 ; <i32> [#uses=1] | |
%toBool4 = icmp eq i32 %11, 0 ; <i1> [#uses=1] | |
br i1 %toBool4, label %bb6, label %bb5 | |
bb5: ; preds = %bb3 | |
%12 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%13 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([39 x i8]* @.str5, i64 0, i64 0), i8* %13) | |
ret void | |
bb6: ; preds = %bb3 | |
%14 = getelementptr inbounds %struct.ident* %id, i64 0, i32 5 ; <i32*> [#uses=2] | |
%15 = load i32* %14, align 8 ; <i32> [#uses=1] | |
%16 = icmp eq i32 %15, 2147483647 ; <i1> [#uses=1] | |
br i1 %16, label %bb7, label %bb10 | |
bb7: ; preds = %bb6 | |
%17 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%18 = load i32** %17, align 8 ; <i32*> [#uses=1] | |
%19 = bitcast i32* %18 to float* ; <float*> [#uses=1] | |
%20 = load float* %19, align 4 ; <float> [#uses=1] | |
%21 = getelementptr inbounds %struct.ident* %id, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%22 = bitcast i8** %21 to float* ; <float*> [#uses=1] | |
store float %20, float* %22, align 8 | |
store i32 0, i32* %14, align 8 | |
br label %bb10 | |
bb8: ; preds = %bb2 | |
%23 = getelementptr inbounds %struct.ident* %id, i64 0, i32 5 ; <i32*> [#uses=2] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 2147483647 ; <i1> [#uses=1] | |
br i1 %25, label %bb10, label %bb9 | |
bb9: ; preds = %bb8 | |
store i32 2147483647, i32* %23, align 8 | |
br label %bb10 | |
bb10: ; preds = %bb9, %bb8, %bb7, %bb6 | |
%26 = getelementptr inbounds %struct.ident* %id, i64 0, i32 3, i32 0 ; <i32*> [#uses=1] | |
%27 = bitcast i32* %26 to float* ; <float*> [#uses=2] | |
%28 = load float* %27, align 8 ; <float> [#uses=2] | |
%29 = fcmp ogt float %28, %val ; <i1> [#uses=2] | |
br i1 %29, label %bb13, label %bb11 | |
bb11: ; preds = %bb10 | |
%30 = getelementptr inbounds %struct.ident* %id, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
%31 = bitcast i32* %30 to float* ; <float*> [#uses=1] | |
%32 = load float* %31, align 4 ; <float> [#uses=1] | |
%33 = fcmp olt float %32, %val ; <i1> [#uses=1] | |
br i1 %33, label %bb12, label %bb16 | |
bb12: ; preds = %bb11 | |
br i1 %29, label %bb13, label %bb14 | |
bb13: ; preds = %bb12, %bb10 | |
%.phi.trans.insert = getelementptr inbounds %struct.ident* %id, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
%.phi.trans.insert20 = bitcast i32* %.phi.trans.insert to float* ; <float*> [#uses=1] | |
%.pre = load float* %.phi.trans.insert20, align 4 ; <float> [#uses=1] | |
br label %bb15 | |
bb14: ; preds = %bb12 | |
%34 = getelementptr inbounds %struct.ident* %id, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
%iftmp.74.0.in.phi.trans.insert = bitcast i32* %34 to float* ; <float*> [#uses=1] | |
%iftmp.74.0.pre = load float* %iftmp.74.0.in.phi.trans.insert, align 4 ; <float> [#uses=2] | |
br label %bb15 | |
bb15: ; preds = %bb14, %bb13 | |
%35 = phi float [ %.pre, %bb13 ], [ %iftmp.74.0.pre, %bb14 ] ; <float> [#uses=3] | |
%iftmp.74.0 = phi float [ %28, %bb13 ], [ %iftmp.74.0.pre, %bb14 ] ; <float> [#uses=1] | |
%36 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%37 = add nsw i32 %36, 1 ; <i32> [#uses=1] | |
%38 = srem i32 %37, 3 ; <i32> [#uses=2] | |
store i32 %38, i32* @_ZL6retidx, align 4 | |
%39 = fpext float %35 to double ; <double> [#uses=1] | |
%40 = fptosi float %35 to i32 ; <i32> [#uses=1] | |
%41 = sitofp i32 %40 to float ; <float> [#uses=1] | |
%42 = fcmp oeq float %41, %35 ; <i1> [#uses=1] | |
%iftmp.145.0.i = select i1 %42, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%43 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%44 = sext i32 %38 to i64 ; <i64> [#uses=1] | |
%45 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %44, i64 0 ; <i8*> [#uses=1] | |
%46 = getelementptr inbounds %struct.stringformatter* %1, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %45, i8** %46, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %1, i8* %43, double %39) nounwind | |
%47 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=2] | |
%48 = sext i32 %47 to i64 ; <i64> [#uses=1] | |
%49 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %48, i64 0 ; <i8*> [#uses=1] | |
%50 = load float* %27, align 8 ; <float> [#uses=3] | |
%51 = add nsw i32 %47, 1 ; <i32> [#uses=1] | |
%52 = srem i32 %51, 3 ; <i32> [#uses=2] | |
store i32 %52, i32* @_ZL6retidx, align 4 | |
%53 = fpext float %50 to double ; <double> [#uses=1] | |
%54 = fptosi float %50 to i32 ; <i32> [#uses=1] | |
%55 = sitofp i32 %54 to float ; <float> [#uses=1] | |
%56 = fcmp oeq float %55, %50 ; <i1> [#uses=1] | |
%iftmp.145.0.i18 = select i1 %56, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%57 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i18, i64 0, i64 0 ; <i8*> [#uses=1] | |
%58 = sext i32 %52 to i64 ; <i64> [#uses=1] | |
%59 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %58, i64 0 ; <i8*> [#uses=1] | |
%60 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %59, i8** %60, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %57, double %53) nounwind | |
%61 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%62 = sext i32 %61 to i64 ; <i64> [#uses=1] | |
%63 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %62, i64 0 ; <i8*> [#uses=1] | |
%64 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%65 = load i8** %64, align 8 ; <i8*> [#uses=1] | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([29 x i8]* @.str6, i64 0, i64 0), i8* %65, i8* %63, i8* %49) | |
br label %bb16 | |
bb16: ; preds = %bb15, %bb11 | |
%val_addr.0 = phi float [ %iftmp.74.0, %bb15 ], [ %val, %bb11 ] ; <float> [#uses=1] | |
%66 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%67 = load i32** %66, align 8 ; <i32*> [#uses=1] | |
%68 = bitcast i32* %67 to float* ; <float*> [#uses=1] | |
store float %val_addr.0, float* %68, align 4 | |
%69 = getelementptr inbounds %struct.ident* %id, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
%70 = load i32 (...)*** %69, align 8 ; <i32 (...)**> [#uses=1] | |
%71 = getelementptr inbounds i32 (...)** %70, i64 2 ; <i32 (...)**> [#uses=1] | |
%72 = load i32 (...)** %71, align 8 ; <i32 (...)*> [#uses=1] | |
%73 = bitcast i32 (...)* %72 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
call void %73(%struct.ident* %id) | |
ret void | |
} | |
define void @_Z13setvarcheckedP5identi(%struct.ident* %id, i32 %val) { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %id, i64 0, i32 10 ; <i32*> [#uses=1] | |
%1 = load i32* %0, align 8 ; <i32> [#uses=4] | |
%2 = and i32 %1, 8 ; <i32> [#uses=1] | |
%3 = icmp eq i32 %2, 0 ; <i1> [#uses=1] | |
br i1 %3, label %bb1, label %bb | |
bb: ; preds = %entry | |
%4 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%5 = load i8** %4, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([25 x i8]* @.str4, i64 0, i64 0), i8* %5) | |
ret void | |
bb1: ; preds = %entry | |
%6 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool = icmp eq i8 %6, 0 ; <i1> [#uses=1] | |
br i1 %toBool, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%7 = and i32 %1, 2 ; <i32> [#uses=1] | |
%8 = icmp eq i32 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %bb8, label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%9 = and i32 %1, 1 ; <i32> [#uses=1] | |
%toBool4 = icmp eq i32 %9, 0 ; <i1> [#uses=1] | |
br i1 %toBool4, label %bb6, label %bb5 | |
bb5: ; preds = %bb3 | |
%10 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%11 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([39 x i8]* @.str5, i64 0, i64 0), i8* %11) | |
ret void | |
bb6: ; preds = %bb3 | |
%12 = getelementptr inbounds %struct.ident* %id, i64 0, i32 5 ; <i32*> [#uses=2] | |
%13 = load i32* %12, align 8 ; <i32> [#uses=1] | |
%14 = icmp eq i32 %13, 2147483647 ; <i1> [#uses=1] | |
br i1 %14, label %bb7, label %bb10 | |
bb7: ; preds = %bb6 | |
%15 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%16 = load i32** %15, align 8 ; <i32*> [#uses=1] | |
%17 = load i32* %16, align 4 ; <i32> [#uses=1] | |
%18 = getelementptr inbounds %struct.ident* %id, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%19 = bitcast i8** %18 to i32* ; <i32*> [#uses=1] | |
store i32 %17, i32* %19, align 8 | |
store i32 0, i32* %12, align 8 | |
br label %bb10 | |
bb8: ; preds = %bb2 | |
%20 = getelementptr inbounds %struct.ident* %id, i64 0, i32 5 ; <i32*> [#uses=2] | |
%21 = load i32* %20, align 8 ; <i32> [#uses=1] | |
%22 = icmp eq i32 %21, 2147483647 ; <i1> [#uses=1] | |
br i1 %22, label %bb10, label %bb9 | |
bb9: ; preds = %bb8 | |
store i32 2147483647, i32* %20, align 8 | |
br label %bb10 | |
bb10: ; preds = %bb9, %bb8, %bb7, %bb6 | |
%23 = getelementptr inbounds %struct.ident* %id, i64 0, i32 3, i32 0 ; <i32*> [#uses=2] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=3] | |
%25 = icmp sgt i32 %24, %val ; <i1> [#uses=2] | |
br i1 %25, label %bb13, label %bb11 | |
bb11: ; preds = %bb10 | |
%26 = getelementptr inbounds %struct.ident* %id, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
%27 = load i32* %26, align 4 ; <i32> [#uses=1] | |
%28 = icmp slt i32 %27, %val ; <i1> [#uses=1] | |
br i1 %28, label %bb12, label %bb22 | |
bb12: ; preds = %bb11 | |
br i1 %25, label %bb13, label %bb14 | |
bb13: ; preds = %bb12, %bb10 | |
%.pre = getelementptr inbounds %struct.ident* %id, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
br label %bb15 | |
bb14: ; preds = %bb12 | |
%29 = getelementptr inbounds %struct.ident* %id, i64 0, i32 4, i32 0 ; <i32*> [#uses=2] | |
br label %bb15 | |
bb15: ; preds = %bb14, %bb13 | |
%.pre-phi = phi i32* [ %29, %bb14 ], [ %.pre, %bb13 ] ; <i32*> [#uses=1] | |
%iftmp.70.0.in = phi i32* [ %29, %bb14 ], [ %23, %bb13 ] ; <i32*> [#uses=1] | |
%iftmp.70.0 = load i32* %iftmp.70.0.in, align 4 ; <i32> [#uses=1] | |
%30 = load i32* %.pre-phi, align 4 ; <i32> [#uses=1] | |
%31 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%32 = load i8** %31, align 8 ; <i8*> [#uses=1] | |
%33 = and i32 %1, 4 ; <i32> [#uses=1] | |
%34 = icmp eq i32 %33, 0 ; <i1> [#uses=1] | |
br i1 %34, label %bb21, label %bb16 | |
bb16: ; preds = %bb15 | |
%35 = icmp slt i32 %24, 256 ; <i1> [#uses=1] | |
%iftmp.72.0 = select i1 %35, i8* getelementptr inbounds ([31 x i8]* @.str7, i64 0, i64 0), i8* getelementptr inbounds ([33 x i8]* @.str8, i64 0, i64 0) ; <i8*> [#uses=1] | |
br label %bb21 | |
bb21: ; preds = %bb16, %bb15 | |
%iftmp.71.0 = phi i8* [ %iftmp.72.0, %bb16 ], [ getelementptr inbounds ([29 x i8]* @.str9, i64 0, i64 0), %bb15 ] ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* %iftmp.71.0, i8* %32, i32 %24, i32 %30) | |
br label %bb22 | |
bb22: ; preds = %bb21, %bb11 | |
%val_addr.0 = phi i32 [ %iftmp.70.0, %bb21 ], [ %val, %bb11 ] ; <i32> [#uses=1] | |
%36 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%37 = load i32** %36, align 8 ; <i32*> [#uses=1] | |
store i32 %val_addr.0, i32* %37, align 4 | |
%38 = getelementptr inbounds %struct.ident* %id, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
%39 = load i32 (...)*** %38, align 8 ; <i32 (...)**> [#uses=1] | |
%40 = getelementptr inbounds i32 (...)** %39, i64 2 ; <i32 (...)**> [#uses=1] | |
%41 = load i32 (...)** %40, align 8 ; <i32 (...)*> [#uses=1] | |
%42 = bitcast i32 (...)* %41 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %42(%struct.ident* %id) | |
ret void | |
} | |
define void @_Z7conoutfPKcz(i8* nocapture %fmt, ...) { | |
entry: | |
%args = alloca [1 x %struct.__va_list_tag], align 8 ; <[1 x %struct.__va_list_tag]*> [#uses=2] | |
%0 = bitcast [1 x %struct.__va_list_tag]* %args to i8* ; <i8*> [#uses=2] | |
call void @llvm.va_start(i8* %0) | |
%1 = getelementptr inbounds [1 x %struct.__va_list_tag]* %args, i64 0, i64 0 ; <%struct.__va_list_tag*> [#uses=1] | |
%2 = call i32 @vsnprintf(i8* noalias getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0), i64 512, i8* noalias %fmt, %struct.__va_list_tag* %1) nounwind ; <i32> [#uses=0] | |
store i8 0, i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 511), align 1 | |
call void @_Z7conlineiPKc(i32 1, i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0)) | |
%3 = call i32 @puts(i8* getelementptr inbounds ([512 x i8]* @_ZZ8conoutfviPKcP13__va_list_tagE3buf, i64 0, i64 0)) ; <i32> [#uses=0] | |
call void @llvm.va_end(i8* %0) | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1192EE3runEPc(i8* %s) align 2 { | |
entry: | |
tail call void (i8*, ...)* @_Z7conoutfPKcz(i8* getelementptr inbounds ([3 x i8]* @.str10, i64 0, i64 0), i8* %s) | |
ret void | |
} | |
declare i64 @strlen(i8* nocapture) nounwind readonly | |
define void @_Z6resultPKc(i8* nocapture %s) { | |
entry: | |
%0 = tail call i64 @strlen(i8* %s) nounwind readonly ; <i64> [#uses=2] | |
%1 = add i64 %0, 1 ; <i64> [#uses=2] | |
%2 = tail call i8* @_Znam(i64 %1) ; <i8*> [#uses=3] | |
%3 = tail call i8* @strncpy(i8* noalias %2, i8* noalias %s, i64 %1) nounwind ; <i8*> [#uses=0] | |
%4 = getelementptr inbounds i8* %2, i64 %0 ; <i8*> [#uses=1] | |
store i8 0, i8* %4, align 1 | |
store i8* %2, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z6concatPKc(i8* nocapture %s) { | |
entry: | |
%0 = tail call i64 @strlen(i8* %s) nounwind readonly ; <i64> [#uses=2] | |
%1 = add i64 %0, 1 ; <i64> [#uses=2] | |
%2 = tail call i8* @_Znam(i64 %1) ; <i8*> [#uses=3] | |
%3 = tail call i8* @strncpy(i8* noalias %2, i8* noalias %s, i64 %1) nounwind ; <i8*> [#uses=0] | |
%4 = getelementptr inbounds i8* %2, i64 %0 ; <i8*> [#uses=1] | |
store i8 0, i8* %4, align 1 | |
store i8* %2, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z8floatretf(float %v) { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%2 = add nsw i32 %1, 1 ; <i32> [#uses=1] | |
%3 = srem i32 %2, 3 ; <i32> [#uses=2] | |
store i32 %3, i32* @_ZL6retidx, align 4 | |
%4 = fpext float %v to double ; <double> [#uses=1] | |
%5 = fptosi float %v to i32 ; <i32> [#uses=1] | |
%6 = sitofp i32 %5 to float ; <float> [#uses=1] | |
%7 = fcmp oeq float %6, %v ; <i1> [#uses=1] | |
%iftmp.145.0.i = select i1 %7, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%8 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%9 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%10 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %9, i64 0 ; <i8*> [#uses=1] | |
%11 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %10, i8** %11, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %8, double %4) nounwind | |
%12 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%13 = sext i32 %12 to i64 ; <i64> [#uses=1] | |
%14 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %13, i64 0 ; <i8*> [#uses=2] | |
%15 = call i64 @strlen(i8* %14) nounwind readonly ; <i64> [#uses=2] | |
%16 = add i64 %15, 1 ; <i64> [#uses=2] | |
%17 = call i8* @_Znam(i64 %16) ; <i8*> [#uses=3] | |
%18 = call i8* @strncpy(i8* noalias %17, i8* noalias %14, i64 %16) nounwind ; <i8*> [#uses=0] | |
%19 = getelementptr inbounds i8* %17, i64 %15 ; <i8*> [#uses=1] | |
store i8 0, i8* %19, align 1 | |
store i8* %17, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1116EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %b, align 4 ; <float> [#uses=2] | |
%2 = fcmp une float %1, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb2 | |
bb: ; preds = %entry | |
%3 = load float* %a, align 4 ; <float> [#uses=1] | |
%4 = fdiv float %3, %1 ; <float> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb, %entry | |
%iftmp.182.0 = phi float [ %4, %bb ], [ 0.000000e+00, %entry ] ; <float> [#uses=3] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = fpext float %iftmp.182.0 to double ; <double> [#uses=1] | |
%9 = fptosi float %iftmp.182.0 to i32 ; <i32> [#uses=1] | |
%10 = sitofp i32 %9 to float ; <float> [#uses=1] | |
%11 = fcmp oeq float %10, %iftmp.182.0 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %11, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%12 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%13 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%14 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %13, i64 0 ; <i8*> [#uses=1] | |
%15 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %14, i8** %15, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %12, double %8) nounwind | |
%16 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%17 = sext i32 %16 to i64 ; <i64> [#uses=1] | |
%18 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %17, i64 0 ; <i8*> [#uses=2] | |
%19 = call i64 @strlen(i8* %18) nounwind readonly ; <i64> [#uses=2] | |
%20 = add i64 %19, 1 ; <i64> [#uses=2] | |
%21 = call i8* @_Znam(i64 %20) ; <i8*> [#uses=3] | |
%22 = call i8* @strncpy(i8* noalias %21, i8* noalias %18, i64 %20) nounwind ; <i8*> [#uses=0] | |
%23 = getelementptr inbounds i8* %21, i64 %19 ; <i8*> [#uses=1] | |
store i8 0, i8* %23, align 1 | |
store i8* %21, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1078EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fsub float %1, %2 ; <float> [#uses=3] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = fpext float %3 to double ; <double> [#uses=1] | |
%8 = fptosi float %3 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
%10 = fcmp oeq float %9, %3 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %10, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%11 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%12 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %11, double %7) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1077EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fmul float %1, %2 ; <float> [#uses=3] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = fpext float %3 to double ; <double> [#uses=1] | |
%8 = fptosi float %3 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
%10 = fcmp oeq float %9, %3 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %10, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%11 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%12 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %11, double %7) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1076EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fadd float %1, %2 ; <float> [#uses=3] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = fpext float %3 to double ; <double> [#uses=1] | |
%8 = fptosi float %3 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
%10 = fcmp oeq float %9, %3 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %10, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%11 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%12 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %11, double %7) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z6intreti(i32 %v) { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%2 = add nsw i32 %1, 1 ; <i32> [#uses=1] | |
%3 = srem i32 %2, 3 ; <i32> [#uses=2] | |
store i32 %3, i32* @_ZL6retidx, align 4 | |
%4 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%5 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %4, i64 0 ; <i8*> [#uses=1] | |
%6 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %5, i8** %6, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %v) nounwind | |
%7 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=2] | |
%10 = call i64 @strlen(i8* %9) nounwind readonly ; <i64> [#uses=2] | |
%11 = add i64 %10, 1 ; <i64> [#uses=2] | |
%12 = call i8* @_Znam(i64 %11) ; <i8*> [#uses=3] | |
%13 = call i8* @strncpy(i8* noalias %12, i8* noalias %9, i64 %11) nounwind ; <i8*> [#uses=0] | |
%14 = getelementptr inbounds i8* %12, i64 %10 ; <i8*> [#uses=1] | |
store i8 0, i8* %14, align 1 | |
store i8* %12, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1184EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=2] | |
%3 = sub nsw i32 %1, %2 ; <i32> [#uses=1] | |
%4 = icmp sgt i32 %3, 0 ; <i1> [#uses=1] | |
br i1 %4, label %bb, label %bb2 | |
bb: ; preds = %entry | |
%5 = load i32* @_ZL4left, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, -1 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL4left, align 4 | |
%toBool.i = icmp slt i32 %6, 0 ; <i1> [#uses=1] | |
br i1 %toBool.i, label %bb.i, label %bb1.i | |
bb.i: ; preds = %bb | |
%7 = call i32 @_Z8reloadMTv() nounwind ; <i32> [#uses=1] | |
br label %_Z8randomMTv.exit | |
bb1.i: ; preds = %bb | |
%8 = load i32** @_ZL4next, align 8 ; <i32*> [#uses=2] | |
%9 = load i32* %8, align 4 ; <i32> [#uses=2] | |
%10 = getelementptr inbounds i32* %8, i64 1 ; <i32*> [#uses=1] | |
store i32* %10, i32** @_ZL4next, align 8 | |
%11 = lshr i32 %9, 11 ; <i32> [#uses=1] | |
%12 = xor i32 %11, %9 ; <i32> [#uses=2] | |
%13 = shl i32 %12, 7 ; <i32> [#uses=1] | |
%14 = and i32 %13, -1658038656 ; <i32> [#uses=1] | |
%15 = xor i32 %14, %12 ; <i32> [#uses=2] | |
%16 = shl i32 %15, 15 ; <i32> [#uses=1] | |
%17 = and i32 %16, -272236544 ; <i32> [#uses=1] | |
%18 = xor i32 %17, %15 ; <i32> [#uses=2] | |
%19 = lshr i32 %18, 18 ; <i32> [#uses=1] | |
%20 = xor i32 %19, %18 ; <i32> [#uses=1] | |
br label %_Z8randomMTv.exit | |
_Z8randomMTv.exit: ; preds = %bb1.i, %bb.i | |
%21 = phi i32 [ %20, %bb1.i ], [ %7, %bb.i ] ; <i32> [#uses=1] | |
%22 = and i32 %21, 16777215 ; <i32> [#uses=1] | |
%23 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%24 = load i32* %b, align 4 ; <i32> [#uses=2] | |
%25 = sub nsw i32 %23, %24 ; <i32> [#uses=1] | |
%26 = srem i32 %22, %25 ; <i32> [#uses=1] | |
%27 = add nsw i32 %26, %24 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %_Z8randomMTv.exit, %entry | |
%iftmp.191.0 = phi i32 [ %27, %_Z8randomMTv.exit ], [ %2, %entry ] ; <i32> [#uses=1] | |
%28 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%29 = add nsw i32 %28, 1 ; <i32> [#uses=1] | |
%30 = srem i32 %29, 3 ; <i32> [#uses=2] | |
store i32 %30, i32* @_ZL6retidx, align 4 | |
%31 = sext i32 %30 to i64 ; <i64> [#uses=1] | |
%32 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %31, i64 0 ; <i8*> [#uses=1] | |
%33 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %32, i8** %33, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %iftmp.191.0) nounwind | |
%34 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%35 = sext i32 %34 to i64 ; <i64> [#uses=1] | |
%36 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %35, i64 0 ; <i8*> [#uses=2] | |
%37 = call i64 @strlen(i8* %36) nounwind readonly ; <i64> [#uses=2] | |
%38 = add i64 %37, 1 ; <i64> [#uses=2] | |
%39 = call i8* @_Znam(i64 %38) ; <i8*> [#uses=3] | |
%40 = call i8* @strncpy(i8* noalias %39, i8* noalias %36, i64 %38) nounwind ; <i8*> [#uses=0] | |
%41 = getelementptr inbounds i8* %39, i64 %37 ; <i8*> [#uses=1] | |
store i8 0, i8* %41, align 1 | |
store i8* %39, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1115EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %b, align 4 ; <i32> [#uses=2] | |
%2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb2, label %bb | |
bb: ; preds = %entry | |
%3 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%4 = srem i32 %3, %1 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb, %entry | |
%iftmp.181.0 = phi i32 [ %4, %bb ], [ 0, %entry ] ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %iftmp.181.0) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1114EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %b, align 4 ; <i32> [#uses=2] | |
%2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb2, label %bb | |
bb: ; preds = %entry | |
%3 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%4 = sdiv i32 %3, %1 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb, %entry | |
%iftmp.180.0 = phi i32 [ %4, %bb ], [ 0, %entry ] ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %iftmp.180.0) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1100EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = ashr i32 %1, %2 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1099EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = shl i32 %1, %2 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1098EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%not = xor i32 %2, -1 ; <i32> [#uses=1] | |
%3 = or i32 %1, %not ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1097EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%not = xor i32 %2, -1 ; <i32> [#uses=1] | |
%3 = and i32 %1, %not ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1096EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%not = xor i32 %1, -1 ; <i32> [#uses=1] | |
%3 = xor i32 %2, %not ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1095EE3runEPi(i32* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%not = xor i32 %1, -1 ; <i32> [#uses=1] | |
%2 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%3 = add nsw i32 %2, 1 ; <i32> [#uses=1] | |
%4 = srem i32 %3, 3 ; <i32> [#uses=2] | |
store i32 %4, i32* @_ZL6retidx, align 4 | |
%5 = sext i32 %4 to i64 ; <i64> [#uses=1] | |
%6 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %5, i64 0 ; <i8*> [#uses=1] | |
%7 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %6, i8** %7, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %not) nounwind | |
%8 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%9 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%10 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %9, i64 0 ; <i8*> [#uses=2] | |
%11 = call i64 @strlen(i8* %10) nounwind readonly ; <i64> [#uses=2] | |
%12 = add i64 %11, 1 ; <i64> [#uses=2] | |
%13 = call i8* @_Znam(i64 %12) ; <i8*> [#uses=3] | |
%14 = call i8* @strncpy(i8* noalias %13, i8* noalias %10, i64 %12) nounwind ; <i8*> [#uses=0] | |
%15 = getelementptr inbounds i8* %13, i64 %11 ; <i8*> [#uses=1] | |
store i8 0, i8* %15, align 1 | |
store i8* %13, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1094EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = or i32 %2, %1 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1093EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = and i32 %2, %1 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1092EE3runEPi(i32* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] | |
%3 = zext i1 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1091EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = xor i32 %2, %1 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1090EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fcmp oge float %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1089EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fcmp ole float %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1088EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fcmp ogt float %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1087EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fcmp olt float %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1086EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fcmp une float %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1085EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = load float* %b, align 4 ; <float> [#uses=1] | |
%3 = fcmp oeq float %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1084EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = icmp sge i32 %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1083EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = icmp sle i32 %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1082EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = icmp sgt i32 %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1081EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = icmp slt i32 %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1080EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = icmp ne i32 %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1079EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = icmp eq i32 %1, %2 ; <i1> [#uses=1] | |
%4 = zext i1 %3 to i32 ; <i32> [#uses=1] | |
%5 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, 1 ; <i32> [#uses=1] | |
%7 = srem i32 %6, 3 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL6retidx, align 4 | |
%8 = sext i32 %7 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %8, i64 0 ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %9, i8** %10, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %4) nounwind | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=2] | |
%14 = call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%15 = add i64 %14, 1 ; <i64> [#uses=2] | |
%16 = call i8* @_Znam(i64 %15) ; <i8*> [#uses=3] | |
%17 = call i8* @strncpy(i8* noalias %16, i8* noalias %13, i64 %15) nounwind ; <i8*> [#uses=0] | |
%18 = getelementptr inbounds i8* %16, i64 %14 ; <i8*> [#uses=1] | |
store i8 0, i8* %18, align 1 | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1075EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = sub nsw i32 %1, %2 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1074EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = mul nsw i32 %2, %1 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1073EE3runEPiS1_(i32* nocapture %a, i32* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %a, align 4 ; <i32> [#uses=1] | |
%2 = load i32* %b, align 4 ; <i32> [#uses=1] | |
%3 = add nsw i32 %2, %1 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z14setsvarcheckedP5identPKc(%struct.ident* %id, i8* nocapture %val) { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %id, i64 0, i32 10 ; <i32*> [#uses=1] | |
%1 = load i32* %0, align 8 ; <i32> [#uses=3] | |
%2 = and i32 %1, 8 ; <i32> [#uses=1] | |
%3 = icmp eq i32 %2, 0 ; <i1> [#uses=1] | |
br i1 %3, label %bb1, label %bb | |
bb: ; preds = %entry | |
%4 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%5 = load i8** %4, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([25 x i8]* @.str4, i64 0, i64 0), i8* %5) | |
ret void | |
bb1: ; preds = %entry | |
%6 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool = icmp eq i8 %6, 0 ; <i1> [#uses=1] | |
br i1 %toBool, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%7 = and i32 %1, 2 ; <i32> [#uses=1] | |
%8 = icmp eq i32 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %bb10, label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%9 = and i32 %1, 1 ; <i32> [#uses=1] | |
%toBool4 = icmp eq i32 %9, 0 ; <i1> [#uses=1] | |
br i1 %toBool4, label %bb6, label %bb5 | |
bb5: ; preds = %bb3 | |
%10 = getelementptr inbounds %struct.ident* %id, i64 0, i32 2 ; <i8**> [#uses=1] | |
%11 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([39 x i8]* @.str5, i64 0, i64 0), i8* %11) | |
ret void | |
bb6: ; preds = %bb3 | |
%12 = getelementptr inbounds %struct.ident* %id, i64 0, i32 5 ; <i32*> [#uses=2] | |
%13 = load i32* %12, align 8 ; <i32> [#uses=1] | |
%14 = icmp eq i32 %13, 2147483647 ; <i1> [#uses=1] | |
%15 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%16 = load i32** %15, align 8 ; <i32*> [#uses=1] | |
%17 = bitcast i32* %16 to i8** ; <i8**> [#uses=1] | |
%18 = load i8** %17, align 8 ; <i8*> [#uses=3] | |
br i1 %14, label %bb7, label %bb8 | |
bb7: ; preds = %bb6 | |
%19 = getelementptr inbounds %struct.ident* %id, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
store i8* %18, i8** %19, align 8 | |
store i32 0, i32* %12, align 8 | |
br label %bb16 | |
bb8: ; preds = %bb6 | |
%20 = icmp eq i8* %18, null ; <i1> [#uses=1] | |
br i1 %20, label %bb16, label %bb9 | |
bb9: ; preds = %bb8 | |
tail call void @_ZdaPv(i8* %18) nounwind | |
br label %bb16 | |
bb10: ; preds = %bb2 | |
%21 = getelementptr inbounds %struct.ident* %id, i64 0, i32 5 ; <i32*> [#uses=2] | |
%22 = load i32* %21, align 8 ; <i32> [#uses=1] | |
%23 = icmp eq i32 %22, 2147483647 ; <i1> [#uses=1] | |
br i1 %23, label %bb14, label %bb11 | |
bb11: ; preds = %bb10 | |
%24 = getelementptr inbounds %struct.ident* %id, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%25 = load i8** %24, align 8 ; <i8*> [#uses=2] | |
%26 = icmp eq i8* %25, null ; <i1> [#uses=1] | |
br i1 %26, label %bb13, label %bb12 | |
bb12: ; preds = %bb11 | |
tail call void @_ZdaPv(i8* %25) nounwind | |
br label %bb13 | |
bb13: ; preds = %bb12, %bb11 | |
store i32 2147483647, i32* %21, align 8 | |
br label %bb14 | |
bb14: ; preds = %bb13, %bb10 | |
%27 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%28 = load i32** %27, align 8 ; <i32*> [#uses=1] | |
%29 = bitcast i32* %28 to i8** ; <i8**> [#uses=1] | |
%30 = load i8** %29, align 8 ; <i8*> [#uses=2] | |
%31 = icmp eq i8* %30, null ; <i1> [#uses=1] | |
br i1 %31, label %bb16, label %bb15 | |
bb15: ; preds = %bb14 | |
tail call void @_ZdaPv(i8* %30) nounwind | |
br label %bb16 | |
bb16: ; preds = %bb15, %bb14, %bb9, %bb8, %bb7 | |
%32 = getelementptr inbounds %struct.ident* %id, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%33 = load i32** %32, align 8 ; <i32*> [#uses=1] | |
%34 = bitcast i32* %33 to i8** ; <i8**> [#uses=1] | |
%35 = tail call i64 @strlen(i8* %val) nounwind readonly ; <i64> [#uses=2] | |
%36 = add i64 %35, 1 ; <i64> [#uses=2] | |
%37 = tail call i8* @_Znam(i64 %36) ; <i8*> [#uses=3] | |
%38 = tail call i8* @strncpy(i8* noalias %37, i8* noalias %val, i64 %36) nounwind ; <i8*> [#uses=0] | |
%39 = getelementptr inbounds i8* %37, i64 %35 ; <i8*> [#uses=1] | |
store i8 0, i8* %39, align 1 | |
store i8* %37, i8** %34, align 8 | |
%40 = getelementptr inbounds %struct.ident* %id, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
%41 = load i32 (...)*** %40, align 8 ; <i32 (...)**> [#uses=1] | |
%42 = getelementptr inbounds i32 (...)** %41, i64 2 ; <i32 (...)**> [#uses=1] | |
%43 = load i32 (...)** %42, align 8 ; <i32 (...)*> [#uses=1] | |
%44 = bitcast i32 (...)* %43 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %44(%struct.ident* %id) | |
ret void | |
} | |
define void @_Z13clearoverrideR5ident(%struct.ident* %i) { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %i, i64 0, i32 5 ; <i32*> [#uses=2] | |
%1 = load i32* %0, align 8 ; <i32> [#uses=1] | |
%2 = icmp eq i32 %1, 2147483647 ; <i1> [#uses=1] | |
br i1 %2, label %return, label %bb | |
bb: ; preds = %entry | |
%3 = getelementptr inbounds %struct.ident* %i, i64 0, i32 1 ; <i32*> [#uses=1] | |
%4 = load i32* %3, align 8 ; <i32> [#uses=1] | |
switch i32 %4, label %bb11 [ | |
i32 0, label %bb6 | |
i32 1, label %bb7 | |
i32 2, label %bb8 | |
i32 5, label %bb1 | |
] | |
bb1: ; preds = %bb | |
%5 = getelementptr inbounds %struct.ident* %i, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%6 = load i8** %5, align 8 ; <i8*> [#uses=4] | |
%7 = load i8* %6, align 1 ; <i8> [#uses=1] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %bb11, label %bb2 | |
bb2: ; preds = %bb1 | |
%9 = getelementptr inbounds %struct.ident* %i, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%10 = load i8** %9, align 8 ; <i8*> [#uses=1] | |
%11 = icmp eq i8* %6, %10 ; <i1> [#uses=1] | |
%12 = icmp eq i8* %6, null ; <i1> [#uses=1] | |
%or.cond = or i1 %11, %12 ; <i1> [#uses=1] | |
br i1 %or.cond, label %bb5, label %bb4 | |
bb4: ; preds = %bb2 | |
tail call void @_ZdaPv(i8* %6) nounwind | |
br label %bb5 | |
bb5: ; preds = %bb4, %bb2 | |
%13 = tail call i8* @_Znam(i64 1) ; <i8*> [#uses=2] | |
store i8 0, i8* %13, align 1 | |
store i8* %13, i8** %5, align 8 | |
br label %bb11 | |
bb6: ; preds = %bb | |
%14 = getelementptr inbounds %struct.ident* %i, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%15 = load i32** %14, align 8 ; <i32*> [#uses=1] | |
%16 = getelementptr inbounds %struct.ident* %i, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%17 = bitcast i8** %16 to i32* ; <i32*> [#uses=1] | |
%18 = load i32* %17, align 8 ; <i32> [#uses=1] | |
store i32 %18, i32* %15, align 4 | |
%19 = getelementptr inbounds %struct.ident* %i, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
%20 = load i32 (...)*** %19, align 8 ; <i32 (...)**> [#uses=1] | |
%21 = getelementptr inbounds i32 (...)** %20, i64 2 ; <i32 (...)**> [#uses=1] | |
%22 = load i32 (...)** %21, align 8 ; <i32 (...)*> [#uses=1] | |
%23 = bitcast i32 (...)* %22 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %23(%struct.ident* %i) | |
br label %bb11 | |
bb7: ; preds = %bb | |
%24 = getelementptr inbounds %struct.ident* %i, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%25 = load i32** %24, align 8 ; <i32*> [#uses=1] | |
%26 = bitcast i32* %25 to float* ; <float*> [#uses=1] | |
%27 = getelementptr inbounds %struct.ident* %i, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%28 = bitcast i8** %27 to float* ; <float*> [#uses=1] | |
%29 = load float* %28, align 8 ; <float> [#uses=1] | |
store float %29, float* %26, align 4 | |
%30 = getelementptr inbounds %struct.ident* %i, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
%31 = load i32 (...)*** %30, align 8 ; <i32 (...)**> [#uses=1] | |
%32 = getelementptr inbounds i32 (...)** %31, i64 2 ; <i32 (...)**> [#uses=1] | |
%33 = load i32 (...)** %32, align 8 ; <i32 (...)*> [#uses=1] | |
%34 = bitcast i32 (...)* %33 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %34(%struct.ident* %i) | |
br label %bb11 | |
bb8: ; preds = %bb | |
%35 = getelementptr inbounds %struct.ident* %i, i64 0, i32 9, i32 0 ; <i32**> [#uses=2] | |
%36 = load i32** %35, align 8 ; <i32*> [#uses=2] | |
%37 = bitcast i32* %36 to i8** ; <i8**> [#uses=1] | |
%38 = load i8** %37, align 8 ; <i8*> [#uses=2] | |
%39 = icmp eq i8* %38, null ; <i1> [#uses=1] | |
br i1 %39, label %bb10, label %bb9 | |
bb9: ; preds = %bb8 | |
tail call void @_ZdaPv(i8* %38) nounwind | |
%.pre = load i32** %35, align 8 ; <i32*> [#uses=1] | |
br label %bb10 | |
bb10: ; preds = %bb9, %bb8 | |
%40 = phi i32* [ %36, %bb8 ], [ %.pre, %bb9 ] ; <i32*> [#uses=1] | |
%41 = bitcast i32* %40 to i8** ; <i8**> [#uses=1] | |
%42 = getelementptr inbounds %struct.ident* %i, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%43 = load i8** %42, align 8 ; <i8*> [#uses=1] | |
store i8* %43, i8** %41, align 8 | |
%44 = getelementptr inbounds %struct.ident* %i, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
%45 = load i32 (...)*** %44, align 8 ; <i32 (...)**> [#uses=1] | |
%46 = getelementptr inbounds i32 (...)** %45, i64 2 ; <i32 (...)**> [#uses=1] | |
%47 = load i32 (...)** %46, align 8 ; <i32 (...)*> [#uses=1] | |
%48 = bitcast i32 (...)* %47 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %48(%struct.ident* %i) | |
br label %bb11 | |
bb11: ; preds = %bb10, %bb7, %bb6, %bb5, %bb1, %bb | |
store i32 2147483647, i32* %0, align 8 | |
ret void | |
return: ; preds = %entry | |
ret void | |
} | |
define void @_Z14clearoverridesv() { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%2 = load i32* %1, align 8 ; <i32> [#uses=1] | |
%3 = icmp sgt i32 %2, 0 ; <i1> [#uses=1] | |
br i1 %3, label %bb, label %return | |
bb: ; preds = %bb4, %entry | |
%4 = phi %"struct.hashtable<const char*,ident>"* [ %13, %bb4 ], [ %0, %entry ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%indvar = phi i64 [ %tmp, %bb4 ], [ 0, %entry ] ; <i64> [#uses=2] | |
%tmp = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp13 = trunc i64 %tmp to i32 ; <i32> [#uses=1] | |
%5 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %4, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%6 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %5, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %6, i64 %indvar ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%7 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
%8 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %7, null ; <i1> [#uses=1] | |
br i1 %8, label %bb4, label %bb1 | |
bb1: ; preds = %bb1, %bb | |
%enumc.0.in7 = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"* [ %11, %bb1 ], [ %7, %bb ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
%9 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.0.in7, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%10 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.0.in7, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%11 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %10, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
tail call void @_Z13clearoverrideR5ident(%struct.ident* %9) | |
%12 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %11, null ; <i1> [#uses=1] | |
br i1 %12, label %bb4, label %bb1 | |
bb4: ; preds = %bb1, %bb | |
%13 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%14 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %13, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%15 = load i32* %14, align 8 ; <i32> [#uses=1] | |
%16 = icmp sgt i32 %15, %tmp13 ; <i1> [#uses=1] | |
br i1 %16, label %bb, label %return | |
return: ; preds = %bb4, %entry | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1195EE3runEPc(i8* nocapture %s) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i64 @strlen(i8* %s) nounwind readonly ; <i64> [#uses=1] | |
%2 = trunc i64 %1 to i32 ; <i32> [#uses=1] | |
%3 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%4 = add nsw i32 %3, 1 ; <i32> [#uses=1] | |
%5 = srem i32 %4, 3 ; <i32> [#uses=2] | |
store i32 %5, i32* @_ZL6retidx, align 4 | |
%6 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%7 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %6, i64 0 ; <i8*> [#uses=1] | |
%8 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %7, i8** %8, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %2) nounwind | |
%9 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%10 = sext i32 %9 to i64 ; <i64> [#uses=1] | |
%11 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %10, i64 0 ; <i8*> [#uses=2] | |
%12 = call i64 @strlen(i8* %11) nounwind readonly ; <i64> [#uses=2] | |
%13 = add i64 %12, 1 ; <i64> [#uses=2] | |
%14 = call i8* @_Znam(i64 %13) ; <i8*> [#uses=3] | |
%15 = call i8* @strncpy(i8* noalias %14, i8* noalias %11, i64 %13) nounwind ; <i8*> [#uses=0] | |
%16 = getelementptr inbounds i8* %14, i64 %12 ; <i8*> [#uses=1] | |
store i8 0, i8* %16, align 1 | |
store i8* %14, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1194EE3runEPcS1_(i8* %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i8* @strstr(i8* %a, i8* %b) nounwind readonly ; <i8*> [#uses=2] | |
%2 = icmp eq i8* %1, null ; <i1> [#uses=1] | |
br i1 %2, label %bb2, label %bb | |
bb: ; preds = %entry | |
%3 = ptrtoint i8* %1 to i64 ; <i64> [#uses=1] | |
%4 = trunc i64 %3 to i32 ; <i32> [#uses=1] | |
%5 = ptrtoint i8* %a to i64 ; <i64> [#uses=1] | |
%6 = trunc i64 %5 to i32 ; <i32> [#uses=1] | |
%7 = sub i32 %4, %6 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb, %entry | |
%iftmp.192.0 = phi i32 [ %7, %bb ], [ -1, %entry ] ; <i32> [#uses=1] | |
%8 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%9 = add nsw i32 %8, 1 ; <i32> [#uses=1] | |
%10 = srem i32 %9, 3 ; <i32> [#uses=2] | |
store i32 %10, i32* @_ZL6retidx, align 4 | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=1] | |
%13 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %12, i8** %13, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %iftmp.192.0) nounwind | |
%14 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%15 = sext i32 %14 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %15, i64 0 ; <i8*> [#uses=2] | |
%17 = call i64 @strlen(i8* %16) nounwind readonly ; <i64> [#uses=2] | |
%18 = add i64 %17, 1 ; <i64> [#uses=2] | |
%19 = call i8* @_Znam(i64 %18) ; <i8*> [#uses=3] | |
%20 = call i8* @strncpy(i8* noalias %19, i8* noalias %16, i64 %18) nounwind ; <i8*> [#uses=0] | |
%21 = getelementptr inbounds i8* %19, i64 %17 ; <i8*> [#uses=1] | |
store i8 0, i8* %21, align 1 | |
store i8* %19, i8** @commandret, align 8 | |
ret void | |
} | |
declare i8* @strstr(i8*, i8* nocapture) nounwind readonly | |
define i8* @_Z10strreplacePKcS0_S0_(i8* %s, i8* nocapture %oldval, i8* nocapture %newval) { | |
entry: | |
%0 = tail call i64 @strlen(i8* %oldval) nounwind readonly ; <i64> [#uses=1] | |
%1 = trunc i64 %0 to i32 ; <i32> [#uses=2] | |
%2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb1.preheader | |
bb1.preheader: ; preds = %entry | |
%3 = sext i32 %1 to i64 ; <i64> [#uses=1] | |
br label %bb1 | |
bb: ; preds = %entry | |
%4 = tail call i64 @strlen(i8* %s) nounwind readonly ; <i64> [#uses=2] | |
%5 = add i64 %4, 1 ; <i64> [#uses=2] | |
%6 = invoke i8* @_Znam(i64 %5) | |
to label %_ZN6vectorIcE6shrinkEi.exit.i34.thread unwind label %_ZN6vectorIcE6shrinkEi.exit.i.thread ; <i8*> [#uses=3] | |
_ZN6vectorIcE6shrinkEi.exit.i.thread: ; preds = %bb | |
%eh_ptr101 = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select22102 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr101, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
br label %invcont17 | |
_ZN6vectorIcE6shrinkEi.exit.i34.thread: ; preds = %bb | |
%7 = tail call i8* @strncpy(i8* noalias %6, i8* noalias %s, i64 %5) nounwind ; <i8*> [#uses=0] | |
%8 = getelementptr inbounds i8* %6, i64 %4 ; <i8*> [#uses=1] | |
store i8 0, i8* %8, align 1 | |
ret i8* %6 | |
bb1: ; preds = %bb9, %bb1.preheader | |
%buf.2.1 = phi i32 [ %buf.2.4, %bb9 ], [ 0, %bb1.preheader ] ; <i32> [#uses=3] | |
%buf.1.3 = phi i32 [ %buf.1.6, %bb9 ], [ 0, %bb1.preheader ] ; <i32> [#uses=2] | |
%buf.0.2 = phi i8* [ %buf.0.6, %bb9 ], [ null, %bb1.preheader ] ; <i8*> [#uses=2] | |
%s_addr.1 = phi i8* [ %42, %bb9 ], [ %s, %bb1.preheader ] ; <i8*> [#uses=3] | |
%9 = tail call i8* @strstr(i8* %s_addr.1, i8* %oldval) nounwind readonly ; <i8*> [#uses=3] | |
%10 = icmp eq i8* %9, null ; <i1> [#uses=1] | |
%tmp = zext i32 %buf.2.1 to i64 ; <i64> [#uses=2] | |
%tmp141 = add i32 %buf.2.1, 1 ; <i32> [#uses=1] | |
%tmp142 = zext i32 %tmp141 to i64 ; <i64> [#uses=2] | |
%tmp145 = sext i32 %buf.2.1 to i64 ; <i64> [#uses=2] | |
br i1 %10, label %bb12, label %bb4 | |
bb2: ; preds = %bb4 | |
%tmp156 = add i64 %tmp, %indvar153 ; <i64> [#uses=1] | |
%buf.2.0 = trunc i64 %tmp156 to i32 ; <i32> [#uses=1] | |
%11 = icmp eq i32 %buf.2.0, %buf.1.2 ; <i1> [#uses=1] | |
br i1 %11, label %bb.i77, label %bb1.i90 | |
bb.i77: ; preds = %bb2 | |
%12 = icmp eq i32 %buf.1.2, 0 ; <i1> [#uses=1] | |
br i1 %12, label %bb.i.i80, label %bb2.preheader.i.i78 | |
bb2.preheader.i.i78: ; preds = %bb.i77 | |
%13 = icmp slt i32 %buf.1.2, %tmp161 ; <i1> [#uses=1] | |
br i1 %13, label %bb1.i.i82, label %bb1.i90 | |
bb.i.i80: ; preds = %bb.i77 | |
%14 = icmp slt i32 %tmp161, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i79 = select i1 %14, i32 8, i32 %tmp161 ; <i32> [#uses=1] | |
br label %bb3.i.i84 | |
bb1.i.i82: ; preds = %bb1.i.i82, %bb2.preheader.i.i78 | |
%.tmp.0.i.i81 = phi i32 [ %15, %bb1.i.i82 ], [ %buf.1.2, %bb2.preheader.i.i78 ] ; <i32> [#uses=1] | |
%15 = shl i32 %.tmp.0.i.i81, 1 ; <i32> [#uses=3] | |
%16 = icmp slt i32 %15, %tmp161 ; <i1> [#uses=1] | |
br i1 %16, label %bb1.i.i82, label %bb3.i.i84 | |
bb3.i.i84: ; preds = %bb1.i.i82, %bb.i.i80 | |
%buf.1.0 = phi i32 [ %iftmp.215.0.i.i.i79, %bb.i.i80 ], [ %15, %bb1.i.i82 ] ; <i32> [#uses=6] | |
%17 = icmp sgt i32 %buf.1.0, %buf.1.2 ; <i1> [#uses=1] | |
br i1 %17, label %bb4.i.i85, label %bb1.i90 | |
bb4.i.i85: ; preds = %bb3.i.i84 | |
%18 = sext i32 %buf.1.0 to i64 ; <i64> [#uses=1] | |
%19 = invoke i8* @_Znam(i64 %18) | |
to label %.noexc94 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc94: ; preds = %bb4.i.i85 | |
%20 = icmp sgt i32 %buf.1.2, 0 ; <i1> [#uses=1] | |
br i1 %20, label %bb5.i.i86, label %bb1.i90 | |
bb5.i.i86: ; preds = %.noexc94 | |
%21 = sext i32 %buf.1.2 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %19, i8* %buf.0.1, i64 %21, i32 1) | |
%22 = icmp eq i8* %buf.0.1, null ; <i1> [#uses=1] | |
br i1 %22, label %bb1.i90, label %bb6.i.i87 | |
bb6.i.i87: ; preds = %bb5.i.i86 | |
tail call void @_ZdaPv(i8* %buf.0.1) nounwind | |
br label %bb1.i90 | |
bb1.i90: ; preds = %bb6.i.i87, %bb5.i.i86, %.noexc94, %bb3.i.i84, %bb2.preheader.i.i78, %bb2 | |
%buf.1.1 = phi i32 [ %buf.1.0, %bb3.i.i84 ], [ %buf.1.2, %bb2.preheader.i.i78 ], [ %buf.1.2, %bb2 ], [ %buf.1.0, %bb6.i.i87 ], [ %buf.1.0, %bb5.i.i86 ], [ %buf.1.0, %.noexc94 ] ; <i32> [#uses=1] | |
%buf.0.0 = phi i8* [ %buf.0.1, %bb3.i.i84 ], [ %buf.0.1, %bb2.preheader.i.i78 ], [ %buf.0.1, %bb2 ], [ %19, %bb6.i.i87 ], [ %19, %bb5.i.i86 ], [ %19, %.noexc94 ] ; <i8*> [#uses=2] | |
%scevgep165 = getelementptr i8* %buf.0.0, i64 %tmp163 ; <i8*> [#uses=2] | |
%23 = icmp eq i8* %scevgep165, null ; <i1> [#uses=1] | |
br i1 %23, label %_ZN6vectorIcE3addERKc.exit95, label %bb2.i93 | |
bb2.i93: ; preds = %bb1.i90 | |
%24 = load i8* %s_addr.0, align 1 ; <i8> [#uses=1] | |
store i8 %24, i8* %scevgep165, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit95 | |
_ZN6vectorIcE3addERKc.exit95: ; preds = %bb2.i93, %bb1.i90 | |
%indvar.next154 = add i64 %indvar153, 1 ; <i64> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %_ZN6vectorIcE3addERKc.exit95, %bb1 | |
%indvar153 = phi i64 [ %indvar.next154, %_ZN6vectorIcE3addERKc.exit95 ], [ 0, %bb1 ] ; <i64> [#uses=5] | |
%buf.1.2 = phi i32 [ %buf.1.1, %_ZN6vectorIcE3addERKc.exit95 ], [ %buf.1.3, %bb1 ] ; <i32> [#uses=10] | |
%buf.0.1 = phi i8* [ %buf.0.0, %_ZN6vectorIcE3addERKc.exit95 ], [ %buf.0.2, %bb1 ] ; <i8*> [#uses=8] | |
%tmp160 = add i64 %tmp142, %indvar153 ; <i64> [#uses=2] | |
%tmp161 = trunc i64 %tmp160 to i32 ; <i32> [#uses=4] | |
%tmp163 = add i64 %tmp145, %indvar153 ; <i64> [#uses=2] | |
%s_addr.0 = getelementptr i8* %s_addr.1, i64 %indvar153 ; <i8*> [#uses=2] | |
%25 = icmp ult i8* %s_addr.0, %9 ; <i1> [#uses=1] | |
br i1 %25, label %bb2, label %bb8 | |
bb6: ; preds = %bb8 | |
%26 = icmp eq i32 %buf.2.4, %buf.1.6 ; <i1> [#uses=1] | |
br i1 %26, label %bb.i58, label %bb1.i71 | |
bb.i58: ; preds = %bb6 | |
%27 = icmp eq i32 %buf.1.6, 0 ; <i1> [#uses=1] | |
br i1 %27, label %bb.i.i61, label %bb2.preheader.i.i59 | |
bb2.preheader.i.i59: ; preds = %bb.i58 | |
%28 = icmp slt i32 %buf.1.6, %tmp181 ; <i1> [#uses=1] | |
br i1 %28, label %bb1.i.i63, label %bb1.i71 | |
bb.i.i61: ; preds = %bb.i58 | |
%29 = icmp slt i32 %tmp181, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i60 = select i1 %29, i32 8, i32 %tmp181 ; <i32> [#uses=1] | |
br label %bb3.i.i65 | |
bb1.i.i63: ; preds = %bb1.i.i63, %bb2.preheader.i.i59 | |
%.tmp.0.i.i62 = phi i32 [ %30, %bb1.i.i63 ], [ %buf.1.6, %bb2.preheader.i.i59 ] ; <i32> [#uses=1] | |
%30 = shl i32 %.tmp.0.i.i62, 1 ; <i32> [#uses=3] | |
%31 = icmp slt i32 %30, %tmp181 ; <i1> [#uses=1] | |
br i1 %31, label %bb1.i.i63, label %bb3.i.i65 | |
bb3.i.i65: ; preds = %bb1.i.i63, %bb.i.i61 | |
%buf.1.4 = phi i32 [ %iftmp.215.0.i.i.i60, %bb.i.i61 ], [ %30, %bb1.i.i63 ] ; <i32> [#uses=6] | |
%32 = icmp sgt i32 %buf.1.4, %buf.1.6 ; <i1> [#uses=1] | |
br i1 %32, label %bb4.i.i66, label %bb1.i71 | |
bb4.i.i66: ; preds = %bb3.i.i65 | |
%33 = sext i32 %buf.1.4 to i64 ; <i64> [#uses=1] | |
%34 = invoke i8* @_Znam(i64 %33) | |
to label %.noexc75 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc75: ; preds = %bb4.i.i66 | |
%35 = icmp sgt i32 %buf.1.6, 0 ; <i1> [#uses=1] | |
br i1 %35, label %bb5.i.i67, label %bb1.i71 | |
bb5.i.i67: ; preds = %.noexc75 | |
%36 = sext i32 %buf.1.6 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %34, i8* %buf.0.6, i64 %36, i32 1) | |
%37 = icmp eq i8* %buf.0.6, null ; <i1> [#uses=1] | |
br i1 %37, label %bb1.i71, label %bb6.i.i68 | |
bb6.i.i68: ; preds = %bb5.i.i67 | |
tail call void @_ZdaPv(i8* %buf.0.6) nounwind | |
br label %bb1.i71 | |
bb1.i71: ; preds = %bb6.i.i68, %bb5.i.i67, %.noexc75, %bb3.i.i65, %bb2.preheader.i.i59, %bb6 | |
%buf.1.5 = phi i32 [ %buf.1.4, %bb3.i.i65 ], [ %buf.1.6, %bb2.preheader.i.i59 ], [ %buf.1.6, %bb6 ], [ %buf.1.4, %bb6.i.i68 ], [ %buf.1.4, %bb5.i.i67 ], [ %buf.1.4, %.noexc75 ] ; <i32> [#uses=1] | |
%buf.0.5 = phi i8* [ %buf.0.6, %bb3.i.i65 ], [ %buf.0.6, %bb2.preheader.i.i59 ], [ %buf.0.6, %bb6 ], [ %34, %bb6.i.i68 ], [ %34, %bb5.i.i67 ], [ %34, %.noexc75 ] ; <i8*> [#uses=2] | |
%scevgep183 = getelementptr i8* %buf.0.5, i64 %tmp175 ; <i8*> [#uses=2] | |
%38 = icmp eq i8* %scevgep183, null ; <i1> [#uses=1] | |
br i1 %38, label %invcont7, label %bb2.i74 | |
bb2.i74: ; preds = %bb1.i71 | |
%39 = load i8* %n.0, align 1 ; <i8> [#uses=1] | |
store i8 %39, i8* %scevgep183, align 1 | |
br label %invcont7 | |
invcont7: ; preds = %bb2.i74, %bb1.i71 | |
%indvar.next172 = add i64 %indvar171, 1 ; <i64> [#uses=1] | |
br label %bb8 | |
bb8: ; preds = %invcont7, %bb4 | |
%indvar171 = phi i64 [ %indvar.next172, %invcont7 ], [ 0, %bb4 ] ; <i64> [#uses=4] | |
%buf.1.6 = phi i32 [ %buf.1.5, %invcont7 ], [ %buf.1.2, %bb4 ] ; <i32> [#uses=10] | |
%buf.0.6 = phi i8* [ %buf.0.5, %invcont7 ], [ %buf.0.1, %bb4 ] ; <i8*> [#uses=8] | |
%tmp175 = add i64 %tmp163, %indvar171 ; <i64> [#uses=2] | |
%buf.2.4 = trunc i64 %tmp175 to i32 ; <i32> [#uses=2] | |
%tmp180 = add i64 %tmp160, %indvar171 ; <i64> [#uses=1] | |
%tmp181 = trunc i64 %tmp180 to i32 ; <i32> [#uses=4] | |
%n.0 = getelementptr i8* %newval, i64 %indvar171 ; <i8*> [#uses=2] | |
%40 = load i8* %n.0, align 1 ; <i8> [#uses=1] | |
%41 = icmp eq i8 %40, 0 ; <i1> [#uses=1] | |
br i1 %41, label %bb9, label %bb6 | |
bb9: ; preds = %bb8 | |
%42 = getelementptr inbounds i8* %9, i64 %3 ; <i8*> [#uses=1] | |
br label %bb1 | |
bb10: ; preds = %bb12 | |
br i1 %58, label %bb.i39, label %bb1.i52 | |
bb.i39: ; preds = %bb10 | |
%43 = icmp eq i32 %buf.1.9, 0 ; <i1> [#uses=1] | |
br i1 %43, label %bb.i.i42, label %bb2.preheader.i.i40 | |
bb2.preheader.i.i40: ; preds = %bb.i39 | |
%44 = icmp slt i32 %buf.1.9, %tmp144 ; <i1> [#uses=1] | |
br i1 %44, label %bb1.i.i44, label %bb1.i52 | |
bb.i.i42: ; preds = %bb.i39 | |
%45 = icmp slt i32 %tmp144, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i41 = select i1 %45, i32 8, i32 %tmp144 ; <i32> [#uses=1] | |
br label %bb3.i.i46 | |
bb1.i.i44: ; preds = %bb1.i.i44, %bb2.preheader.i.i40 | |
%.tmp.0.i.i43 = phi i32 [ %46, %bb1.i.i44 ], [ %buf.1.9, %bb2.preheader.i.i40 ] ; <i32> [#uses=1] | |
%46 = shl i32 %.tmp.0.i.i43, 1 ; <i32> [#uses=3] | |
%47 = icmp slt i32 %46, %tmp144 ; <i1> [#uses=1] | |
br i1 %47, label %bb1.i.i44, label %bb3.i.i46 | |
bb3.i.i46: ; preds = %bb1.i.i44, %bb.i.i42 | |
%buf.1.7 = phi i32 [ %iftmp.215.0.i.i.i41, %bb.i.i42 ], [ %46, %bb1.i.i44 ] ; <i32> [#uses=6] | |
%48 = icmp sgt i32 %buf.1.7, %buf.1.9 ; <i1> [#uses=1] | |
br i1 %48, label %bb4.i.i47, label %bb1.i52 | |
bb4.i.i47: ; preds = %bb3.i.i46 | |
%49 = sext i32 %buf.1.7 to i64 ; <i64> [#uses=1] | |
%50 = invoke i8* @_Znam(i64 %49) | |
to label %.noexc56 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc56: ; preds = %bb4.i.i47 | |
%51 = icmp sgt i32 %buf.1.9, 0 ; <i1> [#uses=1] | |
br i1 %51, label %bb5.i.i48, label %bb1.i52 | |
bb5.i.i48: ; preds = %.noexc56 | |
%52 = sext i32 %buf.1.9 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %50, i8* %buf.0.8, i64 %52, i32 1) | |
%53 = icmp eq i8* %buf.0.8, null ; <i1> [#uses=1] | |
br i1 %53, label %bb1.i52, label %bb6.i.i49 | |
bb6.i.i49: ; preds = %bb5.i.i48 | |
tail call void @_ZdaPv(i8* %buf.0.8) nounwind | |
br label %bb1.i52 | |
bb1.i52: ; preds = %bb6.i.i49, %bb5.i.i48, %.noexc56, %bb3.i.i46, %bb2.preheader.i.i40, %bb10 | |
%buf.1.8 = phi i32 [ %buf.1.7, %bb3.i.i46 ], [ %buf.1.9, %bb2.preheader.i.i40 ], [ %buf.1.9, %bb10 ], [ %buf.1.7, %bb6.i.i49 ], [ %buf.1.7, %bb5.i.i48 ], [ %buf.1.7, %.noexc56 ] ; <i32> [#uses=1] | |
%buf.0.7 = phi i8* [ %buf.0.8, %bb3.i.i46 ], [ %buf.0.8, %bb2.preheader.i.i40 ], [ %buf.0.8, %bb10 ], [ %50, %bb6.i.i49 ], [ %50, %bb5.i.i48 ], [ %50, %.noexc56 ] ; <i8*> [#uses=2] | |
%scevgep147 = getelementptr i8* %buf.0.7, i64 %tmp146 ; <i8*> [#uses=2] | |
%54 = icmp eq i8* %scevgep147, null ; <i1> [#uses=1] | |
br i1 %54, label %_ZN6vectorIcE3addERKc.exit57, label %bb2.i55 | |
bb2.i55: ; preds = %bb1.i52 | |
%55 = load i8* %s_addr.2, align 1 ; <i8> [#uses=1] | |
store i8 %55, i8* %scevgep147, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit57 | |
_ZN6vectorIcE3addERKc.exit57: ; preds = %bb2.i55, %bb1.i52 | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb12 | |
bb12: ; preds = %_ZN6vectorIcE3addERKc.exit57, %bb1 | |
%indvar = phi i64 [ %indvar.next, %_ZN6vectorIcE3addERKc.exit57 ], [ 0, %bb1 ] ; <i64> [#uses=5] | |
%buf.1.9 = phi i32 [ %buf.1.8, %_ZN6vectorIcE3addERKc.exit57 ], [ %buf.1.3, %bb1 ] ; <i32> [#uses=15] | |
%buf.0.8 = phi i8* [ %buf.0.7, %_ZN6vectorIcE3addERKc.exit57 ], [ %buf.0.2, %bb1 ] ; <i8*> [#uses=14] | |
%tmp139 = add i64 %tmp, %indvar ; <i64> [#uses=1] | |
%buf.2.5 = trunc i64 %tmp139 to i32 ; <i32> [#uses=4] | |
%tmp143 = add i64 %tmp142, %indvar ; <i64> [#uses=1] | |
%tmp144 = trunc i64 %tmp143 to i32 ; <i32> [#uses=4] | |
%tmp146 = add i64 %tmp145, %indvar ; <i64> [#uses=1] | |
%s_addr.2 = getelementptr i8* %s_addr.1, i64 %indvar ; <i8*> [#uses=2] | |
%56 = load i8* %s_addr.2, align 1 ; <i8> [#uses=1] | |
%57 = icmp eq i8 %56, 0 ; <i1> [#uses=1] | |
%58 = icmp eq i32 %buf.2.5, %buf.1.9 ; <i1> [#uses=2] | |
br i1 %57, label %bb13, label %bb10 | |
bb13: ; preds = %bb12 | |
br i1 %58, label %bb.i, label %bb1.i38 | |
bb.i: ; preds = %bb13 | |
%59 = add nsw i32 %buf.2.5, 1 ; <i32> [#uses=4] | |
%60 = icmp eq i32 %buf.1.9, 0 ; <i1> [#uses=1] | |
br i1 %60, label %bb.i.i, label %bb2.preheader.i.i | |
bb2.preheader.i.i: ; preds = %bb.i | |
%61 = icmp slt i32 %buf.1.9, %59 ; <i1> [#uses=1] | |
br i1 %61, label %bb1.i.i, label %bb1.i38 | |
bb.i.i: ; preds = %bb.i | |
%62 = icmp slt i32 %59, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i = select i1 %62, i32 8, i32 %59 ; <i32> [#uses=1] | |
br label %bb3.i.i | |
bb1.i.i: ; preds = %bb1.i.i, %bb2.preheader.i.i | |
%.tmp.0.i.i = phi i32 [ %63, %bb1.i.i ], [ %buf.1.9, %bb2.preheader.i.i ] ; <i32> [#uses=1] | |
%63 = shl i32 %.tmp.0.i.i, 1 ; <i32> [#uses=3] | |
%64 = icmp slt i32 %63, %59 ; <i1> [#uses=1] | |
br i1 %64, label %bb1.i.i, label %bb3.i.i | |
bb3.i.i: ; preds = %bb1.i.i, %bb.i.i | |
%65 = phi i32 [ %iftmp.215.0.i.i.i, %bb.i.i ], [ %63, %bb1.i.i ] ; <i32> [#uses=2] | |
%66 = icmp sgt i32 %65, %buf.1.9 ; <i1> [#uses=1] | |
br i1 %66, label %bb4.i.i, label %bb1.i38 | |
bb4.i.i: ; preds = %bb3.i.i | |
%67 = sext i32 %65 to i64 ; <i64> [#uses=1] | |
%68 = invoke i8* @_Znam(i64 %67) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=4] | |
.noexc: ; preds = %bb4.i.i | |
%69 = icmp sgt i32 %buf.1.9, 0 ; <i1> [#uses=1] | |
br i1 %69, label %bb5.i.i, label %bb1.i38 | |
bb5.i.i: ; preds = %.noexc | |
%70 = sext i32 %buf.1.9 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %68, i8* %buf.0.8, i64 %70, i32 1) | |
%71 = icmp eq i8* %buf.0.8, null ; <i1> [#uses=1] | |
br i1 %71, label %bb1.i38, label %bb6.i.i | |
bb6.i.i: ; preds = %bb5.i.i | |
tail call void @_ZdaPv(i8* %buf.0.8) nounwind | |
br label %bb1.i38 | |
bb1.i38: ; preds = %bb6.i.i, %bb5.i.i, %.noexc, %bb3.i.i, %bb2.preheader.i.i, %bb13 | |
%buf.0.9 = phi i8* [ %buf.0.8, %bb3.i.i ], [ %buf.0.8, %bb2.preheader.i.i ], [ %buf.0.8, %bb13 ], [ %68, %bb6.i.i ], [ %68, %bb5.i.i ], [ %68, %.noexc ] ; <i8*> [#uses=5] | |
%72 = sext i32 %buf.2.5 to i64 ; <i64> [#uses=1] | |
%73 = getelementptr inbounds i8* %buf.0.9, i64 %72 ; <i8*> [#uses=2] | |
%74 = icmp eq i8* %73, null ; <i1> [#uses=1] | |
br i1 %74, label %invcont14, label %bb2.i | |
bb2.i: ; preds = %bb1.i38 | |
store i8 0, i8* %73, align 1 | |
br label %invcont14 | |
invcont14: ; preds = %bb2.i, %bb1.i38 | |
%75 = add nsw i32 %buf.2.5, 1 ; <i32> [#uses=1] | |
%76 = sext i32 %75 to i64 ; <i64> [#uses=2] | |
%77 = add i64 %76, 1 ; <i64> [#uses=2] | |
%78 = invoke i8* @_Znam(i64 %77) | |
to label %bb19 unwind label %lpad ; <i8*> [#uses=4] | |
invcont17: ; preds = %bb1.i, %lpad, %_ZN6vectorIcE6shrinkEi.exit.i.thread | |
%eh_ptr104106 = phi i8* [ %eh_ptr, %bb1.i ], [ %eh_ptr101, %_ZN6vectorIcE6shrinkEi.exit.i.thread ], [ %eh_ptr, %lpad ] ; <i8*> [#uses=1] | |
tail call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr104106) | |
unreachable | |
bb19: ; preds = %invcont14 | |
%79 = tail call i8* @strncpy(i8* noalias %78, i8* noalias %buf.0.9, i64 %77) nounwind ; <i8*> [#uses=0] | |
%80 = getelementptr inbounds i8* %78, i64 %76 ; <i8*> [#uses=1] | |
store i8 0, i8* %80, align 1 | |
%81 = icmp eq i8* %buf.0.9, null ; <i1> [#uses=1] | |
br i1 %81, label %_ZN6vectorIcED1Ev.exit37, label %bb1.i35 | |
bb1.i35: ; preds = %bb19 | |
tail call void @_ZdaPv(i8* %buf.0.9) nounwind | |
ret i8* %78 | |
_ZN6vectorIcED1Ev.exit37: ; preds = %bb19 | |
ret i8* %78 | |
lpad: ; preds = %invcont14, %bb4.i.i, %bb4.i.i47, %bb4.i.i66, %bb4.i.i85 | |
%buf.0.3 = phi i8* [ %buf.0.9, %invcont14 ], [ %buf.0.8, %bb4.i.i ], [ %buf.0.8, %bb4.i.i47 ], [ %buf.0.1, %bb4.i.i85 ], [ %buf.0.6, %bb4.i.i66 ] ; <i8*> [#uses=2] | |
%eh_ptr = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=3] | |
%eh_select22 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
%82 = icmp eq i8* %buf.0.3, null ; <i1> [#uses=1] | |
br i1 %82, label %invcont17, label %bb1.i | |
bb1.i: ; preds = %lpad | |
tail call void @_ZdaPv(i8* %buf.0.3) nounwind | |
br label %invcont17 | |
} | |
declare i8* @llvm.eh.exception() nounwind readonly | |
declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind | |
declare i32 @__gxx_personality_v0(...) | |
declare void @_Unwind_Resume_or_Rethrow(i8*) | |
define void @_ZN7_stdcmdILi1221EE3runEPcS1_S1_(i8* %s, i8* nocapture %o, i8* nocapture %n) align 2 { | |
entry: | |
%0 = tail call i8* @_Z10strreplacePKcS0_S0_(i8* %s, i8* %o, i8* %n) ; <i8*> [#uses=1] | |
store i8* %0, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z6formatPPcPi(i8** nocapture %args, i32* nocapture %numargs) { | |
entry: | |
%0 = load i8** %args, align 8 ; <i8*> [#uses=1] | |
br label %bb12 | |
bb: ; preds = %bb12 | |
%1 = getelementptr inbounds i8* %f.0, i64 1 ; <i8*> [#uses=2] | |
%2 = icmp eq i8 %64, 37 ; <i1> [#uses=1] | |
br i1 %2, label %bb1, label %bb10 | |
bb1: ; preds = %bb | |
%3 = load i8* %1, align 1 ; <i8> [#uses=2] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=2] | |
%5 = getelementptr inbounds i8* %f.0, i64 2 ; <i8*> [#uses=2] | |
%6 = add i32 %4, -49 ; <i32> [#uses=1] | |
%7 = icmp ult i32 %6, 9 ; <i1> [#uses=1] | |
br i1 %7, label %bb2, label %bb8 | |
bb2: ; preds = %bb1 | |
%8 = add nsw i32 %4, -48 ; <i32> [#uses=2] | |
%9 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%10 = icmp sgt i32 %9, %8 ; <i1> [#uses=1] | |
br i1 %10, label %bb3, label %bb7.preheader | |
bb3: ; preds = %bb2 | |
%11 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds i8** %args, i64 %11 ; <i8**> [#uses=1] | |
%13 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
br label %bb7.preheader | |
bb7.preheader: ; preds = %bb3, %bb2 | |
%sub.0.ph = phi i8* [ %13, %bb3 ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %bb2 ] ; <i8*> [#uses=1] | |
%tmp = zext i32 %s.2.1 to i64 ; <i64> [#uses=1] | |
%tmp119 = add i32 %s.2.1, 1 ; <i32> [#uses=1] | |
%tmp120 = zext i32 %tmp119 to i64 ; <i64> [#uses=1] | |
%tmp123 = sext i32 %s.2.1 to i64 ; <i64> [#uses=1] | |
br label %bb7 | |
bb6: ; preds = %bb7 | |
%14 = icmp eq i32 %s.2.0, %s.1.2 ; <i1> [#uses=1] | |
br i1 %14, label %bb.i76, label %bb1.i89 | |
bb.i76: ; preds = %bb6 | |
%15 = icmp eq i32 %s.1.2, 0 ; <i1> [#uses=1] | |
br i1 %15, label %bb.i.i79, label %bb2.preheader.i.i77 | |
bb2.preheader.i.i77: ; preds = %bb.i76 | |
%16 = icmp slt i32 %s.1.2, %tmp122 ; <i1> [#uses=1] | |
br i1 %16, label %bb1.i.i81, label %bb1.i89 | |
bb.i.i79: ; preds = %bb.i76 | |
%17 = icmp slt i32 %tmp122, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i78 = select i1 %17, i32 8, i32 %tmp122 ; <i32> [#uses=1] | |
br label %bb3.i.i83 | |
bb1.i.i81: ; preds = %bb1.i.i81, %bb2.preheader.i.i77 | |
%.tmp.0.i.i80 = phi i32 [ %18, %bb1.i.i81 ], [ %s.1.2, %bb2.preheader.i.i77 ] ; <i32> [#uses=1] | |
%18 = shl i32 %.tmp.0.i.i80, 1 ; <i32> [#uses=3] | |
%19 = icmp slt i32 %18, %tmp122 ; <i1> [#uses=1] | |
br i1 %19, label %bb1.i.i81, label %bb3.i.i83 | |
bb3.i.i83: ; preds = %bb1.i.i81, %bb.i.i79 | |
%s.1.0 = phi i32 [ %iftmp.215.0.i.i.i78, %bb.i.i79 ], [ %18, %bb1.i.i81 ] ; <i32> [#uses=6] | |
%20 = icmp sgt i32 %s.1.0, %s.1.2 ; <i1> [#uses=1] | |
br i1 %20, label %bb4.i.i84, label %bb1.i89 | |
bb4.i.i84: ; preds = %bb3.i.i83 | |
%21 = sext i32 %s.1.0 to i64 ; <i64> [#uses=1] | |
%22 = invoke i8* @_Znam(i64 %21) | |
to label %.noexc93 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc93: ; preds = %bb4.i.i84 | |
%23 = icmp sgt i32 %s.1.2, 0 ; <i1> [#uses=1] | |
br i1 %23, label %bb5.i.i85, label %bb1.i89 | |
bb5.i.i85: ; preds = %.noexc93 | |
%24 = sext i32 %s.1.2 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %22, i8* %s.0.1, i64 %24, i32 1) | |
%25 = icmp eq i8* %s.0.1, null ; <i1> [#uses=1] | |
br i1 %25, label %bb1.i89, label %bb6.i.i86 | |
bb6.i.i86: ; preds = %bb5.i.i85 | |
tail call void @_ZdaPv(i8* %s.0.1) nounwind | |
br label %bb1.i89 | |
bb1.i89: ; preds = %bb6.i.i86, %bb5.i.i85, %.noexc93, %bb3.i.i83, %bb2.preheader.i.i77, %bb6 | |
%s.1.1 = phi i32 [ %s.1.0, %bb3.i.i83 ], [ %s.1.2, %bb2.preheader.i.i77 ], [ %s.1.2, %bb6 ], [ %s.1.0, %bb6.i.i86 ], [ %s.1.0, %bb5.i.i85 ], [ %s.1.0, %.noexc93 ] ; <i32> [#uses=1] | |
%s.0.0 = phi i8* [ %s.0.1, %bb3.i.i83 ], [ %s.0.1, %bb2.preheader.i.i77 ], [ %s.0.1, %bb6 ], [ %22, %bb6.i.i86 ], [ %22, %bb5.i.i85 ], [ %22, %.noexc93 ] ; <i8*> [#uses=2] | |
%scevgep125 = getelementptr i8* %s.0.0, i64 %tmp124 ; <i8*> [#uses=2] | |
%26 = icmp eq i8* %scevgep125, null ; <i1> [#uses=1] | |
br i1 %26, label %_ZN6vectorIcE3addERKc.exit94, label %bb2.i92 | |
bb2.i92: ; preds = %bb1.i89 | |
%27 = load i8* %sub.0, align 1 ; <i8> [#uses=1] | |
store i8 %27, i8* %scevgep125, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit94 | |
_ZN6vectorIcE3addERKc.exit94: ; preds = %bb2.i92, %bb1.i89 | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb7 | |
bb7: ; preds = %_ZN6vectorIcE3addERKc.exit94, %bb7.preheader | |
%indvar = phi i64 [ 0, %bb7.preheader ], [ %indvar.next, %_ZN6vectorIcE3addERKc.exit94 ] ; <i64> [#uses=5] | |
%s.1.2 = phi i32 [ %s.1.3, %bb7.preheader ], [ %s.1.1, %_ZN6vectorIcE3addERKc.exit94 ] ; <i32> [#uses=10] | |
%s.0.1 = phi i8* [ %s.0.2, %bb7.preheader ], [ %s.0.0, %_ZN6vectorIcE3addERKc.exit94 ] ; <i8*> [#uses=8] | |
%tmp117 = add i64 %tmp, %indvar ; <i64> [#uses=1] | |
%s.2.0 = trunc i64 %tmp117 to i32 ; <i32> [#uses=2] | |
%tmp121 = add i64 %tmp120, %indvar ; <i64> [#uses=1] | |
%tmp122 = trunc i64 %tmp121 to i32 ; <i32> [#uses=4] | |
%tmp124 = add i64 %tmp123, %indvar ; <i64> [#uses=1] | |
%sub.0 = getelementptr i8* %sub.0.ph, i64 %indvar ; <i8*> [#uses=2] | |
%28 = load i8* %sub.0, align 1 ; <i8> [#uses=1] | |
%29 = icmp eq i8 %28, 0 ; <i1> [#uses=1] | |
br i1 %29, label %bb12, label %bb6 | |
bb8: ; preds = %bb1 | |
%30 = icmp eq i32 %s.2.1, %s.1.3 ; <i1> [#uses=1] | |
br i1 %30, label %bb.i57, label %bb1.i70 | |
bb.i57: ; preds = %bb8 | |
%31 = add nsw i32 %s.2.1, 1 ; <i32> [#uses=4] | |
%32 = icmp eq i32 %s.1.3, 0 ; <i1> [#uses=1] | |
br i1 %32, label %bb.i.i60, label %bb2.preheader.i.i58 | |
bb2.preheader.i.i58: ; preds = %bb.i57 | |
%33 = icmp slt i32 %s.1.3, %31 ; <i1> [#uses=1] | |
br i1 %33, label %bb1.i.i62, label %bb1.i70 | |
bb.i.i60: ; preds = %bb.i57 | |
%34 = icmp slt i32 %31, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i59 = select i1 %34, i32 8, i32 %31 ; <i32> [#uses=1] | |
br label %bb3.i.i64 | |
bb1.i.i62: ; preds = %bb1.i.i62, %bb2.preheader.i.i58 | |
%.tmp.0.i.i61 = phi i32 [ %35, %bb1.i.i62 ], [ %s.1.3, %bb2.preheader.i.i58 ] ; <i32> [#uses=1] | |
%35 = shl i32 %.tmp.0.i.i61, 1 ; <i32> [#uses=3] | |
%36 = icmp slt i32 %35, %31 ; <i1> [#uses=1] | |
br i1 %36, label %bb1.i.i62, label %bb3.i.i64 | |
bb3.i.i64: ; preds = %bb1.i.i62, %bb.i.i60 | |
%s.1.4 = phi i32 [ %iftmp.215.0.i.i.i59, %bb.i.i60 ], [ %35, %bb1.i.i62 ] ; <i32> [#uses=6] | |
%37 = icmp sgt i32 %s.1.4, %s.1.3 ; <i1> [#uses=1] | |
br i1 %37, label %bb4.i.i65, label %bb1.i70 | |
bb4.i.i65: ; preds = %bb3.i.i64 | |
%38 = sext i32 %s.1.4 to i64 ; <i64> [#uses=1] | |
%39 = invoke i8* @_Znam(i64 %38) | |
to label %.noexc74 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc74: ; preds = %bb4.i.i65 | |
%40 = icmp sgt i32 %s.1.3, 0 ; <i1> [#uses=1] | |
br i1 %40, label %bb5.i.i66, label %bb1.i70 | |
bb5.i.i66: ; preds = %.noexc74 | |
%41 = sext i32 %s.1.3 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %39, i8* %s.0.2, i64 %41, i32 1) | |
%42 = icmp eq i8* %s.0.2, null ; <i1> [#uses=1] | |
br i1 %42, label %bb1.i70, label %bb6.i.i67 | |
bb6.i.i67: ; preds = %bb5.i.i66 | |
tail call void @_ZdaPv(i8* %s.0.2) nounwind | |
br label %bb1.i70 | |
bb1.i70: ; preds = %bb6.i.i67, %bb5.i.i66, %.noexc74, %bb3.i.i64, %bb2.preheader.i.i58, %bb8 | |
%s.1.5 = phi i32 [ %s.1.4, %bb3.i.i64 ], [ %s.1.3, %bb2.preheader.i.i58 ], [ %s.1.3, %bb8 ], [ %s.1.4, %bb6.i.i67 ], [ %s.1.4, %bb5.i.i66 ], [ %s.1.4, %.noexc74 ] ; <i32> [#uses=1] | |
%s.0.4 = phi i8* [ %s.0.2, %bb3.i.i64 ], [ %s.0.2, %bb2.preheader.i.i58 ], [ %s.0.2, %bb8 ], [ %39, %bb6.i.i67 ], [ %39, %bb5.i.i66 ], [ %39, %.noexc74 ] ; <i8*> [#uses=2] | |
%43 = sext i32 %s.2.1 to i64 ; <i64> [#uses=1] | |
%44 = getelementptr inbounds i8* %s.0.4, i64 %43 ; <i8*> [#uses=2] | |
%45 = icmp eq i8* %44, null ; <i1> [#uses=1] | |
br i1 %45, label %_ZN6vectorIcE3addERKc.exit75, label %bb2.i73 | |
bb2.i73: ; preds = %bb1.i70 | |
store i8 %3, i8* %44, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit75 | |
_ZN6vectorIcE3addERKc.exit75: ; preds = %bb2.i73, %bb1.i70 | |
%46 = add nsw i32 %s.2.1, 1 ; <i32> [#uses=1] | |
br label %bb12 | |
bb10: ; preds = %bb | |
%47 = icmp eq i32 %s.2.1, %s.1.3 ; <i1> [#uses=1] | |
br i1 %47, label %bb.i38, label %bb1.i51 | |
bb.i38: ; preds = %bb10 | |
%48 = add nsw i32 %s.2.1, 1 ; <i32> [#uses=4] | |
%49 = icmp eq i32 %s.1.3, 0 ; <i1> [#uses=1] | |
br i1 %49, label %bb.i.i41, label %bb2.preheader.i.i39 | |
bb2.preheader.i.i39: ; preds = %bb.i38 | |
%50 = icmp slt i32 %s.1.3, %48 ; <i1> [#uses=1] | |
br i1 %50, label %bb1.i.i43, label %bb1.i51 | |
bb.i.i41: ; preds = %bb.i38 | |
%51 = icmp slt i32 %48, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i40 = select i1 %51, i32 8, i32 %48 ; <i32> [#uses=1] | |
br label %bb3.i.i45 | |
bb1.i.i43: ; preds = %bb1.i.i43, %bb2.preheader.i.i39 | |
%.tmp.0.i.i42 = phi i32 [ %52, %bb1.i.i43 ], [ %s.1.3, %bb2.preheader.i.i39 ] ; <i32> [#uses=1] | |
%52 = shl i32 %.tmp.0.i.i42, 1 ; <i32> [#uses=3] | |
%53 = icmp slt i32 %52, %48 ; <i1> [#uses=1] | |
br i1 %53, label %bb1.i.i43, label %bb3.i.i45 | |
bb3.i.i45: ; preds = %bb1.i.i43, %bb.i.i41 | |
%s.1.6 = phi i32 [ %iftmp.215.0.i.i.i40, %bb.i.i41 ], [ %52, %bb1.i.i43 ] ; <i32> [#uses=6] | |
%54 = icmp sgt i32 %s.1.6, %s.1.3 ; <i1> [#uses=1] | |
br i1 %54, label %bb4.i.i46, label %bb1.i51 | |
bb4.i.i46: ; preds = %bb3.i.i45 | |
%55 = sext i32 %s.1.6 to i64 ; <i64> [#uses=1] | |
%56 = invoke i8* @_Znam(i64 %55) | |
to label %.noexc55 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc55: ; preds = %bb4.i.i46 | |
%57 = icmp sgt i32 %s.1.3, 0 ; <i1> [#uses=1] | |
br i1 %57, label %bb5.i.i47, label %bb1.i51 | |
bb5.i.i47: ; preds = %.noexc55 | |
%58 = sext i32 %s.1.3 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %56, i8* %s.0.2, i64 %58, i32 1) | |
%59 = icmp eq i8* %s.0.2, null ; <i1> [#uses=1] | |
br i1 %59, label %bb1.i51, label %bb6.i.i48 | |
bb6.i.i48: ; preds = %bb5.i.i47 | |
tail call void @_ZdaPv(i8* %s.0.2) nounwind | |
br label %bb1.i51 | |
bb1.i51: ; preds = %bb6.i.i48, %bb5.i.i47, %.noexc55, %bb3.i.i45, %bb2.preheader.i.i39, %bb10 | |
%s.1.7 = phi i32 [ %s.1.6, %bb3.i.i45 ], [ %s.1.3, %bb2.preheader.i.i39 ], [ %s.1.3, %bb10 ], [ %s.1.6, %bb6.i.i48 ], [ %s.1.6, %bb5.i.i47 ], [ %s.1.6, %.noexc55 ] ; <i32> [#uses=1] | |
%s.0.5 = phi i8* [ %s.0.2, %bb3.i.i45 ], [ %s.0.2, %bb2.preheader.i.i39 ], [ %s.0.2, %bb10 ], [ %56, %bb6.i.i48 ], [ %56, %bb5.i.i47 ], [ %56, %.noexc55 ] ; <i8*> [#uses=2] | |
%60 = sext i32 %s.2.1 to i64 ; <i64> [#uses=1] | |
%61 = getelementptr inbounds i8* %s.0.5, i64 %60 ; <i8*> [#uses=2] | |
%62 = icmp eq i8* %61, null ; <i1> [#uses=1] | |
br i1 %62, label %_ZN6vectorIcE3addERKc.exit56, label %bb2.i54 | |
bb2.i54: ; preds = %bb1.i51 | |
store i8 %64, i8* %61, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit56 | |
_ZN6vectorIcE3addERKc.exit56: ; preds = %bb2.i54, %bb1.i51 | |
%63 = add nsw i32 %s.2.1, 1 ; <i32> [#uses=1] | |
br label %bb12 | |
bb12: ; preds = %_ZN6vectorIcE3addERKc.exit56, %_ZN6vectorIcE3addERKc.exit75, %bb7, %entry | |
%s.2.1 = phi i32 [ 0, %entry ], [ %46, %_ZN6vectorIcE3addERKc.exit75 ], [ %63, %_ZN6vectorIcE3addERKc.exit56 ], [ %s.2.0, %bb7 ] ; <i32> [#uses=14] | |
%s.1.3 = phi i32 [ 0, %entry ], [ %s.1.5, %_ZN6vectorIcE3addERKc.exit75 ], [ %s.1.7, %_ZN6vectorIcE3addERKc.exit56 ], [ %s.1.2, %bb7 ] ; <i32> [#uses=26] | |
%s.0.2 = phi i8* [ null, %entry ], [ %s.0.4, %_ZN6vectorIcE3addERKc.exit75 ], [ %s.0.5, %_ZN6vectorIcE3addERKc.exit56 ], [ %s.0.1, %bb7 ] ; <i8*> [#uses=22] | |
%f.0 = phi i8* [ %0, %entry ], [ %5, %_ZN6vectorIcE3addERKc.exit75 ], [ %1, %_ZN6vectorIcE3addERKc.exit56 ], [ %5, %bb7 ] ; <i8*> [#uses=3] | |
%64 = load i8* %f.0, align 1 ; <i8> [#uses=3] | |
%65 = icmp eq i8 %64, 0 ; <i1> [#uses=1] | |
br i1 %65, label %bb13, label %bb | |
bb13: ; preds = %bb12 | |
%66 = icmp eq i32 %s.2.1, %s.1.3 ; <i1> [#uses=1] | |
br i1 %66, label %bb.i, label %bb1.i37 | |
bb.i: ; preds = %bb13 | |
%67 = add nsw i32 %s.2.1, 1 ; <i32> [#uses=4] | |
%68 = icmp eq i32 %s.1.3, 0 ; <i1> [#uses=1] | |
br i1 %68, label %bb.i.i, label %bb2.preheader.i.i | |
bb2.preheader.i.i: ; preds = %bb.i | |
%69 = icmp slt i32 %s.1.3, %67 ; <i1> [#uses=1] | |
br i1 %69, label %bb1.i.i, label %bb1.i37 | |
bb.i.i: ; preds = %bb.i | |
%70 = icmp slt i32 %67, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i = select i1 %70, i32 8, i32 %67 ; <i32> [#uses=1] | |
br label %bb3.i.i | |
bb1.i.i: ; preds = %bb1.i.i, %bb2.preheader.i.i | |
%.tmp.0.i.i = phi i32 [ %71, %bb1.i.i ], [ %s.1.3, %bb2.preheader.i.i ] ; <i32> [#uses=1] | |
%71 = shl i32 %.tmp.0.i.i, 1 ; <i32> [#uses=3] | |
%72 = icmp slt i32 %71, %67 ; <i1> [#uses=1] | |
br i1 %72, label %bb1.i.i, label %bb3.i.i | |
bb3.i.i: ; preds = %bb1.i.i, %bb.i.i | |
%73 = phi i32 [ %iftmp.215.0.i.i.i, %bb.i.i ], [ %71, %bb1.i.i ] ; <i32> [#uses=2] | |
%74 = icmp sgt i32 %73, %s.1.3 ; <i1> [#uses=1] | |
br i1 %74, label %bb4.i.i, label %bb1.i37 | |
bb4.i.i: ; preds = %bb3.i.i | |
%75 = sext i32 %73 to i64 ; <i64> [#uses=1] | |
%76 = invoke i8* @_Znam(i64 %75) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=4] | |
.noexc: ; preds = %bb4.i.i | |
%77 = icmp sgt i32 %s.1.3, 0 ; <i1> [#uses=1] | |
br i1 %77, label %bb5.i.i, label %bb1.i37 | |
bb5.i.i: ; preds = %.noexc | |
%78 = sext i32 %s.1.3 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %76, i8* %s.0.2, i64 %78, i32 1) | |
%79 = icmp eq i8* %s.0.2, null ; <i1> [#uses=1] | |
br i1 %79, label %bb1.i37, label %bb6.i.i | |
bb6.i.i: ; preds = %bb5.i.i | |
tail call void @_ZdaPv(i8* %s.0.2) nounwind | |
br label %bb1.i37 | |
bb1.i37: ; preds = %bb6.i.i, %bb5.i.i, %.noexc, %bb3.i.i, %bb2.preheader.i.i, %bb13 | |
%s.0.6 = phi i8* [ %s.0.2, %bb3.i.i ], [ %s.0.2, %bb2.preheader.i.i ], [ %s.0.2, %bb13 ], [ %76, %bb6.i.i ], [ %76, %bb5.i.i ], [ %76, %.noexc ] ; <i8*> [#uses=6] | |
%80 = sext i32 %s.2.1 to i64 ; <i64> [#uses=1] | |
%81 = getelementptr inbounds i8* %s.0.6, i64 %80 ; <i8*> [#uses=2] | |
%82 = icmp eq i8* %81, null ; <i1> [#uses=1] | |
br i1 %82, label %invcont14, label %bb2.i | |
bb2.i: ; preds = %bb1.i37 | |
store i8 0, i8* %81, align 1 | |
br label %invcont14 | |
invcont14: ; preds = %bb2.i, %bb1.i37 | |
%83 = tail call i64 @strlen(i8* %s.0.6) nounwind readonly ; <i64> [#uses=2] | |
%84 = add i64 %83, 1 ; <i64> [#uses=2] | |
%85 = invoke i8* @_Znam(i64 %84) | |
to label %bb19 unwind label %lpad ; <i8*> [#uses=3] | |
invcont17: ; preds = %bb1.i, %lpad | |
tail call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
bb19: ; preds = %invcont14 | |
%86 = tail call i8* @strncpy(i8* noalias %85, i8* noalias %s.0.6, i64 %84) nounwind ; <i8*> [#uses=0] | |
%87 = getelementptr inbounds i8* %85, i64 %83 ; <i8*> [#uses=1] | |
store i8 0, i8* %87, align 1 | |
store i8* %85, i8** @commandret, align 8 | |
%88 = icmp eq i8* %s.0.6, null ; <i1> [#uses=1] | |
br i1 %88, label %_ZN6vectorIcED1Ev.exit36, label %bb1.i34 | |
bb1.i34: ; preds = %bb19 | |
tail call void @_ZdaPv(i8* %s.0.6) nounwind | |
ret void | |
_ZN6vectorIcED1Ev.exit36: ; preds = %bb19 | |
ret void | |
lpad: ; preds = %invcont14, %bb4.i.i, %bb4.i.i46, %bb4.i.i65, %bb4.i.i84 | |
%s.0.3 = phi i8* [ %s.0.6, %invcont14 ], [ %s.0.2, %bb4.i.i ], [ %s.0.1, %bb4.i.i84 ], [ %s.0.2, %bb4.i.i46 ], [ %s.0.2, %bb4.i.i65 ] ; <i8*> [#uses=2] | |
%eh_ptr = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select21 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
%89 = icmp eq i8* %s.0.3, null ; <i1> [#uses=1] | |
br i1 %89, label %invcont17, label %bb1.i | |
bb1.i: ; preds = %lpad | |
tail call void @_ZdaPv(i8* %s.0.3) nounwind | |
br label %invcont17 | |
} | |
define void @_ZN7_stdcmdILi1191EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%.lobit = lshr i32 %1, 31 ; <i32> [#uses=1] | |
%.lobit.not = xor i32 %.lobit, 1 ; <i32> [#uses=1] | |
%2 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%3 = add nsw i32 %2, 1 ; <i32> [#uses=1] | |
%4 = srem i32 %3, 3 ; <i32> [#uses=2] | |
store i32 %4, i32* @_ZL6retidx, align 4 | |
%5 = sext i32 %4 to i64 ; <i64> [#uses=1] | |
%6 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %5, i64 0 ; <i8*> [#uses=1] | |
%7 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %6, i8** %7, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %.lobit.not) nounwind | |
%8 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%9 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%10 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %9, i64 0 ; <i8*> [#uses=2] | |
%11 = call i64 @strlen(i8* %10) nounwind readonly ; <i64> [#uses=2] | |
%12 = add i64 %11, 1 ; <i64> [#uses=2] | |
%13 = call i8* @_Znam(i64 %12) ; <i8*> [#uses=3] | |
%14 = call i8* @strncpy(i8* noalias %13, i8* noalias %10, i64 %12) nounwind ; <i8*> [#uses=0] | |
%15 = getelementptr inbounds i8* %13, i64 %11 ; <i8*> [#uses=1] | |
store i8 0, i8* %15, align 1 | |
store i8* %13, i8** @commandret, align 8 | |
ret void | |
} | |
declare i32 @strcmp(i8* nocapture, i8* nocapture) nounwind readonly | |
define void @_ZN7_stdcmdILi1190EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%2 = icmp slt i32 %1, 1 ; <i1> [#uses=1] | |
%3 = zext i1 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1189EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%2 = icmp sgt i32 %1, 0 ; <i1> [#uses=1] | |
%3 = zext i1 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1188EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%.lobit = lshr i32 %1, 31 ; <i32> [#uses=1] | |
%2 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%3 = add nsw i32 %2, 1 ; <i32> [#uses=1] | |
%4 = srem i32 %3, 3 ; <i32> [#uses=2] | |
store i32 %4, i32* @_ZL6retidx, align 4 | |
%5 = sext i32 %4 to i64 ; <i64> [#uses=1] | |
%6 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %5, i64 0 ; <i8*> [#uses=1] | |
%7 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %6, i8** %7, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %.lobit) nounwind | |
%8 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%9 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%10 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %9, i64 0 ; <i8*> [#uses=2] | |
%11 = call i64 @strlen(i8* %10) nounwind readonly ; <i64> [#uses=2] | |
%12 = add i64 %11, 1 ; <i64> [#uses=2] | |
%13 = call i8* @_Znam(i64 %12) ; <i8*> [#uses=3] | |
%14 = call i8* @strncpy(i8* noalias %13, i8* noalias %10, i64 %12) nounwind ; <i8*> [#uses=0] | |
%15 = getelementptr inbounds i8* %13, i64 %11 ; <i8*> [#uses=1] | |
store i8 0, i8* %15, align 1 | |
store i8* %13, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1187EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%2 = icmp ne i32 %1, 0 ; <i1> [#uses=1] | |
%3 = zext i1 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1186EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] | |
%3 = zext i1 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1185EE3runEPcS1_(i8* nocapture %a, i8* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i32 @strcmp(i8* %a, i8* %b) nounwind readonly ; <i32> [#uses=1] | |
%2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] | |
%3 = zext i1 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define i8* @_Z6lookupPc(i8* %n) { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%2 = getelementptr inbounds i8* %n, i64 1 ; <i8*> [#uses=3] | |
%3 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%4 = load i8* %2, align 1 ; <i8> [#uses=2] | |
%5 = icmp eq i8 %4, 0 ; <i1> [#uses=1] | |
br i1 %5, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp.i, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=2] | |
%6 = phi i8 [ %10, %bb.i.i ], [ %4, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %9, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 2 ; <i64> [#uses=1] | |
%scevgep.i.i = getelementptr i8* %n, i64 %tmp ; <i8*> [#uses=1] | |
%tmp.i = add i64 %indvar.i.i, 1 ; <i64> [#uses=1] | |
%7 = sext i8 %6 to i32 ; <i32> [#uses=1] | |
%8 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%9 = xor i32 %8, %7 ; <i32> [#uses=2] | |
%10 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%11 = icmp eq i8 %10, 0 ; <i1> [#uses=1] | |
br i1 %11, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %9, %bb.i.i ] ; <i32> [#uses=1] | |
%12 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %3, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%13 = load i32* %12, align 8 ; <i32> [#uses=1] | |
%14 = add nsw i32 %13, -1 ; <i32> [#uses=1] | |
%15 = and i32 %14, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %3, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%17 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %16, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%18 = zext i32 %15 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %17, i64 %18 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%20 = call i32 @strcmp(i8* %2, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%21 = icmp eq i32 %20, 0 ; <i1> [#uses=1] | |
br i1 %21, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%22 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %19, %_ZL6hthashPKc.exit.i ], [ %22, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=9] | |
%23 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %23, label %bb5, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%24 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%25 = icmp eq %struct.ident* %24, null ; <i1> [#uses=1] | |
br i1 %25, label %bb5, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%27 = load i32* %26, align 8 ; <i32> [#uses=1] | |
switch i32 %27, label %bb5 [ | |
i32 0, label %bb1 | |
i32 1, label %bb2 | |
i32 2, label %bb3 | |
i32 5, label %bb4 | |
] | |
bb1: ; preds = %bb | |
%28 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%29 = load i32** %28, align 8 ; <i32*> [#uses=1] | |
%30 = load i32* %29, align 4 ; <i32> [#uses=1] | |
%31 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%32 = add nsw i32 %31, 1 ; <i32> [#uses=1] | |
%33 = srem i32 %32, 3 ; <i32> [#uses=2] | |
store i32 %33, i32* @_ZL6retidx, align 4 | |
%34 = sext i32 %33 to i64 ; <i64> [#uses=1] | |
%35 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %34, i64 0 ; <i8*> [#uses=1] | |
%36 = getelementptr inbounds %struct.stringformatter* %1, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %35, i8** %36, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %1, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %30) nounwind | |
%37 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%38 = sext i32 %37 to i64 ; <i64> [#uses=1] | |
%39 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %38, i64 0 ; <i8*> [#uses=2] | |
%40 = icmp eq i8* %n, null ; <i1> [#uses=1] | |
br i1 %40, label %_Z11exchangestrPcPKc.exit18, label %bb.i16 | |
bb.i16: ; preds = %bb1 | |
call void @_ZdaPv(i8* %n) nounwind | |
br label %_Z11exchangestrPcPKc.exit18 | |
_Z11exchangestrPcPKc.exit18: ; preds = %bb.i16, %bb1 | |
%41 = call i64 @strlen(i8* %39) nounwind readonly ; <i64> [#uses=2] | |
%42 = add i64 %41, 1 ; <i64> [#uses=2] | |
%43 = call i8* @_Znam(i64 %42) ; <i8*> [#uses=3] | |
%44 = call i8* @strncpy(i8* noalias %43, i8* noalias %39, i64 %42) nounwind ; <i8*> [#uses=0] | |
%45 = getelementptr inbounds i8* %43, i64 %41 ; <i8*> [#uses=1] | |
store i8 0, i8* %45, align 1 | |
ret i8* %43 | |
bb2: ; preds = %bb | |
%46 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%47 = load i32** %46, align 8 ; <i32*> [#uses=1] | |
%48 = bitcast i32* %47 to float* ; <float*> [#uses=1] | |
%49 = load float* %48, align 4 ; <float> [#uses=3] | |
%50 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%51 = add nsw i32 %50, 1 ; <i32> [#uses=1] | |
%52 = srem i32 %51, 3 ; <i32> [#uses=2] | |
store i32 %52, i32* @_ZL6retidx, align 4 | |
%53 = fpext float %49 to double ; <double> [#uses=1] | |
%54 = fptosi float %49 to i32 ; <i32> [#uses=1] | |
%55 = sitofp i32 %54 to float ; <float> [#uses=1] | |
%56 = fcmp oeq float %55, %49 ; <i1> [#uses=1] | |
%iftmp.145.0.i = select i1 %56, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%57 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%58 = sext i32 %52 to i64 ; <i64> [#uses=1] | |
%59 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %58, i64 0 ; <i8*> [#uses=1] | |
%60 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %59, i8** %60, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %57, double %53) nounwind | |
%61 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%62 = sext i32 %61 to i64 ; <i64> [#uses=1] | |
%63 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %62, i64 0 ; <i8*> [#uses=2] | |
%64 = icmp eq i8* %n, null ; <i1> [#uses=1] | |
br i1 %64, label %_Z11exchangestrPcPKc.exit15, label %bb.i13 | |
bb.i13: ; preds = %bb2 | |
call void @_ZdaPv(i8* %n) nounwind | |
br label %_Z11exchangestrPcPKc.exit15 | |
_Z11exchangestrPcPKc.exit15: ; preds = %bb.i13, %bb2 | |
%65 = call i64 @strlen(i8* %63) nounwind readonly ; <i64> [#uses=2] | |
%66 = add i64 %65, 1 ; <i64> [#uses=2] | |
%67 = call i8* @_Znam(i64 %66) ; <i8*> [#uses=3] | |
%68 = call i8* @strncpy(i8* noalias %67, i8* noalias %63, i64 %66) nounwind ; <i8*> [#uses=0] | |
%69 = getelementptr inbounds i8* %67, i64 %65 ; <i8*> [#uses=1] | |
store i8 0, i8* %69, align 1 | |
ret i8* %67 | |
bb3: ; preds = %bb | |
%70 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%71 = load i32** %70, align 8 ; <i32*> [#uses=1] | |
%72 = bitcast i32* %71 to i8** ; <i8**> [#uses=1] | |
%73 = load i8** %72, align 8 ; <i8*> [#uses=2] | |
%74 = icmp eq i8* %n, null ; <i1> [#uses=1] | |
br i1 %74, label %_Z11exchangestrPcPKc.exit12, label %bb.i10 | |
bb.i10: ; preds = %bb3 | |
call void @_ZdaPv(i8* %n) nounwind | |
br label %_Z11exchangestrPcPKc.exit12 | |
_Z11exchangestrPcPKc.exit12: ; preds = %bb.i10, %bb3 | |
%75 = call i64 @strlen(i8* %73) nounwind readonly ; <i64> [#uses=2] | |
%76 = add i64 %75, 1 ; <i64> [#uses=2] | |
%77 = call i8* @_Znam(i64 %76) ; <i8*> [#uses=3] | |
%78 = call i8* @strncpy(i8* noalias %77, i8* noalias %73, i64 %76) nounwind ; <i8*> [#uses=0] | |
%79 = getelementptr inbounds i8* %77, i64 %75 ; <i8*> [#uses=1] | |
store i8 0, i8* %79, align 1 | |
ret i8* %77 | |
bb4: ; preds = %bb | |
%80 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=1] | |
%81 = load i8** %80, align 8 ; <i8*> [#uses=2] | |
%82 = icmp eq i8* %n, null ; <i1> [#uses=1] | |
br i1 %82, label %_Z11exchangestrPcPKc.exit, label %bb.i8 | |
bb.i8: ; preds = %bb4 | |
call void @_ZdaPv(i8* %n) nounwind | |
br label %_Z11exchangestrPcPKc.exit | |
_Z11exchangestrPcPKc.exit: ; preds = %bb.i8, %bb4 | |
%83 = call i64 @strlen(i8* %81) nounwind readonly ; <i64> [#uses=2] | |
%84 = add i64 %83, 1 ; <i64> [#uses=2] | |
%85 = call i8* @_Znam(i64 %84) ; <i8*> [#uses=3] | |
%86 = call i8* @strncpy(i8* noalias %85, i8* noalias %81, i64 %84) nounwind ; <i8*> [#uses=0] | |
%87 = getelementptr inbounds i8* %85, i64 %83 ; <i8*> [#uses=1] | |
store i8 0, i8* %87, align 1 | |
ret i8* %85 | |
bb5: ; preds = %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([25 x i8]* @.str11, i64 0, i64 0), i8* %2) | |
ret i8* %n | |
} | |
define i8* @_Z8getaliasPKc(i8* %name) nounwind readonly { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %bb3, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %bb3, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 5 ; <i1> [#uses=1] | |
br i1 %25, label %bb1, label %bb3 | |
bb1: ; preds = %bb | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=1] | |
%27 = load i8** %26, align 8 ; <i8*> [#uses=1] | |
ret i8* %27 | |
bb3: ; preds = %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret i8* getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0) | |
} | |
define void @_Z9getalias_Pc(i8* nocapture %s) { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %s, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i.i, label %bb.i.i.i | |
bb.i.i.i: ; preds = %bb.i.i.i, %entry | |
%indvar.i.i.i = phi i64 [ %tmp, %bb.i.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i.i = phi i32 [ %6, %bb.i.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i.i = getelementptr i8* %s, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i.i, label %bb.i.i.i | |
_ZL6hthashPKc.exit.i.i: ; preds = %bb.i.i.i, %entry | |
%h.0.lcssa.i.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i.i | |
bb.i.i: ; preds = %bb3.i.i | |
%.idx.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i.i = load i8** %.idx.i.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %s, i8* %.idx.val.i.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i, label %bb2.i.i | |
bb2.i.i: ; preds = %bb.i.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i.i | |
bb3.i.i: ; preds = %bb2.i.i, %_ZL6hthashPKc.exit.i.i | |
%c.0.in.i.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i.i ], [ %19, %bb2.i.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, null ; <i1> [#uses=1] | |
br i1 %20, label %_Z8getaliasPKc.exit, label %bb.i.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit.i: ; preds = %bb.i.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %_Z8getaliasPKc.exit, label %bb.i | |
bb.i: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 5 ; <i1> [#uses=1] | |
br i1 %25, label %bb1.i, label %_Z8getaliasPKc.exit | |
bb1.i: ; preds = %bb.i | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=1] | |
%27 = load i8** %26, align 8 ; <i8*> [#uses=1] | |
br label %_Z8getaliasPKc.exit | |
_Z8getaliasPKc.exit: ; preds = %bb1.i, %bb.i, %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i, %bb3.i.i | |
%28 = phi i8* [ %27, %bb1.i ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %bb.i ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %bb3.i.i ] ; <i8*> [#uses=2] | |
%29 = tail call i64 @strlen(i8* %28) nounwind readonly ; <i64> [#uses=2] | |
%30 = add i64 %29, 1 ; <i64> [#uses=2] | |
%31 = tail call i8* @_Znam(i64 %30) ; <i8*> [#uses=3] | |
%32 = tail call i8* @strncpy(i8* noalias %31, i8* noalias %28, i64 %30) nounwind ; <i8*> [#uses=0] | |
%33 = getelementptr inbounds i8* %31, i64 %29 ; <i8*> [#uses=1] | |
store i8 0, i8* %33, align 1 | |
store i8* %31, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z8touchvarPKc(i8* %name) { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %return, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %return, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
switch i32 %24, label %return [ | |
i32 0, label %bb1 | |
i32 1, label %bb1 | |
i32 2, label %bb1 | |
] | |
bb1: ; preds = %bb, %bb, %bb | |
%25 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 0 ; <i32 (...)***> [#uses=1] | |
%26 = load i32 (...)*** %25, align 8 ; <i32 (...)**> [#uses=1] | |
%27 = getelementptr inbounds i32 (...)** %26, i64 2 ; <i32 (...)**> [#uses=1] | |
%28 = load i32 (...)** %27, align 8 ; <i32 (...)*> [#uses=1] | |
%29 = bitcast i32 (...)* %28 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %29(%struct.ident* %21) | |
ret void | |
return: ; preds = %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret void | |
} | |
define %struct.ident* @_Z8getidentPKc(i8* %name) nounwind readonly { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %bb1.i, label %bb2.i | |
bb1.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
ret %struct.ident* %19 | |
bb2.i: ; preds = %bb.i | |
%20 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %20, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=4] | |
%21 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %21, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb3.i | |
ret %struct.ident* null | |
} | |
define zeroext i8 @_Z11identexistsPKc(i8* %name) nounwind readonly { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %bb1.i, label %bb2.i | |
bb1.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%phitmp = icmp ne %struct.ident* %19, null ; <i1> [#uses=1] | |
br label %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
bb2.i: ; preds = %bb.i | |
%20 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %20, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=4] | |
%21 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %21, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb3.i, %bb1.i | |
%22 = phi i1 [ %phitmp, %bb1.i ], [ false, %bb3.i ] ; <i1> [#uses=1] | |
%retval12 = zext i1 %22 to i8 ; <i8> [#uses=1] | |
ret i8 %retval12 | |
} | |
define i32 @_Z9getvarmaxPKc(i8* %name) nounwind readonly { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %bb3, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %bb3, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 0 ; <i1> [#uses=1] | |
br i1 %25, label %bb2, label %bb3 | |
bb2: ; preds = %bb | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 4, i32 0 ; <i32*> [#uses=1] | |
%27 = load i32* %26, align 4 ; <i32> [#uses=1] | |
ret i32 %27 | |
bb3: ; preds = %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret i32 0 | |
} | |
define i32 @_Z9getvarminPKc(i8* %name) nounwind readonly { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %bb3, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %bb3, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 0 ; <i1> [#uses=1] | |
br i1 %25, label %bb2, label %bb3 | |
bb2: ; preds = %bb | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 3, i32 0 ; <i32*> [#uses=1] | |
%27 = load i32* %26, align 8 ; <i32> [#uses=1] | |
ret i32 %27 | |
bb3: ; preds = %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret i32 0 | |
} | |
define i32 @_Z6getvarPKc(i8* %name) nounwind readonly { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %bb3, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %bb3, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 0 ; <i1> [#uses=1] | |
br i1 %25, label %bb2, label %bb3 | |
bb2: ; preds = %bb | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%27 = load i32** %26, align 8 ; <i32*> [#uses=1] | |
%28 = load i32* %27, align 4 ; <i32> [#uses=1] | |
ret i32 %28 | |
bb3: ; preds = %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret i32 0 | |
} | |
define void @_Z7setsvarPKcS0_b(i8* %name, i8* nocapture %str, i8 zeroext %dofunc) { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=15] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %return, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %return, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 2 ; <i1> [#uses=1] | |
br i1 %25, label %bb1, label %return | |
bb1: ; preds = %bb | |
%26 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool = icmp eq i8 %26, 0 ; <i1> [#uses=1] | |
%27 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=1] | |
%28 = load i32* %27, align 8 ; <i32> [#uses=3] | |
br i1 %toBool, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%29 = and i32 %28, 2 ; <i32> [#uses=1] | |
%30 = icmp eq i32 %29, 0 ; <i1> [#uses=1] | |
br i1 %30, label %bb10, label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%31 = phi i32 [ %28, %bb2 ], [ %28, %bb1 ] ; <i32> [#uses=1] | |
%32 = and i32 %31, 1 ; <i32> [#uses=1] | |
%toBool4 = icmp eq i32 %32, 0 ; <i1> [#uses=1] | |
br i1 %toBool4, label %bb6, label %bb5 | |
bb5: ; preds = %bb3 | |
%33 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 2 ; <i8**> [#uses=1] | |
%34 = load i8** %33, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([39 x i8]* @.str5, i64 0, i64 0), i8* %34) | |
ret void | |
bb6: ; preds = %bb3 | |
%35 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=2] | |
%36 = load i32* %35, align 8 ; <i32> [#uses=1] | |
%37 = icmp eq i32 %36, 2147483647 ; <i1> [#uses=1] | |
%38 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%39 = load i32** %38, align 8 ; <i32*> [#uses=1] | |
%40 = bitcast i32* %39 to i8** ; <i8**> [#uses=1] | |
%41 = load i8** %40, align 8 ; <i8*> [#uses=3] | |
br i1 %37, label %bb7, label %bb8 | |
bb7: ; preds = %bb6 | |
%42 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
store i8* %41, i8** %42, align 8 | |
store i32 0, i32* %35, align 8 | |
br label %bb16 | |
bb8: ; preds = %bb6 | |
%43 = icmp eq i8* %41, null ; <i1> [#uses=1] | |
br i1 %43, label %bb16, label %bb9 | |
bb9: ; preds = %bb8 | |
tail call void @_ZdaPv(i8* %41) nounwind | |
br label %bb16 | |
bb10: ; preds = %bb2 | |
%44 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=2] | |
%45 = load i32* %44, align 8 ; <i32> [#uses=1] | |
%46 = icmp eq i32 %45, 2147483647 ; <i1> [#uses=1] | |
br i1 %46, label %bb14, label %bb11 | |
bb11: ; preds = %bb10 | |
%47 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
%48 = load i8** %47, align 8 ; <i8*> [#uses=2] | |
%49 = icmp eq i8* %48, null ; <i1> [#uses=1] | |
br i1 %49, label %bb13, label %bb12 | |
bb12: ; preds = %bb11 | |
tail call void @_ZdaPv(i8* %48) nounwind | |
br label %bb13 | |
bb13: ; preds = %bb12, %bb11 | |
store i32 2147483647, i32* %44, align 8 | |
br label %bb14 | |
bb14: ; preds = %bb13, %bb10 | |
%50 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%51 = load i32** %50, align 8 ; <i32*> [#uses=1] | |
%52 = bitcast i32* %51 to i8** ; <i8**> [#uses=1] | |
%53 = load i8** %52, align 8 ; <i8*> [#uses=2] | |
%54 = icmp eq i8* %53, null ; <i1> [#uses=1] | |
br i1 %54, label %bb16, label %bb15 | |
bb15: ; preds = %bb14 | |
tail call void @_ZdaPv(i8* %53) nounwind | |
br label %bb16 | |
bb16: ; preds = %bb15, %bb14, %bb9, %bb8, %bb7 | |
%55 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%56 = load i32** %55, align 8 ; <i32*> [#uses=1] | |
%57 = bitcast i32* %56 to i8** ; <i8**> [#uses=1] | |
%58 = tail call i64 @strlen(i8* %str) nounwind readonly ; <i64> [#uses=2] | |
%59 = add i64 %58, 1 ; <i64> [#uses=2] | |
%60 = tail call i8* @_Znam(i64 %59) ; <i8*> [#uses=3] | |
%61 = tail call i8* @strncpy(i8* noalias %60, i8* noalias %str, i64 %59) nounwind ; <i8*> [#uses=0] | |
%62 = getelementptr inbounds i8* %60, i64 %58 ; <i8*> [#uses=1] | |
store i8 0, i8* %62, align 1 | |
store i8* %60, i8** %57, align 8 | |
%toBool17 = icmp eq i8 %dofunc, 0 ; <i1> [#uses=1] | |
br i1 %toBool17, label %return, label %bb18 | |
bb18: ; preds = %bb16 | |
%63 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 0 ; <i32 (...)***> [#uses=1] | |
%64 = load i32 (...)*** %63, align 8 ; <i32 (...)**> [#uses=1] | |
%65 = getelementptr inbounds i32 (...)** %64, i64 2 ; <i32 (...)**> [#uses=1] | |
%66 = load i32 (...)** %65, align 8 ; <i32 (...)*> [#uses=1] | |
%67 = bitcast i32 (...)* %66 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %67(%struct.ident* %21) | |
ret void | |
return: ; preds = %bb16, %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret void | |
} | |
define void @_Z7setfvarPKcfbb(i8* %name, float %f, i8 zeroext %dofunc, i8 zeroext %doclamp) { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=15] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %return, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %return, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 1 ; <i1> [#uses=1] | |
br i1 %25, label %bb1, label %return | |
bb1: ; preds = %bb | |
%26 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool = icmp eq i8 %26, 0 ; <i1> [#uses=1] | |
%27 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=1] | |
%28 = load i32* %27, align 8 ; <i32> [#uses=3] | |
br i1 %toBool, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%29 = and i32 %28, 2 ; <i32> [#uses=1] | |
%30 = icmp eq i32 %29, 0 ; <i1> [#uses=1] | |
br i1 %30, label %bb8, label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%31 = phi i32 [ %28, %bb2 ], [ %28, %bb1 ] ; <i32> [#uses=1] | |
%32 = and i32 %31, 1 ; <i32> [#uses=1] | |
%toBool4 = icmp eq i32 %32, 0 ; <i1> [#uses=1] | |
br i1 %toBool4, label %bb6, label %bb5 | |
bb5: ; preds = %bb3 | |
%33 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 2 ; <i8**> [#uses=1] | |
%34 = load i8** %33, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([39 x i8]* @.str5, i64 0, i64 0), i8* %34) | |
ret void | |
bb6: ; preds = %bb3 | |
%35 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=2] | |
%36 = load i32* %35, align 8 ; <i32> [#uses=1] | |
%37 = icmp eq i32 %36, 2147483647 ; <i1> [#uses=1] | |
br i1 %37, label %bb7, label %bb10 | |
bb7: ; preds = %bb6 | |
%38 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%39 = load i32** %38, align 8 ; <i32*> [#uses=1] | |
%40 = bitcast i32* %39 to float* ; <float*> [#uses=1] | |
%41 = load float* %40, align 4 ; <float> [#uses=1] | |
%42 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
%43 = bitcast i8** %42 to float* ; <float*> [#uses=1] | |
store float %41, float* %43, align 8 | |
store i32 0, i32* %35, align 8 | |
br label %bb10 | |
bb8: ; preds = %bb2 | |
%44 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=2] | |
%45 = load i32* %44, align 8 ; <i32> [#uses=1] | |
%46 = icmp eq i32 %45, 2147483647 ; <i1> [#uses=1] | |
br i1 %46, label %bb10, label %bb9 | |
bb9: ; preds = %bb8 | |
store i32 2147483647, i32* %44, align 8 | |
br label %bb10 | |
bb10: ; preds = %bb9, %bb8, %bb7, %bb6 | |
%toBool11 = icmp eq i8 %doclamp, 0 ; <i1> [#uses=1] | |
%47 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%48 = load i32** %47, align 8 ; <i32*> [#uses=1] | |
%49 = bitcast i32* %48 to float* ; <float*> [#uses=1] | |
br i1 %toBool11, label %bb14, label %bb12 | |
bb12: ; preds = %bb10 | |
%50 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 4, i32 0 ; <i32*> [#uses=1] | |
%51 = bitcast i32* %50 to float* ; <float*> [#uses=1] | |
%52 = load float* %51, align 4 ; <float> [#uses=2] | |
%53 = fcmp ogt float %52, %f ; <i1> [#uses=1] | |
%iftmp.223.0.i = select i1 %53, float %f, float %52 ; <float> [#uses=2] | |
%54 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 3, i32 0 ; <i32*> [#uses=1] | |
%55 = bitcast i32* %54 to float* ; <float*> [#uses=1] | |
%56 = load float* %55, align 8 ; <float> [#uses=2] | |
%57 = fcmp ogt float %56, %iftmp.223.0.i ; <i1> [#uses=1] | |
%iftmp.224.0.i = select i1 %57, float %56, float %iftmp.223.0.i ; <float> [#uses=1] | |
br label %bb14 | |
bb14: ; preds = %bb12, %bb10 | |
%storemerge = phi float [ %iftmp.224.0.i, %bb12 ], [ %f, %bb10 ] ; <float> [#uses=1] | |
store float %storemerge, float* %49, align 4 | |
%toBool15 = icmp eq i8 %dofunc, 0 ; <i1> [#uses=1] | |
br i1 %toBool15, label %return, label %bb16 | |
bb16: ; preds = %bb14 | |
%58 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 0 ; <i32 (...)***> [#uses=1] | |
%59 = load i32 (...)*** %58, align 8 ; <i32 (...)**> [#uses=1] | |
%60 = getelementptr inbounds i32 (...)** %59, i64 2 ; <i32 (...)**> [#uses=1] | |
%61 = load i32 (...)** %60, align 8 ; <i32 (...)*> [#uses=1] | |
%62 = bitcast i32 (...)* %61 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %62(%struct.ident* %21) | |
ret void | |
return: ; preds = %bb14, %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret void | |
} | |
define void @_Z6setvarPKcibb(i8* %name, i32 %i, i8 zeroext %dofunc, i8 zeroext %doclamp) { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=15] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %return, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %return, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 0 ; <i1> [#uses=1] | |
br i1 %25, label %bb1, label %return | |
bb1: ; preds = %bb | |
%26 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool = icmp eq i8 %26, 0 ; <i1> [#uses=1] | |
%27 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=1] | |
%28 = load i32* %27, align 8 ; <i32> [#uses=3] | |
br i1 %toBool, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%29 = and i32 %28, 2 ; <i32> [#uses=1] | |
%30 = icmp eq i32 %29, 0 ; <i1> [#uses=1] | |
br i1 %30, label %bb8, label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%31 = phi i32 [ %28, %bb2 ], [ %28, %bb1 ] ; <i32> [#uses=1] | |
%32 = and i32 %31, 1 ; <i32> [#uses=1] | |
%toBool4 = icmp eq i32 %32, 0 ; <i1> [#uses=1] | |
br i1 %toBool4, label %bb6, label %bb5 | |
bb5: ; preds = %bb3 | |
%33 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 2 ; <i8**> [#uses=1] | |
%34 = load i8** %33, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([39 x i8]* @.str5, i64 0, i64 0), i8* %34) | |
ret void | |
bb6: ; preds = %bb3 | |
%35 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=2] | |
%36 = load i32* %35, align 8 ; <i32> [#uses=1] | |
%37 = icmp eq i32 %36, 2147483647 ; <i1> [#uses=1] | |
br i1 %37, label %bb7, label %bb10 | |
bb7: ; preds = %bb6 | |
%38 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%39 = load i32** %38, align 8 ; <i32*> [#uses=1] | |
%40 = load i32* %39, align 4 ; <i32> [#uses=1] | |
%41 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
%42 = bitcast i8** %41 to i32* ; <i32*> [#uses=1] | |
store i32 %40, i32* %42, align 8 | |
store i32 0, i32* %35, align 8 | |
br label %bb10 | |
bb8: ; preds = %bb2 | |
%43 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=2] | |
%44 = load i32* %43, align 8 ; <i32> [#uses=1] | |
%45 = icmp eq i32 %44, 2147483647 ; <i1> [#uses=1] | |
br i1 %45, label %bb10, label %bb9 | |
bb9: ; preds = %bb8 | |
store i32 2147483647, i32* %43, align 8 | |
br label %bb10 | |
bb10: ; preds = %bb9, %bb8, %bb7, %bb6 | |
%toBool11 = icmp eq i8 %doclamp, 0 ; <i1> [#uses=1] | |
%46 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%47 = load i32** %46, align 8 ; <i32*> [#uses=1] | |
br i1 %toBool11, label %bb14, label %bb12 | |
bb12: ; preds = %bb10 | |
%48 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 4, i32 0 ; <i32*> [#uses=1] | |
%49 = load i32* %48, align 4 ; <i32> [#uses=2] | |
%50 = icmp sgt i32 %49, %i ; <i1> [#uses=1] | |
%iftmp.222.0.i = select i1 %50, i32 %i, i32 %49 ; <i32> [#uses=2] | |
%51 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 3, i32 0 ; <i32*> [#uses=1] | |
%52 = load i32* %51, align 8 ; <i32> [#uses=2] | |
%53 = icmp sgt i32 %52, %iftmp.222.0.i ; <i1> [#uses=1] | |
%iftmp.215.0.i = select i1 %53, i32 %52, i32 %iftmp.222.0.i ; <i32> [#uses=1] | |
br label %bb14 | |
bb14: ; preds = %bb12, %bb10 | |
%storemerge = phi i32 [ %iftmp.215.0.i, %bb12 ], [ %i, %bb10 ] ; <i32> [#uses=1] | |
store i32 %storemerge, i32* %47, align 4 | |
%toBool15 = icmp eq i8 %dofunc, 0 ; <i1> [#uses=1] | |
br i1 %toBool15, label %return, label %bb16 | |
bb16: ; preds = %bb14 | |
%54 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 0 ; <i32 (...)***> [#uses=1] | |
%55 = load i32 (...)*** %54, align 8 ; <i32 (...)**> [#uses=1] | |
%56 = getelementptr inbounds i32 (...)** %55, i64 2 ; <i32 (...)**> [#uses=1] | |
%57 = load i32 (...)** %56, align 8 ; <i32 (...)*> [#uses=1] | |
%58 = bitcast i32 (...)* %57 to void (%struct.ident*)* ; <void (%struct.ident*)*> [#uses=1] | |
tail call void %58(%struct.ident* %21) | |
ret void | |
return: ; preds = %bb14, %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret void | |
} | |
define void @_Z8resetvarPc(i8* %name) { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %return, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %return, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = and i32 %24, 8 ; <i32> [#uses=1] | |
%26 = icmp eq i32 %25, 0 ; <i1> [#uses=1] | |
br i1 %26, label %bb2, label %bb1 | |
bb1: ; preds = %bb | |
%27 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 2 ; <i8**> [#uses=1] | |
%28 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
tail call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([25 x i8]* @.str4, i64 0, i64 0), i8* %28) | |
ret void | |
bb2: ; preds = %bb | |
tail call void @_Z13clearoverrideR5ident(%struct.ident* %21) | |
ret void | |
return: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret void | |
} | |
declare i64 @strtol(i8* noalias, i8** noalias nocapture, i32) nounwind | |
declare double @strtod(i8* noalias, i8** noalias nocapture) nounwind | |
define void @_ZN7_stdcmdILi1153EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%end.i6 = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%end.i = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%1 = load i32* %numargs, align 4 ; <i32> [#uses=2] | |
%2 = icmp sgt i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb4.preheader | |
bb: ; preds = %entry | |
%3 = add nsw i32 %1, -1 ; <i32> [#uses=1] | |
%4 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%5 = getelementptr inbounds i8** %args, i64 %4 ; <i8**> [#uses=1] | |
%6 = load i8** %5, align 8 ; <i8*> [#uses=3] | |
%7 = call double @strtod(i8* noalias %6, i8** noalias %end.i) nounwind ; <double> [#uses=2] | |
%8 = fcmp une double %7, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %8, label %bb4.i, label %bb.i | |
bb.i: ; preds = %bb | |
%9 = load i8** %end.i, align 8 ; <i8*> [#uses=2] | |
%10 = icmp eq i8* %9, %6 ; <i1> [#uses=1] | |
br i1 %10, label %bb4.i, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%11 = load i8* %9, align 1 ; <i8> [#uses=1] | |
switch i8 %11, label %bb4.i [ | |
i8 88, label %bb5.i | |
i8 120, label %bb5.i | |
] | |
bb4.i: ; preds = %bb1.i, %bb.i, %bb | |
%12 = fptrunc double %7 to float ; <float> [#uses=1] | |
br label %bb4.preheader | |
bb5.i: ; preds = %bb1.i, %bb1.i | |
%13 = call i64 @strtol(i8* noalias nocapture %6, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%14 = trunc i64 %13 to i32 ; <i32> [#uses=1] | |
%15 = sitofp i32 %14 to float ; <float> [#uses=1] | |
br label %bb4.preheader | |
bb4.preheader: ; preds = %bb5.i, %bb4.i, %entry | |
%val.0.ph = phi float [ %15, %bb5.i ], [ %12, %bb4.i ], [ 0.000000e+00, %entry ] ; <float> [#uses=2] | |
%16 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%17 = add nsw i32 %16, -1 ; <i32> [#uses=1] | |
%18 = icmp sgt i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %bb3, label %bb5 | |
bb3: ; preds = %_ZL10parsefloatPKc.exit11, %bb4.preheader | |
%indvar = phi i64 [ %tmp, %_ZL10parsefloatPKc.exit11 ], [ 0, %bb4.preheader ] ; <i64> [#uses=2] | |
%val.012 = phi float [ %iftmp.224.0.i, %_ZL10parsefloatPKc.exit11 ], [ %val.0.ph, %bb4.preheader ] ; <float> [#uses=2] | |
%scevgep = getelementptr i8** %args, i64 %indvar ; <i8**> [#uses=1] | |
%tmp = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp14 = trunc i64 %tmp to i32 ; <i32> [#uses=1] | |
%19 = load i8** %scevgep, align 8 ; <i8*> [#uses=3] | |
%20 = call double @strtod(i8* noalias %19, i8** noalias %end.i6) nounwind ; <double> [#uses=2] | |
%21 = fcmp une double %20, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %21, label %bb4.i9, label %bb.i7 | |
bb.i7: ; preds = %bb3 | |
%22 = load i8** %end.i6, align 8 ; <i8*> [#uses=2] | |
%23 = icmp eq i8* %22, %19 ; <i1> [#uses=1] | |
br i1 %23, label %bb4.i9, label %bb1.i8 | |
bb1.i8: ; preds = %bb.i7 | |
%24 = load i8* %22, align 1 ; <i8> [#uses=1] | |
switch i8 %24, label %bb4.i9 [ | |
i8 88, label %bb5.i10 | |
i8 120, label %bb5.i10 | |
] | |
bb4.i9: ; preds = %bb1.i8, %bb.i7, %bb3 | |
%25 = fptrunc double %20 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit11 | |
bb5.i10: ; preds = %bb1.i8, %bb1.i8 | |
%26 = call i64 @strtol(i8* noalias nocapture %19, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%27 = trunc i64 %26 to i32 ; <i32> [#uses=1] | |
%28 = sitofp i32 %27 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit11 | |
_ZL10parsefloatPKc.exit11: ; preds = %bb5.i10, %bb4.i9 | |
%29 = phi float [ %28, %bb5.i10 ], [ %25, %bb4.i9 ] ; <float> [#uses=2] | |
%30 = fcmp ogt float %val.012, %29 ; <i1> [#uses=1] | |
%iftmp.224.0.i = select i1 %30, float %val.012, float %29 ; <float> [#uses=2] | |
%31 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%32 = add nsw i32 %31, -1 ; <i32> [#uses=1] | |
%33 = icmp sgt i32 %32, %tmp14 ; <i1> [#uses=1] | |
br i1 %33, label %bb3, label %bb5 | |
bb5: ; preds = %_ZL10parsefloatPKc.exit11, %bb4.preheader | |
%val.0.lcssa = phi float [ %val.0.ph, %bb4.preheader ], [ %iftmp.224.0.i, %_ZL10parsefloatPKc.exit11 ] ; <float> [#uses=3] | |
%34 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%35 = add nsw i32 %34, 1 ; <i32> [#uses=1] | |
%36 = srem i32 %35, 3 ; <i32> [#uses=2] | |
store i32 %36, i32* @_ZL6retidx, align 4 | |
%37 = fpext float %val.0.lcssa to double ; <double> [#uses=1] | |
%38 = fptosi float %val.0.lcssa to i32 ; <i32> [#uses=1] | |
%39 = sitofp i32 %38 to float ; <float> [#uses=1] | |
%40 = fcmp oeq float %39, %val.0.lcssa ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %40, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%41 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%42 = sext i32 %36 to i64 ; <i64> [#uses=1] | |
%43 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %42, i64 0 ; <i8*> [#uses=1] | |
%44 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %43, i8** %44, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %41, double %37) nounwind | |
%45 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%46 = sext i32 %45 to i64 ; <i64> [#uses=1] | |
%47 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %46, i64 0 ; <i8*> [#uses=2] | |
%48 = call i64 @strlen(i8* %47) nounwind readonly ; <i64> [#uses=2] | |
%49 = add i64 %48, 1 ; <i64> [#uses=2] | |
%50 = call i8* @_Znam(i64 %49) ; <i8*> [#uses=3] | |
%51 = call i8* @strncpy(i8* noalias %50, i8* noalias %47, i64 %49) nounwind ; <i8*> [#uses=0] | |
%52 = getelementptr inbounds i8* %50, i64 %48 ; <i8*> [#uses=1] | |
store i8 0, i8* %52, align 1 | |
store i8* %50, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1147EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%end.i6 = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%end.i = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%1 = load i32* %numargs, align 4 ; <i32> [#uses=2] | |
%2 = icmp sgt i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb4.preheader | |
bb: ; preds = %entry | |
%3 = add nsw i32 %1, -1 ; <i32> [#uses=1] | |
%4 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%5 = getelementptr inbounds i8** %args, i64 %4 ; <i8**> [#uses=1] | |
%6 = load i8** %5, align 8 ; <i8*> [#uses=3] | |
%7 = call double @strtod(i8* noalias %6, i8** noalias %end.i) nounwind ; <double> [#uses=2] | |
%8 = fcmp une double %7, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %8, label %bb4.i, label %bb.i | |
bb.i: ; preds = %bb | |
%9 = load i8** %end.i, align 8 ; <i8*> [#uses=2] | |
%10 = icmp eq i8* %9, %6 ; <i1> [#uses=1] | |
br i1 %10, label %bb4.i, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%11 = load i8* %9, align 1 ; <i8> [#uses=1] | |
switch i8 %11, label %bb4.i [ | |
i8 88, label %bb5.i | |
i8 120, label %bb5.i | |
] | |
bb4.i: ; preds = %bb1.i, %bb.i, %bb | |
%12 = fptrunc double %7 to float ; <float> [#uses=1] | |
br label %bb4.preheader | |
bb5.i: ; preds = %bb1.i, %bb1.i | |
%13 = call i64 @strtol(i8* noalias nocapture %6, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%14 = trunc i64 %13 to i32 ; <i32> [#uses=1] | |
%15 = sitofp i32 %14 to float ; <float> [#uses=1] | |
br label %bb4.preheader | |
bb4.preheader: ; preds = %bb5.i, %bb4.i, %entry | |
%val.0.ph = phi float [ %15, %bb5.i ], [ %12, %bb4.i ], [ 0.000000e+00, %entry ] ; <float> [#uses=2] | |
%16 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%17 = add nsw i32 %16, -1 ; <i32> [#uses=1] | |
%18 = icmp sgt i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %bb3, label %bb5 | |
bb3: ; preds = %_ZL10parsefloatPKc.exit11, %bb4.preheader | |
%indvar = phi i64 [ %tmp, %_ZL10parsefloatPKc.exit11 ], [ 0, %bb4.preheader ] ; <i64> [#uses=2] | |
%val.012 = phi float [ %iftmp.223.0.i, %_ZL10parsefloatPKc.exit11 ], [ %val.0.ph, %bb4.preheader ] ; <float> [#uses=2] | |
%scevgep = getelementptr i8** %args, i64 %indvar ; <i8**> [#uses=1] | |
%tmp = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp14 = trunc i64 %tmp to i32 ; <i32> [#uses=1] | |
%19 = load i8** %scevgep, align 8 ; <i8*> [#uses=3] | |
%20 = call double @strtod(i8* noalias %19, i8** noalias %end.i6) nounwind ; <double> [#uses=2] | |
%21 = fcmp une double %20, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %21, label %bb4.i9, label %bb.i7 | |
bb.i7: ; preds = %bb3 | |
%22 = load i8** %end.i6, align 8 ; <i8*> [#uses=2] | |
%23 = icmp eq i8* %22, %19 ; <i1> [#uses=1] | |
br i1 %23, label %bb4.i9, label %bb1.i8 | |
bb1.i8: ; preds = %bb.i7 | |
%24 = load i8* %22, align 1 ; <i8> [#uses=1] | |
switch i8 %24, label %bb4.i9 [ | |
i8 88, label %bb5.i10 | |
i8 120, label %bb5.i10 | |
] | |
bb4.i9: ; preds = %bb1.i8, %bb.i7, %bb3 | |
%25 = fptrunc double %20 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit11 | |
bb5.i10: ; preds = %bb1.i8, %bb1.i8 | |
%26 = call i64 @strtol(i8* noalias nocapture %19, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%27 = trunc i64 %26 to i32 ; <i32> [#uses=1] | |
%28 = sitofp i32 %27 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit11 | |
_ZL10parsefloatPKc.exit11: ; preds = %bb5.i10, %bb4.i9 | |
%29 = phi float [ %28, %bb5.i10 ], [ %25, %bb4.i9 ] ; <float> [#uses=2] | |
%30 = fcmp olt float %val.012, %29 ; <i1> [#uses=1] | |
%iftmp.223.0.i = select i1 %30, float %val.012, float %29 ; <float> [#uses=2] | |
%31 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%32 = add nsw i32 %31, -1 ; <i32> [#uses=1] | |
%33 = icmp sgt i32 %32, %tmp14 ; <i1> [#uses=1] | |
br i1 %33, label %bb3, label %bb5 | |
bb5: ; preds = %_ZL10parsefloatPKc.exit11, %bb4.preheader | |
%val.0.lcssa = phi float [ %val.0.ph, %bb4.preheader ], [ %iftmp.223.0.i, %_ZL10parsefloatPKc.exit11 ] ; <float> [#uses=3] | |
%34 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%35 = add nsw i32 %34, 1 ; <i32> [#uses=1] | |
%36 = srem i32 %35, 3 ; <i32> [#uses=2] | |
store i32 %36, i32* @_ZL6retidx, align 4 | |
%37 = fpext float %val.0.lcssa to double ; <double> [#uses=1] | |
%38 = fptosi float %val.0.lcssa to i32 ; <i32> [#uses=1] | |
%39 = sitofp i32 %38 to float ; <float> [#uses=1] | |
%40 = fcmp oeq float %39, %val.0.lcssa ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %40, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%41 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%42 = sext i32 %36 to i64 ; <i64> [#uses=1] | |
%43 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %42, i64 0 ; <i8*> [#uses=1] | |
%44 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %43, i8** %44, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %41, double %37) nounwind | |
%45 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%46 = sext i32 %45 to i64 ; <i64> [#uses=1] | |
%47 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %46, i64 0 ; <i8*> [#uses=2] | |
%48 = call i64 @strlen(i8* %47) nounwind readonly ; <i64> [#uses=2] | |
%49 = add i64 %48, 1 ; <i64> [#uses=2] | |
%50 = call i8* @_Znam(i64 %49) ; <i8*> [#uses=3] | |
%51 = call i8* @strncpy(i8* noalias %50, i8* noalias %47, i64 %49) nounwind ; <i8*> [#uses=0] | |
%52 = getelementptr inbounds i8* %50, i64 %48 ; <i8*> [#uses=1] | |
store i8 0, i8* %52, align 1 | |
store i8* %50, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1141EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %numargs, align 4 ; <i32> [#uses=4] | |
%2 = icmp sgt i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb4.preheader | |
bb: ; preds = %entry | |
%3 = add nsw i32 %1, -1 ; <i32> [#uses=1] | |
%4 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%5 = getelementptr inbounds i8** %args, i64 %4 ; <i8**> [#uses=1] | |
%6 = load i8** %5, align 8 ; <i8*> [#uses=1] | |
%7 = call i64 @strtol(i8* noalias nocapture %6, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%8 = trunc i64 %7 to i32 ; <i32> [#uses=1] | |
br label %bb4.preheader | |
bb4.preheader: ; preds = %bb, %entry | |
%val.0.ph = phi i32 [ %8, %bb ], [ 0, %entry ] ; <i32> [#uses=2] | |
%9 = add nsw i32 %1, -1 ; <i32> [#uses=2] | |
%10 = icmp sgt i32 %9, 0 ; <i1> [#uses=1] | |
br i1 %10, label %bb.nph, label %bb5 | |
bb.nph: ; preds = %bb4.preheader | |
%tmp = icmp sgt i32 %9, 1 ; <i1> [#uses=1] | |
%.op = add i32 %1, -2 ; <i32> [#uses=1] | |
%11 = zext i32 %.op to i64 ; <i64> [#uses=1] | |
%.op11 = add i64 %11, 1 ; <i64> [#uses=1] | |
%tmp10 = select i1 %tmp, i64 %.op11, i64 1 ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb3, %bb.nph | |
%indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %bb3 ] ; <i64> [#uses=2] | |
%val.06 = phi i32 [ %val.0.ph, %bb.nph ], [ %iftmp.215.0.i, %bb3 ] ; <i32> [#uses=2] | |
%scevgep = getelementptr i8** %args, i64 %indvar ; <i8**> [#uses=1] | |
%12 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%13 = call i64 @strtol(i8* noalias nocapture %12, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%14 = trunc i64 %13 to i32 ; <i32> [#uses=2] | |
%15 = icmp sgt i32 %val.06, %14 ; <i1> [#uses=1] | |
%iftmp.215.0.i = select i1 %15, i32 %val.06, i32 %14 ; <i32> [#uses=2] | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next, %tmp10 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb5, label %bb3 | |
bb5: ; preds = %bb3, %bb4.preheader | |
%val.0.lcssa = phi i32 [ %val.0.ph, %bb4.preheader ], [ %iftmp.215.0.i, %bb3 ] ; <i32> [#uses=1] | |
%16 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%17 = add nsw i32 %16, 1 ; <i32> [#uses=1] | |
%18 = srem i32 %17, 3 ; <i32> [#uses=2] | |
store i32 %18, i32* @_ZL6retidx, align 4 | |
%19 = sext i32 %18 to i64 ; <i64> [#uses=1] | |
%20 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %19, i64 0 ; <i8*> [#uses=1] | |
%21 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %20, i8** %21, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %val.0.lcssa) nounwind | |
%22 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%23 = sext i32 %22 to i64 ; <i64> [#uses=1] | |
%24 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %23, i64 0 ; <i8*> [#uses=2] | |
%25 = call i64 @strlen(i8* %24) nounwind readonly ; <i64> [#uses=2] | |
%26 = add i64 %25, 1 ; <i64> [#uses=2] | |
%27 = call i8* @_Znam(i64 %26) ; <i8*> [#uses=3] | |
%28 = call i8* @strncpy(i8* noalias %27, i8* noalias %24, i64 %26) nounwind ; <i8*> [#uses=0] | |
%29 = getelementptr inbounds i8* %27, i64 %25 ; <i8*> [#uses=1] | |
store i8 0, i8* %29, align 1 | |
store i8* %27, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1135EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load i32* %numargs, align 4 ; <i32> [#uses=4] | |
%2 = icmp sgt i32 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb4.preheader | |
bb: ; preds = %entry | |
%3 = add nsw i32 %1, -1 ; <i32> [#uses=1] | |
%4 = sext i32 %3 to i64 ; <i64> [#uses=1] | |
%5 = getelementptr inbounds i8** %args, i64 %4 ; <i8**> [#uses=1] | |
%6 = load i8** %5, align 8 ; <i8*> [#uses=1] | |
%7 = call i64 @strtol(i8* noalias nocapture %6, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%8 = trunc i64 %7 to i32 ; <i32> [#uses=1] | |
br label %bb4.preheader | |
bb4.preheader: ; preds = %bb, %entry | |
%val.0.ph = phi i32 [ %8, %bb ], [ 0, %entry ] ; <i32> [#uses=2] | |
%9 = add nsw i32 %1, -1 ; <i32> [#uses=2] | |
%10 = icmp sgt i32 %9, 0 ; <i1> [#uses=1] | |
br i1 %10, label %bb.nph, label %bb5 | |
bb.nph: ; preds = %bb4.preheader | |
%tmp = icmp sgt i32 %9, 1 ; <i1> [#uses=1] | |
%.op = add i32 %1, -2 ; <i32> [#uses=1] | |
%11 = zext i32 %.op to i64 ; <i64> [#uses=1] | |
%.op11 = add i64 %11, 1 ; <i64> [#uses=1] | |
%tmp10 = select i1 %tmp, i64 %.op11, i64 1 ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb3, %bb.nph | |
%indvar = phi i64 [ 0, %bb.nph ], [ %indvar.next, %bb3 ] ; <i64> [#uses=2] | |
%val.06 = phi i32 [ %val.0.ph, %bb.nph ], [ %iftmp.222.0.i, %bb3 ] ; <i32> [#uses=2] | |
%scevgep = getelementptr i8** %args, i64 %indvar ; <i8**> [#uses=1] | |
%12 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%13 = call i64 @strtol(i8* noalias nocapture %12, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%14 = trunc i64 %13 to i32 ; <i32> [#uses=2] | |
%15 = icmp slt i32 %val.06, %14 ; <i1> [#uses=1] | |
%iftmp.222.0.i = select i1 %15, i32 %val.06, i32 %14 ; <i32> [#uses=2] | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next, %tmp10 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb5, label %bb3 | |
bb5: ; preds = %bb3, %bb4.preheader | |
%val.0.lcssa = phi i32 [ %val.0.ph, %bb4.preheader ], [ %iftmp.222.0.i, %bb3 ] ; <i32> [#uses=1] | |
%16 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%17 = add nsw i32 %16, 1 ; <i32> [#uses=1] | |
%18 = srem i32 %17, 3 ; <i32> [#uses=2] | |
store i32 %18, i32* @_ZL6retidx, align 4 | |
%19 = sext i32 %18 to i64 ; <i64> [#uses=1] | |
%20 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %19, i64 0 ; <i8*> [#uses=1] | |
%21 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %20, i8** %21, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %val.0.lcssa) nounwind | |
%22 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%23 = sext i32 %22 to i64 ; <i64> [#uses=1] | |
%24 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %23, i64 0 ; <i8*> [#uses=2] | |
%25 = call i64 @strlen(i8* %24) nounwind readonly ; <i64> [#uses=2] | |
%26 = add i64 %25, 1 ; <i64> [#uses=2] | |
%27 = call i8* @_Znam(i64 %26) ; <i8*> [#uses=3] | |
%28 = call i8* @strncpy(i8* noalias %27, i8* noalias %24, i64 %26) nounwind ; <i8*> [#uses=0] | |
%29 = getelementptr inbounds i8* %27, i64 %25 ; <i8*> [#uses=1] | |
store i8 0, i8* %29, align 1 | |
store i8* %27, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z6substrPcPiS_(i8* nocapture %s, i32* nocapture %start, i8* nocapture %count) { | |
entry: | |
%0 = tail call i64 @strlen(i8* %s) nounwind readonly ; <i64> [#uses=1] | |
%1 = trunc i64 %0 to i32 ; <i32> [#uses=3] | |
%2 = load i32* %start, align 4 ; <i32> [#uses=2] | |
%3 = icmp slt i32 %2, %1 ; <i1> [#uses=1] | |
%iftmp.222.0.i = select i1 %3, i32 %2, i32 %1 ; <i32> [#uses=2] | |
%4 = icmp slt i32 %iftmp.222.0.i, 0 ; <i1> [#uses=1] | |
%iftmp.215.0.i4 = select i1 %4, i32 0, i32 %iftmp.222.0.i ; <i32> [#uses=2] | |
%5 = load i8* %count, align 1 ; <i8> [#uses=1] | |
%6 = icmp eq i8 %5, 0 ; <i1> [#uses=1] | |
%7 = sub nsw i32 %1, %iftmp.215.0.i4 ; <i32> [#uses=3] | |
br i1 %6, label %bb2, label %bb | |
bb: ; preds = %entry | |
%8 = tail call i64 @strtol(i8* noalias nocapture %count, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%9 = trunc i64 %8 to i32 ; <i32> [#uses=2] | |
%10 = icmp slt i32 %9, %7 ; <i1> [#uses=1] | |
%iftmp.222.0.i3 = select i1 %10, i32 %9, i32 %7 ; <i32> [#uses=2] | |
%11 = icmp slt i32 %iftmp.222.0.i3, 0 ; <i1> [#uses=1] | |
%iftmp.215.0.i = select i1 %11, i32 0, i32 %iftmp.222.0.i3 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb, %entry | |
%iftmp.164.0.in = phi i32 [ %iftmp.215.0.i, %bb ], [ %7, %entry ] ; <i32> [#uses=1] | |
%iftmp.164.0 = sext i32 %iftmp.164.0.in to i64 ; <i64> [#uses=2] | |
%12 = sext i32 %iftmp.215.0.i4 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds i8* %s, i64 %12 ; <i8*> [#uses=1] | |
%14 = add i64 %iftmp.164.0, 1 ; <i64> [#uses=2] | |
%15 = tail call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = tail call i8* @strncpy(i8* noalias %15, i8* noalias %13, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %iftmp.164.0 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi845EE3runEPcS1_S1_(i8* nocapture %cond, i8* nocapture %t, i8* nocapture %f) align 2 { | |
entry: | |
%0 = load i8* %cond, align 1 ; <i8> [#uses=3] | |
%1 = icmp eq i8 %0, 0 ; <i1> [#uses=1] | |
br i1 %1, label %bb6, label %bb | |
bb: ; preds = %entry | |
%2 = sext i8 %0 to i32 ; <i32> [#uses=1] | |
%3 = add i32 %2, -48 ; <i32> [#uses=1] | |
%4 = icmp ult i32 %3, 10 ; <i1> [#uses=1] | |
br i1 %4, label %bb4, label %bb.i | |
bb.i: ; preds = %bb | |
switch i8 %0, label %bb7 [ | |
i8 43, label %_ZL9isintegerPc.exit | |
i8 45, label %_ZL9isintegerPc.exit | |
i8 46, label %_ZL9isintegerPc.exit | |
] | |
_ZL9isintegerPc.exit: ; preds = %bb.i, %bb.i, %bb.i | |
%5 = getelementptr inbounds i8* %cond, i64 1 ; <i8*> [#uses=1] | |
%6 = load i8* %5, align 1 ; <i8> [#uses=1] | |
%7 = sext i8 %6 to i32 ; <i32> [#uses=1] | |
%8 = add i32 %7, -48 ; <i32> [#uses=1] | |
%phitmp = icmp ugt i32 %8, 9 ; <i1> [#uses=1] | |
br i1 %phitmp, label %bb7, label %bb4 | |
bb4: ; preds = %_ZL9isintegerPc.exit, %bb | |
%9 = tail call i64 @strtol(i8* noalias nocapture %cond, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%10 = trunc i64 %9 to i32 ; <i32> [#uses=1] | |
%11 = icmp eq i32 %10, 0 ; <i1> [#uses=1] | |
br i1 %11, label %bb6, label %bb7 | |
bb6: ; preds = %bb4, %entry | |
br label %bb7 | |
bb7: ; preds = %bb6, %bb4, %_ZL9isintegerPc.exit, %bb.i | |
%iftmp.150.0 = phi i8* [ %f, %bb6 ], [ %t, %bb4 ], [ %t, %_ZL9isintegerPc.exit ], [ %t, %bb.i ] ; <i8*> [#uses=2] | |
%12 = tail call i64 @strlen(i8* %iftmp.150.0) nounwind readonly ; <i64> [#uses=2] | |
%13 = add i64 %12, 1 ; <i64> [#uses=2] | |
%14 = tail call i8* @_Znam(i64 %13) ; <i8*> [#uses=3] | |
%15 = tail call i8* @strncpy(i8* noalias %14, i8* noalias %iftmp.150.0, i64 %13) nounwind ; <i8*> [#uses=0] | |
%16 = getelementptr inbounds i8* %14, i64 %12 ; <i8*> [#uses=1] | |
store i8 0, i8* %16, align 1 | |
store i8* %14, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1129EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = call float @llvm.exp.f32(float %1) ; <float> [#uses=3] | |
%3 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%4 = add nsw i32 %3, 1 ; <i32> [#uses=1] | |
%5 = srem i32 %4, 3 ; <i32> [#uses=2] | |
store i32 %5, i32* @_ZL6retidx, align 4 | |
%6 = fpext float %2 to double ; <double> [#uses=1] | |
%7 = fptosi float %2 to i32 ; <i32> [#uses=1] | |
%8 = sitofp i32 %7 to float ; <float> [#uses=1] | |
%9 = fcmp oeq float %8, %2 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %9, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%10 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%11 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=1] | |
%13 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %12, i8** %13, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %10, double %6) nounwind | |
%14 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%15 = sext i32 %14 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %15, i64 0 ; <i8*> [#uses=2] | |
%17 = call i64 @strlen(i8* %16) nounwind readonly ; <i64> [#uses=2] | |
%18 = add i64 %17, 1 ; <i64> [#uses=2] | |
%19 = call i8* @_Znam(i64 %18) ; <i8*> [#uses=3] | |
%20 = call i8* @strncpy(i8* noalias %19, i8* noalias %16, i64 %18) nounwind ; <i8*> [#uses=0] | |
%21 = getelementptr inbounds i8* %19, i64 %17 ; <i8*> [#uses=1] | |
store i8 0, i8* %21, align 1 | |
store i8* %19, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @llvm.exp.f32(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1128EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = call float @llvm.log10.f32(float %1) ; <float> [#uses=3] | |
%3 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%4 = add nsw i32 %3, 1 ; <i32> [#uses=1] | |
%5 = srem i32 %4, 3 ; <i32> [#uses=2] | |
store i32 %5, i32* @_ZL6retidx, align 4 | |
%6 = fpext float %2 to double ; <double> [#uses=1] | |
%7 = fptosi float %2 to i32 ; <i32> [#uses=1] | |
%8 = sitofp i32 %7 to float ; <float> [#uses=1] | |
%9 = fcmp oeq float %8, %2 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %9, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%10 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%11 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=1] | |
%13 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %12, i8** %13, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %10, double %6) nounwind | |
%14 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%15 = sext i32 %14 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %15, i64 0 ; <i8*> [#uses=2] | |
%17 = call i64 @strlen(i8* %16) nounwind readonly ; <i64> [#uses=2] | |
%18 = add i64 %17, 1 ; <i64> [#uses=2] | |
%19 = call i8* @_Znam(i64 %18) ; <i8*> [#uses=3] | |
%20 = call i8* @strncpy(i8* noalias %19, i8* noalias %16, i64 %18) nounwind ; <i8*> [#uses=0] | |
%21 = getelementptr inbounds i8* %19, i64 %17 ; <i8*> [#uses=1] | |
store i8 0, i8* %21, align 1 | |
store i8* %19, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @llvm.log10.f32(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1127EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fpext float %1 to double ; <double> [#uses=1] | |
%3 = call double @llvm.log.f64(double %2) ; <double> [#uses=1] | |
%4 = fdiv double %3, 0x3FE62E42FEFA39EF ; <double> [#uses=1] | |
%5 = fptrunc double %4 to float ; <float> [#uses=3] | |
%6 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%7 = add nsw i32 %6, 1 ; <i32> [#uses=1] | |
%8 = srem i32 %7, 3 ; <i32> [#uses=2] | |
store i32 %8, i32* @_ZL6retidx, align 4 | |
%9 = fpext float %5 to double ; <double> [#uses=1] | |
%10 = fptosi float %5 to i32 ; <i32> [#uses=1] | |
%11 = sitofp i32 %10 to float ; <float> [#uses=1] | |
%12 = fcmp oeq float %11, %5 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %12, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%13 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%14 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%15 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %14, i64 0 ; <i8*> [#uses=1] | |
%16 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %15, i8** %16, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %13, double %9) nounwind | |
%17 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%18 = sext i32 %17 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %18, i64 0 ; <i8*> [#uses=2] | |
%20 = call i64 @strlen(i8* %19) nounwind readonly ; <i64> [#uses=2] | |
%21 = add i64 %20, 1 ; <i64> [#uses=2] | |
%22 = call i8* @_Znam(i64 %21) ; <i8*> [#uses=3] | |
%23 = call i8* @strncpy(i8* noalias %22, i8* noalias %19, i64 %21) nounwind ; <i8*> [#uses=0] | |
%24 = getelementptr inbounds i8* %22, i64 %20 ; <i8*> [#uses=1] | |
store i8 0, i8* %24, align 1 | |
store i8* %22, i8** @commandret, align 8 | |
ret void | |
} | |
declare double @llvm.log.f64(double) nounwind readonly | |
define void @_ZN7_stdcmdILi1126EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = call float @llvm.log.f32(float %1) ; <float> [#uses=3] | |
%3 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%4 = add nsw i32 %3, 1 ; <i32> [#uses=1] | |
%5 = srem i32 %4, 3 ; <i32> [#uses=2] | |
store i32 %5, i32* @_ZL6retidx, align 4 | |
%6 = fpext float %2 to double ; <double> [#uses=1] | |
%7 = fptosi float %2 to i32 ; <i32> [#uses=1] | |
%8 = sitofp i32 %7 to float ; <float> [#uses=1] | |
%9 = fcmp oeq float %8, %2 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %9, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%10 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%11 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=1] | |
%13 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %12, i8** %13, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %10, double %6) nounwind | |
%14 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%15 = sext i32 %14 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %15, i64 0 ; <i8*> [#uses=2] | |
%17 = call i64 @strlen(i8* %16) nounwind readonly ; <i64> [#uses=2] | |
%18 = add i64 %17, 1 ; <i64> [#uses=2] | |
%19 = call i8* @_Znam(i64 %18) ; <i8*> [#uses=3] | |
%20 = call i8* @strncpy(i8* noalias %19, i8* noalias %16, i64 %18) nounwind ; <i8*> [#uses=0] | |
%21 = getelementptr inbounds i8* %19, i64 %17 ; <i8*> [#uses=1] | |
store i8 0, i8* %21, align 1 | |
store i8* %19, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @llvm.log.f32(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1125EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %b, align 4 ; <float> [#uses=1] | |
%2 = fpext float %1 to double ; <double> [#uses=1] | |
%3 = load float* %a, align 4 ; <float> [#uses=1] | |
%4 = fpext float %3 to double ; <double> [#uses=1] | |
%5 = call double @llvm.pow.f64(double %4, double %2) ; <double> [#uses=1] | |
%6 = fptrunc double %5 to float ; <float> [#uses=3] | |
%7 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%8 = add nsw i32 %7, 1 ; <i32> [#uses=1] | |
%9 = srem i32 %8, 3 ; <i32> [#uses=2] | |
store i32 %9, i32* @_ZL6retidx, align 4 | |
%10 = fpext float %6 to double ; <double> [#uses=1] | |
%11 = fptosi float %6 to i32 ; <i32> [#uses=1] | |
%12 = sitofp i32 %11 to float ; <float> [#uses=1] | |
%13 = fcmp oeq float %12, %6 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %13, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%14 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%15 = sext i32 %9 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %15, i64 0 ; <i8*> [#uses=1] | |
%17 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %16, i8** %17, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %14, double %10) nounwind | |
%18 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%19 = sext i32 %18 to i64 ; <i64> [#uses=1] | |
%20 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %19, i64 0 ; <i8*> [#uses=2] | |
%21 = call i64 @strlen(i8* %20) nounwind readonly ; <i64> [#uses=2] | |
%22 = add i64 %21, 1 ; <i64> [#uses=2] | |
%23 = call i8* @_Znam(i64 %22) ; <i8*> [#uses=3] | |
%24 = call i8* @strncpy(i8* noalias %23, i8* noalias %20, i64 %22) nounwind ; <i8*> [#uses=0] | |
%25 = getelementptr inbounds i8* %23, i64 %21 ; <i8*> [#uses=1] | |
store i8 0, i8* %25, align 1 | |
store i8* %23, i8** @commandret, align 8 | |
ret void | |
} | |
declare double @llvm.pow.f64(double, double) nounwind readonly | |
define void @_ZN7_stdcmdILi1124EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = call float @sqrtf(float %1) nounwind readonly ; <float> [#uses=3] | |
%3 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%4 = add nsw i32 %3, 1 ; <i32> [#uses=1] | |
%5 = srem i32 %4, 3 ; <i32> [#uses=2] | |
store i32 %5, i32* @_ZL6retidx, align 4 | |
%6 = fpext float %2 to double ; <double> [#uses=1] | |
%7 = fptosi float %2 to i32 ; <i32> [#uses=1] | |
%8 = sitofp i32 %7 to float ; <float> [#uses=1] | |
%9 = fcmp oeq float %8, %2 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %9, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%10 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%11 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=1] | |
%13 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %12, i8** %13, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %10, double %6) nounwind | |
%14 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%15 = sext i32 %14 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %15, i64 0 ; <i8*> [#uses=2] | |
%17 = call i64 @strlen(i8* %16) nounwind readonly ; <i64> [#uses=2] | |
%18 = add i64 %17, 1 ; <i64> [#uses=2] | |
%19 = call i8* @_Znam(i64 %18) ; <i8*> [#uses=3] | |
%20 = call i8* @strncpy(i8* noalias %19, i8* noalias %16, i64 %18) nounwind ; <i8*> [#uses=0] | |
%21 = getelementptr inbounds i8* %19, i64 %17 ; <i8*> [#uses=1] | |
store i8 0, i8* %21, align 1 | |
store i8* %19, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @sqrtf(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1123EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fpext float %1 to double ; <double> [#uses=1] | |
%3 = call double @atan(double %2) nounwind readonly ; <double> [#uses=1] | |
%4 = fdiv double %3, 0x3F91DF46A0000000 ; <double> [#uses=1] | |
%5 = fptrunc double %4 to float ; <float> [#uses=3] | |
%6 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%7 = add nsw i32 %6, 1 ; <i32> [#uses=1] | |
%8 = srem i32 %7, 3 ; <i32> [#uses=2] | |
store i32 %8, i32* @_ZL6retidx, align 4 | |
%9 = fpext float %5 to double ; <double> [#uses=1] | |
%10 = fptosi float %5 to i32 ; <i32> [#uses=1] | |
%11 = sitofp i32 %10 to float ; <float> [#uses=1] | |
%12 = fcmp oeq float %11, %5 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %12, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%13 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%14 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%15 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %14, i64 0 ; <i8*> [#uses=1] | |
%16 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %15, i8** %16, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %13, double %9) nounwind | |
%17 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%18 = sext i32 %17 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %18, i64 0 ; <i8*> [#uses=2] | |
%20 = call i64 @strlen(i8* %19) nounwind readonly ; <i64> [#uses=2] | |
%21 = add i64 %20, 1 ; <i64> [#uses=2] | |
%22 = call i8* @_Znam(i64 %21) ; <i8*> [#uses=3] | |
%23 = call i8* @strncpy(i8* noalias %22, i8* noalias %19, i64 %21) nounwind ; <i8*> [#uses=0] | |
%24 = getelementptr inbounds i8* %22, i64 %20 ; <i8*> [#uses=1] | |
store i8 0, i8* %24, align 1 | |
store i8* %22, i8** @commandret, align 8 | |
ret void | |
} | |
declare double @atan(double) nounwind readonly | |
define void @_ZN7_stdcmdILi1122EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fpext float %1 to double ; <double> [#uses=1] | |
%3 = call double @acos(double %2) nounwind readonly ; <double> [#uses=1] | |
%4 = fdiv double %3, 0x3F91DF46A0000000 ; <double> [#uses=1] | |
%5 = fptrunc double %4 to float ; <float> [#uses=3] | |
%6 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%7 = add nsw i32 %6, 1 ; <i32> [#uses=1] | |
%8 = srem i32 %7, 3 ; <i32> [#uses=2] | |
store i32 %8, i32* @_ZL6retidx, align 4 | |
%9 = fpext float %5 to double ; <double> [#uses=1] | |
%10 = fptosi float %5 to i32 ; <i32> [#uses=1] | |
%11 = sitofp i32 %10 to float ; <float> [#uses=1] | |
%12 = fcmp oeq float %11, %5 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %12, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%13 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%14 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%15 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %14, i64 0 ; <i8*> [#uses=1] | |
%16 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %15, i8** %16, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %13, double %9) nounwind | |
%17 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%18 = sext i32 %17 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %18, i64 0 ; <i8*> [#uses=2] | |
%20 = call i64 @strlen(i8* %19) nounwind readonly ; <i64> [#uses=2] | |
%21 = add i64 %20, 1 ; <i64> [#uses=2] | |
%22 = call i8* @_Znam(i64 %21) ; <i8*> [#uses=3] | |
%23 = call i8* @strncpy(i8* noalias %22, i8* noalias %19, i64 %21) nounwind ; <i8*> [#uses=0] | |
%24 = getelementptr inbounds i8* %22, i64 %20 ; <i8*> [#uses=1] | |
store i8 0, i8* %24, align 1 | |
store i8* %22, i8** @commandret, align 8 | |
ret void | |
} | |
declare double @acos(double) nounwind readonly | |
define void @_ZN7_stdcmdILi1121EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fpext float %1 to double ; <double> [#uses=1] | |
%3 = call double @asin(double %2) nounwind readonly ; <double> [#uses=1] | |
%4 = fdiv double %3, 0x3F91DF46A0000000 ; <double> [#uses=1] | |
%5 = fptrunc double %4 to float ; <float> [#uses=3] | |
%6 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%7 = add nsw i32 %6, 1 ; <i32> [#uses=1] | |
%8 = srem i32 %7, 3 ; <i32> [#uses=2] | |
store i32 %8, i32* @_ZL6retidx, align 4 | |
%9 = fpext float %5 to double ; <double> [#uses=1] | |
%10 = fptosi float %5 to i32 ; <i32> [#uses=1] | |
%11 = sitofp i32 %10 to float ; <float> [#uses=1] | |
%12 = fcmp oeq float %11, %5 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %12, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%13 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%14 = sext i32 %8 to i64 ; <i64> [#uses=1] | |
%15 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %14, i64 0 ; <i8*> [#uses=1] | |
%16 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %15, i8** %16, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %13, double %9) nounwind | |
%17 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%18 = sext i32 %17 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %18, i64 0 ; <i8*> [#uses=2] | |
%20 = call i64 @strlen(i8* %19) nounwind readonly ; <i64> [#uses=2] | |
%21 = add i64 %20, 1 ; <i64> [#uses=2] | |
%22 = call i8* @_Znam(i64 %21) ; <i8*> [#uses=3] | |
%23 = call i8* @strncpy(i8* noalias %22, i8* noalias %19, i64 %21) nounwind ; <i8*> [#uses=0] | |
%24 = getelementptr inbounds i8* %22, i64 %20 ; <i8*> [#uses=1] | |
store i8 0, i8* %24, align 1 | |
store i8* %22, i8** @commandret, align 8 | |
ret void | |
} | |
declare double @asin(double) nounwind readonly | |
define void @_ZN7_stdcmdILi1120EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fmul float %1, 0x3F91DF46A0000000 ; <float> [#uses=1] | |
%3 = call float @tanf(float %2) nounwind readonly ; <float> [#uses=3] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = fpext float %3 to double ; <double> [#uses=1] | |
%8 = fptosi float %3 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
%10 = fcmp oeq float %9, %3 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %10, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%11 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%12 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %11, double %7) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @tanf(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1119EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fmul float %1, 0x3F91DF46A0000000 ; <float> [#uses=1] | |
%3 = call float @cosf(float %2) nounwind readonly ; <float> [#uses=3] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = fpext float %3 to double ; <double> [#uses=1] | |
%8 = fptosi float %3 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
%10 = fcmp oeq float %9, %3 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %10, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%11 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%12 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %11, double %7) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @cosf(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1118EE3runEPf(float* nocapture %a) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %a, align 4 ; <float> [#uses=1] | |
%2 = fmul float %1, 0x3F91DF46A0000000 ; <float> [#uses=1] | |
%3 = call float @sinf(float %2) nounwind readonly ; <float> [#uses=3] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = fpext float %3 to double ; <double> [#uses=1] | |
%8 = fptosi float %3 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
%10 = fcmp oeq float %9, %3 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %10, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%11 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%12 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %11, double %7) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
declare float @sinf(float) nounwind readonly | |
define void @_ZN7_stdcmdILi1117EE3runEPfS1_(float* nocapture %a, float* nocapture %b) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = load float* %b, align 4 ; <float> [#uses=2] | |
%2 = fcmp une float %1, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %bb2 | |
bb: ; preds = %entry | |
%3 = fpext float %1 to double ; <double> [#uses=1] | |
%4 = load float* %a, align 4 ; <float> [#uses=1] | |
%5 = fpext float %4 to double ; <double> [#uses=1] | |
%6 = call double @fmod(double %5, double %3) nounwind readonly ; <double> [#uses=1] | |
%7 = fptrunc double %6 to float ; <float> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb, %entry | |
%iftmp.183.0 = phi float [ %7, %bb ], [ 0.000000e+00, %entry ] ; <float> [#uses=3] | |
%8 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%9 = add nsw i32 %8, 1 ; <i32> [#uses=1] | |
%10 = srem i32 %9, 3 ; <i32> [#uses=2] | |
store i32 %10, i32* @_ZL6retidx, align 4 | |
%11 = fpext float %iftmp.183.0 to double ; <double> [#uses=1] | |
%12 = fptosi float %iftmp.183.0 to i32 ; <i32> [#uses=1] | |
%13 = sitofp i32 %12 to float ; <float> [#uses=1] | |
%14 = fcmp oeq float %13, %iftmp.183.0 ; <i1> [#uses=1] | |
%iftmp.145.0.i.i = select i1 %14, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%15 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%16 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=1] | |
%18 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %17, i8** %18, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %15, double %11) nounwind | |
%19 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%20 = sext i32 %19 to i64 ; <i64> [#uses=1] | |
%21 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %20, i64 0 ; <i8*> [#uses=2] | |
%22 = call i64 @strlen(i8* %21) nounwind readonly ; <i64> [#uses=2] | |
%23 = add i64 %22, 1 ; <i64> [#uses=2] | |
%24 = call i8* @_Znam(i64 %23) ; <i8*> [#uses=3] | |
%25 = call i8* @strncpy(i8* noalias %24, i8* noalias %21, i64 %23) nounwind ; <i8*> [#uses=0] | |
%26 = getelementptr inbounds i8* %24, i64 %22 ; <i8*> [#uses=1] | |
store i8 0, i8* %26, align 1 | |
store i8* %24, i8** @commandret, align 8 | |
ret void | |
} | |
declare double @fmod(double, double) nounwind readonly | |
define i32 @_Z7listlenPKc(i8* %s) nounwind readonly { | |
entry: | |
%0 = tail call i64 @strspn(i8* %s, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%1 = getelementptr inbounds i8* %s, i64 %0 ; <i8*> [#uses=2] | |
%2 = load i8* %1, align 1 ; <i8> [#uses=2] | |
%3 = icmp eq i8 %2, 0 ; <i1> [#uses=1] | |
br i1 %3, label %bb5, label %bb | |
bb: ; preds = %bb3, %entry | |
%4 = phi i8 [ %15, %bb3 ], [ %2, %entry ] ; <i8> [#uses=1] | |
%s_addr.19 = phi i8* [ %14, %bb3 ], [ %1, %entry ] ; <i8*> [#uses=5] | |
%n.08 = phi i32 [ %tmp, %bb3 ], [ 0, %entry ] ; <i32> [#uses=1] | |
%tmp = add i32 %n.08, 1 ; <i32> [#uses=2] | |
%5 = icmp eq i8 %4, 34 ; <i1> [#uses=1] | |
br i1 %5, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%6 = getelementptr inbounds i8* %s_addr.19, i64 1 ; <i8*> [#uses=1] | |
%7 = tail call i64 @strcspn(i8* %6, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %7, 1 ; <i64> [#uses=2] | |
%8 = getelementptr inbounds i8* %s_addr.19, i64 %.sum ; <i8*> [#uses=1] | |
%9 = load i8* %8, align 1 ; <i8> [#uses=1] | |
%10 = icmp eq i8 %9, 34 ; <i1> [#uses=1] | |
%11 = zext i1 %10 to i64 ; <i64> [#uses=1] | |
%.sum7 = add i64 %11, %.sum ; <i64> [#uses=1] | |
br label %bb3 | |
bb2: ; preds = %bb | |
%12 = tail call i64 @strcspn(i8* %s_addr.19, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%.sum7.pn = phi i64 [ %.sum7, %bb1 ], [ %12, %bb2 ] ; <i64> [#uses=2] | |
%s_addr.0 = getelementptr inbounds i8* %s_addr.19, i64 %.sum7.pn ; <i8*> [#uses=1] | |
%13 = tail call i64 @strspn(i8* %s_addr.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum = add i64 %13, %.sum7.pn ; <i64> [#uses=1] | |
%14 = getelementptr inbounds i8* %s_addr.19, i64 %s_addr.0.sum ; <i8*> [#uses=2] | |
%15 = load i8* %14, align 1 ; <i8> [#uses=2] | |
%16 = icmp eq i8 %15, 0 ; <i1> [#uses=1] | |
br i1 %16, label %bb5, label %bb | |
bb5: ; preds = %bb3, %entry | |
%n.0.lcssa = phi i32 [ 0, %entry ], [ %tmp, %bb3 ] ; <i32> [#uses=1] | |
ret i32 %n.0.lcssa | |
} | |
declare i64 @strspn(i8* nocapture, i8* nocapture) nounwind readonly | |
declare i64 @strcspn(i8*, i8*) nounwind readonly | |
define void @_Z10prettylistPKcS0_(i8* %s, i8* nocapture %conj) { | |
entry: | |
%0 = tail call i64 @strspn(i8* %s, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=2] | |
%1 = getelementptr inbounds i8* %s, i64 %0 ; <i8*> [#uses=2] | |
%2 = tail call i64 @strspn(i8* %1, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum120 = add i64 %2, %0 ; <i64> [#uses=1] | |
%3 = getelementptr inbounds i8* %s, i64 %.sum120 ; <i8*> [#uses=2] | |
%4 = load i8* %3, align 1 ; <i8> [#uses=2] | |
%5 = icmp eq i8 %4, 0 ; <i1> [#uses=1] | |
br i1 %5, label %_Z7listlenPKc.exit, label %bb.i117 | |
bb.i117: ; preds = %bb3.i, %entry | |
%6 = phi i8 [ %17, %bb3.i ], [ %4, %entry ] ; <i8> [#uses=1] | |
%s_addr.19.i = phi i8* [ %16, %bb3.i ], [ %3, %entry ] ; <i8*> [#uses=5] | |
%n.08.i = phi i32 [ %tmp.i, %bb3.i ], [ 0, %entry ] ; <i32> [#uses=1] | |
%tmp.i = add i32 %n.08.i, 1 ; <i32> [#uses=2] | |
%7 = icmp eq i8 %6, 34 ; <i1> [#uses=1] | |
br i1 %7, label %bb1.i118, label %bb2.i119 | |
bb1.i118: ; preds = %bb.i117 | |
%8 = getelementptr inbounds i8* %s_addr.19.i, i64 1 ; <i8*> [#uses=1] | |
%9 = tail call i64 @strcspn(i8* %8, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum.i = add i64 %9, 1 ; <i64> [#uses=2] | |
%10 = getelementptr inbounds i8* %s_addr.19.i, i64 %.sum.i ; <i8*> [#uses=1] | |
%11 = load i8* %10, align 1 ; <i8> [#uses=1] | |
%12 = icmp eq i8 %11, 34 ; <i1> [#uses=1] | |
%13 = zext i1 %12 to i64 ; <i64> [#uses=1] | |
%.sum7.i = add i64 %13, %.sum.i ; <i64> [#uses=1] | |
br label %bb3.i | |
bb2.i119: ; preds = %bb.i117 | |
%14 = tail call i64 @strcspn(i8* %s_addr.19.i, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i119, %bb1.i118 | |
%.sum7.pn.i = phi i64 [ %.sum7.i, %bb1.i118 ], [ %14, %bb2.i119 ] ; <i64> [#uses=2] | |
%s_addr.0.i = getelementptr inbounds i8* %s_addr.19.i, i64 %.sum7.pn.i ; <i8*> [#uses=1] | |
%15 = tail call i64 @strspn(i8* %s_addr.0.i, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum.i = add i64 %15, %.sum7.pn.i ; <i64> [#uses=1] | |
%16 = getelementptr inbounds i8* %s_addr.19.i, i64 %s_addr.0.sum.i ; <i8*> [#uses=2] | |
%17 = load i8* %16, align 1 ; <i8> [#uses=2] | |
%18 = icmp eq i8 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_Z7listlenPKc.exit, label %bb.i117 | |
_Z7listlenPKc.exit: ; preds = %bb3.i, %entry | |
%n.0.lcssa.i = phi i32 [ 0, %entry ], [ %tmp.i, %bb3.i ] ; <i32> [#uses=3] | |
%19 = icmp sgt i32 %n.0.lcssa.i, 2 ; <i1> [#uses=1] | |
br label %bb16 | |
bb1: ; preds = %bb16 | |
%20 = getelementptr inbounds i8* %s_addr.1, i64 1 ; <i8*> [#uses=1] | |
%21 = tail call i64 @strcspn(i8* %20, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %21, 1 ; <i64> [#uses=2] | |
%22 = getelementptr inbounds i8* %s_addr.1, i64 %.sum ; <i8*> [#uses=1] | |
%23 = load i8* %22, align 1 ; <i8> [#uses=1] | |
%24 = icmp eq i8 %23, 34 ; <i1> [#uses=1] | |
%25 = zext i1 %24 to i64 ; <i64> [#uses=1] | |
%.sum32 = add i64 %25, %.sum ; <i64> [#uses=1] | |
br label %bb3 | |
bb2: ; preds = %bb16 | |
%26 = tail call i64 @strcspn(i8* %s_addr.1, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%.sum32.pn = phi i64 [ %.sum32, %bb1 ], [ %26, %bb2 ] ; <i64> [#uses=3] | |
%s_addr.0 = getelementptr inbounds i8* %s_addr.1, i64 %.sum32.pn ; <i8*> [#uses=1] | |
%27 = trunc i64 %.sum32.pn to i32 ; <i32> [#uses=2] | |
%28 = add nsw i32 %27, %p.2.0 ; <i32> [#uses=11] | |
%29 = icmp sgt i32 %28, %p.1.2 ; <i1> [#uses=1] | |
br i1 %29, label %bb.i.i102, label %invcont | |
bb.i.i102: ; preds = %bb3 | |
%30 = icmp eq i32 %p.1.2, 0 ; <i1> [#uses=1] | |
br i1 %30, label %bb.i.i.i105, label %bb2.preheader.i.i.i103 | |
bb2.preheader.i.i.i103: ; preds = %bb.i.i102 | |
%31 = icmp slt i32 %p.1.2, %28 ; <i1> [#uses=1] | |
br i1 %31, label %bb1.i.i.i107, label %invcont | |
bb.i.i.i105: ; preds = %bb.i.i102 | |
%32 = icmp slt i32 %28, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i.i104 = select i1 %32, i32 8, i32 %28 ; <i32> [#uses=1] | |
br label %bb3.i.i.i109 | |
bb1.i.i.i107: ; preds = %bb1.i.i.i107, %bb2.preheader.i.i.i103 | |
%.tmp.0.i.i.i106 = phi i32 [ %33, %bb1.i.i.i107 ], [ %p.1.2, %bb2.preheader.i.i.i103 ] ; <i32> [#uses=1] | |
%33 = shl i32 %.tmp.0.i.i.i106, 1 ; <i32> [#uses=3] | |
%34 = icmp slt i32 %33, %28 ; <i1> [#uses=1] | |
br i1 %34, label %bb1.i.i.i107, label %bb3.i.i.i109 | |
bb3.i.i.i109: ; preds = %bb1.i.i.i107, %bb.i.i.i105 | |
%p.1.0 = phi i32 [ %iftmp.215.0.i.i.i.i104, %bb.i.i.i105 ], [ %33, %bb1.i.i.i107 ] ; <i32> [#uses=6] | |
%35 = icmp sgt i32 %p.1.0, %p.1.2 ; <i1> [#uses=1] | |
br i1 %35, label %bb4.i.i.i110, label %invcont | |
bb4.i.i.i110: ; preds = %bb3.i.i.i109 | |
%36 = sext i32 %p.1.0 to i64 ; <i64> [#uses=1] | |
%37 = invoke i8* @_Znam(i64 %36) | |
to label %.noexc115 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc115: ; preds = %bb4.i.i.i110 | |
%38 = icmp sgt i32 %p.1.2, 0 ; <i1> [#uses=1] | |
br i1 %38, label %bb5.i.i.i111, label %invcont | |
bb5.i.i.i111: ; preds = %.noexc115 | |
%39 = sext i32 %p.1.2 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %37, i8* %p.0.1, i64 %39, i32 1) | |
%40 = icmp eq i8* %p.0.1, null ; <i1> [#uses=1] | |
br i1 %40, label %invcont, label %bb6.i.i.i112 | |
bb6.i.i.i112: ; preds = %bb5.i.i.i111 | |
tail call void @_ZdaPv(i8* %p.0.1) nounwind | |
br label %invcont | |
invcont: ; preds = %bb6.i.i.i112, %bb5.i.i.i111, %.noexc115, %bb3.i.i.i109, %bb2.preheader.i.i.i103, %bb3 | |
%p.1.1 = phi i32 [ %p.1.0, %bb3.i.i.i109 ], [ %p.1.2, %bb2.preheader.i.i.i103 ], [ %p.1.2, %bb3 ], [ %p.1.0, %bb6.i.i.i112 ], [ %p.1.0, %bb5.i.i.i111 ], [ %p.1.0, %.noexc115 ] ; <i32> [#uses=11] | |
%p.0.0 = phi i8* [ %p.0.1, %bb3.i.i.i109 ], [ %p.0.1, %bb2.preheader.i.i.i103 ], [ %p.0.1, %bb3 ], [ %37, %bb6.i.i.i112 ], [ %37, %bb5.i.i.i111 ], [ %37, %.noexc115 ] ; <i8*> [#uses=10] | |
%41 = sext i32 %p.2.0 to i64 ; <i64> [#uses=1] | |
%42 = getelementptr inbounds i8* %p.0.0, i64 %41 ; <i8*> [#uses=1] | |
%43 = sext i32 %27 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %42, i8* %s_addr.1, i64 %43, i32 1) nounwind | |
%44 = icmp slt i32 %tmp143, %n.0.lcssa.i ; <i1> [#uses=1] | |
br i1 %44, label %bb4, label %bb15 | |
bb4: ; preds = %invcont | |
br i1 %19, label %bb6, label %bb5 | |
bb5: ; preds = %bb4 | |
%45 = load i8* %conj, align 1 ; <i8> [#uses=1] | |
%46 = icmp eq i8 %45, 0 ; <i1> [#uses=1] | |
br i1 %46, label %bb6, label %bb8 | |
bb6: ; preds = %bb5, %bb4 | |
%47 = icmp eq i32 %28, %p.1.1 ; <i1> [#uses=1] | |
br i1 %47, label %bb.i83, label %bb1.i96 | |
bb.i83: ; preds = %bb6 | |
%48 = add nsw i32 %28, 1 ; <i32> [#uses=4] | |
%49 = icmp eq i32 %p.1.1, 0 ; <i1> [#uses=1] | |
br i1 %49, label %bb.i.i86, label %bb2.preheader.i.i84 | |
bb2.preheader.i.i84: ; preds = %bb.i83 | |
%50 = icmp slt i32 %p.1.1, %48 ; <i1> [#uses=1] | |
br i1 %50, label %bb1.i.i88, label %bb1.i96 | |
bb.i.i86: ; preds = %bb.i83 | |
%51 = icmp slt i32 %48, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i85 = select i1 %51, i32 8, i32 %48 ; <i32> [#uses=1] | |
br label %bb3.i.i90 | |
bb1.i.i88: ; preds = %bb1.i.i88, %bb2.preheader.i.i84 | |
%.tmp.0.i.i87 = phi i32 [ %52, %bb1.i.i88 ], [ %p.1.1, %bb2.preheader.i.i84 ] ; <i32> [#uses=1] | |
%52 = shl i32 %.tmp.0.i.i87, 1 ; <i32> [#uses=3] | |
%53 = icmp slt i32 %52, %48 ; <i1> [#uses=1] | |
br i1 %53, label %bb1.i.i88, label %bb3.i.i90 | |
bb3.i.i90: ; preds = %bb1.i.i88, %bb.i.i86 | |
%p.1.3 = phi i32 [ %iftmp.215.0.i.i.i85, %bb.i.i86 ], [ %52, %bb1.i.i88 ] ; <i32> [#uses=6] | |
%54 = icmp sgt i32 %p.1.3, %p.1.1 ; <i1> [#uses=1] | |
br i1 %54, label %bb4.i.i91, label %bb1.i96 | |
bb4.i.i91: ; preds = %bb3.i.i90 | |
%55 = sext i32 %p.1.3 to i64 ; <i64> [#uses=1] | |
%56 = invoke i8* @_Znam(i64 %55) | |
to label %.noexc100 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc100: ; preds = %bb4.i.i91 | |
%57 = icmp sgt i32 %p.1.1, 0 ; <i1> [#uses=1] | |
br i1 %57, label %bb5.i.i92, label %bb1.i96 | |
bb5.i.i92: ; preds = %.noexc100 | |
%58 = sext i32 %p.1.1 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %56, i8* %p.0.0, i64 %58, i32 1) | |
%59 = icmp eq i8* %p.0.0, null ; <i1> [#uses=1] | |
br i1 %59, label %bb1.i96, label %bb6.i.i93 | |
bb6.i.i93: ; preds = %bb5.i.i92 | |
tail call void @_ZdaPv(i8* %p.0.0) nounwind | |
br label %bb1.i96 | |
bb1.i96: ; preds = %bb6.i.i93, %bb5.i.i92, %.noexc100, %bb3.i.i90, %bb2.preheader.i.i84, %bb6 | |
%p.1.4 = phi i32 [ %p.1.3, %bb3.i.i90 ], [ %p.1.1, %bb2.preheader.i.i84 ], [ %p.1.1, %bb6 ], [ %p.1.3, %bb6.i.i93 ], [ %p.1.3, %bb5.i.i92 ], [ %p.1.3, %.noexc100 ] ; <i32> [#uses=1] | |
%p.0.3 = phi i8* [ %p.0.0, %bb3.i.i90 ], [ %p.0.0, %bb2.preheader.i.i84 ], [ %p.0.0, %bb6 ], [ %56, %bb6.i.i93 ], [ %56, %bb5.i.i92 ], [ %56, %.noexc100 ] ; <i8*> [#uses=2] | |
%60 = sext i32 %28 to i64 ; <i64> [#uses=1] | |
%61 = getelementptr inbounds i8* %p.0.3, i64 %60 ; <i8*> [#uses=2] | |
%62 = icmp eq i8* %61, null ; <i1> [#uses=1] | |
br i1 %62, label %_ZN6vectorIcE3addERKc.exit101, label %bb2.i99 | |
bb2.i99: ; preds = %bb1.i96 | |
store i8 44, i8* %61, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit101 | |
_ZN6vectorIcE3addERKc.exit101: ; preds = %bb2.i99, %bb1.i96 | |
%63 = add nsw i32 %28, 1 ; <i32> [#uses=1] | |
br label %bb8 | |
bb8: ; preds = %_ZN6vectorIcE3addERKc.exit101, %bb5 | |
%p.2.2 = phi i32 [ %63, %_ZN6vectorIcE3addERKc.exit101 ], [ %28, %bb5 ] ; <i32> [#uses=6] | |
%p.1.5 = phi i32 [ %p.1.4, %_ZN6vectorIcE3addERKc.exit101 ], [ %p.1.1, %bb5 ] ; <i32> [#uses=11] | |
%p.0.4 = phi i8* [ %p.0.3, %_ZN6vectorIcE3addERKc.exit101 ], [ %p.0.0, %bb5 ] ; <i8*> [#uses=9] | |
%64 = icmp eq i32 %tmp, %n.0.lcssa.i ; <i1> [#uses=1] | |
br i1 %64, label %bb9, label %bb13 | |
bb9: ; preds = %bb8 | |
%65 = load i8* %conj, align 1 ; <i8> [#uses=1] | |
%66 = icmp eq i8 %65, 0 ; <i1> [#uses=1] | |
br i1 %66, label %bb13, label %bb10 | |
bb10: ; preds = %bb9 | |
%67 = icmp eq i32 %p.2.2, %p.1.5 ; <i1> [#uses=1] | |
br i1 %67, label %bb.i64, label %bb1.i77 | |
bb.i64: ; preds = %bb10 | |
%68 = add nsw i32 %p.2.2, 1 ; <i32> [#uses=4] | |
%69 = icmp eq i32 %p.1.5, 0 ; <i1> [#uses=1] | |
br i1 %69, label %bb.i.i67, label %bb2.preheader.i.i65 | |
bb2.preheader.i.i65: ; preds = %bb.i64 | |
%70 = icmp slt i32 %p.1.5, %68 ; <i1> [#uses=1] | |
br i1 %70, label %bb1.i.i69, label %bb1.i77 | |
bb.i.i67: ; preds = %bb.i64 | |
%71 = icmp slt i32 %68, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i66 = select i1 %71, i32 8, i32 %68 ; <i32> [#uses=1] | |
br label %bb3.i.i71 | |
bb1.i.i69: ; preds = %bb1.i.i69, %bb2.preheader.i.i65 | |
%.tmp.0.i.i68 = phi i32 [ %72, %bb1.i.i69 ], [ %p.1.5, %bb2.preheader.i.i65 ] ; <i32> [#uses=1] | |
%72 = shl i32 %.tmp.0.i.i68, 1 ; <i32> [#uses=3] | |
%73 = icmp slt i32 %72, %68 ; <i1> [#uses=1] | |
br i1 %73, label %bb1.i.i69, label %bb3.i.i71 | |
bb3.i.i71: ; preds = %bb1.i.i69, %bb.i.i67 | |
%p.1.7 = phi i32 [ %iftmp.215.0.i.i.i66, %bb.i.i67 ], [ %72, %bb1.i.i69 ] ; <i32> [#uses=6] | |
%74 = icmp sgt i32 %p.1.7, %p.1.5 ; <i1> [#uses=1] | |
br i1 %74, label %bb4.i.i72, label %bb1.i77 | |
bb4.i.i72: ; preds = %bb3.i.i71 | |
%75 = sext i32 %p.1.7 to i64 ; <i64> [#uses=1] | |
%76 = invoke i8* @_Znam(i64 %75) | |
to label %.noexc81 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc81: ; preds = %bb4.i.i72 | |
%77 = icmp sgt i32 %p.1.5, 0 ; <i1> [#uses=1] | |
br i1 %77, label %bb5.i.i73, label %bb1.i77 | |
bb5.i.i73: ; preds = %.noexc81 | |
%78 = sext i32 %p.1.5 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %76, i8* %p.0.4, i64 %78, i32 1) | |
%79 = icmp eq i8* %p.0.4, null ; <i1> [#uses=1] | |
br i1 %79, label %bb1.i77, label %bb6.i.i74 | |
bb6.i.i74: ; preds = %bb5.i.i73 | |
tail call void @_ZdaPv(i8* %p.0.4) nounwind | |
br label %bb1.i77 | |
bb1.i77: ; preds = %bb6.i.i74, %bb5.i.i73, %.noexc81, %bb3.i.i71, %bb2.preheader.i.i65, %bb10 | |
%p.1.8 = phi i32 [ %p.1.7, %bb3.i.i71 ], [ %p.1.5, %bb2.preheader.i.i65 ], [ %p.1.5, %bb10 ], [ %p.1.7, %bb6.i.i74 ], [ %p.1.7, %bb5.i.i73 ], [ %p.1.7, %.noexc81 ] ; <i32> [#uses=9] | |
%p.0.6 = phi i8* [ %p.0.4, %bb3.i.i71 ], [ %p.0.4, %bb2.preheader.i.i65 ], [ %p.0.4, %bb10 ], [ %76, %bb6.i.i74 ], [ %76, %bb5.i.i73 ], [ %76, %.noexc81 ] ; <i8*> [#uses=8] | |
%80 = sext i32 %p.2.2 to i64 ; <i64> [#uses=1] | |
%81 = getelementptr inbounds i8* %p.0.6, i64 %80 ; <i8*> [#uses=2] | |
%82 = icmp eq i8* %81, null ; <i1> [#uses=1] | |
br i1 %82, label %invcont11, label %bb2.i80 | |
bb2.i80: ; preds = %bb1.i77 | |
store i8 32, i8* %81, align 1 | |
br label %invcont11 | |
invcont11: ; preds = %bb2.i80, %bb1.i77 | |
%83 = add nsw i32 %p.2.2, 1 ; <i32> [#uses=2] | |
%84 = tail call i64 @strlen(i8* %conj) nounwind readonly ; <i64> [#uses=1] | |
%85 = trunc i64 %84 to i32 ; <i32> [#uses=2] | |
%86 = add nsw i32 %85, %83 ; <i32> [#uses=6] | |
%87 = icmp sgt i32 %86, %p.1.8 ; <i1> [#uses=1] | |
br i1 %87, label %bb.i.i62, label %_ZN6vectorIcE3putEPKci.exit | |
bb.i.i62: ; preds = %invcont11 | |
%88 = icmp eq i32 %p.1.8, 0 ; <i1> [#uses=1] | |
br i1 %88, label %bb.i.i.i, label %bb2.preheader.i.i.i | |
bb2.preheader.i.i.i: ; preds = %bb.i.i62 | |
%89 = icmp slt i32 %p.1.8, %86 ; <i1> [#uses=1] | |
br i1 %89, label %bb1.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb.i.i.i: ; preds = %bb.i.i62 | |
%90 = icmp slt i32 %86, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i.i = select i1 %90, i32 8, i32 %86 ; <i32> [#uses=1] | |
br label %bb3.i.i.i | |
bb1.i.i.i: ; preds = %bb1.i.i.i, %bb2.preheader.i.i.i | |
%.tmp.0.i.i.i = phi i32 [ %91, %bb1.i.i.i ], [ %p.1.8, %bb2.preheader.i.i.i ] ; <i32> [#uses=1] | |
%91 = shl i32 %.tmp.0.i.i.i, 1 ; <i32> [#uses=3] | |
%92 = icmp slt i32 %91, %86 ; <i1> [#uses=1] | |
br i1 %92, label %bb1.i.i.i, label %bb3.i.i.i | |
bb3.i.i.i: ; preds = %bb1.i.i.i, %bb.i.i.i | |
%p.1.10 = phi i32 [ %iftmp.215.0.i.i.i.i, %bb.i.i.i ], [ %91, %bb1.i.i.i ] ; <i32> [#uses=6] | |
%93 = icmp sgt i32 %p.1.10, %p.1.8 ; <i1> [#uses=1] | |
br i1 %93, label %bb4.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb4.i.i.i: ; preds = %bb3.i.i.i | |
%94 = sext i32 %p.1.10 to i64 ; <i64> [#uses=1] | |
%95 = invoke i8* @_Znam(i64 %94) | |
to label %.noexc63 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc63: ; preds = %bb4.i.i.i | |
%96 = icmp sgt i32 %p.1.8, 0 ; <i1> [#uses=1] | |
br i1 %96, label %bb5.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb5.i.i.i: ; preds = %.noexc63 | |
%97 = sext i32 %p.1.8 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %95, i8* %p.0.6, i64 %97, i32 1) | |
%98 = icmp eq i8* %p.0.6, null ; <i1> [#uses=1] | |
br i1 %98, label %_ZN6vectorIcE3putEPKci.exit, label %bb6.i.i.i | |
bb6.i.i.i: ; preds = %bb5.i.i.i | |
tail call void @_ZdaPv(i8* %p.0.6) nounwind | |
br label %_ZN6vectorIcE3putEPKci.exit | |
_ZN6vectorIcE3putEPKci.exit: ; preds = %bb6.i.i.i, %bb5.i.i.i, %.noexc63, %bb3.i.i.i, %bb2.preheader.i.i.i, %invcont11 | |
%p.1.11 = phi i32 [ %p.1.10, %bb3.i.i.i ], [ %p.1.8, %bb2.preheader.i.i.i ], [ %p.1.8, %invcont11 ], [ %p.1.10, %bb6.i.i.i ], [ %p.1.10, %bb5.i.i.i ], [ %p.1.10, %.noexc63 ] ; <i32> [#uses=1] | |
%p.0.8 = phi i8* [ %p.0.6, %bb3.i.i.i ], [ %p.0.6, %bb2.preheader.i.i.i ], [ %p.0.6, %invcont11 ], [ %95, %bb6.i.i.i ], [ %95, %bb5.i.i.i ], [ %95, %.noexc63 ] ; <i8*> [#uses=2] | |
%99 = sext i32 %83 to i64 ; <i64> [#uses=1] | |
%100 = getelementptr inbounds i8* %p.0.8, i64 %99 ; <i8*> [#uses=1] | |
%101 = sext i32 %85 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %100, i8* %conj, i64 %101, i32 1) nounwind | |
br label %bb13 | |
bb13: ; preds = %_ZN6vectorIcE3putEPKci.exit, %bb9, %bb8 | |
%p.2.4 = phi i32 [ %p.2.2, %bb9 ], [ %86, %_ZN6vectorIcE3putEPKci.exit ], [ %p.2.2, %bb8 ] ; <i32> [#uses=4] | |
%p.1.9 = phi i32 [ %p.1.5, %bb9 ], [ %p.1.11, %_ZN6vectorIcE3putEPKci.exit ], [ %p.1.5, %bb8 ] ; <i32> [#uses=9] | |
%p.0.7 = phi i8* [ %p.0.4, %bb9 ], [ %p.0.8, %_ZN6vectorIcE3putEPKci.exit ], [ %p.0.4, %bb8 ] ; <i8*> [#uses=7] | |
%102 = icmp eq i32 %p.2.4, %p.1.9 ; <i1> [#uses=1] | |
br i1 %102, label %bb.i43, label %bb1.i56 | |
bb.i43: ; preds = %bb13 | |
%103 = add nsw i32 %p.2.4, 1 ; <i32> [#uses=4] | |
%104 = icmp eq i32 %p.1.9, 0 ; <i1> [#uses=1] | |
br i1 %104, label %bb.i.i46, label %bb2.preheader.i.i44 | |
bb2.preheader.i.i44: ; preds = %bb.i43 | |
%105 = icmp slt i32 %p.1.9, %103 ; <i1> [#uses=1] | |
br i1 %105, label %bb1.i.i48, label %bb1.i56 | |
bb.i.i46: ; preds = %bb.i43 | |
%106 = icmp slt i32 %103, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i45 = select i1 %106, i32 8, i32 %103 ; <i32> [#uses=1] | |
br label %bb3.i.i50 | |
bb1.i.i48: ; preds = %bb1.i.i48, %bb2.preheader.i.i44 | |
%.tmp.0.i.i47 = phi i32 [ %107, %bb1.i.i48 ], [ %p.1.9, %bb2.preheader.i.i44 ] ; <i32> [#uses=1] | |
%107 = shl i32 %.tmp.0.i.i47, 1 ; <i32> [#uses=3] | |
%108 = icmp slt i32 %107, %103 ; <i1> [#uses=1] | |
br i1 %108, label %bb1.i.i48, label %bb3.i.i50 | |
bb3.i.i50: ; preds = %bb1.i.i48, %bb.i.i46 | |
%p.1.12 = phi i32 [ %iftmp.215.0.i.i.i45, %bb.i.i46 ], [ %107, %bb1.i.i48 ] ; <i32> [#uses=6] | |
%109 = icmp sgt i32 %p.1.12, %p.1.9 ; <i1> [#uses=1] | |
br i1 %109, label %bb4.i.i51, label %bb1.i56 | |
bb4.i.i51: ; preds = %bb3.i.i50 | |
%110 = sext i32 %p.1.12 to i64 ; <i64> [#uses=1] | |
%111 = invoke i8* @_Znam(i64 %110) | |
to label %.noexc60 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc60: ; preds = %bb4.i.i51 | |
%112 = icmp sgt i32 %p.1.9, 0 ; <i1> [#uses=1] | |
br i1 %112, label %bb5.i.i52, label %bb1.i56 | |
bb5.i.i52: ; preds = %.noexc60 | |
%113 = sext i32 %p.1.9 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %111, i8* %p.0.7, i64 %113, i32 1) | |
%114 = icmp eq i8* %p.0.7, null ; <i1> [#uses=1] | |
br i1 %114, label %bb1.i56, label %bb6.i.i53 | |
bb6.i.i53: ; preds = %bb5.i.i52 | |
tail call void @_ZdaPv(i8* %p.0.7) nounwind | |
br label %bb1.i56 | |
bb1.i56: ; preds = %bb6.i.i53, %bb5.i.i52, %.noexc60, %bb3.i.i50, %bb2.preheader.i.i44, %bb13 | |
%p.1.13 = phi i32 [ %p.1.12, %bb3.i.i50 ], [ %p.1.9, %bb2.preheader.i.i44 ], [ %p.1.9, %bb13 ], [ %p.1.12, %bb6.i.i53 ], [ %p.1.12, %bb5.i.i52 ], [ %p.1.12, %.noexc60 ] ; <i32> [#uses=1] | |
%p.0.9 = phi i8* [ %p.0.7, %bb3.i.i50 ], [ %p.0.7, %bb2.preheader.i.i44 ], [ %p.0.7, %bb13 ], [ %111, %bb6.i.i53 ], [ %111, %bb5.i.i52 ], [ %111, %.noexc60 ] ; <i8*> [#uses=2] | |
%115 = sext i32 %p.2.4 to i64 ; <i64> [#uses=1] | |
%116 = getelementptr inbounds i8* %p.0.9, i64 %115 ; <i8*> [#uses=2] | |
%117 = icmp eq i8* %116, null ; <i1> [#uses=1] | |
br i1 %117, label %_ZN6vectorIcE3addERKc.exit61, label %bb2.i59 | |
bb2.i59: ; preds = %bb1.i56 | |
store i8 32, i8* %116, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit61 | |
_ZN6vectorIcE3addERKc.exit61: ; preds = %bb2.i59, %bb1.i56 | |
%118 = add nsw i32 %p.2.4, 1 ; <i32> [#uses=1] | |
br label %bb15 | |
bb15: ; preds = %_ZN6vectorIcE3addERKc.exit61, %invcont | |
%p.2.3 = phi i32 [ %118, %_ZN6vectorIcE3addERKc.exit61 ], [ %28, %invcont ] ; <i32> [#uses=1] | |
%p.1.6 = phi i32 [ %p.1.13, %_ZN6vectorIcE3addERKc.exit61 ], [ %p.1.1, %invcont ] ; <i32> [#uses=1] | |
%p.0.5 = phi i8* [ %p.0.9, %_ZN6vectorIcE3addERKc.exit61 ], [ %p.0.0, %invcont ] ; <i8*> [#uses=1] | |
%119 = tail call i64 @strspn(i8* %s_addr.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum = add i64 %119, %.sum32.pn ; <i64> [#uses=1] | |
%120 = getelementptr inbounds i8* %s_addr.1, i64 %s_addr.0.sum ; <i8*> [#uses=1] | |
br label %bb16 | |
bb16: ; preds = %bb15, %_Z7listlenPKc.exit | |
%p.2.0 = phi i32 [ 0, %_Z7listlenPKc.exit ], [ %p.2.3, %bb15 ] ; <i32> [#uses=5] | |
%p.1.2 = phi i32 [ 0, %_Z7listlenPKc.exit ], [ %p.1.6, %bb15 ] ; <i32> [#uses=16] | |
%p.0.1 = phi i8* [ null, %_Z7listlenPKc.exit ], [ %p.0.5, %bb15 ] ; <i8*> [#uses=14] | |
%n.0 = phi i32 [ 0, %_Z7listlenPKc.exit ], [ %tmp143, %bb15 ] ; <i32> [#uses=2] | |
%s_addr.1 = phi i8* [ %1, %_Z7listlenPKc.exit ], [ %120, %bb15 ] ; <i8*> [#uses=7] | |
%tmp = add i32 %n.0, 2 ; <i32> [#uses=1] | |
%tmp143 = add i32 %n.0, 1 ; <i32> [#uses=2] | |
%121 = load i8* %s_addr.1, align 1 ; <i8> [#uses=1] | |
switch i8 %121, label %bb2 [ | |
i8 0, label %bb17 | |
i8 34, label %bb1 | |
] | |
bb17: ; preds = %bb16 | |
%122 = icmp eq i32 %p.2.0, %p.1.2 ; <i1> [#uses=1] | |
br i1 %122, label %bb.i, label %bb1.i42 | |
bb.i: ; preds = %bb17 | |
%123 = add nsw i32 %p.2.0, 1 ; <i32> [#uses=4] | |
%124 = icmp eq i32 %p.1.2, 0 ; <i1> [#uses=1] | |
br i1 %124, label %bb.i.i, label %bb2.preheader.i.i | |
bb2.preheader.i.i: ; preds = %bb.i | |
%125 = icmp slt i32 %p.1.2, %123 ; <i1> [#uses=1] | |
br i1 %125, label %bb1.i.i, label %bb1.i42 | |
bb.i.i: ; preds = %bb.i | |
%126 = icmp slt i32 %123, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i = select i1 %126, i32 8, i32 %123 ; <i32> [#uses=1] | |
br label %bb3.i.i | |
bb1.i.i: ; preds = %bb1.i.i, %bb2.preheader.i.i | |
%.tmp.0.i.i = phi i32 [ %127, %bb1.i.i ], [ %p.1.2, %bb2.preheader.i.i ] ; <i32> [#uses=1] | |
%127 = shl i32 %.tmp.0.i.i, 1 ; <i32> [#uses=3] | |
%128 = icmp slt i32 %127, %123 ; <i1> [#uses=1] | |
br i1 %128, label %bb1.i.i, label %bb3.i.i | |
bb3.i.i: ; preds = %bb1.i.i, %bb.i.i | |
%129 = phi i32 [ %iftmp.215.0.i.i.i, %bb.i.i ], [ %127, %bb1.i.i ] ; <i32> [#uses=2] | |
%130 = icmp sgt i32 %129, %p.1.2 ; <i1> [#uses=1] | |
br i1 %130, label %bb4.i.i, label %bb1.i42 | |
bb4.i.i: ; preds = %bb3.i.i | |
%131 = sext i32 %129 to i64 ; <i64> [#uses=1] | |
%132 = invoke i8* @_Znam(i64 %131) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=4] | |
.noexc: ; preds = %bb4.i.i | |
%133 = icmp sgt i32 %p.1.2, 0 ; <i1> [#uses=1] | |
br i1 %133, label %bb5.i.i, label %bb1.i42 | |
bb5.i.i: ; preds = %.noexc | |
%134 = sext i32 %p.1.2 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %132, i8* %p.0.1, i64 %134, i32 1) | |
%135 = icmp eq i8* %p.0.1, null ; <i1> [#uses=1] | |
br i1 %135, label %bb1.i42, label %bb6.i.i | |
bb6.i.i: ; preds = %bb5.i.i | |
tail call void @_ZdaPv(i8* %p.0.1) nounwind | |
br label %bb1.i42 | |
bb1.i42: ; preds = %bb6.i.i, %bb5.i.i, %.noexc, %bb3.i.i, %bb2.preheader.i.i, %bb17 | |
%p.0.10 = phi i8* [ %p.0.1, %bb3.i.i ], [ %p.0.1, %bb2.preheader.i.i ], [ %p.0.1, %bb17 ], [ %132, %bb6.i.i ], [ %132, %bb5.i.i ], [ %132, %.noexc ] ; <i8*> [#uses=6] | |
%136 = sext i32 %p.2.0 to i64 ; <i64> [#uses=1] | |
%137 = getelementptr inbounds i8* %p.0.10, i64 %136 ; <i8*> [#uses=2] | |
%138 = icmp eq i8* %137, null ; <i1> [#uses=1] | |
br i1 %138, label %invcont18, label %bb2.i | |
bb2.i: ; preds = %bb1.i42 | |
store i8 0, i8* %137, align 1 | |
br label %invcont18 | |
invcont18: ; preds = %bb2.i, %bb1.i42 | |
%139 = tail call i64 @strlen(i8* %p.0.10) nounwind readonly ; <i64> [#uses=2] | |
%140 = add i64 %139, 1 ; <i64> [#uses=2] | |
%141 = invoke i8* @_Znam(i64 %140) | |
to label %bb23 unwind label %lpad ; <i8*> [#uses=3] | |
invcont21: ; preds = %bb1.i, %lpad | |
tail call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
bb23: ; preds = %invcont18 | |
%142 = tail call i8* @strncpy(i8* noalias %141, i8* noalias %p.0.10, i64 %140) nounwind ; <i8*> [#uses=0] | |
%143 = getelementptr inbounds i8* %141, i64 %139 ; <i8*> [#uses=1] | |
store i8 0, i8* %143, align 1 | |
store i8* %141, i8** @commandret, align 8 | |
%144 = icmp eq i8* %p.0.10, null ; <i1> [#uses=1] | |
br i1 %144, label %_ZN6vectorIcED1Ev.exit41, label %bb1.i39 | |
bb1.i39: ; preds = %bb23 | |
tail call void @_ZdaPv(i8* %p.0.10) nounwind | |
ret void | |
_ZN6vectorIcED1Ev.exit41: ; preds = %bb23 | |
ret void | |
lpad: ; preds = %invcont18, %bb4.i.i, %bb4.i.i51, %bb4.i.i.i, %bb4.i.i72, %bb4.i.i91, %bb4.i.i.i110 | |
%p.0.2 = phi i8* [ %p.0.10, %invcont18 ], [ %p.0.1, %bb4.i.i ], [ %p.0.1, %bb4.i.i.i110 ], [ %p.0.0, %bb4.i.i91 ], [ %p.0.4, %bb4.i.i72 ], [ %p.0.6, %bb4.i.i.i ], [ %p.0.7, %bb4.i.i51 ] ; <i8*> [#uses=2] | |
%eh_ptr = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select25 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
%145 = icmp eq i8* %p.0.2, null ; <i1> [#uses=1] | |
br i1 %145, label %invcont21, label %bb1.i | |
bb1.i: ; preds = %lpad | |
tail call void @_ZdaPv(i8* %p.0.2) nounwind | |
br label %invcont21 | |
} | |
define void @_ZN7_stdcmdILi971EE3runEPc(i8* %s) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i64 @strspn(i8* %s, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%2 = getelementptr inbounds i8* %s, i64 %1 ; <i8*> [#uses=2] | |
%3 = load i8* %2, align 1 ; <i8> [#uses=2] | |
%4 = icmp eq i8 %3, 0 ; <i1> [#uses=1] | |
br i1 %4, label %_Z7listlenPKc.exit, label %bb.i | |
bb.i: ; preds = %bb3.i, %entry | |
%5 = phi i8 [ %16, %bb3.i ], [ %3, %entry ] ; <i8> [#uses=1] | |
%s_addr.19.i = phi i8* [ %15, %bb3.i ], [ %2, %entry ] ; <i8*> [#uses=5] | |
%n.08.i = phi i32 [ %tmp.i, %bb3.i ], [ 0, %entry ] ; <i32> [#uses=1] | |
%tmp.i = add i32 %n.08.i, 1 ; <i32> [#uses=2] | |
%6 = icmp eq i8 %5, 34 ; <i1> [#uses=1] | |
br i1 %6, label %bb1.i, label %bb2.i | |
bb1.i: ; preds = %bb.i | |
%7 = getelementptr inbounds i8* %s_addr.19.i, i64 1 ; <i8*> [#uses=1] | |
%8 = call i64 @strcspn(i8* %7, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum.i = add i64 %8, 1 ; <i64> [#uses=2] | |
%9 = getelementptr inbounds i8* %s_addr.19.i, i64 %.sum.i ; <i8*> [#uses=1] | |
%10 = load i8* %9, align 1 ; <i8> [#uses=1] | |
%11 = icmp eq i8 %10, 34 ; <i1> [#uses=1] | |
%12 = zext i1 %11 to i64 ; <i64> [#uses=1] | |
%.sum7.i = add i64 %12, %.sum.i ; <i64> [#uses=1] | |
br label %bb3.i | |
bb2.i: ; preds = %bb.i | |
%13 = call i64 @strcspn(i8* %s_addr.19.i, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %bb1.i | |
%.sum7.pn.i = phi i64 [ %.sum7.i, %bb1.i ], [ %13, %bb2.i ] ; <i64> [#uses=2] | |
%s_addr.0.i = getelementptr inbounds i8* %s_addr.19.i, i64 %.sum7.pn.i ; <i8*> [#uses=1] | |
%14 = call i64 @strspn(i8* %s_addr.0.i, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum.i = add i64 %14, %.sum7.pn.i ; <i64> [#uses=1] | |
%15 = getelementptr inbounds i8* %s_addr.19.i, i64 %s_addr.0.sum.i ; <i8*> [#uses=2] | |
%16 = load i8* %15, align 1 ; <i8> [#uses=2] | |
%17 = icmp eq i8 %16, 0 ; <i1> [#uses=1] | |
br i1 %17, label %_Z7listlenPKc.exit, label %bb.i | |
_Z7listlenPKc.exit: ; preds = %bb3.i, %entry | |
%n.0.lcssa.i = phi i32 [ 0, %entry ], [ %tmp.i, %bb3.i ] ; <i32> [#uses=1] | |
%18 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%19 = add nsw i32 %18, 1 ; <i32> [#uses=1] | |
%20 = srem i32 %19, 3 ; <i32> [#uses=2] | |
store i32 %20, i32* @_ZL6retidx, align 4 | |
%21 = sext i32 %20 to i64 ; <i64> [#uses=1] | |
%22 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %21, i64 0 ; <i8*> [#uses=1] | |
%23 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %22, i8** %23, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %n.0.lcssa.i) nounwind | |
%24 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%25 = sext i32 %24 to i64 ; <i64> [#uses=1] | |
%26 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %25, i64 0 ; <i8*> [#uses=2] | |
%27 = call i64 @strlen(i8* %26) nounwind readonly ; <i64> [#uses=2] | |
%28 = add i64 %27, 1 ; <i64> [#uses=2] | |
%29 = call i8* @_Znam(i64 %28) ; <i8*> [#uses=3] | |
%30 = call i8* @strncpy(i8* noalias %29, i8* noalias %26, i64 %28) nounwind ; <i8*> [#uses=0] | |
%31 = getelementptr inbounds i8* %29, i64 %27 ; <i8*> [#uses=1] | |
store i8 0, i8* %31, align 1 | |
store i8* %29, i8** @commandret, align 8 | |
ret void | |
} | |
define i8* @_Z9indexlistPKci(i8* %s, i32 %pos) { | |
entry: | |
%0 = tail call i64 @strspn(i8* %s, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%1 = getelementptr inbounds i8* %s, i64 %0 ; <i8*> [#uses=1] | |
br label %bb5 | |
bb: ; preds = %bb5 | |
%2 = icmp eq i8 %17, 34 ; <i1> [#uses=1] | |
br i1 %2, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%3 = getelementptr inbounds i8* %s_addr.1, i64 1 ; <i8*> [#uses=1] | |
%4 = tail call i64 @strcspn(i8* %3, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum16 = add i64 %4, 1 ; <i64> [#uses=2] | |
%5 = getelementptr inbounds i8* %s_addr.1, i64 %.sum16 ; <i8*> [#uses=1] | |
%6 = load i8* %5, align 1 ; <i8> [#uses=1] | |
%7 = icmp eq i8 %6, 34 ; <i1> [#uses=1] | |
%8 = zext i1 %7 to i64 ; <i64> [#uses=1] | |
%.sum17 = add i64 %8, %.sum16 ; <i64> [#uses=1] | |
br label %bb3 | |
bb2: ; preds = %bb | |
%9 = tail call i64 @strcspn(i8* %s_addr.1, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%.sum17.pn = phi i64 [ %.sum17, %bb1 ], [ %9, %bb2 ] ; <i64> [#uses=2] | |
%s_addr.0 = getelementptr inbounds i8* %s_addr.1, i64 %.sum17.pn ; <i8*> [#uses=1] | |
%10 = tail call i64 @strspn(i8* %s_addr.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum = add i64 %10, %.sum17.pn ; <i64> [#uses=1] | |
%11 = getelementptr inbounds i8* %s_addr.1, i64 %s_addr.0.sum ; <i8*> [#uses=3] | |
%12 = load i8* %11, align 1 ; <i8> [#uses=2] | |
%13 = icmp eq i8 %12, 0 ; <i1> [#uses=1] | |
br i1 %13, label %bb6, label %bb4 | |
bb4: ; preds = %bb3 | |
%14 = add nsw i32 %15, 1 ; <i32> [#uses=1] | |
br label %bb5 | |
bb5: ; preds = %bb4, %entry | |
%15 = phi i32 [ 0, %entry ], [ %14, %bb4 ] ; <i32> [#uses=2] | |
%s_addr.1 = phi i8* [ %1, %entry ], [ %11, %bb4 ] ; <i8*> [#uses=7] | |
%16 = icmp slt i32 %15, %pos ; <i1> [#uses=1] | |
%17 = load i8* %s_addr.1, align 1 ; <i8> [#uses=2] | |
br i1 %16, label %bb, label %bb6 | |
bb6: ; preds = %bb5, %bb3 | |
%18 = phi i8 [ %12, %bb3 ], [ %17, %bb5 ] ; <i8> [#uses=1] | |
%s_addr.2 = phi i8* [ %11, %bb3 ], [ %s_addr.1, %bb5 ] ; <i8*> [#uses=7] | |
%19 = icmp eq i8 %18, 34 ; <i1> [#uses=2] | |
br i1 %19, label %bb7, label %bb8 | |
bb7: ; preds = %bb6 | |
%20 = getelementptr inbounds i8* %s_addr.2, i64 1 ; <i8*> [#uses=1] | |
%21 = tail call i64 @strcspn(i8* %20, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %21, 1 ; <i64> [#uses=2] | |
%22 = getelementptr inbounds i8* %s_addr.2, i64 %.sum ; <i8*> [#uses=1] | |
%23 = load i8* %22, align 1 ; <i8> [#uses=1] | |
%24 = icmp eq i8 %23, 34 ; <i1> [#uses=1] | |
%25 = zext i1 %24 to i64 ; <i64> [#uses=1] | |
%.sum14 = add i64 %25, %.sum ; <i64> [#uses=1] | |
br label %bb9 | |
bb8: ; preds = %bb6 | |
%26 = tail call i64 @strcspn(i8* %s_addr.2, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb9 | |
bb9: ; preds = %bb8, %bb7 | |
%.sum14.pn = phi i64 [ %.sum14, %bb7 ], [ %26, %bb8 ] ; <i64> [#uses=2] | |
%s_addr.3 = getelementptr inbounds i8* %s_addr.2, i64 %.sum14.pn ; <i8*> [#uses=2] | |
br i1 %19, label %bb10, label %bb12 | |
bb10: ; preds = %bb9 | |
%27 = getelementptr inbounds i8* %s_addr.2, i64 1 ; <i8*> [#uses=2] | |
%s_addr.3.sum15 = add i64 %.sum14.pn, -1 ; <i64> [#uses=1] | |
%28 = getelementptr inbounds i8* %s_addr.2, i64 %s_addr.3.sum15 ; <i8*> [#uses=2] | |
%29 = load i8* %28, align 1 ; <i8> [#uses=1] | |
%30 = icmp eq i8 %29, 34 ; <i1> [#uses=1] | |
br i1 %30, label %bb11, label %bb12 | |
bb11: ; preds = %bb10 | |
br label %bb12 | |
bb12: ; preds = %bb11, %bb10, %bb9 | |
%e.0 = phi i8* [ %27, %bb11 ], [ %27, %bb10 ], [ %s_addr.2, %bb9 ] ; <i8*> [#uses=2] | |
%s_addr.4 = phi i8* [ %28, %bb11 ], [ %s_addr.3, %bb10 ], [ %s_addr.3, %bb9 ] ; <i8*> [#uses=1] | |
%31 = ptrtoint i8* %s_addr.4 to i64 ; <i64> [#uses=1] | |
%32 = ptrtoint i8* %e.0 to i64 ; <i64> [#uses=1] | |
%33 = sub nsw i64 %31, %32 ; <i64> [#uses=2] | |
%34 = add i64 %33, 1 ; <i64> [#uses=2] | |
%35 = tail call i8* @_Znam(i64 %34) ; <i8*> [#uses=3] | |
%36 = tail call i8* @strncpy(i8* noalias %35, i8* noalias %e.0, i64 %34) nounwind ; <i8*> [#uses=0] | |
%37 = getelementptr inbounds i8* %35, i64 %33 ; <i8*> [#uses=1] | |
store i8 0, i8* %37, align 1 | |
ret i8* %35 | |
} | |
define void @_Z2atPcPi(i8* %s, i32* nocapture %pos) { | |
entry: | |
%0 = load i32* %pos, align 4 ; <i32> [#uses=1] | |
%1 = tail call i8* @_Z9indexlistPKci(i8* %s, i32 %0) ; <i8*> [#uses=1] | |
store i8* %1, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z11explodelistPKcR6vectorIPcE(i8* %s, %"struct.vector<char*>"* nocapture %elems) { | |
entry: | |
%0 = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%1 = call i64 @strspn(i8* %s, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%2 = getelementptr inbounds i8* %s, i64 %1 ; <i8*> [#uses=2] | |
%3 = load i8* %2, align 1 ; <i8> [#uses=2] | |
%4 = icmp eq i8 %3, 0 ; <i1> [#uses=1] | |
br i1 %4, label %return, label %bb | |
bb: ; preds = %bb9, %entry | |
%5 = phi i8 [ %30, %bb9 ], [ %3, %entry ] ; <i8> [#uses=1] | |
%s_addr.114 = phi i8* [ %29, %bb9 ], [ %2, %entry ] ; <i8*> [#uses=8] | |
%6 = icmp eq i8 %5, 34 ; <i1> [#uses=2] | |
br i1 %6, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%7 = getelementptr inbounds i8* %s_addr.114, i64 1 ; <i8*> [#uses=1] | |
%8 = call i64 @strcspn(i8* %7, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %8, 1 ; <i64> [#uses=2] | |
%9 = getelementptr inbounds i8* %s_addr.114, i64 %.sum ; <i8*> [#uses=1] | |
%10 = load i8* %9, align 1 ; <i8> [#uses=1] | |
%11 = icmp eq i8 %10, 34 ; <i1> [#uses=1] | |
%12 = zext i1 %11 to i64 ; <i64> [#uses=1] | |
%.sum12 = add i64 %12, %.sum ; <i64> [#uses=1] | |
br label %bb3 | |
bb2: ; preds = %bb | |
%13 = call i64 @strcspn(i8* %s_addr.114, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%.sum12.pn = phi i64 [ %.sum12, %bb1 ], [ %13, %bb2 ] ; <i64> [#uses=6] | |
%s_addr.0 = getelementptr inbounds i8* %s_addr.114, i64 %.sum12.pn ; <i8*> [#uses=1] | |
br i1 %6, label %bb4, label %bb8 | |
bb4: ; preds = %bb3 | |
%s_addr.0.sum13 = add i64 %.sum12.pn, -1 ; <i64> [#uses=1] | |
%14 = getelementptr inbounds i8* %s_addr.114, i64 %s_addr.0.sum13 ; <i8*> [#uses=1] | |
%15 = load i8* %14, align 1 ; <i8> [#uses=1] | |
%16 = icmp eq i8 %15, 34 ; <i1> [#uses=1] | |
%iftmp.159.0 = select i1 %16, i64 2, i64 1 ; <i64> [#uses=1] | |
%17 = sub nsw i64 %.sum12.pn, %iftmp.159.0 ; <i64> [#uses=2] | |
%18 = getelementptr inbounds i8* %s_addr.114, i64 1 ; <i8*> [#uses=1] | |
%19 = add i64 %17, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %18, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %17 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
br label %bb9 | |
bb8: ; preds = %bb3 | |
%23 = add i64 %.sum12.pn, 1 ; <i64> [#uses=2] | |
%24 = call i8* @_Znam(i64 %23) ; <i8*> [#uses=3] | |
%25 = call i8* @strncpy(i8* noalias %24, i8* noalias %s_addr.114, i64 %23) nounwind ; <i8*> [#uses=0] | |
%26 = getelementptr inbounds i8* %24, i64 %.sum12.pn ; <i8*> [#uses=1] | |
store i8 0, i8* %26, align 1 | |
br label %bb9 | |
bb9: ; preds = %bb8, %bb4 | |
%iftmp.156.0 = phi i8* [ %20, %bb4 ], [ %24, %bb8 ] ; <i8*> [#uses=1] | |
store i8* %iftmp.156.0, i8** %0, align 8 | |
%27 = call i8** @_ZN6vectorIPcE3addERKS0_(%"struct.vector<char*>"* %elems, i8** %0) ; <i8**> [#uses=0] | |
%28 = call i64 @strspn(i8* %s_addr.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum = add i64 %28, %.sum12.pn ; <i64> [#uses=1] | |
%29 = getelementptr inbounds i8* %s_addr.114, i64 %s_addr.0.sum ; <i8*> [#uses=2] | |
%30 = load i8* %29, align 1 ; <i8> [#uses=2] | |
%31 = icmp eq i8 %30, 0 ; <i1> [#uses=1] | |
br i1 %31, label %return, label %bb | |
return: ; preds = %bb9, %entry | |
ret void | |
} | |
define i32 @_Z12listincludesPKcS0_i(i8* %list, i8* nocapture %needle, i32 %needlelen) nounwind readonly { | |
entry: | |
%0 = tail call i64 @strspn(i8* %list, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%1 = getelementptr inbounds i8* %list, i64 %0 ; <i8*> [#uses=1] | |
br label %bb12 | |
bb: ; preds = %bb12 | |
%2 = icmp eq i8 %24, 34 ; <i1> [#uses=2] | |
br i1 %2, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%3 = getelementptr inbounds i8* %s.1, i64 1 ; <i8*> [#uses=1] | |
%4 = tail call i64 @strcspn(i8* %3, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %4, 1 ; <i64> [#uses=2] | |
%5 = getelementptr inbounds i8* %s.1, i64 %.sum ; <i8*> [#uses=1] | |
%6 = load i8* %5, align 1 ; <i8> [#uses=1] | |
%7 = icmp eq i8 %6, 34 ; <i1> [#uses=1] | |
%8 = zext i1 %7 to i64 ; <i64> [#uses=1] | |
%.sum16 = add i64 %8, %.sum ; <i64> [#uses=1] | |
br label %bb3 | |
bb2: ; preds = %bb | |
%9 = tail call i64 @strcspn(i8* %s.1, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%.sum16.pn = phi i64 [ %.sum16, %bb1 ], [ %9, %bb2 ] ; <i64> [#uses=4] | |
%s.0 = getelementptr inbounds i8* %s.1, i64 %.sum16.pn ; <i8*> [#uses=1] | |
%10 = trunc i64 %.sum16.pn to i32 ; <i32> [#uses=2] | |
br i1 %2, label %bb4, label %bb8 | |
bb4: ; preds = %bb3 | |
%11 = getelementptr inbounds i8* %s.1, i64 1 ; <i8*> [#uses=1] | |
%s.0.sum17 = add i64 %.sum16.pn, -1 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds i8* %s.1, i64 %s.0.sum17 ; <i8*> [#uses=1] | |
%13 = load i8* %12, align 1 ; <i8> [#uses=1] | |
%14 = icmp eq i8 %13, 34 ; <i1> [#uses=1] | |
%iftmp.174.0 = select i1 %14, i32 2, i32 1 ; <i32> [#uses=1] | |
%15 = sub nsw i32 %10, %iftmp.174.0 ; <i32> [#uses=1] | |
br label %bb8 | |
bb8: ; preds = %bb4, %bb3 | |
%elem.0 = phi i8* [ %11, %bb4 ], [ %s.1, %bb3 ] ; <i8*> [#uses=1] | |
%len.0 = phi i32 [ %15, %bb4 ], [ %10, %bb3 ] ; <i32> [#uses=2] | |
%16 = icmp eq i32 %len.0, %needlelen ; <i1> [#uses=1] | |
br i1 %16, label %bb9, label %bb11 | |
bb9: ; preds = %bb8 | |
%17 = sext i32 %len.0 to i64 ; <i64> [#uses=1] | |
%18 = tail call i32 @strncmp(i8* %needle, i8* %elem.0, i64 %17) nounwind readonly ; <i32> [#uses=1] | |
%19 = icmp eq i32 %18, 0 ; <i1> [#uses=1] | |
br i1 %19, label %bb14, label %bb11 | |
bb11: ; preds = %bb9, %bb8 | |
%20 = tail call i64 @strspn(i8* %s.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s.0.sum = add i64 %20, %.sum16.pn ; <i64> [#uses=1] | |
%21 = getelementptr inbounds i8* %s.1, i64 %s.0.sum ; <i8*> [#uses=1] | |
%22 = add nsw i32 %23, 1 ; <i32> [#uses=1] | |
br label %bb12 | |
bb12: ; preds = %bb11, %entry | |
%s.1 = phi i8* [ %1, %entry ], [ %21, %bb11 ] ; <i8*> [#uses=9] | |
%23 = phi i32 [ 0, %entry ], [ %22, %bb11 ] ; <i32> [#uses=2] | |
%24 = load i8* %s.1, align 1 ; <i8> [#uses=2] | |
%25 = icmp eq i8 %24, 0 ; <i1> [#uses=1] | |
br i1 %25, label %bb14, label %bb | |
bb14: ; preds = %bb12, %bb9 | |
%.0 = phi i32 [ %23, %bb9 ], [ -1, %bb12 ] ; <i32> [#uses=1] | |
ret i32 %.0 | |
} | |
declare i32 @strncmp(i8* nocapture, i8* nocapture, i64) nounwind readonly | |
define void @_ZN7_stdcmdILi1069EE3runEPcS1_(i8* %list, i8* nocapture %elem) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = call i64 @strlen(i8* %elem) nounwind readonly ; <i64> [#uses=1] | |
%2 = trunc i64 %1 to i32 ; <i32> [#uses=1] | |
%3 = call i32 @_Z12listincludesPKcS0_i(i8* %list, i8* %elem, i32 %2) nounwind ; <i32> [#uses=1] | |
%4 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%5 = add nsw i32 %4, 1 ; <i32> [#uses=1] | |
%6 = srem i32 %5, 3 ; <i32> [#uses=2] | |
store i32 %6, i32* @_ZL6retidx, align 4 | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %7, i64 0 ; <i8*> [#uses=1] | |
%9 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %8, i8** %9, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %3) nounwind | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = sext i32 %10 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %11, i64 0 ; <i8*> [#uses=2] | |
%13 = call i64 @strlen(i8* %12) nounwind readonly ; <i64> [#uses=2] | |
%14 = add i64 %13, 1 ; <i64> [#uses=2] | |
%15 = call i8* @_Znam(i64 %14) ; <i8*> [#uses=3] | |
%16 = call i8* @strncpy(i8* noalias %15, i8* noalias %12, i64 %14) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 %13 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
store i8* %15, i8** @commandret, align 8 | |
ret void | |
} | |
define i8* @_Z7listdelPKcS0_(i8* %s, i8* %del) { | |
entry: | |
%0 = tail call i64 @strspn(i8* %s, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%1 = getelementptr inbounds i8* %s, i64 %0 ; <i8*> [#uses=1] | |
br label %bb17 | |
bb: ; preds = %bb17 | |
%2 = icmp eq i8 %53, 34 ; <i1> [#uses=2] | |
br i1 %2, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%3 = getelementptr inbounds i8* %s_addr.1, i64 1 ; <i8*> [#uses=1] | |
%4 = tail call i64 @strcspn(i8* %3, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %4, 1 ; <i64> [#uses=2] | |
%5 = getelementptr inbounds i8* %s_addr.1, i64 %.sum ; <i8*> [#uses=1] | |
%6 = load i8* %5, align 1 ; <i8> [#uses=1] | |
%7 = icmp eq i8 %6, 34 ; <i1> [#uses=1] | |
%8 = zext i1 %7 to i64 ; <i64> [#uses=1] | |
%.sum33 = add i64 %8, %.sum ; <i64> [#uses=1] | |
br label %bb3 | |
bb2: ; preds = %bb | |
%9 = tail call i64 @strcspn(i8* %s_addr.1, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %bb1 | |
%.sum33.pn = phi i64 [ %.sum33, %bb1 ], [ %9, %bb2 ] ; <i64> [#uses=4] | |
%s_addr.0 = getelementptr inbounds i8* %s_addr.1, i64 %.sum33.pn ; <i8*> [#uses=1] | |
%10 = trunc i64 %.sum33.pn to i32 ; <i32> [#uses=2] | |
br i1 %2, label %bb4, label %bb8 | |
bb4: ; preds = %bb3 | |
%11 = getelementptr inbounds i8* %s_addr.1, i64 1 ; <i8*> [#uses=1] | |
%s_addr.0.sum34 = add i64 %.sum33.pn, -1 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds i8* %s_addr.1, i64 %s_addr.0.sum34 ; <i8*> [#uses=1] | |
%13 = load i8* %12, align 1 ; <i8> [#uses=1] | |
%14 = icmp eq i8 %13, 34 ; <i1> [#uses=1] | |
%iftmp.177.0 = select i1 %14, i32 2, i32 1 ; <i32> [#uses=1] | |
%15 = sub nsw i32 %10, %iftmp.177.0 ; <i32> [#uses=1] | |
br label %bb8 | |
bb8: ; preds = %bb4, %bb3 | |
%elem.0 = phi i8* [ %11, %bb4 ], [ %s_addr.1, %bb3 ] ; <i8*> [#uses=2] | |
%len.0 = phi i32 [ %15, %bb4 ], [ %10, %bb3 ] ; <i32> [#uses=3] | |
%16 = tail call i32 @_Z12listincludesPKcS0_i(i8* %del, i8* %elem.0, i32 %len.0) nounwind ; <i32> [#uses=1] | |
%toBool = icmp slt i32 %16, 0 ; <i1> [#uses=1] | |
br i1 %toBool, label %bb9, label %bb16 | |
bb9: ; preds = %bb8 | |
%17 = icmp eq i32 %p.2.3, 0 ; <i1> [#uses=1] | |
br i1 %17, label %bb14, label %bb13 | |
bb13: ; preds = %bb9 | |
%18 = icmp eq i32 %p.2.3, %p.1.4 ; <i1> [#uses=1] | |
br i1 %18, label %bb.i47, label %bb1.i60 | |
bb.i47: ; preds = %bb13 | |
%19 = add nsw i32 %p.2.3, 1 ; <i32> [#uses=4] | |
%20 = icmp eq i32 %p.1.4, 0 ; <i1> [#uses=1] | |
br i1 %20, label %bb.i.i50, label %bb2.preheader.i.i48 | |
bb2.preheader.i.i48: ; preds = %bb.i47 | |
%21 = icmp slt i32 %p.1.4, %19 ; <i1> [#uses=1] | |
br i1 %21, label %bb1.i.i52, label %bb1.i60 | |
bb.i.i50: ; preds = %bb.i47 | |
%22 = icmp slt i32 %19, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i49 = select i1 %22, i32 8, i32 %19 ; <i32> [#uses=1] | |
br label %bb3.i.i54 | |
bb1.i.i52: ; preds = %bb1.i.i52, %bb2.preheader.i.i48 | |
%.tmp.0.i.i51 = phi i32 [ %23, %bb1.i.i52 ], [ %p.1.4, %bb2.preheader.i.i48 ] ; <i32> [#uses=1] | |
%23 = shl i32 %.tmp.0.i.i51, 1 ; <i32> [#uses=3] | |
%24 = icmp slt i32 %23, %19 ; <i1> [#uses=1] | |
br i1 %24, label %bb1.i.i52, label %bb3.i.i54 | |
bb3.i.i54: ; preds = %bb1.i.i52, %bb.i.i50 | |
%p.1.0 = phi i32 [ %iftmp.215.0.i.i.i49, %bb.i.i50 ], [ %23, %bb1.i.i52 ] ; <i32> [#uses=6] | |
%25 = icmp sgt i32 %p.1.0, %p.1.4 ; <i1> [#uses=1] | |
br i1 %25, label %bb4.i.i55, label %bb1.i60 | |
bb4.i.i55: ; preds = %bb3.i.i54 | |
%26 = sext i32 %p.1.0 to i64 ; <i64> [#uses=1] | |
%27 = invoke i8* @_Znam(i64 %26) | |
to label %.noexc64 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc64: ; preds = %bb4.i.i55 | |
%28 = icmp sgt i32 %p.1.4, 0 ; <i1> [#uses=1] | |
br i1 %28, label %bb5.i.i56, label %bb1.i60 | |
bb5.i.i56: ; preds = %.noexc64 | |
%29 = sext i32 %p.1.4 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %27, i8* %p.0.4, i64 %29, i32 1) | |
%30 = icmp eq i8* %p.0.4, null ; <i1> [#uses=1] | |
br i1 %30, label %bb1.i60, label %bb6.i.i57 | |
bb6.i.i57: ; preds = %bb5.i.i56 | |
tail call void @_ZdaPv(i8* %p.0.4) nounwind | |
br label %bb1.i60 | |
bb1.i60: ; preds = %bb6.i.i57, %bb5.i.i56, %.noexc64, %bb3.i.i54, %bb2.preheader.i.i48, %bb13 | |
%p.1.1 = phi i32 [ %p.1.0, %bb3.i.i54 ], [ %p.1.4, %bb2.preheader.i.i48 ], [ %p.1.4, %bb13 ], [ %p.1.0, %bb6.i.i57 ], [ %p.1.0, %bb5.i.i56 ], [ %p.1.0, %.noexc64 ] ; <i32> [#uses=1] | |
%p.0.0 = phi i8* [ %p.0.4, %bb3.i.i54 ], [ %p.0.4, %bb2.preheader.i.i48 ], [ %p.0.4, %bb13 ], [ %27, %bb6.i.i57 ], [ %27, %bb5.i.i56 ], [ %27, %.noexc64 ] ; <i8*> [#uses=2] | |
%31 = sext i32 %p.2.3 to i64 ; <i64> [#uses=1] | |
%32 = getelementptr inbounds i8* %p.0.0, i64 %31 ; <i8*> [#uses=2] | |
%33 = icmp eq i8* %32, null ; <i1> [#uses=1] | |
br i1 %33, label %_ZN6vectorIcE3addERKc.exit65, label %bb2.i63 | |
bb2.i63: ; preds = %bb1.i60 | |
store i8 32, i8* %32, align 1 | |
br label %_ZN6vectorIcE3addERKc.exit65 | |
_ZN6vectorIcE3addERKc.exit65: ; preds = %bb2.i63, %bb1.i60 | |
%34 = add nsw i32 %p.2.3, 1 ; <i32> [#uses=1] | |
br label %bb14 | |
bb14: ; preds = %_ZN6vectorIcE3addERKc.exit65, %bb9 | |
%p.2.0 = phi i32 [ %34, %_ZN6vectorIcE3addERKc.exit65 ], [ %p.2.3, %bb9 ] ; <i32> [#uses=2] | |
%p.1.2 = phi i32 [ %p.1.1, %_ZN6vectorIcE3addERKc.exit65 ], [ %p.1.4, %bb9 ] ; <i32> [#uses=9] | |
%p.0.1 = phi i8* [ %p.0.0, %_ZN6vectorIcE3addERKc.exit65 ], [ %p.0.4, %bb9 ] ; <i8*> [#uses=7] | |
%35 = add nsw i32 %p.2.0, %len.0 ; <i32> [#uses=6] | |
%36 = icmp sgt i32 %35, %p.1.2 ; <i1> [#uses=1] | |
br i1 %36, label %bb.i.i45, label %_ZN6vectorIcE3putEPKci.exit | |
bb.i.i45: ; preds = %bb14 | |
%37 = icmp eq i32 %p.1.2, 0 ; <i1> [#uses=1] | |
br i1 %37, label %bb.i.i.i, label %bb2.preheader.i.i.i | |
bb2.preheader.i.i.i: ; preds = %bb.i.i45 | |
%38 = icmp slt i32 %p.1.2, %35 ; <i1> [#uses=1] | |
br i1 %38, label %bb1.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb.i.i.i: ; preds = %bb.i.i45 | |
%39 = icmp slt i32 %35, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i.i = select i1 %39, i32 8, i32 %35 ; <i32> [#uses=1] | |
br label %bb3.i.i.i | |
bb1.i.i.i: ; preds = %bb1.i.i.i, %bb2.preheader.i.i.i | |
%.tmp.0.i.i.i = phi i32 [ %40, %bb1.i.i.i ], [ %p.1.2, %bb2.preheader.i.i.i ] ; <i32> [#uses=1] | |
%40 = shl i32 %.tmp.0.i.i.i, 1 ; <i32> [#uses=3] | |
%41 = icmp slt i32 %40, %35 ; <i1> [#uses=1] | |
br i1 %41, label %bb1.i.i.i, label %bb3.i.i.i | |
bb3.i.i.i: ; preds = %bb1.i.i.i, %bb.i.i.i | |
%p.1.5 = phi i32 [ %iftmp.215.0.i.i.i.i, %bb.i.i.i ], [ %40, %bb1.i.i.i ] ; <i32> [#uses=6] | |
%42 = icmp sgt i32 %p.1.5, %p.1.2 ; <i1> [#uses=1] | |
br i1 %42, label %bb4.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb4.i.i.i: ; preds = %bb3.i.i.i | |
%43 = sext i32 %p.1.5 to i64 ; <i64> [#uses=1] | |
%44 = invoke i8* @_Znam(i64 %43) | |
to label %.noexc46 unwind label %lpad ; <i8*> [#uses=4] | |
.noexc46: ; preds = %bb4.i.i.i | |
%45 = icmp sgt i32 %p.1.2, 0 ; <i1> [#uses=1] | |
br i1 %45, label %bb5.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb5.i.i.i: ; preds = %.noexc46 | |
%46 = sext i32 %p.1.2 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %44, i8* %p.0.1, i64 %46, i32 1) | |
%47 = icmp eq i8* %p.0.1, null ; <i1> [#uses=1] | |
br i1 %47, label %_ZN6vectorIcE3putEPKci.exit, label %bb6.i.i.i | |
bb6.i.i.i: ; preds = %bb5.i.i.i | |
tail call void @_ZdaPv(i8* %p.0.1) nounwind | |
br label %_ZN6vectorIcE3putEPKci.exit | |
_ZN6vectorIcE3putEPKci.exit: ; preds = %bb6.i.i.i, %bb5.i.i.i, %.noexc46, %bb3.i.i.i, %bb2.preheader.i.i.i, %bb14 | |
%p.1.6 = phi i32 [ %p.1.5, %bb3.i.i.i ], [ %p.1.2, %bb2.preheader.i.i.i ], [ %p.1.2, %bb14 ], [ %p.1.5, %bb6.i.i.i ], [ %p.1.5, %bb5.i.i.i ], [ %p.1.5, %.noexc46 ] ; <i32> [#uses=1] | |
%p.0.5 = phi i8* [ %p.0.1, %bb3.i.i.i ], [ %p.0.1, %bb2.preheader.i.i.i ], [ %p.0.1, %bb14 ], [ %44, %bb6.i.i.i ], [ %44, %bb5.i.i.i ], [ %44, %.noexc46 ] ; <i8*> [#uses=2] | |
%48 = sext i32 %p.2.0 to i64 ; <i64> [#uses=1] | |
%49 = getelementptr inbounds i8* %p.0.5, i64 %48 ; <i8*> [#uses=1] | |
%50 = sext i32 %len.0 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %49, i8* %elem.0, i64 %50, i32 1) nounwind | |
br label %bb16 | |
bb16: ; preds = %_ZN6vectorIcE3putEPKci.exit, %bb8 | |
%p.2.1 = phi i32 [ %35, %_ZN6vectorIcE3putEPKci.exit ], [ %p.2.3, %bb8 ] ; <i32> [#uses=1] | |
%p.1.3 = phi i32 [ %p.1.6, %_ZN6vectorIcE3putEPKci.exit ], [ %p.1.4, %bb8 ] ; <i32> [#uses=1] | |
%p.0.2 = phi i8* [ %p.0.5, %_ZN6vectorIcE3putEPKci.exit ], [ %p.0.4, %bb8 ] ; <i8*> [#uses=1] | |
%51 = tail call i64 @strspn(i8* %s_addr.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%s_addr.0.sum = add i64 %51, %.sum33.pn ; <i64> [#uses=1] | |
%52 = getelementptr inbounds i8* %s_addr.1, i64 %s_addr.0.sum ; <i8*> [#uses=1] | |
br label %bb17 | |
bb17: ; preds = %bb16, %entry | |
%p.2.3 = phi i32 [ 0, %entry ], [ %p.2.1, %bb16 ] ; <i32> [#uses=10] | |
%p.1.4 = phi i32 [ 0, %entry ], [ %p.1.3, %bb16 ] ; <i32> [#uses=18] | |
%p.0.4 = phi i8* [ null, %entry ], [ %p.0.2, %bb16 ] ; <i8*> [#uses=16] | |
%s_addr.1 = phi i8* [ %1, %entry ], [ %52, %bb16 ] ; <i8*> [#uses=9] | |
%53 = load i8* %s_addr.1, align 1 ; <i8> [#uses=2] | |
%54 = icmp eq i8 %53, 0 ; <i1> [#uses=1] | |
br i1 %54, label %bb18, label %bb | |
bb18: ; preds = %bb17 | |
%55 = icmp eq i32 %p.2.3, %p.1.4 ; <i1> [#uses=1] | |
br i1 %55, label %bb.i, label %bb1.i44 | |
bb.i: ; preds = %bb18 | |
%56 = add nsw i32 %p.2.3, 1 ; <i32> [#uses=4] | |
%57 = icmp eq i32 %p.1.4, 0 ; <i1> [#uses=1] | |
br i1 %57, label %bb.i.i, label %bb2.preheader.i.i | |
bb2.preheader.i.i: ; preds = %bb.i | |
%58 = icmp slt i32 %p.1.4, %56 ; <i1> [#uses=1] | |
br i1 %58, label %bb1.i.i, label %bb1.i44 | |
bb.i.i: ; preds = %bb.i | |
%59 = icmp slt i32 %56, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i = select i1 %59, i32 8, i32 %56 ; <i32> [#uses=1] | |
br label %bb3.i.i | |
bb1.i.i: ; preds = %bb1.i.i, %bb2.preheader.i.i | |
%.tmp.0.i.i = phi i32 [ %60, %bb1.i.i ], [ %p.1.4, %bb2.preheader.i.i ] ; <i32> [#uses=1] | |
%60 = shl i32 %.tmp.0.i.i, 1 ; <i32> [#uses=3] | |
%61 = icmp slt i32 %60, %56 ; <i1> [#uses=1] | |
br i1 %61, label %bb1.i.i, label %bb3.i.i | |
bb3.i.i: ; preds = %bb1.i.i, %bb.i.i | |
%62 = phi i32 [ %iftmp.215.0.i.i.i, %bb.i.i ], [ %60, %bb1.i.i ] ; <i32> [#uses=2] | |
%63 = icmp sgt i32 %62, %p.1.4 ; <i1> [#uses=1] | |
br i1 %63, label %bb4.i.i, label %bb1.i44 | |
bb4.i.i: ; preds = %bb3.i.i | |
%64 = sext i32 %62 to i64 ; <i64> [#uses=1] | |
%65 = invoke i8* @_Znam(i64 %64) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=4] | |
.noexc: ; preds = %bb4.i.i | |
%66 = icmp sgt i32 %p.1.4, 0 ; <i1> [#uses=1] | |
br i1 %66, label %bb5.i.i, label %bb1.i44 | |
bb5.i.i: ; preds = %.noexc | |
%67 = sext i32 %p.1.4 to i64 ; <i64> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %65, i8* %p.0.4, i64 %67, i32 1) | |
%68 = icmp eq i8* %p.0.4, null ; <i1> [#uses=1] | |
br i1 %68, label %bb1.i44, label %bb6.i.i | |
bb6.i.i: ; preds = %bb5.i.i | |
tail call void @_ZdaPv(i8* %p.0.4) nounwind | |
br label %bb1.i44 | |
bb1.i44: ; preds = %bb6.i.i, %bb5.i.i, %.noexc, %bb3.i.i, %bb2.preheader.i.i, %bb18 | |
%p.0.6 = phi i8* [ %p.0.4, %bb3.i.i ], [ %p.0.4, %bb2.preheader.i.i ], [ %p.0.4, %bb18 ], [ %65, %bb6.i.i ], [ %65, %bb5.i.i ], [ %65, %.noexc ] ; <i8*> [#uses=6] | |
%69 = sext i32 %p.2.3 to i64 ; <i64> [#uses=1] | |
%70 = getelementptr inbounds i8* %p.0.6, i64 %69 ; <i8*> [#uses=2] | |
%71 = icmp eq i8* %70, null ; <i1> [#uses=1] | |
br i1 %71, label %invcont19, label %bb2.i | |
bb2.i: ; preds = %bb1.i44 | |
store i8 0, i8* %70, align 1 | |
br label %invcont19 | |
invcont19: ; preds = %bb2.i, %bb1.i44 | |
%72 = tail call i64 @strlen(i8* %p.0.6) nounwind readonly ; <i64> [#uses=2] | |
%73 = add i64 %72, 1 ; <i64> [#uses=2] | |
%74 = invoke i8* @_Znam(i64 %73) | |
to label %invcont20 unwind label %lpad ; <i8*> [#uses=4] | |
invcont20: ; preds = %invcont19 | |
%75 = tail call i8* @strncpy(i8* noalias %74, i8* noalias %p.0.6, i64 %73) nounwind ; <i8*> [#uses=0] | |
%76 = getelementptr inbounds i8* %74, i64 %72 ; <i8*> [#uses=1] | |
store i8 0, i8* %76, align 1 | |
%77 = icmp eq i8* %p.0.6, null ; <i1> [#uses=1] | |
br i1 %77, label %_ZN6vectorIcED1Ev.exit43, label %bb1.i41 | |
bb1.i41: ; preds = %invcont20 | |
tail call void @_ZdaPv(i8* %p.0.6) nounwind | |
ret i8* %74 | |
_ZN6vectorIcED1Ev.exit43: ; preds = %invcont20 | |
ret i8* %74 | |
invcont22: ; preds = %bb1.i, %lpad | |
tail call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
lpad: ; preds = %invcont19, %bb4.i.i, %bb4.i.i.i, %bb4.i.i55 | |
%p.0.3 = phi i8* [ %p.0.6, %invcont19 ], [ %p.0.4, %bb4.i.i ], [ %p.0.4, %bb4.i.i55 ], [ %p.0.1, %bb4.i.i.i ] ; <i8*> [#uses=2] | |
%eh_ptr = tail call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select26 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
%78 = icmp eq i8* %p.0.3, null ; <i1> [#uses=1] | |
br i1 %78, label %invcont22, label %bb1.i | |
bb1.i: ; preds = %lpad | |
tail call void @_ZdaPv(i8* %p.0.3) nounwind | |
br label %invcont22 | |
} | |
define void @_ZN7_stdcmdILi1068EE3runEPcS1_(i8* %list, i8* %del) align 2 { | |
entry: | |
%0 = tail call i8* @_Z7listdelPKcS0_(i8* %list, i8* %del) ; <i8*> [#uses=1] | |
store i8* %0, i8** @commandret, align 8 | |
ret void | |
} | |
define i8* @_Z4concPPcib(i8** nocapture %w, i32 %n, i8 zeroext %space) { | |
entry: | |
%toBool = icmp eq i8 %space, 0 ; <i1> [#uses=2] | |
br i1 %toBool, label %bb4.preheader, label %bb | |
bb: ; preds = %entry | |
%0 = add nsw i32 %n, -1 ; <i32> [#uses=2] | |
%1 = icmp sgt i32 %0, 0 ; <i1> [#uses=1] | |
%iftmp.215.0.i = select i1 %1, i32 %0, i32 0 ; <i32> [#uses=1] | |
br label %bb4.preheader | |
bb4.preheader: ; preds = %bb, %entry | |
%len.0.ph = phi i32 [ %iftmp.215.0.i, %bb ], [ 0, %entry ] ; <i32> [#uses=2] | |
%2 = icmp sgt i32 %n, 0 ; <i1> [#uses=1] | |
br i1 %2, label %bb.nph, label %bb5 | |
bb.nph: ; preds = %bb4.preheader | |
%tmp = zext i32 %n to i64 ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb3, %bb.nph | |
%indvar19 = phi i64 [ 0, %bb.nph ], [ %indvar.next20, %bb3 ] ; <i64> [#uses=2] | |
%len.014 = phi i32 [ %len.0.ph, %bb.nph ], [ %6, %bb3 ] ; <i32> [#uses=1] | |
%scevgep21 = getelementptr i8** %w, i64 %indvar19 ; <i8**> [#uses=1] | |
%3 = load i8** %scevgep21, align 8 ; <i8*> [#uses=1] | |
%4 = tail call i64 @strlen(i8* %3) nounwind readonly ; <i64> [#uses=1] | |
%5 = trunc i64 %4 to i32 ; <i32> [#uses=1] | |
%6 = add nsw i32 %5, %len.014 ; <i32> [#uses=2] | |
%indvar.next20 = add i64 %indvar19, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next20, %tmp ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb5, label %bb3 | |
bb5: ; preds = %bb3, %bb4.preheader | |
%len.0.lcssa = phi i32 [ %len.0.ph, %bb4.preheader ], [ %6, %bb3 ] ; <i32> [#uses=1] | |
%7 = sext i32 %len.0.lcssa to i64 ; <i64> [#uses=2] | |
%8 = add i64 %7, 1 ; <i64> [#uses=2] | |
%9 = tail call i8* @_Znam(i64 %8) ; <i8*> [#uses=7] | |
tail call void @llvm.memset.i64(i8* %9, i8 0, i64 %8, i32 1) | |
%10 = getelementptr inbounds i8* %9, i64 %7 ; <i8*> [#uses=1] | |
store i8 0, i8* %10, align 1 | |
%11 = add nsw i32 %n, -1 ; <i32> [#uses=2] | |
br i1 %toBool, label %bb11.us, label %bb11 | |
bb11.us: ; preds = %bb10.us, %bb5 | |
%indvar = phi i64 [ %indvar.next, %bb10.us ], [ 0, %bb5 ] ; <i64> [#uses=3] | |
%i.0.us = trunc i64 %indvar to i32 ; <i32> [#uses=2] | |
%12 = icmp slt i32 %i.0.us, %n ; <i1> [#uses=1] | |
br i1 %12, label %bb6.us, label %bb12 | |
bb10.us: ; preds = %bb6.us | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb11.us | |
bb6.us: ; preds = %bb11.us | |
%scevgep = getelementptr i8** %w, i64 %indvar ; <i8**> [#uses=1] | |
%13 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%14 = tail call i8* @strcat(i8* noalias %9, i8* noalias %13) nounwind ; <i8*> [#uses=0] | |
%15 = icmp eq i32 %11, %i.0.us ; <i1> [#uses=1] | |
br i1 %15, label %bb12, label %bb10.us | |
bb6: ; preds = %bb11 | |
%scevgep18 = getelementptr i8** %w, i64 %indvar16 ; <i8**> [#uses=1] | |
%16 = load i8** %scevgep18, align 8 ; <i8*> [#uses=1] | |
%17 = tail call i8* @strcat(i8* noalias %9, i8* noalias %16) nounwind ; <i8*> [#uses=0] | |
%18 = icmp eq i32 %11, %i.0 ; <i1> [#uses=1] | |
br i1 %18, label %bb12, label %bb10 | |
bb10: ; preds = %bb6 | |
%strlen = tail call i64 @strlen(i8* %9) ; <i64> [#uses=1] | |
%endptr = getelementptr i8* %9, i64 %strlen ; <i8*> [#uses=1] | |
%19 = bitcast i8* %endptr to i16* ; <i16*> [#uses=1] | |
store i16 32, i16* %19, align 1 | |
%indvar.next17 = add i64 %indvar16, 1 ; <i64> [#uses=1] | |
br label %bb11 | |
bb11: ; preds = %bb10, %bb5 | |
%indvar16 = phi i64 [ %indvar.next17, %bb10 ], [ 0, %bb5 ] ; <i64> [#uses=3] | |
%i.0 = trunc i64 %indvar16 to i32 ; <i32> [#uses=2] | |
%20 = icmp slt i32 %i.0, %n ; <i1> [#uses=1] | |
br i1 %20, label %bb6, label %bb12 | |
bb12: ; preds = %bb11, %bb6, %bb6.us, %bb11.us | |
ret i8* %9 | |
} | |
declare i8* @strcat(i8* noalias, i8* noalias nocapture) nounwind | |
define void @_Z10concatwordPPcPi(i8** nocapture %args, i32* nocapture %numargs) { | |
entry: | |
%0 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%1 = tail call i8* @_Z4concPPcib(i8** %args, i32 %0, i8 zeroext 0) ; <i8*> [#uses=1] | |
store i8* %1, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_Z9pushidentR5identPc(%struct.ident* nocapture %id, i8* %val) { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %id, i64 0, i32 1 ; <i32*> [#uses=1] | |
%1 = load i32* %0, align 8 ; <i32> [#uses=1] | |
%2 = icmp eq i32 %1, 5 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %return | |
bb: ; preds = %entry | |
%3 = tail call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%4 = getelementptr inbounds %struct.ident* %id, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%5 = load i8** %4, align 8 ; <i8*> [#uses=1] | |
%6 = getelementptr inbounds %struct.ident* %id, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%7 = load i8** %6, align 8 ; <i8*> [#uses=4] | |
%8 = icmp eq i8* %5, %7 ; <i1> [#uses=1] | |
br i1 %8, label %bb1, label %bb3 | |
bb1: ; preds = %bb | |
%9 = tail call i64 @strlen(i8* %7) nounwind readonly ; <i64> [#uses=2] | |
%10 = add i64 %9, 1 ; <i64> [#uses=2] | |
%11 = tail call i8* @_Znam(i64 %10) ; <i8*> [#uses=3] | |
%12 = tail call i8* @strncpy(i8* noalias %11, i8* noalias %7, i64 %10) nounwind ; <i8*> [#uses=0] | |
%13 = getelementptr inbounds i8* %11, i64 %9 ; <i8*> [#uses=1] | |
store i8 0, i8* %13, align 1 | |
br label %bb3 | |
bb3: ; preds = %bb1, %bb | |
%iftmp.29.0 = phi i8* [ %11, %bb1 ], [ %7, %bb ] ; <i8*> [#uses=1] | |
%14 = bitcast i8* %3 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0, i8** %14, align 8 | |
%15 = getelementptr inbounds %struct.ident* %id, i64 0, i32 6, i32 0 ; <void ()**> [#uses=2] | |
%16 = load void ()** %15, align 8 ; <void ()*> [#uses=1] | |
%17 = bitcast void ()* %16 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%18 = getelementptr inbounds i8* %3, i64 8 ; <i8*> [#uses=1] | |
%19 = bitcast i8* %18 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %17, %struct.identstack** %19, align 8 | |
%.c = bitcast i8* %3 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c, void ()** %15 | |
store i8* %val, i8** %6, align 8 | |
ret void | |
return: ; preds = %entry | |
ret void | |
} | |
declare i8* @_Znwm(i64) | |
declare void @_ZdlPv(i8*) nounwind | |
define linkonce_odr %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* nocapture %this, i8** nocapture %key, %struct.ident* nocapture %data) align 2 { | |
entry: | |
%0 = load i8** %key, align 8 ; <i8*> [#uses=3] | |
%1 = load i8* %0, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit, label %bb.i | |
bb.i: ; preds = %bb.i, %entry | |
%indvar.i = phi i64 [ %tmp, %bb.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i = phi i32 [ %6, %bb.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i, 1 ; <i64> [#uses=2] | |
%scevgep.i = getelementptr i8* %0, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit, label %bb.i | |
_ZL6hthashPKc.exit: ; preds = %bb.i, %entry | |
%h.0.lcssa.i = phi i32 [ 5381, %entry ], [ %6, %bb.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %this, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %this, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=3] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=3] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3 | |
bb: ; preds = %bb3 | |
%.idx = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val = load i8** %.idx ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %0, i8* %.idx.val) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
ret %struct.ident* %19 | |
bb2: ; preds = %bb | |
%20 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %_ZL6hthashPKc.exit | |
%c.0.in = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit ], [ %20, %bb2 ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=4] | |
%21 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0, null ; <i1> [#uses=1] | |
br i1 %21, label %bb4, label %bb | |
bb4: ; preds = %bb3 | |
%22 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %this, i64 0, i32 0, i32 4 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=4] | |
%23 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %22, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
%24 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %23, null ; <i1> [#uses=1] | |
br i1 %24, label %bb.i.i, label %_ZN9hashtableIPKc5identE6insertERKS1_j.exit | |
bb.i.i: ; preds = %bb4 | |
%25 = tail call i8* @_Znwm(i64 6152) ; <i8*> [#uses=7] | |
br label %invcont.i.i.i | |
invcont.i.i.i: ; preds = %invcont.i.i.i, %bb.i.i | |
%indvar.i.i.i = phi i64 [ 0, %bb.i.i ], [ %indvar.next.i.i.i, %invcont.i.i.i ] ; <i64> [#uses=2] | |
%tmp17 = mul i64 %indvar.i.i.i, 96 ; <i64> [#uses=1] | |
%tmp1822 = or i64 %tmp17, 8 ; <i64> [#uses=1] | |
%scevgep19 = getelementptr i8* %25, i64 %tmp1822 ; <i8*> [#uses=1] | |
%scevgep.i.i.i = bitcast i8* %scevgep19 to i32 (...)*** ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %scevgep.i.i.i, align 8 | |
%indvar.next.i.i.i = add i64 %indvar.i.i.i, 1 ; <i64> [#uses=2] | |
%exitcond16 = icmp eq i64 %indvar.next.i.i.i, 64 ; <i1> [#uses=1] | |
br i1 %exitcond16, label %bb.nph.i.i, label %invcont.i.i.i | |
bb.nph.i.i: ; preds = %invcont.i.i.i | |
%26 = bitcast i8* %25 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"*> [#uses=1] | |
%27 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %this, i64 0, i32 0, i32 3 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=2] | |
%28 = load %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %27, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"*> [#uses=1] | |
%29 = getelementptr inbounds i8* %25, i64 6144 ; <i8*> [#uses=1] | |
%30 = bitcast i8* %29 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %28, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %30, align 8 | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %26, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %27, align 8 | |
br label %bb3.i.i | |
bb3.i.i: ; preds = %bb3.i.i, %bb.nph.i.i | |
%indvar.i.i = phi i64 [ 0, %bb.nph.i.i ], [ %indvar.next.i.i, %bb3.i.i ] ; <i64> [#uses=2] | |
%tmp10 = mul i64 %indvar.i.i, 96 ; <i64> [#uses=2] | |
%tmp11 = add i64 %tmp10, 88 ; <i64> [#uses=1] | |
%scevgep = getelementptr i8* %25, i64 %tmp11 ; <i8*> [#uses=1] | |
%scevgep13.i.i = bitcast i8* %scevgep to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%tmp13 = add i64 %tmp10, 96 ; <i64> [#uses=1] | |
%scevgep14 = getelementptr i8* %25, i64 %tmp13 ; <i8*> [#uses=1] | |
%scevgep1516.i.i = bitcast i8* %scevgep14 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"* ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %scevgep1516.i.i, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep13.i.i, align 8 | |
%indvar.next.i.i = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next.i.i, 63 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb5.i.i, label %bb3.i.i | |
bb5.i.i: ; preds = %bb3.i.i | |
%31 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %22, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=1] | |
%32 = getelementptr inbounds i8* %25, i64 6136 ; <i8*> [#uses=1] | |
%33 = bitcast i8* %32 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %31, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %33, align 8 | |
%34 = bitcast i8* %25 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"* ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %34, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %22, align 8 | |
%.pre = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %_ZN9hashtableIPKc5identE6insertERKS1_j.exit | |
_ZN9hashtableIPKc5identE6insertERKS1_j.exit: ; preds = %bb5.i.i, %bb4 | |
%35 = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %.pre, %bb5.i.i ], [ %14, %bb4 ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%36 = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"* [ %34, %bb5.i.i ], [ %23, %bb4 ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=4] | |
%37 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %36, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%38 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %37, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %38, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %22, align 8 | |
%39 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %35, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%40 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %39, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %40, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %37, align 8 | |
%41 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%42 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %41, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %36, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %42, align 8 | |
%43 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %this, i64 0, i32 0, i32 1 ; <i32*> [#uses=2] | |
%44 = load i32* %43, align 4 ; <i32> [#uses=1] | |
%45 = add nsw i32 %44, 1 ; <i32> [#uses=1] | |
store i32 %45, i32* %43, align 4 | |
%46 = load i8** %key, align 8 ; <i8*> [#uses=1] | |
%47 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %36, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %46, i8** %47, align 8 | |
%48 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %36, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%49 = bitcast %struct.ident* %48 to i8* ; <i8*> [#uses=1] | |
%50 = bitcast %struct.ident* %data to i8* ; <i8*> [#uses=1] | |
tail call void @llvm.memcpy.i64(i8* %49, i8* %50, i64 80, i32 8) nounwind | |
ret %struct.ident* %48 | |
} | |
define void @_Z8addidentPKcP5ident(i8* %name, %struct.ident* nocapture %id) { | |
entry: | |
%name_addr = alloca i8*, align 8 ; <i8**> [#uses=2] | |
store i8* %name, i8** %name_addr | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = icmp eq %"struct.hashtable<const char*,ident>"* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb, label %bb3 | |
bb: ; preds = %entry | |
%2 = call i8* @_Znwm(i64 32) ; <i8*> [#uses=7] | |
%3 = bitcast i8* %2 to %"struct.hashtable<const char*,ident>"* ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%4 = bitcast i8* %2 to i32* ; <i32*> [#uses=1] | |
store i32 1024, i32* %4, align 8 | |
%5 = getelementptr inbounds i8* %2, i64 4 ; <i8*> [#uses=1] | |
%6 = bitcast i8* %5 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %6, align 4 | |
%7 = getelementptr inbounds i8* %2, i64 16 ; <i8*> [#uses=1] | |
%8 = bitcast i8* %7 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %8, align 8 | |
%9 = getelementptr inbounds i8* %2, i64 24 ; <i8*> [#uses=1] | |
%10 = bitcast i8* %9 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %10, align 8 | |
%11 = invoke i8* @_Znam(i64 8192) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=1] | |
.noexc: ; preds = %bb | |
%12 = bitcast i8* %11 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%13 = getelementptr inbounds i8* %2, i64 8 ; <i8*> [#uses=1] | |
%14 = bitcast i8* %13 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=2] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, align 8 | |
br label %bb.bb_crit_edge.i.i | |
bb.bb_crit_edge.i.i: ; preds = %bb.bb_crit_edge.i.i, %.noexc | |
%indvar.i = phi i64 [ 0, %.noexc ], [ %tmp, %bb.bb_crit_edge.i.i ] ; <i64> [#uses=1] | |
%tmp = add i64 %indvar.i, 1 ; <i64> [#uses=3] | |
%.pre.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %.pre.i.i, i64 %tmp ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep.i.i, align 8 | |
%exitcond = icmp eq i64 %tmp, 1023 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb2, label %bb.bb_crit_edge.i.i | |
bb2: ; preds = %bb.bb_crit_edge.i.i | |
store %"struct.hashtable<const char*,ident>"* %3, %"struct.hashtable<const char*,ident>"** @idents, align 8 | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%15 = phi %"struct.hashtable<const char*,ident>"* [ %3, %bb2 ], [ %0, %entry ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%16 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %15, i8** %name_addr, %struct.ident* %id) ; <%struct.ident*> [#uses=0] | |
ret void | |
lpad: ; preds = %bb | |
%eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select5 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
call void @_ZdlPv(i8* %2) nounwind | |
call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
} | |
define void @_Z6aliasaPKcPc(i8* %name, i8* %action) { | |
entry: | |
%b1 = alloca %struct.ident, align 8 ; <%struct.ident*> [#uses=9] | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=9] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %bb, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %bb, label %bb8 | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
%23 = load i8* @persistidents, align 1 ; <i8> [#uses=1] | |
%not.toBool = icmp ne i8 %23, 0 ; <i1> [#uses=1] | |
%iftmp.38.0 = zext i1 %not.toBool to i32 ; <i32> [#uses=1] | |
%24 = call i64 @strlen(i8* %name) nounwind readonly ; <i64> [#uses=2] | |
%25 = add i64 %24, 1 ; <i64> [#uses=2] | |
%26 = call i8* @_Znam(i64 %25) ; <i8*> [#uses=3] | |
%27 = call i8* @strncpy(i8* noalias %26, i8* noalias %name, i64 %25) nounwind ; <i8*> [#uses=0] | |
%28 = getelementptr inbounds i8* %26, i64 %24 ; <i8*> [#uses=1] | |
store i8 0, i8* %28, align 1 | |
%29 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %29, align 8 | |
%30 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 5, i32* %30, align 8 | |
%31 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 2 ; <i8**> [#uses=2] | |
store i8* %26, i8** %31, align 8 | |
%32 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 5 ; <i32*> [#uses=2] | |
store i32 2147483647, i32* %32, align 8 | |
%33 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
store void ()* null, void ()** %33 | |
%34 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 7, i32 0 ; <i8**> [#uses=1] | |
store i8* %action, i8** %34, align 8 | |
%35 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
store i8* null, i8** %35, align 8 | |
%36 = getelementptr inbounds %struct.ident* %b1, i64 0, i32 10 ; <i32*> [#uses=1] | |
store i32 %iftmp.38.0, i32* %36, align 8 | |
%37 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool5 = icmp eq i8 %37, 0 ; <i1> [#uses=1] | |
br i1 %toBool5, label %bb7, label %bb6 | |
bb6: ; preds = %bb | |
store i32 0, i32* %32, align 8 | |
br label %bb7 | |
bb7: ; preds = %bb6, %bb | |
%38 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%39 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %38, i8** %31, %struct.ident* %b1) ; <%struct.ident*> [#uses=0] | |
ret void | |
bb8: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%40 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%41 = load i32* %40, align 8 ; <i32> [#uses=1] | |
%42 = icmp eq i32 %41, 5 ; <i1> [#uses=1] | |
br i1 %42, label %bb11, label %bb9 | |
bb9: ; preds = %bb8 | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([41 x i8]* @.str16, i64 0, i64 0), i8* %name) | |
%43 = icmp eq i8* %action, null ; <i1> [#uses=1] | |
br i1 %43, label %return, label %bb10 | |
bb10: ; preds = %bb9 | |
call void @_ZdaPv(i8* %action) nounwind | |
ret void | |
bb11: ; preds = %bb8 | |
%44 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=2] | |
%45 = load i8** %44, align 8 ; <i8*> [#uses=3] | |
%46 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
%47 = load i8** %46, align 8 ; <i8*> [#uses=1] | |
%48 = icmp eq i8* %45, %47 ; <i1> [#uses=1] | |
%49 = icmp eq i8* %45, null ; <i1> [#uses=1] | |
%or.cond = or i1 %48, %49 ; <i1> [#uses=1] | |
br i1 %or.cond, label %bb14, label %bb13 | |
bb13: ; preds = %bb11 | |
call void @_ZdaPv(i8* %45) nounwind | |
br label %bb14 | |
bb14: ; preds = %bb13, %bb11 | |
store i8* %action, i8** %44, align 8 | |
%50 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%toBool15 = icmp eq i8 %50, 0 ; <i1> [#uses=1] | |
%51 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=3] | |
br i1 %toBool15, label %bb17, label %bb16 | |
bb16: ; preds = %bb14 | |
store i32 0, i32* %51, align 8 | |
ret void | |
bb17: ; preds = %bb14 | |
%52 = load i32* %51, align 8 ; <i32> [#uses=1] | |
%53 = icmp eq i32 %52, 2147483647 ; <i1> [#uses=1] | |
br i1 %53, label %bb19, label %bb18 | |
bb18: ; preds = %bb17 | |
store i32 2147483647, i32* %51, align 8 | |
br label %bb19 | |
bb19: ; preds = %bb18, %bb17 | |
%54 = load i8* @persistidents, align 1 ; <i8> [#uses=1] | |
%toBool20 = icmp eq i8 %54, 0 ; <i1> [#uses=1] | |
%55 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=3] | |
%56 = load i32* %55, align 8 ; <i32> [#uses=3] | |
%57 = and i32 %56, 1 ; <i32> [#uses=1] | |
%toBool22 = icmp eq i32 %57, 0 ; <i1> [#uses=2] | |
br i1 %toBool20, label %bb27, label %bb21 | |
bb21: ; preds = %bb19 | |
br i1 %toBool22, label %bb26, label %return | |
bb26: ; preds = %bb21 | |
%58 = or i32 %56, 1 ; <i32> [#uses=1] | |
store i32 %58, i32* %55, align 8 | |
ret void | |
bb27: ; preds = %bb19 | |
br i1 %toBool22, label %return, label %bb29 | |
bb29: ; preds = %bb27 | |
%59 = and i32 %56, -2 ; <i32> [#uses=1] | |
store i32 %59, i32* %55, align 8 | |
ret void | |
return: ; preds = %bb27, %bb21, %bb9 | |
ret void | |
} | |
define void @_Z5aliasPKcS0_(i8* %name, i8* nocapture %action) { | |
entry: | |
%0 = tail call i64 @strlen(i8* %action) nounwind readonly ; <i64> [#uses=2] | |
%1 = add i64 %0, 1 ; <i64> [#uses=2] | |
%2 = tail call i8* @_Znam(i64 %1) ; <i8*> [#uses=3] | |
%3 = tail call i8* @strncpy(i8* noalias %2, i8* noalias %action, i64 %1) nounwind ; <i8*> [#uses=0] | |
%4 = getelementptr inbounds i8* %2, i64 %0 ; <i8*> [#uses=1] | |
store i8 0, i8* %4, align 1 | |
tail call void @_Z6aliasaPKcPc(i8* %name, i8* %2) | |
ret void | |
} | |
define %struct.ident* @_Z8newidentPKc(i8* %name) { | |
entry: | |
%init = alloca %struct.ident, align 8 ; <%struct.ident*> [#uses=9] | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=4] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %bb, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=2] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %bb, label %bb4 | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
%23 = load i8* @persistidents, align 1 ; <i8> [#uses=1] | |
%not.toBool = icmp ne i8 %23, 0 ; <i1> [#uses=1] | |
%iftmp.31.0 = zext i1 %not.toBool to i32 ; <i32> [#uses=1] | |
%24 = call i8* @_Znam(i64 1) ; <i8*> [#uses=2] | |
store i8 0, i8* %24, align 1 | |
%25 = call i64 @strlen(i8* %name) nounwind readonly ; <i64> [#uses=2] | |
%26 = add i64 %25, 1 ; <i64> [#uses=2] | |
%27 = call i8* @_Znam(i64 %26) ; <i8*> [#uses=3] | |
%28 = call i8* @strncpy(i8* noalias %27, i8* noalias %name, i64 %26) nounwind ; <i8*> [#uses=0] | |
%29 = getelementptr inbounds i8* %27, i64 %25 ; <i8*> [#uses=1] | |
store i8 0, i8* %29, align 1 | |
%30 = getelementptr inbounds %struct.ident* %init, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %30, align 8 | |
%31 = getelementptr inbounds %struct.ident* %init, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 5, i32* %31, align 8 | |
%32 = getelementptr inbounds %struct.ident* %init, i64 0, i32 2 ; <i8**> [#uses=2] | |
store i8* %27, i8** %32, align 8 | |
%33 = getelementptr inbounds %struct.ident* %init, i64 0, i32 5 ; <i32*> [#uses=1] | |
store i32 2147483647, i32* %33, align 8 | |
%34 = getelementptr inbounds %struct.ident* %init, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
store void ()* null, void ()** %34 | |
%35 = getelementptr inbounds %struct.ident* %init, i64 0, i32 7, i32 0 ; <i8**> [#uses=1] | |
store i8* %24, i8** %35, align 8 | |
%36 = getelementptr inbounds %struct.ident* %init, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
store i8* null, i8** %36, align 8 | |
%37 = getelementptr inbounds %struct.ident* %init, i64 0, i32 10 ; <i32*> [#uses=1] | |
store i32 %iftmp.31.0, i32* %37, align 8 | |
%38 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%39 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %38, i8** %32, %struct.ident* %init) ; <%struct.ident*> [#uses=1] | |
ret %struct.ident* %39 | |
bb4: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
ret %struct.ident* %21 | |
} | |
define void @_Z5pushaPKcPc(i8* %name, i8* %action) { | |
entry: | |
%0 = tail call %struct.ident* @_Z8newidentPKc(i8* %name) ; <%struct.ident*> [#uses=4] | |
%1 = getelementptr inbounds %struct.ident* %0, i64 0, i32 1 ; <i32*> [#uses=1] | |
%2 = load i32* %1, align 8 ; <i32> [#uses=1] | |
%3 = icmp eq i32 %2, 5 ; <i1> [#uses=1] | |
br i1 %3, label %bb.i, label %_Z9pushidentR5identPc.exit | |
bb.i: ; preds = %entry | |
%4 = tail call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%5 = getelementptr inbounds %struct.ident* %0, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%6 = load i8** %5, align 8 ; <i8*> [#uses=1] | |
%7 = getelementptr inbounds %struct.ident* %0, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%8 = load i8** %7, align 8 ; <i8*> [#uses=4] | |
%9 = icmp eq i8* %6, %8 ; <i1> [#uses=1] | |
br i1 %9, label %bb1.i, label %bb3.i | |
bb1.i: ; preds = %bb.i | |
%10 = tail call i64 @strlen(i8* %8) nounwind readonly ; <i64> [#uses=2] | |
%11 = add i64 %10, 1 ; <i64> [#uses=2] | |
%12 = tail call i8* @_Znam(i64 %11) ; <i8*> [#uses=3] | |
%13 = tail call i8* @strncpy(i8* noalias %12, i8* noalias %8, i64 %11) nounwind ; <i8*> [#uses=0] | |
%14 = getelementptr inbounds i8* %12, i64 %10 ; <i8*> [#uses=1] | |
store i8 0, i8* %14, align 1 | |
br label %bb3.i | |
bb3.i: ; preds = %bb1.i, %bb.i | |
%iftmp.29.0.i = phi i8* [ %12, %bb1.i ], [ %8, %bb.i ] ; <i8*> [#uses=1] | |
%15 = bitcast i8* %4 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0.i, i8** %15, align 8 | |
%16 = getelementptr inbounds %struct.ident* %0, i64 0, i32 6, i32 0 ; <void ()**> [#uses=2] | |
%17 = load void ()** %16, align 8 ; <void ()*> [#uses=1] | |
%18 = bitcast void ()* %17 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%19 = getelementptr inbounds i8* %4, i64 8 ; <i8*> [#uses=1] | |
%20 = bitcast i8* %19 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %18, %struct.identstack** %20, align 8 | |
%.c.i = bitcast i8* %4 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i, void ()** %16 | |
store i8* %action, i8** %7, align 8 | |
ret void | |
_Z9pushidentR5identPc.exit: ; preds = %entry | |
ret void | |
} | |
define void @_Z4pushPcS_(i8* %name, i8* nocapture %action) { | |
entry: | |
%0 = tail call i64 @strlen(i8* %action) nounwind readonly ; <i64> [#uses=2] | |
%1 = add i64 %0, 1 ; <i64> [#uses=2] | |
%2 = tail call i8* @_Znam(i64 %1) ; <i8*> [#uses=3] | |
%3 = tail call i8* @strncpy(i8* noalias %2, i8* noalias %action, i64 %1) nounwind ; <i8*> [#uses=0] | |
%4 = getelementptr inbounds i8* %2, i64 %0 ; <i8*> [#uses=1] | |
store i8 0, i8* %4, align 1 | |
%5 = tail call %struct.ident* @_Z8newidentPKc(i8* %name) ; <%struct.ident*> [#uses=4] | |
%6 = getelementptr inbounds %struct.ident* %5, i64 0, i32 1 ; <i32*> [#uses=1] | |
%7 = load i32* %6, align 8 ; <i32> [#uses=1] | |
%8 = icmp eq i32 %7, 5 ; <i1> [#uses=1] | |
br i1 %8, label %bb.i.i, label %_Z5pushaPKcPc.exit | |
bb.i.i: ; preds = %entry | |
%9 = tail call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%10 = getelementptr inbounds %struct.ident* %5, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%11 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%12 = getelementptr inbounds %struct.ident* %5, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%13 = load i8** %12, align 8 ; <i8*> [#uses=4] | |
%14 = icmp eq i8* %11, %13 ; <i1> [#uses=1] | |
br i1 %14, label %bb1.i.i, label %bb3.i.i | |
bb1.i.i: ; preds = %bb.i.i | |
%15 = tail call i64 @strlen(i8* %13) nounwind readonly ; <i64> [#uses=2] | |
%16 = add i64 %15, 1 ; <i64> [#uses=2] | |
%17 = tail call i8* @_Znam(i64 %16) ; <i8*> [#uses=3] | |
%18 = tail call i8* @strncpy(i8* noalias %17, i8* noalias %13, i64 %16) nounwind ; <i8*> [#uses=0] | |
%19 = getelementptr inbounds i8* %17, i64 %15 ; <i8*> [#uses=1] | |
store i8 0, i8* %19, align 1 | |
br label %bb3.i.i | |
bb3.i.i: ; preds = %bb1.i.i, %bb.i.i | |
%iftmp.29.0.i.i = phi i8* [ %17, %bb1.i.i ], [ %13, %bb.i.i ] ; <i8*> [#uses=1] | |
%20 = bitcast i8* %9 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0.i.i, i8** %20, align 8 | |
%21 = getelementptr inbounds %struct.ident* %5, i64 0, i32 6, i32 0 ; <void ()**> [#uses=2] | |
%22 = load void ()** %21, align 8 ; <void ()*> [#uses=1] | |
%23 = bitcast void ()* %22 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%24 = getelementptr inbounds i8* %9, i64 8 ; <i8*> [#uses=1] | |
%25 = bitcast i8* %24 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %23, %struct.identstack** %25, align 8 | |
%.c.i.i = bitcast i8* %9 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i.i, void ()** %21 | |
store i8* %2, i8** %12, align 8 | |
ret void | |
_Z5pushaPKcPc.exit: ; preds = %entry | |
ret void | |
} | |
define zeroext i8 @_Z10addcommandPKcPFvvES0_(i8* %name, void ()* %fun, i8* %narg) { | |
entry: | |
%name_addr = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%c = alloca %struct.ident, align 8 ; <%struct.ident*> [#uses=9] | |
store i8* %name, i8** %name_addr | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = icmp eq %"struct.hashtable<const char*,ident>"* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb, label %bb3 | |
bb: ; preds = %entry | |
%2 = call i8* @_Znwm(i64 32) ; <i8*> [#uses=7] | |
%3 = bitcast i8* %2 to %"struct.hashtable<const char*,ident>"* ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%4 = bitcast i8* %2 to i32* ; <i32*> [#uses=1] | |
store i32 1024, i32* %4, align 8 | |
%5 = getelementptr inbounds i8* %2, i64 4 ; <i8*> [#uses=1] | |
%6 = bitcast i8* %5 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %6, align 4 | |
%7 = getelementptr inbounds i8* %2, i64 16 ; <i8*> [#uses=1] | |
%8 = bitcast i8* %7 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %8, align 8 | |
%9 = getelementptr inbounds i8* %2, i64 24 ; <i8*> [#uses=1] | |
%10 = bitcast i8* %9 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %10, align 8 | |
%11 = invoke i8* @_Znam(i64 8192) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=1] | |
.noexc: ; preds = %bb | |
%12 = bitcast i8* %11 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%13 = getelementptr inbounds i8* %2, i64 8 ; <i8*> [#uses=1] | |
%14 = bitcast i8* %13 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=2] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, align 8 | |
br label %bb.bb_crit_edge.i.i | |
bb.bb_crit_edge.i.i: ; preds = %bb.bb_crit_edge.i.i, %.noexc | |
%indvar.i = phi i64 [ 0, %.noexc ], [ %tmp, %bb.bb_crit_edge.i.i ] ; <i64> [#uses=1] | |
%tmp = add i64 %indvar.i, 1 ; <i64> [#uses=3] | |
%.pre.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %.pre.i.i, i64 %tmp ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep.i.i, align 8 | |
%exitcond = icmp eq i64 %tmp, 1023 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb2, label %bb.bb_crit_edge.i.i | |
bb2: ; preds = %bb.bb_crit_edge.i.i | |
store %"struct.hashtable<const char*,ident>"* %3, %"struct.hashtable<const char*,ident>"** @idents, align 8 | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%15 = phi %"struct.hashtable<const char*,ident>"* [ %3, %bb2 ], [ %0, %entry ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%16 = getelementptr inbounds %struct.ident* %c, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %16, align 8 | |
%17 = getelementptr inbounds %struct.ident* %c, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 3, i32* %17, align 8 | |
%18 = getelementptr inbounds %struct.ident* %c, i64 0, i32 2 ; <i8**> [#uses=1] | |
store i8* %name, i8** %18, align 8 | |
%19 = getelementptr inbounds %struct.ident* %c, i64 0, i32 5 ; <i32*> [#uses=1] | |
store i32 2147483647, i32* %19, align 8 | |
%20 = getelementptr inbounds %struct.ident* %c, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
store void ()* %fun, void ()** %20, align 8 | |
%21 = getelementptr inbounds %struct.ident* %c, i64 0, i32 7, i32 0 ; <i8**> [#uses=1] | |
store i8* %narg, i8** %21, align 8 | |
%22 = getelementptr inbounds %struct.ident* %c, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
store i8* null, i8** %22, align 8 | |
%23 = getelementptr inbounds %struct.ident* %c, i64 0, i32 10 ; <i32*> [#uses=1] | |
store i32 0, i32* %23, align 8 | |
%24 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %15, i8** %name_addr, %struct.ident* %c) ; <%struct.ident*> [#uses=0] | |
ret i8 0 | |
lpad: ; preds = %bb | |
%eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select7 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
call void @_ZdlPv(i8* %2) nounwind | |
call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
} | |
define i8* @_Z9svariablePKcS0_PPcPFvvEi(i8* %name, i8* nocapture %cur, i8** %storage, void ()* %fun, i32 %flags) { | |
entry: | |
%name_addr = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%v = alloca %struct.ident, align 8 ; <%struct.ident*> [#uses=9] | |
store i8* %name, i8** %name_addr | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%1 = icmp eq %"struct.hashtable<const char*,ident>"* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb, label %bb3 | |
bb: ; preds = %entry | |
%2 = call i8* @_Znwm(i64 32) ; <i8*> [#uses=7] | |
%3 = bitcast i8* %2 to %"struct.hashtable<const char*,ident>"* ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%4 = bitcast i8* %2 to i32* ; <i32*> [#uses=1] | |
store i32 1024, i32* %4, align 8 | |
%5 = getelementptr inbounds i8* %2, i64 4 ; <i8*> [#uses=1] | |
%6 = bitcast i8* %5 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %6, align 4 | |
%7 = getelementptr inbounds i8* %2, i64 16 ; <i8*> [#uses=1] | |
%8 = bitcast i8* %7 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %8, align 8 | |
%9 = getelementptr inbounds i8* %2, i64 24 ; <i8*> [#uses=1] | |
%10 = bitcast i8* %9 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %10, align 8 | |
%11 = invoke i8* @_Znam(i64 8192) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=1] | |
.noexc: ; preds = %bb | |
%12 = bitcast i8* %11 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%13 = getelementptr inbounds i8* %2, i64 8 ; <i8*> [#uses=1] | |
%14 = bitcast i8* %13 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=2] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, align 8 | |
br label %bb.bb_crit_edge.i.i | |
bb.bb_crit_edge.i.i: ; preds = %bb.bb_crit_edge.i.i, %.noexc | |
%indvar.i = phi i64 [ 0, %.noexc ], [ %tmp, %bb.bb_crit_edge.i.i ] ; <i64> [#uses=1] | |
%tmp = add i64 %indvar.i, 1 ; <i64> [#uses=3] | |
%.pre.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %.pre.i.i, i64 %tmp ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep.i.i, align 8 | |
%exitcond = icmp eq i64 %tmp, 1023 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb2, label %bb.bb_crit_edge.i.i | |
bb2: ; preds = %bb.bb_crit_edge.i.i | |
store %"struct.hashtable<const char*,ident>"* %3, %"struct.hashtable<const char*,ident>"** @idents, align 8 | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%15 = call i64 @strlen(i8* %cur) nounwind readonly ; <i64> [#uses=2] | |
%16 = add i64 %15, 1 ; <i64> [#uses=2] | |
%17 = call i8* @_Znam(i64 %16) ; <i8*> [#uses=3] | |
%18 = call i8* @strncpy(i8* noalias %17, i8* noalias %cur, i64 %16) nounwind ; <i8*> [#uses=0] | |
%19 = getelementptr inbounds i8* %17, i64 %15 ; <i8*> [#uses=1] | |
store i8 0, i8* %19, align 1 | |
%20 = getelementptr inbounds %struct.ident* %v, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %20, align 8 | |
%21 = getelementptr inbounds %struct.ident* %v, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 2, i32* %21, align 8 | |
%22 = getelementptr inbounds %struct.ident* %v, i64 0, i32 2 ; <i8**> [#uses=1] | |
store i8* %name, i8** %22, align 8 | |
%23 = getelementptr inbounds %struct.ident* %v, i64 0, i32 5 ; <i32*> [#uses=1] | |
store i32 2147483647, i32* %23, align 8 | |
%24 = getelementptr inbounds %struct.ident* %v, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
store void ()* %fun, void ()** %24, align 8 | |
%25 = getelementptr inbounds %struct.ident* %v, i64 0, i32 10 ; <i32*> [#uses=1] | |
store i32 %flags, i32* %25, align 8 | |
%26 = getelementptr inbounds %struct.ident* %v, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
store i8* %17, i8** %26, align 8 | |
%27 = getelementptr inbounds %struct.ident* %v, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%s.c.i = bitcast i8** %storage to i32* ; <i32*> [#uses=1] | |
store i32* %s.c.i, i32** %27 | |
%28 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%29 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %28, i8** %name_addr, %struct.ident* %v) ; <%struct.ident*> [#uses=0] | |
%30 = load i8** %26, align 8 ; <i8*> [#uses=1] | |
ret i8* %30 | |
lpad: ; preds = %bb | |
%eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select6 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
call void @_ZdlPv(i8* %2) nounwind | |
call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
} | |
define float @_Z9fvariablePKcfffPfPFvvEi(i8* %name, float %min, float %cur, float %max, float* %storage, void ()* %fun, i32 %flags) { | |
entry: | |
%name_addr = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%v = alloca %struct.ident, align 8 ; <%struct.ident*> [#uses=11] | |
store i8* %name, i8** %name_addr | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = icmp eq %"struct.hashtable<const char*,ident>"* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb, label %bb3 | |
bb: ; preds = %entry | |
%2 = call i8* @_Znwm(i64 32) ; <i8*> [#uses=7] | |
%3 = bitcast i8* %2 to %"struct.hashtable<const char*,ident>"* ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%4 = bitcast i8* %2 to i32* ; <i32*> [#uses=1] | |
store i32 1024, i32* %4, align 8 | |
%5 = getelementptr inbounds i8* %2, i64 4 ; <i8*> [#uses=1] | |
%6 = bitcast i8* %5 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %6, align 4 | |
%7 = getelementptr inbounds i8* %2, i64 16 ; <i8*> [#uses=1] | |
%8 = bitcast i8* %7 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %8, align 8 | |
%9 = getelementptr inbounds i8* %2, i64 24 ; <i8*> [#uses=1] | |
%10 = bitcast i8* %9 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %10, align 8 | |
%11 = invoke i8* @_Znam(i64 8192) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=1] | |
.noexc: ; preds = %bb | |
%12 = bitcast i8* %11 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%13 = getelementptr inbounds i8* %2, i64 8 ; <i8*> [#uses=1] | |
%14 = bitcast i8* %13 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=2] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, align 8 | |
br label %bb.bb_crit_edge.i.i | |
bb.bb_crit_edge.i.i: ; preds = %bb.bb_crit_edge.i.i, %.noexc | |
%indvar.i = phi i64 [ 0, %.noexc ], [ %tmp, %bb.bb_crit_edge.i.i ] ; <i64> [#uses=1] | |
%tmp = add i64 %indvar.i, 1 ; <i64> [#uses=3] | |
%.pre.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %.pre.i.i, i64 %tmp ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep.i.i, align 8 | |
%exitcond = icmp eq i64 %tmp, 1023 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb2, label %bb.bb_crit_edge.i.i | |
bb2: ; preds = %bb.bb_crit_edge.i.i | |
store %"struct.hashtable<const char*,ident>"* %3, %"struct.hashtable<const char*,ident>"** @idents, align 8 | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%15 = phi %"struct.hashtable<const char*,ident>"* [ %3, %bb2 ], [ %0, %entry ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%16 = getelementptr inbounds %struct.ident* %v, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %16, align 8 | |
%17 = getelementptr inbounds %struct.ident* %v, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 1, i32* %17, align 8 | |
%18 = getelementptr inbounds %struct.ident* %v, i64 0, i32 2 ; <i8**> [#uses=1] | |
store i8* %name, i8** %18, align 8 | |
%19 = getelementptr inbounds %struct.ident* %v, i64 0, i32 3, i32 0 ; <i32*> [#uses=1] | |
%20 = bitcast i32* %19 to float* ; <float*> [#uses=1] | |
store float %min, float* %20, align 8 | |
%21 = getelementptr inbounds %struct.ident* %v, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
%22 = bitcast i32* %21 to float* ; <float*> [#uses=1] | |
store float %max, float* %22, align 4 | |
%23 = getelementptr inbounds %struct.ident* %v, i64 0, i32 5 ; <i32*> [#uses=1] | |
store i32 2147483647, i32* %23, align 8 | |
%24 = getelementptr inbounds %struct.ident* %v, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
store void ()* %fun, void ()** %24, align 8 | |
%25 = fcmp ogt float %min, %max ; <i1> [#uses=1] | |
%iftmp.17.0.i = select i1 %25, i32 8, i32 0 ; <i32> [#uses=1] | |
%26 = or i32 %iftmp.17.0.i, %flags ; <i32> [#uses=1] | |
%27 = getelementptr inbounds %struct.ident* %v, i64 0, i32 10 ; <i32*> [#uses=1] | |
store i32 %26, i32* %27, align 8 | |
%28 = getelementptr inbounds %struct.ident* %v, i64 0, i32 7, i32 0 ; <i8**> [#uses=1] | |
%29 = bitcast i8** %28 to float* ; <float*> [#uses=1] | |
store float %cur, float* %29, align 8 | |
%30 = getelementptr inbounds %struct.ident* %v, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
%s.c.i = bitcast float* %storage to i32* ; <i32*> [#uses=1] | |
store i32* %s.c.i, i32** %30 | |
%31 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %15, i8** %name_addr, %struct.ident* %v) ; <%struct.ident*> [#uses=0] | |
ret float %cur | |
lpad: ; preds = %bb | |
%eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select6 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
call void @_ZdlPv(i8* %2) nounwind | |
call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
} | |
define i32 @_Z8variablePKciiiPiPFvvEi(i8* %name, i32 %min, i32 %cur, i32 %max, i32* %storage, void ()* %fun, i32 %flags) { | |
entry: | |
%name_addr = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%v = alloca %struct.ident, align 8 ; <%struct.ident*> [#uses=11] | |
store i8* %name, i8** %name_addr | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = icmp eq %"struct.hashtable<const char*,ident>"* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb, label %bb3 | |
bb: ; preds = %entry | |
%2 = call i8* @_Znwm(i64 32) ; <i8*> [#uses=7] | |
%3 = bitcast i8* %2 to %"struct.hashtable<const char*,ident>"* ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%4 = bitcast i8* %2 to i32* ; <i32*> [#uses=1] | |
store i32 1024, i32* %4, align 8 | |
%5 = getelementptr inbounds i8* %2, i64 4 ; <i8*> [#uses=1] | |
%6 = bitcast i8* %5 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %6, align 4 | |
%7 = getelementptr inbounds i8* %2, i64 16 ; <i8*> [#uses=1] | |
%8 = bitcast i8* %7 to %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %8, align 8 | |
%9 = getelementptr inbounds i8* %2, i64 24 ; <i8*> [#uses=1] | |
%10 = bitcast i8* %9 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %10, align 8 | |
%11 = invoke i8* @_Znam(i64 8192) | |
to label %.noexc unwind label %lpad ; <i8*> [#uses=1] | |
.noexc: ; preds = %bb | |
%12 = bitcast i8* %11 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=2] | |
%13 = getelementptr inbounds i8* %2, i64 8 ; <i8*> [#uses=1] | |
%14 = bitcast i8* %13 to %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=2] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %12, align 8 | |
br label %bb.bb_crit_edge.i.i | |
bb.bb_crit_edge.i.i: ; preds = %bb.bb_crit_edge.i.i, %.noexc | |
%indvar.i = phi i64 [ 0, %.noexc ], [ %tmp, %bb.bb_crit_edge.i.i ] ; <i64> [#uses=1] | |
%tmp = add i64 %indvar.i, 1 ; <i64> [#uses=3] | |
%.pre.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %14, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %.pre.i.i, i64 %tmp ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep.i.i, align 8 | |
%exitcond = icmp eq i64 %tmp, 1023 ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb2, label %bb.bb_crit_edge.i.i | |
bb2: ; preds = %bb.bb_crit_edge.i.i | |
store %"struct.hashtable<const char*,ident>"* %3, %"struct.hashtable<const char*,ident>"** @idents, align 8 | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%15 = phi %"struct.hashtable<const char*,ident>"* [ %3, %bb2 ], [ %0, %entry ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%16 = getelementptr inbounds %struct.ident* %v, i64 0, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %16, align 8 | |
%17 = getelementptr inbounds %struct.ident* %v, i64 0, i32 1 ; <i32*> [#uses=1] | |
store i32 0, i32* %17, align 8 | |
%18 = getelementptr inbounds %struct.ident* %v, i64 0, i32 2 ; <i8**> [#uses=1] | |
store i8* %name, i8** %18, align 8 | |
%19 = getelementptr inbounds %struct.ident* %v, i64 0, i32 3, i32 0 ; <i32*> [#uses=1] | |
store i32 %min, i32* %19, align 8 | |
%20 = getelementptr inbounds %struct.ident* %v, i64 0, i32 4, i32 0 ; <i32*> [#uses=1] | |
store i32 %max, i32* %20, align 4 | |
%21 = getelementptr inbounds %struct.ident* %v, i64 0, i32 5 ; <i32*> [#uses=1] | |
store i32 2147483647, i32* %21, align 8 | |
%22 = getelementptr inbounds %struct.ident* %v, i64 0, i32 6, i32 0 ; <void ()**> [#uses=1] | |
store void ()* %fun, void ()** %22, align 8 | |
%23 = icmp sgt i32 %min, %max ; <i1> [#uses=1] | |
%iftmp.15.0.i = select i1 %23, i32 8, i32 0 ; <i32> [#uses=1] | |
%24 = or i32 %iftmp.15.0.i, %flags ; <i32> [#uses=1] | |
%25 = getelementptr inbounds %struct.ident* %v, i64 0, i32 10 ; <i32*> [#uses=1] | |
store i32 %24, i32* %25, align 8 | |
%26 = getelementptr inbounds %struct.ident* %v, i64 0, i32 7, i32 0 ; <i8**> [#uses=1] | |
%27 = bitcast i8** %26 to i32* ; <i32*> [#uses=1] | |
store i32 %cur, i32* %27, align 8 | |
%28 = getelementptr inbounds %struct.ident* %v, i64 0, i32 9, i32 0 ; <i32**> [#uses=1] | |
store i32* %storage, i32** %28, align 8 | |
%29 = call %struct.ident* @_ZN9hashtableIPKc5identE6accessERKS1_RKS2_(%"struct.hashtable<const char*,ident>"* %15, i8** %name_addr, %struct.ident* %v) ; <%struct.ident*> [#uses=0] | |
ret i32 %cur | |
lpad: ; preds = %bb | |
%eh_ptr = call i8* @llvm.eh.exception() ; <i8*> [#uses=2] | |
%eh_select6 = call i32 (i8*, i8*, ...)* @llvm.eh.selector(i8* %eh_ptr, i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* null) ; <i32> [#uses=0] | |
call void @_ZdlPv(i8* %2) nounwind | |
call void @_Unwind_Resume_or_Rethrow(i8* %eh_ptr) | |
unreachable | |
} | |
define void @_Z3popPc(i8* %name) nounwind { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%1 = load i8* %name, align 1 ; <i8> [#uses=2] | |
%2 = icmp eq i8 %1, 0 ; <i1> [#uses=1] | |
br i1 %2, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %entry | |
%indvar.i.i = phi i64 [ %tmp, %bb.i.i ], [ 0, %entry ] ; <i64> [#uses=1] | |
%3 = phi i8 [ %7, %bb.i.i ], [ %1, %entry ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %6, %bb.i.i ], [ 5381, %entry ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %name, i64 %tmp ; <i8*> [#uses=1] | |
%4 = sext i8 %3 to i32 ; <i32> [#uses=1] | |
%5 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%6 = xor i32 %5, %4 ; <i32> [#uses=2] | |
%7 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%8 = icmp eq i8 %7, 0 ; <i1> [#uses=1] | |
br i1 %8, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %entry | |
%h.0.lcssa.i.i = phi i32 [ 5381, %entry ], [ %6, %bb.i.i ] ; <i32> [#uses=1] | |
%9 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%10 = load i32* %9, align 8 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, -1 ; <i32> [#uses=1] | |
%12 = and i32 %11, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%13 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%14 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %13, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%15 = zext i32 %12 to i64 ; <i64> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %14, i64 %15 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb.i: ; preds = %bb3.i | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%17 = tail call i32 @strcmp(i8* %name, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%18 = icmp eq i32 %17, 0 ; <i1> [#uses=1] | |
br i1 %18, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i | |
bb3.i: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %16, %_ZL6hthashPKc.exit.i ], [ %19, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=8] | |
%20 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %20, label %_Z8popidentR5ident.exit, label %bb.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%22 = icmp eq %struct.ident* %21, null ; <i1> [#uses=1] | |
br i1 %22, label %_Z8popidentR5ident.exit, label %bb | |
bb: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%23 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%24 = load i32* %23, align 8 ; <i32> [#uses=1] | |
%25 = icmp eq i32 %24, 5 ; <i1> [#uses=1] | |
br i1 %25, label %bb.i2, label %_Z8popidentR5ident.exit | |
bb.i2: ; preds = %bb | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=3] | |
%27 = load void ()** %26, align 8 ; <void ()*> [#uses=2] | |
%28 = icmp eq void ()* %27, null ; <i1> [#uses=1] | |
br i1 %28, label %_Z8popidentR5ident.exit, label %bb1.i3 | |
bb1.i3: ; preds = %bb.i2 | |
%29 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=2] | |
%30 = load i8** %29, align 8 ; <i8*> [#uses=3] | |
%31 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
%32 = load i8** %31, align 8 ; <i8*> [#uses=1] | |
%33 = icmp eq i8* %30, %32 ; <i1> [#uses=1] | |
%34 = icmp eq i8* %30, null ; <i1> [#uses=1] | |
%or.cond.i = or i1 %33, %34 ; <i1> [#uses=1] | |
br i1 %or.cond.i, label %bb4.i, label %bb3.i4 | |
bb3.i4: ; preds = %bb1.i3 | |
tail call void @_ZdaPv(i8* %30) nounwind | |
%.pre.i = load void ()** %26, align 8 ; <void ()*> [#uses=1] | |
br label %bb4.i | |
bb4.i: ; preds = %bb3.i4, %bb1.i3 | |
%35 = phi void ()* [ %27, %bb1.i3 ], [ %.pre.i, %bb3.i4 ] ; <void ()*> [#uses=3] | |
%36 = bitcast void ()* %35 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%37 = bitcast void ()* %35 to i8** ; <i8**> [#uses=1] | |
%38 = load i8** %37, align 8 ; <i8*> [#uses=1] | |
store i8* %38, i8** %29, align 8 | |
%39 = getelementptr inbounds %struct.identstack* %36, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%40 = load %struct.identstack** %39, align 8 ; <%struct.identstack*> [#uses=1] | |
%.c.i = bitcast %struct.identstack* %40 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i, void ()** %26 | |
%41 = bitcast void ()* %35 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %41) nounwind | |
ret void | |
_Z8popidentR5ident.exit: ; preds = %bb.i2, %bb, %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i | |
ret void | |
} | |
declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) nounwind | |
define void @_ZN7_stdcmdILi844EE3runEPcS1_S1_(i8* nocapture %cond, i8* %t, i8* %f) align 2 { | |
entry: | |
%0 = load i8* %cond, align 1 ; <i8> [#uses=3] | |
%1 = icmp eq i8 %0, 0 ; <i1> [#uses=1] | |
br i1 %1, label %bb6, label %bb | |
bb: ; preds = %entry | |
%2 = sext i8 %0 to i32 ; <i32> [#uses=1] | |
%3 = add i32 %2, -48 ; <i32> [#uses=1] | |
%4 = icmp ult i32 %3, 10 ; <i1> [#uses=1] | |
br i1 %4, label %bb4, label %bb.i | |
bb.i: ; preds = %bb | |
switch i8 %0, label %bb7 [ | |
i8 43, label %_ZL9isintegerPc.exit | |
i8 45, label %_ZL9isintegerPc.exit | |
i8 46, label %_ZL9isintegerPc.exit | |
] | |
_ZL9isintegerPc.exit: ; preds = %bb.i, %bb.i, %bb.i | |
%5 = getelementptr inbounds i8* %cond, i64 1 ; <i8*> [#uses=1] | |
%6 = load i8* %5, align 1 ; <i8> [#uses=1] | |
%7 = sext i8 %6 to i32 ; <i32> [#uses=1] | |
%8 = add i32 %7, -48 ; <i32> [#uses=1] | |
%phitmp = icmp ugt i32 %8, 9 ; <i1> [#uses=1] | |
br i1 %phitmp, label %bb7, label %bb4 | |
bb4: ; preds = %_ZL9isintegerPc.exit, %bb | |
%9 = tail call i64 @strtol(i8* noalias nocapture %cond, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%10 = trunc i64 %9 to i32 ; <i32> [#uses=1] | |
%11 = icmp eq i32 %10, 0 ; <i1> [#uses=1] | |
br i1 %11, label %bb6, label %bb7 | |
bb6: ; preds = %bb4, %entry | |
br label %bb7 | |
bb7: ; preds = %bb6, %bb4, %_ZL9isintegerPc.exit, %bb.i | |
%iftmp.149.0 = phi i8* [ %f, %bb6 ], [ %t, %bb4 ], [ %t, %_ZL9isintegerPc.exit ], [ %t, %bb.i ] ; <i8*> [#uses=1] | |
%12 = tail call i8* @_Z10executeretPKc(i8* %iftmp.149.0) ; <i8*> [#uses=1] | |
store i8* %12, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi858EE3runEPcPiS1_(i8* %var, i32* nocapture %n, i8* %body) align 2 { | |
entry: | |
%0 = load i32* %n, align 4 ; <i32> [#uses=1] | |
%1 = icmp slt i32 %0, 1 ; <i1> [#uses=1] | |
br i1 %1, label %_Z8popidentR5ident.exit, label %bb | |
bb: ; preds = %entry | |
%2 = tail call %struct.ident* @_Z8newidentPKc(i8* %var) ; <%struct.ident*> [#uses=7] | |
%3 = getelementptr inbounds %struct.ident* %2, i64 0, i32 1 ; <i32*> [#uses=3] | |
%4 = load i32* %3, align 8 ; <i32> [#uses=2] | |
%5 = icmp eq i32 %4, 5 ; <i1> [#uses=1] | |
br i1 %5, label %bb6.preheader, label %_Z8popidentR5ident.exit | |
bb6.preheader: ; preds = %bb | |
%6 = load i32* %n, align 4 ; <i32> [#uses=1] | |
%7 = icmp sgt i32 %6, 0 ; <i1> [#uses=1] | |
br i1 %7, label %bb.nph, label %bb7 | |
bb.nph: ; preds = %bb6.preheader | |
%8 = getelementptr inbounds %struct.ident* %2, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%9 = getelementptr inbounds %struct.ident* %2, i64 0, i32 7, i32 0 ; <i8**> [#uses=3] | |
%10 = getelementptr inbounds %struct.ident* %2, i64 0, i32 6, i32 0 ; <void ()**> [#uses=2] | |
br label %bb2 | |
bb2: ; preds = %_Z7executePKc.exit, %bb.nph | |
%11 = phi i32 [ 0, %bb.nph ], [ %tmp, %_Z7executePKc.exit ] ; <i32> [#uses=3] | |
%tmp = add i32 %11, 1 ; <i32> [#uses=2] | |
%12 = icmp eq i32 %11, 0 ; <i1> [#uses=1] | |
br i1 %12, label %bb4, label %bb3 | |
bb3: ; preds = %bb2 | |
%13 = load i8** %9, align 8 ; <i8*> [#uses=1] | |
%14 = tail call i32 (i8*, i8*, ...)* @sprintf(i8* noalias %13, i8* noalias getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %11) nounwind ; <i32> [#uses=0] | |
br label %bb5 | |
bb4: ; preds = %bb2 | |
%15 = tail call i8* @_Znam(i64 17) ; <i8*> [#uses=3] | |
%16 = tail call i8* @strncpy(i8* noalias %15, i8* noalias getelementptr inbounds ([2 x i8]* @.str148, i64 0, i64 0), i64 17) nounwind ; <i8*> [#uses=0] | |
%17 = getelementptr inbounds i8* %15, i64 16 ; <i8*> [#uses=1] | |
store i8 0, i8* %17, align 1 | |
%18 = load i32* %3, align 8 ; <i32> [#uses=1] | |
%19 = icmp eq i32 %18, 5 ; <i1> [#uses=1] | |
br i1 %19, label %bb.i10, label %bb5 | |
bb.i10: ; preds = %bb4 | |
%20 = tail call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%21 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
%22 = load i8** %9, align 8 ; <i8*> [#uses=4] | |
%23 = icmp eq i8* %21, %22 ; <i1> [#uses=1] | |
br i1 %23, label %bb1.i11, label %bb3.i13 | |
bb1.i11: ; preds = %bb.i10 | |
%24 = tail call i64 @strlen(i8* %22) nounwind readonly ; <i64> [#uses=2] | |
%25 = add i64 %24, 1 ; <i64> [#uses=2] | |
%26 = tail call i8* @_Znam(i64 %25) ; <i8*> [#uses=3] | |
%27 = tail call i8* @strncpy(i8* noalias %26, i8* noalias %22, i64 %25) nounwind ; <i8*> [#uses=0] | |
%28 = getelementptr inbounds i8* %26, i64 %24 ; <i8*> [#uses=1] | |
store i8 0, i8* %28, align 1 | |
br label %bb3.i13 | |
bb3.i13: ; preds = %bb1.i11, %bb.i10 | |
%iftmp.29.0.i = phi i8* [ %26, %bb1.i11 ], [ %22, %bb.i10 ] ; <i8*> [#uses=1] | |
%29 = bitcast i8* %20 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0.i, i8** %29, align 8 | |
%30 = load void ()** %10, align 8 ; <void ()*> [#uses=1] | |
%31 = bitcast void ()* %30 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%32 = getelementptr inbounds i8* %20, i64 8 ; <i8*> [#uses=1] | |
%33 = bitcast i8* %32 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %31, %struct.identstack** %33, align 8 | |
%.c.i12 = bitcast i8* %20 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i12, void ()** %10 | |
store i8* %15, i8** %9, align 8 | |
br label %bb5 | |
bb5: ; preds = %bb3.i13, %bb4, %bb3 | |
%34 = tail call i8* @_Z10executeretPKc(i8* %body) ; <i8*> [#uses=2] | |
%35 = icmp eq i8* %34, null ; <i1> [#uses=1] | |
br i1 %35, label %_Z7executePKc.exit, label %bb.i9 | |
bb.i9: ; preds = %bb5 | |
tail call void @_ZdaPv(i8* %34) nounwind | |
br label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb.i9, %bb5 | |
%36 = load i32* %n, align 4 ; <i32> [#uses=1] | |
%37 = icmp sgt i32 %36, %tmp ; <i1> [#uses=1] | |
br i1 %37, label %bb2, label %bb6.bb7_crit_edge | |
bb6.bb7_crit_edge: ; preds = %_Z7executePKc.exit | |
%.pre = load i32* %3, align 8 ; <i32> [#uses=1] | |
br label %bb7 | |
bb7: ; preds = %bb6.bb7_crit_edge, %bb6.preheader | |
%38 = phi i32 [ %.pre, %bb6.bb7_crit_edge ], [ %4, %bb6.preheader ] ; <i32> [#uses=1] | |
%39 = icmp eq i32 %38, 5 ; <i1> [#uses=1] | |
br i1 %39, label %bb.i, label %_Z8popidentR5ident.exit | |
bb.i: ; preds = %bb7 | |
%40 = getelementptr inbounds %struct.ident* %2, i64 0, i32 6, i32 0 ; <void ()**> [#uses=3] | |
%41 = load void ()** %40, align 8 ; <void ()*> [#uses=2] | |
%42 = icmp eq void ()* %41, null ; <i1> [#uses=1] | |
br i1 %42, label %_Z8popidentR5ident.exit, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%43 = getelementptr inbounds %struct.ident* %2, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%44 = load i8** %43, align 8 ; <i8*> [#uses=3] | |
%45 = getelementptr inbounds %struct.ident* %2, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%46 = load i8** %45, align 8 ; <i8*> [#uses=1] | |
%47 = icmp eq i8* %44, %46 ; <i1> [#uses=1] | |
%48 = icmp eq i8* %44, null ; <i1> [#uses=1] | |
%or.cond.i = or i1 %47, %48 ; <i1> [#uses=1] | |
br i1 %or.cond.i, label %bb4.i, label %bb3.i | |
bb3.i: ; preds = %bb1.i | |
tail call void @_ZdaPv(i8* %44) nounwind | |
%.pre.i = load void ()** %40, align 8 ; <void ()*> [#uses=1] | |
br label %bb4.i | |
bb4.i: ; preds = %bb3.i, %bb1.i | |
%49 = phi void ()* [ %41, %bb1.i ], [ %.pre.i, %bb3.i ] ; <void ()*> [#uses=3] | |
%50 = bitcast void ()* %49 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%51 = bitcast void ()* %49 to i8** ; <i8**> [#uses=1] | |
%52 = load i8** %51, align 8 ; <i8*> [#uses=1] | |
store i8* %52, i8** %43, align 8 | |
%53 = getelementptr inbounds %struct.identstack* %50, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%54 = load %struct.identstack** %53, align 8 ; <%struct.identstack*> [#uses=1] | |
%.c.i = bitcast %struct.identstack* %54 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i, void ()** %40 | |
%55 = bitcast void ()* %49 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %55) nounwind | |
ret void | |
_Z8popidentR5ident.exit: ; preds = %bb.i, %bb7, %bb, %entry | |
ret void | |
} | |
define void @_ZN7_stdcmdILi872EE3runEPcPiS1_S1_(i8* %var, i32* nocapture %n, i8* %cond, i8* %body) align 2 { | |
entry: | |
%0 = load i32* %n, align 4 ; <i32> [#uses=1] | |
%1 = icmp slt i32 %0, 1 ; <i1> [#uses=1] | |
br i1 %1, label %_Z8popidentR5ident.exit, label %bb | |
bb: ; preds = %entry | |
%2 = tail call %struct.ident* @_Z8newidentPKc(i8* %var) ; <%struct.ident*> [#uses=4] | |
%3 = getelementptr inbounds %struct.ident* %2, i64 0, i32 1 ; <i32*> [#uses=3] | |
%4 = load i32* %3, align 8 ; <i32> [#uses=1] | |
%5 = icmp eq i32 %4, 5 ; <i1> [#uses=1] | |
br i1 %5, label %bb7.preheader, label %_Z8popidentR5ident.exit | |
bb7.preheader: ; preds = %bb | |
%6 = getelementptr inbounds %struct.ident* %2, i64 0, i32 8, i32 0 ; <i8**> [#uses=2] | |
%7 = getelementptr inbounds %struct.ident* %2, i64 0, i32 7, i32 0 ; <i8**> [#uses=5] | |
%8 = getelementptr inbounds %struct.ident* %2, i64 0, i32 6, i32 0 ; <void ()**> [#uses=5] | |
br label %bb7 | |
bb2: ; preds = %bb7 | |
%9 = icmp eq i32 %38, 0 ; <i1> [#uses=1] | |
br i1 %9, label %bb4, label %bb3 | |
bb3: ; preds = %bb2 | |
%10 = load i8** %7, align 8 ; <i8*> [#uses=1] | |
%11 = tail call i32 (i8*, i8*, ...)* @sprintf(i8* noalias %10, i8* noalias getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %38) nounwind ; <i32> [#uses=0] | |
br label %bb5 | |
bb4: ; preds = %bb2 | |
%12 = tail call i8* @_Znam(i64 17) ; <i8*> [#uses=3] | |
%13 = tail call i8* @strncpy(i8* noalias %12, i8* noalias getelementptr inbounds ([2 x i8]* @.str148, i64 0, i64 0), i64 17) nounwind ; <i8*> [#uses=0] | |
%14 = getelementptr inbounds i8* %12, i64 16 ; <i8*> [#uses=1] | |
store i8 0, i8* %14, align 1 | |
%15 = load i32* %3, align 8 ; <i32> [#uses=1] | |
%16 = icmp eq i32 %15, 5 ; <i1> [#uses=1] | |
br i1 %16, label %bb.i14, label %bb5 | |
bb.i14: ; preds = %bb4 | |
%17 = tail call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%18 = load i8** %6, align 8 ; <i8*> [#uses=1] | |
%19 = load i8** %7, align 8 ; <i8*> [#uses=4] | |
%20 = icmp eq i8* %18, %19 ; <i1> [#uses=1] | |
br i1 %20, label %bb1.i15, label %bb3.i17 | |
bb1.i15: ; preds = %bb.i14 | |
%21 = tail call i64 @strlen(i8* %19) nounwind readonly ; <i64> [#uses=2] | |
%22 = add i64 %21, 1 ; <i64> [#uses=2] | |
%23 = tail call i8* @_Znam(i64 %22) ; <i8*> [#uses=3] | |
%24 = tail call i8* @strncpy(i8* noalias %23, i8* noalias %19, i64 %22) nounwind ; <i8*> [#uses=0] | |
%25 = getelementptr inbounds i8* %23, i64 %21 ; <i8*> [#uses=1] | |
store i8 0, i8* %25, align 1 | |
br label %bb3.i17 | |
bb3.i17: ; preds = %bb1.i15, %bb.i14 | |
%iftmp.29.0.i = phi i8* [ %23, %bb1.i15 ], [ %19, %bb.i14 ] ; <i8*> [#uses=1] | |
%26 = bitcast i8* %17 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0.i, i8** %26, align 8 | |
%27 = load void ()** %8, align 8 ; <void ()*> [#uses=1] | |
%28 = bitcast void ()* %27 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%29 = getelementptr inbounds i8* %17, i64 8 ; <i8*> [#uses=1] | |
%30 = bitcast i8* %29 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %28, %struct.identstack** %30, align 8 | |
%.c.i16 = bitcast i8* %17 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i16, void ()** %8 | |
store i8* %12, i8** %7, align 8 | |
br label %bb5 | |
bb5: ; preds = %bb3.i17, %bb4, %bb3 | |
%31 = tail call i8* @_Z10executeretPKc(i8* %cond) ; <i8*> [#uses=3] | |
%32 = icmp eq i8* %31, null ; <i1> [#uses=1] | |
br i1 %32, label %bb8, label %_Z7executePKc.exit13 | |
_Z7executePKc.exit13: ; preds = %bb5 | |
%33 = tail call i64 @strtol(i8* noalias nocapture %31, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%34 = trunc i64 %33 to i32 ; <i32> [#uses=1] | |
tail call void @_ZdaPv(i8* %31) nounwind | |
%phitmp = icmp eq i32 %34, 0 ; <i1> [#uses=1] | |
br i1 %phitmp, label %bb8, label %bb6 | |
bb6: ; preds = %_Z7executePKc.exit13 | |
%35 = tail call i8* @_Z10executeretPKc(i8* %body) ; <i8*> [#uses=2] | |
%36 = icmp eq i8* %35, null ; <i1> [#uses=1] | |
br i1 %36, label %_Z7executePKc.exit, label %bb.i10 | |
bb.i10: ; preds = %bb6 | |
tail call void @_ZdaPv(i8* %35) nounwind | |
br label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb.i10, %bb6 | |
%37 = add nsw i32 %38, 1 ; <i32> [#uses=1] | |
br label %bb7 | |
bb7: ; preds = %_Z7executePKc.exit, %bb7.preheader | |
%38 = phi i32 [ %37, %_Z7executePKc.exit ], [ 0, %bb7.preheader ] ; <i32> [#uses=4] | |
%39 = load i32* %n, align 4 ; <i32> [#uses=1] | |
%40 = icmp sgt i32 %39, %38 ; <i1> [#uses=1] | |
br i1 %40, label %bb2, label %bb8 | |
bb8: ; preds = %bb7, %_Z7executePKc.exit13, %bb5 | |
%41 = load i32* %3, align 8 ; <i32> [#uses=1] | |
%42 = icmp eq i32 %41, 5 ; <i1> [#uses=1] | |
br i1 %42, label %bb.i, label %_Z8popidentR5ident.exit | |
bb.i: ; preds = %bb8 | |
%43 = load void ()** %8, align 8 ; <void ()*> [#uses=2] | |
%44 = icmp eq void ()* %43, null ; <i1> [#uses=1] | |
br i1 %44, label %_Z8popidentR5ident.exit, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%45 = load i8** %7, align 8 ; <i8*> [#uses=3] | |
%46 = load i8** %6, align 8 ; <i8*> [#uses=1] | |
%47 = icmp eq i8* %45, %46 ; <i1> [#uses=1] | |
%48 = icmp eq i8* %45, null ; <i1> [#uses=1] | |
%or.cond.i = or i1 %47, %48 ; <i1> [#uses=1] | |
br i1 %or.cond.i, label %bb4.i, label %bb3.i | |
bb3.i: ; preds = %bb1.i | |
tail call void @_ZdaPv(i8* %45) nounwind | |
%.pre.i = load void ()** %8, align 8 ; <void ()*> [#uses=1] | |
br label %bb4.i | |
bb4.i: ; preds = %bb3.i, %bb1.i | |
%49 = phi void ()* [ %43, %bb1.i ], [ %.pre.i, %bb3.i ] ; <void ()*> [#uses=3] | |
%50 = bitcast void ()* %49 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%51 = bitcast void ()* %49 to i8** ; <i8**> [#uses=1] | |
%52 = load i8** %51, align 8 ; <i8*> [#uses=1] | |
store i8* %52, i8** %7, align 8 | |
%53 = getelementptr inbounds %struct.identstack* %50, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%54 = load %struct.identstack** %53, align 8 ; <%struct.identstack*> [#uses=1] | |
%.c.i = bitcast %struct.identstack* %54 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i, void ()** %8 | |
%55 = bitcast void ()* %49 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %55) nounwind | |
ret void | |
_Z8popidentR5ident.exit: ; preds = %bb.i, %bb8, %bb, %entry | |
ret void | |
} | |
define void @_ZN7_stdcmdILi873EE3runEPcS1_(i8* %cond, i8* %body) align 2 { | |
entry: | |
br label %bb1 | |
bb: ; preds = %_Z7executePKc.exit5 | |
%0 = tail call i8* @_Z10executeretPKc(i8* %body) ; <i8*> [#uses=2] | |
%1 = icmp eq i8* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb1, label %bb.i | |
bb.i: ; preds = %bb | |
tail call void @_ZdaPv(i8* %0) nounwind | |
br label %bb1 | |
bb1: ; preds = %bb.i, %bb, %entry | |
%2 = tail call i8* @_Z10executeretPKc(i8* %cond) ; <i8*> [#uses=3] | |
%3 = icmp eq i8* %2, null ; <i1> [#uses=1] | |
br i1 %3, label %return, label %_Z7executePKc.exit5 | |
_Z7executePKc.exit5: ; preds = %bb1 | |
%4 = tail call i64 @strtol(i8* noalias nocapture %2, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%5 = trunc i64 %4 to i32 ; <i32> [#uses=1] | |
tail call void @_ZdaPv(i8* %2) nounwind | |
%phitmp = icmp eq i32 %5, 0 ; <i1> [#uses=1] | |
br i1 %phitmp, label %return, label %bb | |
return: ; preds = %_Z7executePKc.exit5, %bb1 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1070EE3runEPcS1_S1_(i8* %var, i8* %list, i8* %body) align 2 { | |
entry: | |
tail call void @_Z8looplistPKcS0_S0_b(i8* %var, i8* %list, i8* %body, i8 zeroext 1) | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1071EE3runEPcS1_S1_(i8* %var, i8* %list, i8* %body) align 2 { | |
entry: | |
tail call void @_Z8looplistPKcS0_S0_b(i8* %var, i8* %list, i8* %body, i8 zeroext 0) | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1106EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
br label %bb2 | |
bb: ; preds = %bb2 | |
%scevgep = getelementptr i8** %args, i64 %indvar ; <i8**> [#uses=1] | |
%1 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%2 = call i8* @_Z10executeretPKc(i8* %1) ; <i8*> [#uses=3] | |
%3 = icmp eq i8* %2, null ; <i1> [#uses=1] | |
br i1 %3, label %bb3, label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb | |
%4 = call i64 @strtol(i8* noalias nocapture %2, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%5 = trunc i64 %4 to i32 ; <i32> [#uses=3] | |
call void @_ZdaPv(i8* %2) nounwind | |
%6 = icmp eq i32 %5, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb3, label %bb1 | |
bb1: ; preds = %_Z7executePKc.exit | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb1, %entry | |
%indvar = phi i64 [ %indvar.next, %bb1 ], [ 0, %entry ] ; <i64> [#uses=3] | |
%val.0 = phi i32 [ %5, %bb1 ], [ 1, %entry ] ; <i32> [#uses=1] | |
%i.0 = trunc i64 %indvar to i32 ; <i32> [#uses=1] | |
%7 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%8 = icmp sgt i32 %7, %i.0 ; <i1> [#uses=1] | |
br i1 %8, label %bb, label %bb3 | |
bb3: ; preds = %bb2, %_Z7executePKc.exit, %bb | |
%val.1 = phi i32 [ %5, %_Z7executePKc.exit ], [ %val.0, %bb2 ], [ 0, %bb ] ; <i32> [#uses=1] | |
%9 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%10 = add nsw i32 %9, 1 ; <i32> [#uses=1] | |
%11 = srem i32 %10, 3 ; <i32> [#uses=2] | |
store i32 %11, i32* @_ZL6retidx, align 4 | |
%12 = sext i32 %11 to i64 ; <i64> [#uses=1] | |
%13 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %12, i64 0 ; <i8*> [#uses=1] | |
%14 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %13, i8** %14, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %val.1) nounwind | |
%15 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%16 = sext i32 %15 to i64 ; <i64> [#uses=1] | |
%17 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %16, i64 0 ; <i8*> [#uses=2] | |
%18 = call i64 @strlen(i8* %17) nounwind readonly ; <i64> [#uses=2] | |
%19 = add i64 %18, 1 ; <i64> [#uses=2] | |
%20 = call i8* @_Znam(i64 %19) ; <i8*> [#uses=3] | |
%21 = call i8* @strncpy(i8* noalias %20, i8* noalias %17, i64 %19) nounwind ; <i8*> [#uses=0] | |
%22 = getelementptr inbounds i8* %20, i64 %18 ; <i8*> [#uses=1] | |
store i8 0, i8* %22, align 1 | |
store i8* %20, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1112EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
br label %bb2 | |
bb: ; preds = %bb2 | |
%scevgep = getelementptr i8** %args, i64 %indvar ; <i8**> [#uses=1] | |
%1 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%2 = call i8* @_Z10executeretPKc(i8* %1) ; <i8*> [#uses=3] | |
%3 = icmp eq i8* %2, null ; <i1> [#uses=1] | |
br i1 %3, label %bb1, label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb | |
%4 = call i64 @strtol(i8* noalias nocapture %2, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%5 = trunc i64 %4 to i32 ; <i32> [#uses=3] | |
call void @_ZdaPv(i8* %2) nounwind | |
%6 = icmp eq i32 %5, 0 ; <i1> [#uses=1] | |
br i1 %6, label %bb1, label %bb3 | |
bb1: ; preds = %_Z7executePKc.exit, %bb | |
%7 = phi i32 [ %5, %_Z7executePKc.exit ], [ 0, %bb ] ; <i32> [#uses=1] | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb1, %entry | |
%indvar = phi i64 [ %indvar.next, %bb1 ], [ 0, %entry ] ; <i64> [#uses=3] | |
%val.0 = phi i32 [ %7, %bb1 ], [ 0, %entry ] ; <i32> [#uses=1] | |
%i.0 = trunc i64 %indvar to i32 ; <i32> [#uses=1] | |
%8 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%9 = icmp sgt i32 %8, %i.0 ; <i1> [#uses=1] | |
br i1 %9, label %bb, label %bb3 | |
bb3: ; preds = %bb2, %_Z7executePKc.exit | |
%val.1 = phi i32 [ %5, %_Z7executePKc.exit ], [ %val.0, %bb2 ] ; <i32> [#uses=1] | |
%10 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%11 = add nsw i32 %10, 1 ; <i32> [#uses=1] | |
%12 = srem i32 %11, 3 ; <i32> [#uses=2] | |
store i32 %12, i32* @_ZL6retidx, align 4 | |
%13 = sext i32 %12 to i64 ; <i64> [#uses=1] | |
%14 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %13, i64 0 ; <i8*> [#uses=1] | |
%15 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %14, i8** %15, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %val.1) nounwind | |
%16 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%17 = sext i32 %16 to i64 ; <i64> [#uses=1] | |
%18 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %17, i64 0 ; <i8*> [#uses=2] | |
%19 = call i64 @strlen(i8* %18) nounwind readonly ; <i64> [#uses=2] | |
%20 = add i64 %19, 1 ; <i64> [#uses=2] | |
%21 = call i8* @_Znam(i64 %20) ; <i8*> [#uses=3] | |
%22 = call i8* @strncpy(i8* noalias %21, i8* noalias %18, i64 %20) nounwind ; <i8*> [#uses=0] | |
%23 = getelementptr inbounds i8* %21, i64 %19 ; <i8*> [#uses=1] | |
store i8 0, i8* %23, align 1 | |
store i8* %21, i8** @commandret, align 8 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1165EE3runEPPcPi(i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
br label %bb4 | |
bb: ; preds = %bb4 | |
%scevgep = getelementptr i8** %args, i64 %tmp ; <i8**> [#uses=1] | |
%0 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%1 = tail call i8* @_Z10executeretPKc(i8* %0) ; <i8*> [#uses=3] | |
%2 = icmp eq i8* %1, null ; <i1> [#uses=1] | |
br i1 %2, label %bb3, label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb | |
%3 = tail call i64 @strtol(i8* noalias nocapture %1, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%4 = trunc i64 %3 to i32 ; <i32> [#uses=1] | |
tail call void @_ZdaPv(i8* %1) nounwind | |
%phitmp = icmp eq i32 %4, 0 ; <i1> [#uses=1] | |
br i1 %phitmp, label %bb3, label %bb1 | |
bb1: ; preds = %_Z7executePKc.exit | |
%5 = or i32 %i.0, 1 ; <i32> [#uses=2] | |
%6 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%7 = icmp slt i32 %5, %6 ; <i1> [#uses=1] | |
br i1 %7, label %bb2, label %return | |
bb2: ; preds = %bb1 | |
%8 = sext i32 %5 to i64 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds i8** %args, i64 %8 ; <i8**> [#uses=1] | |
%10 = load i8** %9, align 8 ; <i8*> [#uses=1] | |
%11 = tail call i8* @_Z10executeretPKc(i8* %10) ; <i8*> [#uses=1] | |
store i8* %11, i8** @commandret, align 8 | |
ret void | |
bb3: ; preds = %_Z7executePKc.exit, %bb | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb3, %entry | |
%indvar = phi i64 [ %indvar.next, %bb3 ], [ 0, %entry ] ; <i64> [#uses=2] | |
%tmp = shl i64 %indvar, 1 ; <i64> [#uses=2] | |
%i.0 = trunc i64 %tmp to i32 ; <i32> [#uses=2] | |
%12 = load i32* %numargs, align 4 ; <i32> [#uses=1] | |
%13 = icmp sgt i32 %12, %i.0 ; <i1> [#uses=1] | |
br i1 %13, label %bb, label %return | |
return: ; preds = %bb4, %bb1 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1180EE3runEPiPPcS1_(i32* nocapture %val, i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%0 = load i32* %numargs, align 4 ; <i32> [#uses=2] | |
br label %bb3 | |
bb: ; preds = %bb3 | |
%scevgep = getelementptr i8** %args, i64 %tmp913 ; <i8**> [#uses=1] | |
%1 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%2 = tail call i64 @strtol(i8* noalias nocapture %1, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%3 = trunc i64 %2 to i32 ; <i32> [#uses=1] | |
%4 = load i32* %val, align 4 ; <i32> [#uses=1] | |
%5 = icmp eq i32 %3, %4 ; <i1> [#uses=1] | |
br i1 %5, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%6 = add nsw i32 %i.0, 1 ; <i32> [#uses=1] | |
%7 = sext i32 %6 to i64 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds i8** %args, i64 %7 ; <i8**> [#uses=1] | |
%9 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
%10 = tail call i8* @_Z10executeretPKc(i8* %9) ; <i8*> [#uses=1] | |
store i8* %10, i8** @commandret, align 8 | |
ret void | |
bb2: ; preds = %bb | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%indvar = phi i64 [ %indvar.next, %bb2 ], [ 0, %entry ] ; <i64> [#uses=2] | |
%tmp = shl i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp913 = or i64 %tmp, 1 ; <i64> [#uses=2] | |
%i.0 = trunc i64 %tmp913 to i32 ; <i32> [#uses=3] | |
%tmp11 = add i64 %tmp, 2 ; <i64> [#uses=1] | |
%tmp12 = trunc i64 %tmp11 to i32 ; <i32> [#uses=1] | |
%11 = icmp slt i32 %tmp12, %0 ; <i1> [#uses=1] | |
br i1 %11, label %bb, label %bb4 | |
bb4: ; preds = %bb3 | |
%12 = icmp sgt i32 %0, %i.0 ; <i1> [#uses=1] | |
br i1 %12, label %bb5, label %return | |
bb5: ; preds = %bb4 | |
%13 = sext i32 %i.0 to i64 ; <i64> [#uses=1] | |
%14 = getelementptr inbounds i8** %args, i64 %13 ; <i8**> [#uses=1] | |
%15 = load i8** %14, align 8 ; <i8*> [#uses=1] | |
%16 = tail call i8* @_Z10executeretPKc(i8* %15) ; <i8*> [#uses=1] | |
store i8* %16, i8** @commandret, align 8 | |
ret void | |
return: ; preds = %bb4 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1181EE3runEPfPPcPi(float* nocapture %val, i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%end.i = alloca i8*, align 8 ; <i8**> [#uses=2] | |
br label %bb3 | |
bb: ; preds = %bb3 | |
%scevgep = getelementptr i8** %args, i64 %tmp913 ; <i8**> [#uses=1] | |
%0 = load i8** %scevgep, align 8 ; <i8*> [#uses=3] | |
%1 = call double @strtod(i8* noalias %0, i8** noalias %end.i) nounwind ; <double> [#uses=2] | |
%2 = fcmp une double %1, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %2, label %bb4.i, label %bb.i | |
bb.i: ; preds = %bb | |
%3 = load i8** %end.i, align 8 ; <i8*> [#uses=2] | |
%4 = icmp eq i8* %3, %0 ; <i1> [#uses=1] | |
br i1 %4, label %bb4.i, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%5 = load i8* %3, align 1 ; <i8> [#uses=1] | |
switch i8 %5, label %bb4.i [ | |
i8 88, label %bb5.i | |
i8 120, label %bb5.i | |
] | |
bb4.i: ; preds = %bb1.i, %bb.i, %bb | |
%6 = fptrunc double %1 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit | |
bb5.i: ; preds = %bb1.i, %bb1.i | |
%7 = call i64 @strtol(i8* noalias nocapture %0, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%8 = trunc i64 %7 to i32 ; <i32> [#uses=1] | |
%9 = sitofp i32 %8 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit | |
_ZL10parsefloatPKc.exit: ; preds = %bb5.i, %bb4.i | |
%10 = phi float [ %9, %bb5.i ], [ %6, %bb4.i ] ; <float> [#uses=1] | |
%11 = load float* %val, align 4 ; <float> [#uses=1] | |
%12 = fcmp oeq float %10, %11 ; <i1> [#uses=1] | |
br i1 %12, label %bb1, label %bb2 | |
bb1: ; preds = %_ZL10parsefloatPKc.exit | |
%13 = add nsw i32 %i.0, 1 ; <i32> [#uses=1] | |
%14 = sext i32 %13 to i64 ; <i64> [#uses=1] | |
%15 = getelementptr inbounds i8** %args, i64 %14 ; <i8**> [#uses=1] | |
%16 = load i8** %15, align 8 ; <i8*> [#uses=1] | |
%17 = call i8* @_Z10executeretPKc(i8* %16) ; <i8*> [#uses=1] | |
store i8* %17, i8** @commandret, align 8 | |
ret void | |
bb2: ; preds = %_ZL10parsefloatPKc.exit | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%indvar = phi i64 [ %indvar.next, %bb2 ], [ 0, %entry ] ; <i64> [#uses=2] | |
%tmp = shl i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp913 = or i64 %tmp, 1 ; <i64> [#uses=2] | |
%i.0 = trunc i64 %tmp913 to i32 ; <i32> [#uses=3] | |
%tmp11 = add i64 %tmp, 2 ; <i64> [#uses=1] | |
%tmp12 = trunc i64 %tmp11 to i32 ; <i32> [#uses=1] | |
%18 = load i32* %numargs, align 4 ; <i32> [#uses=2] | |
%19 = icmp slt i32 %tmp12, %18 ; <i1> [#uses=1] | |
br i1 %19, label %bb, label %bb4 | |
bb4: ; preds = %bb3 | |
%20 = icmp sgt i32 %18, %i.0 ; <i1> [#uses=1] | |
br i1 %20, label %bb5, label %return | |
bb5: ; preds = %bb4 | |
%21 = sext i32 %i.0 to i64 ; <i64> [#uses=1] | |
%22 = getelementptr inbounds i8** %args, i64 %21 ; <i8**> [#uses=1] | |
%23 = load i8** %22, align 8 ; <i8*> [#uses=1] | |
%24 = call i8* @_Z10executeretPKc(i8* %23) ; <i8*> [#uses=1] | |
store i8* %24, i8** @commandret, align 8 | |
ret void | |
return: ; preds = %bb4 | |
ret void | |
} | |
define void @_ZN7_stdcmdILi1182EE3runEPcPS1_Pi(i8* nocapture %val, i8** nocapture %args, i32* nocapture %numargs) align 2 { | |
entry: | |
%0 = load i32* %numargs, align 4 ; <i32> [#uses=2] | |
br label %bb3 | |
bb: ; preds = %bb3 | |
%scevgep = getelementptr i8** %args, i64 %tmp913 ; <i8**> [#uses=1] | |
%1 = load i8** %scevgep, align 8 ; <i8*> [#uses=1] | |
%2 = tail call i32 @strcmp(i8* %1, i8* %val) nounwind readonly ; <i32> [#uses=1] | |
%3 = icmp eq i32 %2, 0 ; <i1> [#uses=1] | |
br i1 %3, label %bb1, label %bb2 | |
bb1: ; preds = %bb | |
%4 = add nsw i32 %i.0, 1 ; <i32> [#uses=1] | |
%5 = sext i32 %4 to i64 ; <i64> [#uses=1] | |
%6 = getelementptr inbounds i8** %args, i64 %5 ; <i8**> [#uses=1] | |
%7 = load i8** %6, align 8 ; <i8*> [#uses=1] | |
%8 = tail call i8* @_Z10executeretPKc(i8* %7) ; <i8*> [#uses=1] | |
store i8* %8, i8** @commandret, align 8 | |
ret void | |
bb2: ; preds = %bb | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb3 | |
bb3: ; preds = %bb2, %entry | |
%indvar = phi i64 [ %indvar.next, %bb2 ], [ 0, %entry ] ; <i64> [#uses=2] | |
%tmp = shl i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp913 = or i64 %tmp, 1 ; <i64> [#uses=2] | |
%i.0 = trunc i64 %tmp913 to i32 ; <i32> [#uses=3] | |
%tmp11 = add i64 %tmp, 2 ; <i64> [#uses=1] | |
%tmp12 = trunc i64 %tmp11 to i32 ; <i32> [#uses=1] | |
%9 = icmp slt i32 %tmp12, %0 ; <i1> [#uses=1] | |
br i1 %9, label %bb, label %bb4 | |
bb4: ; preds = %bb3 | |
%10 = icmp sgt i32 %0, %i.0 ; <i1> [#uses=1] | |
br i1 %10, label %bb5, label %return | |
bb5: ; preds = %bb4 | |
%11 = sext i32 %i.0 to i64 ; <i64> [#uses=1] | |
%12 = getelementptr inbounds i8** %args, i64 %11 ; <i8**> [#uses=1] | |
%13 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
%14 = tail call i8* @_Z10executeretPKc(i8* %13) ; <i8*> [#uses=1] | |
store i8* %14, i8** @commandret, align 8 | |
ret void | |
return: ; preds = %bb4 | |
ret void | |
} | |
define void @_Z8popidentR5ident(%struct.ident* nocapture %id) nounwind { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %id, i64 0, i32 1 ; <i32*> [#uses=1] | |
%1 = load i32* %0, align 8 ; <i32> [#uses=1] | |
%2 = icmp eq i32 %1, 5 ; <i1> [#uses=1] | |
br i1 %2, label %bb, label %return | |
bb: ; preds = %entry | |
%3 = getelementptr inbounds %struct.ident* %id, i64 0, i32 6, i32 0 ; <void ()**> [#uses=3] | |
%4 = load void ()** %3, align 8 ; <void ()*> [#uses=2] | |
%5 = icmp eq void ()* %4, null ; <i1> [#uses=1] | |
br i1 %5, label %return, label %bb1 | |
bb1: ; preds = %bb | |
%6 = getelementptr inbounds %struct.ident* %id, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%7 = load i8** %6, align 8 ; <i8*> [#uses=3] | |
%8 = getelementptr inbounds %struct.ident* %id, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%9 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
%10 = icmp eq i8* %7, %9 ; <i1> [#uses=1] | |
%11 = icmp eq i8* %7, null ; <i1> [#uses=1] | |
%or.cond = or i1 %10, %11 ; <i1> [#uses=1] | |
br i1 %or.cond, label %bb4, label %bb3 | |
bb3: ; preds = %bb1 | |
tail call void @_ZdaPv(i8* %7) nounwind | |
%.pre = load void ()** %3, align 8 ; <void ()*> [#uses=1] | |
br label %bb4 | |
bb4: ; preds = %bb3, %bb1 | |
%12 = phi void ()* [ %4, %bb1 ], [ %.pre, %bb3 ] ; <void ()*> [#uses=3] | |
%13 = bitcast void ()* %12 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%14 = bitcast void ()* %12 to i8** ; <i8**> [#uses=1] | |
%15 = load i8** %14, align 8 ; <i8*> [#uses=1] | |
store i8* %15, i8** %6, align 8 | |
%16 = getelementptr inbounds %struct.identstack* %13, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%17 = load %struct.identstack** %16, align 8 ; <%struct.identstack*> [#uses=1] | |
%.c = bitcast %struct.identstack* %17 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c, void ()** %3 | |
%18 = bitcast void ()* %12 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %18) nounwind | |
ret void | |
return: ; preds = %bb, %entry | |
ret void | |
} | |
define i8* @_Z10executeretPKc(i8* %p) { | |
entry: | |
%end.i141 = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%end.i = alloca i8*, align 8 ; <i8**> [#uses=2] | |
%p_addr = alloca i8*, align 8 ; <i8**> [#uses=5] | |
%1 = alloca %struct.ident*, align 8 ; <%struct.ident**> [#uses=2] | |
%2 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%w = alloca [25 x i8*], align 8 ; <[25 x i8*]*> [#uses=10] | |
%infix = alloca i32, align 4 ; <i32*> [#uses=3] | |
%v = alloca [25 x i8*], align 8 ; <[25 x i8*]*> [#uses=14] | |
%nstor = alloca [25 x %union..0._39], align 8 ; <[25 x %union..0._39]*> [#uses=3] | |
%argname = alloca [260 x i8], align 1 ; <[260 x i8]*> [#uses=1] | |
store i8* %p, i8** %p_addr | |
%3 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 0 ; <i8**> [#uses=2] | |
%4 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 1 ; <i8**> [#uses=5] | |
%5 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 2 ; <i8**> [#uses=3] | |
%6 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 3 ; <i8**> [#uses=1] | |
%7 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
%8 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 0 ; <i8**> [#uses=9] | |
%9 = bitcast i8** %4 to i8* ; <i8*> [#uses=1] | |
%10 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 1 ; <i8**> [#uses=7] | |
%11 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 2 ; <i8**> [#uses=6] | |
%12 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 3 ; <i8**> [#uses=5] | |
%13 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 4 ; <i8**> [#uses=4] | |
%14 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 5 ; <i8**> [#uses=3] | |
%15 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 6 ; <i8**> [#uses=2] | |
%16 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 7 ; <i8**> [#uses=1] | |
%17 = getelementptr inbounds [260 x i8]* %argname, i64 0, i64 0 ; <i8*> [#uses=2] | |
%18 = getelementptr inbounds %struct.stringformatter* %2, i64 0, i32 0 ; <i8**> [#uses=1] | |
br label %bb123.outer | |
bb: ; preds = %bb123 | |
store i32 0, i32* %infix, align 4 | |
br label %bb5 | |
bb2: ; preds = %bb5 | |
%scevgep206 = getelementptr [25 x i8*]* %w, i64 0, i64 %indvar203 ; <i8**> [#uses=1] | |
%19 = call i8* @_Z9parsewordRPKciRi(i8** %p_addr, i32 %i.0, i32* %infix) ; <i8*> [#uses=2] | |
store i8* %19, i8** %scevgep206, align 8 | |
%20 = icmp eq i8* %19, null ; <i1> [#uses=1] | |
br i1 %20, label %bb6, label %bb4 | |
bb4: ; preds = %bb2 | |
%indvar.next204 = add i64 %indvar203, 1 ; <i64> [#uses=1] | |
br label %bb5 | |
bb5: ; preds = %bb4, %bb | |
%indvar203 = phi i64 [ %indvar.next204, %bb4 ], [ 0, %bb ] ; <i64> [#uses=3] | |
%i.0 = trunc i64 %indvar203 to i32 ; <i32> [#uses=3] | |
%21 = icmp slt i32 %i.0, 25 ; <i1> [#uses=1] | |
br i1 %21, label %bb2, label %bb6 | |
bb6: ; preds = %bb5, %bb2 | |
%numargs.0 = phi i32 [ %i.0, %bb2 ], [ 25, %bb5 ] ; <i32> [#uses=16] | |
%22 = load i8** %p_addr, align 8 ; <i8*> [#uses=3] | |
%23 = call i64 @strcspn(i8* %22, i8* getelementptr inbounds ([4 x i8]* @.str124, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=2] | |
%24 = getelementptr inbounds i8* %22, i64 %23 ; <i8*> [#uses=2] | |
store i8* %24, i8** %p_addr, align 8 | |
%25 = load i8* %24, align 1 ; <i8> [#uses=1] | |
%26 = icmp ne i8 %25, 0 ; <i1> [#uses=1] | |
%27 = zext i1 %26 to i8 ; <i8> [#uses=6] | |
%.sum = add i64 %23, 1 ; <i64> [#uses=1] | |
%28 = getelementptr inbounds i8* %22, i64 %.sum ; <i8*> [#uses=1] | |
store i8* %28, i8** %p_addr, align 8 | |
%29 = load i8** %3, align 8 ; <i8*> [#uses=14] | |
%30 = icmp eq i8* %29, null ; <i1> [#uses=1] | |
br i1 %30, label %bb123, label %bb7 | |
bb7: ; preds = %bb6 | |
%31 = load i8* %29, align 1 ; <i8> [#uses=1] | |
%32 = icmp eq i8 %31, 0 ; <i1> [#uses=1] | |
br i1 %32, label %bb123, label %bb8 | |
bb8: ; preds = %bb7 | |
%33 = icmp eq i8* %retval1.1.ph, null ; <i1> [#uses=1] | |
br i1 %33, label %bb12, label %bb10 | |
bb10: ; preds = %bb8 | |
call void @_ZdaPv(i8* %retval1.1.ph) nounwind | |
br label %bb12 | |
bb12: ; preds = %bb10, %bb8 | |
%retval1.0 = phi i8* [ null, %bb10 ], [ %retval1.1.ph, %bb8 ] ; <i8*> [#uses=13] | |
%34 = load i32* %infix, align 4 ; <i32> [#uses=1] | |
switch i32 %34, label %bb117 [ | |
i32 0, label %bb18 | |
i32 61, label %bb14 | |
] | |
bb14: ; preds = %bb12 | |
%35 = icmp sgt i32 %numargs.0, 2 ; <i1> [#uses=1] | |
br i1 %35, label %bb15, label %bb16 | |
bb15: ; preds = %bb14 | |
%36 = load i8** %5, align 8 ; <i8*> [#uses=1] | |
br label %bb17 | |
bb16: ; preds = %bb14 | |
%37 = call i8* @_Znam(i64 1) ; <i8*> [#uses=2] | |
store i8 0, i8* %37, align 1 | |
br label %bb17 | |
bb17: ; preds = %bb16, %bb15 | |
%iftmp.109.0 = phi i8* [ %36, %bb15 ], [ %37, %bb16 ] ; <i8*> [#uses=1] | |
call void @_Z6aliasaPKcPc(i8* %29, i8* %iftmp.109.0) | |
store i8* null, i8** %5, align 8 | |
br label %bb117 | |
bb18: ; preds = %bb12 | |
%38 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%39 = load i8* %29, align 1 ; <i8> [#uses=4] | |
%40 = icmp eq i8 %39, 0 ; <i1> [#uses=1] | |
br i1 %40, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
bb.i.i: ; preds = %bb.i.i, %bb18 | |
%indvar.i.i = phi i64 [ %tmp179, %bb.i.i ], [ 0, %bb18 ] ; <i64> [#uses=1] | |
%41 = phi i8 [ %45, %bb.i.i ], [ %39, %bb18 ] ; <i8> [#uses=1] | |
%h.04.i.i = phi i32 [ %44, %bb.i.i ], [ 5381, %bb18 ] ; <i32> [#uses=1] | |
%tmp179 = add i64 %indvar.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i = getelementptr i8* %29, i64 %tmp179 ; <i8*> [#uses=1] | |
%42 = sext i8 %41 to i32 ; <i32> [#uses=1] | |
%43 = mul i32 %h.04.i.i, 33 ; <i32> [#uses=1] | |
%44 = xor i32 %43, %42 ; <i32> [#uses=2] | |
%45 = load i8* %scevgep.i.i, align 1 ; <i8> [#uses=2] | |
%46 = icmp eq i8 %45, 0 ; <i1> [#uses=1] | |
br i1 %46, label %_ZL6hthashPKc.exit.i, label %bb.i.i | |
_ZL6hthashPKc.exit.i: ; preds = %bb.i.i, %bb18 | |
%h.0.lcssa.i.i = phi i32 [ 5381, %bb18 ], [ %44, %bb.i.i ] ; <i32> [#uses=1] | |
%47 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %38, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%48 = load i32* %47, align 8 ; <i32> [#uses=1] | |
%49 = add nsw i32 %48, -1 ; <i32> [#uses=1] | |
%50 = and i32 %49, %h.0.lcssa.i.i ; <i32> [#uses=1] | |
%51 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %38, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%52 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %51, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%53 = zext i32 %50 to i64 ; <i64> [#uses=1] | |
%54 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %52, i64 %53 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i134 | |
bb.i132: ; preds = %bb3.i134 | |
%.idx.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i = load i8** %.idx.i ; <i8*> [#uses=1] | |
%55 = call i32 @strcmp(i8* %29, i8* %.idx.val.i) nounwind readonly ; <i32> [#uses=1] | |
%56 = icmp eq i32 %55, 0 ; <i1> [#uses=1] | |
br i1 %56, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit, label %bb2.i | |
bb2.i: ; preds = %bb.i132 | |
%57 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i134 | |
bb3.i134: ; preds = %bb2.i, %_ZL6hthashPKc.exit.i | |
%c.0.in.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %54, %_ZL6hthashPKc.exit.i ], [ %57, %bb2.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=26] | |
%58 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, null ; <i1> [#uses=1] | |
br i1 %58, label %bb19, label %bb.i132 | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit: ; preds = %bb.i132 | |
%59 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=4] | |
%60 = icmp eq %struct.ident* %59, null ; <i1> [#uses=1] | |
br i1 %60, label %bb19, label %bb25 | |
bb19: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit, %bb3.i134 | |
%61 = sext i8 %39 to i32 ; <i32> [#uses=1] | |
%62 = add i32 %61, -48 ; <i32> [#uses=1] | |
%63 = icmp ult i32 %62, 10 ; <i1> [#uses=1] | |
br i1 %63, label %bb23, label %bb.i135 | |
bb.i135: ; preds = %bb19 | |
switch i8 %39, label %bb22 [ | |
i8 43, label %_ZL9isintegerPc.exit | |
i8 45, label %_ZL9isintegerPc.exit | |
i8 46, label %_ZL9isintegerPc.exit | |
] | |
_ZL9isintegerPc.exit: ; preds = %bb.i135, %bb.i135, %bb.i135 | |
%64 = getelementptr inbounds i8* %29, i64 1 ; <i8*> [#uses=1] | |
%65 = load i8* %64, align 1 ; <i8> [#uses=1] | |
%66 = sext i8 %65 to i32 ; <i32> [#uses=1] | |
%67 = add i32 %66, -48 ; <i32> [#uses=1] | |
%phitmp = icmp ugt i32 %67, 9 ; <i1> [#uses=1] | |
br i1 %phitmp, label %bb22, label %bb23 | |
bb22: ; preds = %_ZL9isintegerPc.exit, %bb.i135 | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([20 x i8]* @.str125, i64 0, i64 0), i8* %29) | |
br label %bb23 | |
bb23: ; preds = %bb22, %_ZL9isintegerPc.exit, %bb19 | |
%68 = call i64 @strlen(i8* %29) nounwind readonly ; <i64> [#uses=2] | |
%69 = add i64 %68, 1 ; <i64> [#uses=2] | |
%70 = call i8* @_Znam(i64 %69) ; <i8*> [#uses=4] | |
%71 = call i8* @strncpy(i8* noalias %70, i8* noalias %29, i64 %69) nounwind ; <i8*> [#uses=0] | |
%72 = getelementptr inbounds i8* %70, i64 %68 ; <i8*> [#uses=1] | |
store i8 0, i8* %72, align 1 | |
%73 = icmp eq i8* %70, null ; <i1> [#uses=1] | |
br i1 %73, label %bb117, label %bb24 | |
bb24: ; preds = %bb23 | |
br label %bb117 | |
bb25: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit | |
%74 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%75 = load i32* %74, align 8 ; <i32> [#uses=1] | |
switch i32 %75, label %bb117 [ | |
i32 0, label %bb67 | |
i32 1, label %bb82 | |
i32 2, label %bb85 | |
i32 5, label %bb91 | |
i32 4, label %bb27 | |
i32 3, label %bb28 | |
] | |
bb27: ; preds = %bb25 | |
%76 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=1] | |
%77 = load i8** %76, align 8 ; <i8*> [#uses=1] | |
store i8* %77, i8** %8, align 8 | |
br label %bb28 | |
bb28: ; preds = %bb27, %bb25 | |
%n.0 = phi i32 [ 1, %bb27 ], [ 0, %bb25 ] ; <i32> [#uses=1] | |
%78 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=1] | |
%79 = load i8** %78, align 8 ; <i8*> [#uses=1] | |
%80 = add nsw i32 %numargs.0, -1 ; <i32> [#uses=2] | |
br label %bb48 | |
bb30: ; preds = %bb48 | |
%81 = add nsw i32 %wn.1, 1 ; <i32> [#uses=3] | |
%82 = icmp slt i32 %81, %numargs.0 ; <i1> [#uses=1] | |
br i1 %82, label %bb31, label %bb33 | |
bb31: ; preds = %bb30 | |
%83 = sext i32 %81 to i64 ; <i64> [#uses=1] | |
%84 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 %83 ; <i8**> [#uses=1] | |
%85 = load i8** %84, align 8 ; <i8*> [#uses=1] | |
br label %bb33 | |
bb33: ; preds = %bb31, %bb30 | |
%iftmp.114.0 = phi i8* [ %85, %bb31 ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %bb30 ] ; <i8*> [#uses=1] | |
%86 = sext i32 %n.2 to i64 ; <i64> [#uses=1] | |
%87 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 %86 ; <i8**> [#uses=1] | |
store i8* %iftmp.114.0, i8** %87, align 8 | |
br label %bb47 | |
bb34: ; preds = %bb48 | |
%88 = add nsw i32 %wn.1, 1 ; <i32> [#uses=3] | |
%89 = icmp slt i32 %88, %numargs.0 ; <i1> [#uses=1] | |
br i1 %89, label %bb35, label %bb37 | |
bb35: ; preds = %bb34 | |
%90 = sext i32 %88 to i64 ; <i64> [#uses=1] | |
%91 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 %90 ; <i8**> [#uses=1] | |
%92 = load i8** %91, align 8 ; <i8*> [#uses=1] | |
%93 = call i64 @strtol(i8* noalias nocapture %92, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%94 = trunc i64 %93 to i32 ; <i32> [#uses=1] | |
br label %bb37 | |
bb37: ; preds = %bb35, %bb34 | |
%iftmp.117.0 = phi i32 [ %94, %bb35 ], [ 0, %bb34 ] ; <i32> [#uses=1] | |
%95 = sext i32 %n.2 to i64 ; <i64> [#uses=2] | |
%96 = getelementptr inbounds [25 x %union..0._39]* %nstor, i64 0, i64 %95, i32 0 ; <i32*> [#uses=2] | |
store i32 %iftmp.117.0, i32* %96, align 4 | |
%97 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 %95 ; <i8**> [#uses=1] | |
%98 = bitcast i32* %96 to i8* ; <i8*> [#uses=1] | |
store i8* %98, i8** %97, align 8 | |
br label %bb47 | |
bb38: ; preds = %bb48 | |
%99 = add nsw i32 %wn.1, 1 ; <i32> [#uses=3] | |
%100 = icmp slt i32 %99, %numargs.0 ; <i1> [#uses=1] | |
br i1 %100, label %bb39, label %bb41 | |
bb39: ; preds = %bb38 | |
%101 = sext i32 %99 to i64 ; <i64> [#uses=1] | |
%102 = getelementptr inbounds [25 x i8*]* %w, i64 0, i64 %101 ; <i8**> [#uses=1] | |
%103 = load i8** %102, align 8 ; <i8*> [#uses=3] | |
%104 = call double @strtod(i8* noalias %103, i8** noalias %end.i) nounwind ; <double> [#uses=2] | |
%105 = fcmp une double %104, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %105, label %bb4.i139, label %bb.i137 | |
bb.i137: ; preds = %bb39 | |
%106 = load i8** %end.i, align 8 ; <i8*> [#uses=2] | |
%107 = icmp eq i8* %106, %103 ; <i1> [#uses=1] | |
br i1 %107, label %bb4.i139, label %bb1.i138 | |
bb1.i138: ; preds = %bb.i137 | |
%108 = load i8* %106, align 1 ; <i8> [#uses=1] | |
switch i8 %108, label %bb4.i139 [ | |
i8 88, label %bb5.i140 | |
i8 120, label %bb5.i140 | |
] | |
bb4.i139: ; preds = %bb1.i138, %bb.i137, %bb39 | |
%109 = fptrunc double %104 to float ; <float> [#uses=1] | |
br label %bb41 | |
bb5.i140: ; preds = %bb1.i138, %bb1.i138 | |
%110 = call i64 @strtol(i8* noalias nocapture %103, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%111 = trunc i64 %110 to i32 ; <i32> [#uses=1] | |
%112 = sitofp i32 %111 to float ; <float> [#uses=1] | |
br label %bb41 | |
bb41: ; preds = %bb5.i140, %bb4.i139, %bb38 | |
%iftmp.122.0 = phi float [ 0.000000e+00, %bb38 ], [ %112, %bb5.i140 ], [ %109, %bb4.i139 ] ; <float> [#uses=1] | |
%113 = sext i32 %n.2 to i64 ; <i64> [#uses=2] | |
%114 = getelementptr inbounds [25 x %union..0._39]* %nstor, i64 0, i64 %113, i32 0 ; <i32*> [#uses=2] | |
%115 = bitcast i32* %114 to float* ; <float*> [#uses=1] | |
store float %iftmp.122.0, float* %115, align 4 | |
%116 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 %113 ; <i8**> [#uses=1] | |
%117 = bitcast i32* %114 to i8* ; <i8*> [#uses=1] | |
store i8* %117, i8** %116, align 8 | |
br label %bb47 | |
bb42: ; preds = %bb48 | |
%118 = sext i32 %n.2 to i64 ; <i64> [#uses=1] | |
%119 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 %118 ; <i8**> [#uses=1] | |
store i8* %9, i8** %119, align 8 | |
%120 = add nsw i32 %n.2, 1 ; <i32> [#uses=2] | |
%121 = sext i32 %120 to i64 ; <i64> [#uses=2] | |
%122 = getelementptr inbounds [25 x %union..0._39]* %nstor, i64 0, i64 %121, i32 0 ; <i32*> [#uses=2] | |
store i32 %80, i32* %122, align 4 | |
%123 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 %121 ; <i8**> [#uses=1] | |
%124 = bitcast i32* %122 to i8* ; <i8*> [#uses=1] | |
store i8* %124, i8** %123, align 8 | |
br label %bb47 | |
bb43: ; preds = %bb48 | |
%125 = icmp eq i8* %cargs.2, null ; <i1> [#uses=1] | |
br i1 %125, label %bb44, label %bb45 | |
bb44: ; preds = %bb43 | |
%126 = call i8* @_Z4concPPcib(i8** %4, i32 %80, i8 zeroext 1) ; <i8*> [#uses=1] | |
br label %bb45 | |
bb45: ; preds = %bb44, %bb43 | |
%cargs.0 = phi i8* [ %126, %bb44 ], [ %cargs.2, %bb43 ] ; <i8*> [#uses=2] | |
%127 = sext i32 %n.2 to i64 ; <i64> [#uses=1] | |
%128 = getelementptr inbounds [25 x i8*]* %v, i64 0, i64 %127 ; <i8**> [#uses=1] | |
store i8* %cargs.0, i8** %128, align 8 | |
br label %bb47 | |
bb46: ; preds = %bb48 | |
call void (i8*, ...)* @_Z5fatalPKcz(i8* getelementptr inbounds ([35 x i8]* @.str126, i64 0, i64 0)) | |
unreachable | |
bb47: ; preds = %bb45, %bb42, %bb41, %bb37, %bb33 | |
%n.1 = phi i32 [ %n.2, %bb33 ], [ %n.2, %bb37 ], [ %n.2, %bb41 ], [ %120, %bb42 ], [ %n.2, %bb45 ] ; <i32> [#uses=1] | |
%wn.0 = phi i32 [ %81, %bb33 ], [ %88, %bb37 ], [ %99, %bb41 ], [ %wn.1, %bb42 ], [ %wn.1, %bb45 ] ; <i32> [#uses=1] | |
%cargs.1 = phi i8* [ %cargs.2, %bb33 ], [ %cargs.2, %bb37 ], [ %cargs.2, %bb41 ], [ %cargs.2, %bb42 ], [ %cargs.0, %bb45 ] ; <i8*> [#uses=1] | |
%129 = add nsw i32 %n.1, 1 ; <i32> [#uses=1] | |
%indvar.next = add i64 %indvar, 1 ; <i64> [#uses=1] | |
br label %bb48 | |
bb48: ; preds = %bb47, %bb28 | |
%indvar = phi i64 [ %indvar.next, %bb47 ], [ 0, %bb28 ] ; <i64> [#uses=2] | |
%n.2 = phi i32 [ %129, %bb47 ], [ %n.0, %bb28 ] ; <i32> [#uses=11] | |
%wn.1 = phi i32 [ %wn.0, %bb47 ], [ 0, %bb28 ] ; <i32> [#uses=5] | |
%cargs.2 = phi i8* [ %cargs.1, %bb47 ], [ null, %bb28 ] ; <i8*> [#uses=8] | |
%a.0 = getelementptr i8* %79, i64 %indvar ; <i8*> [#uses=1] | |
%130 = load i8* %a.0, align 1 ; <i8> [#uses=1] | |
switch i8 %130, label %bb46 [ | |
i8 0, label %bb49 | |
i8 67, label %bb43 | |
i8 86, label %bb42 | |
i8 102, label %bb38 | |
i8 105, label %bb34 | |
i8 115, label %bb30 | |
] | |
bb49: ; preds = %bb48 | |
switch i32 %n.2, label %bb59 [ | |
i32 0, label %bb50 | |
i32 1, label %bb51 | |
i32 2, label %bb52 | |
i32 3, label %bb53 | |
i32 4, label %bb54 | |
i32 5, label %bb55 | |
i32 6, label %bb56 | |
i32 7, label %bb57 | |
i32 8, label %bb58 | |
] | |
bb50: ; preds = %bb49 | |
%131 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%132 = load void ()** %131, align 8 ; <void ()*> [#uses=1] | |
call void %132() | |
br label %bb60 | |
bb51: ; preds = %bb49 | |
%133 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%134 = load void ()** %133, align 8 ; <void ()*> [#uses=1] | |
%135 = bitcast void ()* %134 to void (i8*)* ; <void (i8*)*> [#uses=1] | |
%136 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %135(i8* %136) | |
br label %bb60 | |
bb52: ; preds = %bb49 | |
%137 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%138 = load void ()** %137, align 8 ; <void ()*> [#uses=1] | |
%139 = bitcast void ()* %138 to void (i8*, i8*)* ; <void (i8*, i8*)*> [#uses=1] | |
%140 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%141 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %139(i8* %141, i8* %140) | |
br label %bb60 | |
bb53: ; preds = %bb49 | |
%142 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%143 = load void ()** %142, align 8 ; <void ()*> [#uses=1] | |
%144 = bitcast void ()* %143 to void (i8*, i8*, i8*)* ; <void (i8*, i8*, i8*)*> [#uses=1] | |
%145 = load i8** %11, align 8 ; <i8*> [#uses=1] | |
%146 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%147 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %144(i8* %147, i8* %146, i8* %145) | |
br label %bb60 | |
bb54: ; preds = %bb49 | |
%148 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%149 = load void ()** %148, align 8 ; <void ()*> [#uses=1] | |
%150 = bitcast void ()* %149 to void (i8*, i8*, i8*, i8*)* ; <void (i8*, i8*, i8*, i8*)*> [#uses=1] | |
%151 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
%152 = load i8** %11, align 8 ; <i8*> [#uses=1] | |
%153 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%154 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %150(i8* %154, i8* %153, i8* %152, i8* %151) | |
br label %bb60 | |
bb55: ; preds = %bb49 | |
%155 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%156 = load void ()** %155, align 8 ; <void ()*> [#uses=1] | |
%157 = bitcast void ()* %156 to void (i8*, i8*, i8*, i8*, i8*)* ; <void (i8*, i8*, i8*, i8*, i8*)*> [#uses=1] | |
%158 = load i8** %13, align 8 ; <i8*> [#uses=1] | |
%159 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
%160 = load i8** %11, align 8 ; <i8*> [#uses=1] | |
%161 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%162 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %157(i8* %162, i8* %161, i8* %160, i8* %159, i8* %158) | |
br label %bb60 | |
bb56: ; preds = %bb49 | |
%163 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%164 = load void ()** %163, align 8 ; <void ()*> [#uses=1] | |
%165 = bitcast void ()* %164 to void (i8*, i8*, i8*, i8*, i8*, i8*)* ; <void (i8*, i8*, i8*, i8*, i8*, i8*)*> [#uses=1] | |
%166 = load i8** %14, align 8 ; <i8*> [#uses=1] | |
%167 = load i8** %13, align 8 ; <i8*> [#uses=1] | |
%168 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
%169 = load i8** %11, align 8 ; <i8*> [#uses=1] | |
%170 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%171 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %165(i8* %171, i8* %170, i8* %169, i8* %168, i8* %167, i8* %166) | |
br label %bb60 | |
bb57: ; preds = %bb49 | |
%172 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%173 = load void ()** %172, align 8 ; <void ()*> [#uses=1] | |
%174 = bitcast void ()* %173 to void (i8*, i8*, i8*, i8*, i8*, i8*, i8*)* ; <void (i8*, i8*, i8*, i8*, i8*, i8*, i8*)*> [#uses=1] | |
%175 = load i8** %15, align 8 ; <i8*> [#uses=1] | |
%176 = load i8** %14, align 8 ; <i8*> [#uses=1] | |
%177 = load i8** %13, align 8 ; <i8*> [#uses=1] | |
%178 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
%179 = load i8** %11, align 8 ; <i8*> [#uses=1] | |
%180 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%181 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %174(i8* %181, i8* %180, i8* %179, i8* %178, i8* %177, i8* %176, i8* %175) | |
br label %bb60 | |
bb58: ; preds = %bb49 | |
%182 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=1] | |
%183 = load void ()** %182, align 8 ; <void ()*> [#uses=1] | |
%184 = bitcast void ()* %183 to void (i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*)* ; <void (i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*)*> [#uses=1] | |
%185 = load i8** %16, align 8 ; <i8*> [#uses=1] | |
%186 = load i8** %15, align 8 ; <i8*> [#uses=1] | |
%187 = load i8** %14, align 8 ; <i8*> [#uses=1] | |
%188 = load i8** %13, align 8 ; <i8*> [#uses=1] | |
%189 = load i8** %12, align 8 ; <i8*> [#uses=1] | |
%190 = load i8** %11, align 8 ; <i8*> [#uses=1] | |
%191 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
%192 = load i8** %8, align 8 ; <i8*> [#uses=1] | |
call void %184(i8* %192, i8* %191, i8* %190, i8* %189, i8* %188, i8* %187, i8* %186, i8* %185) | |
br label %bb60 | |
bb59: ; preds = %bb49 | |
call void (i8*, ...)* @_Z5fatalPKcz(i8* getelementptr inbounds ([45 x i8]* @.str127, i64 0, i64 0)) | |
unreachable | |
bb60: ; preds = %bb58, %bb57, %bb56, %bb55, %bb54, %bb53, %bb52, %bb51, %bb50 | |
%193 = icmp eq i8* %cargs.2, null ; <i1> [#uses=1] | |
br i1 %193, label %bb63, label %bb62 | |
bb62: ; preds = %bb60 | |
call void @_ZdaPv(i8* %cargs.2) nounwind | |
br label %bb63 | |
bb63: ; preds = %bb62, %bb60 | |
%194 = load i8** @commandret, align 8 ; <i8*> [#uses=2] | |
%195 = icmp eq i8* %194, null ; <i1> [#uses=1] | |
%retval1.3 = select i1 %195, i8* %retval1.0, i8* %194 ; <i8*> [#uses=1] | |
store i8* null, i8** @commandret, align 8 | |
br label %bb117 | |
bb67: ; preds = %bb25 | |
%196 = icmp slt i32 %numargs.0, 2 ; <i1> [#uses=1] | |
br i1 %196, label %bb68, label %bb75 | |
bb68: ; preds = %bb67 | |
%197 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=1] | |
%198 = load i32* %197, align 8 ; <i32> [#uses=1] | |
%199 = and i32 %198, 4 ; <i32> [#uses=1] | |
%200 = icmp eq i32 %199, 0 ; <i1> [#uses=2] | |
br i1 %200, label %bb71, label %bb69 | |
bb69: ; preds = %bb68 | |
%201 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 4, i32 0 ; <i32*> [#uses=1] | |
%202 = load i32* %201, align 4 ; <i32> [#uses=1] | |
%203 = icmp eq i32 %202, 16777215 ; <i1> [#uses=1] | |
br i1 %203, label %bb70, label %bb71 | |
bb70: ; preds = %bb69 | |
%204 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%205 = load i32** %204, align 8 ; <i32*> [#uses=1] | |
%206 = load i32* %205, align 4 ; <i32> [#uses=4] | |
%207 = and i32 %206, 255 ; <i32> [#uses=1] | |
%208 = lshr i32 %206, 8 ; <i32> [#uses=1] | |
%209 = and i32 %208, 255 ; <i32> [#uses=1] | |
%210 = lshr i32 %206, 16 ; <i32> [#uses=1] | |
%211 = and i32 %210, 255 ; <i32> [#uses=1] | |
call void (i8*, ...)* @_Z7conoutfPKcz(i8* getelementptr inbounds ([25 x i8]* @.str128, i64 0, i64 0), i8* %29, i32 %206, i32 %211, i32 %209, i32 %207) | |
br label %bb117 | |
bb71: ; preds = %bb69, %bb68 | |
%212 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%213 = load i32** %212, align 8 ; <i32*> [#uses=1] | |
%214 = load i32* %213, align 4 ; <i32> [#uses=1] | |
%iftmp.131.0 = select i1 %200, i8* getelementptr inbounds ([8 x i8]* @.str130, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8]* @.str129, i64 0, i64 0) ; <i8*> [#uses=1] | |
call void (i8*, ...)* @_Z7conoutfPKcz(i8* %iftmp.131.0, i8* %29, i32 %214) | |
br label %bb117 | |
bb75: ; preds = %bb67 | |
%215 = load i8** %4, align 8 ; <i8*> [#uses=1] | |
%216 = call i64 @strtol(i8* noalias nocapture %215, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%217 = trunc i64 %216 to i32 ; <i32> [#uses=2] | |
%218 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 10 ; <i32*> [#uses=1] | |
%219 = load i32* %218, align 8 ; <i32> [#uses=1] | |
%.lobit = and i32 %219, 4 ; <i32> [#uses=1] | |
%220 = icmp sgt i32 %numargs.0, 2 ; <i1> [#uses=1] | |
%toBool76 = icmp ne i32 %.lobit, 0 ; <i1> [#uses=1] | |
%221 = and i1 %toBool76, %220 ; <i1> [#uses=1] | |
br i1 %221, label %bb79, label %bb81 | |
bb79: ; preds = %bb75 | |
%222 = shl i32 %217, 16 ; <i32> [#uses=1] | |
%223 = load i8** %5, align 8 ; <i8*> [#uses=1] | |
%224 = call i64 @strtol(i8* noalias nocapture %223, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%225 = trunc i64 %224 to i32 ; <i32> [#uses=1] | |
%226 = shl i32 %225, 8 ; <i32> [#uses=1] | |
%227 = or i32 %226, %222 ; <i32> [#uses=2] | |
%228 = icmp sgt i32 %numargs.0, 3 ; <i1> [#uses=1] | |
br i1 %228, label %bb80, label %bb81 | |
bb80: ; preds = %bb79 | |
%229 = load i8** %6, align 8 ; <i8*> [#uses=1] | |
%230 = call i64 @strtol(i8* noalias nocapture %229, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%231 = trunc i64 %230 to i32 ; <i32> [#uses=1] | |
%232 = or i32 %231, %227 ; <i32> [#uses=1] | |
br label %bb81 | |
bb81: ; preds = %bb80, %bb79, %bb75 | |
%val.0 = phi i32 [ %232, %bb80 ], [ %227, %bb79 ], [ %217, %bb75 ] ; <i32> [#uses=1] | |
call void @_Z13setvarcheckedP5identi(%struct.ident* %59, i32 %val.0) | |
br label %bb117 | |
bb82: ; preds = %bb25 | |
%233 = icmp slt i32 %numargs.0, 2 ; <i1> [#uses=1] | |
br i1 %233, label %bb83, label %bb84 | |
bb83: ; preds = %bb82 | |
%234 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%235 = load i32** %234, align 8 ; <i32*> [#uses=1] | |
%236 = bitcast i32* %235 to float* ; <float*> [#uses=1] | |
%237 = load float* %236, align 4 ; <float> [#uses=3] | |
%238 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%239 = add nsw i32 %238, 1 ; <i32> [#uses=1] | |
%240 = srem i32 %239, 3 ; <i32> [#uses=2] | |
store i32 %240, i32* @_ZL6retidx, align 4 | |
%241 = fpext float %237 to double ; <double> [#uses=1] | |
%242 = fptosi float %237 to i32 ; <i32> [#uses=1] | |
%243 = sitofp i32 %242 to float ; <float> [#uses=1] | |
%244 = fcmp oeq float %243, %237 ; <i1> [#uses=1] | |
%iftmp.145.0.i = select i1 %244, [5 x i8]* @.str, [5 x i8]* @.str1 ; <[5 x i8]*> [#uses=1] | |
%245 = getelementptr inbounds [5 x i8]* %iftmp.145.0.i, i64 0, i64 0 ; <i8*> [#uses=1] | |
%246 = sext i32 %240 to i64 ; <i64> [#uses=1] | |
%247 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %246, i64 0 ; <i8*> [#uses=1] | |
store i8* %247, i8** %7, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* %245, double %241) nounwind | |
%248 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%249 = sext i32 %248 to i64 ; <i64> [#uses=1] | |
%250 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %249, i64 0 ; <i8*> [#uses=1] | |
call void (i8*, ...)* @_Z7conoutfPKcz(i8* getelementptr inbounds ([8 x i8]* @.str131, i64 0, i64 0), i8* %29, i8* %250) | |
br label %bb117 | |
bb84: ; preds = %bb82 | |
%251 = load i8** %4, align 8 ; <i8*> [#uses=3] | |
%252 = call double @strtod(i8* noalias %251, i8** noalias %end.i141) nounwind ; <double> [#uses=2] | |
%253 = fcmp une double %252, 0.000000e+00 ; <i1> [#uses=1] | |
br i1 %253, label %bb4.i144, label %bb.i142 | |
bb.i142: ; preds = %bb84 | |
%254 = load i8** %end.i141, align 8 ; <i8*> [#uses=2] | |
%255 = icmp eq i8* %254, %251 ; <i1> [#uses=1] | |
br i1 %255, label %bb4.i144, label %bb1.i143 | |
bb1.i143: ; preds = %bb.i142 | |
%256 = load i8* %254, align 1 ; <i8> [#uses=1] | |
switch i8 %256, label %bb4.i144 [ | |
i8 88, label %bb5.i145 | |
i8 120, label %bb5.i145 | |
] | |
bb4.i144: ; preds = %bb1.i143, %bb.i142, %bb84 | |
%257 = fptrunc double %252 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit146 | |
bb5.i145: ; preds = %bb1.i143, %bb1.i143 | |
%258 = call i64 @strtol(i8* noalias nocapture %251, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%259 = trunc i64 %258 to i32 ; <i32> [#uses=1] | |
%260 = sitofp i32 %259 to float ; <float> [#uses=1] | |
br label %_ZL10parsefloatPKc.exit146 | |
_ZL10parsefloatPKc.exit146: ; preds = %bb5.i145, %bb4.i144 | |
%261 = phi float [ %260, %bb5.i145 ], [ %257, %bb4.i144 ] ; <float> [#uses=1] | |
call void @_Z14setfvarcheckedP5identf(%struct.ident* %59, float %261) | |
br label %bb117 | |
bb85: ; preds = %bb25 | |
%262 = icmp slt i32 %numargs.0, 2 ; <i1> [#uses=1] | |
br i1 %262, label %bb86, label %bb90 | |
bb86: ; preds = %bb85 | |
%263 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%264 = load i32** %263, align 8 ; <i32*> [#uses=1] | |
%265 = bitcast i32* %264 to i8** ; <i8**> [#uses=1] | |
%266 = load i8** %265, align 8 ; <i8*> [#uses=2] | |
%267 = call i8* @strchr(i8* %266, i32 34) nounwind readonly ; <i8*> [#uses=1] | |
%268 = icmp eq i8* %267, null ; <i1> [#uses=1] | |
%iftmp.132.0 = select i1 %268, [10 x i8]* @.str133, [10 x i8]* @.str132 ; <[10 x i8]*> [#uses=1] | |
%269 = getelementptr inbounds [10 x i8]* %iftmp.132.0, i64 0, i64 0 ; <i8*> [#uses=1] | |
call void (i8*, ...)* @_Z7conoutfPKcz(i8* %269, i8* %29, i8* %266) | |
br label %bb117 | |
bb90: ; preds = %bb85 | |
%270 = load i8** %4, align 8 ; <i8*> [#uses=1] | |
call void @_Z14setsvarcheckedP5identPKc(%struct.ident* %59, i8* %270) | |
br label %bb117 | |
bb91: ; preds = %bb25 | |
%271 = load i8** %3, align 8 ; <i8*> [#uses=2] | |
%272 = icmp eq i8* %271, null ; <i1> [#uses=1] | |
br i1 %272, label %bb93, label %bb92 | |
bb92: ; preds = %bb91 | |
call void @_ZdaPv(i8* %271) nounwind | |
br label %bb93 | |
bb93: ; preds = %bb92, %bb91 | |
%273 = load i8* bitcast (i64* @_ZGVZ10executeretPKcE6argids to i8*), align 8 ; <i8> [#uses=1] | |
%274 = icmp eq i8 %273, 0 ; <i1> [#uses=1] | |
br i1 %274, label %bb94, label %bb103.preheader | |
bb94: ; preds = %bb93 | |
%275 = call i32 @__cxa_guard_acquire(i64* @_ZGVZ10executeretPKcE6argids) nounwind ; <i32> [#uses=1] | |
%276 = icmp eq i32 %275, 0 ; <i1> [#uses=1] | |
br i1 %276, label %bb103.preheader, label %bb96 | |
bb96: ; preds = %bb94 | |
store %struct.ident** null, %struct.ident*** getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 0), align 16 | |
store i32 0, i32* getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 1), align 8 | |
store i32 0, i32* getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 2), align 4 | |
call void @__cxa_guard_release(i64* @_ZGVZ10executeretPKcE6argids) nounwind | |
%277 = call i32 @__cxa_atexit(void (i8*)* @__tcf_1, i8* null, i8* bitcast (i8** @__dso_handle to i8*)) nounwind ; <i32> [#uses=0] | |
br label %bb103.preheader | |
bb103.preheader: ; preds = %bb96, %bb94, %bb93 | |
%278 = icmp sgt i32 %numargs.0, 1 ; <i1> [#uses=2] | |
br i1 %278, label %bb.nph156, label %bb104 | |
bb.nph156: ; preds = %bb103.preheader | |
%tmp188 = add i32 %numargs.0, -2 ; <i32> [#uses=1] | |
%tmp189 = zext i32 %tmp188 to i64 ; <i64> [#uses=1] | |
%tmp190 = add i64 %tmp189, 1 ; <i64> [#uses=1] | |
br label %bb99 | |
bb99: ; preds = %_Z9pushidentR5identPc.exit, %bb.nph156 | |
%indvar186 = phi i64 [ 0, %bb.nph156 ], [ %tmp192, %_Z9pushidentR5identPc.exit ] ; <i64> [#uses=2] | |
%tmp192 = add i64 %indvar186, 1 ; <i64> [#uses=4] | |
%i98.0155 = trunc i64 %tmp192 to i32 ; <i32> [#uses=2] | |
%scevgep194 = getelementptr [25 x i8*]* %w, i64 0, i64 %tmp192 ; <i8**> [#uses=1] | |
%279 = load i32* getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
%280 = icmp slt i32 %279, %i98.0155 ; <i1> [#uses=1] | |
br i1 %280, label %bb101, label %bb102 | |
bb101: ; preds = %bb99 | |
store i8* %17, i8** %18, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %2, i8* getelementptr inbounds ([6 x i8]* @.str134, i64 0, i64 0), i32 %i98.0155) | |
%281 = call %struct.ident* @_Z8newidentPKc(i8* %17) ; <%struct.ident*> [#uses=1] | |
store %struct.ident* %281, %struct.ident** %1, align 8 | |
%282 = call %struct.ident** @_ZN6vectorIP5identE3addERKS1_(%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, %struct.ident** %1) ; <%struct.ident**> [#uses=0] | |
br label %bb102 | |
bb102: ; preds = %bb101, %bb99 | |
%283 = load i8** %scevgep194, align 8 ; <i8*> [#uses=1] | |
%284 = load %struct.ident*** getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 0), align 16 ; <%struct.ident**> [#uses=1] | |
%scevgep195 = getelementptr %struct.ident** %284, i64 %indvar186 ; <%struct.ident**> [#uses=1] | |
%285 = load %struct.ident** %scevgep195, align 8 ; <%struct.ident*> [#uses=4] | |
%286 = getelementptr inbounds %struct.ident* %285, i64 0, i32 1 ; <i32*> [#uses=1] | |
%287 = load i32* %286, align 8 ; <i32> [#uses=1] | |
%288 = icmp eq i32 %287, 5 ; <i1> [#uses=1] | |
br i1 %288, label %bb.i127, label %_Z9pushidentR5identPc.exit | |
bb.i127: ; preds = %bb102 | |
%289 = call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%290 = getelementptr inbounds %struct.ident* %285, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%291 = load i8** %290, align 8 ; <i8*> [#uses=1] | |
%292 = getelementptr inbounds %struct.ident* %285, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%293 = load i8** %292, align 8 ; <i8*> [#uses=4] | |
%294 = icmp eq i8* %291, %293 ; <i1> [#uses=1] | |
br i1 %294, label %bb1.i128, label %bb3.i130 | |
bb1.i128: ; preds = %bb.i127 | |
%295 = call i64 @strlen(i8* %293) nounwind readonly ; <i64> [#uses=2] | |
%296 = add i64 %295, 1 ; <i64> [#uses=2] | |
%297 = call i8* @_Znam(i64 %296) ; <i8*> [#uses=3] | |
%298 = call i8* @strncpy(i8* noalias %297, i8* noalias %293, i64 %296) nounwind ; <i8*> [#uses=0] | |
%299 = getelementptr inbounds i8* %297, i64 %295 ; <i8*> [#uses=1] | |
store i8 0, i8* %299, align 1 | |
br label %bb3.i130 | |
bb3.i130: ; preds = %bb1.i128, %bb.i127 | |
%iftmp.29.0.i = phi i8* [ %297, %bb1.i128 ], [ %293, %bb.i127 ] ; <i8*> [#uses=1] | |
%300 = bitcast i8* %289 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0.i, i8** %300, align 8 | |
%301 = getelementptr inbounds %struct.ident* %285, i64 0, i32 6, i32 0 ; <void ()**> [#uses=2] | |
%302 = load void ()** %301, align 8 ; <void ()*> [#uses=1] | |
%303 = bitcast void ()* %302 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%304 = getelementptr inbounds i8* %289, i64 8 ; <i8*> [#uses=1] | |
%305 = bitcast i8* %304 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %303, %struct.identstack** %305, align 8 | |
%.c.i129 = bitcast i8* %289 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i129, void ()** %301 | |
store i8* %283, i8** %292, align 8 | |
br label %_Z9pushidentR5identPc.exit | |
_Z9pushidentR5identPc.exit: ; preds = %bb3.i130, %bb102 | |
%exitcond191 = icmp eq i64 %tmp192, %tmp190 ; <i1> [#uses=1] | |
br i1 %exitcond191, label %bb104, label %bb99 | |
bb104: ; preds = %_Z9pushidentR5identPc.exit, %bb103.preheader | |
%306 = add nsw i32 %numargs.0, -1 ; <i32> [#uses=1] | |
store i32 %306, i32* @_numargs, align 4 | |
%307 = load i8* @overrideidents, align 1 ; <i8> [#uses=1] | |
%308 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 5 ; <i32*> [#uses=1] | |
%309 = load i32* %308, align 8 ; <i32> [#uses=1] | |
%310 = icmp eq i32 %309, 2147483647 ; <i1> [#uses=1] | |
br i1 %310, label %bb106, label %bb105 | |
bb105: ; preds = %bb104 | |
store i8 1, i8* @overrideidents, align 1 | |
br label %bb106 | |
bb106: ; preds = %bb105, %bb104 | |
%311 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 8, i32 0 ; <i8**> [#uses=4] | |
%312 = load i8** %311, align 8 ; <i8*> [#uses=2] | |
%313 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=2] | |
%314 = load i8** %313, align 8 ; <i8*> [#uses=2] | |
store i8* %314, i8** %311, align 8 | |
%315 = call i8* @_Z10executeretPKc(i8* %314) ; <i8*> [#uses=2] | |
%316 = icmp eq i8* %315, null ; <i1> [#uses=1] | |
%retval1.4 = select i1 %316, i8* %retval1.0, i8* %315 ; <i8*> [#uses=2] | |
%317 = load i8** %311, align 8 ; <i8*> [#uses=4] | |
%318 = load i8** %313, align 8 ; <i8*> [#uses=1] | |
%319 = icmp eq i8* %317, %318 ; <i1> [#uses=1] | |
%320 = icmp eq i8* %317, %312 ; <i1> [#uses=1] | |
%or.cond = or i1 %319, %320 ; <i1> [#uses=1] | |
%321 = icmp eq i8* %317, null ; <i1> [#uses=1] | |
%or.cond219 = or i1 %or.cond, %321 ; <i1> [#uses=1] | |
br i1 %or.cond219, label %bb113, label %bb112 | |
bb112: ; preds = %bb106 | |
call void @_ZdaPv(i8* %317) nounwind | |
br label %bb113 | |
bb113: ; preds = %bb112, %bb106 | |
store i8* %312, i8** %311, align 8 | |
store i8 %307, i8* @overrideidents, align 1 | |
br i1 %278, label %bb.nph158, label %bb123.outer | |
bb.nph158: ; preds = %bb113 | |
%tmp198 = add i32 %numargs.0, -2 ; <i32> [#uses=1] | |
%tmp199 = zext i32 %tmp198 to i64 ; <i64> [#uses=1] | |
%tmp200 = add i64 %tmp199, 1 ; <i64> [#uses=1] | |
br label %bb115 | |
bb115: ; preds = %_Z8popidentR5ident.exit, %bb.nph158 | |
%indvar196 = phi i64 [ 0, %bb.nph158 ], [ %indvar.next197, %_Z8popidentR5ident.exit ] ; <i64> [#uses=2] | |
%322 = load %struct.ident*** getelementptr inbounds (%"struct.vector<ident*>"* @_ZZ10executeretPKcE6argids, i64 0, i32 0), align 16 ; <%struct.ident**> [#uses=1] | |
%scevgep202 = getelementptr %struct.ident** %322, i64 %indvar196 ; <%struct.ident**> [#uses=1] | |
%323 = load %struct.ident** %scevgep202, align 8 ; <%struct.ident*> [#uses=4] | |
%324 = getelementptr inbounds %struct.ident* %323, i64 0, i32 1 ; <i32*> [#uses=1] | |
%325 = load i32* %324, align 8 ; <i32> [#uses=1] | |
%326 = icmp eq i32 %325, 5 ; <i1> [#uses=1] | |
br i1 %326, label %bb.i, label %_Z8popidentR5ident.exit | |
bb.i: ; preds = %bb115 | |
%327 = getelementptr inbounds %struct.ident* %323, i64 0, i32 6, i32 0 ; <void ()**> [#uses=3] | |
%328 = load void ()** %327, align 8 ; <void ()*> [#uses=2] | |
%329 = icmp eq void ()* %328, null ; <i1> [#uses=1] | |
br i1 %329, label %_Z8popidentR5ident.exit, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%330 = getelementptr inbounds %struct.ident* %323, i64 0, i32 7, i32 0 ; <i8**> [#uses=2] | |
%331 = load i8** %330, align 8 ; <i8*> [#uses=3] | |
%332 = getelementptr inbounds %struct.ident* %323, i64 0, i32 8, i32 0 ; <i8**> [#uses=1] | |
%333 = load i8** %332, align 8 ; <i8*> [#uses=1] | |
%334 = icmp eq i8* %331, %333 ; <i1> [#uses=1] | |
%335 = icmp eq i8* %331, null ; <i1> [#uses=1] | |
%or.cond.i = or i1 %334, %335 ; <i1> [#uses=1] | |
br i1 %or.cond.i, label %bb4.i, label %bb3.i | |
bb3.i: ; preds = %bb1.i | |
call void @_ZdaPv(i8* %331) nounwind | |
%.pre.i = load void ()** %327, align 8 ; <void ()*> [#uses=1] | |
br label %bb4.i | |
bb4.i: ; preds = %bb3.i, %bb1.i | |
%336 = phi void ()* [ %328, %bb1.i ], [ %.pre.i, %bb3.i ] ; <void ()*> [#uses=3] | |
%337 = bitcast void ()* %336 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%338 = bitcast void ()* %336 to i8** ; <i8**> [#uses=1] | |
%339 = load i8** %338, align 8 ; <i8*> [#uses=1] | |
store i8* %339, i8** %330, align 8 | |
%340 = getelementptr inbounds %struct.identstack* %337, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%341 = load %struct.identstack** %340, align 8 ; <%struct.identstack*> [#uses=1] | |
%.c.i = bitcast %struct.identstack* %341 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i, void ()** %327 | |
%342 = bitcast void ()* %336 to i8* ; <i8*> [#uses=1] | |
call void @_ZdlPv(i8* %342) nounwind | |
br label %_Z8popidentR5ident.exit | |
_Z8popidentR5ident.exit: ; preds = %bb4.i, %bb.i, %bb115 | |
%indvar.next197 = add i64 %indvar196, 1 ; <i64> [#uses=2] | |
%exitcond201 = icmp eq i64 %indvar.next197, %tmp200 ; <i1> [#uses=1] | |
br i1 %exitcond201, label %bb123.outer, label %bb115 | |
bb117: ; preds = %bb90, %bb86, %_ZL10parsefloatPKc.exit146, %bb83, %bb81, %bb71, %bb70, %bb63, %bb25, %bb24, %bb23, %bb17, %bb12 | |
%retval1.2 = phi i8* [ %retval1.0, %bb17 ], [ %70, %bb24 ], [ %retval1.0, %bb23 ], [ %retval1.0, %bb25 ], [ %retval1.3, %bb63 ], [ %retval1.0, %bb86 ], [ %retval1.0, %bb90 ], [ %retval1.0, %bb83 ], [ %retval1.0, %_ZL10parsefloatPKc.exit146 ], [ %retval1.0, %bb71 ], [ %retval1.0, %bb70 ], [ %retval1.0, %bb81 ], [ %retval1.0, %bb12 ] ; <i8*> [#uses=2] | |
%343 = icmp sgt i32 %numargs.0, 0 ; <i1> [#uses=1] | |
br i1 %343, label %bb.nph, label %bb123.outer | |
bb.nph: ; preds = %bb117 | |
%tmp = zext i32 %numargs.0 to i64 ; <i64> [#uses=1] | |
br label %bb118 | |
bb118: ; preds = %bb121, %bb.nph | |
%indvar177 = phi i64 [ 0, %bb.nph ], [ %indvar.next178, %bb121 ] ; <i64> [#uses=2] | |
%scevgep = getelementptr [25 x i8*]* %w, i64 0, i64 %indvar177 ; <i8**> [#uses=1] | |
%344 = load i8** %scevgep, align 8 ; <i8*> [#uses=2] | |
%345 = icmp eq i8* %344, null ; <i1> [#uses=1] | |
br i1 %345, label %bb121, label %bb120 | |
bb120: ; preds = %bb118 | |
call void @_ZdaPv(i8* %344) nounwind | |
br label %bb121 | |
bb121: ; preds = %bb120, %bb118 | |
%indvar.next178 = add i64 %indvar177, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next178, %tmp ; <i1> [#uses=1] | |
br i1 %exitcond, label %bb123.outer, label %bb118 | |
bb123.outer: ; preds = %bb121, %bb117, %_Z8popidentR5ident.exit, %bb113, %entry | |
%cont.0.ph = phi i8 [ 1, %entry ], [ %27, %bb117 ], [ %27, %bb121 ], [ %27, %_Z8popidentR5ident.exit ], [ %27, %bb113 ] ; <i8> [#uses=1] | |
%retval1.1.ph = phi i8* [ null, %entry ], [ %retval1.2, %bb121 ], [ %retval1.2, %bb117 ], [ %retval1.4, %_Z8popidentR5ident.exit ], [ %retval1.4, %bb113 ] ; <i8*> [#uses=4] | |
br label %bb123 | |
bb123: ; preds = %bb123.outer, %bb7, %bb6 | |
%cont.0 = phi i8 [ %cont.0.ph, %bb123.outer ], [ %27, %bb6 ], [ %27, %bb7 ] ; <i8> [#uses=1] | |
%toBool124 = icmp eq i8 %cont.0, 0 ; <i1> [#uses=1] | |
br i1 %toBool124, label %bb125, label %bb | |
bb125: ; preds = %bb123 | |
ret i8* %retval1.1.ph | |
} | |
define i8* @_Z9parsewordRPKciRi(i8** %p, i32 %arg, i32* nocapture %infix) { | |
entry: | |
%.pre = load i8** %p, align 8 ; <i8*> [#uses=1] | |
br label %bb | |
bb: ; preds = %bb2, %entry | |
%0 = phi i8* [ %8, %bb2 ], [ %.pre, %entry ] ; <i8*> [#uses=5] | |
%1 = tail call i64 @strspn(i8* %0, i8* getelementptr inbounds ([4 x i8]* @.str152, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=4] | |
%2 = getelementptr inbounds i8* %0, i64 %1 ; <i8*> [#uses=10] | |
store i8* %2, i8** %p, align 8 | |
%3 = load i8* %2, align 1 ; <i8> [#uses=2] | |
switch i8 %3, label %bb13 [ | |
i8 47, label %bb1 | |
i8 34, label %bb4 | |
i8 40, label %bb9 | |
i8 91, label %bb11 | |
] | |
bb1: ; preds = %bb | |
%.sum35 = add i64 %1, 1 ; <i64> [#uses=1] | |
%4 = getelementptr inbounds i8* %0, i64 %.sum35 ; <i8*> [#uses=1] | |
%5 = load i8* %4, align 1 ; <i8> [#uses=1] | |
%6 = icmp eq i8 %5, 47 ; <i1> [#uses=1] | |
br i1 %6, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
%7 = tail call i64 @strcspn(i8* %2, i8* getelementptr inbounds ([3 x i8]* @.str150, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum36 = add i64 %1, %7 ; <i64> [#uses=1] | |
%8 = getelementptr inbounds i8* %0, i64 %.sum36 ; <i8*> [#uses=2] | |
store i8* %8, i8** %p, align 8 | |
br label %bb | |
bb3: ; preds = %bb1 | |
switch i8 %3, label %bb13 [ | |
i8 34, label %bb4 | |
i8 40, label %bb9 | |
i8 91, label %bb11 | |
] | |
bb4: ; preds = %bb3, %bb | |
%.sum34 = add i64 %1, 1 ; <i64> [#uses=1] | |
%9 = getelementptr inbounds i8* %0, i64 %.sum34 ; <i8*> [#uses=3] | |
store i8* %9, i8** %p, align 8 | |
br label %bb5.i | |
bb2.i: ; preds = %bb5.i | |
%10 = getelementptr inbounds i8* %p_addr.1.i, i64 1 ; <i8*> [#uses=3] | |
%11 = load i8* %10, align 1 ; <i8> [#uses=1] | |
%12 = icmp eq i8 %11, 0 ; <i1> [#uses=1] | |
br i1 %12, label %_Z11parsestringPKc.exit, label %bb4.i | |
bb4.i: ; preds = %bb5.i, %bb2.i | |
%p_addr.0.i = phi i8* [ %10, %bb2.i ], [ %p_addr.1.i, %bb5.i ] ; <i8*> [#uses=1] | |
%13 = getelementptr inbounds i8* %p_addr.0.i, i64 1 ; <i8*> [#uses=1] | |
br label %bb5.i | |
bb5.i: ; preds = %bb4.i, %bb4 | |
%p_addr.1.i = phi i8* [ %9, %bb4 ], [ %13, %bb4.i ] ; <i8*> [#uses=7] | |
%14 = load i8* %p_addr.1.i, align 1 ; <i8> [#uses=1] | |
switch i8 %14, label %bb4.i [ | |
i8 0, label %_Z11parsestringPKc.exit | |
i8 10, label %_Z11parsestringPKc.exit | |
i8 13, label %_Z11parsestringPKc.exit | |
i8 34, label %_Z11parsestringPKc.exit | |
i8 94, label %bb2.i | |
] | |
_Z11parsestringPKc.exit: ; preds = %bb5.i, %bb5.i, %bb5.i, %bb5.i, %bb2.i | |
%15 = phi i8* [ %10, %bb2.i ], [ %p_addr.1.i, %bb5.i ], [ %p_addr.1.i, %bb5.i ], [ %p_addr.1.i, %bb5.i ], [ %p_addr.1.i, %bb5.i ] ; <i8*> [#uses=6] | |
%16 = ptrtoint i8* %15 to i64 ; <i64> [#uses=1] | |
%17 = ptrtoint i8* %9 to i64 ; <i64> [#uses=1] | |
%18 = add i64 %16, 1 ; <i64> [#uses=1] | |
%19 = sub i64 %18, %17 ; <i64> [#uses=1] | |
%20 = tail call i8* @_Znam(i64 %19) ; <i8*> [#uses=4] | |
%21 = load i8** %p, align 8 ; <i8*> [#uses=1] | |
br label %bb8.i | |
bb.i: ; preds = %bb8.i | |
%22 = load i8* %src_addr.0.i, align 1 ; <i8> [#uses=2] | |
%23 = getelementptr inbounds i8* %src_addr.0.i, i64 1 ; <i8*> [#uses=3] | |
%24 = icmp eq i8 %22, 94 ; <i1> [#uses=1] | |
br i1 %24, label %bb1.i, label %bb7.i | |
bb1.i: ; preds = %bb.i | |
%25 = icmp ult i8* %23, %15 ; <i1> [#uses=1] | |
br i1 %25, label %bb2.i29, label %_Z12escapestringPcPKcS1_.exit | |
bb2.i29: ; preds = %bb1.i | |
%26 = load i8* %23, align 1 ; <i8> [#uses=2] | |
%27 = sext i8 %26 to i32 ; <i32> [#uses=1] | |
%28 = getelementptr inbounds i8* %src_addr.0.i, i64 2 ; <i8*> [#uses=4] | |
switch i32 %27, label %bb6.i [ | |
i32 102, label %bb5.i31 | |
i32 110, label %bb3.i | |
i32 116, label %bb4.i30 | |
] | |
bb3.i: ; preds = %bb2.i29 | |
store i8 10, i8* %dst_addr.0.i, align 1 | |
br label %bb8.backedge.i | |
bb8.backedge.i: ; preds = %bb7.i, %bb6.i, %bb5.i31, %bb4.i30, %bb3.i | |
%src_addr.0.be.i = phi i8* [ %28, %bb6.i ], [ %28, %bb4.i30 ], [ %28, %bb3.i ], [ %28, %bb5.i31 ], [ %23, %bb7.i ] ; <i8*> [#uses=1] | |
%indvar.next.i = add i64 %29, 1 ; <i64> [#uses=1] | |
br label %bb8.i | |
bb4.i30: ; preds = %bb2.i29 | |
store i8 9, i8* %dst_addr.0.i, align 1 | |
br label %bb8.backedge.i | |
bb5.i31: ; preds = %bb2.i29 | |
store i8 12, i8* %dst_addr.0.i, align 1 | |
br label %bb8.backedge.i | |
bb6.i: ; preds = %bb2.i29 | |
store i8 %26, i8* %dst_addr.0.i, align 1 | |
br label %bb8.backedge.i | |
bb7.i: ; preds = %bb.i | |
store i8 %22, i8* %dst_addr.0.i, align 1 | |
br label %bb8.backedge.i | |
bb8.i: ; preds = %bb8.backedge.i, %_Z11parsestringPKc.exit | |
%29 = phi i64 [ %indvar.next.i, %bb8.backedge.i ], [ 0, %_Z11parsestringPKc.exit ] ; <i64> [#uses=3] | |
%src_addr.0.i = phi i8* [ %src_addr.0.be.i, %bb8.backedge.i ], [ %21, %_Z11parsestringPKc.exit ] ; <i8*> [#uses=4] | |
%dst_addr.0.i = getelementptr i8* %20, i64 %29 ; <i8*> [#uses=5] | |
%30 = icmp ult i8* %src_addr.0.i, %15 ; <i1> [#uses=1] | |
br i1 %30, label %bb.i, label %_Z12escapestringPcPKcS1_.exit | |
_Z12escapestringPcPKcS1_.exit: ; preds = %bb8.i, %bb1.i | |
%sext = shl i64 %29, 32 ; <i64> [#uses=1] | |
%31 = ashr i64 %sext, 32 ; <i64> [#uses=1] | |
%32 = getelementptr inbounds i8* %20, i64 %31 ; <i8*> [#uses=1] | |
store i8 0, i8* %32, align 1 | |
store i8* %15, i8** %p, align 8 | |
%33 = load i8* %15, align 1 ; <i8> [#uses=1] | |
%34 = icmp eq i8 %33, 34 ; <i1> [#uses=1] | |
br i1 %34, label %bb6, label %bb27 | |
bb6: ; preds = %_Z12escapestringPcPKcS1_.exit | |
%35 = getelementptr inbounds i8* %15, i64 1 ; <i8*> [#uses=1] | |
store i8* %35, i8** %p, align 8 | |
ret i8* %20 | |
bb9: ; preds = %bb3, %bb | |
%36 = tail call i8* @_Z8parseexpRPKci(i8** %p, i32 41) ; <i8*> [#uses=1] | |
ret i8* %36 | |
bb11: ; preds = %bb3, %bb | |
%37 = tail call i8* @_Z8parseexpRPKci(i8** %p, i32 93) ; <i8*> [#uses=1] | |
ret i8* %37 | |
bb13: ; preds = %bb17, %bb3, %bb | |
%38 = phi i8* [ %45, %bb17 ], [ %2, %bb3 ], [ %2, %bb ] ; <i8*> [#uses=4] | |
%39 = tail call i64 @strcspn(i8* %38, i8* getelementptr inbounds ([8 x i8]* @.str153, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=3] | |
%40 = getelementptr inbounds i8* %38, i64 %39 ; <i8*> [#uses=4] | |
store i8* %40, i8** %p, align 8 | |
%41 = load i8* %40, align 1 ; <i8> [#uses=1] | |
%42 = icmp eq i8 %41, 47 ; <i1> [#uses=1] | |
br i1 %42, label %bb14, label %bb18 | |
bb14: ; preds = %bb13 | |
%.sum = add i64 %39, 1 ; <i64> [#uses=1] | |
%43 = getelementptr inbounds i8* %38, i64 %.sum ; <i8*> [#uses=3] | |
%44 = load i8* %43, align 1 ; <i8> [#uses=1] | |
switch i8 %44, label %bb17 [ | |
i8 47, label %bb18 | |
i8 0, label %bb16 | |
] | |
bb16: ; preds = %bb14 | |
store i8* %43, i8** %p, align 8 | |
br label %bb18 | |
bb17: ; preds = %bb14 | |
%.sum33 = add i64 %39, 2 ; <i64> [#uses=1] | |
%45 = getelementptr inbounds i8* %38, i64 %.sum33 ; <i8*> [#uses=2] | |
store i8* %45, i8** %p, align 8 | |
br label %bb13 | |
bb18: ; preds = %bb16, %bb14, %bb13 | |
%46 = phi i8* [ %43, %bb16 ], [ %40, %bb14 ], [ %40, %bb13 ] ; <i8*> [#uses=5] | |
%47 = icmp eq i8* %46, %2 ; <i1> [#uses=1] | |
br i1 %47, label %bb27, label %bb20 | |
bb20: ; preds = %bb18 | |
%48 = icmp eq i32 %arg, 1 ; <i1> [#uses=1] | |
br i1 %48, label %bb21, label %bb24 | |
bb21: ; preds = %bb20 | |
%49 = ptrtoint i8* %46 to i64 ; <i64> [#uses=1] | |
%50 = ptrtoint i8* %2 to i64 ; <i64> [#uses=1] | |
%51 = sub nsw i64 %49, %50 ; <i64> [#uses=1] | |
%52 = icmp eq i64 %51, 1 ; <i1> [#uses=1] | |
br i1 %52, label %bb22, label %bb24 | |
bb22: ; preds = %bb21 | |
%53 = load i8* %2, align 1 ; <i8> [#uses=2] | |
%cond = icmp eq i8 %53, 61 ; <i1> [#uses=1] | |
br i1 %cond, label %bb23, label %bb24 | |
bb23: ; preds = %bb22 | |
%54 = sext i8 %53 to i32 ; <i32> [#uses=1] | |
store i32 %54, i32* %infix, align 4 | |
%.pre32 = load i8** %p, align 8 ; <i8*> [#uses=1] | |
br label %bb24 | |
bb24: ; preds = %bb23, %bb22, %bb21, %bb20 | |
%55 = phi i8* [ %46, %bb22 ], [ %.pre32, %bb23 ], [ %46, %bb21 ], [ %46, %bb20 ] ; <i8*> [#uses=1] | |
%56 = ptrtoint i8* %55 to i64 ; <i64> [#uses=1] | |
%57 = ptrtoint i8* %2 to i64 ; <i64> [#uses=1] | |
%58 = sub nsw i64 %56, %57 ; <i64> [#uses=2] | |
%59 = add i64 %58, 1 ; <i64> [#uses=2] | |
%60 = tail call i8* @_Znam(i64 %59) ; <i8*> [#uses=5] | |
%61 = tail call i8* @strncpy(i8* noalias %60, i8* noalias %2, i64 %59) nounwind ; <i8*> [#uses=0] | |
%62 = getelementptr inbounds i8* %60, i64 %58 ; <i8*> [#uses=1] | |
store i8 0, i8* %62, align 1 | |
%63 = load i8* %60, align 1 ; <i8> [#uses=1] | |
%64 = icmp eq i8 %63, 36 ; <i1> [#uses=1] | |
br i1 %64, label %bb25, label %bb27 | |
bb25: ; preds = %bb24 | |
%65 = tail call i8* @_Z6lookupPc(i8* %60) ; <i8*> [#uses=1] | |
ret i8* %65 | |
bb27: ; preds = %bb24, %bb18, %_Z12escapestringPcPKcS1_.exit | |
%.0 = phi i8* [ %20, %_Z12escapestringPcPKcS1_.exit ], [ null, %bb18 ], [ %60, %bb24 ] ; <i8*> [#uses=1] | |
ret i8* %.0 | |
} | |
declare i8* @strchr(i8*, i32) nounwind readonly | |
declare i32 @__cxa_guard_acquire(i64*) nounwind | |
declare void @__cxa_guard_release(i64*) nounwind | |
define i32 @_Z7executePKc(i8* %p) { | |
entry: | |
%0 = tail call i8* @_Z10executeretPKc(i8* %p) ; <i8*> [#uses=3] | |
%1 = icmp eq i8* %0, null ; <i1> [#uses=1] | |
br i1 %1, label %bb2, label %bb | |
bb: ; preds = %entry | |
%2 = tail call i64 @strtol(i8* noalias nocapture %0, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%3 = trunc i64 %2 to i32 ; <i32> [#uses=1] | |
tail call void @_ZdaPv(i8* %0) nounwind | |
ret i32 %3 | |
bb2: ; preds = %entry | |
ret i32 0 | |
} | |
define i32 @main() { | |
entry: | |
%0 = tail call i32 @puts(i8* getelementptr inbounds ([2 x i8]* @.str50, i64 0, i64 0)) ; <i32> [#uses=0] | |
%1 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([10 x i8]* @.str135, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%2 = icmp eq i8* %1, null ; <i1> [#uses=1] | |
br i1 %2, label %_Z7executePKc.exit, label %bb.i | |
bb.i: ; preds = %entry | |
tail call void @_ZdaPv(i8* %1) nounwind | |
br label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb.i, %entry | |
%3 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([23 x i8]* @.str136, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%4 = icmp eq i8* %3, null ; <i1> [#uses=1] | |
br i1 %4, label %_Z7executePKc.exit36, label %bb.i34 | |
bb.i34: ; preds = %_Z7executePKc.exit | |
tail call void @_ZdaPv(i8* %3) nounwind | |
br label %_Z7executePKc.exit36 | |
_Z7executePKc.exit36: ; preds = %bb.i34, %_Z7executePKc.exit | |
%5 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([62 x i8]* @.str137, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%6 = icmp eq i8* %5, null ; <i1> [#uses=1] | |
br i1 %6, label %_Z7executePKc.exit33, label %bb.i31 | |
bb.i31: ; preds = %_Z7executePKc.exit36 | |
tail call void @_ZdaPv(i8* %5) nounwind | |
br label %_Z7executePKc.exit33 | |
_Z7executePKc.exit33: ; preds = %bb.i31, %_Z7executePKc.exit36 | |
%7 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([52 x i8]* @.str138, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%8 = icmp eq i8* %7, null ; <i1> [#uses=1] | |
br i1 %8, label %_Z7executePKc.exit30, label %bb.i28 | |
bb.i28: ; preds = %_Z7executePKc.exit33 | |
tail call void @_ZdaPv(i8* %7) nounwind | |
br label %_Z7executePKc.exit30 | |
_Z7executePKc.exit30: ; preds = %bb.i28, %_Z7executePKc.exit33 | |
%9 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([21 x i8]* @.str139, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%10 = icmp eq i8* %9, null ; <i1> [#uses=1] | |
br i1 %10, label %_Z7executePKc.exit27, label %bb.i25 | |
bb.i25: ; preds = %_Z7executePKc.exit30 | |
tail call void @_ZdaPv(i8* %9) nounwind | |
br label %_Z7executePKc.exit27 | |
_Z7executePKc.exit27: ; preds = %bb.i25, %_Z7executePKc.exit30 | |
%11 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%12 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %11, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%13 = load i32* %12, align 8 ; <i32> [#uses=1] | |
%14 = add nsw i32 %13, -1 ; <i32> [#uses=1] | |
%15 = and i32 %14, -1395866892 ; <i32> [#uses=1] | |
%16 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %11, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%17 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %16, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%18 = zext i32 %15 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %17, i64 %18 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i.i | |
bb.i.i: ; preds = %bb3.i.i | |
%.idx.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i.i = load i8** %.idx.i.i ; <i8*> [#uses=1] | |
%20 = tail call i32 @strcmp(i8* getelementptr inbounds ([8 x i8]* @.str123, i64 0, i64 0), i8* %.idx.val.i.i) nounwind readonly ; <i32> [#uses=1] | |
%21 = icmp eq i32 %20, 0 ; <i1> [#uses=1] | |
br i1 %21, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i, label %bb2.i.i | |
bb2.i.i: ; preds = %bb.i.i | |
%22 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i.i | |
bb3.i.i: ; preds = %bb2.i.i, %_Z7executePKc.exit27 | |
%c.0.in.i.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %19, %_Z7executePKc.exit27 ], [ %22, %bb2.i.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%23 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, null ; <i1> [#uses=1] | |
br i1 %23, label %_Z6getvarPKc.exit, label %bb.i.i | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit.i: ; preds = %bb.i.i | |
%24 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%25 = icmp eq %struct.ident* %24, null ; <i1> [#uses=1] | |
br i1 %25, label %_Z6getvarPKc.exit, label %bb.i23 | |
bb.i23: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i | |
%26 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%27 = load i32* %26, align 8 ; <i32> [#uses=1] | |
%28 = icmp eq i32 %27, 0 ; <i1> [#uses=1] | |
br i1 %28, label %bb2.i24, label %_Z6getvarPKc.exit | |
bb2.i24: ; preds = %bb.i23 | |
%29 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1, i32 9, i32 0 ; <i32**> [#uses=1] | |
%30 = load i32** %29, align 8 ; <i32*> [#uses=1] | |
%31 = load i32* %30, align 4 ; <i32> [#uses=1] | |
br label %_Z6getvarPKc.exit | |
_Z6getvarPKc.exit: ; preds = %bb2.i24, %bb.i23, %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i, %bb3.i.i | |
%32 = phi i32 [ %31, %bb2.i24 ], [ 0, %bb.i23 ], [ 0, %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i ], [ 0, %bb3.i.i ] ; <i32> [#uses=1] | |
%33 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str140, i64 0, i64 0), i32 %32) ; <i32> [#uses=0] | |
%34 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([6 x i8]* @.str141, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%35 = icmp eq i8* %34, null ; <i1> [#uses=1] | |
br i1 %35, label %_Z7executePKc.exit22, label %bb.i20 | |
bb.i20: ; preds = %_Z6getvarPKc.exit | |
tail call void @_ZdaPv(i8* %34) nounwind | |
br label %_Z7executePKc.exit22 | |
_Z7executePKc.exit22: ; preds = %bb.i20, %_Z6getvarPKc.exit | |
%36 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([9 x i8]* @.str142, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%37 = icmp eq i8* %36, null ; <i1> [#uses=1] | |
br i1 %37, label %_Z7executePKc.exit19, label %bb.i17 | |
bb.i17: ; preds = %_Z7executePKc.exit22 | |
tail call void @_ZdaPv(i8* %36) nounwind | |
br label %_Z7executePKc.exit19 | |
_Z7executePKc.exit19: ; preds = %bb.i17, %_Z7executePKc.exit22 | |
%38 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([10 x i8]* @.str143, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%39 = icmp eq i8* %38, null ; <i1> [#uses=1] | |
br i1 %39, label %_Z7executePKc.exit16, label %bb.i14 | |
bb.i14: ; preds = %_Z7executePKc.exit19 | |
tail call void @_ZdaPv(i8* %38) nounwind | |
br label %_Z7executePKc.exit16 | |
_Z7executePKc.exit16: ; preds = %bb.i14, %_Z7executePKc.exit19 | |
%40 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([6 x i8]* @.str144, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%41 = icmp eq i8* %40, null ; <i1> [#uses=1] | |
br i1 %41, label %_Z7executePKc.exit13, label %bb.i11 | |
bb.i11: ; preds = %_Z7executePKc.exit16 | |
tail call void @_ZdaPv(i8* %40) nounwind | |
br label %_Z7executePKc.exit13 | |
_Z7executePKc.exit13: ; preds = %bb.i11, %_Z7executePKc.exit16 | |
%42 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([8 x i8]* @.str145, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%43 = icmp eq i8* %42, null ; <i1> [#uses=1] | |
br i1 %43, label %_Z7executePKc.exit10, label %bb.i8 | |
bb.i8: ; preds = %_Z7executePKc.exit13 | |
tail call void @_ZdaPv(i8* %42) nounwind | |
br label %_Z7executePKc.exit10 | |
_Z7executePKc.exit10: ; preds = %bb.i8, %_Z7executePKc.exit13 | |
%44 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([30 x i8]* @.str146, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%45 = icmp eq i8* %44, null ; <i1> [#uses=1] | |
br i1 %45, label %_Z7executePKc.exit7, label %bb.i5 | |
bb.i5: ; preds = %_Z7executePKc.exit10 | |
tail call void @_ZdaPv(i8* %44) nounwind | |
br label %_Z7executePKc.exit7 | |
_Z7executePKc.exit7: ; preds = %bb.i5, %_Z7executePKc.exit10 | |
%46 = tail call i8* @_Z10executeretPKc(i8* getelementptr inbounds ([15 x i8]* @.str147, i64 0, i64 0)) ; <i8*> [#uses=2] | |
%47 = icmp eq i8* %46, null ; <i1> [#uses=1] | |
br i1 %47, label %_Z7executePKc.exit4, label %bb.i2 | |
bb.i2: ; preds = %_Z7executePKc.exit7 | |
tail call void @_ZdaPv(i8* %46) nounwind | |
br label %_Z7executePKc.exit4 | |
_Z7executePKc.exit4: ; preds = %bb.i2, %_Z7executePKc.exit7 | |
%48 = tail call i32 @puts(i8* getelementptr inbounds ([2 x i8]* @.str50, i64 0, i64 0)) ; <i32> [#uses=0] | |
ret i32 0 | |
} | |
declare i32 @printf(i8* noalias nocapture, ...) nounwind | |
define void @_Z8looplistPKcS0_S0_b(i8* %var, i8* %list, i8* %body, i8 zeroext %search) { | |
entry: | |
%0 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%1 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%2 = alloca %struct.stringformatter, align 8 ; <%struct.stringformatter*> [#uses=2] | |
%3 = call %struct.ident* @_Z8newidentPKc(i8* %var) ; <%struct.ident*> [#uses=5] | |
%4 = getelementptr inbounds %struct.ident* %3, i64 0, i32 1 ; <i32*> [#uses=3] | |
%5 = load i32* %4, align 8 ; <i32> [#uses=1] | |
%6 = icmp eq i32 %5, 5 ; <i1> [#uses=1] | |
br i1 %6, label %bb3.preheader, label %bb | |
bb3.preheader: ; preds = %entry | |
%7 = getelementptr inbounds %struct.ident* %3, i64 0, i32 8, i32 0 ; <i8**> [#uses=2] | |
%8 = getelementptr inbounds %struct.ident* %3, i64 0, i32 7, i32 0 ; <i8**> [#uses=4] | |
%9 = getelementptr inbounds %struct.ident* %3, i64 0, i32 6, i32 0 ; <void ()**> [#uses=5] | |
%toBool19not = icmp eq i8 %search, 0 ; <i1> [#uses=2] | |
%10 = getelementptr inbounds %struct.ident* %3, i64 0, i32 2 ; <i8**> [#uses=1] | |
br label %bb3 | |
bb: ; preds = %entry | |
%toBool = icmp eq i8 %search, 0 ; <i1> [#uses=1] | |
br i1 %toBool, label %_Z8popidentR5ident.exit, label %bb1 | |
bb1: ; preds = %bb | |
%11 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%12 = add nsw i32 %11, 1 ; <i32> [#uses=1] | |
%13 = srem i32 %12, 3 ; <i32> [#uses=2] | |
store i32 %13, i32* @_ZL6retidx, align 4 | |
%14 = sext i32 %13 to i64 ; <i64> [#uses=1] | |
%15 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %14, i64 0 ; <i8*> [#uses=1] | |
%16 = getelementptr inbounds %struct.stringformatter* %2, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %15, i8** %16, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %2, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 -1) nounwind | |
%17 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%18 = sext i32 %17 to i64 ; <i64> [#uses=1] | |
%19 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %18, i64 0 ; <i8*> [#uses=2] | |
%20 = call i64 @strlen(i8* %19) nounwind readonly ; <i64> [#uses=2] | |
%21 = add i64 %20, 1 ; <i64> [#uses=2] | |
%22 = call i8* @_Znam(i64 %21) ; <i8*> [#uses=3] | |
%23 = call i8* @strncpy(i8* noalias %22, i8* noalias %19, i64 %21) nounwind ; <i8*> [#uses=0] | |
%24 = getelementptr inbounds i8* %22, i64 %20 ; <i8*> [#uses=1] | |
store i8 0, i8* %24, align 1 | |
store i8* %22, i8** @commandret, align 8 | |
ret void | |
bb3: ; preds = %_Z7executePKc.exit, %bb17, %bb3.preheader | |
%25 = phi i32 [ 0, %bb3.preheader ], [ %tmp, %_Z7executePKc.exit ], [ %tmp, %bb17 ] ; <i32> [#uses=4] | |
%s.0 = phi i8* [ %list, %bb3.preheader ], [ %s.1, %_Z7executePKc.exit ], [ %s.1, %bb17 ] ; <i8*> [#uses=7] | |
%tmp = add i32 %25, 1 ; <i32> [#uses=4] | |
%26 = call i64 @strspn(i8* %s.0, i8* getelementptr inbounds ([4 x i8]* @.str12, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=4] | |
%27 = getelementptr inbounds i8* %s.0, i64 %26 ; <i8*> [#uses=3] | |
%28 = load i8* %27, align 1 ; <i8> [#uses=2] | |
%29 = icmp eq i8 %28, 0 ; <i1> [#uses=1] | |
br i1 %29, label %bb4, label %bb7 | |
bb4: ; preds = %bb3 | |
br i1 %toBool19not, label %bb28, label %bb6 | |
bb6: ; preds = %bb4 | |
%30 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%31 = add nsw i32 %30, 1 ; <i32> [#uses=1] | |
%32 = srem i32 %31, 3 ; <i32> [#uses=2] | |
store i32 %32, i32* @_ZL6retidx, align 4 | |
%33 = sext i32 %32 to i64 ; <i64> [#uses=1] | |
%34 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %33, i64 0 ; <i8*> [#uses=1] | |
%35 = getelementptr inbounds %struct.stringformatter* %0, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %34, i8** %35, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %0, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 -1) nounwind | |
%36 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%37 = sext i32 %36 to i64 ; <i64> [#uses=1] | |
%38 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %37, i64 0 ; <i8*> [#uses=2] | |
%39 = call i64 @strlen(i8* %38) nounwind readonly ; <i64> [#uses=2] | |
%40 = add i64 %39, 1 ; <i64> [#uses=2] | |
%41 = call i8* @_Znam(i64 %40) ; <i8*> [#uses=3] | |
%42 = call i8* @strncpy(i8* noalias %41, i8* noalias %38, i64 %40) nounwind ; <i8*> [#uses=0] | |
%43 = getelementptr inbounds i8* %41, i64 %39 ; <i8*> [#uses=1] | |
store i8 0, i8* %43, align 1 | |
store i8* %41, i8** @commandret, align 8 | |
br label %bb28 | |
bb7: ; preds = %bb3 | |
%44 = icmp eq i8 %28, 34 ; <i1> [#uses=2] | |
br i1 %44, label %bb8, label %bb9 | |
bb8: ; preds = %bb7 | |
%.sum32 = add i64 %26, 1 ; <i64> [#uses=2] | |
%45 = getelementptr inbounds i8* %s.0, i64 %.sum32 ; <i8*> [#uses=1] | |
%46 = call i64 @strcspn(i8* %45, i8* getelementptr inbounds ([4 x i8]* @.str13, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum33 = add i64 %46, %.sum32 ; <i64> [#uses=2] | |
%47 = getelementptr inbounds i8* %s.0, i64 %.sum33 ; <i8*> [#uses=1] | |
%48 = load i8* %47, align 1 ; <i8> [#uses=1] | |
%49 = icmp eq i8 %48, 34 ; <i1> [#uses=1] | |
%50 = zext i1 %49 to i64 ; <i64> [#uses=1] | |
%.sum34 = add i64 %50, %.sum33 ; <i64> [#uses=1] | |
br label %bb10 | |
bb9: ; preds = %bb7 | |
%51 = call i64 @strcspn(i8* %27, i8* getelementptr inbounds ([5 x i8]* @.str14, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum = add i64 %51, %26 ; <i64> [#uses=1] | |
br label %bb10 | |
bb10: ; preds = %bb9, %bb8 | |
%.sum34.pn = phi i64 [ %.sum34, %bb8 ], [ %.sum, %bb9 ] ; <i64> [#uses=2] | |
%s.1 = getelementptr inbounds i8* %s.0, i64 %.sum34.pn ; <i8*> [#uses=4] | |
br i1 %44, label %bb11, label %bb13 | |
bb11: ; preds = %bb10 | |
%.sum31 = add i64 %26, 1 ; <i64> [#uses=1] | |
%52 = getelementptr inbounds i8* %s.0, i64 %.sum31 ; <i8*> [#uses=2] | |
%s.1.sum35 = add i64 %.sum34.pn, -1 ; <i64> [#uses=1] | |
%53 = getelementptr inbounds i8* %s.0, i64 %s.1.sum35 ; <i8*> [#uses=2] | |
%54 = load i8* %53, align 1 ; <i8> [#uses=1] | |
%55 = icmp eq i8 %54, 34 ; <i1> [#uses=1] | |
br i1 %55, label %bb12, label %bb13 | |
bb12: ; preds = %bb11 | |
br label %bb13 | |
bb13: ; preds = %bb12, %bb11, %bb10 | |
%start.0 = phi i8* [ %52, %bb12 ], [ %52, %bb11 ], [ %27, %bb10 ] ; <i8*> [#uses=2] | |
%end.0 = phi i8* [ %53, %bb12 ], [ %s.1, %bb11 ], [ %s.1, %bb10 ] ; <i8*> [#uses=1] | |
%56 = ptrtoint i8* %end.0 to i64 ; <i64> [#uses=1] | |
%57 = ptrtoint i8* %start.0 to i64 ; <i64> [#uses=1] | |
%58 = sub nsw i64 %56, %57 ; <i64> [#uses=2] | |
%59 = add i64 %58, 1 ; <i64> [#uses=2] | |
%60 = call i8* @_Znam(i64 %59) ; <i8*> [#uses=4] | |
%61 = call i8* @strncpy(i8* noalias %60, i8* noalias %start.0, i64 %59) nounwind ; <i8*> [#uses=0] | |
%62 = getelementptr inbounds i8* %60, i64 %58 ; <i8*> [#uses=1] | |
store i8 0, i8* %62, align 1 | |
%63 = icmp eq i32 %tmp, 1 ; <i1> [#uses=1] | |
br i1 %63, label %bb16, label %bb15 | |
bb15: ; preds = %bb13 | |
%64 = load i8** %10, align 8 ; <i8*> [#uses=1] | |
call void @_Z6aliasaPKcPc(i8* %64, i8* %60) | |
br label %bb17 | |
bb16: ; preds = %bb13 | |
%65 = load i32* %4, align 8 ; <i32> [#uses=1] | |
%66 = icmp eq i32 %65, 5 ; <i1> [#uses=1] | |
br i1 %66, label %bb.i37, label %bb17 | |
bb.i37: ; preds = %bb16 | |
%67 = call i8* @_Znwm(i64 16) ; <i8*> [#uses=3] | |
%68 = load i8** %7, align 8 ; <i8*> [#uses=1] | |
%69 = load i8** %8, align 8 ; <i8*> [#uses=4] | |
%70 = icmp eq i8* %68, %69 ; <i1> [#uses=1] | |
br i1 %70, label %bb1.i38, label %bb3.i40 | |
bb1.i38: ; preds = %bb.i37 | |
%71 = call i64 @strlen(i8* %69) nounwind readonly ; <i64> [#uses=2] | |
%72 = add i64 %71, 1 ; <i64> [#uses=2] | |
%73 = call i8* @_Znam(i64 %72) ; <i8*> [#uses=3] | |
%74 = call i8* @strncpy(i8* noalias %73, i8* noalias %69, i64 %72) nounwind ; <i8*> [#uses=0] | |
%75 = getelementptr inbounds i8* %73, i64 %71 ; <i8*> [#uses=1] | |
store i8 0, i8* %75, align 1 | |
br label %bb3.i40 | |
bb3.i40: ; preds = %bb1.i38, %bb.i37 | |
%iftmp.29.0.i = phi i8* [ %73, %bb1.i38 ], [ %69, %bb.i37 ] ; <i8*> [#uses=1] | |
%76 = bitcast i8* %67 to i8** ; <i8**> [#uses=1] | |
store i8* %iftmp.29.0.i, i8** %76, align 8 | |
%77 = load void ()** %9, align 8 ; <void ()*> [#uses=1] | |
%78 = bitcast void ()* %77 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%79 = getelementptr inbounds i8* %67, i64 8 ; <i8*> [#uses=1] | |
%80 = bitcast i8* %79 to %struct.identstack** ; <%struct.identstack**> [#uses=1] | |
store %struct.identstack* %78, %struct.identstack** %80, align 8 | |
%.c.i39 = bitcast i8* %67 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i39, void ()** %9 | |
store i8* %60, i8** %8, align 8 | |
br label %bb17 | |
bb17: ; preds = %bb3.i40, %bb16, %bb15 | |
%81 = call i8* @_Z10executeretPKc(i8* %body) ; <i8*> [#uses=3] | |
%82 = icmp eq i8* %81, null ; <i1> [#uses=1] | |
br i1 %82, label %bb3, label %_Z7executePKc.exit | |
_Z7executePKc.exit: ; preds = %bb17 | |
%83 = call i64 @strtol(i8* noalias nocapture %81, i8** noalias null, i32 0) nounwind readonly ; <i64> [#uses=1] | |
%84 = trunc i64 %83 to i32 ; <i32> [#uses=1] | |
call void @_ZdaPv(i8* %81) nounwind | |
%phitmp = icmp eq i32 %84, 0 ; <i1> [#uses=1] | |
%or.cond = or i1 %phitmp, %toBool19not ; <i1> [#uses=1] | |
br i1 %or.cond, label %bb3, label %bb27 | |
bb27: ; preds = %_Z7executePKc.exit | |
%85 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%86 = add nsw i32 %85, 1 ; <i32> [#uses=1] | |
%87 = srem i32 %86, 3 ; <i32> [#uses=2] | |
store i32 %87, i32* @_ZL6retidx, align 4 | |
%88 = sext i32 %87 to i64 ; <i64> [#uses=1] | |
%89 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %88, i64 0 ; <i8*> [#uses=1] | |
%90 = getelementptr inbounds %struct.stringformatter* %1, i64 0, i32 0 ; <i8**> [#uses=1] | |
store i8* %89, i8** %90, align 8 | |
call void (%struct.stringformatter*, i8*, ...)* @_ZN15stringformatterclEPKcz(%struct.stringformatter* %1, i8* getelementptr inbounds ([3 x i8]* @.str2, i64 0, i64 0), i32 %25) nounwind | |
%91 = load i32* @_ZL6retidx, align 4 ; <i32> [#uses=1] | |
%92 = sext i32 %91 to i64 ; <i64> [#uses=1] | |
%93 = getelementptr inbounds [3 x [260 x i8]]* @_ZL6retbuf, i64 0, i64 %92, i64 0 ; <i8*> [#uses=2] | |
%94 = call i64 @strlen(i8* %93) nounwind readonly ; <i64> [#uses=2] | |
%95 = add i64 %94, 1 ; <i64> [#uses=2] | |
%96 = call i8* @_Znam(i64 %95) ; <i8*> [#uses=3] | |
%97 = call i8* @strncpy(i8* noalias %96, i8* noalias %93, i64 %95) nounwind ; <i8*> [#uses=0] | |
%98 = getelementptr inbounds i8* %96, i64 %94 ; <i8*> [#uses=1] | |
store i8 0, i8* %98, align 1 | |
store i8* %96, i8** @commandret, align 8 | |
br label %bb28 | |
bb28: ; preds = %bb27, %bb6, %bb4 | |
%n.1 = phi i32 [ %25, %bb6 ], [ %25, %bb4 ], [ %tmp, %bb27 ] ; <i32> [#uses=1] | |
%99 = icmp eq i32 %n.1, 0 ; <i1> [#uses=1] | |
br i1 %99, label %_Z8popidentR5ident.exit, label %bb29 | |
bb29: ; preds = %bb28 | |
%100 = load i32* %4, align 8 ; <i32> [#uses=1] | |
%101 = icmp eq i32 %100, 5 ; <i1> [#uses=1] | |
br i1 %101, label %bb.i, label %_Z8popidentR5ident.exit | |
bb.i: ; preds = %bb29 | |
%102 = load void ()** %9, align 8 ; <void ()*> [#uses=2] | |
%103 = icmp eq void ()* %102, null ; <i1> [#uses=1] | |
br i1 %103, label %_Z8popidentR5ident.exit, label %bb1.i | |
bb1.i: ; preds = %bb.i | |
%104 = load i8** %8, align 8 ; <i8*> [#uses=3] | |
%105 = load i8** %7, align 8 ; <i8*> [#uses=1] | |
%106 = icmp eq i8* %104, %105 ; <i1> [#uses=1] | |
%107 = icmp eq i8* %104, null ; <i1> [#uses=1] | |
%or.cond.i = or i1 %106, %107 ; <i1> [#uses=1] | |
br i1 %or.cond.i, label %bb4.i, label %bb3.i | |
bb3.i: ; preds = %bb1.i | |
call void @_ZdaPv(i8* %104) nounwind | |
%.pre.i = load void ()** %9, align 8 ; <void ()*> [#uses=1] | |
br label %bb4.i | |
bb4.i: ; preds = %bb3.i, %bb1.i | |
%108 = phi void ()* [ %102, %bb1.i ], [ %.pre.i, %bb3.i ] ; <void ()*> [#uses=3] | |
%109 = bitcast void ()* %108 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
%110 = bitcast void ()* %108 to i8** ; <i8**> [#uses=1] | |
%111 = load i8** %110, align 8 ; <i8*> [#uses=1] | |
store i8* %111, i8** %8, align 8 | |
%112 = getelementptr inbounds %struct.identstack* %109, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%113 = load %struct.identstack** %112, align 8 ; <%struct.identstack*> [#uses=1] | |
%.c.i = bitcast %struct.identstack* %113 to void ()* ; <void ()*> [#uses=1] | |
store void ()* %.c.i, void ()** %9 | |
%114 = bitcast void ()* %108 to i8* ; <i8*> [#uses=1] | |
call void @_ZdlPv(i8* %114) nounwind | |
ret void | |
_Z8popidentR5ident.exit: ; preds = %bb.i, %bb29, %bb28, %bb | |
ret void | |
} | |
declare i32 @sprintf(i8* noalias nocapture, i8* noalias nocapture, ...) nounwind | |
define i8* @_Z8parseexpRPKci(i8** %p, i32 %right) { | |
entry: | |
%0 = alloca i8, align 1 ; <i8*> [#uses=2] | |
%1 = alloca i8, align 1 ; <i8*> [#uses=2] | |
%2 = alloca i8, align 1 ; <i8*> [#uses=2] | |
%3 = alloca %struct.cline*, align 8 ; <%struct.cline**> [#uses=2] | |
%4 = load i32* @_ZL7bufnest, align 4 ; <i32> [#uses=2] | |
%5 = load i32* getelementptr inbounds (%"struct.vector<vector<char>*>"* @_ZL8wordbufs, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
%6 = icmp slt i32 %4, %5 ; <i1> [#uses=1] | |
%7 = add nsw i32 %4, 1 ; <i32> [#uses=2] | |
store i32 %7, i32* @_ZL7bufnest, align 4 | |
br i1 %6, label %bb1, label %bb | |
bb: ; preds = %entry | |
%8 = call i8* @_Znwm(i64 16) ; <i8*> [#uses=4] | |
%9 = bitcast i8* %8 to %struct.cline* ; <%struct.cline*> [#uses=1] | |
%10 = bitcast i8* %8 to i8** ; <i8**> [#uses=1] | |
store i8* null, i8** %10, align 8 | |
%11 = getelementptr inbounds i8* %8, i64 8 ; <i8*> [#uses=1] | |
%12 = bitcast i8* %11 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %12, align 8 | |
%13 = getelementptr inbounds i8* %8, i64 12 ; <i8*> [#uses=1] | |
%14 = bitcast i8* %13 to i32* ; <i32*> [#uses=1] | |
store i32 0, i32* %14, align 4 | |
store %struct.cline* %9, %struct.cline** %3, align 8 | |
%15 = call %struct.cline** @_ZN6vectorIPS_IcEE3addERKS1_(%"struct.vector<vector<char>*>"* @_ZL8wordbufs, %struct.cline** %3) ; <%struct.cline**> [#uses=0] | |
%.pre = load i32* @_ZL7bufnest, align 4 ; <i32> [#uses=1] | |
br label %bb1 | |
bb1: ; preds = %bb, %entry | |
%16 = phi i32 [ %7, %entry ], [ %.pre, %bb ] ; <i32> [#uses=1] | |
%17 = add nsw i32 %16, -1 ; <i32> [#uses=1] | |
%18 = load %struct.cline*** getelementptr inbounds (%"struct.vector<vector<char>*>"* @_ZL8wordbufs, i64 0, i32 0), align 16 ; <%struct.cline**> [#uses=1] | |
%19 = sext i32 %17 to i64 ; <i64> [#uses=1] | |
%20 = getelementptr inbounds %struct.cline** %18, i64 %19 ; <%struct.cline**> [#uses=1] | |
%21 = load %struct.cline** %20, align 8 ; <%struct.cline*> [#uses=8] | |
%22 = load i8** %p, align 8 ; <i8*> [#uses=2] | |
%23 = load i8* %22, align 1 ; <i8> [#uses=3] | |
%24 = getelementptr inbounds i8* %22, i64 1 ; <i8*> [#uses=1] | |
store i8* %24, i8** %p, align 8 | |
%25 = getelementptr inbounds %struct.cline* %21, i64 0, i32 2 ; <i32*> [#uses=13] | |
%26 = getelementptr inbounds %struct.cline* %21, i64 0, i32 1 ; <i32*> [#uses=6] | |
%27 = getelementptr inbounds %struct.cline* %21, i64 0, i32 0 ; <i8**> [#uses=10] | |
%28 = icmp eq i8 %23, 91 ; <i1> [#uses=1] | |
br label %bb15.outer | |
bb2: ; preds = %bb15.outer, %bb8, %bb6, %_ZN6vectorIcE3putEPKci.exit39, %bb4, %_ZN6vectorIcE3putEPKci.exit | |
%29 = load i8** %p, align 8 ; <i8*> [#uses=2] | |
%30 = call i64 @strcspn(i8* %29, i8* getelementptr inbounds ([9 x i8]* @.str149, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=4] | |
%31 = trunc i64 %30 to i32 ; <i32> [#uses=3] | |
%32 = load i32* %25, align 4 ; <i32> [#uses=4] | |
%33 = add nsw i32 %32, %31 ; <i32> [#uses=5] | |
%34 = load i32* %26, align 8 ; <i32> [#uses=7] | |
%35 = icmp sgt i32 %33, %34 ; <i1> [#uses=1] | |
br i1 %35, label %bb.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb.i.i: ; preds = %bb2 | |
%36 = icmp eq i32 %34, 0 ; <i1> [#uses=1] | |
br i1 %36, label %bb.i.i.i, label %bb2.preheader.i.i.i | |
bb2.preheader.i.i.i: ; preds = %bb.i.i | |
%37 = icmp slt i32 %34, %33 ; <i1> [#uses=1] | |
br i1 %37, label %bb1.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb.i.i.i: ; preds = %bb.i.i | |
%38 = icmp slt i32 %33, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i.i = select i1 %38, i32 8, i32 %33 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i.i.i, i32* %26, align 8 | |
br label %bb3.i.i.i | |
bb1.i.i.i: ; preds = %bb1.i.i.i, %bb2.preheader.i.i.i | |
%.tmp.0.i.i.i = phi i32 [ %39, %bb1.i.i.i ], [ %34, %bb2.preheader.i.i.i ] ; <i32> [#uses=1] | |
%39 = shl i32 %.tmp.0.i.i.i, 1 ; <i32> [#uses=4] | |
%40 = icmp slt i32 %39, %33 ; <i1> [#uses=1] | |
br i1 %40, label %bb1.i.i.i, label %bb2.bb3.loopexit_crit_edge.i.i.i | |
bb2.bb3.loopexit_crit_edge.i.i.i: ; preds = %bb1.i.i.i | |
store i32 %39, i32* %26 | |
br label %bb3.i.i.i | |
bb3.i.i.i: ; preds = %bb2.bb3.loopexit_crit_edge.i.i.i, %bb.i.i.i | |
%41 = phi i32 [ %iftmp.215.0.i.i.i.i, %bb.i.i.i ], [ %39, %bb2.bb3.loopexit_crit_edge.i.i.i ] ; <i32> [#uses=2] | |
%42 = icmp sgt i32 %41, %34 ; <i1> [#uses=1] | |
br i1 %42, label %bb4.i.i.i, label %_ZN6vectorIcE3putEPKci.exit | |
bb4.i.i.i: ; preds = %bb3.i.i.i | |
%43 = sext i32 %41 to i64 ; <i64> [#uses=1] | |
%44 = call i8* @_Znam(i64 %43) ; <i8*> [#uses=2] | |
%45 = icmp sgt i32 %34, 0 ; <i1> [#uses=1] | |
br i1 %45, label %bb5.i.i.i, label %bb7.i.i.i | |
bb5.i.i.i: ; preds = %bb4.i.i.i | |
%46 = sext i32 %34 to i64 ; <i64> [#uses=1] | |
%47 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
call void @llvm.memcpy.i64(i8* %44, i8* %47, i64 %46, i32 1) | |
%48 = load i8** %27, align 8 ; <i8*> [#uses=2] | |
%49 = icmp eq i8* %48, null ; <i1> [#uses=1] | |
br i1 %49, label %bb7.i.i.i, label %bb6.i.i.i | |
bb6.i.i.i: ; preds = %bb5.i.i.i | |
call void @_ZdaPv(i8* %48) nounwind | |
br label %bb7.i.i.i | |
bb7.i.i.i: ; preds = %bb6.i.i.i, %bb5.i.i.i, %bb4.i.i.i | |
store i8* %44, i8** %27, align 8 | |
%.pre.i.i = load i32* %25, align 4 ; <i32> [#uses=1] | |
br label %_ZN6vectorIcE3putEPKci.exit | |
_ZN6vectorIcE3putEPKci.exit: ; preds = %bb7.i.i.i, %bb3.i.i.i, %bb2.preheader.i.i.i, %bb2 | |
%50 = phi i32 [ %.pre.i.i, %bb7.i.i.i ], [ %32, %bb2 ], [ %32, %bb2.preheader.i.i.i ], [ %32, %bb3.i.i.i ] ; <i32> [#uses=1] | |
%51 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
%52 = sext i32 %50 to i64 ; <i64> [#uses=1] | |
%53 = getelementptr inbounds i8* %51, i64 %52 ; <i8*> [#uses=1] | |
%54 = sext i32 %31 to i64 ; <i64> [#uses=1] | |
call void @llvm.memcpy.i64(i8* %53, i8* %29, i64 %54, i32 1) nounwind | |
%55 = load i32* %25, align 4 ; <i32> [#uses=1] | |
%56 = add nsw i32 %55, %31 ; <i32> [#uses=1] | |
store i32 %56, i32* %25, align 4 | |
%57 = load i8** %p, align 8 ; <i8*> [#uses=4] | |
%58 = getelementptr inbounds i8* %57, i64 %30 ; <i8*> [#uses=2] | |
store i8* %58, i8** %p, align 8 | |
%59 = load i8* %58, align 1 ; <i8> [#uses=4] | |
%60 = sext i8 %59 to i32 ; <i32> [#uses=2] | |
%.sum = add i64 %30, 1 ; <i64> [#uses=2] | |
%61 = getelementptr inbounds i8* %57, i64 %.sum ; <i8*> [#uses=3] | |
store i8* %61, i8** %p, align 8 | |
switch i32 %60, label %bb14 [ | |
i32 0, label %bb9 | |
i32 13, label %bb2 | |
i32 34, label %bb5 | |
i32 40, label %bb10 | |
i32 41, label %bb12 | |
i32 47, label %bb7 | |
i32 64, label %bb3 | |
i32 91, label %bb10 | |
i32 93, label %bb12 | |
] | |
bb3: ; preds = %_ZN6vectorIcE3putEPKci.exit | |
br i1 %28, label %bb4, label %bb14 | |
bb4: ; preds = %bb3 | |
call void @_Z10parsemacroRPKciR6vectorIcE(i8** %p, i32 %brak.1.ph, %struct.cline* %21) | |
br label %bb2 | |
bb5: ; preds = %_ZN6vectorIcE3putEPKci.exit | |
store i8 %59, i8* %2, align 1 | |
%62 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %21, i8* %2) ; <i8*> [#uses=0] | |
%63 = load i8** %p, align 8 ; <i8*> [#uses=3] | |
br label %bb5.i | |
bb2.i: ; preds = %bb5.i | |
%64 = getelementptr inbounds i8* %p_addr.1.i, i64 1 ; <i8*> [#uses=3] | |
%65 = load i8* %64, align 1 ; <i8> [#uses=1] | |
%66 = icmp eq i8 %65, 0 ; <i1> [#uses=1] | |
br i1 %66, label %_Z11parsestringPKc.exit, label %bb4.i | |
bb4.i: ; preds = %bb5.i, %bb2.i | |
%p_addr.0.i = phi i8* [ %64, %bb2.i ], [ %p_addr.1.i, %bb5.i ] ; <i8*> [#uses=1] | |
%67 = getelementptr inbounds i8* %p_addr.0.i, i64 1 ; <i8*> [#uses=1] | |
br label %bb5.i | |
bb5.i: ; preds = %bb4.i, %bb5 | |
%p_addr.1.i = phi i8* [ %63, %bb5 ], [ %67, %bb4.i ] ; <i8*> [#uses=7] | |
%68 = load i8* %p_addr.1.i, align 1 ; <i8> [#uses=1] | |
switch i8 %68, label %bb4.i [ | |
i8 0, label %_Z11parsestringPKc.exit | |
i8 10, label %_Z11parsestringPKc.exit | |
i8 13, label %_Z11parsestringPKc.exit | |
i8 34, label %_Z11parsestringPKc.exit | |
i8 94, label %bb2.i | |
] | |
_Z11parsestringPKc.exit: ; preds = %bb5.i, %bb5.i, %bb5.i, %bb5.i, %bb2.i | |
%69 = phi i8* [ %64, %bb2.i ], [ %p_addr.1.i, %bb5.i ], [ %p_addr.1.i, %bb5.i ], [ %p_addr.1.i, %bb5.i ], [ %p_addr.1.i, %bb5.i ] ; <i8*> [#uses=5] | |
%70 = ptrtoint i8* %69 to i64 ; <i64> [#uses=1] | |
%71 = trunc i64 %70 to i32 ; <i32> [#uses=1] | |
%72 = ptrtoint i8* %63 to i64 ; <i64> [#uses=1] | |
%73 = trunc i64 %72 to i32 ; <i32> [#uses=1] | |
%74 = sub i32 %71, %73 ; <i32> [#uses=3] | |
%75 = load i32* %25, align 4 ; <i32> [#uses=4] | |
%76 = add nsw i32 %74, %75 ; <i32> [#uses=5] | |
%77 = load i32* %26, align 8 ; <i32> [#uses=7] | |
%78 = icmp sgt i32 %76, %77 ; <i1> [#uses=1] | |
br i1 %78, label %bb.i.i26, label %_ZN6vectorIcE3putEPKci.exit39 | |
bb.i.i26: ; preds = %_Z11parsestringPKc.exit | |
%79 = icmp eq i32 %77, 0 ; <i1> [#uses=1] | |
br i1 %79, label %bb.i.i.i29, label %bb2.preheader.i.i.i27 | |
bb2.preheader.i.i.i27: ; preds = %bb.i.i26 | |
%80 = icmp slt i32 %77, %76 ; <i1> [#uses=1] | |
br i1 %80, label %bb1.i.i.i31, label %_ZN6vectorIcE3putEPKci.exit39 | |
bb.i.i.i29: ; preds = %bb.i.i26 | |
%81 = icmp slt i32 %76, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i.i28 = select i1 %81, i32 8, i32 %76 ; <i32> [#uses=2] | |
store i32 %iftmp.215.0.i.i.i.i28, i32* %26, align 8 | |
br label %bb3.i.i.i33 | |
bb1.i.i.i31: ; preds = %bb1.i.i.i31, %bb2.preheader.i.i.i27 | |
%.tmp.0.i.i.i30 = phi i32 [ %82, %bb1.i.i.i31 ], [ %77, %bb2.preheader.i.i.i27 ] ; <i32> [#uses=1] | |
%82 = shl i32 %.tmp.0.i.i.i30, 1 ; <i32> [#uses=4] | |
%83 = icmp slt i32 %82, %76 ; <i1> [#uses=1] | |
br i1 %83, label %bb1.i.i.i31, label %bb2.bb3.loopexit_crit_edge.i.i.i32 | |
bb2.bb3.loopexit_crit_edge.i.i.i32: ; preds = %bb1.i.i.i31 | |
store i32 %82, i32* %26 | |
br label %bb3.i.i.i33 | |
bb3.i.i.i33: ; preds = %bb2.bb3.loopexit_crit_edge.i.i.i32, %bb.i.i.i29 | |
%84 = phi i32 [ %iftmp.215.0.i.i.i.i28, %bb.i.i.i29 ], [ %82, %bb2.bb3.loopexit_crit_edge.i.i.i32 ] ; <i32> [#uses=2] | |
%85 = icmp sgt i32 %84, %77 ; <i1> [#uses=1] | |
br i1 %85, label %bb4.i.i.i34, label %_ZN6vectorIcE3putEPKci.exit39 | |
bb4.i.i.i34: ; preds = %bb3.i.i.i33 | |
%86 = sext i32 %84 to i64 ; <i64> [#uses=1] | |
%87 = call i8* @_Znam(i64 %86) ; <i8*> [#uses=2] | |
%88 = icmp sgt i32 %77, 0 ; <i1> [#uses=1] | |
br i1 %88, label %bb5.i.i.i35, label %bb7.i.i.i38 | |
bb5.i.i.i35: ; preds = %bb4.i.i.i34 | |
%89 = sext i32 %77 to i64 ; <i64> [#uses=1] | |
%90 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
call void @llvm.memcpy.i64(i8* %87, i8* %90, i64 %89, i32 1) | |
%91 = load i8** %27, align 8 ; <i8*> [#uses=2] | |
%92 = icmp eq i8* %91, null ; <i1> [#uses=1] | |
br i1 %92, label %bb7.i.i.i38, label %bb6.i.i.i36 | |
bb6.i.i.i36: ; preds = %bb5.i.i.i35 | |
call void @_ZdaPv(i8* %91) nounwind | |
br label %bb7.i.i.i38 | |
bb7.i.i.i38: ; preds = %bb6.i.i.i36, %bb5.i.i.i35, %bb4.i.i.i34 | |
store i8* %87, i8** %27, align 8 | |
%.pre.i.i37 = load i32* %25, align 4 ; <i32> [#uses=1] | |
br label %_ZN6vectorIcE3putEPKci.exit39 | |
_ZN6vectorIcE3putEPKci.exit39: ; preds = %bb7.i.i.i38, %bb3.i.i.i33, %bb2.preheader.i.i.i27, %_Z11parsestringPKc.exit | |
%93 = phi i32 [ %.pre.i.i37, %bb7.i.i.i38 ], [ %75, %_Z11parsestringPKc.exit ], [ %75, %bb2.preheader.i.i.i27 ], [ %75, %bb3.i.i.i33 ] ; <i32> [#uses=1] | |
%94 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
%95 = sext i32 %93 to i64 ; <i64> [#uses=1] | |
%96 = getelementptr inbounds i8* %94, i64 %95 ; <i8*> [#uses=1] | |
%97 = sext i32 %74 to i64 ; <i64> [#uses=1] | |
call void @llvm.memcpy.i64(i8* %96, i8* %63, i64 %97, i32 1) nounwind | |
%98 = load i32* %25, align 4 ; <i32> [#uses=1] | |
%99 = add nsw i32 %98, %74 ; <i32> [#uses=1] | |
store i32 %99, i32* %25, align 4 | |
store i8* %69, i8** %p, align 8 | |
%100 = load i8* %69, align 1 ; <i8> [#uses=1] | |
%101 = icmp eq i8 %100, 34 ; <i1> [#uses=1] | |
br i1 %101, label %bb6, label %bb2 | |
bb6: ; preds = %_ZN6vectorIcE3putEPKci.exit39 | |
%102 = getelementptr inbounds i8* %69, i64 1 ; <i8*> [#uses=1] | |
store i8* %102, i8** %p, align 8 | |
%103 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %21, i8* %69) ; <i8*> [#uses=0] | |
br label %bb2 | |
bb7: ; preds = %_ZN6vectorIcE3putEPKci.exit | |
%104 = load i8* %61, align 1 ; <i8> [#uses=1] | |
%105 = icmp eq i8 %104, 47 ; <i1> [#uses=1] | |
br i1 %105, label %bb8, label %bb14 | |
bb8: ; preds = %bb7 | |
%106 = call i64 @strcspn(i8* %61, i8* getelementptr inbounds ([3 x i8]* @.str150, i64 0, i64 0)) nounwind readonly ; <i64> [#uses=1] | |
%.sum58 = add i64 %.sum, %106 ; <i64> [#uses=1] | |
%107 = getelementptr inbounds i8* %57, i64 %.sum58 ; <i8*> [#uses=1] | |
store i8* %107, i8** %p, align 8 | |
br label %bb2 | |
bb9: ; preds = %_ZN6vectorIcE3putEPKci.exit | |
%108 = getelementptr inbounds i8* %57, i64 %30 ; <i8*> [#uses=1] | |
store i8* %108, i8** %p, align 8 | |
call void (i32, i8*, ...)* @_Z7conoutfiPKcz(i32 4, i8* getelementptr inbounds ([13 x i8]* @.str151, i64 0, i64 0), i32 %right) | |
br label %bb23 | |
bb10: ; preds = %_ZN6vectorIcE3putEPKci.exit, %_ZN6vectorIcE3putEPKci.exit | |
%109 = icmp eq i8 %59, %23 ; <i1> [#uses=1] | |
%110 = zext i1 %109 to i32 ; <i32> [#uses=1] | |
%.brak.1 = add i32 %110, %brak.1.ph ; <i32> [#uses=1] | |
br label %bb14 | |
bb12: ; preds = %_ZN6vectorIcE3putEPKci.exit, %_ZN6vectorIcE3putEPKci.exit | |
%111 = add nsw i32 %brak.1.ph, -1 ; <i32> [#uses=1] | |
%112 = icmp eq i32 %60, %right ; <i1> [#uses=1] | |
%.brak.125 = select i1 %112, i32 %111, i32 %brak.1.ph ; <i32> [#uses=1] | |
br label %bb14 | |
bb14: ; preds = %bb12, %bb10, %bb7, %bb3, %_ZN6vectorIcE3putEPKci.exit | |
%brak.0 = phi i32 [ %.brak.1, %bb10 ], [ %.brak.125, %bb12 ], [ %brak.1.ph, %_ZN6vectorIcE3putEPKci.exit ], [ %brak.1.ph, %bb3 ], [ %brak.1.ph, %bb7 ] ; <i32> [#uses=1] | |
store i8 %59, i8* %1, align 1 | |
%113 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %21, i8* %1) ; <i8*> [#uses=0] | |
br label %bb15.outer | |
bb15.outer: ; preds = %bb14, %bb1 | |
%brak.1.ph = phi i32 [ 1, %bb1 ], [ %brak.0, %bb14 ] ; <i32> [#uses=8] | |
%114 = icmp eq i32 %brak.1.ph, 0 ; <i1> [#uses=1] | |
br i1 %114, label %bb16.split, label %bb2 | |
bb16.split: ; preds = %bb15.outer | |
%115 = load i32* %25, align 4 ; <i32> [#uses=1] | |
%116 = add nsw i32 %115, -1 ; <i32> [#uses=2] | |
store i32 %116, i32* %25, align 4 | |
%117 = icmp eq i8 %23, 40 ; <i1> [#uses=1] | |
br i1 %117, label %bb17, label %bb21 | |
bb17: ; preds = %bb16.split | |
store i8 0, i8* %0, align 1 | |
%118 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %21, i8* %0) ; <i8*> [#uses=0] | |
%119 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
%120 = call i8* @_Z10executeretPKc(i8* %119) ; <i8*> [#uses=2] | |
%121 = load i32* %25, align 4 ; <i32> [#uses=1] | |
%122 = add nsw i32 %121, -1 ; <i32> [#uses=1] | |
store i32 %122, i32* %25, align 4 | |
%123 = icmp eq i8* %120, null ; <i1> [#uses=1] | |
br i1 %123, label %bb18, label %bb23 | |
bb18: ; preds = %bb17 | |
%124 = call i8* @_Znam(i64 1) ; <i8*> [#uses=2] | |
store i8 0, i8* %124, align 1 | |
br label %bb23 | |
bb21: ; preds = %bb16.split | |
%125 = sext i32 %116 to i64 ; <i64> [#uses=2] | |
%126 = load i8** %27, align 8 ; <i8*> [#uses=1] | |
%127 = add i64 %125, 1 ; <i64> [#uses=2] | |
%128 = call i8* @_Znam(i64 %127) ; <i8*> [#uses=3] | |
%129 = call i8* @strncpy(i8* noalias %128, i8* noalias %126, i64 %127) nounwind ; <i8*> [#uses=0] | |
%130 = getelementptr inbounds i8* %128, i64 %125 ; <i8*> [#uses=1] | |
store i8 0, i8* %130, align 1 | |
br label %bb23 | |
bb23: ; preds = %bb21, %bb18, %bb17, %bb9 | |
%.0 = phi i8* [ null, %bb9 ], [ %128, %bb21 ], [ %124, %bb18 ], [ %120, %bb17 ] ; <i8*> [#uses=1] | |
store i32 0, i32* %25, align 4 | |
%storemerge.in = load i32* @_ZL7bufnest, align 4 ; <i32> [#uses=1] | |
%storemerge = add i32 %storemerge.in, -1 ; <i32> [#uses=1] | |
store i32 %storemerge, i32* @_ZL7bufnest, align 4 | |
ret i8* %.0 | |
} | |
define void @_Z10parsemacroRPKciR6vectorIcE(i8** %p, i32 %level, %struct.cline* nocapture %wordbuf) { | |
entry: | |
%0 = alloca i8, align 1 ; <i8*> [#uses=2] | |
%1 = load i8** %p, align 8 ; <i8*> [#uses=2] | |
%2 = load i8* %1, align 1 ; <i8> [#uses=2] | |
%3 = icmp eq i8 %2, 64 ; <i1> [#uses=1] | |
br i1 %3, label %bb, label %bb2 | |
bb: ; preds = %bb, %entry | |
%4 = phi i8* [ %5, %bb ], [ %1, %entry ] ; <i8*> [#uses=1] | |
%indvar70 = phi i32 [ %indvar.next71, %bb ], [ 0, %entry ] ; <i32> [#uses=2] | |
%5 = getelementptr inbounds i8* %4, i64 1 ; <i8*> [#uses=3] | |
store i8* %5, i8** %p, align 8 | |
%6 = load i8* %5, align 1 ; <i8> [#uses=2] | |
%7 = icmp eq i8 %6, 64 ; <i1> [#uses=1] | |
%indvar.next71 = add i32 %indvar70, 1 ; <i32> [#uses=1] | |
br i1 %7, label %bb, label %bb1.bb2_crit_edge | |
bb1.bb2_crit_edge: ; preds = %bb | |
%tmp72 = add i32 %indvar70, 2 ; <i32> [#uses=1] | |
br label %bb2 | |
bb2: ; preds = %bb1.bb2_crit_edge, %entry | |
%8 = phi i8 [ %6, %bb1.bb2_crit_edge ], [ %2, %entry ] ; <i8> [#uses=1] | |
%escape.0.lcssa = phi i32 [ %tmp72, %bb1.bb2_crit_edge ], [ 1, %entry ] ; <i32> [#uses=3] | |
%9 = icmp slt i32 %escape.0.lcssa, %level ; <i1> [#uses=1] | |
br i1 %9, label %bb4.preheader, label %bb5 | |
bb4.preheader: ; preds = %bb2 | |
%10 = icmp eq i32 %escape.0.lcssa, 0 ; <i1> [#uses=1] | |
br i1 %10, label %return, label %bb3 | |
bb3: ; preds = %bb3, %bb4.preheader | |
%indvar67 = phi i32 [ %indvar.next68, %bb3 ], [ 0, %bb4.preheader ] ; <i32> [#uses=1] | |
store i8 64, i8* %0, align 1 | |
%11 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %wordbuf, i8* %0) ; <i8*> [#uses=0] | |
%indvar.next68 = add i32 %indvar67, 1 ; <i32> [#uses=2] | |
%exitcond = icmp eq i32 %indvar.next68, %escape.0.lcssa ; <i1> [#uses=1] | |
br i1 %exitcond, label %return, label %bb3 | |
bb5: ; preds = %bb2 | |
%12 = icmp eq i8 %8, 40 ; <i1> [#uses=1] | |
br i1 %12, label %bb6, label %bb12 | |
bb6: ; preds = %bb5 | |
%13 = call i8* @_Z8parseexpRPKci(i8** %p, i32 41) ; <i8*> [#uses=5] | |
%14 = icmp eq i8* %13, null ; <i1> [#uses=1] | |
br i1 %14, label %return, label %bb9.preheader | |
bb9.preheader: ; preds = %bb6 | |
%15 = load i8* %13, align 1 ; <i8> [#uses=1] | |
%16 = icmp eq i8 %15, 0 ; <i1> [#uses=1] | |
br i1 %16, label %bb11, label %bb8 | |
bb8: ; preds = %bb8, %bb9.preheader | |
%indvar62 = phi i64 [ %tmp65, %bb8 ], [ 0, %bb9.preheader ] ; <i64> [#uses=2] | |
%sub.053 = getelementptr i8* %13, i64 %indvar62 ; <i8*> [#uses=1] | |
%17 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %wordbuf, i8* %sub.053) ; <i8*> [#uses=0] | |
%tmp65 = add i64 %indvar62, 1 ; <i64> [#uses=2] | |
%scevgep66 = getelementptr i8* %13, i64 %tmp65 ; <i8*> [#uses=1] | |
%18 = load i8* %scevgep66, align 1 ; <i8> [#uses=1] | |
%19 = icmp eq i8 %18, 0 ; <i1> [#uses=1] | |
br i1 %19, label %bb11, label %bb8 | |
bb11: ; preds = %bb8, %bb9.preheader | |
call void @_ZdaPv(i8* %13) nounwind | |
ret void | |
bb12: ; preds = %bb5 | |
%20 = load i8* bitcast (i64* @_ZGVZ10parsemacroRPKciR6vectorIcEE5ident to i8*), align 8 ; <i8> [#uses=1] | |
%21 = icmp eq i8 %20, 0 ; <i1> [#uses=1] | |
br i1 %21, label %bb13, label %bb18 | |
bb13: ; preds = %bb12 | |
%22 = call i32 @__cxa_guard_acquire(i64* @_ZGVZ10parsemacroRPKciR6vectorIcEE5ident) nounwind ; <i32> [#uses=1] | |
%23 = icmp eq i32 %22, 0 ; <i1> [#uses=1] | |
br i1 %23, label %bb18, label %bb15 | |
bb15: ; preds = %bb13 | |
store i8* null, i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 | |
store i32 0, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 1), align 8 | |
store i32 0, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 | |
call void @__cxa_guard_release(i64* @_ZGVZ10parsemacroRPKciR6vectorIcEE5ident) nounwind | |
%24 = call i32 @__cxa_atexit(void (i8*)* @__tcf_0, i8* null, i8* bitcast (i8** @__dso_handle to i8*)) nounwind ; <i32> [#uses=0] | |
br label %bb18 | |
bb17: ; preds = %bb18 | |
%25 = getelementptr inbounds i8* %52, i64 1 ; <i8*> [#uses=1] | |
store i8* %25, i8** %p, align 8 | |
%26 = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 ; <i32> [#uses=5] | |
%27 = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 1), align 8 ; <i32> [#uses=7] | |
%28 = icmp eq i32 %26, %27 ; <i1> [#uses=1] | |
br i1 %28, label %bb.i, label %bb1.i | |
bb.i: ; preds = %bb17 | |
%29 = add nsw i32 %26, 1 ; <i32> [#uses=4] | |
%30 = icmp eq i32 %27, 0 ; <i1> [#uses=1] | |
br i1 %30, label %bb.i.i, label %bb2.preheader.i.i | |
bb2.preheader.i.i: ; preds = %bb.i | |
%31 = icmp slt i32 %27, %29 ; <i1> [#uses=1] | |
br i1 %31, label %bb1.i.i, label %bb1.i | |
bb.i.i: ; preds = %bb.i | |
%32 = icmp slt i32 %29, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i = select i1 %32, i32 8, i32 %29 ; <i32> [#uses=1] | |
br label %bb3.i.i | |
bb1.i.i: ; preds = %bb1.i.i, %bb2.preheader.i.i | |
%.tmp.0.i.i = phi i32 [ %33, %bb1.i.i ], [ %27, %bb2.preheader.i.i ] ; <i32> [#uses=1] | |
%33 = shl i32 %.tmp.0.i.i, 1 ; <i32> [#uses=3] | |
%34 = icmp slt i32 %33, %29 ; <i1> [#uses=1] | |
br i1 %34, label %bb1.i.i, label %bb3.i.i | |
bb3.i.i: ; preds = %bb1.i.i, %bb.i.i | |
%storemerge46 = phi i32 [ %iftmp.215.0.i.i.i, %bb.i.i ], [ %33, %bb1.i.i ] ; <i32> [#uses=3] | |
store i32 %storemerge46, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 1), align 8 | |
%35 = icmp sgt i32 %storemerge46, %27 ; <i1> [#uses=1] | |
br i1 %35, label %bb4.i.i, label %bb1.i | |
bb4.i.i: ; preds = %bb3.i.i | |
%36 = sext i32 %storemerge46 to i64 ; <i64> [#uses=1] | |
%37 = call i8* @_Znam(i64 %36) ; <i8*> [#uses=2] | |
%38 = icmp sgt i32 %27, 0 ; <i1> [#uses=1] | |
br i1 %38, label %bb5.i.i, label %bb7.i.i | |
bb5.i.i: ; preds = %bb4.i.i | |
%39 = sext i32 %27 to i64 ; <i64> [#uses=1] | |
%40 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=1] | |
call void @llvm.memcpy.i64(i8* %37, i8* %40, i64 %39, i32 1) | |
%41 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=2] | |
%42 = icmp eq i8* %41, null ; <i1> [#uses=1] | |
br i1 %42, label %bb7.i.i, label %bb6.i.i | |
bb6.i.i: ; preds = %bb5.i.i | |
call void @_ZdaPv(i8* %41) nounwind | |
br label %bb7.i.i | |
bb7.i.i: ; preds = %bb6.i.i, %bb5.i.i, %bb4.i.i | |
store i8* %37, i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 | |
%.pre.i = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
br label %bb1.i | |
bb1.i: ; preds = %bb7.i.i, %bb3.i.i, %bb2.preheader.i.i, %bb17 | |
%43 = phi i32 [ %.pre.i, %bb7.i.i ], [ %26, %bb17 ], [ %26, %bb2.preheader.i.i ], [ %26, %bb3.i.i ] ; <i32> [#uses=2] | |
%44 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=1] | |
%45 = sext i32 %43 to i64 ; <i64> [#uses=1] | |
%46 = getelementptr inbounds i8* %44, i64 %45 ; <i8*> [#uses=2] | |
%47 = icmp eq i8* %46, null ; <i1> [#uses=1] | |
br i1 %47, label %_ZN6vectorIcE3addERKc.exit, label %bb2.i | |
bb2.i: ; preds = %bb1.i | |
%48 = load i8* %52, align 1 ; <i8> [#uses=1] | |
store i8 %48, i8* %46, align 1 | |
%.pre7.i = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
br label %_ZN6vectorIcE3addERKc.exit | |
_ZN6vectorIcE3addERKc.exit: ; preds = %bb2.i, %bb1.i | |
%49 = phi i32 [ %43, %bb1.i ], [ %.pre7.i, %bb2.i ] ; <i32> [#uses=1] | |
%50 = add nsw i32 %49, 1 ; <i32> [#uses=1] | |
br label %bb18 | |
bb18: ; preds = %_ZN6vectorIcE3addERKc.exit, %bb15, %bb13, %bb12 | |
%51 = phi i32 [ %50, %_ZN6vectorIcE3addERKc.exit ], [ 0, %bb13 ], [ 0, %bb15 ], [ 0, %bb12 ] ; <i32> [#uses=6] | |
store i32 %51, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 | |
%52 = load i8** %p, align 8 ; <i8*> [#uses=3] | |
%53 = load i8* %52, align 1 ; <i8> [#uses=2] | |
%54 = sext i8 %53 to i32 ; <i32> [#uses=1] | |
%55 = call i32 @isalnum(i32 %54) nounwind readonly ; <i32> [#uses=1] | |
%56 = icmp eq i32 %55, 0 ; <i1> [#uses=1] | |
%.not = xor i1 %56, true ; <i1> [#uses=1] | |
%57 = icmp eq i8 %53, 95 ; <i1> [#uses=1] | |
%or.cond = or i1 %.not, %57 ; <i1> [#uses=1] | |
br i1 %or.cond, label %bb17, label %bb20 | |
bb20: ; preds = %bb18 | |
%58 = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 1), align 8 ; <i32> [#uses=7] | |
%59 = icmp eq i32 %51, %58 ; <i1> [#uses=1] | |
br i1 %59, label %bb.i24, label %bb1.i37 | |
bb.i24: ; preds = %bb20 | |
%60 = add nsw i32 %51, 1 ; <i32> [#uses=4] | |
%61 = icmp eq i32 %58, 0 ; <i1> [#uses=1] | |
br i1 %61, label %bb.i.i27, label %bb2.preheader.i.i25 | |
bb2.preheader.i.i25: ; preds = %bb.i24 | |
%62 = icmp slt i32 %58, %60 ; <i1> [#uses=1] | |
br i1 %62, label %bb1.i.i29, label %bb1.i37 | |
bb.i.i27: ; preds = %bb.i24 | |
%63 = icmp slt i32 %60, 8 ; <i1> [#uses=1] | |
%iftmp.215.0.i.i.i26 = select i1 %63, i32 8, i32 %60 ; <i32> [#uses=1] | |
br label %bb3.i.i31 | |
bb1.i.i29: ; preds = %bb1.i.i29, %bb2.preheader.i.i25 | |
%.tmp.0.i.i28 = phi i32 [ %64, %bb1.i.i29 ], [ %58, %bb2.preheader.i.i25 ] ; <i32> [#uses=1] | |
%64 = shl i32 %.tmp.0.i.i28, 1 ; <i32> [#uses=3] | |
%65 = icmp slt i32 %64, %60 ; <i1> [#uses=1] | |
br i1 %65, label %bb1.i.i29, label %bb3.i.i31 | |
bb3.i.i31: ; preds = %bb1.i.i29, %bb.i.i27 | |
%storemerge47 = phi i32 [ %iftmp.215.0.i.i.i26, %bb.i.i27 ], [ %64, %bb1.i.i29 ] ; <i32> [#uses=3] | |
store i32 %storemerge47, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 1), align 8 | |
%66 = icmp sgt i32 %storemerge47, %58 ; <i1> [#uses=1] | |
br i1 %66, label %bb4.i.i32, label %bb1.i37 | |
bb4.i.i32: ; preds = %bb3.i.i31 | |
%67 = sext i32 %storemerge47 to i64 ; <i64> [#uses=1] | |
%68 = call i8* @_Znam(i64 %67) ; <i8*> [#uses=2] | |
%69 = icmp sgt i32 %58, 0 ; <i1> [#uses=1] | |
br i1 %69, label %bb5.i.i33, label %bb7.i.i36 | |
bb5.i.i33: ; preds = %bb4.i.i32 | |
%70 = sext i32 %58 to i64 ; <i64> [#uses=1] | |
%71 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=1] | |
call void @llvm.memcpy.i64(i8* %68, i8* %71, i64 %70, i32 1) | |
%72 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=2] | |
%73 = icmp eq i8* %72, null ; <i1> [#uses=1] | |
br i1 %73, label %bb7.i.i36, label %bb6.i.i34 | |
bb6.i.i34: ; preds = %bb5.i.i33 | |
call void @_ZdaPv(i8* %72) nounwind | |
br label %bb7.i.i36 | |
bb7.i.i36: ; preds = %bb6.i.i34, %bb5.i.i33, %bb4.i.i32 | |
store i8* %68, i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 | |
%.pre.i35 = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
br label %bb1.i37 | |
bb1.i37: ; preds = %bb7.i.i36, %bb3.i.i31, %bb2.preheader.i.i25, %bb20 | |
%74 = phi i32 [ %.pre.i35, %bb7.i.i36 ], [ %51, %bb20 ], [ %51, %bb2.preheader.i.i25 ], [ %51, %bb3.i.i31 ] ; <i32> [#uses=2] | |
%75 = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=2] | |
%76 = sext i32 %74 to i64 ; <i64> [#uses=1] | |
%77 = getelementptr inbounds i8* %75, i64 %76 ; <i8*> [#uses=2] | |
%78 = icmp eq i8* %77, null ; <i1> [#uses=1] | |
br i1 %78, label %_ZN6vectorIcE3addERKc.exit41, label %bb2.i40 | |
bb2.i40: ; preds = %bb1.i37 | |
store i8 0, i8* %77, align 1 | |
%.pre7.i39 = load i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 ; <i32> [#uses=1] | |
%.pre = load i8** getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 0), align 16 ; <i8*> [#uses=1] | |
br label %_ZN6vectorIcE3addERKc.exit41 | |
_ZN6vectorIcE3addERKc.exit41: ; preds = %bb2.i40, %bb1.i37 | |
%79 = phi i8* [ %75, %bb1.i37 ], [ %.pre, %bb2.i40 ] ; <i8*> [#uses=3] | |
%80 = phi i32 [ %74, %bb1.i37 ], [ %.pre7.i39, %bb2.i40 ] ; <i32> [#uses=1] | |
%81 = add nsw i32 %80, 1 ; <i32> [#uses=1] | |
store i32 %81, i32* getelementptr inbounds (%struct.cline* @_ZZ10parsemacroRPKciR6vectorIcEE5ident, i64 0, i32 2), align 4 | |
%82 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=2] | |
%83 = load i8* %79, align 1 ; <i8> [#uses=2] | |
%84 = icmp eq i8 %83, 0 ; <i1> [#uses=1] | |
br i1 %84, label %_ZL6hthashPKc.exit.i.i, label %bb.i.i.i | |
bb.i.i.i: ; preds = %bb.i.i.i, %_ZN6vectorIcE3addERKc.exit41 | |
%indvar.i.i.i = phi i64 [ %tmp, %bb.i.i.i ], [ 0, %_ZN6vectorIcE3addERKc.exit41 ] ; <i64> [#uses=1] | |
%85 = phi i8 [ %89, %bb.i.i.i ], [ %83, %_ZN6vectorIcE3addERKc.exit41 ] ; <i8> [#uses=1] | |
%h.04.i.i.i = phi i32 [ %88, %bb.i.i.i ], [ 5381, %_ZN6vectorIcE3addERKc.exit41 ] ; <i32> [#uses=1] | |
%tmp = add i64 %indvar.i.i.i, 1 ; <i64> [#uses=2] | |
%scevgep.i.i.i = getelementptr i8* %79, i64 %tmp ; <i8*> [#uses=1] | |
%86 = sext i8 %85 to i32 ; <i32> [#uses=1] | |
%87 = mul i32 %h.04.i.i.i, 33 ; <i32> [#uses=1] | |
%88 = xor i32 %87, %86 ; <i32> [#uses=2] | |
%89 = load i8* %scevgep.i.i.i, align 1 ; <i8> [#uses=2] | |
%90 = icmp eq i8 %89, 0 ; <i1> [#uses=1] | |
br i1 %90, label %_ZL6hthashPKc.exit.i.i, label %bb.i.i.i | |
_ZL6hthashPKc.exit.i.i: ; preds = %bb.i.i.i, %_ZN6vectorIcE3addERKc.exit41 | |
%h.0.lcssa.i.i.i = phi i32 [ 5381, %_ZN6vectorIcE3addERKc.exit41 ], [ %88, %bb.i.i.i ] ; <i32> [#uses=1] | |
%91 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %82, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%92 = load i32* %91, align 8 ; <i32> [#uses=1] | |
%93 = add nsw i32 %92, -1 ; <i32> [#uses=1] | |
%94 = and i32 %93, %h.0.lcssa.i.i.i ; <i32> [#uses=1] | |
%95 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %82, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%96 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %95, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%97 = zext i32 %94 to i64 ; <i64> [#uses=1] | |
%98 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %96, i64 %97 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i.i43 | |
bb.i.i42: ; preds = %bb3.i.i43 | |
%.idx.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 0 ; <i8**> [#uses=1] | |
%.idx.val.i.i = load i8** %.idx.i.i ; <i8*> [#uses=1] | |
%99 = call i32 @strcmp(i8* %79, i8* %.idx.val.i.i) nounwind readonly ; <i32> [#uses=1] | |
%100 = icmp eq i32 %99, 0 ; <i1> [#uses=1] | |
br i1 %100, label %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i, label %bb2.i.i | |
bb2.i.i: ; preds = %bb.i.i42 | |
%101 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
br label %bb3.i.i43 | |
bb3.i.i43: ; preds = %bb2.i.i, %_ZL6hthashPKc.exit.i.i | |
%c.0.in.i.i = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"** [ %98, %_ZL6hthashPKc.exit.i.i ], [ %101, %bb2.i.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%c.0.i.i = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %c.0.in.i.i, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=6] | |
%102 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, null ; <i1> [#uses=1] | |
br i1 %102, label %bb22.preheader, label %bb.i.i42 | |
_ZN9hashtableIPKc5identE6accessERKS1_.exit.i: ; preds = %bb.i.i42 | |
%103 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1 ; <%struct.ident*> [#uses=1] | |
%104 = icmp eq %struct.ident* %103, null ; <i1> [#uses=1] | |
br i1 %104, label %bb22.preheader, label %bb.i44 | |
bb.i44: ; preds = %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i | |
%105 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%106 = load i32* %105, align 8 ; <i32> [#uses=1] | |
%107 = icmp eq i32 %106, 5 ; <i1> [#uses=1] | |
br i1 %107, label %bb1.i45, label %bb22.preheader | |
bb1.i45: ; preds = %bb.i44 | |
%108 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %c.0.i.i, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=1] | |
%109 = load i8** %108, align 8 ; <i8*> [#uses=1] | |
br label %bb22.preheader | |
bb22.preheader: ; preds = %bb1.i45, %bb.i44, %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i, %bb3.i.i43 | |
%alias.0.ph = phi i8* [ %109, %bb1.i45 ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %bb.i44 ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %_ZN9hashtableIPKc5identE6accessERKS1_.exit.i ], [ getelementptr inbounds ([1 x i8]* @.str3, i64 0, i64 0), %bb3.i.i43 ] ; <i8*> [#uses=3] | |
%110 = load i8* %alias.0.ph, align 1 ; <i8> [#uses=1] | |
%111 = icmp eq i8 %110, 0 ; <i1> [#uses=1] | |
br i1 %111, label %return, label %bb21 | |
bb21: ; preds = %bb21, %bb22.preheader | |
%indvar = phi i64 [ %tmp59, %bb21 ], [ 0, %bb22.preheader ] ; <i64> [#uses=2] | |
%alias.050 = getelementptr i8* %alias.0.ph, i64 %indvar ; <i8*> [#uses=1] | |
%112 = call i8* @_ZN6vectorIcE3addERKc(%struct.cline* %wordbuf, i8* %alias.050) ; <i8*> [#uses=0] | |
%tmp59 = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%scevgep = getelementptr i8* %alias.0.ph, i64 %tmp59 ; <i8*> [#uses=1] | |
%113 = load i8* %scevgep, align 1 ; <i8> [#uses=1] | |
%114 = icmp eq i8 %113, 0 ; <i1> [#uses=1] | |
br i1 %114, label %return, label %bb21 | |
return: ; preds = %bb21, %bb22.preheader, %bb6, %bb3, %bb4.preheader | |
ret void | |
} | |
declare i32 @isalnum(i32) nounwind readonly | |
define void @_Z10clearstackR5ident(%struct.ident* nocapture %id) nounwind { | |
entry: | |
%0 = getelementptr inbounds %struct.ident* %id, i64 0, i32 6, i32 0 ; <void ()**> [#uses=2] | |
%1 = load void ()** %0, align 8 ; <void ()*> [#uses=2] | |
%2 = icmp eq void ()* %1, null ; <i1> [#uses=1] | |
br i1 %2, label %bb4, label %bb.nph | |
bb.nph: ; preds = %entry | |
%3 = bitcast void ()* %1 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
br label %bb | |
bb: ; preds = %bb2, %bb.nph | |
%stack.05 = phi %struct.identstack* [ %3, %bb.nph ], [ %8, %bb2 ] ; <%struct.identstack*> [#uses=3] | |
%4 = getelementptr inbounds %struct.identstack* %stack.05, i64 0, i32 0 ; <i8**> [#uses=1] | |
%5 = load i8** %4, align 8 ; <i8*> [#uses=2] | |
%6 = icmp eq i8* %5, null ; <i1> [#uses=1] | |
br i1 %6, label %bb2, label %bb1 | |
bb1: ; preds = %bb | |
tail call void @_ZdaPv(i8* %5) nounwind | |
br label %bb2 | |
bb2: ; preds = %bb1, %bb | |
%7 = getelementptr inbounds %struct.identstack* %stack.05, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%8 = load %struct.identstack** %7, align 8 ; <%struct.identstack*> [#uses=2] | |
%9 = bitcast %struct.identstack* %stack.05 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %9) nounwind | |
%10 = icmp eq %struct.identstack* %8, null ; <i1> [#uses=1] | |
br i1 %10, label %bb4, label %bb | |
bb4: ; preds = %bb2, %entry | |
store void ()* null, void ()** %0 | |
ret void | |
} | |
define void @_Z13clear_commandv() nounwind { | |
entry: | |
%0 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=3] | |
%1 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %0, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%2 = load i32* %1, align 8 ; <i32> [#uses=2] | |
%3 = icmp sgt i32 %2, 0 ; <i1> [#uses=1] | |
br i1 %3, label %bb, label %bb16 | |
bb: ; preds = %bb14, %entry | |
%indvar = phi i64 [ %tmp35, %bb14 ], [ 0, %entry ] ; <i64> [#uses=2] | |
%4 = phi %"struct.hashtable<const char*,ident>"* [ %32, %bb14 ], [ %0, %entry ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=1] | |
%tmp35 = add i64 %indvar, 1 ; <i64> [#uses=2] | |
%tmp36 = trunc i64 %tmp35 to i32 ; <i32> [#uses=1] | |
%5 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %4, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
%6 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %5, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %6, i64 %indvar ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%7 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
%8 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %7, null ; <i1> [#uses=1] | |
br i1 %8, label %bb14, label %bb1 | |
bb1: ; preds = %bb13.backedge, %bb | |
%enumc.021.in = phi %"struct.hashset<hashtableentry<const char*, ident> >::chain"* [ %10, %bb13.backedge ], [ %7, %bb ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=5] | |
%9 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.021.in, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%10 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %9, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=2] | |
%11 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.021.in, i64 0, i32 0, i32 1, i32 1 ; <i32*> [#uses=1] | |
%12 = load i32* %11, align 8 ; <i32> [#uses=1] | |
%13 = icmp eq i32 %12, 5 ; <i1> [#uses=1] | |
br i1 %13, label %bb3, label %bb13.backedge | |
bb13.backedge: ; preds = %_Z10clearstackR5ident.exit, %bb11, %bb1 | |
%14 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %10, null ; <i1> [#uses=1] | |
br i1 %14, label %bb14, label %bb1 | |
bb3: ; preds = %bb1 | |
%15 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.021.in, i64 0, i32 0, i32 1, i32 2 ; <i8**> [#uses=2] | |
%16 = load i8** %15, align 8 ; <i8*> [#uses=2] | |
%17 = icmp eq i8* %16, null ; <i1> [#uses=1] | |
br i1 %17, label %bb7, label %bb6 | |
bb6: ; preds = %bb3 | |
tail call void @_ZdaPv(i8* %16) nounwind | |
store i8* null, i8** %15, align 8 | |
br label %bb7 | |
bb7: ; preds = %bb6, %bb3 | |
%18 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.021.in, i64 0, i32 0, i32 1, i32 7, i32 0 ; <i8**> [#uses=2] | |
%19 = load i8** %18, align 8 ; <i8*> [#uses=2] | |
%20 = icmp eq i8* %19, null ; <i1> [#uses=1] | |
br i1 %20, label %bb11, label %bb10 | |
bb10: ; preds = %bb7 | |
tail call void @_ZdaPv(i8* %19) nounwind | |
store i8* null, i8** %18, align 8 | |
br label %bb11 | |
bb11: ; preds = %bb10, %bb7 | |
%21 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %enumc.021.in, i64 0, i32 0, i32 1, i32 6, i32 0 ; <void ()**> [#uses=2] | |
%22 = load void ()** %21, align 8 ; <void ()*> [#uses=2] | |
%23 = icmp eq void ()* %22, null ; <i1> [#uses=1] | |
br i1 %23, label %bb13.backedge, label %bb.nph.i19 | |
bb.nph.i19: ; preds = %bb11 | |
%24 = bitcast void ()* %22 to %struct.identstack* ; <%struct.identstack*> [#uses=1] | |
br label %bb.i | |
bb.i: ; preds = %bb2.i, %bb.nph.i19 | |
%stack.05.i = phi %struct.identstack* [ %24, %bb.nph.i19 ], [ %29, %bb2.i ] ; <%struct.identstack*> [#uses=3] | |
%25 = getelementptr inbounds %struct.identstack* %stack.05.i, i64 0, i32 0 ; <i8**> [#uses=1] | |
%26 = load i8** %25, align 8 ; <i8*> [#uses=2] | |
%27 = icmp eq i8* %26, null ; <i1> [#uses=1] | |
br i1 %27, label %bb2.i, label %bb1.i20 | |
bb1.i20: ; preds = %bb.i | |
tail call void @_ZdaPv(i8* %26) nounwind | |
br label %bb2.i | |
bb2.i: ; preds = %bb1.i20, %bb.i | |
%28 = getelementptr inbounds %struct.identstack* %stack.05.i, i64 0, i32 1 ; <%struct.identstack**> [#uses=1] | |
%29 = load %struct.identstack** %28, align 8 ; <%struct.identstack*> [#uses=2] | |
%30 = bitcast %struct.identstack* %stack.05.i to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %30) nounwind | |
%31 = icmp eq %struct.identstack* %29, null ; <i1> [#uses=1] | |
br i1 %31, label %_Z10clearstackR5ident.exit, label %bb.i | |
_Z10clearstackR5ident.exit: ; preds = %bb2.i | |
store void ()* null, void ()** %21 | |
br label %bb13.backedge | |
bb14: ; preds = %bb13.backedge, %bb | |
%32 = load %"struct.hashtable<const char*,ident>"** @idents, align 8 ; <%"struct.hashtable<const char*,ident>"*> [#uses=3] | |
%33 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %32, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%34 = load i32* %33, align 8 ; <i32> [#uses=2] | |
%35 = icmp sgt i32 %34, %tmp36 ; <i1> [#uses=1] | |
br i1 %35, label %bb, label %bb16 | |
bb16: ; preds = %bb14, %entry | |
%36 = phi i32 [ %2, %entry ], [ %34, %bb14 ] ; <i32> [#uses=1] | |
%37 = phi %"struct.hashtable<const char*,ident>"* [ %0, %entry ], [ %32, %bb14 ] ; <%"struct.hashtable<const char*,ident>"*> [#uses=6] | |
%38 = icmp eq %"struct.hashtable<const char*,ident>"* %37, null ; <i1> [#uses=1] | |
br i1 %38, label %_ZN7hashsetI14hashtableentryIPKc5identEE5clearEv.exit, label %bb17 | |
bb17: ; preds = %bb16 | |
%39 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %37, i64 0, i32 0, i32 1 ; <i32*> [#uses=2] | |
%40 = load i32* %39, align 4 ; <i32> [#uses=1] | |
%41 = icmp eq i32 %40, 0 ; <i1> [#uses=1] | |
br i1 %41, label %_ZN7hashsetI14hashtableentryIPKc5identEE5clearEv.exit, label %bb2.preheader.i | |
bb2.preheader.i: ; preds = %bb17 | |
%42 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %37, i64 0, i32 0, i32 0 ; <i32*> [#uses=1] | |
%43 = icmp sgt i32 %36, 0 ; <i1> [#uses=1] | |
br i1 %43, label %bb.nph.i, label %bb3.i | |
bb.nph.i: ; preds = %bb2.preheader.i | |
%44 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %37, i64 0, i32 0, i32 2 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"***> [#uses=1] | |
br label %bb1.i | |
bb1.i: ; preds = %bb1.i, %bb.nph.i | |
%indvar.i = phi i64 [ 0, %bb.nph.i ], [ %tmp32, %bb1.i ] ; <i64> [#uses=2] | |
%tmp32 = add i64 %indvar.i, 1 ; <i64> [#uses=2] | |
%tmp8.i = trunc i64 %tmp32 to i32 ; <i32> [#uses=1] | |
%45 = load %"struct.hashset<hashtableentry<const char*, ident> >::chain"*** %44, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
%scevgep.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %45, i64 %indvar.i ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %scevgep.i, align 8 | |
%46 = load i32* %42, align 8 ; <i32> [#uses=1] | |
%47 = icmp sgt i32 %46, %tmp8.i ; <i1> [#uses=1] | |
br i1 %47, label %bb1.i, label %bb3.i | |
bb3.i: ; preds = %bb1.i, %bb2.preheader.i | |
store i32 0, i32* %39, align 4 | |
%48 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %37, i64 0, i32 0, i32 4 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"**> [#uses=1] | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chain"* null, %"struct.hashset<hashtableentry<const char*, ident> >::chain"** %48, align 8 | |
%49 = getelementptr inbounds %"struct.hashtable<const char*,ident>"* %37, i64 0, i32 0, i32 3 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=2] | |
%50 = load %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %49, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"*> [#uses=2] | |
%51 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %50, null ; <i1> [#uses=1] | |
br i1 %51, label %_ZN7hashsetI14hashtableentryIPKc5identEE5clearEv.exit, label %bb.i.i | |
bb.i.i: ; preds = %bb2.i.i, %bb3.i | |
%52 = phi %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* [ %54, %bb2.i.i ], [ %50, %bb3.i ] ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"*> [#uses=6] | |
%53 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %52, i64 0, i32 1 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"**> [#uses=1] | |
%54 = load %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %53, align 8 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"*> [#uses=3] | |
%55 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %52, null ; <i1> [#uses=1] | |
br i1 %55, label %bb2.i.i, label %bb.i.i.i | |
bb.i.i.i: ; preds = %bb.i.i | |
%56 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %52, i64 0, i32 0 ; <[64 x %"struct.hashset<hashtableentry<const char*, ident> >::chain"]*> [#uses=1] | |
%57 = getelementptr inbounds [64 x %"struct.hashset<hashtableentry<const char*, ident> >::chain"]* %56, i64 1, i64 0 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=1] | |
%58 = getelementptr inbounds %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %52, i64 0, i32 0, i64 0 ; <%"struct.hashset<hashtableentry<const char*, ident> >::chain"*> [#uses=1] | |
%59 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chain"* %57, %58 ; <i1> [#uses=1] | |
br i1 %59, label %_ZN7hashsetI14hashtableentryIPKc5identEE10chainchunkD1Ev.exit.i.i, label %bb2.i.i.i | |
bb2.i.i.i: ; preds = %bb2.i.i.i, %bb.i.i.i | |
%indvar.i.i.i = phi i64 [ %indvar.next.i.i.i, %bb2.i.i.i ], [ 0, %bb.i.i.i ] ; <i64> [#uses=2] | |
%tmp31 = sub i64 63, %indvar.i.i.i ; <i64> [#uses=1] | |
%scevgep.i.i.i = getelementptr %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %52, i64 0, i32 0, i64 %tmp31, i32 0, i32 1, i32 0 ; <i32 (...)***> [#uses=1] | |
store i32 (...)** getelementptr inbounds ([5 x i32 (...)*]* @_ZTV5ident, i64 0, i64 2), i32 (...)*** %scevgep.i.i.i, align 8 | |
%indvar.next.i.i.i = add i64 %indvar.i.i.i, 1 ; <i64> [#uses=2] | |
%exitcond = icmp eq i64 %indvar.next.i.i.i, 64 ; <i1> [#uses=1] | |
br i1 %exitcond, label %_ZN7hashsetI14hashtableentryIPKc5identEE10chainchunkD1Ev.exit.i.i, label %bb2.i.i.i | |
_ZN7hashsetI14hashtableentryIPKc5identEE10chainchunkD1Ev.exit.i.i: ; preds = %bb2.i.i.i, %bb.i.i.i | |
%60 = bitcast %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %52 to i8* ; <i8*> [#uses=1] | |
tail call void @_ZdlPv(i8* %60) nounwind | |
br label %bb2.i.i | |
bb2.i.i: ; preds = %_ZN7hashsetI14hashtableentryIPKc5identEE10chainchunkD1Ev.exit.i.i, %bb.i.i | |
store %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %54, %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"** %49, align 8 | |
%61 = icmp eq %"struct.hashset<hashtableentry<const char*, ident> >::chainchunk"* %54, null ; <i1> [#uses=1] | |
br i1 %61, label %_ZN7hashsetI14hashtableentryIPKc5identEE5clearEv.exit, label %bb.i.i | |
_ZN7hashsetI14hashtableentryIPKc5identEE5clearEv.exit: ; preds = %bb2.i.i, %bb3.i, %bb17, %bb16 | |
ret void | |
} | |
declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment