-
-
Save nikic/e08cc1d0caeb2b721f1fc690c3b76384 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'test127.ll' | |
source_filename = "/home/npopov/repos/llvm-test-suite/MultiSource/Benchmarks/MiBench/consumer-typeset/z06.c" | |
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%struct.FILE_POS = type { i8, i8, i16, i32 } | |
%union.rec = type { %struct.head_type } | |
%struct.head_type = type { [2 x %struct.LIST], %union.FIRST_UNION, %union.SECOND_UNION, %union.THIRD_UNION, %union.FOURTH_UNION, %union.rec*, %union.anon.13, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, i32 } | |
%struct.LIST = type { %union.rec*, %union.rec* } | |
%union.FIRST_UNION = type { %struct.FILE_POS } | |
%union.SECOND_UNION = type { %struct.anon.1 } | |
%struct.anon.1 = type { i32 } | |
%union.THIRD_UNION = type { %struct._IO_FILE*, [8 x i8] } | |
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] } | |
%struct._IO_marker = type opaque | |
%struct._IO_codecvt = type opaque | |
%struct._IO_wide_data = type opaque | |
%union.FOURTH_UNION = type { %struct.STYLE } | |
%struct.STYLE = type { %union.anon, %union.anon.10, i16, i16, i32 } | |
%union.anon = type { %struct.GAP } | |
%struct.GAP = type { i16, i16 } | |
%union.anon.10 = type { %struct.GAP } | |
%union.anon.13 = type { %union.rec* } | |
%struct.word_type = type { [2 x %struct.LIST], %union.FIRST_UNION, %union.SECOND_UNION, %union.THIRD_UNION, [4 x i8] } | |
%struct.symbol_type = type { [2 x %struct.LIST], %union.FIRST_UNION, %union.SECOND_UNION, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, %union.rec*, i16, i16, i8, i8, i8 } | |
%struct.anon.5 = type { i8, [3 x i8] } | |
%struct.closure_type = type { [2 x %struct.LIST], %union.FIRST_UNION, %union.SECOND_UNION, %union.THIRD_UNION, %union.FOURTH_UNION, %union.rec*, %union.anon.12 } | |
%union.anon.12 = type { %union.rec* } | |
%struct.anon.0 = type { i8, i8, i8 } | |
%struct.gapobj_type = type { [2 x %struct.LIST], %union.FIRST_UNION, %union.SECOND_UNION, %struct.GAP, i32, i16, i16, %union.rec*, %union.rec* } | |
@.str = external hidden unnamed_addr constant [20 x i8], align 1 | |
@no_fpos = external local_unnamed_addr global %struct.FILE_POS*, align 8 | |
@xx_link = external local_unnamed_addr global %union.rec*, align 8 | |
@zz_hold = external local_unnamed_addr global %union.rec*, align 8 | |
@zz_res = external local_unnamed_addr global %union.rec*, align 8 | |
@zz_lengths = external local_unnamed_addr global [0 x i8], align 1 | |
@zz_size = external local_unnamed_addr global i32, align 4 | |
@zz_free = external local_unnamed_addr global [0 x %union.rec*], align 8 | |
@cross_name = external hidden unnamed_addr global %union.rec*, align 8 | |
@ttop = external hidden unnamed_addr global i32, align 4 | |
@StartSym = external local_unnamed_addr global %union.rec*, align 8 | |
@tok_stack = external hidden unnamed_addr global [100 x %union.rec*], align 16 | |
@.str.6 = external hidden unnamed_addr constant [32 x i8], align 1 | |
@.str.7 = external hidden unnamed_addr constant [15 x i8], align 1 | |
@.str.9 = external hidden unnamed_addr constant [12 x i8], align 1 | |
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1 | |
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1 | |
@.str.12 = external hidden unnamed_addr constant [6 x i8], align 1 | |
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1 | |
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1 | |
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1 | |
@.str.16 = external hidden unnamed_addr constant [21 x i8], align 1 | |
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1 | |
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1 | |
@.str.19 = external hidden unnamed_addr constant [30 x i8], align 1 | |
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1 | |
@.str.21 = external hidden unnamed_addr constant [10 x i8], align 1 | |
@.str.22 = external hidden unnamed_addr constant [24 x i8], align 1 | |
@.str.23 = external hidden unnamed_addr constant [35 x i8], align 1 | |
@AllowCrossDb = external local_unnamed_addr global i32, align 4 | |
@NewCrossDb = external local_unnamed_addr global %union.rec*, align 8 | |
@InMemoryDbIndexes = external local_unnamed_addr global i32, align 4 | |
@OldCrossDb = external local_unnamed_addr global %union.rec*, align 8 | |
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1 | |
@unknown_count = external hidden unnamed_addr global i32, align 4 | |
@.str.25 = external hidden unnamed_addr constant [52 x i8], align 1 | |
@.str.26 = external hidden unnamed_addr constant [12 x i8], align 1 | |
@otop = external hidden unnamed_addr global i32, align 4 | |
@obj_stack = external hidden unnamed_addr global [100 x %union.rec*], align 16 | |
@.str.27 = external hidden unnamed_addr constant [1 x i8], align 1 | |
@.str.28 = external hidden unnamed_addr constant [55 x i8], align 1 | |
@.str.29 = external hidden unnamed_addr constant [10 x i8], align 1 | |
@.str.30 = external hidden unnamed_addr constant [13 x i8], align 1 | |
@VerbatimSym = external local_unnamed_addr global %union.rec*, align 8 | |
@RawVerbatimSym = external local_unnamed_addr global %union.rec*, align 8 | |
@.str.31 = external hidden unnamed_addr constant [24 x i8], align 1 | |
@.str.32 = external hidden unnamed_addr constant [18 x i8], align 1 | |
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1 | |
@.str.34 = external hidden unnamed_addr constant [47 x i8], align 1 | |
@.str.35 = external hidden unnamed_addr constant [5 x i8], align 1 | |
@.str.36 = external hidden unnamed_addr constant [25 x i8], align 1 | |
@.str.37 = external hidden unnamed_addr constant [23 x i8], align 1 | |
@.str.38 = external hidden unnamed_addr constant [6 x i8], align 1 | |
@.str.39 = external hidden unnamed_addr constant [34 x i8], align 1 | |
@.str.40 = external hidden unnamed_addr constant [29 x i8], align 1 | |
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1 | |
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1 | |
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1 | |
@.str.44 = external hidden unnamed_addr constant [34 x i8], align 1 | |
@zz_tmp = external local_unnamed_addr global %union.rec*, align 8 | |
@.str.45 = external hidden unnamed_addr constant [23 x i8], align 1 | |
@.str.46 = external hidden unnamed_addr constant [39 x i8], align 1 | |
@.str.47 = external hidden unnamed_addr constant [37 x i8], align 1 | |
@.str.48 = external hidden unnamed_addr constant [49 x i8], align 1 | |
@InputSym = external local_unnamed_addr global %union.rec*, align 8 | |
@.str.49 = external hidden unnamed_addr constant [24 x i8], align 1 | |
@xx_tmp = external local_unnamed_addr global %union.rec*, align 8 | |
@.str.50 = external hidden unnamed_addr constant [24 x i8], align 1 | |
@.str.51 = external hidden unnamed_addr constant [49 x i8], align 1 | |
@.str.52 = external hidden unnamed_addr constant [48 x i8], align 1 | |
@.str.53 = external hidden unnamed_addr constant [29 x i8], align 1 | |
@.str.54 = external hidden unnamed_addr constant [6 x i8], align 1 | |
@.str.55 = external hidden unnamed_addr constant [23 x i8], align 1 | |
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1 | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #0 | |
declare i8* @Error(i32 noundef, i32 noundef, i8* noundef, i32 noundef, %struct.FILE_POS* noundef, ...) local_unnamed_addr #1 | |
declare i32 @DisposeObject(%union.rec* noundef) local_unnamed_addr #1 | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #0 | |
; Function Attrs: nounwind uwtable | |
declare void @SetScope(%union.rec* noundef readonly, i32* nocapture noundef, i32 noundef) local_unnamed_addr #2 | |
declare void @PushScope(%union.rec* noundef, i32 noundef, i32 noundef) local_unnamed_addr #1 | |
declare %union.rec* @MakeWord(i32 noundef, i8* noundef, %struct.FILE_POS* noundef) local_unnamed_addr #1 | |
declare %union.rec* @NewToken(i8 noundef zeroext, %struct.FILE_POS* noundef, i8 noundef zeroext, i8 noundef zeroext, i8 noundef zeroext, %union.rec* noundef) local_unnamed_addr #1 | |
; Function Attrs: nounwind uwtable | |
define %union.rec* @Parse(%union.rec** nocapture noundef %token, %union.rec* noundef %encl, i32 noundef %defs_allowed, i32 noundef %transfer_allowed) local_unnamed_addr #2 { | |
entry: | |
%t = alloca %union.rec*, align 8 | |
%env = alloca %union.rec*, align 8 | |
%offset = alloca i32, align 4 | |
%lnum = alloca i32, align 4 | |
%scope_count = alloca i32, align 4 | |
%crs = alloca %union.rec*, align 8 | |
%res_env = alloca %union.rec*, align 8 | |
%style = alloca %struct.STYLE, align 4 | |
%0 = bitcast %union.rec** %t to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %0) #5 | |
%1 = bitcast %union.rec** %env to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #5 | |
%2 = bitcast i32* %offset to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %2) #5 | |
%3 = bitcast i32* %lnum to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %3) #5 | |
%4 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%5 = bitcast i32* %scope_count to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %5) #5 | |
%6 = bitcast %union.rec** %token to %struct.word_type** | |
%7 = load %struct.word_type*, %struct.word_type** %6, align 8, !tbaa !8 | |
%otype = getelementptr inbounds %struct.word_type, %struct.word_type* %7, i64 0, i32 1, i32 0, i32 0 | |
%8 = load i8, i8* %otype, align 8, !tbaa !10 | |
switch i8 %8, label %if.then [ | |
i8 102, label %if.end157 | |
i8 104, label %if.end157 | |
] | |
if.then: ; preds = %entry | |
%9 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call = tail call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 1, i32 noundef 2, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 noundef 0, %struct.FILE_POS* noundef %9, i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0)) #5 | |
%.pre = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end157 | |
if.end157: ; preds = %if.then, %entry, %entry | |
%10 = phi i32 [ %.pre, %if.then ], [ %4, %entry ], [ %4, %entry ] | |
%inc158 = add nsw i32 %10, 1 | |
store i32 %inc158, i32* @ttop, align 4, !tbaa !4 | |
%cmp159 = icmp slt i32 %10, 99 | |
br i1 %cmp159, label %if.then161, label %if.else164 | |
if.then161: ; preds = %if.end157 | |
%11 = load %union.rec*, %union.rec** %token, align 8, !tbaa !8 | |
%idxprom162 = sext i32 %inc158 to i64 | |
%arrayidx163 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom162 | |
store %union.rec* %11, %union.rec** %arrayidx163, align 8, !tbaa !8 | |
br label %if.end172 | |
if.else164: ; preds = %if.end157 | |
%idxprom16610296 = zext i32 %10 to i64 | |
%arrayidx167 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom16610296 | |
%12 = bitcast %union.rec** %arrayidx167 to %struct.word_type** | |
%13 = load %struct.word_type*, %struct.word_type** %12, align 8, !tbaa !8 | |
%ofpos170 = getelementptr inbounds %struct.word_type, %struct.word_type* %13, i64 0, i32 1, i32 0 | |
%call171 = tail call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos170) #5 | |
br label %if.end172 | |
if.end172: ; preds = %if.else164, %if.then161 | |
%call173 = tail call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call173, %union.rec** %t, align 8, !tbaa !8 | |
%tobool174.not = icmp eq i32 %defs_allowed, 0 | |
br i1 %tobool174.not, label %if.end580, label %if.then175 | |
if.then175: ; preds = %if.end172 | |
call void @ReadDefinitions(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i8 noundef zeroext -113) #5 | |
%call176 = call i32 @ErrorSeen() #5 | |
%tobool177.not = icmp eq i32 %call176, 0 | |
br i1 %tobool177.not, label %if.end183, label %if.then178 | |
if.then178: ; preds = %if.then175 | |
%14 = bitcast %union.rec** %t to %struct.word_type** | |
%15 = load %struct.word_type*, %struct.word_type** %14, align 8, !tbaa !8 | |
%ofpos181 = getelementptr inbounds %struct.word_type, %struct.word_type* %15, i64 0, i32 1, i32 0 | |
%call182 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 14, i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.9, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos181) #5 | |
br label %if.end183 | |
if.end183: ; preds = %if.then178, %if.then175 | |
%16 = load %union.rec*, %union.rec** @StartSym, align 8, !tbaa !8 | |
%cmp184 = icmp eq %union.rec* %16, %encl | |
br i1 %cmp184, label %if.then186, label %if.end580 | |
if.then186: ; preds = %if.end183 | |
%17 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 82), align 1, !tbaa !10 | |
%conv187 = zext i8 %17 to i32 | |
store i32 %conv187, i32* @zz_size, align 4, !tbaa !4 | |
%18 = zext i8 %17 to i64 | |
%arrayidx195 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %18 | |
%19 = load %union.rec*, %union.rec** %arrayidx195, align 8, !tbaa !8 | |
%cmp196 = icmp eq %union.rec* %19, null | |
br i1 %cmp196, label %if.then198, label %if.else200 | |
if.then198: ; preds = %if.then186 | |
%20 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call199 = call %union.rec* @GetMemory(i32 noundef %conv187, %struct.FILE_POS* noundef %20) #5 | |
store %union.rec* %call199, %union.rec** @zz_hold, align 8, !tbaa !8 | |
br label %if.end210 | |
if.else200: ; preds = %if.then186 | |
store %union.rec* %19, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred206 = getelementptr inbounds %union.rec, %union.rec* %19, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%21 = load %union.rec*, %union.rec** %opred206, align 8, !tbaa !10 | |
store %union.rec* %21, %union.rec** %arrayidx195, align 8, !tbaa !8 | |
br label %if.end210 | |
if.end210: ; preds = %if.else200, %if.then198 | |
%.in10546 = phi %union.rec* [ %call199, %if.then198 ], [ %19, %if.else200 ] | |
%22 = getelementptr inbounds %union.rec, %union.rec* %.in10546, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 82, i8* %22, align 8, !tbaa !10 | |
%23 = getelementptr inbounds %union.rec, %union.rec* %.in10546, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10546, %union.rec** %23, align 8, !tbaa !10 | |
%24 = getelementptr inbounds %union.rec, %union.rec* %.in10546, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10546, %union.rec** %24, align 8, !tbaa !10 | |
%25 = getelementptr inbounds %union.rec, %union.rec* %.in10546, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10546, %union.rec** %25, align 8, !tbaa !10 | |
%26 = getelementptr %union.rec, %union.rec* %.in10546, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10546, %union.rec** %26, align 8, !tbaa !10 | |
store %union.rec* %.in10546, %union.rec** %env, align 8, !tbaa !8 | |
%27 = bitcast %union.rec** %t to %struct.word_type** | |
%28 = bitcast %union.rec** %crs to i8* | |
%29 = bitcast %union.rec** %res_env to i8* | |
%30 = bitcast %struct.STYLE* %style to i8* | |
br label %for.cond | |
for.cond: ; preds = %for.cond.backedge, %if.end210 | |
%31 = load %struct.word_type*, %struct.word_type** %27, align 8, !tbaa !8 | |
%otype234 = getelementptr inbounds %struct.word_type, %struct.word_type* %31, i64 0, i32 1, i32 0, i32 0 | |
%32 = load i8, i8* %otype234, align 8, !tbaa !10 | |
switch i8 %32, label %for.end568 [ | |
i8 11, label %land.lhs.true | |
i8 106, label %if.then294 | |
i8 114, label %if.then455 | |
i8 115, label %if.then455 | |
i8 116, label %if.then517 | |
i8 117, label %if.then517 | |
] | |
land.lhs.true: ; preds = %for.cond | |
%arraydecay = getelementptr inbounds %struct.word_type, %struct.word_type* %31, i64 0, i32 4, i64 0 | |
%call239 = call i32 @strcmp(i8* noundef nonnull %arraydecay, i8* noundef nonnull dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0)) #6 | |
%cmp240 = icmp eq i32 %call239, 0 | |
br i1 %cmp240, label %if.then277, label %lor.lhs.false242 | |
lor.lhs.false242: ; preds = %land.lhs.true | |
%call246 = call i32 @strcmp(i8* noundef nonnull %arraydecay, i8* noundef nonnull dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0)) #6 | |
%cmp247 = icmp eq i32 %call246, 0 | |
br i1 %cmp247, label %if.then277, label %lor.lhs.false249 | |
lor.lhs.false249: ; preds = %lor.lhs.false242 | |
%call253 = call i32 @strcmp(i8* noundef nonnull %arraydecay, i8* noundef nonnull dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0)) #6 | |
%cmp254 = icmp eq i32 %call253, 0 | |
br i1 %cmp254, label %if.then277, label %lor.lhs.false256 | |
lor.lhs.false256: ; preds = %lor.lhs.false249 | |
%call260 = call i32 @strcmp(i8* noundef nonnull %arraydecay, i8* noundef nonnull dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0)) #6 | |
%cmp261 = icmp eq i32 %call260, 0 | |
br i1 %cmp261, label %if.then277, label %lor.lhs.false263 | |
lor.lhs.false263: ; preds = %lor.lhs.false256 | |
%call267 = call i32 @strcmp(i8* noundef nonnull %arraydecay, i8* noundef nonnull dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.14, i64 0, i64 0)) #6 | |
%cmp268 = icmp eq i32 %call267, 0 | |
br i1 %cmp268, label %if.then277, label %lor.lhs.false270 | |
lor.lhs.false270: ; preds = %lor.lhs.false263 | |
%call274 = call i32 @strcmp(i8* noundef nonnull %arraydecay, i8* noundef nonnull dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0)) #6 | |
%cmp275 = icmp eq i32 %call274, 0 | |
br i1 %cmp275, label %if.then277, label %for.end568 | |
if.then277: ; preds = %lor.lhs.false270, %lor.lhs.false263, %lor.lhs.false256, %lor.lhs.false249, %lor.lhs.false242, %land.lhs.true | |
call void @ReadDefinitions(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i8 noundef zeroext -113) #5 | |
%call278 = call i32 @ErrorSeen() #5 | |
%tobool279.not = icmp eq i32 %call278, 0 | |
br i1 %tobool279.not, label %for.cond.backedge, label %if.then280 | |
if.then280: ; preds = %if.then277 | |
%33 = load %struct.word_type*, %struct.word_type** %27, align 8, !tbaa !8 | |
%ofpos283 = getelementptr inbounds %struct.word_type, %struct.word_type* %33, i64 0, i32 1, i32 0 | |
%call284 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 39, i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.9, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos283) #5 | |
br label %for.cond.backedge | |
if.then294: ; preds = %for.cond | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %28) #5 | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %29) #5 | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %30) #5 | |
store %struct.word_type* %31, %struct.word_type** bitcast (%union.rec** @zz_hold to %struct.word_type**), align 8, !tbaa !8 | |
%cond.in = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 106), align 1, !tbaa !10 | |
%cond = zext i8 %cond.in to i32 | |
store i32 %cond, i32* @zz_size, align 4, !tbaa !4 | |
%34 = zext i8 %cond.in to i64 | |
%arrayidx322 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %34 | |
%35 = load %union.rec*, %union.rec** %arrayidx322, align 8, !tbaa !8 | |
%opred326 = getelementptr %struct.word_type, %struct.word_type* %31, i64 0, i32 0, i64 0, i32 0 | |
store %union.rec* %35, %union.rec** %opred326, align 8, !tbaa !10 | |
%36 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%37 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom327 = sext i32 %37 to i64 | |
%arrayidx328 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom327 | |
store %union.rec* %36, %union.rec** %arrayidx328, align 8, !tbaa !8 | |
%call329 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call329, %union.rec** %t, align 8, !tbaa !8 | |
%38 = getelementptr inbounds %union.rec, %union.rec* %call329, i64 0, i32 0, i32 1 | |
%otype333 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %38, i64 0, i32 0, i32 0 | |
%39 = load i8, i8* %otype333, align 8, !tbaa !10 | |
%cmp335.not = icmp eq i8 %39, 102 | |
br i1 %cmp335.not, label %if.end342, label %if.then337 | |
if.then337: ; preds = %if.then294 | |
%ofpos340 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %38, i64 0, i32 0 | |
%call341 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 15, i8* noundef getelementptr inbounds ([21 x i8], [21 x i8]* @.str.16, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos340, i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.17, i64 0, i64 0), i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0)) #5 | |
br label %if.end342 | |
if.end342: ; preds = %if.then337, %if.then294 | |
%call343 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
%40 = getelementptr inbounds %union.rec, %union.rec* %call343, i64 0, i32 0, i32 1 | |
%otype347 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %40, i64 0, i32 0, i32 0 | |
%41 = load i8, i8* %otype347, align 8, !tbaa !10 | |
switch i8 %41, label %if.else429 [ | |
i8 6, label %if.then359 | |
i8 7, label %if.then359 | |
i8 2, label %if.then412 | |
] | |
if.then359: ; preds = %if.end342, %if.end342 | |
%osucc363 = getelementptr inbounds %union.rec, %union.rec* %call343, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%42 = bitcast %union.rec** %osucc363 to %struct.word_type** | |
%43 = load %struct.word_type*, %struct.word_type** %42, align 8, !tbaa !10 | |
br label %for.cond368 | |
for.cond368: ; preds = %for.cond368, %if.then359 | |
%.pn10139 = phi %struct.word_type* [ %43, %if.then359 ], [ %z.010138, %for.cond368 ] | |
%z.0.in = getelementptr inbounds %struct.word_type, %struct.word_type* %.pn10139, i64 0, i32 0, i64 1, i32 0 | |
%44 = bitcast %union.rec** %z.0.in to %struct.word_type** | |
%z.010138 = load %struct.word_type*, %struct.word_type** %44, align 8, !tbaa !10 | |
%otype372 = getelementptr inbounds %struct.word_type, %struct.word_type* %z.010138, i64 0, i32 1, i32 0, i32 0 | |
%45 = load i8, i8* %otype372, align 8, !tbaa !10 | |
switch i8 %45, label %if.else398 [ | |
i8 0, label %for.cond368 | |
i8 2, label %if.then387 | |
] | |
if.then387: ; preds = %for.cond368 | |
store %union.rec* null, %union.rec** %crs, align 8, !tbaa !8 | |
%46 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
%call388 = call %union.rec* @CrossExpand(%union.rec* noundef %call343, %union.rec* noundef %46, %struct.STYLE* noundef nonnull %style, %union.rec** noundef nonnull %crs, %union.rec** noundef nonnull %res_env) #5 | |
%47 = load %union.rec*, %union.rec** %crs, align 8, !tbaa !8 | |
%cmp389.not = icmp eq %union.rec* %47, null | |
br i1 %cmp389.not, label %if.end396, label %if.then391 | |
if.then391: ; preds = %if.then387 | |
%ofpos394 = getelementptr inbounds %union.rec, %union.rec* %call388, i64 0, i32 0, i32 1, i32 0 | |
%call395 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 16, i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.19, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos394, i8* noundef getelementptr inbounds ([10 x i8], [10 x i8]* @.str.20, i64 0, i64 0), i8* noundef getelementptr inbounds ([10 x i8], [10 x i8]* @.str.21, i64 0, i64 0)) #5 | |
br label %if.end396 | |
if.end396: ; preds = %if.then391, %if.then387 | |
call fastcc void @HuntCommandOptions(%union.rec* noundef %call388) | |
%48 = load %union.rec*, %union.rec** %res_env, align 8, !tbaa !8 | |
call void @AttachEnv(%union.rec* noundef %48, %union.rec* noundef %call388) #5 | |
%49 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
%call397 = call %union.rec* @SetEnv(%union.rec* noundef %call388, %union.rec* noundef %49) #5 | |
store %union.rec* %call397, %union.rec** %env, align 8, !tbaa !8 | |
br label %if.end435 | |
if.else398: ; preds = %for.cond368 | |
%ofpos401 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %40, i64 0, i32 0 | |
%call402 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 17, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.22, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos401, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0)) #5 | |
br label %if.end435 | |
if.then412: ; preds = %if.end342 | |
%50 = getelementptr inbounds %union.rec, %union.rec* %call343, i64 0, i32 0, i32 5 | |
%51 = load %union.rec*, %union.rec** %50, align 8, !tbaa !10 | |
%52 = getelementptr inbounds %union.rec, %union.rec* %51, i64 0, i32 0, i32 9 | |
%53 = load %union.rec*, %union.rec** %52, align 8, !tbaa !10 | |
%cmp413.not = icmp eq %union.rec* %53, null | |
br i1 %cmp413.not, label %if.then412.if.end423_crit_edge, label %if.then415 | |
if.then412.if.end423_crit_edge: ; preds = %if.then412 | |
%54 = bitcast %union.rec* %51 to %struct.symbol_type* | |
br label %if.end423 | |
if.then415: ; preds = %if.then412 | |
%ofpos418 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %40, i64 0, i32 0 | |
%call421 = call i8* @SymName(%union.rec* noundef nonnull %51) #5 | |
%call422 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 18, i8* noundef getelementptr inbounds ([35 x i8], [35 x i8]* @.str.23, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos418, i8* noundef %call421, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0)) #5 | |
%.phi.trans.insert = bitcast %union.rec** %50 to %struct.symbol_type** | |
%.pre10456 = load %struct.symbol_type*, %struct.symbol_type** %.phi.trans.insert, align 8, !tbaa !10 | |
br label %if.end423 | |
if.end423: ; preds = %if.then415, %if.then412.if.end423_crit_edge | |
%55 = phi %struct.symbol_type* [ %.pre10456, %if.then415 ], [ %54, %if.then412.if.end423_crit_edge ] | |
%ouse_invocation427 = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %55, i64 0, i32 11 | |
store %union.rec* %call343, %union.rec** %ouse_invocation427, align 8, !tbaa !10 | |
call fastcc void @HuntCommandOptions(%union.rec* noundef nonnull %call343) | |
%56 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
call void @AttachEnv(%union.rec* noundef %56, %union.rec* noundef nonnull %call343) #5 | |
%call428 = call %union.rec* @SetEnv(%union.rec* noundef nonnull %call343, %union.rec* noundef null) #5 | |
store %union.rec* %call428, %union.rec** %env, align 8, !tbaa !8 | |
br label %if.end435 | |
if.else429: ; preds = %if.end342 | |
%ofpos432 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %40, i64 0, i32 0 | |
%call433 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 19, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.22, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos432, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0)) #5 | |
br label %if.end435 | |
if.end435: ; preds = %if.else429, %if.end423, %if.else398, %if.end396 | |
%y.1 = phi %union.rec* [ %call343, %if.end423 ], [ %call343, %if.else429 ], [ %call388, %if.end396 ], [ %call343, %if.else398 ] | |
%57 = getelementptr inbounds %union.rec, %union.rec* %y.1, i64 0, i32 0, i32 5 | |
%58 = load %union.rec*, %union.rec** %57, align 8, !tbaa !10 | |
call void @PushScope(%union.rec* noundef %58, i32 noundef 0, i32 noundef 1) #5 | |
%call438 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call438, %union.rec** %t, align 8, !tbaa !8 | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %30) #5 | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %29) #5 | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %28) #5 | |
br label %for.cond.backedge | |
for.cond.backedge: ; preds = %if.then517, %if.then455, %if.end435, %if.then280, %if.then277 | |
br label %for.cond | |
if.then455: ; preds = %for.cond, %for.cond | |
%conv460 = zext i8 %32 to i32 | |
call void @ReadPrependDef(i32 noundef %conv460, %union.rec* noundef %encl) #5 | |
%59 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %59, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype464 = getelementptr inbounds %union.rec, %union.rec* %59, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%60 = load i8, i8* %otype464, align 8, !tbaa !10 | |
%.off10160 = add i8 %60, -11 | |
%switch10161 = icmp ult i8 %.off10160, 2 | |
%61 = getelementptr inbounds %union.rec, %union.rec* %59, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom487 = zext i8 %60 to i64 | |
%arrayidx488 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom487 | |
%cond491.in.in = select i1 %switch10161, i8* %61, i8* %arrayidx488 | |
%cond491.in = load i8, i8* %cond491.in.in, align 1, !tbaa !10 | |
%cond491 = zext i8 %cond491.in to i32 | |
store i32 %cond491, i32* @zz_size, align 4, !tbaa !4 | |
%62 = zext i8 %cond491.in to i64 | |
%arrayidx493 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %62 | |
%63 = load %union.rec*, %union.rec** %arrayidx493, align 8, !tbaa !8 | |
%opred497 = getelementptr %union.rec, %union.rec* %59, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %63, %union.rec** %opred497, align 8, !tbaa !10 | |
%64 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%65 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom498 = sext i32 %65 to i64 | |
%arrayidx499 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom498 | |
store %union.rec* %64, %union.rec** %arrayidx499, align 8, !tbaa !8 | |
%call500 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call500, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond.backedge | |
if.then517: ; preds = %for.cond, %for.cond | |
%conv522 = zext i8 %32 to i32 | |
call void @ReadDatabaseDef(i32 noundef %conv522, %union.rec* noundef %encl) #5 | |
%66 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %66, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype526 = getelementptr inbounds %union.rec, %union.rec* %66, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%67 = load i8, i8* %otype526, align 8, !tbaa !10 | |
%.off10162 = add i8 %67, -11 | |
%switch10163 = icmp ult i8 %.off10162, 2 | |
%68 = getelementptr inbounds %union.rec, %union.rec* %66, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom549 = zext i8 %67 to i64 | |
%arrayidx550 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom549 | |
%cond553.in.in = select i1 %switch10163, i8* %68, i8* %arrayidx550 | |
%cond553.in = load i8, i8* %cond553.in.in, align 1, !tbaa !10 | |
%cond553 = zext i8 %cond553.in to i32 | |
store i32 %cond553, i32* @zz_size, align 4, !tbaa !4 | |
%69 = zext i8 %cond553.in to i64 | |
%arrayidx555 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %69 | |
%70 = load %union.rec*, %union.rec** %arrayidx555, align 8, !tbaa !8 | |
%opred559 = getelementptr %union.rec, %union.rec* %66, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %70, %union.rec** %opred559, align 8, !tbaa !10 | |
%71 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%72 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom560 = sext i32 %72 to i64 | |
%arrayidx561 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom560 | |
store %union.rec* %71, %union.rec** %arrayidx561, align 8, !tbaa !8 | |
%call562 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call562, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond.backedge | |
for.end568: ; preds = %lor.lhs.false270, %for.cond | |
%73 = load i32, i32* @AllowCrossDb, align 4, !tbaa !4 | |
%tobool569.not = icmp eq i32 %73, 0 | |
br i1 %tobool569.not, label %if.else577, label %if.then570 | |
if.then570: ; preds = %for.end568 | |
%74 = load %struct.word_type*, %struct.word_type** bitcast (%union.rec** @cross_name to %struct.word_type**), align 8, !tbaa !8 | |
%arraydecay573 = getelementptr inbounds %struct.word_type, %struct.word_type* %74, i64 0, i32 4, i64 0 | |
%75 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call574 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef nonnull %arraydecay573, %struct.FILE_POS* noundef %75) #5 | |
%call575 = call %union.rec* @DbCreate(%union.rec* noundef %call574) #5 | |
store %union.rec* %call575, %union.rec** @NewCrossDb, align 8, !tbaa !8 | |
%76 = load %union.rec*, %union.rec** @cross_name, align 8, !tbaa !8 | |
%77 = load i32, i32* @InMemoryDbIndexes, align 4, !tbaa !4 | |
%call576 = call %union.rec* @DbLoad(%union.rec* noundef %76, i32 noundef 0, i32 noundef 0, %union.rec* noundef null, i32 noundef %77) #5 | |
br label %if.end578 | |
if.else577: ; preds = %for.end568 | |
store %union.rec* null, %union.rec** @NewCrossDb, align 8, !tbaa !8 | |
br label %if.end578 | |
if.end578: ; preds = %if.else577, %if.then570 | |
%storemerge = phi %union.rec* [ null, %if.else577 ], [ %call576, %if.then570 ] | |
store %union.rec* %storemerge, %union.rec** @OldCrossDb, align 8, !tbaa !8 | |
call void @FlattenUses() #5 | |
%78 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
call void @TransferInit(%union.rec* noundef %78) #5 | |
br label %if.end580 | |
if.end580: ; preds = %if.end578, %if.end183, %if.end172 | |
%79 = bitcast %union.rec** %t to %struct.word_type** | |
%cmp6368 = icmp ne %union.rec* %encl, null | |
%80 = getelementptr inbounds %union.rec, %union.rec* %encl, i64 0, i32 0, i32 2 | |
%os266382 = bitcast %union.SECOND_UNION* %80 to %struct.anon.5* | |
%ouses_galley = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os266382, i64 0, i32 1 | |
%81 = bitcast [3 x i8]* %ouses_galley to i24* | |
%tobool7079.not = icmp eq i32 %transfer_allowed, 0 | |
%82 = bitcast %union.rec** %env to %struct.word_type** | |
%83 = bitcast %union.rec** %t to %struct.closure_type** | |
br label %for.cond581 | |
for.cond581: ; preds = %for.cond581.backedge, %if.end580 | |
%scope_count.promoted10377 = phi i32 [ undef, %if.end580 ], [ %scope_count.promoted10377.be, %for.cond581.backedge ] | |
%obj_prev.1 = phi i32 [ 0, %if.end580 ], [ %obj_prev.1.be, %for.cond581.backedge ] | |
%84 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%85 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 1 | |
%otype585 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %85, i64 0, i32 0, i32 0 | |
%86 = load i8, i8* %otype585, align 8, !tbaa !10 | |
%87 = bitcast %union.rec* %84 to %struct.word_type* | |
switch i8 %86, label %sw.default [ | |
i8 11, label %sw.bb | |
i8 12, label %sw.bb827 | |
i8 19, label %for.cond1028.preheader | |
i8 18, label %for.cond1028.preheader | |
i8 17, label %for.cond1028.preheader | |
i8 6, label %sw.bb1810 | |
i8 7, label %sw.bb1810 | |
i8 5, label %sw.bb1810 | |
i8 4, label %sw.bb1810 | |
i8 20, label %sw.bb1810 | |
i8 21, label %sw.bb1810 | |
i8 22, label %sw.bb1810 | |
i8 23, label %sw.bb1810 | |
i8 24, label %sw.bb1810 | |
i8 25, label %sw.bb1810 | |
i8 26, label %sw.bb1810 | |
i8 27, label %sw.bb1810 | |
i8 28, label %sw.bb1810 | |
i8 29, label %sw.bb1810 | |
i8 30, label %sw.bb1810 | |
i8 31, label %sw.bb1810 | |
i8 32, label %sw.bb1810 | |
i8 33, label %sw.bb1810 | |
i8 34, label %sw.bb1810 | |
i8 35, label %sw.bb1810 | |
i8 36, label %sw.bb1810 | |
i8 37, label %sw.bb1810 | |
i8 38, label %sw.bb1810 | |
i8 39, label %sw.bb1810 | |
i8 40, label %sw.bb1810 | |
i8 41, label %sw.bb1810 | |
i8 44, label %sw.bb1810 | |
i8 42, label %sw.bb1810 | |
i8 43, label %sw.bb1810 | |
i8 45, label %sw.bb1810 | |
i8 46, label %sw.bb1810 | |
i8 47, label %sw.bb1810 | |
i8 48, label %sw.bb1810 | |
i8 49, label %sw.bb1810 | |
i8 50, label %sw.bb1810 | |
i8 51, label %sw.bb1810 | |
i8 52, label %sw.bb1810 | |
i8 55, label %sw.bb1810 | |
i8 56, label %sw.bb1810 | |
i8 58, label %sw.bb1810 | |
i8 59, label %sw.bb1810 | |
i8 60, label %sw.bb1810 | |
i8 61, label %sw.bb1810 | |
i8 62, label %sw.bb1810 | |
i8 63, label %sw.bb1810 | |
i8 64, label %sw.bb1810 | |
i8 65, label %sw.bb1810 | |
i8 66, label %sw.bb1810 | |
i8 67, label %sw.bb1810 | |
i8 68, label %sw.bb1810 | |
i8 69, label %sw.bb1810 | |
i8 70, label %sw.bb1810 | |
i8 71, label %sw.bb1810 | |
i8 72, label %sw.bb1810 | |
i8 73, label %sw.bb1810 | |
i8 74, label %sw.bb1810 | |
i8 75, label %sw.bb1810 | |
i8 76, label %sw.bb1810 | |
i8 77, label %sw.bb1810 | |
i8 78, label %sw.bb1810 | |
i8 93, label %sw.bb1810 | |
i8 94, label %sw.bb1810 | |
i8 95, label %sw.bb1810 | |
i8 96, label %sw.bb1810 | |
i8 97, label %sw.bb1810 | |
i8 98, label %sw.bb1810 | |
i8 99, label %sw.bb1810 | |
i8 53, label %sw.bb2095 | |
i8 54, label %sw.bb2095 | |
i8 79, label %sw.bb2831 | |
i8 80, label %sw.bb2831 | |
i8 111, label %sw.bb3118 | |
i8 104, label %sw.bb3123 | |
i8 102, label %sw.bb3138 | |
i8 105, label %sw.bb3338 | |
i8 103, label %for.cond3655 | |
i8 106, label %sw.bb3730 | |
i8 107, label %sw.bb3730 | |
i8 114, label %sw.bb3730 | |
i8 115, label %sw.bb3730 | |
i8 116, label %sw.bb3730 | |
i8 117, label %sw.bb3730 | |
i8 82, label %sw.bb3738 | |
i8 83, label %sw.bb3939 | |
i8 84, label %sw.bb4190 | |
i8 85, label %sw.bb4443 | |
i8 86, label %sw.bb4726 | |
i8 87, label %sw.bb5079 | |
i8 90, label %sw.bb5329 | |
i8 89, label %sw.bb5754 | |
i8 2, label %sw.bb5808 | |
i8 92, label %for.cond8785 | |
] | |
for.cond1028.preheader: ; preds = %for.cond581, %for.cond581, %for.cond581 | |
br label %for.cond1028 | |
sw.bb: ; preds = %for.cond581 | |
%ostring588 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 4 | |
%arrayidx589 = bitcast %union.FOURTH_UNION* %ostring588 to i8* | |
%88 = load i8, i8* %arrayidx589, align 8, !tbaa !10 | |
%cmp591 = icmp eq i8 %88, 64 | |
br i1 %cmp591, label %land.lhs.true593, label %if.end627 | |
land.lhs.true593: ; preds = %sw.bb | |
%cmp594.not = icmp eq i32 %obj_prev.1, 1 | |
br i1 %cmp594.not, label %lor.lhs.false596, label %if.then610 | |
lor.lhs.false596: ; preds = %land.lhs.true593 | |
%89 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 2 | |
%os21599 = bitcast %union.SECOND_UNION* %89 to %struct.anon.0* | |
%ovspace600 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21599, i64 0, i32 2 | |
%90 = load i8, i8* %ovspace600, align 2, !tbaa !10 | |
%conv601 = zext i8 %90 to i32 | |
%ohspace605 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21599, i64 0, i32 1 | |
%91 = load i8, i8* %ohspace605, align 1, !tbaa !10 | |
%conv606 = zext i8 %91 to i32 | |
%add607 = sub nsw i32 0, %conv606 | |
%cmp608.not = icmp eq i32 %conv601, %add607 | |
br i1 %cmp608.not, label %if.then629, label %if.then610 | |
if.then610: ; preds = %lor.lhs.false596, %land.lhs.true593 | |
%92 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 1, i32 0 | |
%arraydecay616 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 4 | |
%call617 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 20, i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.24, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %92, %union.FOURTH_UNION* noundef nonnull %arraydecay616) #5 | |
%93 = load i32, i32* @unknown_count, align 4, !tbaa !4 | |
%inc618 = add nsw i32 %93, 1 | |
store i32 %inc618, i32* @unknown_count, align 4, !tbaa !4 | |
%cmp619 = icmp sgt i32 %93, 24 | |
br i1 %cmp619, label %if.then621, label %if.end627 | |
if.then621: ; preds = %if.then610 | |
%94 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos624 = getelementptr inbounds %struct.word_type, %struct.word_type* %94, i64 0, i32 1, i32 0 | |
%call625 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 21, i8* noundef getelementptr inbounds ([52 x i8], [52 x i8]* @.str.25, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos624, i8* noundef getelementptr inbounds ([12 x i8], [12 x i8]* @.str.26, i64 0, i64 0)) #5 | |
br label %if.end627 | |
if.end627: ; preds = %if.then621, %if.then610, %sw.bb | |
%tobool628.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool628.not, label %if.end810, label %if.end627.if.then629_crit_edge | |
if.end627.if.then629_crit_edge: ; preds = %if.end627 | |
%.pre10495 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
br label %if.then629 | |
if.then629: ; preds = %if.end627.if.then629_crit_edge, %lor.lhs.false596 | |
%95 = phi %struct.word_type* [ %.pre10495, %if.end627.if.then629_crit_edge ], [ %87, %lor.lhs.false596 ] | |
%ou2633 = getelementptr inbounds %struct.word_type, %struct.word_type* %95, i64 0, i32 2 | |
%os21634 = bitcast %union.SECOND_UNION* %ou2633 to %struct.anon.0* | |
%ohspace635 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21634, i64 0, i32 1 | |
%96 = load i8, i8* %ohspace635, align 1, !tbaa !10 | |
%conv636 = zext i8 %96 to i32 | |
%ovspace640 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21634, i64 0, i32 2 | |
%97 = load i8, i8* %ovspace640, align 2, !tbaa !10 | |
%conv641 = zext i8 %97 to i32 | |
%add642 = sub nsw i32 0, %conv641 | |
%cmp643.not = icmp eq i32 %conv636, %add642 | |
br i1 %cmp643.not, label %if.else646, label %land.rhs663.preheader | |
if.else646: ; preds = %if.then629 | |
%otype650 = getelementptr inbounds %struct.word_type, %struct.word_type* %95, i64 0, i32 1, i32 0, i32 0 | |
%98 = load i8, i8* %otype650, align 8, !tbaa !10 | |
%cmp652 = icmp eq i8 %98, 102 | |
%cmp655 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9197 = select i1 %cmp652, i1 true, i1 %cmp655 | |
%. = select i1 %or.cond9197, i8 7, i8 103 | |
br label %land.rhs663.preheader | |
land.rhs663.preheader: ; preds = %if.else646, %if.then629 | |
%typ630.0 = phi i32 [ 100, %if.then629 ], [ 101, %if.else646 ] | |
%prec631.0 = phi i8 [ 7, %if.then629 ], [ %., %if.else646 ] | |
br label %land.rhs663 | |
land.rhs663: ; preds = %while.body674, %land.rhs663.preheader | |
%99 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom664 = sext i32 %99 to i64 | |
%arrayidx665 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom664 | |
%100 = bitcast %union.rec** %arrayidx665 to %struct.word_type** | |
%101 = load %struct.word_type*, %struct.word_type** %100, align 8, !tbaa !8 | |
%ou2667 = getelementptr inbounds %struct.word_type, %struct.word_type* %101, i64 0, i32 2 | |
%oprecedence669 = bitcast %union.SECOND_UNION* %ou2667 to i8* | |
%102 = load i8, i8* %oprecedence669, align 8, !tbaa !10 | |
%cmp671.not = icmp ugt i8 %prec631.0, %102 | |
br i1 %cmp671.not, label %if.then678, label %while.body674 | |
while.body674: ; preds = %land.rhs663 | |
%call675 = call fastcc i32 @Reduce() | |
%tobool662.not = icmp eq i32 %call675, 0 | |
br i1 %tobool662.not, label %if.end810, label %land.rhs663, !llvm.loop !11 | |
if.then678: ; preds = %land.rhs663 | |
%103 = zext i32 %typ630.0 to i64 | |
%arrayidx680 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %103 | |
%104 = load i8, i8* %arrayidx680, align 1, !tbaa !10 | |
%conv681 = zext i8 %104 to i32 | |
store i32 %conv681, i32* @zz_size, align 4, !tbaa !4 | |
%105 = zext i8 %104 to i64 | |
%arrayidx689 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %105 | |
%106 = load %union.rec*, %union.rec** %arrayidx689, align 8, !tbaa !8 | |
%cmp690 = icmp eq %union.rec* %106, null | |
br i1 %cmp690, label %if.then692, label %if.else694 | |
if.then692: ; preds = %if.then678 | |
%107 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call693 = call %union.rec* @GetMemory(i32 noundef %conv681, %struct.FILE_POS* noundef %107) #5 | |
store %union.rec* %call693, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10496 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end704 | |
if.else694: ; preds = %if.then678 | |
store %union.rec* %106, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred700 = getelementptr inbounds %union.rec, %union.rec* %106, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%108 = load %union.rec*, %union.rec** %opred700, align 8, !tbaa !10 | |
store %union.rec* %108, %union.rec** %arrayidx689, align 8, !tbaa !8 | |
br label %if.end704 | |
if.end704: ; preds = %if.else694, %if.then692 | |
%109 = phi i32 [ %.pre10496, %if.then692 ], [ %99, %if.else694 ] | |
%.in10544 = phi %union.rec* [ %call693, %if.then692 ], [ %106, %if.else694 ] | |
%conv705 = trunc i32 %typ630.0 to i8 | |
%110 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv705, i8* %110, align 8, !tbaa !10 | |
%111 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10544, %union.rec** %111, align 8, !tbaa !10 | |
%112 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10544, %union.rec** %112, align 8, !tbaa !10 | |
%113 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10544, %union.rec** %113, align 8, !tbaa !10 | |
%114 = getelementptr %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10544, %union.rec** %114, align 8, !tbaa !10 | |
%115 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 2 | |
%os21729 = bitcast %union.SECOND_UNION* %115 to %struct.anon.0* | |
%oprecedence730 = bitcast %union.SECOND_UNION* %115 to i8* | |
store i8 %prec631.0, i8* %oprecedence730, align 8, !tbaa !10 | |
%116 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou2732 = getelementptr inbounds %struct.word_type, %struct.word_type* %116, i64 0, i32 2 | |
%os21733 = bitcast %union.SECOND_UNION* %ou2732 to %struct.anon.0* | |
%ovspace734 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21733, i64 0, i32 2 | |
%117 = load i8, i8* %ovspace734, align 2, !tbaa !10 | |
%ovspace738 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21729, i64 0, i32 2 | |
store i8 %117, i8* %ovspace738, align 2, !tbaa !10 | |
%ohspace742 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21733, i64 0, i32 1 | |
%118 = load i8, i8* %ohspace742, align 1, !tbaa !10 | |
%ohspace746 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21729, i64 0, i32 1 | |
store i8 %118, i8* %ohspace746, align 1, !tbaa !10 | |
%os5747 = bitcast %union.rec* %.in10544 to %struct.gapobj_type* | |
%119 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os5747, i64 0, i32 3, i32 0 | |
%bf.load749 = load i16, i16* %119, align 4 | |
%bf.clear755 = and i16 %bf.load749, -769 | |
%bf.set756 = or i16 %bf.clear755, 512 | |
store i16 %bf.set756, i16* %119, align 4 | |
%ofile_num760 = getelementptr inbounds %struct.word_type, %struct.word_type* %116, i64 0, i32 1, i32 0, i32 2 | |
%120 = load i16, i16* %ofile_num760, align 2, !tbaa !10 | |
%121 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %120, i16* %121, align 2, !tbaa !10 | |
%oline_num768 = getelementptr inbounds %struct.word_type, %struct.word_type* %116, i64 0, i32 1, i32 0, i32 3 | |
%bf.load769 = load i32, i32* %oline_num768, align 4 | |
%bf.clear770 = and i32 %bf.load769, 1048575 | |
%122 = getelementptr inbounds %union.rec, %union.rec* %.in10544, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load775 = load i32, i32* %122, align 4 | |
%bf.clear777 = and i32 %bf.load775, -1048576 | |
%bf.set778 = or i32 %bf.clear777, %bf.clear770 | |
store i32 %bf.set778, i32* %122, align 4 | |
%bf.load783 = load i32, i32* %oline_num768, align 4 | |
%bf.lshr784 = and i32 %bf.load783, -1048576 | |
%bf.set793 = or i32 %bf.lshr784, %bf.clear770 | |
store i32 %bf.set793, i32* %122, align 4 | |
%inc794 = add nsw i32 %109, 1 | |
store i32 %inc794, i32* @ttop, align 4, !tbaa !4 | |
%cmp795 = icmp slt i32 %109, 99 | |
br i1 %cmp795, label %if.then797, label %if.else800 | |
if.then797: ; preds = %if.end704 | |
%idxprom798 = sext i32 %inc794 to i64 | |
%arrayidx799 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom798 | |
store %union.rec* %.in10544, %union.rec** %arrayidx799, align 8, !tbaa !8 | |
br label %if.end810 | |
if.else800: ; preds = %if.end704 | |
%idxprom80210217 = zext i32 %109 to i64 | |
%arrayidx803 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom80210217 | |
%123 = bitcast %union.rec** %arrayidx803 to %struct.word_type** | |
%124 = load %struct.word_type*, %struct.word_type** %123, align 8, !tbaa !8 | |
%ofpos806 = getelementptr inbounds %struct.word_type, %struct.word_type* %124, i64 0, i32 1, i32 0 | |
%call807 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos806) #5 | |
br label %if.end810 | |
if.end810: ; preds = %if.else800, %if.then797, %while.body674, %if.end627 | |
%125 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %125, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%126 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc811 = add nsw i32 %126, 1 | |
store i32 %inc811, i32* @otop, align 4, !tbaa !4 | |
%cmp812 = icmp slt i32 %126, 99 | |
br i1 %cmp812, label %if.then814, label %if.else817 | |
if.then814: ; preds = %if.end810 | |
%idxprom815 = sext i32 %inc811 to i64 | |
%arrayidx816 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom815 | |
store %union.rec* %125, %union.rec** %arrayidx816, align 8, !tbaa !8 | |
br label %if.end825 | |
if.else817: ; preds = %if.end810 | |
%idxprom81910216 = zext i32 %126 to i64 | |
%arrayidx820 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom81910216 | |
%127 = bitcast %union.rec** %arrayidx820 to %struct.word_type** | |
%128 = load %struct.word_type*, %struct.word_type** %127, align 8, !tbaa !8 | |
%ofpos823 = getelementptr inbounds %struct.word_type, %struct.word_type* %128, i64 0, i32 1, i32 0 | |
%call824 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos823) #5 | |
br label %if.end825 | |
if.end825: ; preds = %if.else817, %if.then814 | |
%call826 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call826, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb827: ; preds = %for.cond581 | |
%tobool828.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool828.not, label %if.end1010, label %if.then829 | |
if.then829: ; preds = %sw.bb827 | |
%129 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 2 | |
%os21834 = bitcast %union.SECOND_UNION* %129 to %struct.anon.0* | |
%ohspace835 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21834, i64 0, i32 1 | |
%130 = load i8, i8* %ohspace835, align 1, !tbaa !10 | |
%conv836 = zext i8 %130 to i32 | |
%ovspace840 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21834, i64 0, i32 2 | |
%131 = load i8, i8* %ovspace840, align 2, !tbaa !10 | |
%conv841 = zext i8 %131 to i32 | |
%add842 = sub nsw i32 0, %conv841 | |
%cmp843.not = icmp eq i32 %conv836, %add842 | |
%cmp855 = icmp eq i32 %obj_prev.1, 2 | |
%typ830.0 = select i1 %cmp843.not, i32 101, i32 100 | |
%132 = select i1 %cmp855, i8 7, i8 103 | |
%133 = select i1 %cmp843.not, i8 %132, i8 7 | |
br label %land.rhs863 | |
land.rhs863: ; preds = %while.body874, %if.then829 | |
%134 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom864 = sext i32 %134 to i64 | |
%arrayidx865 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom864 | |
%135 = bitcast %union.rec** %arrayidx865 to %struct.word_type** | |
%136 = load %struct.word_type*, %struct.word_type** %135, align 8, !tbaa !8 | |
%ou2867 = getelementptr inbounds %struct.word_type, %struct.word_type* %136, i64 0, i32 2 | |
%oprecedence869 = bitcast %union.SECOND_UNION* %ou2867 to i8* | |
%137 = load i8, i8* %oprecedence869, align 8, !tbaa !10 | |
%cmp871.not = icmp ugt i8 %133, %137 | |
br i1 %cmp871.not, label %if.then878, label %while.body874 | |
while.body874: ; preds = %land.rhs863 | |
%call875 = call fastcc i32 @Reduce() | |
%tobool862.not = icmp eq i32 %call875, 0 | |
br i1 %tobool862.not, label %if.end1010, label %land.rhs863, !llvm.loop !13 | |
if.then878: ; preds = %land.rhs863 | |
%138 = zext i32 %typ830.0 to i64 | |
%arrayidx880 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %138 | |
%139 = load i8, i8* %arrayidx880, align 1, !tbaa !10 | |
%conv881 = zext i8 %139 to i32 | |
store i32 %conv881, i32* @zz_size, align 4, !tbaa !4 | |
%140 = zext i8 %139 to i64 | |
%arrayidx889 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %140 | |
%141 = load %union.rec*, %union.rec** %arrayidx889, align 8, !tbaa !8 | |
%cmp890 = icmp eq %union.rec* %141, null | |
br i1 %cmp890, label %if.then892, label %if.else894 | |
if.then892: ; preds = %if.then878 | |
%142 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call893 = call %union.rec* @GetMemory(i32 noundef %conv881, %struct.FILE_POS* noundef %142) #5 | |
store %union.rec* %call893, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10494 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end904 | |
if.else894: ; preds = %if.then878 | |
store %union.rec* %141, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred900 = getelementptr inbounds %union.rec, %union.rec* %141, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%143 = load %union.rec*, %union.rec** %opred900, align 8, !tbaa !10 | |
store %union.rec* %143, %union.rec** %arrayidx889, align 8, !tbaa !8 | |
br label %if.end904 | |
if.end904: ; preds = %if.else894, %if.then892 | |
%144 = phi i32 [ %.pre10494, %if.then892 ], [ %134, %if.else894 ] | |
%.in10542 = phi %union.rec* [ %call893, %if.then892 ], [ %141, %if.else894 ] | |
%conv905 = trunc i32 %typ830.0 to i8 | |
%145 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv905, i8* %145, align 8, !tbaa !10 | |
%146 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10542, %union.rec** %146, align 8, !tbaa !10 | |
%147 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10542, %union.rec** %147, align 8, !tbaa !10 | |
%148 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10542, %union.rec** %148, align 8, !tbaa !10 | |
%149 = getelementptr %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10542, %union.rec** %149, align 8, !tbaa !10 | |
%150 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 2 | |
%os21929 = bitcast %union.SECOND_UNION* %150 to %struct.anon.0* | |
%oprecedence930 = bitcast %union.SECOND_UNION* %150 to i8* | |
store i8 %133, i8* %oprecedence930, align 8, !tbaa !10 | |
%151 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou2932 = getelementptr inbounds %struct.word_type, %struct.word_type* %151, i64 0, i32 2 | |
%os21933 = bitcast %union.SECOND_UNION* %ou2932 to %struct.anon.0* | |
%ovspace934 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21933, i64 0, i32 2 | |
%152 = load i8, i8* %ovspace934, align 2, !tbaa !10 | |
%ovspace938 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21929, i64 0, i32 2 | |
store i8 %152, i8* %ovspace938, align 2, !tbaa !10 | |
%ohspace942 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21933, i64 0, i32 1 | |
%153 = load i8, i8* %ohspace942, align 1, !tbaa !10 | |
%ohspace946 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os21929, i64 0, i32 1 | |
store i8 %153, i8* %ohspace946, align 1, !tbaa !10 | |
%os5947 = bitcast %union.rec* %.in10542 to %struct.gapobj_type* | |
%154 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os5947, i64 0, i32 3, i32 0 | |
%bf.load949 = load i16, i16* %154, align 4 | |
%bf.clear955 = and i16 %bf.load949, -769 | |
%bf.set956 = or i16 %bf.clear955, 512 | |
store i16 %bf.set956, i16* %154, align 4 | |
%ofile_num960 = getelementptr inbounds %struct.word_type, %struct.word_type* %151, i64 0, i32 1, i32 0, i32 2 | |
%155 = load i16, i16* %ofile_num960, align 2, !tbaa !10 | |
%156 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %155, i16* %156, align 2, !tbaa !10 | |
%oline_num968 = getelementptr inbounds %struct.word_type, %struct.word_type* %151, i64 0, i32 1, i32 0, i32 3 | |
%bf.load969 = load i32, i32* %oline_num968, align 4 | |
%bf.clear970 = and i32 %bf.load969, 1048575 | |
%157 = getelementptr inbounds %union.rec, %union.rec* %.in10542, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load975 = load i32, i32* %157, align 4 | |
%bf.clear977 = and i32 %bf.load975, -1048576 | |
%bf.set978 = or i32 %bf.clear977, %bf.clear970 | |
store i32 %bf.set978, i32* %157, align 4 | |
%bf.load983 = load i32, i32* %oline_num968, align 4 | |
%bf.lshr984 = and i32 %bf.load983, -1048576 | |
%bf.set993 = or i32 %bf.lshr984, %bf.clear970 | |
store i32 %bf.set993, i32* %157, align 4 | |
%inc994 = add nsw i32 %144, 1 | |
store i32 %inc994, i32* @ttop, align 4, !tbaa !4 | |
%cmp995 = icmp slt i32 %144, 99 | |
br i1 %cmp995, label %if.then997, label %if.else1000 | |
if.then997: ; preds = %if.end904 | |
%idxprom998 = sext i32 %inc994 to i64 | |
%arrayidx999 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom998 | |
store %union.rec* %.in10542, %union.rec** %arrayidx999, align 8, !tbaa !8 | |
br label %if.end1010 | |
if.else1000: ; preds = %if.end904 | |
%idxprom100210220 = zext i32 %144 to i64 | |
%arrayidx1003 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom100210220 | |
%158 = bitcast %union.rec** %arrayidx1003 to %struct.word_type** | |
%159 = load %struct.word_type*, %struct.word_type** %158, align 8, !tbaa !8 | |
%ofpos1006 = getelementptr inbounds %struct.word_type, %struct.word_type* %159, i64 0, i32 1, i32 0 | |
%call1007 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1006) #5 | |
br label %if.end1010 | |
if.end1010: ; preds = %if.else1000, %if.then997, %while.body874, %sw.bb827 | |
%160 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %160, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%161 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc1011 = add nsw i32 %161, 1 | |
store i32 %inc1011, i32* @otop, align 4, !tbaa !4 | |
%cmp1012 = icmp slt i32 %161, 99 | |
br i1 %cmp1012, label %if.then1014, label %if.else1017 | |
if.then1014: ; preds = %if.end1010 | |
%idxprom1015 = sext i32 %inc1011 to i64 | |
%arrayidx1016 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom1015 | |
store %union.rec* %160, %union.rec** %arrayidx1016, align 8, !tbaa !8 | |
br label %if.end1025 | |
if.else1017: ; preds = %if.end1010 | |
%idxprom101910219 = zext i32 %161 to i64 | |
%arrayidx1020 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom101910219 | |
%162 = bitcast %union.rec** %arrayidx1020 to %struct.word_type** | |
%163 = load %struct.word_type*, %struct.word_type** %162, align 8, !tbaa !8 | |
%ofpos1023 = getelementptr inbounds %struct.word_type, %struct.word_type* %163, i64 0, i32 1, i32 0 | |
%call1024 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1023) #5 | |
br label %if.end1025 | |
if.end1025: ; preds = %if.else1017, %if.then1014 | |
%call1026 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call1026, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
for.cond1028: ; preds = %for.cond1028.backedge, %for.cond1028.preheader | |
%obj_prev.4 = phi i32 [ %obj_prev.1, %for.cond1028.preheader ], [ %obj_prev.4.be, %for.cond1028.backedge ] | |
%tobool1029.not = icmp eq i32 %obj_prev.4, 0 | |
br i1 %tobool1029.not, label %if.then1030, label %if.else1050 | |
if.then1030: ; preds = %for.cond1028 | |
%164 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos1033 = getelementptr inbounds %struct.word_type, %struct.word_type* %164, i64 0, i32 1, i32 0 | |
%call1034 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos1033) #5 | |
store %union.rec* %call1034, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%165 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc1035 = add nsw i32 %165, 1 | |
store i32 %inc1035, i32* @otop, align 4, !tbaa !4 | |
%cmp1036 = icmp slt i32 %165, 99 | |
br i1 %cmp1036, label %if.then1038, label %if.else1041 | |
if.then1038: ; preds = %if.then1030 | |
%idxprom1039 = sext i32 %inc1035 to i64 | |
%arrayidx1040 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom1039 | |
store %union.rec* %call1034, %union.rec** %arrayidx1040, align 8, !tbaa !8 | |
br label %for.cond1028.backedge | |
for.cond1028.backedge: ; preds = %if.then1066, %if.else1041, %if.then1038 | |
%obj_prev.4.be = phi i32 [ %call1067, %if.then1066 ], [ 1, %if.else1041 ], [ 1, %if.then1038 ] | |
br label %for.cond1028 | |
if.else1041: ; preds = %if.then1030 | |
%idxprom104310222 = zext i32 %165 to i64 | |
%arrayidx1044 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom104310222 | |
%166 = bitcast %union.rec** %arrayidx1044 to %struct.word_type** | |
%167 = load %struct.word_type*, %struct.word_type** %166, align 8, !tbaa !8 | |
%ofpos1047 = getelementptr inbounds %struct.word_type, %struct.word_type* %167, i64 0, i32 1, i32 0 | |
%call1048 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1047) #5 | |
br label %for.cond1028.backedge | |
if.else1050: ; preds = %for.cond1028 | |
%168 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom1051 = sext i32 %168 to i64 | |
%arrayidx1052 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom1051 | |
%169 = bitcast %union.rec** %arrayidx1052 to %struct.word_type** | |
%170 = load %struct.word_type*, %struct.word_type** %169, align 8, !tbaa !8 | |
%ou21054 = getelementptr inbounds %struct.word_type, %struct.word_type* %170, i64 0, i32 2 | |
%oprecedence1056 = bitcast %union.SECOND_UNION* %ou21054 to i8* | |
%171 = load i8, i8* %oprecedence1056, align 8, !tbaa !10 | |
%172 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou21059 = getelementptr inbounds %struct.word_type, %struct.word_type* %172, i64 0, i32 2 | |
%oprecedence1061 = bitcast %union.SECOND_UNION* %ou21059 to i8* | |
%173 = load i8, i8* %oprecedence1061, align 8, !tbaa !10 | |
%cmp1064.not = icmp ult i8 %171, %173 | |
br i1 %cmp1064.not, label %for.end1077, label %if.then1066 | |
if.then1066: ; preds = %if.else1050 | |
%call1067 = call fastcc i32 @Reduce() | |
%174 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp1068 = icmp eq i32 %174, %4 | |
br i1 %cmp1068, label %if.then1070, label %for.cond1028.backedge | |
if.then1070: ; preds = %if.then1066 | |
%175 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
for.end1077: ; preds = %if.else1050 | |
%inc1078 = add nsw i32 %168, 1 | |
store i32 %inc1078, i32* @ttop, align 4, !tbaa !4 | |
%cmp1079 = icmp slt i32 %168, 99 | |
br i1 %cmp1079, label %if.then1081, label %if.else1084 | |
if.then1081: ; preds = %for.end1077 | |
%idxprom1082 = sext i32 %inc1078 to i64 | |
%arrayidx1083 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom1082 | |
%176 = bitcast %union.rec** %arrayidx1083 to %struct.word_type** | |
store %struct.word_type* %172, %struct.word_type** %176, align 8, !tbaa !8 | |
br label %if.end1092 | |
if.else1084: ; preds = %for.end1077 | |
%ofpos1090 = getelementptr inbounds %struct.word_type, %struct.word_type* %170, i64 0, i32 1, i32 0 | |
%call1091 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1090) #5 | |
br label %if.end1092 | |
if.end1092: ; preds = %if.else1084, %if.then1081 | |
br i1 %tobool7079.not, label %if.end1222, label %land.lhs.true1094 | |
land.lhs.true1094: ; preds = %if.end1092 | |
%177 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%otype1098 = getelementptr inbounds %union.rec, %union.rec* %177, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%178 = load i8, i8* %otype1098, align 8, !tbaa !10 | |
%cmp1100 = icmp eq i8 %178, 19 | |
br i1 %cmp1100, label %land.lhs.true1102, label %if.end1222 | |
land.lhs.true1102: ; preds = %land.lhs.true1094 | |
%179 = getelementptr inbounds %union.rec, %union.rec* %177, i64 0, i32 0, i32 5 | |
%180 = bitcast %union.rec** %179 to %struct.word_type** | |
%181 = load %struct.word_type*, %struct.word_type** %180, align 8, !tbaa !10 | |
%ou21106 = getelementptr inbounds %struct.word_type, %struct.word_type* %181, i64 0, i32 2 | |
%os26 = bitcast %union.SECOND_UNION* %ou21106 to %struct.anon.5* | |
%ohas_join = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os26, i64 0, i32 1 | |
%182 = bitcast [3 x i8]* %ohas_join to i24* | |
%bf.load1107 = load i24, i24* %182, align 1 | |
%183 = and i24 %bf.load1107, 262144 | |
%tobool1110.not = icmp eq i24 %183, 0 | |
br i1 %tobool1110.not, label %land.lhs.true1111, label %if.end1222 | |
land.lhs.true1111: ; preds = %land.lhs.true1102 | |
%184 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%sub1112 = add nsw i32 %184, -2 | |
%idxprom1113 = sext i32 %sub1112 to i64 | |
%arrayidx1114 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom1113 | |
%185 = bitcast %union.rec** %arrayidx1114 to %struct.word_type** | |
%186 = load %struct.word_type*, %struct.word_type** %185, align 8, !tbaa !8 | |
%otype1118 = getelementptr inbounds %struct.word_type, %struct.word_type* %186, i64 0, i32 1, i32 0, i32 0 | |
%187 = load i8, i8* %otype1118, align 8, !tbaa !10 | |
%cmp1120 = icmp eq i8 %187, 110 | |
br i1 %cmp1120, label %if.then1122, label %if.end1222 | |
if.then1122: ; preds = %land.lhs.true1111 | |
%188 = load i32, i32* @otop, align 4, !tbaa !4 | |
%dec1123 = add nsw i32 %188, -1 | |
store i32 %dec1123, i32* @otop, align 4, !tbaa !4 | |
%idxprom1124 = sext i32 %188 to i64 | |
%arrayidx1125 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom1124 | |
%189 = load %union.rec*, %union.rec** %arrayidx1125, align 8, !tbaa !8 | |
call void @TransferComponent(%union.rec* noundef %189) #5 | |
%190 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 5), align 1, !tbaa !10 | |
%conv1126 = zext i8 %190 to i32 | |
store i32 %conv1126, i32* @zz_size, align 4, !tbaa !4 | |
%191 = zext i8 %190 to i64 | |
%arrayidx1134 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %191 | |
%192 = load %union.rec*, %union.rec** %arrayidx1134, align 8, !tbaa !8 | |
%cmp1135 = icmp eq %union.rec* %192, null | |
br i1 %cmp1135, label %if.then1137, label %if.else1139 | |
if.then1137: ; preds = %if.then1122 | |
%193 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call1138 = call %union.rec* @GetMemory(i32 noundef %conv1126, %struct.FILE_POS* noundef %193) #5 | |
br label %if.end1149 | |
if.else1139: ; preds = %if.then1122 | |
store %union.rec* %192, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred1145 = getelementptr inbounds %union.rec, %union.rec* %192, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%194 = load %union.rec*, %union.rec** %opred1145, align 8, !tbaa !10 | |
store %union.rec* %194, %union.rec** %arrayidx1134, align 8, !tbaa !8 | |
br label %if.end1149 | |
if.end1149: ; preds = %if.else1139, %if.then1137 | |
%.in10540 = phi %union.rec* [ %call1138, %if.then1137 ], [ %192, %if.else1139 ] | |
%195 = getelementptr inbounds %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 5, i8* %195, align 8, !tbaa !10 | |
%196 = getelementptr inbounds %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10540, %union.rec** %196, align 8, !tbaa !10 | |
%197 = getelementptr inbounds %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10540, %union.rec** %197, align 8, !tbaa !10 | |
%198 = getelementptr inbounds %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10540, %union.rec** %198, align 8, !tbaa !10 | |
%199 = getelementptr %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10540, %union.rec** %199, align 8, !tbaa !10 | |
%200 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofile_num1173 = getelementptr inbounds %struct.word_type, %struct.word_type* %200, i64 0, i32 1, i32 0, i32 2 | |
%201 = load i16, i16* %ofile_num1173, align 2, !tbaa !10 | |
%202 = getelementptr inbounds %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %201, i16* %202, align 2, !tbaa !10 | |
%oline_num1181 = getelementptr inbounds %struct.word_type, %struct.word_type* %200, i64 0, i32 1, i32 0, i32 3 | |
%bf.load1182 = load i32, i32* %oline_num1181, align 4 | |
%bf.clear1183 = and i32 %bf.load1182, 1048575 | |
%203 = getelementptr inbounds %union.rec, %union.rec* %.in10540, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load1188 = load i32, i32* %203, align 4 | |
%bf.clear1190 = and i32 %bf.load1188, -1048576 | |
%bf.set1191 = or i32 %bf.clear1190, %bf.clear1183 | |
store i32 %bf.set1191, i32* %203, align 4 | |
%bf.load1196 = load i32, i32* %oline_num1181, align 4 | |
%bf.lshr1197 = and i32 %bf.load1196, -1048576 | |
%bf.set1206 = or i32 %bf.lshr1197, %bf.clear1183 | |
store i32 %bf.set1206, i32* %203, align 4 | |
store %union.rec* %.in10540, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%204 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc1207 = add nsw i32 %204, 1 | |
store i32 %inc1207, i32* @otop, align 4, !tbaa !4 | |
%cmp1208 = icmp slt i32 %204, 99 | |
br i1 %cmp1208, label %if.then1210, label %if.else1213 | |
if.then1210: ; preds = %if.end1149 | |
%idxprom1211 = sext i32 %inc1207 to i64 | |
%arrayidx1212 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom1211 | |
store %union.rec* %.in10540, %union.rec** %arrayidx1212, align 8, !tbaa !8 | |
br label %if.end1222 | |
if.else1213: ; preds = %if.end1149 | |
%idxprom121510226 = zext i32 %204 to i64 | |
%arrayidx1216 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom121510226 | |
%205 = bitcast %union.rec** %arrayidx1216 to %struct.word_type** | |
%206 = load %struct.word_type*, %struct.word_type** %205, align 8, !tbaa !8 | |
%ofpos1219 = getelementptr inbounds %struct.word_type, %struct.word_type* %206, i64 0, i32 1, i32 0 | |
%call1220 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1219) #5 | |
br label %if.end1222 | |
if.end1222: ; preds = %if.else1213, %if.then1210, %land.lhs.true1111, %land.lhs.true1102, %land.lhs.true1094, %if.end1092 | |
%207 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 1), align 1, !tbaa !10 | |
%conv1223 = zext i8 %207 to i32 | |
store i32 %conv1223, i32* @zz_size, align 4, !tbaa !4 | |
%208 = zext i8 %207 to i64 | |
%arrayidx1231 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %208 | |
%209 = load %union.rec*, %union.rec** %arrayidx1231, align 8, !tbaa !8 | |
%cmp1232 = icmp eq %union.rec* %209, null | |
br i1 %cmp1232, label %if.then1234, label %if.else1236 | |
if.then1234: ; preds = %if.end1222 | |
%210 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call1235 = call %union.rec* @GetMemory(i32 noundef %conv1223, %struct.FILE_POS* noundef %210) #5 | |
store %union.rec* %call1235, %union.rec** @zz_hold, align 8, !tbaa !8 | |
br label %if.end1246 | |
if.else1236: ; preds = %if.end1222 | |
store %union.rec* %209, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred1242 = getelementptr inbounds %union.rec, %union.rec* %209, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%211 = load %union.rec*, %union.rec** %opred1242, align 8, !tbaa !10 | |
store %union.rec* %211, %union.rec** %arrayidx1231, align 8, !tbaa !8 | |
br label %if.end1246 | |
if.end1246: ; preds = %if.else1236, %if.then1234 | |
%.in10538 = phi %union.rec* [ %call1235, %if.then1234 ], [ %209, %if.else1236 ] | |
%212 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 1, i8* %212, align 8, !tbaa !10 | |
%213 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10538, %union.rec** %213, align 8, !tbaa !10 | |
%214 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10538, %union.rec** %214, align 8, !tbaa !10 | |
%215 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10538, %union.rec** %215, align 8, !tbaa !10 | |
%216 = getelementptr %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10538, %union.rec** %216, align 8, !tbaa !10 | |
%217 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%oactual1268 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %217, i64 0, i32 5 | |
%218 = bitcast %union.rec** %oactual1268 to %struct.word_type** | |
%219 = load %struct.word_type*, %struct.word_type** %218, align 8, !tbaa !10 | |
%ou21270 = getelementptr inbounds %struct.word_type, %struct.word_type* %219, i64 0, i32 2 | |
%os261271 = bitcast %union.SECOND_UNION* %ou21270 to %struct.anon.5* | |
%ohas_mark = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os261271, i64 0, i32 1 | |
%220 = bitcast [3 x i8]* %ohas_mark to i24* | |
%bf.load1272 = load i24, i24* %220, align 1 | |
%os51276 = bitcast %union.rec* %.in10538 to %struct.gapobj_type* | |
%221 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os51276, i64 0, i32 3, i32 0 | |
%bf.load1278 = load i16, i16* %221, align 4 | |
%sh.diff = lshr i24 %bf.load1272, 9 | |
%tr.sh.diff = trunc i24 %sh.diff to i16 | |
%bf.shl1280 = and i16 %tr.sh.diff, 256 | |
%bf.clear1281 = and i16 %bf.load1278, -257 | |
%bf.set1282 = or i16 %bf.shl1280, %bf.clear1281 | |
store i16 %bf.set1282, i16* %221, align 4 | |
%222 = load %struct.word_type*, %struct.word_type** %218, align 8, !tbaa !10 | |
%ou21286 = getelementptr inbounds %struct.word_type, %struct.word_type* %222, i64 0, i32 2 | |
%os261287 = bitcast %union.SECOND_UNION* %ou21286 to %struct.anon.5* | |
%ohas_join1288 = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os261287, i64 0, i32 1 | |
%223 = bitcast [3 x i8]* %ohas_join1288 to i24* | |
%bf.load1289 = load i24, i24* %223, align 1 | |
%sh.diff10132 = lshr i24 %bf.load1289, 9 | |
%tr.sh.diff10133 = trunc i24 %sh.diff10132 to i16 | |
%bf.shl1297 = and i16 %tr.sh.diff10133, 512 | |
%bf.clear1298 = and i16 %bf.set1282, -513 | |
%bf.set1299 = or i16 %bf.shl1297, %bf.clear1298 | |
store i16 %bf.set1299, i16* %221, align 4 | |
%224 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %217, i64 0, i32 2 | |
%os211303 = bitcast %union.SECOND_UNION* %224 to %struct.anon.0* | |
%ohspace1304 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211303, i64 0, i32 1 | |
%225 = load i8, i8* %ohspace1304, align 1, !tbaa !10 | |
%226 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 2 | |
%os211308 = bitcast %union.SECOND_UNION* %226 to %struct.anon.0* | |
%ohspace1309 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211308, i64 0, i32 1 | |
store i8 %225, i8* %ohspace1309, align 1, !tbaa !10 | |
%ovspace1313 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211303, i64 0, i32 2 | |
%227 = load i8, i8* %ovspace1313, align 2, !tbaa !10 | |
%ovspace1317 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211308, i64 0, i32 2 | |
store i8 %227, i8* %ovspace1317, align 2, !tbaa !10 | |
%oprecedence1321 = bitcast %union.SECOND_UNION* %226 to i8* | |
store i8 102, i8* %oprecedence1321, align 8, !tbaa !10 | |
%228 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %217, i64 0, i32 1, i32 0, i32 2 | |
%229 = load i16, i16* %228, align 2, !tbaa !10 | |
%230 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 1, i32 0 | |
%231 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %229, i16* %231, align 2, !tbaa !10 | |
%232 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %217, i64 0, i32 1, i32 0, i32 3 | |
%bf.load1334 = load i32, i32* %232, align 4 | |
%bf.clear1335 = and i32 %bf.load1334, 1048575 | |
%233 = getelementptr inbounds %union.rec, %union.rec* %.in10538, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load1340 = load i32, i32* %233, align 4 | |
%bf.clear1342 = and i32 %bf.load1340, -1048576 | |
%bf.set1343 = or i32 %bf.clear1342, %bf.clear1335 | |
store i32 %bf.set1343, i32* %233, align 4 | |
%bf.load1348 = load i32, i32* %232, align 4 | |
%bf.lshr1349 = and i32 %bf.load1348, -1048576 | |
%bf.set1358 = or i32 %bf.lshr1349, %bf.clear1335 | |
store i32 %bf.set1358, i32* %233, align 4 | |
%234 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc1545 = add nsw i32 %234, 1 | |
store i32 %inc1545, i32* @ttop, align 4, !tbaa !4 | |
%cmp1546 = icmp slt i32 %234, 99 | |
br i1 %cmp1546, label %if.then1548, label %if.else1551 | |
if.then1548: ; preds = %if.end1246 | |
%idxprom1549 = sext i32 %inc1545 to i64 | |
%arrayidx1550 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom1549 | |
store %union.rec* %.in10538, %union.rec** %arrayidx1550, align 8, !tbaa !8 | |
br label %if.end1559 | |
if.else1551: ; preds = %if.end1246 | |
%idxprom155310224 = zext i32 %234 to i64 | |
%arrayidx1554 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom155310224 | |
%235 = bitcast %union.rec** %arrayidx1554 to %struct.word_type** | |
%236 = load %struct.word_type*, %struct.word_type** %235, align 8, !tbaa !8 | |
%ofpos1557 = getelementptr inbounds %struct.word_type, %struct.word_type* %236, i64 0, i32 1, i32 0 | |
%call1558 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1557) #5 | |
br label %if.end1559 | |
if.end1559: ; preds = %if.else1551, %if.then1548 | |
%call1560 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call1560, %union.rec** %t, align 8, !tbaa !8 | |
%237 = getelementptr inbounds %union.rec, %union.rec* %call1560, i64 0, i32 0, i32 2 | |
%os211563 = bitcast %union.SECOND_UNION* %237 to %struct.anon.0* | |
%ohspace1564 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211563, i64 0, i32 1 | |
%238 = load i8, i8* %ohspace1564, align 1, !tbaa !10 | |
%conv1565 = zext i8 %238 to i32 | |
%ovspace1569 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211563, i64 0, i32 2 | |
%239 = load i8, i8* %ovspace1569, align 2, !tbaa !10 | |
%conv1570 = zext i8 %239 to i32 | |
%add1571 = sub nsw i32 0, %conv1570 | |
%cmp1572.not = icmp eq i32 %conv1565, %add1571 | |
br i1 %cmp1572.not, label %for.cond581.backedge, label %if.end1789 | |
if.end1789: ; preds = %if.end1559 | |
%call1793 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %230) #5 | |
store %union.rec* %call1793, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%240 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc1794 = add nsw i32 %240, 1 | |
store i32 %inc1794, i32* @otop, align 4, !tbaa !4 | |
%cmp1795 = icmp slt i32 %240, 99 | |
br i1 %cmp1795, label %if.then1797, label %if.else1800 | |
if.then1797: ; preds = %if.end1789 | |
%idxprom1798 = sext i32 %inc1794 to i64 | |
%arrayidx1799 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom1798 | |
store %union.rec* %call1793, %union.rec** %arrayidx1799, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
if.else1800: ; preds = %if.end1789 | |
%idxprom180210223 = zext i32 %240 to i64 | |
%arrayidx1803 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom180210223 | |
%241 = bitcast %union.rec** %arrayidx1803 to %struct.word_type** | |
%242 = load %struct.word_type*, %struct.word_type** %241, align 8, !tbaa !8 | |
%ofpos1806 = getelementptr inbounds %struct.word_type, %struct.word_type* %242, i64 0, i32 1, i32 0 | |
%call1807 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1806) #5 | |
br label %for.cond581.backedge | |
sw.bb1810: ; preds = %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581 | |
%243 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 5 | |
%244 = bitcast %union.rec** %243 to %struct.word_type** | |
%245 = load %struct.word_type*, %struct.word_type** %244, align 8, !tbaa !10 | |
%ou21814 = getelementptr inbounds %struct.word_type, %struct.word_type* %245, i64 0, i32 2 | |
%os261815 = bitcast %union.SECOND_UNION* %ou21814 to %struct.anon.5* | |
%ohas_lpar = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os261815, i64 0, i32 1 | |
%246 = bitcast [3 x i8]* %ohas_lpar to i24* | |
%bf.load1816 = load i24, i24* %246, align 1 | |
%247 = and i24 %bf.load1816, 4 | |
%tobool1820.not = icmp eq i24 %247, 0 | |
br i1 %tobool1820.not, label %if.else1873, label %for.cond1822 | |
for.cond1822: ; preds = %for.cond1822.backedge, %sw.bb1810 | |
%obj_prev.8 = phi i32 [ %obj_prev.8.be, %for.cond1822.backedge ], [ %obj_prev.1, %sw.bb1810 ] | |
%tobool1823.not = icmp eq i32 %obj_prev.8, 0 | |
br i1 %tobool1823.not, label %if.then1824, label %if.else1844 | |
if.then1824: ; preds = %for.cond1822 | |
%248 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos1827 = getelementptr inbounds %struct.word_type, %struct.word_type* %248, i64 0, i32 1, i32 0 | |
%call1828 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos1827) #5 | |
store %union.rec* %call1828, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%249 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc1829 = add nsw i32 %249, 1 | |
store i32 %inc1829, i32* @otop, align 4, !tbaa !4 | |
%cmp1830 = icmp slt i32 %249, 99 | |
br i1 %cmp1830, label %if.then1832, label %if.else1835 | |
if.then1832: ; preds = %if.then1824 | |
%idxprom1833 = sext i32 %inc1829 to i64 | |
%arrayidx1834 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom1833 | |
store %union.rec* %call1828, %union.rec** %arrayidx1834, align 8, !tbaa !8 | |
br label %for.cond1822.backedge | |
for.cond1822.backedge: ; preds = %if.then1860, %if.else1835, %if.then1832 | |
%obj_prev.8.be = phi i32 [ %call1861, %if.then1860 ], [ 1, %if.else1835 ], [ 1, %if.then1832 ] | |
br label %for.cond1822 | |
if.else1835: ; preds = %if.then1824 | |
%idxprom183710231 = zext i32 %249 to i64 | |
%arrayidx1838 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom183710231 | |
%250 = bitcast %union.rec** %arrayidx1838 to %struct.word_type** | |
%251 = load %struct.word_type*, %struct.word_type** %250, align 8, !tbaa !8 | |
%ofpos1841 = getelementptr inbounds %struct.word_type, %struct.word_type* %251, i64 0, i32 1, i32 0 | |
%call1842 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos1841) #5 | |
br label %for.cond1822.backedge | |
if.else1844: ; preds = %for.cond1822 | |
%252 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom1845 = sext i32 %252 to i64 | |
%arrayidx1846 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom1845 | |
%253 = bitcast %union.rec** %arrayidx1846 to %struct.word_type** | |
%254 = load %struct.word_type*, %struct.word_type** %253, align 8, !tbaa !8 | |
%ou21848 = getelementptr inbounds %struct.word_type, %struct.word_type* %254, i64 0, i32 2 | |
%oprecedence1850 = bitcast %union.SECOND_UNION* %ou21848 to i8* | |
%255 = load i8, i8* %oprecedence1850, align 8, !tbaa !10 | |
%256 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou21853 = getelementptr inbounds %struct.word_type, %struct.word_type* %256, i64 0, i32 2 | |
%oprecedence1855 = bitcast %union.SECOND_UNION* %ou21853 to i8* | |
%257 = load i8, i8* %oprecedence1855, align 8, !tbaa !10 | |
%cmp1858.not.not = icmp ult i8 %257, %255 | |
br i1 %cmp1858.not.not, label %if.then1860, label %if.end2057 | |
if.then1860: ; preds = %if.else1844 | |
%call1861 = call fastcc i32 @Reduce() | |
%258 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp1862 = icmp eq i32 %258, %4 | |
br i1 %cmp1862, label %if.then1864, label %for.cond1822.backedge | |
if.then1864: ; preds = %if.then1860 | |
%259 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
if.else1873: ; preds = %sw.bb1810 | |
%tobool1874.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool1874.not, label %if.end2057, label %if.then1875 | |
if.then1875: ; preds = %if.else1873 | |
%260 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 2 | |
%os211880 = bitcast %union.SECOND_UNION* %260 to %struct.anon.0* | |
%ohspace1881 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211880, i64 0, i32 1 | |
%261 = load i8, i8* %ohspace1881, align 1, !tbaa !10 | |
%conv1882 = zext i8 %261 to i32 | |
%ovspace1886 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211880, i64 0, i32 2 | |
%262 = load i8, i8* %ovspace1886, align 2, !tbaa !10 | |
%conv1887 = zext i8 %262 to i32 | |
%add1888 = sub nsw i32 0, %conv1887 | |
%cmp1889.not = icmp eq i32 %conv1882, %add1888 | |
%cmp1901 = icmp eq i32 %obj_prev.1, 2 | |
%.10141 = select i1 %cmp1901, i8 7, i8 103 | |
%typ1876.0 = select i1 %cmp1889.not, i32 101, i32 100 | |
%prec1877.0 = select i1 %cmp1889.not, i8 %.10141, i8 7 | |
br label %land.rhs1909 | |
land.rhs1909: ; preds = %while.body1920, %if.then1875 | |
%263 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom1910 = sext i32 %263 to i64 | |
%arrayidx1911 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom1910 | |
%264 = bitcast %union.rec** %arrayidx1911 to %struct.word_type** | |
%265 = load %struct.word_type*, %struct.word_type** %264, align 8, !tbaa !8 | |
%ou21913 = getelementptr inbounds %struct.word_type, %struct.word_type* %265, i64 0, i32 2 | |
%oprecedence1915 = bitcast %union.SECOND_UNION* %ou21913 to i8* | |
%266 = load i8, i8* %oprecedence1915, align 8, !tbaa !10 | |
%cmp1917.not = icmp ugt i8 %prec1877.0, %266 | |
br i1 %cmp1917.not, label %if.then1924, label %while.body1920 | |
while.body1920: ; preds = %land.rhs1909 | |
%call1921 = call fastcc i32 @Reduce() | |
%tobool1908.not = icmp eq i32 %call1921, 0 | |
br i1 %tobool1908.not, label %if.end2057, label %land.rhs1909, !llvm.loop !14 | |
if.then1924: ; preds = %land.rhs1909 | |
%267 = zext i32 %typ1876.0 to i64 | |
%arrayidx1926 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %267 | |
%268 = load i8, i8* %arrayidx1926, align 1, !tbaa !10 | |
%conv1927 = zext i8 %268 to i32 | |
store i32 %conv1927, i32* @zz_size, align 4, !tbaa !4 | |
%269 = zext i8 %268 to i64 | |
%arrayidx1935 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %269 | |
%270 = load %union.rec*, %union.rec** %arrayidx1935, align 8, !tbaa !8 | |
%cmp1936 = icmp eq %union.rec* %270, null | |
br i1 %cmp1936, label %if.then1938, label %if.else1940 | |
if.then1938: ; preds = %if.then1924 | |
%271 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call1939 = call %union.rec* @GetMemory(i32 noundef %conv1927, %struct.FILE_POS* noundef %271) #5 | |
store %union.rec* %call1939, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10492 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end1950 | |
if.else1940: ; preds = %if.then1924 | |
store %union.rec* %270, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred1946 = getelementptr inbounds %union.rec, %union.rec* %270, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%272 = load %union.rec*, %union.rec** %opred1946, align 8, !tbaa !10 | |
store %union.rec* %272, %union.rec** %arrayidx1935, align 8, !tbaa !8 | |
br label %if.end1950 | |
if.end1950: ; preds = %if.else1940, %if.then1938 | |
%273 = phi i32 [ %.pre10492, %if.then1938 ], [ %263, %if.else1940 ] | |
%.in10536 = phi %union.rec* [ %call1939, %if.then1938 ], [ %270, %if.else1940 ] | |
%conv1951 = trunc i32 %typ1876.0 to i8 | |
%274 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv1951, i8* %274, align 8, !tbaa !10 | |
%275 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10536, %union.rec** %275, align 8, !tbaa !10 | |
%276 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10536, %union.rec** %276, align 8, !tbaa !10 | |
%277 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10536, %union.rec** %277, align 8, !tbaa !10 | |
%278 = getelementptr %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10536, %union.rec** %278, align 8, !tbaa !10 | |
%279 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 2 | |
%os211975 = bitcast %union.SECOND_UNION* %279 to %struct.anon.0* | |
%oprecedence1976 = bitcast %union.SECOND_UNION* %279 to i8* | |
store i8 %prec1877.0, i8* %oprecedence1976, align 8, !tbaa !10 | |
%280 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou21978 = getelementptr inbounds %struct.word_type, %struct.word_type* %280, i64 0, i32 2 | |
%os211979 = bitcast %union.SECOND_UNION* %ou21978 to %struct.anon.0* | |
%ovspace1980 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211979, i64 0, i32 2 | |
%281 = load i8, i8* %ovspace1980, align 2, !tbaa !10 | |
%ovspace1984 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211975, i64 0, i32 2 | |
store i8 %281, i8* %ovspace1984, align 2, !tbaa !10 | |
%ohspace1988 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211979, i64 0, i32 1 | |
%282 = load i8, i8* %ohspace1988, align 1, !tbaa !10 | |
%ohspace1992 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os211975, i64 0, i32 1 | |
store i8 %282, i8* %ohspace1992, align 1, !tbaa !10 | |
%os51993 = bitcast %union.rec* %.in10536 to %struct.gapobj_type* | |
%283 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os51993, i64 0, i32 3, i32 0 | |
%bf.load1995 = load i16, i16* %283, align 4 | |
%bf.clear2001 = and i16 %bf.load1995, -769 | |
%bf.set2002 = or i16 %bf.clear2001, 512 | |
store i16 %bf.set2002, i16* %283, align 4 | |
%ofile_num2006 = getelementptr inbounds %struct.word_type, %struct.word_type* %280, i64 0, i32 1, i32 0, i32 2 | |
%284 = load i16, i16* %ofile_num2006, align 2, !tbaa !10 | |
%285 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %284, i16* %285, align 2, !tbaa !10 | |
%oline_num2014 = getelementptr inbounds %struct.word_type, %struct.word_type* %280, i64 0, i32 1, i32 0, i32 3 | |
%bf.load2015 = load i32, i32* %oline_num2014, align 4 | |
%bf.clear2016 = and i32 %bf.load2015, 1048575 | |
%286 = getelementptr inbounds %union.rec, %union.rec* %.in10536, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load2021 = load i32, i32* %286, align 4 | |
%bf.clear2023 = and i32 %bf.load2021, -1048576 | |
%bf.set2024 = or i32 %bf.clear2023, %bf.clear2016 | |
store i32 %bf.set2024, i32* %286, align 4 | |
%bf.load2029 = load i32, i32* %oline_num2014, align 4 | |
%bf.lshr2030 = and i32 %bf.load2029, -1048576 | |
%bf.set2039 = or i32 %bf.lshr2030, %bf.clear2016 | |
store i32 %bf.set2039, i32* %286, align 4 | |
%inc2040 = add nsw i32 %273, 1 | |
store i32 %inc2040, i32* @ttop, align 4, !tbaa !4 | |
%cmp2041 = icmp slt i32 %273, 99 | |
br i1 %cmp2041, label %if.then2043, label %if.else2046 | |
if.then2043: ; preds = %if.end1950 | |
%idxprom2044 = sext i32 %inc2040 to i64 | |
%arrayidx2045 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2044 | |
store %union.rec* %.in10536, %union.rec** %arrayidx2045, align 8, !tbaa !8 | |
br label %if.end2057 | |
if.else2046: ; preds = %if.end1950 | |
%idxprom204810229 = zext i32 %273 to i64 | |
%arrayidx2049 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom204810229 | |
%287 = bitcast %union.rec** %arrayidx2049 to %struct.word_type** | |
%288 = load %struct.word_type*, %struct.word_type** %287, align 8, !tbaa !8 | |
%ofpos2052 = getelementptr inbounds %struct.word_type, %struct.word_type* %288, i64 0, i32 1, i32 0 | |
%call2053 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2052) #5 | |
br label %if.end2057 | |
if.end2057: ; preds = %if.else2046, %if.then2043, %while.body1920, %if.else1873, %if.else1844 | |
%289 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc2058 = add nsw i32 %289, 1 | |
store i32 %inc2058, i32* @ttop, align 4, !tbaa !4 | |
%cmp2059 = icmp slt i32 %289, 99 | |
br i1 %cmp2059, label %if.then2061, label %if.else2064 | |
if.then2061: ; preds = %if.end2057 | |
%290 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%idxprom2062 = sext i32 %inc2058 to i64 | |
%arrayidx2063 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2062 | |
store %union.rec* %290, %union.rec** %arrayidx2063, align 8, !tbaa !8 | |
%291 = bitcast %union.rec* %290 to %struct.closure_type* | |
br label %if.end2072 | |
if.else2064: ; preds = %if.end2057 | |
%idxprom206610228 = zext i32 %289 to i64 | |
%arrayidx2067 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom206610228 | |
%292 = bitcast %union.rec** %arrayidx2067 to %struct.word_type** | |
%293 = load %struct.word_type*, %struct.word_type** %292, align 8, !tbaa !8 | |
%ofpos2070 = getelementptr inbounds %struct.word_type, %struct.word_type* %293, i64 0, i32 1, i32 0 | |
%call2071 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2070) #5 | |
%.pre10493 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
br label %if.end2072 | |
if.end2072: ; preds = %if.else2064, %if.then2061 | |
%294 = phi %struct.closure_type* [ %.pre10493, %if.else2064 ], [ %291, %if.then2061 ] | |
%oactual2074 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %294, i64 0, i32 5 | |
%295 = bitcast %union.rec** %oactual2074 to %struct.word_type** | |
%296 = load %struct.word_type*, %struct.word_type** %295, align 8, !tbaa !10 | |
%ou22076 = getelementptr inbounds %struct.word_type, %struct.word_type* %296, i64 0, i32 2 | |
%os262077 = bitcast %union.SECOND_UNION* %ou22076 to %struct.anon.5* | |
%ohas_rpar = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os262077, i64 0, i32 1 | |
%297 = bitcast [3 x i8]* %ohas_rpar to i24* | |
%bf.load2078 = load i24, i24* %297, align 1 | |
%298 = and i24 %bf.load2078, 8 | |
%tobool2082.not = icmp eq i24 %298, 0 | |
br i1 %tobool2082.not, label %if.else2084, label %if.end2093 | |
if.else2084: ; preds = %if.end2072 | |
%call2085 = call fastcc i32 @Reduce() | |
%299 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp2086 = icmp eq i32 %299, %4 | |
br i1 %cmp2086, label %cleanup9179, label %if.end2093 | |
if.end2093: ; preds = %if.else2084, %if.end2072 | |
%obj_prev.11 = phi i32 [ %call2085, %if.else2084 ], [ 0, %if.end2072 ] | |
%call2094 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call2094, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb2095: ; preds = %for.cond581, %for.cond581 | |
%300 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 5 | |
%301 = bitcast %union.rec** %300 to %struct.word_type** | |
%302 = load %struct.word_type*, %struct.word_type** %301, align 8, !tbaa !10 | |
%ou22099 = getelementptr inbounds %struct.word_type, %struct.word_type* %302, i64 0, i32 2 | |
%os262100 = bitcast %union.SECOND_UNION* %ou22099 to %struct.anon.5* | |
%ohas_lpar2101 = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os262100, i64 0, i32 1 | |
%303 = bitcast [3 x i8]* %ohas_lpar2101 to i24* | |
%bf.load2102 = load i24, i24* %303, align 1 | |
%304 = and i24 %bf.load2102, 4 | |
%tobool2106.not = icmp eq i24 %304, 0 | |
br i1 %tobool2106.not, label %if.else2159, label %for.cond2108 | |
for.cond2108: ; preds = %for.cond2108.backedge, %sw.bb2095 | |
%obj_prev.12 = phi i32 [ %obj_prev.12.be, %for.cond2108.backedge ], [ %obj_prev.1, %sw.bb2095 ] | |
%tobool2109.not = icmp eq i32 %obj_prev.12, 0 | |
br i1 %tobool2109.not, label %if.then2110, label %if.else2130 | |
if.then2110: ; preds = %for.cond2108 | |
%305 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos2113 = getelementptr inbounds %struct.word_type, %struct.word_type* %305, i64 0, i32 1, i32 0 | |
%call2114 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos2113) #5 | |
store %union.rec* %call2114, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%306 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc2115 = add nsw i32 %306, 1 | |
store i32 %inc2115, i32* @otop, align 4, !tbaa !4 | |
%cmp2116 = icmp slt i32 %306, 99 | |
br i1 %cmp2116, label %if.then2118, label %if.else2121 | |
if.then2118: ; preds = %if.then2110 | |
%idxprom2119 = sext i32 %inc2115 to i64 | |
%arrayidx2120 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom2119 | |
store %union.rec* %call2114, %union.rec** %arrayidx2120, align 8, !tbaa !8 | |
br label %for.cond2108.backedge | |
for.cond2108.backedge: ; preds = %if.then2146, %if.else2121, %if.then2118 | |
%obj_prev.12.be = phi i32 [ %call2147, %if.then2146 ], [ 1, %if.else2121 ], [ 1, %if.then2118 ] | |
br label %for.cond2108 | |
if.else2121: ; preds = %if.then2110 | |
%idxprom212310239 = zext i32 %306 to i64 | |
%arrayidx2124 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom212310239 | |
%307 = bitcast %union.rec** %arrayidx2124 to %struct.word_type** | |
%308 = load %struct.word_type*, %struct.word_type** %307, align 8, !tbaa !8 | |
%ofpos2127 = getelementptr inbounds %struct.word_type, %struct.word_type* %308, i64 0, i32 1, i32 0 | |
%call2128 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2127) #5 | |
br label %for.cond2108.backedge | |
if.else2130: ; preds = %for.cond2108 | |
%309 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom2131 = sext i32 %309 to i64 | |
%arrayidx2132 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2131 | |
%310 = bitcast %union.rec** %arrayidx2132 to %struct.word_type** | |
%311 = load %struct.word_type*, %struct.word_type** %310, align 8, !tbaa !8 | |
%ou22134 = getelementptr inbounds %struct.word_type, %struct.word_type* %311, i64 0, i32 2 | |
%oprecedence2136 = bitcast %union.SECOND_UNION* %ou22134 to i8* | |
%312 = load i8, i8* %oprecedence2136, align 8, !tbaa !10 | |
%313 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou22139 = getelementptr inbounds %struct.word_type, %struct.word_type* %313, i64 0, i32 2 | |
%oprecedence2141 = bitcast %union.SECOND_UNION* %ou22139 to i8* | |
%314 = load i8, i8* %oprecedence2141, align 8, !tbaa !10 | |
%cmp2144.not.not = icmp ult i8 %314, %312 | |
br i1 %cmp2144.not.not, label %if.then2146, label %if.end2343 | |
if.then2146: ; preds = %if.else2130 | |
%call2147 = call fastcc i32 @Reduce() | |
%315 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp2148 = icmp eq i32 %315, %4 | |
br i1 %cmp2148, label %if.then2150, label %for.cond2108.backedge | |
if.then2150: ; preds = %if.then2146 | |
%316 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
if.else2159: ; preds = %sw.bb2095 | |
%tobool2160.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool2160.not, label %if.end2343, label %if.then2161 | |
if.then2161: ; preds = %if.else2159 | |
%317 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 2 | |
%os212166 = bitcast %union.SECOND_UNION* %317 to %struct.anon.0* | |
%ohspace2167 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212166, i64 0, i32 1 | |
%318 = load i8, i8* %ohspace2167, align 1, !tbaa !10 | |
%conv2168 = zext i8 %318 to i32 | |
%ovspace2172 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212166, i64 0, i32 2 | |
%319 = load i8, i8* %ovspace2172, align 2, !tbaa !10 | |
%conv2173 = zext i8 %319 to i32 | |
%add2174 = sub nsw i32 0, %conv2173 | |
%cmp2175.not = icmp eq i32 %conv2168, %add2174 | |
%cmp2187 = icmp eq i32 %obj_prev.1, 2 | |
%.10142 = select i1 %cmp2187, i8 7, i8 103 | |
%typ2162.0 = select i1 %cmp2175.not, i32 101, i32 100 | |
%prec2163.0 = select i1 %cmp2175.not, i8 %.10142, i8 7 | |
br label %land.rhs2195 | |
land.rhs2195: ; preds = %while.body2206, %if.then2161 | |
%320 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom2196 = sext i32 %320 to i64 | |
%arrayidx2197 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2196 | |
%321 = bitcast %union.rec** %arrayidx2197 to %struct.word_type** | |
%322 = load %struct.word_type*, %struct.word_type** %321, align 8, !tbaa !8 | |
%ou22199 = getelementptr inbounds %struct.word_type, %struct.word_type* %322, i64 0, i32 2 | |
%oprecedence2201 = bitcast %union.SECOND_UNION* %ou22199 to i8* | |
%323 = load i8, i8* %oprecedence2201, align 8, !tbaa !10 | |
%cmp2203.not = icmp ugt i8 %prec2163.0, %323 | |
br i1 %cmp2203.not, label %if.then2210, label %while.body2206 | |
while.body2206: ; preds = %land.rhs2195 | |
%call2207 = call fastcc i32 @Reduce() | |
%tobool2194.not = icmp eq i32 %call2207, 0 | |
br i1 %tobool2194.not, label %if.end2343, label %land.rhs2195, !llvm.loop !15 | |
if.then2210: ; preds = %land.rhs2195 | |
%324 = zext i32 %typ2162.0 to i64 | |
%arrayidx2212 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %324 | |
%325 = load i8, i8* %arrayidx2212, align 1, !tbaa !10 | |
%conv2213 = zext i8 %325 to i32 | |
store i32 %conv2213, i32* @zz_size, align 4, !tbaa !4 | |
%326 = zext i8 %325 to i64 | |
%arrayidx2221 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %326 | |
%327 = load %union.rec*, %union.rec** %arrayidx2221, align 8, !tbaa !8 | |
%cmp2222 = icmp eq %union.rec* %327, null | |
br i1 %cmp2222, label %if.then2224, label %if.else2226 | |
if.then2224: ; preds = %if.then2210 | |
%328 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call2225 = call %union.rec* @GetMemory(i32 noundef %conv2213, %struct.FILE_POS* noundef %328) #5 | |
store %union.rec* %call2225, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10487 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end2236 | |
if.else2226: ; preds = %if.then2210 | |
store %union.rec* %327, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred2232 = getelementptr inbounds %union.rec, %union.rec* %327, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%329 = load %union.rec*, %union.rec** %opred2232, align 8, !tbaa !10 | |
store %union.rec* %329, %union.rec** %arrayidx2221, align 8, !tbaa !8 | |
br label %if.end2236 | |
if.end2236: ; preds = %if.else2226, %if.then2224 | |
%330 = phi i32 [ %.pre10487, %if.then2224 ], [ %320, %if.else2226 ] | |
%.in10534 = phi %union.rec* [ %call2225, %if.then2224 ], [ %327, %if.else2226 ] | |
%conv2237 = trunc i32 %typ2162.0 to i8 | |
%331 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv2237, i8* %331, align 8, !tbaa !10 | |
%332 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10534, %union.rec** %332, align 8, !tbaa !10 | |
%333 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10534, %union.rec** %333, align 8, !tbaa !10 | |
%334 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10534, %union.rec** %334, align 8, !tbaa !10 | |
%335 = getelementptr %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10534, %union.rec** %335, align 8, !tbaa !10 | |
%336 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 2 | |
%os212261 = bitcast %union.SECOND_UNION* %336 to %struct.anon.0* | |
%oprecedence2262 = bitcast %union.SECOND_UNION* %336 to i8* | |
store i8 %prec2163.0, i8* %oprecedence2262, align 8, !tbaa !10 | |
%337 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou22264 = getelementptr inbounds %struct.word_type, %struct.word_type* %337, i64 0, i32 2 | |
%os212265 = bitcast %union.SECOND_UNION* %ou22264 to %struct.anon.0* | |
%ovspace2266 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212265, i64 0, i32 2 | |
%338 = load i8, i8* %ovspace2266, align 2, !tbaa !10 | |
%ovspace2270 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212261, i64 0, i32 2 | |
store i8 %338, i8* %ovspace2270, align 2, !tbaa !10 | |
%ohspace2274 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212265, i64 0, i32 1 | |
%339 = load i8, i8* %ohspace2274, align 1, !tbaa !10 | |
%ohspace2278 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212261, i64 0, i32 1 | |
store i8 %339, i8* %ohspace2278, align 1, !tbaa !10 | |
%os52279 = bitcast %union.rec* %.in10534 to %struct.gapobj_type* | |
%340 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os52279, i64 0, i32 3, i32 0 | |
%bf.load2281 = load i16, i16* %340, align 4 | |
%bf.clear2287 = and i16 %bf.load2281, -769 | |
%bf.set2288 = or i16 %bf.clear2287, 512 | |
store i16 %bf.set2288, i16* %340, align 4 | |
%ofile_num2292 = getelementptr inbounds %struct.word_type, %struct.word_type* %337, i64 0, i32 1, i32 0, i32 2 | |
%341 = load i16, i16* %ofile_num2292, align 2, !tbaa !10 | |
%342 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %341, i16* %342, align 2, !tbaa !10 | |
%oline_num2300 = getelementptr inbounds %struct.word_type, %struct.word_type* %337, i64 0, i32 1, i32 0, i32 3 | |
%bf.load2301 = load i32, i32* %oline_num2300, align 4 | |
%bf.clear2302 = and i32 %bf.load2301, 1048575 | |
%343 = getelementptr inbounds %union.rec, %union.rec* %.in10534, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load2307 = load i32, i32* %343, align 4 | |
%bf.clear2309 = and i32 %bf.load2307, -1048576 | |
%bf.set2310 = or i32 %bf.clear2309, %bf.clear2302 | |
store i32 %bf.set2310, i32* %343, align 4 | |
%bf.load2315 = load i32, i32* %oline_num2300, align 4 | |
%bf.lshr2316 = and i32 %bf.load2315, -1048576 | |
%bf.set2325 = or i32 %bf.lshr2316, %bf.clear2302 | |
store i32 %bf.set2325, i32* %343, align 4 | |
%inc2326 = add nsw i32 %330, 1 | |
store i32 %inc2326, i32* @ttop, align 4, !tbaa !4 | |
%cmp2327 = icmp slt i32 %330, 99 | |
br i1 %cmp2327, label %if.then2329, label %if.else2332 | |
if.then2329: ; preds = %if.end2236 | |
%idxprom2330 = sext i32 %inc2326 to i64 | |
%arrayidx2331 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2330 | |
store %union.rec* %.in10534, %union.rec** %arrayidx2331, align 8, !tbaa !8 | |
br label %if.end2343 | |
if.else2332: ; preds = %if.end2236 | |
%idxprom233410237 = zext i32 %330 to i64 | |
%arrayidx2335 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom233410237 | |
%344 = bitcast %union.rec** %arrayidx2335 to %struct.word_type** | |
%345 = load %struct.word_type*, %struct.word_type** %344, align 8, !tbaa !8 | |
%ofpos2338 = getelementptr inbounds %struct.word_type, %struct.word_type* %345, i64 0, i32 1, i32 0 | |
%call2339 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2338) #5 | |
br label %if.end2343 | |
if.end2343: ; preds = %if.else2332, %if.then2329, %while.body2206, %if.else2159, %if.else2130 | |
%346 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc2344 = add nsw i32 %346, 1 | |
store i32 %inc2344, i32* @ttop, align 4, !tbaa !4 | |
%cmp2345 = icmp slt i32 %346, 99 | |
br i1 %cmp2345, label %if.then2347, label %if.else2350 | |
if.then2347: ; preds = %if.end2343 | |
%347 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%idxprom2348 = sext i32 %inc2344 to i64 | |
%arrayidx2349 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2348 | |
store %union.rec* %347, %union.rec** %arrayidx2349, align 8, !tbaa !8 | |
%348 = bitcast %union.rec* %347 to %struct.closure_type* | |
br label %if.end2358 | |
if.else2350: ; preds = %if.end2343 | |
%idxprom235210236 = zext i32 %346 to i64 | |
%arrayidx2353 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom235210236 | |
%349 = bitcast %union.rec** %arrayidx2353 to %struct.word_type** | |
%350 = load %struct.word_type*, %struct.word_type** %349, align 8, !tbaa !8 | |
%ofpos2356 = getelementptr inbounds %struct.word_type, %struct.word_type* %350, i64 0, i32 1, i32 0 | |
%call2357 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2356) #5 | |
%.pre10488 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
br label %if.end2358 | |
if.end2358: ; preds = %if.else2350, %if.then2347 | |
%351 = phi %struct.closure_type* [ %.pre10488, %if.else2350 ], [ %348, %if.then2347 ] | |
%oactual2360 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %351, i64 0, i32 5 | |
%352 = bitcast %union.rec** %oactual2360 to %struct.word_type** | |
%353 = load %struct.word_type*, %struct.word_type** %352, align 8, !tbaa !10 | |
%ou22362 = getelementptr inbounds %struct.word_type, %struct.word_type* %353, i64 0, i32 2 | |
%os262363 = bitcast %union.SECOND_UNION* %ou22362 to %struct.anon.5* | |
%ohas_rpar2364 = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os262363, i64 0, i32 1 | |
%354 = bitcast [3 x i8]* %ohas_rpar2364 to i24* | |
%bf.load2365 = load i24, i24* %354, align 1 | |
%355 = and i24 %bf.load2365, 8 | |
%tobool2369.not = icmp eq i24 %355, 0 | |
br i1 %tobool2369.not, label %if.else2371, label %if.end2380 | |
if.else2371: ; preds = %if.end2358 | |
%call2372 = call fastcc i32 @Reduce() | |
%356 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp2373 = icmp eq i32 %356, %4 | |
br i1 %cmp2373, label %cleanup9179, label %if.end2380 | |
if.end2380: ; preds = %if.else2371, %if.end2358 | |
%obj_prev.15 = phi i32 [ %call2372, %if.else2371 ], [ 0, %if.end2358 ] | |
%call2381 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call2381, %union.rec** %t, align 8, !tbaa !8 | |
%otype2385 = getelementptr inbounds %union.rec, %union.rec* %call2381, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%357 = load i8, i8* %otype2385, align 8, !tbaa !10 | |
%358 = bitcast %union.rec* %call2381 to %struct.closure_type* | |
%359 = bitcast %union.rec* %call2381 to %struct.word_type* | |
switch i8 %357, label %if.then2397 [ | |
i8 104, label %if.end2402 | |
i8 102, label %if.end2402 | |
] | |
if.then2397: ; preds = %if.end2380 | |
%ofpos2400 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 1, i32 0 | |
%call2401 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 40, i8* noundef getelementptr inbounds ([55 x i8], [55 x i8]* @.str.28, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2400, i8* noundef getelementptr inbounds ([10 x i8], [10 x i8]* @.str.29, i64 0, i64 0), i8* noundef getelementptr inbounds ([13 x i8], [13 x i8]* @.str.30, i64 0, i64 0)) #5 | |
%.pre10489 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%360 = bitcast %struct.closure_type* %.pre10489 to %struct.word_type* | |
br label %if.end2402 | |
if.end2402: ; preds = %if.then2397, %if.end2380, %if.end2380 | |
%361 = phi %struct.word_type* [ %359, %if.end2380 ], [ %359, %if.end2380 ], [ %360, %if.then2397 ] | |
%362 = phi %struct.closure_type* [ %358, %if.end2380 ], [ %358, %if.end2380 ], [ %.pre10489, %if.then2397 ] | |
%otype2406 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%363 = load i8, i8* %otype2406, align 8, !tbaa !10 | |
%cmp2408 = icmp eq i8 %363, 53 | |
%364 = load %union.rec*, %union.rec** @VerbatimSym, align 8 | |
%365 = load %union.rec*, %union.rec** @RawVerbatimSym, align 8 | |
%cond2413 = select i1 %cmp2408, %union.rec* %364, %union.rec* %365 | |
%oactual2415 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %362, i64 0, i32 5 | |
store %union.rec* %cond2413, %union.rec** %oactual2415, align 8, !tbaa !10 | |
%tobool2416.not = icmp eq i32 %obj_prev.15, 0 | |
br i1 %tobool2416.not, label %if.end2598, label %if.then2417 | |
if.then2417: ; preds = %if.end2402 | |
%ou22421 = getelementptr inbounds %struct.word_type, %struct.word_type* %361, i64 0, i32 2 | |
%os212422 = bitcast %union.SECOND_UNION* %ou22421 to %struct.anon.0* | |
%ohspace2423 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212422, i64 0, i32 1 | |
%366 = load i8, i8* %ohspace2423, align 1, !tbaa !10 | |
%conv2424 = zext i8 %366 to i32 | |
%ovspace2428 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212422, i64 0, i32 2 | |
%367 = load i8, i8* %ovspace2428, align 2, !tbaa !10 | |
%conv2429 = zext i8 %367 to i32 | |
%add2430 = sub nsw i32 0, %conv2429 | |
%cmp2431.not = icmp eq i32 %conv2424, %add2430 | |
br i1 %cmp2431.not, label %if.else2434, label %if.end2448 | |
if.else2434: ; preds = %if.then2417 | |
%otype2438 = getelementptr inbounds %struct.word_type, %struct.word_type* %361, i64 0, i32 1, i32 0, i32 0 | |
%368 = load i8, i8* %otype2438, align 8, !tbaa !10 | |
%cmp2440 = icmp eq i8 %368, 102 | |
%cmp2443 = icmp eq i32 %obj_prev.15, 2 | |
%or.cond9203 = select i1 %cmp2440, i1 true, i1 %cmp2443 | |
%.10143 = select i1 %or.cond9203, i8 7, i8 103 | |
br label %if.end2448 | |
if.end2448: ; preds = %if.else2434, %if.then2417 | |
%typ2418.0 = phi i32 [ 100, %if.then2417 ], [ 101, %if.else2434 ] | |
%prec2419.0 = phi i8 [ 7, %if.then2417 ], [ %.10143, %if.else2434 ] | |
br label %land.rhs2451 | |
land.rhs2451: ; preds = %while.body2462, %if.end2448 | |
%369 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom2452 = sext i32 %369 to i64 | |
%arrayidx2453 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2452 | |
%370 = bitcast %union.rec** %arrayidx2453 to %struct.word_type** | |
%371 = load %struct.word_type*, %struct.word_type** %370, align 8, !tbaa !8 | |
%ou22455 = getelementptr inbounds %struct.word_type, %struct.word_type* %371, i64 0, i32 2 | |
%oprecedence2457 = bitcast %union.SECOND_UNION* %ou22455 to i8* | |
%372 = load i8, i8* %oprecedence2457, align 8, !tbaa !10 | |
%cmp2459.not = icmp ugt i8 %prec2419.0, %372 | |
br i1 %cmp2459.not, label %if.then2466, label %while.body2462 | |
while.body2462: ; preds = %land.rhs2451 | |
%call2463 = call fastcc i32 @Reduce() | |
%tobool2450.not = icmp eq i32 %call2463, 0 | |
br i1 %tobool2450.not, label %if.end2598, label %land.rhs2451, !llvm.loop !16 | |
if.then2466: ; preds = %land.rhs2451 | |
%373 = zext i32 %typ2418.0 to i64 | |
%arrayidx2468 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %373 | |
%374 = load i8, i8* %arrayidx2468, align 1, !tbaa !10 | |
%conv2469 = zext i8 %374 to i32 | |
store i32 %conv2469, i32* @zz_size, align 4, !tbaa !4 | |
%375 = zext i8 %374 to i64 | |
%arrayidx2477 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %375 | |
%376 = load %union.rec*, %union.rec** %arrayidx2477, align 8, !tbaa !8 | |
%cmp2478 = icmp eq %union.rec* %376, null | |
br i1 %cmp2478, label %if.then2480, label %if.else2482 | |
if.then2480: ; preds = %if.then2466 | |
%377 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call2481 = call %union.rec* @GetMemory(i32 noundef %conv2469, %struct.FILE_POS* noundef %377) #5 | |
store %union.rec* %call2481, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10490 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end2492 | |
if.else2482: ; preds = %if.then2466 | |
store %union.rec* %376, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred2488 = getelementptr inbounds %union.rec, %union.rec* %376, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%378 = load %union.rec*, %union.rec** %opred2488, align 8, !tbaa !10 | |
store %union.rec* %378, %union.rec** %arrayidx2477, align 8, !tbaa !8 | |
br label %if.end2492 | |
if.end2492: ; preds = %if.else2482, %if.then2480 | |
%379 = phi i32 [ %.pre10490, %if.then2480 ], [ %369, %if.else2482 ] | |
%.in10532 = phi %union.rec* [ %call2481, %if.then2480 ], [ %376, %if.else2482 ] | |
%conv2493 = trunc i32 %typ2418.0 to i8 | |
%380 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv2493, i8* %380, align 8, !tbaa !10 | |
%381 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10532, %union.rec** %381, align 8, !tbaa !10 | |
%382 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10532, %union.rec** %382, align 8, !tbaa !10 | |
%383 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10532, %union.rec** %383, align 8, !tbaa !10 | |
%384 = getelementptr %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10532, %union.rec** %384, align 8, !tbaa !10 | |
%385 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 2 | |
%os212517 = bitcast %union.SECOND_UNION* %385 to %struct.anon.0* | |
%oprecedence2518 = bitcast %union.SECOND_UNION* %385 to i8* | |
store i8 %prec2419.0, i8* %oprecedence2518, align 8, !tbaa !10 | |
%386 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou22520 = getelementptr inbounds %struct.word_type, %struct.word_type* %386, i64 0, i32 2 | |
%os212521 = bitcast %union.SECOND_UNION* %ou22520 to %struct.anon.0* | |
%ovspace2522 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212521, i64 0, i32 2 | |
%387 = load i8, i8* %ovspace2522, align 2, !tbaa !10 | |
%ovspace2526 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212517, i64 0, i32 2 | |
store i8 %387, i8* %ovspace2526, align 2, !tbaa !10 | |
%ohspace2530 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212521, i64 0, i32 1 | |
%388 = load i8, i8* %ohspace2530, align 1, !tbaa !10 | |
%ohspace2534 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212517, i64 0, i32 1 | |
store i8 %388, i8* %ohspace2534, align 1, !tbaa !10 | |
%os52535 = bitcast %union.rec* %.in10532 to %struct.gapobj_type* | |
%389 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os52535, i64 0, i32 3, i32 0 | |
%bf.load2537 = load i16, i16* %389, align 4 | |
%bf.clear2543 = and i16 %bf.load2537, -769 | |
%bf.set2544 = or i16 %bf.clear2543, 512 | |
store i16 %bf.set2544, i16* %389, align 4 | |
%ofile_num2548 = getelementptr inbounds %struct.word_type, %struct.word_type* %386, i64 0, i32 1, i32 0, i32 2 | |
%390 = load i16, i16* %ofile_num2548, align 2, !tbaa !10 | |
%391 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %390, i16* %391, align 2, !tbaa !10 | |
%oline_num2556 = getelementptr inbounds %struct.word_type, %struct.word_type* %386, i64 0, i32 1, i32 0, i32 3 | |
%bf.load2557 = load i32, i32* %oline_num2556, align 4 | |
%bf.clear2558 = and i32 %bf.load2557, 1048575 | |
%392 = getelementptr inbounds %union.rec, %union.rec* %.in10532, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load2563 = load i32, i32* %392, align 4 | |
%bf.clear2565 = and i32 %bf.load2563, -1048576 | |
%bf.set2566 = or i32 %bf.clear2565, %bf.clear2558 | |
store i32 %bf.set2566, i32* %392, align 4 | |
%bf.load2571 = load i32, i32* %oline_num2556, align 4 | |
%bf.lshr2572 = and i32 %bf.load2571, -1048576 | |
%bf.set2581 = or i32 %bf.lshr2572, %bf.clear2558 | |
store i32 %bf.set2581, i32* %392, align 4 | |
%inc2582 = add nsw i32 %379, 1 | |
store i32 %inc2582, i32* @ttop, align 4, !tbaa !4 | |
%cmp2583 = icmp slt i32 %379, 99 | |
br i1 %cmp2583, label %if.then2585, label %if.else2588 | |
if.then2585: ; preds = %if.end2492 | |
%idxprom2586 = sext i32 %inc2582 to i64 | |
%arrayidx2587 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2586 | |
store %union.rec* %.in10532, %union.rec** %arrayidx2587, align 8, !tbaa !8 | |
br label %if.end2598 | |
if.else2588: ; preds = %if.end2492 | |
%idxprom259010234 = zext i32 %379 to i64 | |
%arrayidx2591 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom259010234 | |
%393 = bitcast %union.rec** %arrayidx2591 to %struct.word_type** | |
%394 = load %struct.word_type*, %struct.word_type** %393, align 8, !tbaa !8 | |
%ofpos2594 = getelementptr inbounds %struct.word_type, %struct.word_type* %394, i64 0, i32 1, i32 0 | |
%call2595 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2594) #5 | |
br label %if.end2598 | |
if.end2598: ; preds = %if.else2588, %if.then2585, %while.body2462, %if.end2402 | |
%395 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc2599 = add nsw i32 %395, 1 | |
store i32 %inc2599, i32* @ttop, align 4, !tbaa !4 | |
%cmp2600 = icmp slt i32 %395, 99 | |
br i1 %cmp2600, label %if.then2602, label %if.else2605 | |
if.then2602: ; preds = %if.end2598 | |
%396 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%idxprom2603 = sext i32 %inc2599 to i64 | |
%arrayidx2604 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2603 | |
store %union.rec* %396, %union.rec** %arrayidx2604, align 8, !tbaa !8 | |
%397 = bitcast %union.rec* %396 to %struct.word_type* | |
br label %if.end2613 | |
if.else2605: ; preds = %if.end2598 | |
%idxprom260710233 = zext i32 %395 to i64 | |
%arrayidx2608 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom260710233 | |
%398 = bitcast %union.rec** %arrayidx2608 to %struct.word_type** | |
%399 = load %struct.word_type*, %struct.word_type** %398, align 8, !tbaa !8 | |
%ofpos2611 = getelementptr inbounds %struct.word_type, %struct.word_type* %399, i64 0, i32 1, i32 0 | |
%call2612 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2611) #5 | |
%.pre10491 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
br label %if.end2613 | |
if.end2613: ; preds = %if.else2605, %if.then2602 | |
%400 = phi %struct.word_type* [ %.pre10491, %if.else2605 ], [ %397, %if.then2602 ] | |
%ou12615 = getelementptr inbounds %struct.word_type, %struct.word_type* %400, i64 0, i32 1 | |
%otype2617 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %ou12615, i64 0, i32 0, i32 0 | |
%401 = load i8, i8* %otype2617, align 8, !tbaa !10 | |
%cmp2619 = icmp eq i8 %401, 104 | |
%conv2620 = zext i1 %cmp2619 to i32 | |
%ofpos2623 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %ou12615, i64 0, i32 0 | |
%402 = load i8, i8* %otype2406, align 8, !tbaa !10 | |
%cmp2629 = icmp eq i8 %402, 54 | |
%conv2630 = zext i1 %cmp2629 to i32 | |
%call2631 = call %union.rec* @LexScanVerbatim(%struct._IO_FILE* noundef null, i32 noundef %conv2620, %struct.FILE_POS* noundef nonnull %ofpos2623, i32 noundef %conv2630) #5 | |
store %union.rec* %call2631, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%403 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc2815 = add nsw i32 %403, 1 | |
store i32 %inc2815, i32* @otop, align 4, !tbaa !4 | |
%cmp2816 = icmp slt i32 %403, 99 | |
br i1 %cmp2816, label %if.then2818, label %if.else2821 | |
if.then2818: ; preds = %if.end2613 | |
%idxprom2819 = sext i32 %inc2815 to i64 | |
%arrayidx2820 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom2819 | |
store %union.rec* %call2631, %union.rec** %arrayidx2820, align 8, !tbaa !8 | |
br label %if.end2829 | |
if.else2821: ; preds = %if.end2613 | |
%idxprom282310232 = zext i32 %403 to i64 | |
%arrayidx2824 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom282310232 | |
%404 = bitcast %union.rec** %arrayidx2824 to %struct.word_type** | |
%405 = load %struct.word_type*, %struct.word_type** %404, align 8, !tbaa !8 | |
%ofpos2827 = getelementptr inbounds %struct.word_type, %struct.word_type* %405, i64 0, i32 1, i32 0 | |
%call2828 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2827) #5 | |
br label %if.end2829 | |
if.end2829: ; preds = %if.else2821, %if.then2818 | |
%call2830 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call2830, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb2831: ; preds = %for.cond581, %for.cond581 | |
%406 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 5 | |
%407 = bitcast %union.rec** %406 to %struct.word_type** | |
%408 = load %struct.word_type*, %struct.word_type** %407, align 8, !tbaa !10 | |
%ou22835 = getelementptr inbounds %struct.word_type, %struct.word_type* %408, i64 0, i32 2 | |
%os262836 = bitcast %union.SECOND_UNION* %ou22835 to %struct.anon.5* | |
%ohas_lpar2837 = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os262836, i64 0, i32 1 | |
%409 = bitcast [3 x i8]* %ohas_lpar2837 to i24* | |
%bf.load2838 = load i24, i24* %409, align 1 | |
%410 = and i24 %bf.load2838, 4 | |
%tobool2842.not = icmp eq i24 %410, 0 | |
br i1 %tobool2842.not, label %if.else2895, label %for.cond2844 | |
for.cond2844: ; preds = %for.cond2844.backedge, %sw.bb2831 | |
%obj_prev.18 = phi i32 [ %obj_prev.18.be, %for.cond2844.backedge ], [ %obj_prev.1, %sw.bb2831 ] | |
%tobool2845.not = icmp eq i32 %obj_prev.18, 0 | |
br i1 %tobool2845.not, label %if.then2846, label %if.else2866 | |
if.then2846: ; preds = %for.cond2844 | |
%411 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos2849 = getelementptr inbounds %struct.word_type, %struct.word_type* %411, i64 0, i32 1, i32 0 | |
%call2850 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos2849) #5 | |
store %union.rec* %call2850, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%412 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc2851 = add nsw i32 %412, 1 | |
store i32 %inc2851, i32* @otop, align 4, !tbaa !4 | |
%cmp2852 = icmp slt i32 %412, 99 | |
br i1 %cmp2852, label %if.then2854, label %if.else2857 | |
if.then2854: ; preds = %if.then2846 | |
%idxprom2855 = sext i32 %inc2851 to i64 | |
%arrayidx2856 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom2855 | |
store %union.rec* %call2850, %union.rec** %arrayidx2856, align 8, !tbaa !8 | |
br label %for.cond2844.backedge | |
for.cond2844.backedge: ; preds = %if.then2882, %if.else2857, %if.then2854 | |
%obj_prev.18.be = phi i32 [ %call2883, %if.then2882 ], [ 1, %if.else2857 ], [ 1, %if.then2854 ] | |
br label %for.cond2844 | |
if.else2857: ; preds = %if.then2846 | |
%idxprom285910243 = zext i32 %412 to i64 | |
%arrayidx2860 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom285910243 | |
%413 = bitcast %union.rec** %arrayidx2860 to %struct.word_type** | |
%414 = load %struct.word_type*, %struct.word_type** %413, align 8, !tbaa !8 | |
%ofpos2863 = getelementptr inbounds %struct.word_type, %struct.word_type* %414, i64 0, i32 1, i32 0 | |
%call2864 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos2863) #5 | |
br label %for.cond2844.backedge | |
if.else2866: ; preds = %for.cond2844 | |
%415 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom2867 = sext i32 %415 to i64 | |
%arrayidx2868 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2867 | |
%416 = bitcast %union.rec** %arrayidx2868 to %struct.word_type** | |
%417 = load %struct.word_type*, %struct.word_type** %416, align 8, !tbaa !8 | |
%ou22870 = getelementptr inbounds %struct.word_type, %struct.word_type* %417, i64 0, i32 2 | |
%oprecedence2872 = bitcast %union.SECOND_UNION* %ou22870 to i8* | |
%418 = load i8, i8* %oprecedence2872, align 8, !tbaa !10 | |
%419 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou22875 = getelementptr inbounds %struct.word_type, %struct.word_type* %419, i64 0, i32 2 | |
%oprecedence2877 = bitcast %union.SECOND_UNION* %ou22875 to i8* | |
%420 = load i8, i8* %oprecedence2877, align 8, !tbaa !10 | |
%cmp2880.not = icmp ult i8 %418, %420 | |
br i1 %cmp2880.not, label %if.end3079, label %if.then2882 | |
if.then2882: ; preds = %if.else2866 | |
%call2883 = call fastcc i32 @Reduce() | |
%421 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp2884 = icmp eq i32 %421, %4 | |
br i1 %cmp2884, label %if.then2886, label %for.cond2844.backedge | |
if.then2886: ; preds = %if.then2882 | |
%422 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
if.else2895: ; preds = %sw.bb2831 | |
%tobool2896.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool2896.not, label %if.end3079, label %if.then2897 | |
if.then2897: ; preds = %if.else2895 | |
%423 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 2 | |
%os212902 = bitcast %union.SECOND_UNION* %423 to %struct.anon.0* | |
%ohspace2903 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212902, i64 0, i32 1 | |
%424 = load i8, i8* %ohspace2903, align 1, !tbaa !10 | |
%conv2904 = zext i8 %424 to i32 | |
%ovspace2908 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212902, i64 0, i32 2 | |
%425 = load i8, i8* %ovspace2908, align 2, !tbaa !10 | |
%conv2909 = zext i8 %425 to i32 | |
%add2910 = sub nsw i32 0, %conv2909 | |
%cmp2911.not = icmp eq i32 %conv2904, %add2910 | |
%cmp2923 = icmp eq i32 %obj_prev.1, 2 | |
%.10144 = select i1 %cmp2923, i8 7, i8 103 | |
%typ2898.0 = select i1 %cmp2911.not, i32 101, i32 100 | |
%prec2899.0 = select i1 %cmp2911.not, i8 %.10144, i8 7 | |
br label %land.rhs2931 | |
land.rhs2931: ; preds = %while.body2942, %if.then2897 | |
%426 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom2932 = sext i32 %426 to i64 | |
%arrayidx2933 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom2932 | |
%427 = bitcast %union.rec** %arrayidx2933 to %struct.word_type** | |
%428 = load %struct.word_type*, %struct.word_type** %427, align 8, !tbaa !8 | |
%ou22935 = getelementptr inbounds %struct.word_type, %struct.word_type* %428, i64 0, i32 2 | |
%oprecedence2937 = bitcast %union.SECOND_UNION* %ou22935 to i8* | |
%429 = load i8, i8* %oprecedence2937, align 8, !tbaa !10 | |
%cmp2939.not = icmp ugt i8 %prec2899.0, %429 | |
br i1 %cmp2939.not, label %if.then2946, label %while.body2942 | |
while.body2942: ; preds = %land.rhs2931 | |
%call2943 = call fastcc i32 @Reduce() | |
%tobool2930.not = icmp eq i32 %call2943, 0 | |
br i1 %tobool2930.not, label %if.end3079, label %land.rhs2931, !llvm.loop !17 | |
if.then2946: ; preds = %land.rhs2931 | |
%430 = zext i32 %typ2898.0 to i64 | |
%arrayidx2948 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %430 | |
%431 = load i8, i8* %arrayidx2948, align 1, !tbaa !10 | |
%conv2949 = zext i8 %431 to i32 | |
store i32 %conv2949, i32* @zz_size, align 4, !tbaa !4 | |
%432 = zext i8 %431 to i64 | |
%arrayidx2957 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %432 | |
%433 = load %union.rec*, %union.rec** %arrayidx2957, align 8, !tbaa !8 | |
%cmp2958 = icmp eq %union.rec* %433, null | |
br i1 %cmp2958, label %if.then2960, label %if.else2962 | |
if.then2960: ; preds = %if.then2946 | |
%434 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call2961 = call %union.rec* @GetMemory(i32 noundef %conv2949, %struct.FILE_POS* noundef %434) #5 | |
store %union.rec* %call2961, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10485 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end2972 | |
if.else2962: ; preds = %if.then2946 | |
store %union.rec* %433, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred2968 = getelementptr inbounds %union.rec, %union.rec* %433, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%435 = load %union.rec*, %union.rec** %opred2968, align 8, !tbaa !10 | |
store %union.rec* %435, %union.rec** %arrayidx2957, align 8, !tbaa !8 | |
br label %if.end2972 | |
if.end2972: ; preds = %if.else2962, %if.then2960 | |
%436 = phi i32 [ %.pre10485, %if.then2960 ], [ %426, %if.else2962 ] | |
%.in10530 = phi %union.rec* [ %call2961, %if.then2960 ], [ %433, %if.else2962 ] | |
%conv2973 = trunc i32 %typ2898.0 to i8 | |
%437 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv2973, i8* %437, align 8, !tbaa !10 | |
%438 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10530, %union.rec** %438, align 8, !tbaa !10 | |
%439 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10530, %union.rec** %439, align 8, !tbaa !10 | |
%440 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10530, %union.rec** %440, align 8, !tbaa !10 | |
%441 = getelementptr %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10530, %union.rec** %441, align 8, !tbaa !10 | |
%442 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 2 | |
%os212997 = bitcast %union.SECOND_UNION* %442 to %struct.anon.0* | |
%oprecedence2998 = bitcast %union.SECOND_UNION* %442 to i8* | |
store i8 %prec2899.0, i8* %oprecedence2998, align 8, !tbaa !10 | |
%443 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou23000 = getelementptr inbounds %struct.word_type, %struct.word_type* %443, i64 0, i32 2 | |
%os213001 = bitcast %union.SECOND_UNION* %ou23000 to %struct.anon.0* | |
%ovspace3002 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213001, i64 0, i32 2 | |
%444 = load i8, i8* %ovspace3002, align 2, !tbaa !10 | |
%ovspace3006 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212997, i64 0, i32 2 | |
store i8 %444, i8* %ovspace3006, align 2, !tbaa !10 | |
%ohspace3010 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213001, i64 0, i32 1 | |
%445 = load i8, i8* %ohspace3010, align 1, !tbaa !10 | |
%ohspace3014 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os212997, i64 0, i32 1 | |
store i8 %445, i8* %ohspace3014, align 1, !tbaa !10 | |
%os53015 = bitcast %union.rec* %.in10530 to %struct.gapobj_type* | |
%446 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os53015, i64 0, i32 3, i32 0 | |
%bf.load3017 = load i16, i16* %446, align 4 | |
%bf.clear3023 = and i16 %bf.load3017, -769 | |
%bf.set3024 = or i16 %bf.clear3023, 512 | |
store i16 %bf.set3024, i16* %446, align 4 | |
%ofile_num3028 = getelementptr inbounds %struct.word_type, %struct.word_type* %443, i64 0, i32 1, i32 0, i32 2 | |
%447 = load i16, i16* %ofile_num3028, align 2, !tbaa !10 | |
%448 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %447, i16* %448, align 2, !tbaa !10 | |
%oline_num3036 = getelementptr inbounds %struct.word_type, %struct.word_type* %443, i64 0, i32 1, i32 0, i32 3 | |
%bf.load3037 = load i32, i32* %oline_num3036, align 4 | |
%bf.clear3038 = and i32 %bf.load3037, 1048575 | |
%449 = getelementptr inbounds %union.rec, %union.rec* %.in10530, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load3043 = load i32, i32* %449, align 4 | |
%bf.clear3045 = and i32 %bf.load3043, -1048576 | |
%bf.set3046 = or i32 %bf.clear3045, %bf.clear3038 | |
store i32 %bf.set3046, i32* %449, align 4 | |
%bf.load3051 = load i32, i32* %oline_num3036, align 4 | |
%bf.lshr3052 = and i32 %bf.load3051, -1048576 | |
%bf.set3061 = or i32 %bf.lshr3052, %bf.clear3038 | |
store i32 %bf.set3061, i32* %449, align 4 | |
%inc3062 = add nsw i32 %436, 1 | |
store i32 %inc3062, i32* @ttop, align 4, !tbaa !4 | |
%cmp3063 = icmp slt i32 %436, 99 | |
br i1 %cmp3063, label %if.then3065, label %if.else3068 | |
if.then3065: ; preds = %if.end2972 | |
%idxprom3066 = sext i32 %inc3062 to i64 | |
%arrayidx3067 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3066 | |
store %union.rec* %.in10530, %union.rec** %arrayidx3067, align 8, !tbaa !8 | |
br label %if.end3079 | |
if.else3068: ; preds = %if.end2972 | |
%idxprom307010241 = zext i32 %436 to i64 | |
%arrayidx3071 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom307010241 | |
%450 = bitcast %union.rec** %arrayidx3071 to %struct.word_type** | |
%451 = load %struct.word_type*, %struct.word_type** %450, align 8, !tbaa !8 | |
%ofpos3074 = getelementptr inbounds %struct.word_type, %struct.word_type* %451, i64 0, i32 1, i32 0 | |
%call3075 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3074) #5 | |
br label %if.end3079 | |
if.end3079: ; preds = %if.else3068, %if.then3065, %while.body2942, %if.else2895, %if.else2866 | |
%452 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc3080 = add nsw i32 %452, 1 | |
store i32 %inc3080, i32* @ttop, align 4, !tbaa !4 | |
%cmp3081 = icmp slt i32 %452, 99 | |
br i1 %cmp3081, label %if.then3083, label %if.else3086 | |
if.then3083: ; preds = %if.end3079 | |
%453 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%idxprom3084 = sext i32 %inc3080 to i64 | |
%arrayidx3085 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3084 | |
store %union.rec* %453, %union.rec** %arrayidx3085, align 8, !tbaa !8 | |
%454 = bitcast %union.rec* %453 to %struct.closure_type* | |
br label %if.end3094 | |
if.else3086: ; preds = %if.end3079 | |
%idxprom308810240 = zext i32 %452 to i64 | |
%arrayidx3089 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom308810240 | |
%455 = bitcast %union.rec** %arrayidx3089 to %struct.word_type** | |
%456 = load %struct.word_type*, %struct.word_type** %455, align 8, !tbaa !8 | |
%ofpos3092 = getelementptr inbounds %struct.word_type, %struct.word_type* %456, i64 0, i32 1, i32 0 | |
%call3093 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3092) #5 | |
%.pre10486 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
br label %if.end3094 | |
if.end3094: ; preds = %if.else3086, %if.then3083 | |
%457 = phi %struct.closure_type* [ %.pre10486, %if.else3086 ], [ %454, %if.then3083 ] | |
%oactual3096 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %457, i64 0, i32 5 | |
%458 = bitcast %union.rec** %oactual3096 to %struct.word_type** | |
%459 = load %struct.word_type*, %struct.word_type** %458, align 8, !tbaa !10 | |
%ou23098 = getelementptr inbounds %struct.word_type, %struct.word_type* %459, i64 0, i32 2 | |
%os263099 = bitcast %union.SECOND_UNION* %ou23098 to %struct.anon.5* | |
%ohas_rpar3100 = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os263099, i64 0, i32 1 | |
%460 = bitcast [3 x i8]* %ohas_rpar3100 to i24* | |
%bf.load3101 = load i24, i24* %460, align 1 | |
%461 = and i24 %bf.load3101, 8 | |
%tobool3105.not = icmp eq i24 %461, 0 | |
br i1 %tobool3105.not, label %if.else3107, label %if.end3116 | |
if.else3107: ; preds = %if.end3094 | |
%call3108 = call fastcc i32 @Reduce() | |
%462 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp3109 = icmp eq i32 %462, %4 | |
br i1 %cmp3109, label %cleanup9179, label %if.end3116 | |
if.end3116: ; preds = %if.else3107, %if.end3094 | |
%obj_prev.21 = phi i32 [ %call3108, %if.else3107 ], [ 0, %if.end3094 ] | |
%call3117 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call3117, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb3118: ; preds = %for.cond581 | |
%ofpos3121 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %85, i64 0, i32 0 | |
%call3122 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 22, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.31, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3121) #5 | |
br label %for.cond581.backedge | |
sw.bb3123: ; preds = %for.cond581 | |
%463 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 5 | |
%464 = load %union.rec*, %union.rec** %463, align 8, !tbaa !10 | |
%cmp3126 = icmp eq %union.rec* %464, null | |
br i1 %cmp3126, label %if.then3128, label %sw.bb3138 | |
if.then3128: ; preds = %sw.bb3123 | |
%ofpos3131 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %85, i64 0, i32 0 | |
%call3132 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 23, i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.32, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos3131, i8* noundef getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i64 0, i64 0), i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.17, i64 0, i64 0)) #5 | |
%465 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%otype3136 = getelementptr inbounds %struct.word_type, %struct.word_type* %465, i64 0, i32 1, i32 0, i32 0 | |
store i8 102, i8* %otype3136, align 8, !tbaa !10 | |
br label %sw.bb3138 | |
sw.bb3138: ; preds = %if.then3128, %sw.bb3123, %for.cond581 | |
%466 = phi %struct.word_type* [ %87, %sw.bb3123 ], [ %465, %if.then3128 ], [ %87, %for.cond581 ] | |
%tobool3139.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool3139.not, label %if.end3321, label %if.then3140 | |
if.then3140: ; preds = %sw.bb3138 | |
%ou23144 = getelementptr inbounds %struct.word_type, %struct.word_type* %466, i64 0, i32 2 | |
%os213145 = bitcast %union.SECOND_UNION* %ou23144 to %struct.anon.0* | |
%ohspace3146 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213145, i64 0, i32 1 | |
%467 = load i8, i8* %ohspace3146, align 1, !tbaa !10 | |
%conv3147 = zext i8 %467 to i32 | |
%ovspace3151 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213145, i64 0, i32 2 | |
%468 = load i8, i8* %ovspace3151, align 2, !tbaa !10 | |
%conv3152 = zext i8 %468 to i32 | |
%add3153 = sub nsw i32 0, %conv3152 | |
%cmp3154.not = icmp eq i32 %conv3147, %add3153 | |
br i1 %cmp3154.not, label %if.else3157, label %land.rhs3174.preheader | |
if.else3157: ; preds = %if.then3140 | |
%otype3161 = getelementptr inbounds %struct.word_type, %struct.word_type* %466, i64 0, i32 1, i32 0, i32 0 | |
%469 = load i8, i8* %otype3161, align 8, !tbaa !10 | |
%cmp3163 = icmp eq i8 %469, 102 | |
%cmp3166 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9206 = select i1 %cmp3163, i1 true, i1 %cmp3166 | |
%.10145 = select i1 %or.cond9206, i8 7, i8 103 | |
br label %land.rhs3174.preheader | |
land.rhs3174.preheader: ; preds = %if.else3157, %if.then3140 | |
%typ3141.0 = phi i32 [ 100, %if.then3140 ], [ 101, %if.else3157 ] | |
%prec3142.0 = phi i8 [ 7, %if.then3140 ], [ %.10145, %if.else3157 ] | |
br label %land.rhs3174 | |
land.rhs3174: ; preds = %while.body3185, %land.rhs3174.preheader | |
%470 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom3175 = sext i32 %470 to i64 | |
%arrayidx3176 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3175 | |
%471 = bitcast %union.rec** %arrayidx3176 to %struct.word_type** | |
%472 = load %struct.word_type*, %struct.word_type** %471, align 8, !tbaa !8 | |
%ou23178 = getelementptr inbounds %struct.word_type, %struct.word_type* %472, i64 0, i32 2 | |
%oprecedence3180 = bitcast %union.SECOND_UNION* %ou23178 to i8* | |
%473 = load i8, i8* %oprecedence3180, align 8, !tbaa !10 | |
%cmp3182.not = icmp ugt i8 %prec3142.0, %473 | |
br i1 %cmp3182.not, label %if.then3189, label %while.body3185 | |
while.body3185: ; preds = %land.rhs3174 | |
%call3186 = call fastcc i32 @Reduce() | |
%tobool3173.not = icmp eq i32 %call3186, 0 | |
br i1 %tobool3173.not, label %if.end3321, label %land.rhs3174, !llvm.loop !18 | |
if.then3189: ; preds = %land.rhs3174 | |
%474 = zext i32 %typ3141.0 to i64 | |
%arrayidx3191 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %474 | |
%475 = load i8, i8* %arrayidx3191, align 1, !tbaa !10 | |
%conv3192 = zext i8 %475 to i32 | |
store i32 %conv3192, i32* @zz_size, align 4, !tbaa !4 | |
%476 = zext i8 %475 to i64 | |
%arrayidx3200 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %476 | |
%477 = load %union.rec*, %union.rec** %arrayidx3200, align 8, !tbaa !8 | |
%cmp3201 = icmp eq %union.rec* %477, null | |
br i1 %cmp3201, label %if.then3203, label %if.else3205 | |
if.then3203: ; preds = %if.then3189 | |
%478 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call3204 = call %union.rec* @GetMemory(i32 noundef %conv3192, %struct.FILE_POS* noundef %478) #5 | |
store %union.rec* %call3204, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10484 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end3215 | |
if.else3205: ; preds = %if.then3189 | |
store %union.rec* %477, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred3211 = getelementptr inbounds %union.rec, %union.rec* %477, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%479 = load %union.rec*, %union.rec** %opred3211, align 8, !tbaa !10 | |
store %union.rec* %479, %union.rec** %arrayidx3200, align 8, !tbaa !8 | |
br label %if.end3215 | |
if.end3215: ; preds = %if.else3205, %if.then3203 | |
%480 = phi i32 [ %.pre10484, %if.then3203 ], [ %470, %if.else3205 ] | |
%.in10528 = phi %union.rec* [ %call3204, %if.then3203 ], [ %477, %if.else3205 ] | |
%conv3216 = trunc i32 %typ3141.0 to i8 | |
%481 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv3216, i8* %481, align 8, !tbaa !10 | |
%482 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10528, %union.rec** %482, align 8, !tbaa !10 | |
%483 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10528, %union.rec** %483, align 8, !tbaa !10 | |
%484 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10528, %union.rec** %484, align 8, !tbaa !10 | |
%485 = getelementptr %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10528, %union.rec** %485, align 8, !tbaa !10 | |
%486 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 2 | |
%os213240 = bitcast %union.SECOND_UNION* %486 to %struct.anon.0* | |
%oprecedence3241 = bitcast %union.SECOND_UNION* %486 to i8* | |
store i8 %prec3142.0, i8* %oprecedence3241, align 8, !tbaa !10 | |
%487 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou23243 = getelementptr inbounds %struct.word_type, %struct.word_type* %487, i64 0, i32 2 | |
%os213244 = bitcast %union.SECOND_UNION* %ou23243 to %struct.anon.0* | |
%ovspace3245 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213244, i64 0, i32 2 | |
%488 = load i8, i8* %ovspace3245, align 2, !tbaa !10 | |
%ovspace3249 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213240, i64 0, i32 2 | |
store i8 %488, i8* %ovspace3249, align 2, !tbaa !10 | |
%ohspace3253 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213244, i64 0, i32 1 | |
%489 = load i8, i8* %ohspace3253, align 1, !tbaa !10 | |
%ohspace3257 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213240, i64 0, i32 1 | |
store i8 %489, i8* %ohspace3257, align 1, !tbaa !10 | |
%os53258 = bitcast %union.rec* %.in10528 to %struct.gapobj_type* | |
%490 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os53258, i64 0, i32 3, i32 0 | |
%bf.load3260 = load i16, i16* %490, align 4 | |
%bf.clear3266 = and i16 %bf.load3260, -769 | |
%bf.set3267 = or i16 %bf.clear3266, 512 | |
store i16 %bf.set3267, i16* %490, align 4 | |
%ofile_num3271 = getelementptr inbounds %struct.word_type, %struct.word_type* %487, i64 0, i32 1, i32 0, i32 2 | |
%491 = load i16, i16* %ofile_num3271, align 2, !tbaa !10 | |
%492 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %491, i16* %492, align 2, !tbaa !10 | |
%oline_num3279 = getelementptr inbounds %struct.word_type, %struct.word_type* %487, i64 0, i32 1, i32 0, i32 3 | |
%bf.load3280 = load i32, i32* %oline_num3279, align 4 | |
%bf.clear3281 = and i32 %bf.load3280, 1048575 | |
%493 = getelementptr inbounds %union.rec, %union.rec* %.in10528, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load3286 = load i32, i32* %493, align 4 | |
%bf.clear3288 = and i32 %bf.load3286, -1048576 | |
%bf.set3289 = or i32 %bf.clear3288, %bf.clear3281 | |
store i32 %bf.set3289, i32* %493, align 4 | |
%bf.load3294 = load i32, i32* %oline_num3279, align 4 | |
%bf.lshr3295 = and i32 %bf.load3294, -1048576 | |
%bf.set3304 = or i32 %bf.lshr3295, %bf.clear3281 | |
store i32 %bf.set3304, i32* %493, align 4 | |
%inc3305 = add nsw i32 %480, 1 | |
store i32 %inc3305, i32* @ttop, align 4, !tbaa !4 | |
%cmp3306 = icmp slt i32 %480, 99 | |
br i1 %cmp3306, label %if.then3308, label %if.else3311 | |
if.then3308: ; preds = %if.end3215 | |
%idxprom3309 = sext i32 %inc3305 to i64 | |
%arrayidx3310 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3309 | |
store %union.rec* %.in10528, %union.rec** %arrayidx3310, align 8, !tbaa !8 | |
br label %if.end3321 | |
if.else3311: ; preds = %if.end3215 | |
%idxprom331310245 = zext i32 %480 to i64 | |
%arrayidx3314 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom331310245 | |
%494 = bitcast %union.rec** %arrayidx3314 to %struct.word_type** | |
%495 = load %struct.word_type*, %struct.word_type** %494, align 8, !tbaa !8 | |
%ofpos3317 = getelementptr inbounds %struct.word_type, %struct.word_type* %495, i64 0, i32 1, i32 0 | |
%call3318 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3317) #5 | |
br label %if.end3321 | |
if.end3321: ; preds = %if.else3311, %if.then3308, %while.body3185, %sw.bb3138 | |
%496 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc3322 = add nsw i32 %496, 1 | |
store i32 %inc3322, i32* @ttop, align 4, !tbaa !4 | |
%cmp3323 = icmp slt i32 %496, 99 | |
br i1 %cmp3323, label %if.then3325, label %if.else3328 | |
if.then3325: ; preds = %if.end3321 | |
%497 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%idxprom3326 = sext i32 %inc3322 to i64 | |
%arrayidx3327 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3326 | |
store %union.rec* %497, %union.rec** %arrayidx3327, align 8, !tbaa !8 | |
br label %if.end3336 | |
if.else3328: ; preds = %if.end3321 | |
%idxprom333010244 = zext i32 %496 to i64 | |
%arrayidx3331 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom333010244 | |
%498 = bitcast %union.rec** %arrayidx3331 to %struct.word_type** | |
%499 = load %struct.word_type*, %struct.word_type** %498, align 8, !tbaa !8 | |
%ofpos3334 = getelementptr inbounds %struct.word_type, %struct.word_type* %499, i64 0, i32 1, i32 0 | |
%call3335 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3334) #5 | |
br label %if.end3336 | |
if.end3336: ; preds = %if.else3328, %if.then3325 | |
%call3337 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call3337, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb3338: ; preds = %for.cond581 | |
%500 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 5 | |
%501 = load %union.rec*, %union.rec** %500, align 8, !tbaa !10 | |
%cmp3341 = icmp eq %union.rec* %501, null | |
br i1 %cmp3341, label %if.then3343, label %if.end3572 | |
if.then3343: ; preds = %sw.bb3338 | |
%call3344 = call %union.rec* @LexGetToken() #5 | |
%502 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 1 | |
%otype3348 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %502, i64 0, i32 0, i32 0 | |
%503 = load i8, i8* %otype3348, align 8, !tbaa !10 | |
switch i8 %503, label %if.else3560 [ | |
i8 2, label %if.then3352 | |
i8 53, label %if.then3404 | |
i8 54, label %if.then3454 | |
i8 11, label %land.lhs.true3504 | |
] | |
if.then3352: ; preds = %if.then3343 | |
%504 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 5 | |
%505 = load %union.rec*, %union.rec** %504, align 8, !tbaa !10 | |
%506 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%oactual3356 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %506, i64 0, i32 5 | |
store %union.rec* %505, %union.rec** %oactual3356, align 8, !tbaa !10 | |
store %union.rec* %call3344, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%507 = load i8, i8* %otype3348, align 8, !tbaa !10 | |
%.off10164 = add i8 %507, -11 | |
%switch10165 = icmp ult i8 %.off10164, 2 | |
%508 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom3383 = zext i8 %507 to i64 | |
%arrayidx3384 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom3383 | |
%cond3387.in.in = select i1 %switch10165, i8* %508, i8* %arrayidx3384 | |
%cond3387.in = load i8, i8* %cond3387.in.in, align 1, !tbaa !10 | |
%cond3387 = zext i8 %cond3387.in to i32 | |
store i32 %cond3387, i32* @zz_size, align 4, !tbaa !4 | |
%509 = zext i8 %cond3387.in to i64 | |
%arrayidx3389 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %509 | |
%510 = load %union.rec*, %union.rec** %arrayidx3389, align 8, !tbaa !8 | |
%opred3393 = getelementptr %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %510, %union.rec** %opred3393, align 8, !tbaa !10 | |
%511 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%512 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom3394 = sext i32 %512 to i64 | |
%arrayidx3395 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom3394 | |
store %union.rec* %511, %union.rec** %arrayidx3395, align 8, !tbaa !8 | |
br label %if.end3572 | |
if.then3404: ; preds = %if.then3343 | |
%513 = load %union.rec*, %union.rec** @VerbatimSym, align 8, !tbaa !8 | |
%514 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%oactual3406 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %514, i64 0, i32 5 | |
store %union.rec* %513, %union.rec** %oactual3406, align 8, !tbaa !10 | |
store %union.rec* %call3344, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%515 = load i8, i8* %otype3348, align 8, !tbaa !10 | |
%.off10166 = add i8 %515, -11 | |
%switch10167 = icmp ult i8 %.off10166, 2 | |
%516 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom3433 = zext i8 %515 to i64 | |
%arrayidx3434 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom3433 | |
%cond3437.in.in = select i1 %switch10167, i8* %516, i8* %arrayidx3434 | |
%cond3437.in = load i8, i8* %cond3437.in.in, align 1, !tbaa !10 | |
%cond3437 = zext i8 %cond3437.in to i32 | |
store i32 %cond3437, i32* @zz_size, align 4, !tbaa !4 | |
%517 = zext i8 %cond3437.in to i64 | |
%arrayidx3439 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %517 | |
%518 = load %union.rec*, %union.rec** %arrayidx3439, align 8, !tbaa !8 | |
%opred3443 = getelementptr %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %518, %union.rec** %opred3443, align 8, !tbaa !10 | |
%519 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%520 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom3444 = sext i32 %520 to i64 | |
%arrayidx3445 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom3444 | |
store %union.rec* %519, %union.rec** %arrayidx3445, align 8, !tbaa !8 | |
br label %if.end3572 | |
if.then3454: ; preds = %if.then3343 | |
%521 = load %union.rec*, %union.rec** @RawVerbatimSym, align 8, !tbaa !8 | |
%522 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%oactual3456 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %522, i64 0, i32 5 | |
store %union.rec* %521, %union.rec** %oactual3456, align 8, !tbaa !10 | |
store %union.rec* %call3344, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%523 = load i8, i8* %otype3348, align 8, !tbaa !10 | |
%.off10168 = add i8 %523, -11 | |
%switch10169 = icmp ult i8 %.off10168, 2 | |
%524 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom3483 = zext i8 %523 to i64 | |
%arrayidx3484 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom3483 | |
%cond3487.in.in = select i1 %switch10169, i8* %524, i8* %arrayidx3484 | |
%cond3487.in = load i8, i8* %cond3487.in.in, align 1, !tbaa !10 | |
%cond3487 = zext i8 %cond3487.in to i32 | |
store i32 %cond3487, i32* @zz_size, align 4, !tbaa !4 | |
%525 = zext i8 %cond3487.in to i64 | |
%arrayidx3489 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %525 | |
%526 = load %union.rec*, %union.rec** %arrayidx3489, align 8, !tbaa !8 | |
%opred3493 = getelementptr %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %526, %union.rec** %opred3493, align 8, !tbaa !10 | |
%527 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%528 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom3494 = sext i32 %528 to i64 | |
%arrayidx3495 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom3494 | |
store %union.rec* %527, %union.rec** %arrayidx3495, align 8, !tbaa !8 | |
br label %if.end3572 | |
land.lhs.true3504: ; preds = %if.then3343 | |
%ostring3506 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 4 | |
%arrayidx3507 = bitcast %union.FOURTH_UNION* %ostring3506 to i8* | |
%529 = load i8, i8* %arrayidx3507, align 8, !tbaa !10 | |
%cmp3509 = icmp eq i8 %529, 64 | |
br i1 %cmp3509, label %if.then3511, label %if.else3560 | |
if.then3511: ; preds = %land.lhs.true3504 | |
%ofpos3514 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %502, i64 0, i32 0 | |
%call3518 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 24, i8* noundef getelementptr inbounds ([47 x i8], [47 x i8]* @.str.34, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos3514, %union.FOURTH_UNION* noundef nonnull %ostring3506, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0)) #5 | |
%530 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%oactual3520 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %530, i64 0, i32 5 | |
store %union.rec* null, %union.rec** %oactual3520, align 8, !tbaa !10 | |
store %union.rec* %call3344, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%531 = load i8, i8* %otype3348, align 8, !tbaa !10 | |
%.off10170 = add i8 %531, -11 | |
%switch10171 = icmp ult i8 %.off10170, 2 | |
%532 = getelementptr inbounds %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom3547 = zext i8 %531 to i64 | |
%arrayidx3548 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom3547 | |
%cond3551.in.in = select i1 %switch10171, i8* %532, i8* %arrayidx3548 | |
%cond3551.in = load i8, i8* %cond3551.in.in, align 1, !tbaa !10 | |
%cond3551 = zext i8 %cond3551.in to i32 | |
store i32 %cond3551, i32* @zz_size, align 4, !tbaa !4 | |
%533 = zext i8 %cond3551.in to i64 | |
%arrayidx3553 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %533 | |
%534 = load %union.rec*, %union.rec** %arrayidx3553, align 8, !tbaa !8 | |
%opred3557 = getelementptr %union.rec, %union.rec* %call3344, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %534, %union.rec** %opred3557, align 8, !tbaa !10 | |
%535 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%536 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom3558 = sext i32 %536 to i64 | |
%arrayidx3559 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom3558 | |
store %union.rec* %535, %union.rec** %arrayidx3559, align 8, !tbaa !8 | |
br label %if.end3572 | |
if.else3560: ; preds = %land.lhs.true3504, %if.then3343 | |
%ofpos3563 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %502, i64 0, i32 0 | |
%call3564 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 25, i8* noundef getelementptr inbounds ([25 x i8], [25 x i8]* @.str.36, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos3563, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0)) #5 | |
%537 = load %struct.closure_type*, %struct.closure_type** %83, align 8, !tbaa !8 | |
%oactual3566 = getelementptr inbounds %struct.closure_type, %struct.closure_type* %537, i64 0, i32 5 | |
store %union.rec* null, %union.rec** %oactual3566, align 8, !tbaa !10 | |
br label %if.end3572 | |
if.end3572: ; preds = %if.else3560, %if.then3511, %if.then3454, %if.then3404, %if.then3352, %sw.bb3338 | |
%x.0 = phi %union.rec* [ null, %if.then3352 ], [ null, %if.then3404 ], [ null, %if.then3454 ], [ null, %if.then3511 ], [ %call3344, %if.else3560 ], [ null, %sw.bb3338 ] | |
br label %for.cond3573 | |
for.cond3573: ; preds = %for.cond3573.backedge, %if.end3572 | |
%obj_prev.23 = phi i32 [ %obj_prev.1, %if.end3572 ], [ %obj_prev.23.be, %for.cond3573.backedge ] | |
%tobool3574.not = icmp eq i32 %obj_prev.23, 0 | |
br i1 %tobool3574.not, label %if.then3575, label %if.else3595 | |
if.then3575: ; preds = %for.cond3573 | |
%538 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos3578 = getelementptr inbounds %struct.word_type, %struct.word_type* %538, i64 0, i32 1, i32 0 | |
%call3579 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos3578) #5 | |
store %union.rec* %call3579, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%539 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc3580 = add nsw i32 %539, 1 | |
store i32 %inc3580, i32* @otop, align 4, !tbaa !4 | |
%cmp3581 = icmp slt i32 %539, 99 | |
br i1 %cmp3581, label %if.then3583, label %if.else3586 | |
if.then3583: ; preds = %if.then3575 | |
%idxprom3584 = sext i32 %inc3580 to i64 | |
%arrayidx3585 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom3584 | |
store %union.rec* %call3579, %union.rec** %arrayidx3585, align 8, !tbaa !8 | |
br label %for.cond3573.backedge | |
for.cond3573.backedge: ; preds = %if.then3611, %if.else3586, %if.then3583 | |
%obj_prev.23.be = phi i32 [ %call3612, %if.then3611 ], [ 1, %if.else3586 ], [ 1, %if.then3583 ] | |
br label %for.cond3573 | |
if.else3586: ; preds = %if.then3575 | |
%idxprom358810247 = zext i32 %539 to i64 | |
%arrayidx3589 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom358810247 | |
%540 = bitcast %union.rec** %arrayidx3589 to %struct.word_type** | |
%541 = load %struct.word_type*, %struct.word_type** %540, align 8, !tbaa !8 | |
%ofpos3592 = getelementptr inbounds %struct.word_type, %struct.word_type* %541, i64 0, i32 1, i32 0 | |
%call3593 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3592) #5 | |
br label %for.cond3573.backedge | |
if.else3595: ; preds = %for.cond3573 | |
%542 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom3596 = sext i32 %542 to i64 | |
%arrayidx3597 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3596 | |
%543 = bitcast %union.rec** %arrayidx3597 to %struct.word_type** | |
%544 = load %struct.word_type*, %struct.word_type** %543, align 8, !tbaa !8 | |
%ou23599 = getelementptr inbounds %struct.word_type, %struct.word_type* %544, i64 0, i32 2 | |
%oprecedence3601 = bitcast %union.SECOND_UNION* %ou23599 to i8* | |
%545 = load i8, i8* %oprecedence3601, align 8, !tbaa !10 | |
%546 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou23604 = getelementptr inbounds %struct.word_type, %struct.word_type* %546, i64 0, i32 2 | |
%oprecedence3606 = bitcast %union.SECOND_UNION* %ou23604 to i8* | |
%547 = load i8, i8* %oprecedence3606, align 8, !tbaa !10 | |
%cmp3609.not = icmp ult i8 %545, %547 | |
br i1 %cmp3609.not, label %for.end3623, label %if.then3611 | |
if.then3611: ; preds = %if.else3595 | |
%call3612 = call fastcc i32 @Reduce() | |
%548 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp3613 = icmp eq i32 %548, %4 | |
br i1 %cmp3613, label %if.then3615, label %for.cond3573.backedge | |
if.then3615: ; preds = %if.then3611 | |
%549 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
for.end3623: ; preds = %if.else3595 | |
%inc3624 = add nsw i32 %542, 1 | |
store i32 %inc3624, i32* @ttop, align 4, !tbaa !4 | |
%cmp3625 = icmp slt i32 %542, 99 | |
br i1 %cmp3625, label %if.then3627, label %if.else3630 | |
if.then3627: ; preds = %for.end3623 | |
%idxprom3628 = sext i32 %inc3624 to i64 | |
%arrayidx3629 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3628 | |
%550 = bitcast %union.rec** %arrayidx3629 to %struct.word_type** | |
store %struct.word_type* %546, %struct.word_type** %550, align 8, !tbaa !8 | |
br label %if.end3638 | |
if.else3630: ; preds = %for.end3623 | |
%ofpos3636 = getelementptr inbounds %struct.word_type, %struct.word_type* %544, i64 0, i32 1, i32 0 | |
%call3637 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3636) #5 | |
br label %if.end3638 | |
if.end3638: ; preds = %if.else3630, %if.then3627 | |
%call3639 = call fastcc i32 @Reduce() | |
%551 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp3640 = icmp eq i32 %551, %4 | |
br i1 %cmp3640, label %cleanup9179, label %if.end3646 | |
if.end3646: ; preds = %if.end3638 | |
%cmp3647.not = icmp eq %union.rec* %x.0, null | |
br i1 %cmp3647.not, label %cond.false3650, label %cond.end3652 | |
cond.false3650: ; preds = %if.end3646 | |
%call3651 = call %union.rec* @LexGetToken() #5 | |
br label %cond.end3652 | |
cond.end3652: ; preds = %cond.false3650, %if.end3646 | |
%cond3653 = phi %union.rec* [ %call3651, %cond.false3650 ], [ %x.0, %if.end3646 ] | |
store %union.rec* %cond3653, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
for.cond3655: ; preds = %for.cond3655.backedge, %for.cond581 | |
%obj_prev.25 = phi i32 [ %obj_prev.25.be, %for.cond3655.backedge ], [ %obj_prev.1, %for.cond581 ] | |
%tobool3656.not = icmp eq i32 %obj_prev.25, 0 | |
br i1 %tobool3656.not, label %if.then3657, label %if.else3677 | |
if.then3657: ; preds = %for.cond3655 | |
%552 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos3660 = getelementptr inbounds %struct.word_type, %struct.word_type* %552, i64 0, i32 1, i32 0 | |
%call3661 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos3660) #5 | |
store %union.rec* %call3661, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%553 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc3662 = add nsw i32 %553, 1 | |
store i32 %inc3662, i32* @otop, align 4, !tbaa !4 | |
%cmp3663 = icmp slt i32 %553, 99 | |
br i1 %cmp3663, label %if.then3665, label %if.else3668 | |
if.then3665: ; preds = %if.then3657 | |
%idxprom3666 = sext i32 %inc3662 to i64 | |
%arrayidx3667 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom3666 | |
store %union.rec* %call3661, %union.rec** %arrayidx3667, align 8, !tbaa !8 | |
br label %for.cond3655.backedge | |
for.cond3655.backedge: ; preds = %if.then3693, %if.else3668, %if.then3665 | |
%obj_prev.25.be = phi i32 [ %call3694, %if.then3693 ], [ 1, %if.else3668 ], [ 1, %if.then3665 ] | |
br label %for.cond3655 | |
if.else3668: ; preds = %if.then3657 | |
%idxprom367010248 = zext i32 %553 to i64 | |
%arrayidx3671 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom367010248 | |
%554 = bitcast %union.rec** %arrayidx3671 to %struct.word_type** | |
%555 = load %struct.word_type*, %struct.word_type** %554, align 8, !tbaa !8 | |
%ofpos3674 = getelementptr inbounds %struct.word_type, %struct.word_type* %555, i64 0, i32 1, i32 0 | |
%call3675 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3674) #5 | |
br label %for.cond3655.backedge | |
if.else3677: ; preds = %for.cond3655 | |
%556 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom3678 = sext i32 %556 to i64 | |
%arrayidx3679 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3678 | |
%557 = bitcast %union.rec** %arrayidx3679 to %struct.word_type** | |
%558 = load %struct.word_type*, %struct.word_type** %557, align 8, !tbaa !8 | |
%ou23681 = getelementptr inbounds %struct.word_type, %struct.word_type* %558, i64 0, i32 2 | |
%oprecedence3683 = bitcast %union.SECOND_UNION* %ou23681 to i8* | |
%559 = load i8, i8* %oprecedence3683, align 8, !tbaa !10 | |
%560 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou23686 = getelementptr inbounds %struct.word_type, %struct.word_type* %560, i64 0, i32 2 | |
%oprecedence3688 = bitcast %union.SECOND_UNION* %ou23686 to i8* | |
%561 = load i8, i8* %oprecedence3688, align 8, !tbaa !10 | |
%cmp3691.not = icmp ult i8 %559, %561 | |
br i1 %cmp3691.not, label %for.end3705, label %if.then3693 | |
if.then3693: ; preds = %if.else3677 | |
%call3694 = call fastcc i32 @Reduce() | |
%562 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp3695 = icmp eq i32 %562, %4 | |
br i1 %cmp3695, label %if.then3697, label %for.cond3655.backedge | |
if.then3697: ; preds = %if.then3693 | |
%563 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
for.end3705: ; preds = %if.else3677 | |
%inc3706 = add nsw i32 %556, 1 | |
store i32 %inc3706, i32* @ttop, align 4, !tbaa !4 | |
%cmp3707 = icmp slt i32 %556, 99 | |
br i1 %cmp3707, label %if.then3709, label %if.else3712 | |
if.then3709: ; preds = %for.end3705 | |
%idxprom3710 = sext i32 %inc3706 to i64 | |
%arrayidx3711 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3710 | |
%564 = bitcast %union.rec** %arrayidx3711 to %struct.word_type** | |
store %struct.word_type* %560, %struct.word_type** %564, align 8, !tbaa !8 | |
br label %if.end3720 | |
if.else3712: ; preds = %for.end3705 | |
%ofpos3718 = getelementptr inbounds %struct.word_type, %struct.word_type* %558, i64 0, i32 1, i32 0 | |
%call3719 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3718) #5 | |
br label %if.end3720 | |
if.end3720: ; preds = %if.else3712, %if.then3709 | |
%call3721 = call fastcc i32 @Reduce() | |
%565 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp3722 = icmp eq i32 %565, %4 | |
br i1 %cmp3722, label %cleanup9179, label %if.end3728 | |
if.end3728: ; preds = %if.end3720 | |
%call3729 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call3729, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb3730: ; preds = %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581, %for.cond581 | |
%ofpos3733 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 1, i32 0 | |
%566 = getelementptr inbounds %union.rec, %union.rec* %84, i64 0, i32 0, i32 5 | |
%567 = load %union.rec*, %union.rec** %566, align 8, !tbaa !10 | |
%call3736 = call i8* @SymName(%union.rec* noundef %567) #5 | |
%call3737 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 26, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.37, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3733, i8* noundef %call3736) #5 | |
br label %for.cond581.backedge | |
sw.bb3738: ; preds = %for.cond581 | |
%call3739 = call fastcc %union.rec* @ParseEnvClosure(%union.rec* noundef nonnull %84, %union.rec* noundef %encl) | |
%tobool3740.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool3740.not, label %if.end3922, label %if.then3741 | |
if.then3741: ; preds = %sw.bb3738 | |
%568 = getelementptr inbounds %union.rec, %union.rec* %call3739, i64 0, i32 0, i32 2 | |
%os213746 = bitcast %union.SECOND_UNION* %568 to %struct.anon.0* | |
%ohspace3747 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213746, i64 0, i32 1 | |
%569 = load i8, i8* %ohspace3747, align 1, !tbaa !10 | |
%conv3748 = zext i8 %569 to i32 | |
%ovspace3752 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213746, i64 0, i32 2 | |
%570 = load i8, i8* %ovspace3752, align 2, !tbaa !10 | |
%conv3753 = zext i8 %570 to i32 | |
%add3754 = sub nsw i32 0, %conv3753 | |
%cmp3755.not = icmp eq i32 %conv3748, %add3754 | |
br i1 %cmp3755.not, label %if.else3758, label %land.rhs3775.preheader | |
if.else3758: ; preds = %if.then3741 | |
%otype3762 = getelementptr inbounds %union.rec, %union.rec* %call3739, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%571 = load i8, i8* %otype3762, align 8, !tbaa !10 | |
%cmp3764 = icmp eq i8 %571, 102 | |
%cmp3767 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9207 = select i1 %cmp3764, i1 true, i1 %cmp3767 | |
%.10146 = select i1 %or.cond9207, i8 7, i8 103 | |
br label %land.rhs3775.preheader | |
land.rhs3775.preheader: ; preds = %if.else3758, %if.then3741 | |
%typ3742.0 = phi i32 [ 100, %if.then3741 ], [ 101, %if.else3758 ] | |
%prec3743.0 = phi i8 [ 7, %if.then3741 ], [ %.10146, %if.else3758 ] | |
br label %land.rhs3775 | |
land.rhs3775: ; preds = %while.body3786, %land.rhs3775.preheader | |
%572 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom3776 = sext i32 %572 to i64 | |
%arrayidx3777 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3776 | |
%573 = bitcast %union.rec** %arrayidx3777 to %struct.word_type** | |
%574 = load %struct.word_type*, %struct.word_type** %573, align 8, !tbaa !8 | |
%ou23779 = getelementptr inbounds %struct.word_type, %struct.word_type* %574, i64 0, i32 2 | |
%oprecedence3781 = bitcast %union.SECOND_UNION* %ou23779 to i8* | |
%575 = load i8, i8* %oprecedence3781, align 8, !tbaa !10 | |
%cmp3783.not = icmp ugt i8 %prec3743.0, %575 | |
br i1 %cmp3783.not, label %if.then3790, label %while.body3786 | |
while.body3786: ; preds = %land.rhs3775 | |
%call3787 = call fastcc i32 @Reduce() | |
%tobool3774.not = icmp eq i32 %call3787, 0 | |
br i1 %tobool3774.not, label %if.end3922, label %land.rhs3775, !llvm.loop !19 | |
if.then3790: ; preds = %land.rhs3775 | |
%576 = zext i32 %typ3742.0 to i64 | |
%arrayidx3792 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %576 | |
%577 = load i8, i8* %arrayidx3792, align 1, !tbaa !10 | |
%conv3793 = zext i8 %577 to i32 | |
store i32 %conv3793, i32* @zz_size, align 4, !tbaa !4 | |
%578 = zext i8 %577 to i64 | |
%arrayidx3801 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %578 | |
%579 = load %union.rec*, %union.rec** %arrayidx3801, align 8, !tbaa !8 | |
%cmp3802 = icmp eq %union.rec* %579, null | |
br i1 %cmp3802, label %if.then3804, label %if.else3806 | |
if.then3804: ; preds = %if.then3790 | |
%580 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call3805 = call %union.rec* @GetMemory(i32 noundef %conv3793, %struct.FILE_POS* noundef %580) #5 | |
store %union.rec* %call3805, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10483 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end3816 | |
if.else3806: ; preds = %if.then3790 | |
store %union.rec* %579, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred3812 = getelementptr inbounds %union.rec, %union.rec* %579, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%581 = load %union.rec*, %union.rec** %opred3812, align 8, !tbaa !10 | |
store %union.rec* %581, %union.rec** %arrayidx3801, align 8, !tbaa !8 | |
br label %if.end3816 | |
if.end3816: ; preds = %if.else3806, %if.then3804 | |
%582 = phi i32 [ %.pre10483, %if.then3804 ], [ %572, %if.else3806 ] | |
%.in10526 = phi %union.rec* [ %call3805, %if.then3804 ], [ %579, %if.else3806 ] | |
%conv3817 = trunc i32 %typ3742.0 to i8 | |
%583 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv3817, i8* %583, align 8, !tbaa !10 | |
%584 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10526, %union.rec** %584, align 8, !tbaa !10 | |
%585 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10526, %union.rec** %585, align 8, !tbaa !10 | |
%586 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10526, %union.rec** %586, align 8, !tbaa !10 | |
%587 = getelementptr %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10526, %union.rec** %587, align 8, !tbaa !10 | |
%588 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 2 | |
%os213841 = bitcast %union.SECOND_UNION* %588 to %struct.anon.0* | |
%oprecedence3842 = bitcast %union.SECOND_UNION* %588 to i8* | |
store i8 %prec3743.0, i8* %oprecedence3842, align 8, !tbaa !10 | |
%589 = load i8, i8* %ovspace3752, align 2, !tbaa !10 | |
%ovspace3850 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213841, i64 0, i32 2 | |
store i8 %589, i8* %ovspace3850, align 2, !tbaa !10 | |
%590 = load i8, i8* %ohspace3747, align 1, !tbaa !10 | |
%ohspace3858 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213841, i64 0, i32 1 | |
store i8 %590, i8* %ohspace3858, align 1, !tbaa !10 | |
%os53859 = bitcast %union.rec* %.in10526 to %struct.gapobj_type* | |
%591 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os53859, i64 0, i32 3, i32 0 | |
%bf.load3861 = load i16, i16* %591, align 4 | |
%bf.clear3867 = and i16 %bf.load3861, -769 | |
%bf.set3868 = or i16 %bf.clear3867, 512 | |
store i16 %bf.set3868, i16* %591, align 4 | |
%ofile_num3872 = getelementptr inbounds %union.rec, %union.rec* %call3739, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%592 = load i16, i16* %ofile_num3872, align 2, !tbaa !10 | |
%593 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %592, i16* %593, align 2, !tbaa !10 | |
%oline_num3880 = getelementptr inbounds %union.rec, %union.rec* %call3739, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load3881 = load i32, i32* %oline_num3880, align 4 | |
%bf.clear3882 = and i32 %bf.load3881, 1048575 | |
%594 = getelementptr inbounds %union.rec, %union.rec* %.in10526, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load3887 = load i32, i32* %594, align 4 | |
%bf.clear3889 = and i32 %bf.load3887, -1048576 | |
%bf.set3890 = or i32 %bf.clear3889, %bf.clear3882 | |
store i32 %bf.set3890, i32* %594, align 4 | |
%bf.load3895 = load i32, i32* %oline_num3880, align 4 | |
%bf.lshr3896 = and i32 %bf.load3895, -1048576 | |
%bf.set3905 = or i32 %bf.lshr3896, %bf.clear3882 | |
store i32 %bf.set3905, i32* %594, align 4 | |
%inc3906 = add nsw i32 %582, 1 | |
store i32 %inc3906, i32* @ttop, align 4, !tbaa !4 | |
%cmp3907 = icmp slt i32 %582, 99 | |
br i1 %cmp3907, label %if.then3909, label %if.else3912 | |
if.then3909: ; preds = %if.end3816 | |
%idxprom3910 = sext i32 %inc3906 to i64 | |
%arrayidx3911 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom3910 | |
store %union.rec* %.in10526, %union.rec** %arrayidx3911, align 8, !tbaa !8 | |
br label %if.end3922 | |
if.else3912: ; preds = %if.end3816 | |
%idxprom391410250 = zext i32 %582 to i64 | |
%arrayidx3915 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom391410250 | |
%595 = bitcast %union.rec** %arrayidx3915 to %struct.word_type** | |
%596 = load %struct.word_type*, %struct.word_type** %595, align 8, !tbaa !8 | |
%ofpos3918 = getelementptr inbounds %struct.word_type, %struct.word_type* %596, i64 0, i32 1, i32 0 | |
%call3919 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3918) #5 | |
br label %if.end3922 | |
if.end3922: ; preds = %if.else3912, %if.then3909, %while.body3786, %sw.bb3738 | |
store %union.rec* %call3739, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%597 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc3923 = add nsw i32 %597, 1 | |
store i32 %inc3923, i32* @otop, align 4, !tbaa !4 | |
%cmp3924 = icmp slt i32 %597, 99 | |
br i1 %cmp3924, label %if.then3926, label %if.else3929 | |
if.then3926: ; preds = %if.end3922 | |
%idxprom3927 = sext i32 %inc3923 to i64 | |
%arrayidx3928 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom3927 | |
store %union.rec* %call3739, %union.rec** %arrayidx3928, align 8, !tbaa !8 | |
br label %if.end3937 | |
if.else3929: ; preds = %if.end3922 | |
%idxprom393110249 = zext i32 %597 to i64 | |
%arrayidx3932 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom393110249 | |
%598 = bitcast %union.rec** %arrayidx3932 to %struct.word_type** | |
%599 = load %struct.word_type*, %struct.word_type** %598, align 8, !tbaa !8 | |
%ofpos3935 = getelementptr inbounds %struct.word_type, %struct.word_type* %599, i64 0, i32 1, i32 0 | |
%call3936 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos3935) #5 | |
br label %if.end3937 | |
if.end3937: ; preds = %if.else3929, %if.then3926 | |
%call3938 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call3938, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb3939: ; preds = %for.cond581 | |
%call3940 = call i64 @LexNextTokenPos() #5 | |
%600 = trunc i64 %call3940 to i32 | |
%conv3944 = add i32 %600, -5 | |
store i32 %conv3944, i32* %offset, align 4, !tbaa !4 | |
%601 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %601, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype3948 = getelementptr inbounds %union.rec, %union.rec* %601, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%602 = load i8, i8* %otype3948, align 8, !tbaa !10 | |
%.off10172 = add i8 %602, -11 | |
%switch10173 = icmp ult i8 %.off10172, 2 | |
%603 = getelementptr inbounds %union.rec, %union.rec* %601, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom3971 = zext i8 %602 to i64 | |
%arrayidx3972 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom3971 | |
%cond3975.in.in = select i1 %switch10173, i8* %603, i8* %arrayidx3972 | |
%cond3975.in = load i8, i8* %cond3975.in.in, align 1, !tbaa !10 | |
%cond3975 = zext i8 %cond3975.in to i32 | |
store i32 %cond3975, i32* @zz_size, align 4, !tbaa !4 | |
%604 = zext i8 %cond3975.in to i64 | |
%arrayidx3977 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %604 | |
%605 = load %union.rec*, %union.rec** %arrayidx3977, align 8, !tbaa !8 | |
%opred3981 = getelementptr %union.rec, %union.rec* %601, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %605, %union.rec** %opred3981, align 8, !tbaa !10 | |
%606 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%607 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom3982 = sext i32 %607 to i64 | |
%arrayidx3983 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom3982 | |
store %union.rec* %606, %union.rec** %arrayidx3983, align 8, !tbaa !8 | |
%call3984 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call3984, %union.rec** %t, align 8, !tbaa !8 | |
%call3985 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
%call3986 = call %union.rec* @SetEnv(%union.rec* noundef %call3985, %union.rec* noundef null) #5 | |
store %union.rec* %call3986, %union.rec** %env, align 8, !tbaa !8 | |
%tobool3987.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool3987.not, label %if.end4169, label %if.then3988 | |
if.then3988: ; preds = %sw.bb3939 | |
%608 = getelementptr inbounds %union.rec, %union.rec* %call3986, i64 0, i32 0, i32 2 | |
%os213993 = bitcast %union.SECOND_UNION* %608 to %struct.anon.0* | |
%ohspace3994 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213993, i64 0, i32 1 | |
%609 = load i8, i8* %ohspace3994, align 1, !tbaa !10 | |
%conv3995 = zext i8 %609 to i32 | |
%ovspace3999 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os213993, i64 0, i32 2 | |
%610 = load i8, i8* %ovspace3999, align 2, !tbaa !10 | |
%conv4000 = zext i8 %610 to i32 | |
%add4001 = sub nsw i32 0, %conv4000 | |
%cmp4002.not = icmp eq i32 %conv3995, %add4001 | |
br i1 %cmp4002.not, label %if.else4005, label %land.rhs4022.preheader | |
if.else4005: ; preds = %if.then3988 | |
%otype4009 = getelementptr inbounds %union.rec, %union.rec* %call3986, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%611 = load i8, i8* %otype4009, align 8, !tbaa !10 | |
%cmp4011 = icmp eq i8 %611, 102 | |
%cmp4014 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9208 = select i1 %cmp4011, i1 true, i1 %cmp4014 | |
%.10147 = select i1 %or.cond9208, i8 7, i8 103 | |
br label %land.rhs4022.preheader | |
land.rhs4022.preheader: ; preds = %if.else4005, %if.then3988 | |
%typ3989.0 = phi i32 [ 100, %if.then3988 ], [ 101, %if.else4005 ] | |
%prec3990.0 = phi i8 [ 7, %if.then3988 ], [ %.10147, %if.else4005 ] | |
br label %land.rhs4022 | |
land.rhs4022: ; preds = %while.body4033, %land.rhs4022.preheader | |
%612 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom4023 = sext i32 %612 to i64 | |
%arrayidx4024 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4023 | |
%613 = bitcast %union.rec** %arrayidx4024 to %struct.word_type** | |
%614 = load %struct.word_type*, %struct.word_type** %613, align 8, !tbaa !8 | |
%ou24026 = getelementptr inbounds %struct.word_type, %struct.word_type* %614, i64 0, i32 2 | |
%oprecedence4028 = bitcast %union.SECOND_UNION* %ou24026 to i8* | |
%615 = load i8, i8* %oprecedence4028, align 8, !tbaa !10 | |
%cmp4030.not = icmp ugt i8 %prec3990.0, %615 | |
br i1 %cmp4030.not, label %if.then4037, label %while.body4033 | |
while.body4033: ; preds = %land.rhs4022 | |
%call4034 = call fastcc i32 @Reduce() | |
%tobool4021.not = icmp eq i32 %call4034, 0 | |
br i1 %tobool4021.not, label %if.end4169, label %land.rhs4022, !llvm.loop !20 | |
if.then4037: ; preds = %land.rhs4022 | |
%616 = zext i32 %typ3989.0 to i64 | |
%arrayidx4039 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %616 | |
%617 = load i8, i8* %arrayidx4039, align 1, !tbaa !10 | |
%conv4040 = zext i8 %617 to i32 | |
store i32 %conv4040, i32* @zz_size, align 4, !tbaa !4 | |
%618 = zext i8 %617 to i64 | |
%arrayidx4048 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %618 | |
%619 = load %union.rec*, %union.rec** %arrayidx4048, align 8, !tbaa !8 | |
%cmp4049 = icmp eq %union.rec* %619, null | |
br i1 %cmp4049, label %if.then4051, label %if.else4053 | |
if.then4051: ; preds = %if.then4037 | |
%620 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call4052 = call %union.rec* @GetMemory(i32 noundef %conv4040, %struct.FILE_POS* noundef %620) #5 | |
store %union.rec* %call4052, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10482 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end4063 | |
if.else4053: ; preds = %if.then4037 | |
store %union.rec* %619, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred4059 = getelementptr inbounds %union.rec, %union.rec* %619, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%621 = load %union.rec*, %union.rec** %opred4059, align 8, !tbaa !10 | |
store %union.rec* %621, %union.rec** %arrayidx4048, align 8, !tbaa !8 | |
br label %if.end4063 | |
if.end4063: ; preds = %if.else4053, %if.then4051 | |
%622 = phi i32 [ %.pre10482, %if.then4051 ], [ %612, %if.else4053 ] | |
%.in10524 = phi %union.rec* [ %call4052, %if.then4051 ], [ %619, %if.else4053 ] | |
%conv4064 = trunc i32 %typ3989.0 to i8 | |
%623 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv4064, i8* %623, align 8, !tbaa !10 | |
%624 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10524, %union.rec** %624, align 8, !tbaa !10 | |
%625 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10524, %union.rec** %625, align 8, !tbaa !10 | |
%626 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10524, %union.rec** %626, align 8, !tbaa !10 | |
%627 = getelementptr %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10524, %union.rec** %627, align 8, !tbaa !10 | |
%628 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 2 | |
%os214088 = bitcast %union.SECOND_UNION* %628 to %struct.anon.0* | |
%oprecedence4089 = bitcast %union.SECOND_UNION* %628 to i8* | |
store i8 %prec3990.0, i8* %oprecedence4089, align 8, !tbaa !10 | |
%629 = load %struct.word_type*, %struct.word_type** %82, align 8, !tbaa !8 | |
%ou24091 = getelementptr inbounds %struct.word_type, %struct.word_type* %629, i64 0, i32 2 | |
%os214092 = bitcast %union.SECOND_UNION* %ou24091 to %struct.anon.0* | |
%ovspace4093 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214092, i64 0, i32 2 | |
%630 = load i8, i8* %ovspace4093, align 2, !tbaa !10 | |
%ovspace4097 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214088, i64 0, i32 2 | |
store i8 %630, i8* %ovspace4097, align 2, !tbaa !10 | |
%ohspace4101 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214092, i64 0, i32 1 | |
%631 = load i8, i8* %ohspace4101, align 1, !tbaa !10 | |
%ohspace4105 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214088, i64 0, i32 1 | |
store i8 %631, i8* %ohspace4105, align 1, !tbaa !10 | |
%os54106 = bitcast %union.rec* %.in10524 to %struct.gapobj_type* | |
%632 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os54106, i64 0, i32 3, i32 0 | |
%bf.load4108 = load i16, i16* %632, align 4 | |
%bf.clear4114 = and i16 %bf.load4108, -769 | |
%bf.set4115 = or i16 %bf.clear4114, 512 | |
store i16 %bf.set4115, i16* %632, align 4 | |
%ofile_num4119 = getelementptr inbounds %struct.word_type, %struct.word_type* %629, i64 0, i32 1, i32 0, i32 2 | |
%633 = load i16, i16* %ofile_num4119, align 2, !tbaa !10 | |
%634 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %633, i16* %634, align 2, !tbaa !10 | |
%oline_num4127 = getelementptr inbounds %struct.word_type, %struct.word_type* %629, i64 0, i32 1, i32 0, i32 3 | |
%bf.load4128 = load i32, i32* %oline_num4127, align 4 | |
%bf.clear4129 = and i32 %bf.load4128, 1048575 | |
%635 = getelementptr inbounds %union.rec, %union.rec* %.in10524, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load4134 = load i32, i32* %635, align 4 | |
%bf.clear4136 = and i32 %bf.load4134, -1048576 | |
%bf.set4137 = or i32 %bf.clear4136, %bf.clear4129 | |
store i32 %bf.set4137, i32* %635, align 4 | |
%bf.load4142 = load i32, i32* %oline_num4127, align 4 | |
%bf.lshr4143 = and i32 %bf.load4142, -1048576 | |
%bf.set4152 = or i32 %bf.lshr4143, %bf.clear4129 | |
store i32 %bf.set4152, i32* %635, align 4 | |
%inc4153 = add nsw i32 %622, 1 | |
store i32 %inc4153, i32* @ttop, align 4, !tbaa !4 | |
%cmp4154 = icmp slt i32 %622, 99 | |
br i1 %cmp4154, label %if.then4156, label %if.else4159 | |
if.then4156: ; preds = %if.end4063 | |
%idxprom4157 = sext i32 %inc4153 to i64 | |
%arrayidx4158 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4157 | |
store %union.rec* %.in10524, %union.rec** %arrayidx4158, align 8, !tbaa !8 | |
br label %if.end4169 | |
if.else4159: ; preds = %if.end4063 | |
%idxprom416110253 = zext i32 %622 to i64 | |
%arrayidx4162 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom416110253 | |
%636 = bitcast %union.rec** %arrayidx4162 to %struct.word_type** | |
%637 = load %struct.word_type*, %struct.word_type** %636, align 8, !tbaa !8 | |
%ofpos4165 = getelementptr inbounds %struct.word_type, %struct.word_type* %637, i64 0, i32 1, i32 0 | |
%call4166 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4165) #5 | |
br label %if.end4169 | |
if.end4169: ; preds = %if.else4159, %if.then4156, %while.body4033, %sw.bb3939 | |
%638 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
store %union.rec* %638, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%639 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc4170 = add nsw i32 %639, 1 | |
store i32 %inc4170, i32* @otop, align 4, !tbaa !4 | |
%cmp4171 = icmp slt i32 %639, 99 | |
br i1 %cmp4171, label %if.then4173, label %if.else4176 | |
if.then4173: ; preds = %if.end4169 | |
%idxprom4174 = sext i32 %inc4170 to i64 | |
%arrayidx4175 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom4174 | |
store %union.rec* %638, %union.rec** %arrayidx4175, align 8, !tbaa !8 | |
br label %if.end4184 | |
if.else4176: ; preds = %if.end4169 | |
%idxprom417810252 = zext i32 %639 to i64 | |
%arrayidx4179 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom417810252 | |
%640 = bitcast %union.rec** %arrayidx4179 to %struct.word_type** | |
%641 = load %struct.word_type*, %struct.word_type** %640, align 8, !tbaa !8 | |
%ofpos4182 = getelementptr inbounds %struct.word_type, %struct.word_type* %641, i64 0, i32 1, i32 0 | |
%call4183 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4182) #5 | |
br label %if.end4184 | |
if.end4184: ; preds = %if.else4176, %if.then4173 | |
%call4185 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4185, %union.rec** %t, align 8, !tbaa !8 | |
%ofile_num4189 = getelementptr inbounds %union.rec, %union.rec* %call4185, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%642 = load i16, i16* %ofile_num4189, align 2, !tbaa !10 | |
%643 = load i32, i32* %offset, align 4, !tbaa !4 | |
%644 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
call void @EnvReadInsert(i16 noundef zeroext %642, i32 noundef %643, %union.rec* noundef %644) #5 | |
br label %for.cond581.backedge | |
sw.bb4190: ; preds = %for.cond581 | |
%call4191 = call i64 @LexNextTokenPos() #5 | |
%645 = trunc i64 %call4191 to i32 | |
%conv4195 = add i32 %645, -5 | |
store i32 %conv4195, i32* %offset, align 4, !tbaa !4 | |
%646 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %646, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype4199 = getelementptr inbounds %union.rec, %union.rec* %646, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%647 = load i8, i8* %otype4199, align 8, !tbaa !10 | |
%.off10174 = add i8 %647, -11 | |
%switch10175 = icmp ult i8 %.off10174, 2 | |
%648 = getelementptr inbounds %union.rec, %union.rec* %646, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom4222 = zext i8 %647 to i64 | |
%arrayidx4223 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom4222 | |
%cond4226.in.in = select i1 %switch10175, i8* %648, i8* %arrayidx4223 | |
%cond4226.in = load i8, i8* %cond4226.in.in, align 1, !tbaa !10 | |
%cond4226 = zext i8 %cond4226.in to i32 | |
store i32 %cond4226, i32* @zz_size, align 4, !tbaa !4 | |
%649 = zext i8 %cond4226.in to i64 | |
%arrayidx4228 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %649 | |
%650 = load %union.rec*, %union.rec** %arrayidx4228, align 8, !tbaa !8 | |
%opred4232 = getelementptr %union.rec, %union.rec* %646, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %650, %union.rec** %opred4232, align 8, !tbaa !10 | |
%651 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%652 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom4233 = sext i32 %652 to i64 | |
%arrayidx4234 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom4233 | |
store %union.rec* %651, %union.rec** %arrayidx4234, align 8, !tbaa !8 | |
%call4235 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4235, %union.rec** %t, align 8, !tbaa !8 | |
%call4236 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
store %union.rec* %call4236, %union.rec** %env, align 8, !tbaa !8 | |
%call4237 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4237, %union.rec** %t, align 8, !tbaa !8 | |
%call4238 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
%653 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
%call4239 = call %union.rec* @SetEnv(%union.rec* noundef %call4238, %union.rec* noundef %653) #5 | |
store %union.rec* %call4239, %union.rec** %env, align 8, !tbaa !8 | |
%tobool4240.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool4240.not, label %if.end4422, label %if.then4241 | |
if.then4241: ; preds = %sw.bb4190 | |
%654 = getelementptr inbounds %union.rec, %union.rec* %call4239, i64 0, i32 0, i32 2 | |
%os214246 = bitcast %union.SECOND_UNION* %654 to %struct.anon.0* | |
%ohspace4247 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214246, i64 0, i32 1 | |
%655 = load i8, i8* %ohspace4247, align 1, !tbaa !10 | |
%conv4248 = zext i8 %655 to i32 | |
%ovspace4252 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214246, i64 0, i32 2 | |
%656 = load i8, i8* %ovspace4252, align 2, !tbaa !10 | |
%conv4253 = zext i8 %656 to i32 | |
%add4254 = sub nsw i32 0, %conv4253 | |
%cmp4255.not = icmp eq i32 %conv4248, %add4254 | |
br i1 %cmp4255.not, label %if.else4258, label %land.rhs4275.preheader | |
if.else4258: ; preds = %if.then4241 | |
%otype4262 = getelementptr inbounds %union.rec, %union.rec* %call4239, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%657 = load i8, i8* %otype4262, align 8, !tbaa !10 | |
%cmp4264 = icmp eq i8 %657, 102 | |
%cmp4267 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9209 = select i1 %cmp4264, i1 true, i1 %cmp4267 | |
%.10148 = select i1 %or.cond9209, i8 7, i8 103 | |
br label %land.rhs4275.preheader | |
land.rhs4275.preheader: ; preds = %if.else4258, %if.then4241 | |
%typ4242.0 = phi i32 [ 100, %if.then4241 ], [ 101, %if.else4258 ] | |
%prec4243.0 = phi i8 [ 7, %if.then4241 ], [ %.10148, %if.else4258 ] | |
br label %land.rhs4275 | |
land.rhs4275: ; preds = %while.body4286, %land.rhs4275.preheader | |
%658 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom4276 = sext i32 %658 to i64 | |
%arrayidx4277 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4276 | |
%659 = bitcast %union.rec** %arrayidx4277 to %struct.word_type** | |
%660 = load %struct.word_type*, %struct.word_type** %659, align 8, !tbaa !8 | |
%ou24279 = getelementptr inbounds %struct.word_type, %struct.word_type* %660, i64 0, i32 2 | |
%oprecedence4281 = bitcast %union.SECOND_UNION* %ou24279 to i8* | |
%661 = load i8, i8* %oprecedence4281, align 8, !tbaa !10 | |
%cmp4283.not = icmp ugt i8 %prec4243.0, %661 | |
br i1 %cmp4283.not, label %if.then4290, label %while.body4286 | |
while.body4286: ; preds = %land.rhs4275 | |
%call4287 = call fastcc i32 @Reduce() | |
%tobool4274.not = icmp eq i32 %call4287, 0 | |
br i1 %tobool4274.not, label %if.end4422, label %land.rhs4275, !llvm.loop !21 | |
if.then4290: ; preds = %land.rhs4275 | |
%662 = zext i32 %typ4242.0 to i64 | |
%arrayidx4292 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %662 | |
%663 = load i8, i8* %arrayidx4292, align 1, !tbaa !10 | |
%conv4293 = zext i8 %663 to i32 | |
store i32 %conv4293, i32* @zz_size, align 4, !tbaa !4 | |
%664 = zext i8 %663 to i64 | |
%arrayidx4301 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %664 | |
%665 = load %union.rec*, %union.rec** %arrayidx4301, align 8, !tbaa !8 | |
%cmp4302 = icmp eq %union.rec* %665, null | |
br i1 %cmp4302, label %if.then4304, label %if.else4306 | |
if.then4304: ; preds = %if.then4290 | |
%666 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call4305 = call %union.rec* @GetMemory(i32 noundef %conv4293, %struct.FILE_POS* noundef %666) #5 | |
store %union.rec* %call4305, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10481 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end4316 | |
if.else4306: ; preds = %if.then4290 | |
store %union.rec* %665, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred4312 = getelementptr inbounds %union.rec, %union.rec* %665, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%667 = load %union.rec*, %union.rec** %opred4312, align 8, !tbaa !10 | |
store %union.rec* %667, %union.rec** %arrayidx4301, align 8, !tbaa !8 | |
br label %if.end4316 | |
if.end4316: ; preds = %if.else4306, %if.then4304 | |
%668 = phi i32 [ %.pre10481, %if.then4304 ], [ %658, %if.else4306 ] | |
%.in10522 = phi %union.rec* [ %call4305, %if.then4304 ], [ %665, %if.else4306 ] | |
%conv4317 = trunc i32 %typ4242.0 to i8 | |
%669 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv4317, i8* %669, align 8, !tbaa !10 | |
%670 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10522, %union.rec** %670, align 8, !tbaa !10 | |
%671 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10522, %union.rec** %671, align 8, !tbaa !10 | |
%672 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10522, %union.rec** %672, align 8, !tbaa !10 | |
%673 = getelementptr %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10522, %union.rec** %673, align 8, !tbaa !10 | |
%674 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 2 | |
%os214341 = bitcast %union.SECOND_UNION* %674 to %struct.anon.0* | |
%oprecedence4342 = bitcast %union.SECOND_UNION* %674 to i8* | |
store i8 %prec4243.0, i8* %oprecedence4342, align 8, !tbaa !10 | |
%675 = load %struct.word_type*, %struct.word_type** %82, align 8, !tbaa !8 | |
%ou24344 = getelementptr inbounds %struct.word_type, %struct.word_type* %675, i64 0, i32 2 | |
%os214345 = bitcast %union.SECOND_UNION* %ou24344 to %struct.anon.0* | |
%ovspace4346 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214345, i64 0, i32 2 | |
%676 = load i8, i8* %ovspace4346, align 2, !tbaa !10 | |
%ovspace4350 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214341, i64 0, i32 2 | |
store i8 %676, i8* %ovspace4350, align 2, !tbaa !10 | |
%ohspace4354 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214345, i64 0, i32 1 | |
%677 = load i8, i8* %ohspace4354, align 1, !tbaa !10 | |
%ohspace4358 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214341, i64 0, i32 1 | |
store i8 %677, i8* %ohspace4358, align 1, !tbaa !10 | |
%os54359 = bitcast %union.rec* %.in10522 to %struct.gapobj_type* | |
%678 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os54359, i64 0, i32 3, i32 0 | |
%bf.load4361 = load i16, i16* %678, align 4 | |
%bf.clear4367 = and i16 %bf.load4361, -769 | |
%bf.set4368 = or i16 %bf.clear4367, 512 | |
store i16 %bf.set4368, i16* %678, align 4 | |
%ofile_num4372 = getelementptr inbounds %struct.word_type, %struct.word_type* %675, i64 0, i32 1, i32 0, i32 2 | |
%679 = load i16, i16* %ofile_num4372, align 2, !tbaa !10 | |
%680 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %679, i16* %680, align 2, !tbaa !10 | |
%oline_num4380 = getelementptr inbounds %struct.word_type, %struct.word_type* %675, i64 0, i32 1, i32 0, i32 3 | |
%bf.load4381 = load i32, i32* %oline_num4380, align 4 | |
%bf.clear4382 = and i32 %bf.load4381, 1048575 | |
%681 = getelementptr inbounds %union.rec, %union.rec* %.in10522, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load4387 = load i32, i32* %681, align 4 | |
%bf.clear4389 = and i32 %bf.load4387, -1048576 | |
%bf.set4390 = or i32 %bf.clear4389, %bf.clear4382 | |
store i32 %bf.set4390, i32* %681, align 4 | |
%bf.load4395 = load i32, i32* %oline_num4380, align 4 | |
%bf.lshr4396 = and i32 %bf.load4395, -1048576 | |
%bf.set4405 = or i32 %bf.lshr4396, %bf.clear4382 | |
store i32 %bf.set4405, i32* %681, align 4 | |
%inc4406 = add nsw i32 %668, 1 | |
store i32 %inc4406, i32* @ttop, align 4, !tbaa !4 | |
%cmp4407 = icmp slt i32 %668, 99 | |
br i1 %cmp4407, label %if.then4409, label %if.else4412 | |
if.then4409: ; preds = %if.end4316 | |
%idxprom4410 = sext i32 %inc4406 to i64 | |
%arrayidx4411 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4410 | |
store %union.rec* %.in10522, %union.rec** %arrayidx4411, align 8, !tbaa !8 | |
br label %if.end4422 | |
if.else4412: ; preds = %if.end4316 | |
%idxprom441410256 = zext i32 %668 to i64 | |
%arrayidx4415 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom441410256 | |
%682 = bitcast %union.rec** %arrayidx4415 to %struct.word_type** | |
%683 = load %struct.word_type*, %struct.word_type** %682, align 8, !tbaa !8 | |
%ofpos4418 = getelementptr inbounds %struct.word_type, %struct.word_type* %683, i64 0, i32 1, i32 0 | |
%call4419 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4418) #5 | |
br label %if.end4422 | |
if.end4422: ; preds = %if.else4412, %if.then4409, %while.body4286, %sw.bb4190 | |
%684 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
store %union.rec* %684, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%685 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc4423 = add nsw i32 %685, 1 | |
store i32 %inc4423, i32* @otop, align 4, !tbaa !4 | |
%cmp4424 = icmp slt i32 %685, 99 | |
br i1 %cmp4424, label %if.then4426, label %if.else4429 | |
if.then4426: ; preds = %if.end4422 | |
%idxprom4427 = sext i32 %inc4423 to i64 | |
%arrayidx4428 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom4427 | |
store %union.rec* %684, %union.rec** %arrayidx4428, align 8, !tbaa !8 | |
br label %if.end4437 | |
if.else4429: ; preds = %if.end4422 | |
%idxprom443110255 = zext i32 %685 to i64 | |
%arrayidx4432 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom443110255 | |
%686 = bitcast %union.rec** %arrayidx4432 to %struct.word_type** | |
%687 = load %struct.word_type*, %struct.word_type** %686, align 8, !tbaa !8 | |
%ofpos4435 = getelementptr inbounds %struct.word_type, %struct.word_type* %687, i64 0, i32 1, i32 0 | |
%call4436 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4435) #5 | |
br label %if.end4437 | |
if.end4437: ; preds = %if.else4429, %if.then4426 | |
%call4438 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4438, %union.rec** %t, align 8, !tbaa !8 | |
%ofile_num4442 = getelementptr inbounds %union.rec, %union.rec* %call4438, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%688 = load i16, i16* %ofile_num4442, align 2, !tbaa !10 | |
%689 = load i32, i32* %offset, align 4, !tbaa !4 | |
%690 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
call void @EnvReadInsert(i16 noundef zeroext %688, i32 noundef %689, %union.rec* noundef %690) #5 | |
br label %for.cond581.backedge | |
sw.bb4443: ; preds = %for.cond581 | |
store %union.rec* %84, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cond4474.in = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 85), align 1, !tbaa !10 | |
%cond4474 = zext i8 %cond4474.in to i32 | |
store i32 %cond4474, i32* @zz_size, align 4, !tbaa !4 | |
%691 = zext i8 %cond4474.in to i64 | |
%arrayidx4476 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %691 | |
%692 = load %union.rec*, %union.rec** %arrayidx4476, align 8, !tbaa !8 | |
%opred4480 = getelementptr %union.rec, %union.rec* %84, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %692, %union.rec** %opred4480, align 8, !tbaa !10 | |
%693 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%694 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom4481 = sext i32 %694 to i64 | |
%arrayidx4482 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom4481 | |
store %union.rec* %693, %union.rec** %arrayidx4482, align 8, !tbaa !8 | |
%call4483 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4483, %union.rec** %t, align 8, !tbaa !8 | |
%695 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 82), align 1, !tbaa !10 | |
%conv4484 = zext i8 %695 to i32 | |
store i32 %conv4484, i32* @zz_size, align 4, !tbaa !4 | |
%696 = zext i8 %695 to i64 | |
%arrayidx4492 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %696 | |
%697 = load %union.rec*, %union.rec** %arrayidx4492, align 8, !tbaa !8 | |
%cmp4493 = icmp eq %union.rec* %697, null | |
br i1 %cmp4493, label %if.then4495, label %if.else4497 | |
if.then4495: ; preds = %sw.bb4443 | |
%698 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call4496 = call %union.rec* @GetMemory(i32 noundef %conv4484, %struct.FILE_POS* noundef %698) #5 | |
store %union.rec* %call4496, %union.rec** @zz_hold, align 8, !tbaa !8 | |
br label %if.end4507 | |
if.else4497: ; preds = %sw.bb4443 | |
store %union.rec* %697, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred4503 = getelementptr inbounds %union.rec, %union.rec* %697, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%699 = load %union.rec*, %union.rec** %opred4503, align 8, !tbaa !10 | |
store %union.rec* %699, %union.rec** %arrayidx4492, align 8, !tbaa !8 | |
br label %if.end4507 | |
if.end4507: ; preds = %if.else4497, %if.then4495 | |
%.in10518 = phi %union.rec* [ %call4496, %if.then4495 ], [ %697, %if.else4497 ] | |
%700 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 82, i8* %700, align 8, !tbaa !10 | |
%701 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10518, %union.rec** %701, align 8, !tbaa !10 | |
%702 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10518, %union.rec** %702, align 8, !tbaa !10 | |
%703 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10518, %union.rec** %703, align 8, !tbaa !10 | |
%704 = getelementptr %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10518, %union.rec** %704, align 8, !tbaa !10 | |
%tobool4528.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool4528.not, label %if.end4710, label %if.then4529 | |
if.then4529: ; preds = %if.end4507 | |
%705 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 2 | |
%os214534 = bitcast %union.SECOND_UNION* %705 to %struct.anon.0* | |
%ohspace4535 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214534, i64 0, i32 1 | |
%706 = load i8, i8* %ohspace4535, align 1, !tbaa !10 | |
%conv4536 = zext i8 %706 to i32 | |
%ovspace4540 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214534, i64 0, i32 2 | |
%707 = load i8, i8* %ovspace4540, align 2, !tbaa !10 | |
%conv4541 = zext i8 %707 to i32 | |
%add4542 = sub nsw i32 0, %conv4541 | |
%cmp4543.not = icmp eq i32 %conv4536, %add4542 | |
%cmp4555 = icmp eq i32 %obj_prev.1, 2 | |
%.10149 = select i1 %cmp4555, i8 7, i8 103 | |
%typ4530.0 = select i1 %cmp4543.not, i32 101, i32 100 | |
%prec4531.0 = select i1 %cmp4543.not, i8 %.10149, i8 7 | |
br label %land.rhs4563 | |
land.rhs4563: ; preds = %while.body4574, %if.then4529 | |
%708 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom4564 = sext i32 %708 to i64 | |
%arrayidx4565 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4564 | |
%709 = bitcast %union.rec** %arrayidx4565 to %struct.word_type** | |
%710 = load %struct.word_type*, %struct.word_type** %709, align 8, !tbaa !8 | |
%ou24567 = getelementptr inbounds %struct.word_type, %struct.word_type* %710, i64 0, i32 2 | |
%oprecedence4569 = bitcast %union.SECOND_UNION* %ou24567 to i8* | |
%711 = load i8, i8* %oprecedence4569, align 8, !tbaa !10 | |
%cmp4571.not = icmp ugt i8 %prec4531.0, %711 | |
br i1 %cmp4571.not, label %if.then4578, label %while.body4574 | |
while.body4574: ; preds = %land.rhs4563 | |
%call4575 = call fastcc i32 @Reduce() | |
%tobool4562.not = icmp eq i32 %call4575, 0 | |
br i1 %tobool4562.not, label %if.end4710, label %land.rhs4563, !llvm.loop !22 | |
if.then4578: ; preds = %land.rhs4563 | |
%712 = zext i32 %typ4530.0 to i64 | |
%arrayidx4580 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %712 | |
%713 = load i8, i8* %arrayidx4580, align 1, !tbaa !10 | |
%conv4581 = zext i8 %713 to i32 | |
store i32 %conv4581, i32* @zz_size, align 4, !tbaa !4 | |
%714 = zext i8 %713 to i64 | |
%arrayidx4589 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %714 | |
%715 = load %union.rec*, %union.rec** %arrayidx4589, align 8, !tbaa !8 | |
%cmp4590 = icmp eq %union.rec* %715, null | |
br i1 %cmp4590, label %if.then4592, label %if.else4594 | |
if.then4592: ; preds = %if.then4578 | |
%716 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call4593 = call %union.rec* @GetMemory(i32 noundef %conv4581, %struct.FILE_POS* noundef %716) #5 | |
store %union.rec* %call4593, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10480 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end4604 | |
if.else4594: ; preds = %if.then4578 | |
store %union.rec* %715, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred4600 = getelementptr inbounds %union.rec, %union.rec* %715, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%717 = load %union.rec*, %union.rec** %opred4600, align 8, !tbaa !10 | |
store %union.rec* %717, %union.rec** %arrayidx4589, align 8, !tbaa !8 | |
br label %if.end4604 | |
if.end4604: ; preds = %if.else4594, %if.then4592 | |
%718 = phi i32 [ %.pre10480, %if.then4592 ], [ %708, %if.else4594 ] | |
%.in10520 = phi %union.rec* [ %call4593, %if.then4592 ], [ %715, %if.else4594 ] | |
%conv4605 = trunc i32 %typ4530.0 to i8 | |
%719 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv4605, i8* %719, align 8, !tbaa !10 | |
%720 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10520, %union.rec** %720, align 8, !tbaa !10 | |
%721 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10520, %union.rec** %721, align 8, !tbaa !10 | |
%722 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10520, %union.rec** %722, align 8, !tbaa !10 | |
%723 = getelementptr %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10520, %union.rec** %723, align 8, !tbaa !10 | |
%724 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 2 | |
%os214629 = bitcast %union.SECOND_UNION* %724 to %struct.anon.0* | |
%oprecedence4630 = bitcast %union.SECOND_UNION* %724 to i8* | |
store i8 %prec4531.0, i8* %oprecedence4630, align 8, !tbaa !10 | |
%725 = load i8, i8* %ovspace4540, align 2, !tbaa !10 | |
%ovspace4638 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214629, i64 0, i32 2 | |
store i8 %725, i8* %ovspace4638, align 2, !tbaa !10 | |
%726 = load i8, i8* %ohspace4535, align 1, !tbaa !10 | |
%ohspace4646 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214629, i64 0, i32 1 | |
store i8 %726, i8* %ohspace4646, align 1, !tbaa !10 | |
%os54647 = bitcast %union.rec* %.in10520 to %struct.gapobj_type* | |
%727 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os54647, i64 0, i32 3, i32 0 | |
%bf.load4649 = load i16, i16* %727, align 4 | |
%bf.clear4655 = and i16 %bf.load4649, -769 | |
%bf.set4656 = or i16 %bf.clear4655, 512 | |
store i16 %bf.set4656, i16* %727, align 4 | |
%728 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%729 = load i16, i16* %728, align 2, !tbaa !10 | |
%730 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %729, i16* %730, align 2, !tbaa !10 | |
%731 = getelementptr inbounds %union.rec, %union.rec* %.in10518, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load4669 = load i32, i32* %731, align 4 | |
%bf.clear4670 = and i32 %bf.load4669, 1048575 | |
%732 = getelementptr inbounds %union.rec, %union.rec* %.in10520, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load4675 = load i32, i32* %732, align 4 | |
%bf.clear4677 = and i32 %bf.load4675, -1048576 | |
%bf.set4678 = or i32 %bf.clear4677, %bf.clear4670 | |
store i32 %bf.set4678, i32* %732, align 4 | |
%bf.load4683 = load i32, i32* %731, align 4 | |
%bf.lshr4684 = and i32 %bf.load4683, -1048576 | |
%bf.set4693 = or i32 %bf.lshr4684, %bf.clear4670 | |
store i32 %bf.set4693, i32* %732, align 4 | |
%inc4694 = add nsw i32 %718, 1 | |
store i32 %inc4694, i32* @ttop, align 4, !tbaa !4 | |
%cmp4695 = icmp slt i32 %718, 99 | |
br i1 %cmp4695, label %if.then4697, label %if.else4700 | |
if.then4697: ; preds = %if.end4604 | |
%idxprom4698 = sext i32 %inc4694 to i64 | |
%arrayidx4699 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4698 | |
store %union.rec* %.in10520, %union.rec** %arrayidx4699, align 8, !tbaa !8 | |
br label %if.end4710 | |
if.else4700: ; preds = %if.end4604 | |
%idxprom470210259 = zext i32 %718 to i64 | |
%arrayidx4703 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom470210259 | |
%733 = bitcast %union.rec** %arrayidx4703 to %struct.word_type** | |
%734 = load %struct.word_type*, %struct.word_type** %733, align 8, !tbaa !8 | |
%ofpos4706 = getelementptr inbounds %struct.word_type, %struct.word_type* %734, i64 0, i32 1, i32 0 | |
%call4707 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4706) #5 | |
br label %if.end4710 | |
if.end4710: ; preds = %if.else4700, %if.then4697, %while.body4574, %if.end4507 | |
store %union.rec* %.in10518, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%735 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc4711 = add nsw i32 %735, 1 | |
store i32 %inc4711, i32* @otop, align 4, !tbaa !4 | |
%cmp4712 = icmp slt i32 %735, 99 | |
br i1 %cmp4712, label %if.then4714, label %if.else4717 | |
if.then4714: ; preds = %if.end4710 | |
%idxprom4715 = sext i32 %inc4711 to i64 | |
%arrayidx4716 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom4715 | |
store %union.rec* %.in10518, %union.rec** %arrayidx4716, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
if.else4717: ; preds = %if.end4710 | |
%idxprom471910258 = zext i32 %735 to i64 | |
%arrayidx4720 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom471910258 | |
%736 = bitcast %union.rec** %arrayidx4720 to %struct.word_type** | |
%737 = load %struct.word_type*, %struct.word_type** %736, align 8, !tbaa !8 | |
%ofpos4723 = getelementptr inbounds %struct.word_type, %struct.word_type* %737, i64 0, i32 1, i32 0 | |
%call4724 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4723) #5 | |
br label %for.cond581.backedge | |
sw.bb4726: ; preds = %for.cond581 | |
store %union.rec* %84, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cond4757.in = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 86), align 1, !tbaa !10 | |
%cond4757 = zext i8 %cond4757.in to i32 | |
store i32 %cond4757, i32* @zz_size, align 4, !tbaa !4 | |
%738 = zext i8 %cond4757.in to i64 | |
%arrayidx4759 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %738 | |
%739 = load %union.rec*, %union.rec** %arrayidx4759, align 8, !tbaa !8 | |
%opred4763 = getelementptr %union.rec, %union.rec* %84, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %739, %union.rec** %opred4763, align 8, !tbaa !10 | |
%740 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%741 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom4764 = sext i32 %741 to i64 | |
%arrayidx4765 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom4764 | |
store %union.rec* %740, %union.rec** %arrayidx4765, align 8, !tbaa !8 | |
%call4766 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4766, %union.rec** %t, align 8, !tbaa !8 | |
%otype4770 = getelementptr inbounds %union.rec, %union.rec* %call4766, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%742 = load i8, i8* %otype4770, align 8, !tbaa !10 | |
%cmp4772.not = icmp eq i8 %742, 12 | |
%743 = bitcast %union.rec* %call4766 to %struct.word_type* | |
br i1 %cmp4772.not, label %lor.lhs.false4774, label %if.then4781 | |
lor.lhs.false4774: ; preds = %sw.bb4726 | |
%ostring4776 = getelementptr inbounds %union.rec, %union.rec* %call4766, i64 0, i32 0, i32 4 | |
%arraydecay4777 = bitcast %union.FOURTH_UNION* %ostring4776 to i8* | |
%call4778 = call i32 (i8*, i8*, ...) @__isoc99_sscanf(i8* noundef nonnull %arraydecay4777, i8* noundef getelementptr inbounds ([6 x i8], [6 x i8]* @.str.38, i64 0, i64 0), i32* noundef nonnull %offset, i32* noundef nonnull %lnum) #5 | |
%cmp4779.not = icmp eq i32 %call4778, 2 | |
br i1 %cmp4779.not, label %if.end4786, label %lor.lhs.false4774.if.then4781_crit_edge | |
lor.lhs.false4774.if.then4781_crit_edge: ; preds = %lor.lhs.false4774 | |
%.pre10478 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
br label %if.then4781 | |
if.then4781: ; preds = %lor.lhs.false4774.if.then4781_crit_edge, %sw.bb4726 | |
%744 = phi %struct.word_type* [ %.pre10478, %lor.lhs.false4774.if.then4781_crit_edge ], [ %743, %sw.bb4726 ] | |
%ofpos4784 = getelementptr inbounds %struct.word_type, %struct.word_type* %744, i64 0, i32 1, i32 0 | |
%call4785 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 37, i8* noundef getelementptr inbounds ([34 x i8], [34 x i8]* @.str.39, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos4784) #5 | |
br label %if.end4786 | |
if.end4786: ; preds = %if.then4781, %lor.lhs.false4774 | |
%745 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofile_num4790 = getelementptr inbounds %struct.word_type, %struct.word_type* %745, i64 0, i32 1, i32 0, i32 2 | |
%746 = load i16, i16* %ofile_num4790, align 2, !tbaa !10 | |
%747 = load i32, i32* %offset, align 4, !tbaa !4 | |
%call4791 = call i32 @EnvReadRetrieve(i16 noundef zeroext %746, i32 noundef %747, %union.rec** noundef nonnull %env) #5 | |
%tobool4792.not = icmp eq i32 %call4791, 0 | |
br i1 %tobool4792.not, label %if.then4793, label %if.else4839 | |
if.then4793: ; preds = %if.end4786 | |
%748 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofile_num4797 = getelementptr inbounds %struct.word_type, %struct.word_type* %748, i64 0, i32 1, i32 0, i32 2 | |
%749 = load i16, i16* %ofile_num4797, align 2, !tbaa !10 | |
%750 = load i32, i32* %offset, align 4, !tbaa !4 | |
%751 = load i32, i32* %lnum, align 4, !tbaa !4 | |
call void @LexPush(i16 noundef zeroext %749, i32 noundef %750, i32 noundef 3, i32 noundef %751, i32 noundef 1) #5 | |
%752 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %752, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype4801 = getelementptr inbounds %union.rec, %union.rec* %752, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%753 = load i8, i8* %otype4801, align 8, !tbaa !10 | |
%.off10180 = add i8 %753, -11 | |
%switch10181 = icmp ult i8 %.off10180, 2 | |
%754 = getelementptr inbounds %union.rec, %union.rec* %752, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom4824 = zext i8 %753 to i64 | |
%arrayidx4825 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom4824 | |
%cond4828.in.in = select i1 %switch10181, i8* %754, i8* %arrayidx4825 | |
%cond4828.in = load i8, i8* %cond4828.in.in, align 1, !tbaa !10 | |
%cond4828 = zext i8 %cond4828.in to i32 | |
store i32 %cond4828, i32* @zz_size, align 4, !tbaa !4 | |
%755 = zext i8 %cond4828.in to i64 | |
%arrayidx4830 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %755 | |
%756 = load %union.rec*, %union.rec** %arrayidx4830, align 8, !tbaa !8 | |
%opred4834 = getelementptr %union.rec, %union.rec* %752, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %756, %union.rec** %opred4834, align 8, !tbaa !10 | |
%757 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%758 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom4835 = sext i32 %758 to i64 | |
%arrayidx4836 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom4835 | |
store %union.rec* %757, %union.rec** %arrayidx4836, align 8, !tbaa !8 | |
%call4837 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call4837, %union.rec** %t, align 8, !tbaa !8 | |
%call4838 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
store %union.rec* %call4838, %union.rec** %env, align 8, !tbaa !8 | |
call void @LexPop() #5 | |
br label %if.end4879 | |
if.else4839: ; preds = %if.end4786 | |
%759 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %759, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype4843 = getelementptr inbounds %union.rec, %union.rec* %759, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%760 = load i8, i8* %otype4843, align 8, !tbaa !10 | |
%.off10182 = add i8 %760, -11 | |
%switch10183 = icmp ult i8 %.off10182, 2 | |
%761 = getelementptr inbounds %union.rec, %union.rec* %759, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom4866 = zext i8 %760 to i64 | |
%arrayidx4867 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom4866 | |
%cond4870.in.in = select i1 %switch10183, i8* %761, i8* %arrayidx4867 | |
%cond4870.in = load i8, i8* %cond4870.in.in, align 1, !tbaa !10 | |
%cond4870 = zext i8 %cond4870.in to i32 | |
store i32 %cond4870, i32* @zz_size, align 4, !tbaa !4 | |
%762 = zext i8 %cond4870.in to i64 | |
%arrayidx4872 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %762 | |
%763 = load %union.rec*, %union.rec** %arrayidx4872, align 8, !tbaa !8 | |
%opred4876 = getelementptr %union.rec, %union.rec* %759, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %763, %union.rec** %opred4876, align 8, !tbaa !10 | |
%764 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%765 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom4877 = sext i32 %765 to i64 | |
%arrayidx4878 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom4877 | |
store %union.rec* %764, %union.rec** %arrayidx4878, align 8, !tbaa !8 | |
br label %if.end4879 | |
if.end4879: ; preds = %if.else4839, %if.then4793 | |
%tobool4880.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool4880.not, label %if.end5062, label %if.then4881 | |
if.then4881: ; preds = %if.end4879 | |
%766 = load %struct.word_type*, %struct.word_type** %82, align 8, !tbaa !8 | |
%ou24885 = getelementptr inbounds %struct.word_type, %struct.word_type* %766, i64 0, i32 2 | |
%os214886 = bitcast %union.SECOND_UNION* %ou24885 to %struct.anon.0* | |
%ohspace4887 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214886, i64 0, i32 1 | |
%767 = load i8, i8* %ohspace4887, align 1, !tbaa !10 | |
%conv4888 = zext i8 %767 to i32 | |
%ovspace4892 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214886, i64 0, i32 2 | |
%768 = load i8, i8* %ovspace4892, align 2, !tbaa !10 | |
%conv4893 = zext i8 %768 to i32 | |
%add4894 = sub nsw i32 0, %conv4893 | |
%cmp4895.not = icmp eq i32 %conv4888, %add4894 | |
br i1 %cmp4895.not, label %if.else4898, label %land.rhs4915.preheader | |
if.else4898: ; preds = %if.then4881 | |
%otype4902 = getelementptr inbounds %struct.word_type, %struct.word_type* %766, i64 0, i32 1, i32 0, i32 0 | |
%769 = load i8, i8* %otype4902, align 8, !tbaa !10 | |
%cmp4904 = icmp eq i8 %769, 102 | |
%cmp4907 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9211 = select i1 %cmp4904, i1 true, i1 %cmp4907 | |
%.10150 = select i1 %or.cond9211, i8 7, i8 103 | |
br label %land.rhs4915.preheader | |
land.rhs4915.preheader: ; preds = %if.else4898, %if.then4881 | |
%typ4882.0 = phi i32 [ 100, %if.then4881 ], [ 101, %if.else4898 ] | |
%prec4883.0 = phi i8 [ 7, %if.then4881 ], [ %.10150, %if.else4898 ] | |
br label %land.rhs4915 | |
land.rhs4915: ; preds = %while.body4926, %land.rhs4915.preheader | |
%770 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom4916 = sext i32 %770 to i64 | |
%arrayidx4917 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom4916 | |
%771 = bitcast %union.rec** %arrayidx4917 to %struct.word_type** | |
%772 = load %struct.word_type*, %struct.word_type** %771, align 8, !tbaa !8 | |
%ou24919 = getelementptr inbounds %struct.word_type, %struct.word_type* %772, i64 0, i32 2 | |
%oprecedence4921 = bitcast %union.SECOND_UNION* %ou24919 to i8* | |
%773 = load i8, i8* %oprecedence4921, align 8, !tbaa !10 | |
%cmp4923.not = icmp ugt i8 %prec4883.0, %773 | |
br i1 %cmp4923.not, label %if.then4930, label %while.body4926 | |
while.body4926: ; preds = %land.rhs4915 | |
%call4927 = call fastcc i32 @Reduce() | |
%tobool4914.not = icmp eq i32 %call4927, 0 | |
br i1 %tobool4914.not, label %if.end5062, label %land.rhs4915, !llvm.loop !23 | |
if.then4930: ; preds = %land.rhs4915 | |
%774 = zext i32 %typ4882.0 to i64 | |
%arrayidx4932 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %774 | |
%775 = load i8, i8* %arrayidx4932, align 1, !tbaa !10 | |
%conv4933 = zext i8 %775 to i32 | |
store i32 %conv4933, i32* @zz_size, align 4, !tbaa !4 | |
%776 = zext i8 %775 to i64 | |
%arrayidx4941 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %776 | |
%777 = load %union.rec*, %union.rec** %arrayidx4941, align 8, !tbaa !8 | |
%cmp4942 = icmp eq %union.rec* %777, null | |
br i1 %cmp4942, label %if.then4944, label %if.else4946 | |
if.then4944: ; preds = %if.then4930 | |
%778 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call4945 = call %union.rec* @GetMemory(i32 noundef %conv4933, %struct.FILE_POS* noundef %778) #5 | |
store %union.rec* %call4945, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10479 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end4956 | |
if.else4946: ; preds = %if.then4930 | |
store %union.rec* %777, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred4952 = getelementptr inbounds %union.rec, %union.rec* %777, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%779 = load %union.rec*, %union.rec** %opred4952, align 8, !tbaa !10 | |
store %union.rec* %779, %union.rec** %arrayidx4941, align 8, !tbaa !8 | |
br label %if.end4956 | |
if.end4956: ; preds = %if.else4946, %if.then4944 | |
%780 = phi i32 [ %.pre10479, %if.then4944 ], [ %770, %if.else4946 ] | |
%.in10516 = phi %union.rec* [ %call4945, %if.then4944 ], [ %777, %if.else4946 ] | |
%conv4957 = trunc i32 %typ4882.0 to i8 | |
%781 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv4957, i8* %781, align 8, !tbaa !10 | |
%782 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10516, %union.rec** %782, align 8, !tbaa !10 | |
%783 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10516, %union.rec** %783, align 8, !tbaa !10 | |
%784 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10516, %union.rec** %784, align 8, !tbaa !10 | |
%785 = getelementptr %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10516, %union.rec** %785, align 8, !tbaa !10 | |
%786 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 2 | |
%os214981 = bitcast %union.SECOND_UNION* %786 to %struct.anon.0* | |
%oprecedence4982 = bitcast %union.SECOND_UNION* %786 to i8* | |
store i8 %prec4883.0, i8* %oprecedence4982, align 8, !tbaa !10 | |
%787 = load %struct.word_type*, %struct.word_type** %82, align 8, !tbaa !8 | |
%ou24984 = getelementptr inbounds %struct.word_type, %struct.word_type* %787, i64 0, i32 2 | |
%os214985 = bitcast %union.SECOND_UNION* %ou24984 to %struct.anon.0* | |
%ovspace4986 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214985, i64 0, i32 2 | |
%788 = load i8, i8* %ovspace4986, align 2, !tbaa !10 | |
%ovspace4990 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214981, i64 0, i32 2 | |
store i8 %788, i8* %ovspace4990, align 2, !tbaa !10 | |
%ohspace4994 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214985, i64 0, i32 1 | |
%789 = load i8, i8* %ohspace4994, align 1, !tbaa !10 | |
%ohspace4998 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os214981, i64 0, i32 1 | |
store i8 %789, i8* %ohspace4998, align 1, !tbaa !10 | |
%os54999 = bitcast %union.rec* %.in10516 to %struct.gapobj_type* | |
%790 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os54999, i64 0, i32 3, i32 0 | |
%bf.load5001 = load i16, i16* %790, align 4 | |
%bf.clear5007 = and i16 %bf.load5001, -769 | |
%bf.set5008 = or i16 %bf.clear5007, 512 | |
store i16 %bf.set5008, i16* %790, align 4 | |
%ofile_num5012 = getelementptr inbounds %struct.word_type, %struct.word_type* %787, i64 0, i32 1, i32 0, i32 2 | |
%791 = load i16, i16* %ofile_num5012, align 2, !tbaa !10 | |
%792 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %791, i16* %792, align 2, !tbaa !10 | |
%oline_num5020 = getelementptr inbounds %struct.word_type, %struct.word_type* %787, i64 0, i32 1, i32 0, i32 3 | |
%bf.load5021 = load i32, i32* %oline_num5020, align 4 | |
%bf.clear5022 = and i32 %bf.load5021, 1048575 | |
%793 = getelementptr inbounds %union.rec, %union.rec* %.in10516, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load5027 = load i32, i32* %793, align 4 | |
%bf.clear5029 = and i32 %bf.load5027, -1048576 | |
%bf.set5030 = or i32 %bf.clear5029, %bf.clear5022 | |
store i32 %bf.set5030, i32* %793, align 4 | |
%bf.load5035 = load i32, i32* %oline_num5020, align 4 | |
%bf.lshr5036 = and i32 %bf.load5035, -1048576 | |
%bf.set5045 = or i32 %bf.lshr5036, %bf.clear5022 | |
store i32 %bf.set5045, i32* %793, align 4 | |
%inc5046 = add nsw i32 %780, 1 | |
store i32 %inc5046, i32* @ttop, align 4, !tbaa !4 | |
%cmp5047 = icmp slt i32 %780, 99 | |
br i1 %cmp5047, label %if.then5049, label %if.else5052 | |
if.then5049: ; preds = %if.end4956 | |
%idxprom5050 = sext i32 %inc5046 to i64 | |
%arrayidx5051 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom5050 | |
store %union.rec* %.in10516, %union.rec** %arrayidx5051, align 8, !tbaa !8 | |
br label %if.end5062 | |
if.else5052: ; preds = %if.end4956 | |
%idxprom505410263 = zext i32 %780 to i64 | |
%arrayidx5055 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom505410263 | |
%794 = bitcast %union.rec** %arrayidx5055 to %struct.word_type** | |
%795 = load %struct.word_type*, %struct.word_type** %794, align 8, !tbaa !8 | |
%ofpos5058 = getelementptr inbounds %struct.word_type, %struct.word_type* %795, i64 0, i32 1, i32 0 | |
%call5059 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5058) #5 | |
br label %if.end5062 | |
if.end5062: ; preds = %if.else5052, %if.then5049, %while.body4926, %if.end4879 | |
%796 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
store %union.rec* %796, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%797 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc5063 = add nsw i32 %797, 1 | |
store i32 %inc5063, i32* @otop, align 4, !tbaa !4 | |
%cmp5064 = icmp slt i32 %797, 99 | |
br i1 %cmp5064, label %if.then5066, label %if.else5069 | |
if.then5066: ; preds = %if.end5062 | |
%idxprom5067 = sext i32 %inc5063 to i64 | |
%arrayidx5068 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom5067 | |
store %union.rec* %796, %union.rec** %arrayidx5068, align 8, !tbaa !8 | |
br label %if.end5077 | |
if.else5069: ; preds = %if.end5062 | |
%idxprom507110262 = zext i32 %797 to i64 | |
%arrayidx5072 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom507110262 | |
%798 = bitcast %union.rec** %arrayidx5072 to %struct.word_type** | |
%799 = load %struct.word_type*, %struct.word_type** %798, align 8, !tbaa !8 | |
%ofpos5075 = getelementptr inbounds %struct.word_type, %struct.word_type* %799, i64 0, i32 1, i32 0 | |
%call5076 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5075) #5 | |
br label %if.end5077 | |
if.end5077: ; preds = %if.else5069, %if.then5066 | |
%call5078 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5078, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb5079: ; preds = %for.cond581 | |
store %union.rec* %84, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cond5110.in = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 87), align 1, !tbaa !10 | |
%cond5110 = zext i8 %cond5110.in to i32 | |
store i32 %cond5110, i32* @zz_size, align 4, !tbaa !4 | |
%800 = zext i8 %cond5110.in to i64 | |
%arrayidx5112 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %800 | |
%801 = load %union.rec*, %union.rec** %arrayidx5112, align 8, !tbaa !8 | |
%opred5116 = getelementptr %union.rec, %union.rec* %84, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %801, %union.rec** %opred5116, align 8, !tbaa !10 | |
%802 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%803 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom5117 = sext i32 %803 to i64 | |
%arrayidx5118 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom5117 | |
store %union.rec* %802, %union.rec** %arrayidx5118, align 8, !tbaa !8 | |
%call5119 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5119, %union.rec** %t, align 8, !tbaa !8 | |
%call5120 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
store %union.rec* %call5120, %union.rec** %env, align 8, !tbaa !8 | |
store i32 0, i32* %scope_count, align 4, !tbaa !4 | |
call void @SetScope(%union.rec* noundef %call5120, i32* noundef nonnull %scope_count, i32 noundef 0) | |
%call5121 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5121, %union.rec** %t, align 8, !tbaa !8 | |
%call5122 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
%804 = load i32, i32* %scope_count, align 4, !tbaa !4 | |
%cmp512410396 = icmp sgt i32 %804, 0 | |
br i1 %cmp512410396, label %for.body5126, label %for.end5129 | |
for.body5126: ; preds = %for.body5126, %sw.bb5079 | |
%i.010397 = phi i32 [ %inc5128, %for.body5126 ], [ 0, %sw.bb5079 ] | |
call void @PopScope() #5 | |
%inc5128 = add nuw nsw i32 %i.010397, 1 | |
%exitcond10455.not = icmp eq i32 %inc5128, %804 | |
br i1 %exitcond10455.not, label %for.end5129, label %for.body5126, !llvm.loop !24 | |
for.end5129: ; preds = %for.body5126, %sw.bb5079 | |
%805 = load %union.rec*, %union.rec** %env, align 8, !tbaa !8 | |
call void @AttachEnv(%union.rec* noundef %805, %union.rec* noundef %call5122) #5 | |
%tobool5130.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool5130.not, label %if.end5312, label %if.then5131 | |
if.then5131: ; preds = %for.end5129 | |
%806 = getelementptr inbounds %union.rec, %union.rec* %call5122, i64 0, i32 0, i32 2 | |
%os215136 = bitcast %union.SECOND_UNION* %806 to %struct.anon.0* | |
%ohspace5137 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215136, i64 0, i32 1 | |
%807 = load i8, i8* %ohspace5137, align 1, !tbaa !10 | |
%conv5138 = zext i8 %807 to i32 | |
%ovspace5142 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215136, i64 0, i32 2 | |
%808 = load i8, i8* %ovspace5142, align 2, !tbaa !10 | |
%conv5143 = zext i8 %808 to i32 | |
%add5144 = sub nsw i32 0, %conv5143 | |
%cmp5145.not = icmp eq i32 %conv5138, %add5144 | |
br i1 %cmp5145.not, label %if.else5148, label %land.rhs5165.preheader | |
if.else5148: ; preds = %if.then5131 | |
%otype5152 = getelementptr inbounds %union.rec, %union.rec* %call5122, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%809 = load i8, i8* %otype5152, align 8, !tbaa !10 | |
%cmp5154 = icmp eq i8 %809, 102 | |
%cmp5157 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9212 = select i1 %cmp5154, i1 true, i1 %cmp5157 | |
%.10151 = select i1 %or.cond9212, i8 7, i8 103 | |
br label %land.rhs5165.preheader | |
land.rhs5165.preheader: ; preds = %if.else5148, %if.then5131 | |
%typ5132.0 = phi i32 [ 100, %if.then5131 ], [ 101, %if.else5148 ] | |
%prec5133.0 = phi i8 [ 7, %if.then5131 ], [ %.10151, %if.else5148 ] | |
br label %land.rhs5165 | |
land.rhs5165: ; preds = %while.body5176, %land.rhs5165.preheader | |
%810 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom5166 = sext i32 %810 to i64 | |
%arrayidx5167 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom5166 | |
%811 = bitcast %union.rec** %arrayidx5167 to %struct.word_type** | |
%812 = load %struct.word_type*, %struct.word_type** %811, align 8, !tbaa !8 | |
%ou25169 = getelementptr inbounds %struct.word_type, %struct.word_type* %812, i64 0, i32 2 | |
%oprecedence5171 = bitcast %union.SECOND_UNION* %ou25169 to i8* | |
%813 = load i8, i8* %oprecedence5171, align 8, !tbaa !10 | |
%cmp5173.not = icmp ugt i8 %prec5133.0, %813 | |
br i1 %cmp5173.not, label %if.then5180, label %while.body5176 | |
while.body5176: ; preds = %land.rhs5165 | |
%call5177 = call fastcc i32 @Reduce() | |
%tobool5164.not = icmp eq i32 %call5177, 0 | |
br i1 %tobool5164.not, label %if.end5312, label %land.rhs5165, !llvm.loop !25 | |
if.then5180: ; preds = %land.rhs5165 | |
%814 = zext i32 %typ5132.0 to i64 | |
%arrayidx5182 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %814 | |
%815 = load i8, i8* %arrayidx5182, align 1, !tbaa !10 | |
%conv5183 = zext i8 %815 to i32 | |
store i32 %conv5183, i32* @zz_size, align 4, !tbaa !4 | |
%816 = zext i8 %815 to i64 | |
%arrayidx5191 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %816 | |
%817 = load %union.rec*, %union.rec** %arrayidx5191, align 8, !tbaa !8 | |
%cmp5192 = icmp eq %union.rec* %817, null | |
br i1 %cmp5192, label %if.then5194, label %if.else5196 | |
if.then5194: ; preds = %if.then5180 | |
%818 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call5195 = call %union.rec* @GetMemory(i32 noundef %conv5183, %struct.FILE_POS* noundef %818) #5 | |
store %union.rec* %call5195, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10477 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end5206 | |
if.else5196: ; preds = %if.then5180 | |
store %union.rec* %817, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred5202 = getelementptr inbounds %union.rec, %union.rec* %817, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%819 = load %union.rec*, %union.rec** %opred5202, align 8, !tbaa !10 | |
store %union.rec* %819, %union.rec** %arrayidx5191, align 8, !tbaa !8 | |
br label %if.end5206 | |
if.end5206: ; preds = %if.else5196, %if.then5194 | |
%820 = phi i32 [ %.pre10477, %if.then5194 ], [ %810, %if.else5196 ] | |
%.in10514 = phi %union.rec* [ %call5195, %if.then5194 ], [ %817, %if.else5196 ] | |
%conv5207 = trunc i32 %typ5132.0 to i8 | |
%821 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv5207, i8* %821, align 8, !tbaa !10 | |
%822 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10514, %union.rec** %822, align 8, !tbaa !10 | |
%823 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10514, %union.rec** %823, align 8, !tbaa !10 | |
%824 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10514, %union.rec** %824, align 8, !tbaa !10 | |
%825 = getelementptr %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10514, %union.rec** %825, align 8, !tbaa !10 | |
%826 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 2 | |
%os215231 = bitcast %union.SECOND_UNION* %826 to %struct.anon.0* | |
%oprecedence5232 = bitcast %union.SECOND_UNION* %826 to i8* | |
store i8 %prec5133.0, i8* %oprecedence5232, align 8, !tbaa !10 | |
%827 = load i8, i8* %ovspace5142, align 2, !tbaa !10 | |
%ovspace5240 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215231, i64 0, i32 2 | |
store i8 %827, i8* %ovspace5240, align 2, !tbaa !10 | |
%828 = load i8, i8* %ohspace5137, align 1, !tbaa !10 | |
%ohspace5248 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215231, i64 0, i32 1 | |
store i8 %828, i8* %ohspace5248, align 1, !tbaa !10 | |
%os55249 = bitcast %union.rec* %.in10514 to %struct.gapobj_type* | |
%829 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os55249, i64 0, i32 3, i32 0 | |
%bf.load5251 = load i16, i16* %829, align 4 | |
%bf.clear5257 = and i16 %bf.load5251, -769 | |
%bf.set5258 = or i16 %bf.clear5257, 512 | |
store i16 %bf.set5258, i16* %829, align 4 | |
%ofile_num5262 = getelementptr inbounds %union.rec, %union.rec* %call5122, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%830 = load i16, i16* %ofile_num5262, align 2, !tbaa !10 | |
%831 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %830, i16* %831, align 2, !tbaa !10 | |
%oline_num5270 = getelementptr inbounds %union.rec, %union.rec* %call5122, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load5271 = load i32, i32* %oline_num5270, align 4 | |
%bf.clear5272 = and i32 %bf.load5271, 1048575 | |
%832 = getelementptr inbounds %union.rec, %union.rec* %.in10514, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load5277 = load i32, i32* %832, align 4 | |
%bf.clear5279 = and i32 %bf.load5277, -1048576 | |
%bf.set5280 = or i32 %bf.clear5279, %bf.clear5272 | |
store i32 %bf.set5280, i32* %832, align 4 | |
%bf.load5285 = load i32, i32* %oline_num5270, align 4 | |
%bf.lshr5286 = and i32 %bf.load5285, -1048576 | |
%bf.set5295 = or i32 %bf.lshr5286, %bf.clear5272 | |
store i32 %bf.set5295, i32* %832, align 4 | |
%inc5296 = add nsw i32 %820, 1 | |
store i32 %inc5296, i32* @ttop, align 4, !tbaa !4 | |
%cmp5297 = icmp slt i32 %820, 99 | |
br i1 %cmp5297, label %if.then5299, label %if.else5302 | |
if.then5299: ; preds = %if.end5206 | |
%idxprom5300 = sext i32 %inc5296 to i64 | |
%arrayidx5301 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom5300 | |
store %union.rec* %.in10514, %union.rec** %arrayidx5301, align 8, !tbaa !8 | |
br label %if.end5312 | |
if.else5302: ; preds = %if.end5206 | |
%idxprom530410266 = zext i32 %820 to i64 | |
%arrayidx5305 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom530410266 | |
%833 = bitcast %union.rec** %arrayidx5305 to %struct.word_type** | |
%834 = load %struct.word_type*, %struct.word_type** %833, align 8, !tbaa !8 | |
%ofpos5308 = getelementptr inbounds %struct.word_type, %struct.word_type* %834, i64 0, i32 1, i32 0 | |
%call5309 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5308) #5 | |
br label %if.end5312 | |
if.end5312: ; preds = %if.else5302, %if.then5299, %while.body5176, %for.end5129 | |
store %union.rec* %call5122, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%835 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc5313 = add nsw i32 %835, 1 | |
store i32 %inc5313, i32* @otop, align 4, !tbaa !4 | |
%cmp5314 = icmp slt i32 %835, 99 | |
br i1 %cmp5314, label %if.then5316, label %if.else5319 | |
if.then5316: ; preds = %if.end5312 | |
%idxprom5317 = sext i32 %inc5313 to i64 | |
%arrayidx5318 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom5317 | |
store %union.rec* %call5122, %union.rec** %arrayidx5318, align 8, !tbaa !8 | |
br label %if.end5327 | |
if.else5319: ; preds = %if.end5312 | |
%idxprom532110265 = zext i32 %835 to i64 | |
%arrayidx5322 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom532110265 | |
%836 = bitcast %union.rec** %arrayidx5322 to %struct.word_type** | |
%837 = load %struct.word_type*, %struct.word_type** %836, align 8, !tbaa !8 | |
%ofpos5325 = getelementptr inbounds %struct.word_type, %struct.word_type* %837, i64 0, i32 1, i32 0 | |
%call5326 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5325) #5 | |
br label %if.end5327 | |
if.end5327: ; preds = %if.else5319, %if.then5316 | |
%call5328 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5328, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb5329: ; preds = %for.cond581 | |
store %union.rec* %84, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cond5360.in = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 90), align 1, !tbaa !10 | |
%cond5360 = zext i8 %cond5360.in to i32 | |
store i32 %cond5360, i32* @zz_size, align 4, !tbaa !4 | |
%838 = zext i8 %cond5360.in to i64 | |
%arrayidx5362 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %838 | |
%839 = load %union.rec*, %union.rec** %arrayidx5362, align 8, !tbaa !8 | |
%opred5366 = getelementptr %union.rec, %union.rec* %84, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %839, %union.rec** %opred5366, align 8, !tbaa !10 | |
%840 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%841 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom5367 = sext i32 %841 to i64 | |
%arrayidx5368 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom5367 | |
store %union.rec* %840, %union.rec** %arrayidx5368, align 8, !tbaa !8 | |
%call5369 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5369, %union.rec** %t, align 8, !tbaa !8 | |
%842 = getelementptr inbounds %union.rec, %union.rec* %call5369, i64 0, i32 0, i32 1 | |
%otype5373 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %842, i64 0, i32 0, i32 0 | |
%843 = load i8, i8* %otype5373, align 8, !tbaa !10 | |
%cmp5375.not = icmp eq i8 %843, 2 | |
br i1 %cmp5375.not, label %if.end5382, label %if.then5377 | |
if.then5377: ; preds = %sw.bb5329 | |
%ofpos5380 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %842, i64 0, i32 0 | |
%call5381 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 27, i8* noundef getelementptr inbounds ([29 x i8], [29 x i8]* @.str.40, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5380, i8* noundef getelementptr inbounds ([6 x i8], [6 x i8]* @.str.41, i64 0, i64 0)) #5 | |
%.pre10473 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %if.end5382 | |
if.end5382: ; preds = %if.then5377, %sw.bb5329 | |
%844 = phi %union.rec* [ %.pre10473, %if.then5377 ], [ %call5369, %sw.bb5329 ] | |
%845 = getelementptr inbounds %union.rec, %union.rec* %844, i64 0, i32 0, i32 5 | |
%846 = bitcast %union.rec** %845 to %struct.symbol_type** | |
%847 = load %struct.symbol_type*, %struct.symbol_type** %846, align 8, !tbaa !10 | |
%ouse_invocation5386 = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %847, i64 0, i32 11 | |
%848 = load %union.rec*, %union.rec** %ouse_invocation5386, align 8, !tbaa !10 | |
%cmp5387 = icmp eq %union.rec* %848, null | |
br i1 %cmp5387, label %if.then5389, label %if.end5394 | |
if.then5389: ; preds = %if.end5382 | |
%ofpos5392 = getelementptr inbounds %union.rec, %union.rec* %844, i64 0, i32 0, i32 1, i32 0 | |
%call5393 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 28, i8* noundef getelementptr inbounds ([39 x i8], [39 x i8]* @.str.42, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5392, i8* noundef getelementptr inbounds ([5 x i8], [5 x i8]* @.str.18, i64 0, i64 0)) #5 | |
%.pre10474 = load %union.rec*, %union.rec** %ouse_invocation5386, align 8, !tbaa !10 | |
br label %if.end5394 | |
if.end5394: ; preds = %if.then5389, %if.end5382 | |
%849 = phi %union.rec* [ %.pre10474, %if.then5389 ], [ %848, %if.end5382 ] | |
%850 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call5397 = call %union.rec* @CopyObject(%union.rec* noundef %849, %struct.FILE_POS* noundef %850) #5 | |
%link.0.in10391 = getelementptr inbounds %union.rec, %union.rec* %call5397, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%link.010392 = load %union.rec*, %union.rec** %link.0.in10391, align 8, !tbaa !10 | |
%cmp5403.not10393 = icmp eq %union.rec* %link.010392, %call5397 | |
br i1 %cmp5403.not10393, label %for.end5554, label %for.body5405 | |
for.cond5402.loopexit: ; preds = %for.cond5410 | |
%link.0.in = getelementptr inbounds %union.rec, %union.rec* %link.010394, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%link.0 = load %union.rec*, %union.rec** %link.0.in, align 8, !tbaa !10 | |
%cmp5403.not = icmp eq %union.rec* %link.0, %call5397 | |
br i1 %cmp5403.not, label %for.end5554, label %for.body5405, !llvm.loop !26 | |
for.body5405: ; preds = %for.cond5402.loopexit, %if.end5394 | |
%link.010394 = phi %union.rec* [ %link.0, %for.cond5402.loopexit ], [ %link.010392, %if.end5394 ] | |
%opred5409 = getelementptr inbounds %union.rec, %union.rec* %link.010394, i64 0, i32 0, i32 0, i64 1, i32 0 | |
br label %for.cond5410 | |
for.cond5410: ; preds = %for.inc5419, %for.body5405 | |
%y.2.in = phi %union.rec** [ %opred5409, %for.body5405 ], [ %opred5423, %for.inc5419 ] | |
%851 = bitcast %union.rec** %y.2.in to %struct.word_type** | |
%y.210116 = load %struct.word_type*, %struct.word_type** %851, align 8, !tbaa !10 | |
%otype5414 = getelementptr inbounds %struct.word_type, %struct.word_type* %y.210116, i64 0, i32 1, i32 0, i32 0 | |
%852 = load i8, i8* %otype5414, align 8, !tbaa !10 | |
switch i8 %852, label %for.cond5402.loopexit [ | |
i8 0, label %for.inc5419 | |
i8 82, label %if.then5432 | |
] | |
for.inc5419: ; preds = %for.cond5410 | |
%opred5423 = getelementptr inbounds %struct.word_type, %struct.word_type* %y.210116, i64 0, i32 0, i64 1, i32 0 | |
br label %for.cond5410, !llvm.loop !27 | |
if.then5432: ; preds = %for.cond5410 | |
store %union.rec* %link.010394, %union.rec** @xx_link, align 8, !tbaa !8 | |
%osucc5436 = getelementptr inbounds %union.rec, %union.rec* %link.010394, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%853 = load %union.rec*, %union.rec** %osucc5436, align 8, !tbaa !10 | |
%cmp5437 = icmp eq %union.rec* %853, %link.010394 | |
br i1 %cmp5437, label %cond.end5469, label %cond.false5440 | |
cond.false5440: ; preds = %if.then5432 | |
store %union.rec* %853, %union.rec** @zz_res, align 8, !tbaa !8 | |
%854 = getelementptr inbounds %union.rec, %union.rec* %link.010394, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%855 = load %union.rec*, %union.rec** %854, align 8, !tbaa !10 | |
%opred5452 = getelementptr inbounds %union.rec, %union.rec* %853, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %855, %union.rec** %opred5452, align 8, !tbaa !10 | |
%856 = bitcast %union.rec** %854 to %struct.word_type** | |
%857 = load %struct.word_type*, %struct.word_type** %856, align 8, !tbaa !10 | |
%osucc5460 = getelementptr inbounds %struct.word_type, %struct.word_type* %857, i64 0, i32 0, i64 1, i32 1 | |
store %union.rec* %853, %union.rec** %osucc5460, align 8, !tbaa !10 | |
store %union.rec* %link.010394, %union.rec** %osucc5436, align 8, !tbaa !10 | |
store %union.rec* %link.010394, %union.rec** %opred5409, align 8, !tbaa !10 | |
br label %cond.end5469 | |
cond.end5469: ; preds = %cond.false5440, %if.then5432 | |
store %union.rec* %link.010394, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%osucc5474 = getelementptr inbounds %union.rec, %union.rec* %link.010394, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%858 = load %union.rec*, %union.rec** %osucc5474, align 8, !tbaa !10 | |
%cmp5475 = icmp eq %union.rec* %858, %link.010394 | |
br i1 %cmp5475, label %cond.end5507, label %cond.false5478 | |
cond.false5478: ; preds = %cond.end5469 | |
store %union.rec* %858, %union.rec** @zz_res, align 8, !tbaa !8 | |
%opred5486 = getelementptr %union.rec, %union.rec* %link.010394, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%859 = load %union.rec*, %union.rec** %opred5486, align 8, !tbaa !10 | |
%opred5490 = getelementptr inbounds %union.rec, %union.rec* %858, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %859, %union.rec** %opred5490, align 8, !tbaa !10 | |
%860 = load %union.rec*, %union.rec** @zz_res, align 8, !tbaa !8 | |
%861 = load %struct.word_type**, %struct.word_type*** bitcast (%union.rec** @zz_hold to %struct.word_type***), align 8, !tbaa !8 | |
%862 = load %struct.word_type*, %struct.word_type** %861, align 8, !tbaa !10 | |
%osucc5498 = getelementptr inbounds %struct.word_type, %struct.word_type* %862, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %860, %union.rec** %osucc5498, align 8, !tbaa !10 | |
%osucc5502 = getelementptr inbounds %struct.word_type*, %struct.word_type** %861, i64 1 | |
%863 = bitcast %struct.word_type** %osucc5502 to %struct.word_type*** | |
store %struct.word_type** %861, %struct.word_type*** %863, align 8, !tbaa !10 | |
%864 = bitcast %struct.word_type** %861 to %struct.word_type*** | |
store %struct.word_type** %861, %struct.word_type*** %864, align 8, !tbaa !10 | |
%.pre10475 = load %union.rec*, %union.rec** @xx_link, align 8, !tbaa !8 | |
br label %cond.end5507 | |
cond.end5507: ; preds = %cond.false5478, %cond.end5469 | |
%865 = phi %union.rec* [ %link.010394, %cond.end5469 ], [ %.pre10475, %cond.false5478 ] | |
store %union.rec* %865, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype5512 = getelementptr inbounds %union.rec, %union.rec* %865, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%866 = load i8, i8* %otype5512, align 8, !tbaa !10 | |
%.off10188 = add i8 %866, -11 | |
%switch10189 = icmp ult i8 %.off10188, 2 | |
%867 = getelementptr inbounds %union.rec, %union.rec* %865, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom5535 = zext i8 %866 to i64 | |
%arrayidx5536 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom5535 | |
%cond5539.in.in = select i1 %switch10189, i8* %867, i8* %arrayidx5536 | |
%cond5539.in = load i8, i8* %cond5539.in.in, align 1, !tbaa !10 | |
%cond5539 = zext i8 %cond5539.in to i32 | |
store i32 %cond5539, i32* @zz_size, align 4, !tbaa !4 | |
%868 = zext i8 %cond5539.in to i64 | |
%arrayidx5541 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %868 | |
%869 = load %union.rec*, %union.rec** %arrayidx5541, align 8, !tbaa !8 | |
%opred5545 = getelementptr %union.rec, %union.rec* %865, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %869, %union.rec** %opred5545, align 8, !tbaa !10 | |
%870 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%871 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom5546 = sext i32 %871 to i64 | |
%arrayidx5547 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom5546 | |
store %union.rec* %870, %union.rec** %arrayidx5547, align 8, !tbaa !8 | |
br label %for.end5554 | |
for.end5554: ; preds = %cond.end5507, %for.cond5402.loopexit, %if.end5394 | |
%tobool5555.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool5555.not, label %if.end5737, label %if.then5556 | |
if.then5556: ; preds = %for.end5554 | |
%872 = getelementptr inbounds %union.rec, %union.rec* %call5397, i64 0, i32 0, i32 2 | |
%os215561 = bitcast %union.SECOND_UNION* %872 to %struct.anon.0* | |
%ohspace5562 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215561, i64 0, i32 1 | |
%873 = load i8, i8* %ohspace5562, align 1, !tbaa !10 | |
%conv5563 = zext i8 %873 to i32 | |
%ovspace5567 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215561, i64 0, i32 2 | |
%874 = load i8, i8* %ovspace5567, align 2, !tbaa !10 | |
%conv5568 = zext i8 %874 to i32 | |
%add5569 = sub nsw i32 0, %conv5568 | |
%cmp5570.not = icmp eq i32 %conv5563, %add5569 | |
br i1 %cmp5570.not, label %if.else5573, label %land.rhs5590.preheader | |
if.else5573: ; preds = %if.then5556 | |
%otype5577 = getelementptr inbounds %union.rec, %union.rec* %call5397, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%875 = load i8, i8* %otype5577, align 8, !tbaa !10 | |
%cmp5579 = icmp eq i8 %875, 102 | |
%cmp5582 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9213 = select i1 %cmp5579, i1 true, i1 %cmp5582 | |
%.10152 = select i1 %or.cond9213, i8 7, i8 103 | |
br label %land.rhs5590.preheader | |
land.rhs5590.preheader: ; preds = %if.else5573, %if.then5556 | |
%typ5557.0 = phi i32 [ 100, %if.then5556 ], [ 101, %if.else5573 ] | |
%prec5558.0 = phi i8 [ 7, %if.then5556 ], [ %.10152, %if.else5573 ] | |
br label %land.rhs5590 | |
land.rhs5590: ; preds = %while.body5601, %land.rhs5590.preheader | |
%876 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom5591 = sext i32 %876 to i64 | |
%arrayidx5592 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom5591 | |
%877 = bitcast %union.rec** %arrayidx5592 to %struct.word_type** | |
%878 = load %struct.word_type*, %struct.word_type** %877, align 8, !tbaa !8 | |
%ou25594 = getelementptr inbounds %struct.word_type, %struct.word_type* %878, i64 0, i32 2 | |
%oprecedence5596 = bitcast %union.SECOND_UNION* %ou25594 to i8* | |
%879 = load i8, i8* %oprecedence5596, align 8, !tbaa !10 | |
%cmp5598.not = icmp ugt i8 %prec5558.0, %879 | |
br i1 %cmp5598.not, label %if.then5605, label %while.body5601 | |
while.body5601: ; preds = %land.rhs5590 | |
%call5602 = call fastcc i32 @Reduce() | |
%tobool5589.not = icmp eq i32 %call5602, 0 | |
br i1 %tobool5589.not, label %if.end5737, label %land.rhs5590, !llvm.loop !28 | |
if.then5605: ; preds = %land.rhs5590 | |
%880 = zext i32 %typ5557.0 to i64 | |
%arrayidx5607 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %880 | |
%881 = load i8, i8* %arrayidx5607, align 1, !tbaa !10 | |
%conv5608 = zext i8 %881 to i32 | |
store i32 %conv5608, i32* @zz_size, align 4, !tbaa !4 | |
%882 = zext i8 %881 to i64 | |
%arrayidx5616 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %882 | |
%883 = load %union.rec*, %union.rec** %arrayidx5616, align 8, !tbaa !8 | |
%cmp5617 = icmp eq %union.rec* %883, null | |
br i1 %cmp5617, label %if.then5619, label %if.else5621 | |
if.then5619: ; preds = %if.then5605 | |
%884 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call5620 = call %union.rec* @GetMemory(i32 noundef %conv5608, %struct.FILE_POS* noundef %884) #5 | |
store %union.rec* %call5620, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10476 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end5631 | |
if.else5621: ; preds = %if.then5605 | |
store %union.rec* %883, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred5627 = getelementptr inbounds %union.rec, %union.rec* %883, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%885 = load %union.rec*, %union.rec** %opred5627, align 8, !tbaa !10 | |
store %union.rec* %885, %union.rec** %arrayidx5616, align 8, !tbaa !8 | |
br label %if.end5631 | |
if.end5631: ; preds = %if.else5621, %if.then5619 | |
%886 = phi i32 [ %.pre10476, %if.then5619 ], [ %876, %if.else5621 ] | |
%.in10512 = phi %union.rec* [ %call5620, %if.then5619 ], [ %883, %if.else5621 ] | |
%conv5632 = trunc i32 %typ5557.0 to i8 | |
%887 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv5632, i8* %887, align 8, !tbaa !10 | |
%888 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10512, %union.rec** %888, align 8, !tbaa !10 | |
%889 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10512, %union.rec** %889, align 8, !tbaa !10 | |
%890 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10512, %union.rec** %890, align 8, !tbaa !10 | |
%891 = getelementptr %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10512, %union.rec** %891, align 8, !tbaa !10 | |
%892 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 2 | |
%os215656 = bitcast %union.SECOND_UNION* %892 to %struct.anon.0* | |
%oprecedence5657 = bitcast %union.SECOND_UNION* %892 to i8* | |
store i8 %prec5558.0, i8* %oprecedence5657, align 8, !tbaa !10 | |
%893 = load i8, i8* %ovspace5567, align 2, !tbaa !10 | |
%ovspace5665 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215656, i64 0, i32 2 | |
store i8 %893, i8* %ovspace5665, align 2, !tbaa !10 | |
%894 = load i8, i8* %ohspace5562, align 1, !tbaa !10 | |
%ohspace5673 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215656, i64 0, i32 1 | |
store i8 %894, i8* %ohspace5673, align 1, !tbaa !10 | |
%os55674 = bitcast %union.rec* %.in10512 to %struct.gapobj_type* | |
%895 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os55674, i64 0, i32 3, i32 0 | |
%bf.load5676 = load i16, i16* %895, align 4 | |
%bf.clear5682 = and i16 %bf.load5676, -769 | |
%bf.set5683 = or i16 %bf.clear5682, 512 | |
store i16 %bf.set5683, i16* %895, align 4 | |
%ofile_num5687 = getelementptr inbounds %union.rec, %union.rec* %call5397, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%896 = load i16, i16* %ofile_num5687, align 2, !tbaa !10 | |
%897 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %896, i16* %897, align 2, !tbaa !10 | |
%oline_num5695 = getelementptr inbounds %union.rec, %union.rec* %call5397, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load5696 = load i32, i32* %oline_num5695, align 4 | |
%bf.clear5697 = and i32 %bf.load5696, 1048575 | |
%898 = getelementptr inbounds %union.rec, %union.rec* %.in10512, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load5702 = load i32, i32* %898, align 4 | |
%bf.clear5704 = and i32 %bf.load5702, -1048576 | |
%bf.set5705 = or i32 %bf.clear5704, %bf.clear5697 | |
store i32 %bf.set5705, i32* %898, align 4 | |
%bf.load5710 = load i32, i32* %oline_num5695, align 4 | |
%bf.lshr5711 = and i32 %bf.load5710, -1048576 | |
%bf.set5720 = or i32 %bf.lshr5711, %bf.clear5697 | |
store i32 %bf.set5720, i32* %898, align 4 | |
%inc5721 = add nsw i32 %886, 1 | |
store i32 %inc5721, i32* @ttop, align 4, !tbaa !4 | |
%cmp5722 = icmp slt i32 %886, 99 | |
br i1 %cmp5722, label %if.then5724, label %if.else5727 | |
if.then5724: ; preds = %if.end5631 | |
%idxprom5725 = sext i32 %inc5721 to i64 | |
%arrayidx5726 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom5725 | |
store %union.rec* %.in10512, %union.rec** %arrayidx5726, align 8, !tbaa !8 | |
br label %if.end5737 | |
if.else5727: ; preds = %if.end5631 | |
%idxprom572910269 = zext i32 %886 to i64 | |
%arrayidx5730 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom572910269 | |
%899 = bitcast %union.rec** %arrayidx5730 to %struct.word_type** | |
%900 = load %struct.word_type*, %struct.word_type** %899, align 8, !tbaa !8 | |
%ofpos5733 = getelementptr inbounds %struct.word_type, %struct.word_type* %900, i64 0, i32 1, i32 0 | |
%call5734 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5733) #5 | |
br label %if.end5737 | |
if.end5737: ; preds = %if.else5727, %if.then5724, %while.body5601, %for.end5554 | |
store %union.rec* %call5397, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%901 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc5738 = add nsw i32 %901, 1 | |
store i32 %inc5738, i32* @otop, align 4, !tbaa !4 | |
%cmp5739 = icmp slt i32 %901, 99 | |
br i1 %cmp5739, label %if.then5741, label %if.else5744 | |
if.then5741: ; preds = %if.end5737 | |
%idxprom5742 = sext i32 %inc5738 to i64 | |
%arrayidx5743 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom5742 | |
store %union.rec* %call5397, %union.rec** %arrayidx5743, align 8, !tbaa !8 | |
br label %if.end5752 | |
if.else5744: ; preds = %if.end5737 | |
%idxprom574610268 = zext i32 %901 to i64 | |
%arrayidx5747 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom574610268 | |
%902 = bitcast %union.rec** %arrayidx5747 to %struct.word_type** | |
%903 = load %struct.word_type*, %struct.word_type** %902, align 8, !tbaa !8 | |
%ofpos5750 = getelementptr inbounds %struct.word_type, %struct.word_type* %903, i64 0, i32 1, i32 0 | |
%call5751 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5750) #5 | |
br label %if.end5752 | |
if.end5752: ; preds = %if.else5744, %if.then5741 | |
%call5753 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5753, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
sw.bb5754: ; preds = %for.cond581 | |
call void @SuppressVisible() #5 | |
%904 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
store %union.rec* %904, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype5758 = getelementptr inbounds %union.rec, %union.rec* %904, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%905 = load i8, i8* %otype5758, align 8, !tbaa !10 | |
%.off10190 = add i8 %905, -11 | |
%switch10191 = icmp ult i8 %.off10190, 2 | |
%906 = getelementptr inbounds %union.rec, %union.rec* %904, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom5781 = zext i8 %905 to i64 | |
%arrayidx5782 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom5781 | |
%cond5785.in.in = select i1 %switch10191, i8* %906, i8* %arrayidx5782 | |
%cond5785.in = load i8, i8* %cond5785.in.in, align 1, !tbaa !10 | |
%cond5785 = zext i8 %cond5785.in to i32 | |
store i32 %cond5785, i32* @zz_size, align 4, !tbaa !4 | |
%907 = zext i8 %cond5785.in to i64 | |
%arrayidx5787 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %907 | |
%908 = load %union.rec*, %union.rec** %arrayidx5787, align 8, !tbaa !8 | |
%opred5791 = getelementptr %union.rec, %union.rec* %904, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %908, %union.rec** %opred5791, align 8, !tbaa !10 | |
%909 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%910 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom5792 = sext i32 %910 to i64 | |
%arrayidx5793 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom5792 | |
store %union.rec* %909, %union.rec** %arrayidx5793, align 8, !tbaa !8 | |
%call5794 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5794, %union.rec** %t, align 8, !tbaa !8 | |
call void @UnSuppressVisible() #5 | |
%911 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou15796 = getelementptr inbounds %struct.word_type, %struct.word_type* %911, i64 0, i32 1 | |
%otype5798 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %ou15796, i64 0, i32 0, i32 0 | |
%912 = load i8, i8* %otype5798, align 8, !tbaa !10 | |
%cmp5800.not = icmp eq i8 %912, 2 | |
%913 = bitcast %struct.word_type* %911 to %union.rec* | |
br i1 %cmp5800.not, label %sw.bb5808, label %if.then5802 | |
if.then5802: ; preds = %sw.bb5754 | |
%ofpos5805 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %ou15796, i64 0, i32 0 | |
%call5806 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 29, i8* noundef getelementptr inbounds ([29 x i8], [29 x i8]* @.str.40, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos5805, i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0)) #5 | |
%.pre10457 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %sw.bb5808 | |
sw.bb5808: ; preds = %if.then5802, %sw.bb5754, %for.cond581 | |
%914 = phi %union.rec* [ %913, %sw.bb5754 ], [ %.pre10457, %if.then5802 ], [ %84, %for.cond581 ] | |
%915 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 5 | |
%916 = load %union.rec*, %union.rec** %915, align 8, !tbaa !10 | |
call void @PushScope(%union.rec* noundef %916, i32 noundef 1, i32 noundef 0) #5 | |
%call5811 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5811, %union.rec** %t, align 8, !tbaa !8 | |
%otype5815 = getelementptr inbounds %union.rec, %union.rec* %call5811, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%917 = load i8, i8* %otype5815, align 8, !tbaa !10 | |
%cmp5817 = icmp eq i8 %917, 107 | |
br i1 %cmp5817, label %if.then5819, label %if.end5861 | |
if.then5819: ; preds = %sw.bb5808 | |
store %union.rec* %call5811, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cond5850.in = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 107), align 1, !tbaa !10 | |
%cond5850 = zext i8 %cond5850.in to i32 | |
store i32 %cond5850, i32* @zz_size, align 4, !tbaa !4 | |
%918 = zext i8 %cond5850.in to i64 | |
%arrayidx5852 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %918 | |
%919 = load %union.rec*, %union.rec** %arrayidx5852, align 8, !tbaa !8 | |
%opred5856 = getelementptr %union.rec, %union.rec* %call5811, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %919, %union.rec** %opred5856, align 8, !tbaa !10 | |
%920 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%921 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom5857 = sext i32 %921 to i64 | |
%arrayidx5858 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom5857 | |
store %union.rec* %920, %union.rec** %arrayidx5858, align 8, !tbaa !8 | |
%call5859 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call5859, %union.rec** %t, align 8, !tbaa !8 | |
br label %if.end5861 | |
if.end5861: ; preds = %if.then5819, %sw.bb5808 | |
call void @PopScope() #5 | |
%922 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%otype5865 = getelementptr inbounds %struct.word_type, %struct.word_type* %922, i64 0, i32 1, i32 0, i32 0 | |
%923 = load i8, i8* %otype5865, align 8, !tbaa !10 | |
%924 = and i8 %923, -2 | |
%switch10195 = icmp eq i8 %924, 6 | |
br i1 %switch10195, label %if.then5877, label %if.end6076 | |
if.then5877: ; preds = %if.end5861 | |
%tobool5878.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool5878.not, label %if.end6060, label %if.then5879 | |
if.then5879: ; preds = %if.then5877 | |
%925 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 2 | |
%os215884 = bitcast %union.SECOND_UNION* %925 to %struct.anon.0* | |
%ohspace5885 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215884, i64 0, i32 1 | |
%926 = load i8, i8* %ohspace5885, align 1, !tbaa !10 | |
%conv5886 = zext i8 %926 to i32 | |
%ovspace5890 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215884, i64 0, i32 2 | |
%927 = load i8, i8* %ovspace5890, align 2, !tbaa !10 | |
%conv5891 = zext i8 %927 to i32 | |
%add5892 = sub nsw i32 0, %conv5891 | |
%cmp5893.not = icmp eq i32 %conv5886, %add5892 | |
br i1 %cmp5893.not, label %if.else5896, label %land.rhs5913.preheader | |
if.else5896: ; preds = %if.then5879 | |
%otype5900 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%928 = load i8, i8* %otype5900, align 8, !tbaa !10 | |
%cmp5902 = icmp eq i8 %928, 102 | |
%cmp5905 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9214 = select i1 %cmp5902, i1 true, i1 %cmp5905 | |
%.10153 = select i1 %or.cond9214, i8 7, i8 103 | |
br label %land.rhs5913.preheader | |
land.rhs5913.preheader: ; preds = %if.else5896, %if.then5879 | |
%typ5880.0 = phi i32 [ 100, %if.then5879 ], [ 101, %if.else5896 ] | |
%prec5881.0 = phi i8 [ 7, %if.then5879 ], [ %.10153, %if.else5896 ] | |
br label %land.rhs5913 | |
land.rhs5913: ; preds = %while.body5924, %land.rhs5913.preheader | |
%929 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom5914 = sext i32 %929 to i64 | |
%arrayidx5915 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom5914 | |
%930 = bitcast %union.rec** %arrayidx5915 to %struct.word_type** | |
%931 = load %struct.word_type*, %struct.word_type** %930, align 8, !tbaa !8 | |
%ou25917 = getelementptr inbounds %struct.word_type, %struct.word_type* %931, i64 0, i32 2 | |
%oprecedence5919 = bitcast %union.SECOND_UNION* %ou25917 to i8* | |
%932 = load i8, i8* %oprecedence5919, align 8, !tbaa !10 | |
%cmp5921.not = icmp ugt i8 %prec5881.0, %932 | |
br i1 %cmp5921.not, label %if.then5928, label %while.body5924 | |
while.body5924: ; preds = %land.rhs5913 | |
%call5925 = call fastcc i32 @Reduce() | |
%tobool5912.not = icmp eq i32 %call5925, 0 | |
br i1 %tobool5912.not, label %if.end6060, label %land.rhs5913, !llvm.loop !29 | |
if.then5928: ; preds = %land.rhs5913 | |
%933 = zext i32 %typ5880.0 to i64 | |
%arrayidx5930 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %933 | |
%934 = load i8, i8* %arrayidx5930, align 1, !tbaa !10 | |
%conv5931 = zext i8 %934 to i32 | |
store i32 %conv5931, i32* @zz_size, align 4, !tbaa !4 | |
%935 = zext i8 %934 to i64 | |
%arrayidx5939 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %935 | |
%936 = load %union.rec*, %union.rec** %arrayidx5939, align 8, !tbaa !8 | |
%cmp5940 = icmp eq %union.rec* %936, null | |
br i1 %cmp5940, label %if.then5942, label %if.else5944 | |
if.then5942: ; preds = %if.then5928 | |
%937 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call5943 = call %union.rec* @GetMemory(i32 noundef %conv5931, %struct.FILE_POS* noundef %937) #5 | |
store %union.rec* %call5943, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10472 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end5954 | |
if.else5944: ; preds = %if.then5928 | |
store %union.rec* %936, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred5950 = getelementptr inbounds %union.rec, %union.rec* %936, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%938 = load %union.rec*, %union.rec** %opred5950, align 8, !tbaa !10 | |
store %union.rec* %938, %union.rec** %arrayidx5939, align 8, !tbaa !8 | |
br label %if.end5954 | |
if.end5954: ; preds = %if.else5944, %if.then5942 | |
%939 = phi i32 [ %.pre10472, %if.then5942 ], [ %929, %if.else5944 ] | |
%.in10510 = phi %union.rec* [ %call5943, %if.then5942 ], [ %936, %if.else5944 ] | |
%conv5955 = trunc i32 %typ5880.0 to i8 | |
%940 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv5955, i8* %940, align 8, !tbaa !10 | |
%941 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10510, %union.rec** %941, align 8, !tbaa !10 | |
%942 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10510, %union.rec** %942, align 8, !tbaa !10 | |
%943 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10510, %union.rec** %943, align 8, !tbaa !10 | |
%944 = getelementptr %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10510, %union.rec** %944, align 8, !tbaa !10 | |
%945 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 2 | |
%os215979 = bitcast %union.SECOND_UNION* %945 to %struct.anon.0* | |
%oprecedence5980 = bitcast %union.SECOND_UNION* %945 to i8* | |
store i8 %prec5881.0, i8* %oprecedence5980, align 8, !tbaa !10 | |
%946 = load i8, i8* %ovspace5890, align 2, !tbaa !10 | |
%ovspace5988 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215979, i64 0, i32 2 | |
store i8 %946, i8* %ovspace5988, align 2, !tbaa !10 | |
%947 = load i8, i8* %ohspace5885, align 1, !tbaa !10 | |
%ohspace5996 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os215979, i64 0, i32 1 | |
store i8 %947, i8* %ohspace5996, align 1, !tbaa !10 | |
%os55997 = bitcast %union.rec* %.in10510 to %struct.gapobj_type* | |
%948 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os55997, i64 0, i32 3, i32 0 | |
%bf.load5999 = load i16, i16* %948, align 4 | |
%bf.clear6005 = and i16 %bf.load5999, -769 | |
%bf.set6006 = or i16 %bf.clear6005, 512 | |
store i16 %bf.set6006, i16* %948, align 4 | |
%ofile_num6010 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%949 = load i16, i16* %ofile_num6010, align 2, !tbaa !10 | |
%950 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %949, i16* %950, align 2, !tbaa !10 | |
%oline_num6018 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load6019 = load i32, i32* %oline_num6018, align 4 | |
%bf.clear6020 = and i32 %bf.load6019, 1048575 | |
%951 = getelementptr inbounds %union.rec, %union.rec* %.in10510, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load6025 = load i32, i32* %951, align 4 | |
%bf.clear6027 = and i32 %bf.load6025, -1048576 | |
%bf.set6028 = or i32 %bf.clear6027, %bf.clear6020 | |
store i32 %bf.set6028, i32* %951, align 4 | |
%bf.load6033 = load i32, i32* %oline_num6018, align 4 | |
%bf.lshr6034 = and i32 %bf.load6033, -1048576 | |
%bf.set6043 = or i32 %bf.lshr6034, %bf.clear6020 | |
store i32 %bf.set6043, i32* %951, align 4 | |
%inc6044 = add nsw i32 %939, 1 | |
store i32 %inc6044, i32* @ttop, align 4, !tbaa !4 | |
%cmp6045 = icmp slt i32 %939, 99 | |
br i1 %cmp6045, label %if.then6047, label %if.else6050 | |
if.then6047: ; preds = %if.end5954 | |
%idxprom6048 = sext i32 %inc6044 to i64 | |
%arrayidx6049 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom6048 | |
store %union.rec* %.in10510, %union.rec** %arrayidx6049, align 8, !tbaa !8 | |
br label %if.end6060 | |
if.else6050: ; preds = %if.end5954 | |
%idxprom605210272 = zext i32 %939 to i64 | |
%arrayidx6053 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom605210272 | |
%952 = bitcast %union.rec** %arrayidx6053 to %struct.word_type** | |
%953 = load %struct.word_type*, %struct.word_type** %952, align 8, !tbaa !8 | |
%ofpos6056 = getelementptr inbounds %struct.word_type, %struct.word_type* %953, i64 0, i32 1, i32 0 | |
%call6057 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos6056) #5 | |
br label %if.end6060 | |
if.end6060: ; preds = %if.else6050, %if.then6047, %while.body5924, %if.then5877 | |
store %union.rec* %914, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%954 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc6061 = add nsw i32 %954, 1 | |
store i32 %inc6061, i32* @otop, align 4, !tbaa !4 | |
%cmp6062 = icmp slt i32 %954, 99 | |
br i1 %cmp6062, label %if.then6064, label %if.else6067 | |
if.then6064: ; preds = %if.end6060 | |
%idxprom6065 = sext i32 %inc6061 to i64 | |
%arrayidx6066 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom6065 | |
store %union.rec* %914, %union.rec** %arrayidx6066, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
for.cond581.backedge: ; preds = %sw.default, %if.end9168, %if.then8959, %if.then8938, %if.else8775, %if.then8772, %if.end8768, %if.else8726, %if.else8719, %if.end8717, %if.else6067, %if.then6064, %if.end5752, %if.end5327, %if.end5077, %if.else4717, %if.then4714, %if.end4437, %if.end4184, %if.end3937, %sw.bb3730, %if.end3728, %cond.end3652, %if.end3336, %sw.bb3118, %if.end3116, %if.end2829, %if.end2093, %if.else1800, %if.then1797, %if.end1559, %if.end1025, %if.end825 | |
%scope_count.promoted10377.be = phi i32 [ %scope_count.promoted10377, %sw.default ], [ %scope_count.promoted10377, %if.then8938 ], [ %scope_count.promoted10377, %if.then8959 ], [ %scope_count.promoted10377, %if.end9168 ], [ %inc658510368.lcssa10379, %if.end8717 ], [ %inc658510368.lcssa10379, %if.else8719 ], [ %inc658510368.lcssa10379, %if.then8772 ], [ %inc658510368.lcssa10379, %if.end8768 ], [ %inc658510368.lcssa10379, %if.else8775 ], [ %inc658510368.lcssa10379, %if.else8726 ], [ %scope_count.promoted10377, %if.end5752 ], [ %804, %if.end5327 ], [ %scope_count.promoted10377, %if.end5077 ], [ %scope_count.promoted10377, %if.end4437 ], [ %scope_count.promoted10377, %if.end4184 ], [ %scope_count.promoted10377, %if.end3937 ], [ %scope_count.promoted10377, %sw.bb3730 ], [ %scope_count.promoted10377, %if.end3728 ], [ %scope_count.promoted10377, %cond.end3652 ], [ %scope_count.promoted10377, %if.end3336 ], [ %scope_count.promoted10377, %sw.bb3118 ], [ %scope_count.promoted10377, %if.end3116 ], [ %scope_count.promoted10377, %if.end2829 ], [ %scope_count.promoted10377, %if.end2093 ], [ %scope_count.promoted10377, %if.end1559 ], [ %scope_count.promoted10377, %if.end1025 ], [ %scope_count.promoted10377, %if.end825 ], [ %scope_count.promoted10377, %if.else1800 ], [ %scope_count.promoted10377, %if.then1797 ], [ %scope_count.promoted10377, %if.else4717 ], [ %scope_count.promoted10377, %if.then4714 ], [ %scope_count.promoted10377, %if.else6067 ], [ %scope_count.promoted10377, %if.then6064 ] | |
%obj_prev.1.be = phi i32 [ %obj_prev.1, %sw.default ], [ 0, %if.then8938 ], [ 0, %if.then8959 ], [ %call9169, %if.end9168 ], [ 1, %if.end8717 ], [ %obj_prev.41, %if.else8719 ], [ %call8769, %if.then8772 ], [ %call8769, %if.end8768 ], [ %obj_prev.41, %if.else8775 ], [ %obj_prev.41, %if.else8726 ], [ 1, %if.end5752 ], [ 1, %if.end5327 ], [ 1, %if.end5077 ], [ 1, %if.end4437 ], [ 1, %if.end4184 ], [ 1, %if.end3937 ], [ %obj_prev.1, %sw.bb3730 ], [ %call3721, %if.end3728 ], [ %call3639, %cond.end3652 ], [ 0, %if.end3336 ], [ %obj_prev.1, %sw.bb3118 ], [ %obj_prev.21, %if.end3116 ], [ 1, %if.end2829 ], [ %obj_prev.11, %if.end2093 ], [ 0, %if.end1559 ], [ 1, %if.end1025 ], [ 1, %if.end825 ], [ 1, %if.else1800 ], [ 1, %if.then1797 ], [ 1, %if.else4717 ], [ 1, %if.then4714 ], [ 1, %if.else6067 ], [ 1, %if.then6064 ] | |
br label %for.cond581 | |
if.else6067: ; preds = %if.end6060 | |
%idxprom606910271 = zext i32 %954 to i64 | |
%arrayidx6070 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom606910271 | |
%955 = bitcast %union.rec** %arrayidx6070 to %struct.word_type** | |
%956 = load %struct.word_type*, %struct.word_type** %955, align 8, !tbaa !8 | |
%ofpos6073 = getelementptr inbounds %struct.word_type, %struct.word_type* %956, i64 0, i32 1, i32 0 | |
%call6074 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos6073) #5 | |
br label %for.cond581.backedge | |
if.end6076: ; preds = %if.end5861 | |
%957 = getelementptr inbounds %union.rec, %union.rec* %916, i64 0, i32 0, i32 2 | |
%os266079 = bitcast %union.SECOND_UNION* %957 to %struct.anon.5* | |
%ohas_lpar6080 = getelementptr inbounds %struct.anon.5, %struct.anon.5* %os266079, i64 0, i32 1 | |
%958 = bitcast [3 x i8]* %ohas_lpar6080 to i24* | |
%bf.load6081 = load i24, i24* %958, align 1 | |
%959 = and i24 %bf.load6081, 4 | |
%tobool6085.not = icmp eq i24 %959, 0 | |
br i1 %tobool6085.not, label %if.else6145, label %for.cond6087.preheader | |
for.cond6087.preheader: ; preds = %if.end6076 | |
%960 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 2 | |
%oprecedence6120 = bitcast %union.SECOND_UNION* %960 to i8* | |
%ofpos6092 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0 | |
br label %for.cond6087 | |
for.cond6087: ; preds = %for.cond6087.backedge, %for.cond6087.preheader | |
%obj_prev.35 = phi i32 [ %obj_prev.1, %for.cond6087.preheader ], [ %obj_prev.35.be, %for.cond6087.backedge ] | |
%tobool6088.not = icmp eq i32 %obj_prev.35, 0 | |
br i1 %tobool6088.not, label %if.then6089, label %if.else6109 | |
if.then6089: ; preds = %for.cond6087 | |
%call6093 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos6092) #5 | |
store %union.rec* %call6093, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%961 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc6094 = add nsw i32 %961, 1 | |
store i32 %inc6094, i32* @otop, align 4, !tbaa !4 | |
%cmp6095 = icmp slt i32 %961, 99 | |
br i1 %cmp6095, label %if.then6097, label %if.else6100 | |
if.then6097: ; preds = %if.then6089 | |
%idxprom6098 = sext i32 %inc6094 to i64 | |
%arrayidx6099 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom6098 | |
store %union.rec* %call6093, %union.rec** %arrayidx6099, align 8, !tbaa !8 | |
br label %for.cond6087.backedge | |
for.cond6087.backedge: ; preds = %if.then6132, %if.else6100, %if.then6097 | |
%obj_prev.35.be = phi i32 [ %call6133, %if.then6132 ], [ 1, %if.else6100 ], [ 1, %if.then6097 ] | |
br label %for.cond6087 | |
if.else6100: ; preds = %if.then6089 | |
%idxprom610210292 = zext i32 %961 to i64 | |
%arrayidx6103 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom610210292 | |
%962 = bitcast %union.rec** %arrayidx6103 to %struct.word_type** | |
%963 = load %struct.word_type*, %struct.word_type** %962, align 8, !tbaa !8 | |
%ofpos6106 = getelementptr inbounds %struct.word_type, %struct.word_type* %963, i64 0, i32 1, i32 0 | |
%call6107 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos6106) #5 | |
br label %for.cond6087.backedge | |
if.else6109: ; preds = %for.cond6087 | |
%964 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom6110 = sext i32 %964 to i64 | |
%arrayidx6111 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom6110 | |
%965 = bitcast %union.rec** %arrayidx6111 to %struct.word_type** | |
%966 = load %struct.word_type*, %struct.word_type** %965, align 8, !tbaa !8 | |
%ou26113 = getelementptr inbounds %struct.word_type, %struct.word_type* %966, i64 0, i32 2 | |
%oprecedence6115 = bitcast %union.SECOND_UNION* %ou26113 to i8* | |
%967 = load i8, i8* %oprecedence6115, align 8, !tbaa !10 | |
%conv6116 = zext i8 %967 to i32 | |
%968 = load i8, i8* %oprecedence6120, align 8, !tbaa !10 | |
%conv6121 = zext i8 %968 to i32 | |
%bf.load6125 = load i24, i24* %958, align 1 | |
%bf.lshr6126 = lshr i24 %bf.load6125, 4 | |
%bf.clear6127 = and i24 %bf.lshr6126, 1 | |
%bf.cast6128 = zext i24 %bf.clear6127 to i32 | |
%add6129 = add nuw nsw i32 %bf.cast6128, %conv6121 | |
%cmp6130.not = icmp ugt i32 %add6129, %conv6116 | |
br i1 %cmp6130.not, label %if.end6329, label %if.then6132 | |
if.then6132: ; preds = %if.else6109 | |
%call6133 = call fastcc i32 @Reduce() | |
%969 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp6134 = icmp eq i32 %969, %4 | |
br i1 %cmp6134, label %cleanup9179, label %for.cond6087.backedge | |
if.else6145: ; preds = %if.end6076 | |
%tobool6146.not = icmp eq i32 %obj_prev.1, 0 | |
br i1 %tobool6146.not, label %if.end6329, label %if.then6147 | |
if.then6147: ; preds = %if.else6145 | |
%970 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 2 | |
%os216152 = bitcast %union.SECOND_UNION* %970 to %struct.anon.0* | |
%ohspace6153 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os216152, i64 0, i32 1 | |
%971 = load i8, i8* %ohspace6153, align 1, !tbaa !10 | |
%conv6154 = zext i8 %971 to i32 | |
%ovspace6158 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os216152, i64 0, i32 2 | |
%972 = load i8, i8* %ovspace6158, align 2, !tbaa !10 | |
%conv6159 = zext i8 %972 to i32 | |
%add6160 = sub nsw i32 0, %conv6159 | |
%cmp6161.not = icmp eq i32 %conv6154, %add6160 | |
br i1 %cmp6161.not, label %if.else6164, label %land.rhs6181.preheader | |
if.else6164: ; preds = %if.then6147 | |
%otype6168 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%973 = load i8, i8* %otype6168, align 8, !tbaa !10 | |
%cmp6170 = icmp eq i8 %973, 102 | |
%cmp6173 = icmp eq i32 %obj_prev.1, 2 | |
%or.cond9215 = select i1 %cmp6170, i1 true, i1 %cmp6173 | |
%.10154 = select i1 %or.cond9215, i8 7, i8 103 | |
br label %land.rhs6181.preheader | |
land.rhs6181.preheader: ; preds = %if.else6164, %if.then6147 | |
%typ6148.0 = phi i32 [ 100, %if.then6147 ], [ 101, %if.else6164 ] | |
%prec6149.0 = phi i8 [ 7, %if.then6147 ], [ %.10154, %if.else6164 ] | |
br label %land.rhs6181 | |
land.rhs6181: ; preds = %while.body6192, %land.rhs6181.preheader | |
%974 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom6182 = sext i32 %974 to i64 | |
%arrayidx6183 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom6182 | |
%975 = bitcast %union.rec** %arrayidx6183 to %struct.word_type** | |
%976 = load %struct.word_type*, %struct.word_type** %975, align 8, !tbaa !8 | |
%ou26185 = getelementptr inbounds %struct.word_type, %struct.word_type* %976, i64 0, i32 2 | |
%oprecedence6187 = bitcast %union.SECOND_UNION* %ou26185 to i8* | |
%977 = load i8, i8* %oprecedence6187, align 8, !tbaa !10 | |
%cmp6189.not = icmp ugt i8 %prec6149.0, %977 | |
br i1 %cmp6189.not, label %if.then6196, label %while.body6192 | |
while.body6192: ; preds = %land.rhs6181 | |
%call6193 = call fastcc i32 @Reduce() | |
%tobool6180.not = icmp eq i32 %call6193, 0 | |
br i1 %tobool6180.not, label %if.end6329, label %land.rhs6181, !llvm.loop !30 | |
if.then6196: ; preds = %land.rhs6181 | |
%978 = zext i32 %typ6148.0 to i64 | |
%arrayidx6198 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %978 | |
%979 = load i8, i8* %arrayidx6198, align 1, !tbaa !10 | |
%conv6199 = zext i8 %979 to i32 | |
store i32 %conv6199, i32* @zz_size, align 4, !tbaa !4 | |
%980 = zext i8 %979 to i64 | |
%arrayidx6207 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %980 | |
%981 = load %union.rec*, %union.rec** %arrayidx6207, align 8, !tbaa !8 | |
%cmp6208 = icmp eq %union.rec* %981, null | |
br i1 %cmp6208, label %if.then6210, label %if.else6212 | |
if.then6210: ; preds = %if.then6196 | |
%982 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call6211 = call %union.rec* @GetMemory(i32 noundef %conv6199, %struct.FILE_POS* noundef %982) #5 | |
store %union.rec* %call6211, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10458 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end6222 | |
if.else6212: ; preds = %if.then6196 | |
store %union.rec* %981, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred6218 = getelementptr inbounds %union.rec, %union.rec* %981, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%983 = load %union.rec*, %union.rec** %opred6218, align 8, !tbaa !10 | |
store %union.rec* %983, %union.rec** %arrayidx6207, align 8, !tbaa !8 | |
br label %if.end6222 | |
if.end6222: ; preds = %if.else6212, %if.then6210 | |
%984 = phi i32 [ %.pre10458, %if.then6210 ], [ %974, %if.else6212 ] | |
%.in10508 = phi %union.rec* [ %call6211, %if.then6210 ], [ %981, %if.else6212 ] | |
%conv6223 = trunc i32 %typ6148.0 to i8 | |
%985 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv6223, i8* %985, align 8, !tbaa !10 | |
%986 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10508, %union.rec** %986, align 8, !tbaa !10 | |
%987 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10508, %union.rec** %987, align 8, !tbaa !10 | |
%988 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10508, %union.rec** %988, align 8, !tbaa !10 | |
%989 = getelementptr %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10508, %union.rec** %989, align 8, !tbaa !10 | |
%990 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 2 | |
%os216247 = bitcast %union.SECOND_UNION* %990 to %struct.anon.0* | |
%oprecedence6248 = bitcast %union.SECOND_UNION* %990 to i8* | |
store i8 %prec6149.0, i8* %oprecedence6248, align 8, !tbaa !10 | |
%991 = load i8, i8* %ovspace6158, align 2, !tbaa !10 | |
%ovspace6256 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os216247, i64 0, i32 2 | |
store i8 %991, i8* %ovspace6256, align 2, !tbaa !10 | |
%992 = load i8, i8* %ohspace6153, align 1, !tbaa !10 | |
%ohspace6264 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os216247, i64 0, i32 1 | |
store i8 %992, i8* %ohspace6264, align 1, !tbaa !10 | |
%os56265 = bitcast %union.rec* %.in10508 to %struct.gapobj_type* | |
%993 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os56265, i64 0, i32 3, i32 0 | |
%bf.load6267 = load i16, i16* %993, align 4 | |
%bf.clear6273 = and i16 %bf.load6267, -769 | |
%bf.set6274 = or i16 %bf.clear6273, 512 | |
store i16 %bf.set6274, i16* %993, align 4 | |
%ofile_num6278 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0, i32 2 | |
%994 = load i16, i16* %ofile_num6278, align 2, !tbaa !10 | |
%995 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %994, i16* %995, align 2, !tbaa !10 | |
%oline_num6286 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load6287 = load i32, i32* %oline_num6286, align 4 | |
%bf.clear6288 = and i32 %bf.load6287, 1048575 | |
%996 = getelementptr inbounds %union.rec, %union.rec* %.in10508, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load6293 = load i32, i32* %996, align 4 | |
%bf.clear6295 = and i32 %bf.load6293, -1048576 | |
%bf.set6296 = or i32 %bf.clear6295, %bf.clear6288 | |
store i32 %bf.set6296, i32* %996, align 4 | |
%bf.load6301 = load i32, i32* %oline_num6286, align 4 | |
%bf.lshr6302 = and i32 %bf.load6301, -1048576 | |
%bf.set6311 = or i32 %bf.lshr6302, %bf.clear6288 | |
store i32 %bf.set6311, i32* %996, align 4 | |
%inc6312 = add nsw i32 %984, 1 | |
store i32 %inc6312, i32* @ttop, align 4, !tbaa !4 | |
%cmp6313 = icmp slt i32 %984, 99 | |
br i1 %cmp6313, label %if.then6315, label %if.else6318 | |
if.then6315: ; preds = %if.end6222 | |
%idxprom6316 = sext i32 %inc6312 to i64 | |
%arrayidx6317 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom6316 | |
store %union.rec* %.in10508, %union.rec** %arrayidx6317, align 8, !tbaa !8 | |
br label %if.end6329 | |
if.else6318: ; preds = %if.end6222 | |
%idxprom632010290 = zext i32 %984 to i64 | |
%arrayidx6321 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom632010290 | |
%997 = bitcast %union.rec** %arrayidx6321 to %struct.word_type** | |
%998 = load %struct.word_type*, %struct.word_type** %997, align 8, !tbaa !8 | |
%ofpos6324 = getelementptr inbounds %struct.word_type, %struct.word_type* %998, i64 0, i32 1, i32 0 | |
%call6325 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos6324) #5 | |
br label %if.end6329 | |
if.end6329: ; preds = %if.else6318, %if.then6315, %while.body6192, %if.else6145, %if.else6109 | |
%999 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc6330 = add nsw i32 %999, 1 | |
store i32 %inc6330, i32* @ttop, align 4, !tbaa !4 | |
%cmp6331 = icmp slt i32 %999, 99 | |
br i1 %cmp6331, label %if.then6333, label %if.else6336 | |
if.then6333: ; preds = %if.end6329 | |
%idxprom6334 = sext i32 %inc6330 to i64 | |
%arrayidx6335 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom6334 | |
store %union.rec* %914, %union.rec** %arrayidx6335, align 8, !tbaa !8 | |
br label %if.end6344 | |
if.else6336: ; preds = %if.end6329 | |
%idxprom633810289 = zext i32 %999 to i64 | |
%arrayidx6339 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom633810289 | |
%1000 = bitcast %union.rec** %arrayidx6339 to %struct.word_type** | |
%1001 = load %struct.word_type*, %struct.word_type** %1000, align 8, !tbaa !8 | |
%ofpos6342 = getelementptr inbounds %struct.word_type, %struct.word_type* %1001, i64 0, i32 1, i32 0 | |
%call6343 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos6342) #5 | |
br label %if.end6344 | |
if.end6344: ; preds = %if.else6336, %if.then6333 | |
%bf.load6349 = load i24, i24* %958, align 1 | |
%1002 = and i24 %bf.load6349, 8 | |
%tobool6353.not = icmp eq i24 %1002, 0 | |
br i1 %tobool6353.not, label %if.else6355, label %if.end6364 | |
if.else6355: ; preds = %if.end6344 | |
%call6356 = call fastcc i32 @Reduce() | |
%1003 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp6357 = icmp eq i32 %1003, %4 | |
br i1 %cmp6357, label %cleanup9179, label %if.end6364 | |
if.end6364: ; preds = %if.else6355, %if.end6344 | |
%obj_prev.38 = phi i32 [ %call6356, %if.else6355 ], [ 0, %if.end6344 ] | |
%1004 = load %union.rec*, %union.rec** @StartSym, align 8, !tbaa !8 | |
%cmp6365 = icmp ne %union.rec* %1004, %encl | |
%or.cond9216 = and i1 %cmp6368, %cmp6365 | |
br i1 %or.cond9216, label %if.then6370, label %if.end6418 | |
if.then6370: ; preds = %if.end6364 | |
%bf.load6374 = load i24, i24* %958, align 1 | |
%1005 = and i24 %bf.load6374, 64 | |
%tobool6378.not = icmp eq i24 %1005, 0 | |
br i1 %tobool6378.not, label %if.else6413, label %if.then6379 | |
if.then6379: ; preds = %if.then6370 | |
%bf.load6383 = load i24, i24* %81, align 1 | |
%bf.set6385 = or i24 %bf.load6383, 1048576 | |
store i24 %bf.set6385, i24* %81, align 1 | |
%1006 = and i24 %bf.load6383, 32768 | |
%tobool6393.not = icmp eq i24 %1006, 0 | |
br i1 %tobool6393.not, label %lor.end, label %lor.end.thread | |
lor.end: ; preds = %if.then6379 | |
%bf.load6398 = load i24, i24* %958, align 1 | |
%1007 = and i24 %bf.load6398, 32768 | |
%tobool6402.not = icmp eq i24 %1007, 0 | |
br i1 %tobool6402.not, label %1008, label %lor.end.thread | |
lor.end.thread: ; preds = %lor.end, %if.then6379 | |
br label %1008 | |
1008: ; preds = %lor.end.thread, %lor.end | |
%1009 = phi i24 [ 32768, %lor.end.thread ], [ 0, %lor.end ] | |
%bf.clear6410 = and i24 %bf.set6385, -32769 | |
%bf.set6411 = or i24 %1009, %bf.clear6410 | |
store i24 %bf.set6411, i24* %81, align 1 | |
br label %if.end6418 | |
if.else6413: ; preds = %if.then6370 | |
br i1 %cmp5817, label %if.end6418, label %if.then6415 | |
if.then6415: ; preds = %if.else6413 | |
call void @InsertUses(%union.rec* noundef nonnull %encl, %union.rec* noundef nonnull %916) #5 | |
br label %if.end6418 | |
if.end6418: ; preds = %if.then6415, %if.else6413, %1008, %if.end6364 | |
%cmp6851 = icmp eq %union.rec* %914, null | |
%opred6862 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%opred6870 = getelementptr %union.rec, %union.rec* %914, i64 0, i32 0, i32 0, i64 0, i32 0 | |
br label %while.cond6419 | |
while.cond6419: ; preds = %cleanup, %if.end6418 | |
%inc658510368.lcssa10379 = phi i32 [ %scope_count.promoted10377, %if.end6418 ], [ %inc658510368.lcssa10378, %cleanup ] | |
%compulsory_count.0 = phi i32 [ 0, %if.end6418 ], [ %compulsory_count.2, %cleanup ] | |
%1010 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%otype6423 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1011 = load i8, i8* %otype6423, align 8, !tbaa !10 | |
switch i8 %1011, label %while.end6937.loopexit [ | |
i8 2, label %land.lhs.true6427 | |
i8 102, label %land.rhs6451 | |
] | |
land.lhs.true6427: ; preds = %while.cond6419 | |
%1012 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 5 | |
%1013 = load %union.rec*, %union.rec** %1012, align 8, !tbaa !10 | |
%oenclosing = getelementptr inbounds %union.rec, %union.rec* %1013, i64 0, i32 0, i32 3 | |
%1014 = bitcast %union.THIRD_UNION* %oenclosing to %union.rec** | |
%1015 = load %union.rec*, %union.rec** %1014, align 8, !tbaa !10 | |
%cmp6431 = icmp eq %union.rec* %1015, %916 | |
br i1 %cmp6431, label %land.lhs.true6433, label %while.end6937.loopexit | |
land.lhs.true6433: ; preds = %land.lhs.true6427 | |
%otype6439 = getelementptr inbounds %union.rec, %union.rec* %1013, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1016 = load i8, i8* %otype6439, align 8, !tbaa !10 | |
%cmp6441 = icmp eq i8 %1016, -111 | |
br i1 %cmp6441, label %if.then6470, label %while.end6937.loopexit | |
land.rhs6451: ; preds = %while.cond6419 | |
%1017 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 2 | |
%oprecedence6455 = bitcast %union.SECOND_UNION* %1017 to i8* | |
%1018 = load i8, i8* %oprecedence6455, align 8, !tbaa !10 | |
%cmp6457.not = icmp eq i8 %1018, 3 | |
br i1 %cmp6457.not, label %while.end6937.loopexit, label %if.else6527 | |
if.then6470: ; preds = %land.lhs.true6433 | |
%call6471 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call6471, %union.rec** %t, align 8, !tbaa !8 | |
%otype6475 = getelementptr inbounds %union.rec, %union.rec* %call6471, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1019 = load i8, i8* %otype6475, align 8, !tbaa !10 | |
%cmp6477.not = icmp eq i8 %1019, 102 | |
br i1 %cmp6477.not, label %if.end6549, label %cleanup.thread | |
cleanup.thread: ; preds = %if.then6470 | |
%1020 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 1 | |
%otype646610549.le = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %1020, i64 0, i32 0, i32 0 | |
store i32 %inc658510368.lcssa10379, i32* %scope_count, align 4, !tbaa !4 | |
%ofpos6482 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %1020, i64 0, i32 0 | |
%1021 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 5 | |
%1022 = load %union.rec*, %union.rec** %1021, align 8, !tbaa !10 | |
%call6485 = call i8* @SymName(%union.rec* noundef %1022) #5 | |
%call6486 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 30, i8* noundef getelementptr inbounds ([34 x i8], [34 x i8]* @.str.44, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos6482, i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.17, i64 0, i64 0), i8* noundef %call6485) #5 | |
store %union.rec* %1010, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1023 = load i8, i8* %otype646610549.le, align 8, !tbaa !10 | |
%.off10196 = add i8 %1023, -11 | |
%switch10197 = icmp ult i8 %.off10196, 2 | |
%1024 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom6513 = zext i8 %1023 to i64 | |
%arrayidx6514 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom6513 | |
%cond6517.in.in = select i1 %switch10197, i8* %1024, i8* %arrayidx6514 | |
%cond6517.in = load i8, i8* %cond6517.in.in, align 1, !tbaa !10 | |
%cond6517 = zext i8 %cond6517.in to i32 | |
store i32 %cond6517, i32* @zz_size, align 4, !tbaa !4 | |
%1025 = zext i8 %cond6517.in to i64 | |
%arrayidx6519 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1025 | |
%1026 = load %union.rec*, %union.rec** %arrayidx6519, align 8, !tbaa !8 | |
%opred6523 = getelementptr %union.rec, %union.rec* %1010, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1026, %union.rec** %opred6523, align 8, !tbaa !10 | |
%1027 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1028 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom6524 = sext i32 %1028 to i64 | |
%arrayidx6525 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom6524 | |
store %union.rec* %1027, %union.rec** %arrayidx6525, align 8, !tbaa !8 | |
br label %while.end6937 | |
if.else6527: ; preds = %land.rhs6451 | |
%ofpos6530 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 1, i32 0 | |
%1029 = getelementptr inbounds %union.rec, %union.rec* %1010, i64 0, i32 0, i32 2 | |
%os216533 = bitcast %union.SECOND_UNION* %1029 to %struct.anon.0* | |
%ovspace6534 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os216533, i64 0, i32 2 | |
%1030 = load i8, i8* %ovspace6534, align 2, !tbaa !10 | |
%ohspace6538 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os216533, i64 0, i32 1 | |
%1031 = load i8, i8* %ohspace6538, align 1, !tbaa !10 | |
%oprecedence6542 = bitcast %union.SECOND_UNION* %1029 to i8* | |
%1032 = load i8, i8* %oprecedence6542, align 8, !tbaa !10 | |
%call6543 = call %union.rec* @ChildSymWithCode(%union.rec* noundef %914, i8 noundef zeroext %1032) #5 | |
%call6544 = call %union.rec* @NewToken(i8 noundef zeroext 2, %struct.FILE_POS* noundef nonnull %ofpos6530, i8 noundef zeroext %1030, i8 noundef zeroext %1031, i8 noundef zeroext 0, %union.rec* noundef %call6543) #5 | |
%1033 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou26546 = getelementptr inbounds %struct.word_type, %struct.word_type* %1033, i64 0, i32 2 | |
%oprecedence6548 = bitcast %union.SECOND_UNION* %ou26546 to i8* | |
store i8 3, i8* %oprecedence6548, align 8, !tbaa !10 | |
br label %if.end6549 | |
if.end6549: ; preds = %if.else6527, %if.then6470 | |
%new_par.0 = phi %union.rec* [ %1010, %if.then6470 ], [ %call6544, %if.else6527 ] | |
%1034 = getelementptr inbounds %union.rec, %union.rec* %new_par.0, i64 0, i32 0, i32 5 | |
%1035 = bitcast %union.rec** %1034 to %struct.symbol_type** | |
%1036 = load %struct.symbol_type*, %struct.symbol_type** %1035, align 8, !tbaa !10 | |
%oimports = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %1036, i64 0, i32 9 | |
%1037 = load %union.rec*, %union.rec** %oimports, align 8, !tbaa !10 | |
%cmp6553.not = icmp eq %union.rec* %1037, null | |
%1038 = bitcast %struct.symbol_type* %1036 to %union.rec* | |
br i1 %cmp6553.not, label %if.end6592, label %for.cond6560.preheader | |
for.cond6560.preheader: ; preds = %if.end6549 | |
%link.1.in10369 = getelementptr inbounds %union.rec, %union.rec* %1037, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%link.110370 = load %union.rec*, %union.rec** %link.1.in10369, align 8, !tbaa !10 | |
%cmp6561.not10371 = icmp eq %union.rec* %link.110370, %1037 | |
br i1 %cmp6561.not10371, label %if.end6592, label %for.cond6568.preheader | |
for.cond6568.preheader: ; preds = %for.end6582, %for.cond6560.preheader | |
%link.110373 = phi %union.rec* [ %link.1, %for.end6582 ], [ %link.110370, %for.cond6560.preheader ] | |
%inc65851036810372 = phi i32 [ %inc6585, %for.end6582 ], [ 0, %for.cond6560.preheader ] | |
br label %for.cond6568 | |
for.cond6568: ; preds = %for.cond6568, %for.cond6568.preheader | |
%link.1.pn = phi %union.rec* [ %y.3, %for.cond6568 ], [ %link.110373, %for.cond6568.preheader ] | |
%y.3.in = getelementptr inbounds %union.rec, %union.rec* %link.1.pn, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%y.3 = load %union.rec*, %union.rec** %y.3.in, align 8, !tbaa !10 | |
%otype6572 = getelementptr inbounds %union.rec, %union.rec* %y.3, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1039 = load i8, i8* %otype6572, align 8, !tbaa !10 | |
%cmp6574 = icmp eq i8 %1039, 0 | |
br i1 %cmp6574, label %for.cond6568, label %for.end6582, !llvm.loop !31 | |
for.end6582: ; preds = %for.cond6568 | |
%1040 = getelementptr inbounds %union.rec, %union.rec* %y.3, i64 0, i32 0, i32 5 | |
%1041 = load %union.rec*, %union.rec** %1040, align 8, !tbaa !10 | |
call void @PushScope(%union.rec* noundef %1041, i32 noundef 0, i32 noundef 1) #5 | |
%inc6585 = add nuw nsw i32 %inc65851036810372, 1 | |
%link.1.in = getelementptr inbounds %union.rec, %union.rec* %link.110373, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%link.1 = load %union.rec*, %union.rec** %link.1.in, align 8, !tbaa !10 | |
%cmp6561.not = icmp eq %union.rec* %link.1, %1037 | |
br i1 %cmp6561.not, label %if.end6592.loopexit, label %for.cond6568.preheader, !llvm.loop !32 | |
if.end6592.loopexit: ; preds = %for.end6582 | |
%.pre10469 = load %union.rec*, %union.rec** %1034, align 8, !tbaa !10 | |
br label %if.end6592 | |
if.end6592: ; preds = %if.end6592.loopexit, %for.cond6560.preheader, %if.end6549 | |
%1042 = phi %union.rec* [ %1038, %if.end6549 ], [ %1038, %for.cond6560.preheader ], [ %.pre10469, %if.end6592.loopexit ] | |
%inc658510368.lcssa10378 = phi i32 [ 0, %if.end6549 ], [ 0, %for.cond6560.preheader ], [ %inc6585, %if.end6592.loopexit ] | |
call void @PushScope(%union.rec* noundef %1042, i32 noundef 0, i32 noundef 0) #5 | |
%call6595 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
call void @PopScope() #5 | |
%1043 = getelementptr inbounds %union.rec, %union.rec* %new_par.0, i64 0, i32 0, i32 1 | |
%otype6599 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %1043, i64 0, i32 0, i32 0 | |
store i8 10, i8* %otype6599, align 8, !tbaa !10 | |
%1044 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 0), align 1, !tbaa !10 | |
%conv6600 = zext i8 %1044 to i32 | |
store i32 %conv6600, i32* @zz_size, align 4, !tbaa !4 | |
%1045 = zext i8 %1044 to i64 | |
%arrayidx6608 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1045 | |
%1046 = load %union.rec*, %union.rec** %arrayidx6608, align 8, !tbaa !8 | |
%cmp6609 = icmp eq %union.rec* %1046, null | |
br i1 %cmp6609, label %if.then6611, label %if.else6613 | |
if.then6611: ; preds = %if.end6592 | |
%1047 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call6612 = call %union.rec* @GetMemory(i32 noundef %conv6600, %struct.FILE_POS* noundef %1047) #5 | |
br label %cond.end6682 | |
if.else6613: ; preds = %if.end6592 | |
store %union.rec* %1046, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred6619 = getelementptr inbounds %union.rec, %union.rec* %1046, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1048 = load %union.rec*, %union.rec** %opred6619, align 8, !tbaa !10 | |
store %union.rec* %1048, %union.rec** %arrayidx6608, align 8, !tbaa !8 | |
br label %cond.end6682 | |
cond.end6682: ; preds = %if.else6613, %if.then6611 | |
%.in10504 = phi %union.rec* [ %call6612, %if.then6611 ], [ %1046, %if.else6613 ] | |
%1049 = getelementptr inbounds %union.rec, %union.rec* %.in10504, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 0, i8* %1049, align 8, !tbaa !10 | |
%1050 = getelementptr inbounds %union.rec, %union.rec* %.in10504, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10504, %union.rec** %1050, align 8, !tbaa !10 | |
%1051 = getelementptr inbounds %union.rec, %union.rec* %.in10504, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10504, %union.rec** %1051, align 8, !tbaa !10 | |
%1052 = getelementptr inbounds %union.rec, %union.rec* %.in10504, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10504, %union.rec** %1052, align 8, !tbaa !10 | |
%1053 = getelementptr %union.rec, %union.rec* %.in10504, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10504, %union.rec** %1053, align 8, !tbaa !10 | |
store %union.rec* %.in10504, %union.rec** @xx_link, align 8, !tbaa !8 | |
store %union.rec* %.in10504, %union.rec** @zz_res, align 8, !tbaa !8 | |
store %union.rec* %new_par.0, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred6655 = getelementptr inbounds %union.rec, %union.rec* %new_par.0, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1054 = load %union.rec*, %union.rec** %opred6655, align 8, !tbaa !10 | |
store %union.rec* %1054, %union.rec** @zz_tmp, align 8, !tbaa !8 | |
%opred6659 = getelementptr %union.rec, %union.rec* %.in10504, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1055 = load %union.rec*, %union.rec** %opred6659, align 8, !tbaa !10 | |
%opred6663 = getelementptr %union.rec, %union.rec* %new_par.0, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1055, %union.rec** %opred6663, align 8, !tbaa !10 | |
%1056 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1057 = load %struct.word_type**, %struct.word_type*** bitcast (%union.rec** @zz_res to %struct.word_type***), align 8, !tbaa !8 | |
%1058 = load %struct.word_type*, %struct.word_type** %1057, align 8, !tbaa !10 | |
%osucc6671 = getelementptr inbounds %struct.word_type, %struct.word_type* %1058, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1056, %union.rec** %osucc6671, align 8, !tbaa !10 | |
%1059 = load %union.rec*, %union.rec** @zz_tmp, align 8, !tbaa !8 | |
%opred6675 = bitcast %struct.word_type** %1057 to %union.rec** | |
store %union.rec* %1059, %union.rec** %opred6675, align 8, !tbaa !10 | |
%1060 = load %union.rec*, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1061 = load %struct.word_type*, %struct.word_type** bitcast (%union.rec** @zz_tmp to %struct.word_type**), align 8, !tbaa !8 | |
%osucc6679 = getelementptr inbounds %struct.word_type, %struct.word_type* %1061, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1060, %union.rec** %osucc6679, align 8, !tbaa !10 | |
%.pre10470 = load %union.rec*, %union.rec** @xx_link, align 8, !tbaa !8 | |
store %union.rec* %.pre10470, %union.rec** @zz_res, align 8, !tbaa !8 | |
store %union.rec* %call6595, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cmp6684 = icmp eq %union.rec* %call6595, null | |
%cmp6688 = icmp eq %union.rec* %.pre10470, null | |
%or.cond10199 = select i1 %cmp6684, i1 true, i1 %cmp6688 | |
br i1 %or.cond10199, label %cond.end6722, label %cond.false6691 | |
cond.false6691: ; preds = %cond.end6682 | |
%opred6695 = getelementptr inbounds %union.rec, %union.rec* %call6595, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1062 = load %union.rec*, %union.rec** %opred6695, align 8, !tbaa !10 | |
store %union.rec* %1062, %union.rec** @zz_tmp, align 8, !tbaa !8 | |
%1063 = getelementptr inbounds %union.rec, %union.rec* %.pre10470, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1064 = load %union.rec*, %union.rec** %1063, align 8, !tbaa !10 | |
%1065 = getelementptr inbounds %union.rec, %union.rec* %call6595, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1064, %union.rec** %1065, align 8, !tbaa !10 | |
%1066 = bitcast %union.rec** %1063 to %struct.word_type** | |
%1067 = load %struct.word_type*, %struct.word_type** %1066, align 8, !tbaa !10 | |
%osucc6711 = getelementptr inbounds %struct.word_type, %struct.word_type* %1067, i64 0, i32 0, i64 1, i32 1 | |
store %union.rec* %call6595, %union.rec** %osucc6711, align 8, !tbaa !10 | |
store %union.rec* %1062, %union.rec** %1063, align 8, !tbaa !10 | |
%osucc6719 = getelementptr inbounds %union.rec, %union.rec* %1062, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.pre10470, %union.rec** %osucc6719, align 8, !tbaa !10 | |
br label %cond.end6722 | |
cond.end6722: ; preds = %cond.false6691, %cond.end6682 | |
%cmp672510374 = icmp sgt i32 %inc658510368.lcssa10378, 0 | |
br i1 %cmp672510374, label %for.body6727, label %for.cond6735.preheader | |
for.body6727: ; preds = %for.body6727, %cond.end6722 | |
%i.110375 = phi i32 [ %inc6729, %for.body6727 ], [ 0, %cond.end6722 ] | |
call void @PopScope() #5 | |
%inc6729 = add nuw nsw i32 %i.110375, 1 | |
%exitcond.not = icmp eq i32 %inc6729, %inc658510368.lcssa10378 | |
br i1 %exitcond.not, label %for.cond6735.preheader, label %for.body6727, !llvm.loop !33 | |
for.cond6735.preheader: ; preds = %for.body6727, %cond.end6722 | |
br label %for.cond6735 | |
for.cond6735: ; preds = %if.end6767, %for.cond6735.preheader | |
%.pn10111 = phi %union.rec* [ %link.2, %if.end6767 ], [ %914, %for.cond6735.preheader ] | |
%link.2.in = getelementptr inbounds %union.rec, %union.rec* %.pn10111, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%link.2 = load %union.rec*, %union.rec** %link.2.in, align 8, !tbaa !10 | |
%cmp6736.not = icmp eq %union.rec* %link.2, %914 | |
br i1 %cmp6736.not, label %for.end6792, label %for.cond6743 | |
for.cond6743: ; preds = %for.cond6743, %for.cond6735 | |
%link.2.pn = phi %union.rec* [ %y.4, %for.cond6743 ], [ %link.2, %for.cond6735 ] | |
%y.4.in = getelementptr inbounds %union.rec, %union.rec* %link.2.pn, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%y.4 = load %union.rec*, %union.rec** %y.4.in, align 8, !tbaa !10 | |
%otype6747 = getelementptr inbounds %union.rec, %union.rec* %y.4, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1068 = load i8, i8* %otype6747, align 8, !tbaa !10 | |
switch i8 %1068, label %if.then6765 [ | |
i8 0, label %for.cond6743 | |
i8 10, label %if.end6767 | |
] | |
if.then6765: ; preds = %for.cond6743 | |
%1069 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call6766 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 1, i32 noundef 2, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 noundef 0, %struct.FILE_POS* noundef %1069, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.45, i64 0, i64 0)) #5 | |
br label %if.end6767 | |
if.end6767: ; preds = %if.then6765, %for.cond6743 | |
%1070 = load %union.rec*, %union.rec** %1034, align 8, !tbaa !10 | |
%1071 = getelementptr inbounds %union.rec, %union.rec* %y.4, i64 0, i32 0, i32 5 | |
%1072 = load %union.rec*, %union.rec** %1071, align 8, !tbaa !10 | |
%cmp6772 = icmp eq %union.rec* %1070, %1072 | |
br i1 %cmp6772, label %for.end6792.thread, label %for.cond6735, !llvm.loop !34 | |
for.end6792.thread: ; preds = %if.end6767 | |
%ofpos6777 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %1043, i64 0, i32 0 | |
%call6780 = call i8* @SymName(%union.rec* noundef %1070) #5 | |
%1073 = load %union.rec*, %union.rec** %915, align 8, !tbaa !10 | |
%call6783 = call i8* @SymName(%union.rec* noundef %1073) #5 | |
%call6784 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 31, i8* noundef getelementptr inbounds ([39 x i8], [39 x i8]* @.str.46, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos6777, i8* noundef %call6780, i8* noundef %call6783) #5 | |
%call6785 = call i32 @DisposeObject(%union.rec* noundef nonnull %new_par.0) #5 | |
br label %if.end6931 | |
for.end6792: ; preds = %for.cond6735 | |
%cmp6793.not = icmp eq %union.rec* %new_par.0, null | |
br i1 %cmp6793.not, label %if.end6931, label %if.then6795 | |
if.then6795: ; preds = %for.end6792 | |
%1074 = load %struct.symbol_type*, %struct.symbol_type** %1035, align 8, !tbaa !10 | |
%ois_compulsory = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %1074, i64 0, i32 16 | |
%bf.load6799 = load i8, i8* %ois_compulsory, align 2 | |
%1075 = lshr i8 %bf.load6799, 6 | |
%.lobit = and i8 %1075, 1 | |
%1076 = zext i8 %.lobit to i32 | |
%spec.select = add nsw i32 %compulsory_count.0, %1076 | |
%1077 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 0), align 1, !tbaa !10 | |
%conv6807 = zext i8 %1077 to i32 | |
store i32 %conv6807, i32* @zz_size, align 4, !tbaa !4 | |
%1078 = zext i8 %1077 to i64 | |
%arrayidx6815 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1078 | |
%1079 = load %union.rec*, %union.rec** %arrayidx6815, align 8, !tbaa !8 | |
%cmp6816 = icmp eq %union.rec* %1079, null | |
br i1 %cmp6816, label %if.then6818, label %if.else6820 | |
if.then6818: ; preds = %if.then6795 | |
%1080 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call6819 = call %union.rec* @GetMemory(i32 noundef %conv6807, %struct.FILE_POS* noundef %1080) #5 | |
br label %if.end6830 | |
if.else6820: ; preds = %if.then6795 | |
store %union.rec* %1079, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred6826 = getelementptr inbounds %union.rec, %union.rec* %1079, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1081 = load %union.rec*, %union.rec** %opred6826, align 8, !tbaa !10 | |
store %union.rec* %1081, %union.rec** %arrayidx6815, align 8, !tbaa !8 | |
br label %if.end6830 | |
if.end6830: ; preds = %if.else6820, %if.then6818 | |
%.in10506 = phi %union.rec* [ %call6819, %if.then6818 ], [ %1079, %if.else6820 ] | |
%1082 = getelementptr inbounds %union.rec, %union.rec* %.in10506, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 0, i8* %1082, align 8, !tbaa !10 | |
%1083 = getelementptr inbounds %union.rec, %union.rec* %.in10506, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10506, %union.rec** %1083, align 8, !tbaa !10 | |
%1084 = getelementptr inbounds %union.rec, %union.rec* %.in10506, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10506, %union.rec** %1084, align 8, !tbaa !10 | |
%1085 = getelementptr inbounds %union.rec, %union.rec* %.in10506, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10506, %union.rec** %1085, align 8, !tbaa !10 | |
%1086 = getelementptr %union.rec, %union.rec* %.in10506, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10506, %union.rec** %1086, align 8, !tbaa !10 | |
store %union.rec* %.in10506, %union.rec** @xx_link, align 8, !tbaa !8 | |
store %union.rec* %.in10506, %union.rec** @zz_res, align 8, !tbaa !8 | |
store %union.rec* %914, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cmp6855 = icmp eq %union.rec* %.in10506, null | |
%or.cond10200 = select i1 %cmp6851, i1 true, i1 %cmp6855 | |
br i1 %or.cond10200, label %cond.end6889.thread, label %cond.end6889 | |
cond.end6889.thread: ; preds = %if.end6830 | |
store %union.rec* %new_par.0, %union.rec** @zz_hold, align 8, !tbaa !8 | |
br label %cond.false6898 | |
cond.end6889: ; preds = %if.end6830 | |
%1087 = load %union.rec*, %union.rec** %opred6862, align 8, !tbaa !10 | |
store %union.rec* %1087, %union.rec** @zz_tmp, align 8, !tbaa !8 | |
%opred6866 = getelementptr %union.rec, %union.rec* %.in10506, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1088 = load %union.rec*, %union.rec** %opred6866, align 8, !tbaa !10 | |
store %union.rec* %1088, %union.rec** %opred6870, align 8, !tbaa !10 | |
%1089 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1090 = load %struct.word_type**, %struct.word_type*** bitcast (%union.rec** @zz_res to %struct.word_type***), align 8, !tbaa !8 | |
%1091 = load %struct.word_type*, %struct.word_type** %1090, align 8, !tbaa !10 | |
%osucc6878 = getelementptr inbounds %struct.word_type, %struct.word_type* %1091, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1089, %union.rec** %osucc6878, align 8, !tbaa !10 | |
%1092 = load %union.rec*, %union.rec** @zz_tmp, align 8, !tbaa !8 | |
%opred6882 = bitcast %struct.word_type** %1090 to %union.rec** | |
store %union.rec* %1092, %union.rec** %opred6882, align 8, !tbaa !10 | |
%1093 = load %union.rec*, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1094 = load %struct.word_type*, %struct.word_type** bitcast (%union.rec** @zz_tmp to %struct.word_type**), align 8, !tbaa !8 | |
%osucc6886 = getelementptr inbounds %struct.word_type, %struct.word_type* %1094, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1093, %union.rec** %osucc6886, align 8, !tbaa !10 | |
%.pre10471 = load %union.rec*, %union.rec** @xx_link, align 8, !tbaa !8 | |
store %union.rec* %.pre10471, %union.rec** @zz_res, align 8, !tbaa !8 | |
store %union.rec* %new_par.0, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%cmp6895 = icmp eq %union.rec* %.pre10471, null | |
br i1 %cmp6895, label %if.end6931, label %cond.false6898 | |
cond.false6898: ; preds = %cond.end6889, %cond.end6889.thread | |
%1095 = phi %union.rec* [ %.in10506, %cond.end6889.thread ], [ %.pre10471, %cond.end6889 ] | |
%opred6902 = getelementptr inbounds %union.rec, %union.rec* %new_par.0, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1096 = load %union.rec*, %union.rec** %opred6902, align 8, !tbaa !10 | |
store %union.rec* %1096, %union.rec** @zz_tmp, align 8, !tbaa !8 | |
%1097 = getelementptr inbounds %union.rec, %union.rec* %1095, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1098 = load %union.rec*, %union.rec** %1097, align 8, !tbaa !10 | |
%1099 = getelementptr inbounds %union.rec, %union.rec* %new_par.0, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1098, %union.rec** %1099, align 8, !tbaa !10 | |
%1100 = bitcast %union.rec** %1097 to %struct.word_type** | |
%1101 = load %struct.word_type*, %struct.word_type** %1100, align 8, !tbaa !10 | |
%osucc6918 = getelementptr inbounds %struct.word_type, %struct.word_type* %1101, i64 0, i32 0, i64 1, i32 1 | |
store %union.rec* %new_par.0, %union.rec** %osucc6918, align 8, !tbaa !10 | |
store %union.rec* %1096, %union.rec** %1097, align 8, !tbaa !10 | |
%osucc6926 = getelementptr inbounds %union.rec, %union.rec* %1096, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %1095, %union.rec** %osucc6926, align 8, !tbaa !10 | |
br label %if.end6931 | |
if.end6931: ; preds = %cond.false6898, %cond.end6889, %for.end6792, %for.end6792.thread | |
%compulsory_count.2 = phi i32 [ %spec.select, %cond.false6898 ], [ %compulsory_count.0, %for.end6792 ], [ %spec.select, %cond.end6889 ], [ %compulsory_count.0, %for.end6792.thread ] | |
call void @PushScope(%union.rec* noundef %916, i32 noundef 1, i32 noundef 0) #5 | |
%1102 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%cmp6932 = icmp eq %union.rec* %1102, null | |
br i1 %cmp6932, label %if.then6934, label %cleanup | |
if.then6934: ; preds = %if.end6931 | |
%call6935 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call6935, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup | |
cleanup: ; preds = %if.then6934, %if.end6931 | |
call void @PopScope() #5 | |
br label %while.cond6419 | |
while.end6937.loopexit: ; preds = %land.rhs6451, %land.lhs.true6433, %land.lhs.true6427, %while.cond6419 | |
store i32 %inc658510368.lcssa10379, i32* %scope_count, align 4, !tbaa !4 | |
br label %while.end6937 | |
while.end6937: ; preds = %while.end6937.loopexit, %cleanup.thread | |
%os66938 = bitcast %union.rec* %916 to %struct.symbol_type* | |
%ohas_compulsory = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %os66938, i64 0, i32 13 | |
%1103 = load i16, i16* %ohas_compulsory, align 2, !tbaa !10 | |
%conv6939 = zext i16 %1103 to i32 | |
%cmp6940 = icmp slt i32 %compulsory_count.0, %conv6939 | |
br i1 %cmp6940, label %for.cond6947.preheader, label %if.end7050 | |
for.cond6947.preheader: ; preds = %while.end6937 | |
%xlink.0.in10386 = getelementptr inbounds %union.rec, %union.rec* %916, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%xlink.010387 = load %union.rec*, %union.rec** %xlink.0.in10386, align 8, !tbaa !10 | |
%cmp6948.not10388 = icmp eq %union.rec* %xlink.010387, %916 | |
br i1 %cmp6948.not10388, label %if.end7050, label %for.cond6955.preheader.lr.ph | |
for.cond6955.preheader.lr.ph: ; preds = %for.cond6947.preheader | |
%link.3.in10381 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%ofpos7038 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0 | |
br label %for.cond6955.preheader | |
for.cond6955.preheader: ; preds = %for.inc7044, %for.cond6955.preheader.lr.ph | |
%xlink.010389 = phi %union.rec* [ %xlink.010387, %for.cond6955.preheader.lr.ph ], [ %xlink.0, %for.inc7044 ] | |
br label %for.cond6955 | |
for.cond6955: ; preds = %for.cond6955, %for.cond6955.preheader | |
%xlink.0.pn = phi %union.rec* [ %tmp.0, %for.cond6955 ], [ %xlink.010389, %for.cond6955.preheader ] | |
%tmp.0.in = getelementptr inbounds %union.rec, %union.rec* %xlink.0.pn, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%tmp.0 = load %union.rec*, %union.rec** %tmp.0.in, align 8, !tbaa !10 | |
%otype6959 = getelementptr inbounds %union.rec, %union.rec* %tmp.0, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1104 = load i8, i8* %otype6959, align 8, !tbaa !10 | |
switch i8 %1104, label %for.inc7044 [ | |
i8 0, label %for.cond6955 | |
i8 -111, label %land.lhs.true6977 | |
] | |
land.lhs.true6977: ; preds = %for.cond6955 | |
%os66978 = bitcast %union.rec* %tmp.0 to %struct.symbol_type* | |
%ois_compulsory6979 = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %os66978, i64 0, i32 16 | |
%bf.load6980 = load i8, i8* %ois_compulsory6979, align 2 | |
%1105 = and i8 %bf.load6980, 64 | |
%tobool6984.not = icmp eq i8 %1105, 0 | |
br i1 %tobool6984.not, label %for.inc7044, label %for.cond6990.preheader | |
for.cond6990.preheader: ; preds = %land.lhs.true6977 | |
%link.310382 = load %union.rec*, %union.rec** %link.3.in10381, align 8, !tbaa !10 | |
%cmp6991.not10383 = icmp eq %union.rec* %link.310382, %914 | |
br i1 %cmp6991.not10383, label %if.then7035, label %for.cond6998.preheader | |
for.cond6998.preheader: ; preds = %for.inc7027, %for.cond6990.preheader | |
%link.310384 = phi %union.rec* [ %link.3, %for.inc7027 ], [ %link.310382, %for.cond6990.preheader ] | |
br label %for.cond6998 | |
for.cond6998: ; preds = %for.cond6998, %for.cond6998.preheader | |
%link.3.pn = phi %union.rec* [ %y.5, %for.cond6998 ], [ %link.310384, %for.cond6998.preheader ] | |
%y.5.in = getelementptr inbounds %union.rec, %union.rec* %link.3.pn, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%y.5 = load %union.rec*, %union.rec** %y.5.in, align 8, !tbaa !10 | |
%otype7002 = getelementptr inbounds %union.rec, %union.rec* %y.5, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1106 = load i8, i8* %otype7002, align 8, !tbaa !10 | |
switch i8 %1106, label %for.inc7027 [ | |
i8 0, label %for.cond6998 | |
i8 10, label %land.lhs.true7020 | |
] | |
land.lhs.true7020: ; preds = %for.cond6998 | |
%1107 = getelementptr inbounds %union.rec, %union.rec* %y.5, i64 0, i32 0, i32 5 | |
%1108 = load %union.rec*, %union.rec** %1107, align 8, !tbaa !10 | |
%cmp7023 = icmp eq %union.rec* %1108, %tmp.0 | |
br i1 %cmp7023, label %for.inc7044, label %for.inc7027 | |
for.inc7027: ; preds = %land.lhs.true7020, %for.cond6998 | |
%link.3.in = getelementptr inbounds %union.rec, %union.rec* %link.310384, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%link.3 = load %union.rec*, %union.rec** %link.3.in, align 8, !tbaa !10 | |
%cmp6991.not = icmp eq %union.rec* %link.3, %914 | |
br i1 %cmp6991.not, label %if.then7035, label %for.cond6998.preheader, !llvm.loop !35 | |
if.then7035: ; preds = %for.inc7027, %for.cond6990.preheader | |
%call7039 = call i8* @SymName(%union.rec* noundef %tmp.0) #5 | |
%call7040 = call i8* @SymName(%union.rec* noundef %916) #5 | |
%call7041 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 38, i8* noundef getelementptr inbounds ([37 x i8], [37 x i8]* @.str.47, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos7038, i8* noundef %call7039, i8* noundef %call7040) #5 | |
br label %for.inc7044 | |
for.inc7044: ; preds = %if.then7035, %land.lhs.true7020, %land.lhs.true6977, %for.cond6955 | |
%xlink.0.in = getelementptr inbounds %union.rec, %union.rec* %xlink.010389, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%xlink.0 = load %union.rec*, %union.rec** %xlink.0.in, align 8, !tbaa !10 | |
%cmp6948.not = icmp eq %union.rec* %xlink.0, %916 | |
br i1 %cmp6948.not, label %if.end7050, label %for.cond6955.preheader, !llvm.loop !36 | |
if.end7050: ; preds = %for.inc7044, %for.cond6947.preheader, %while.end6937 | |
%1109 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%otype7054 = getelementptr inbounds %union.rec, %union.rec* %1109, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1110 = load i8, i8* %otype7054, align 8, !tbaa !10 | |
%cmp7056 = icmp eq i8 %1110, 104 | |
br i1 %cmp7056, label %if.then7058, label %if.end7078 | |
if.then7058: ; preds = %if.end7050 | |
%bf.load7063 = load i24, i24* %958, align 1 | |
%1111 = and i24 %bf.load7063, 8 | |
%tobool7067.not = icmp eq i24 %1111, 0 | |
br i1 %tobool7067.not, label %if.then7068, label %if.else7074 | |
if.then7068: ; preds = %if.then7058 | |
%ofpos7071 = getelementptr inbounds %union.rec, %union.rec* %914, i64 0, i32 0, i32 1, i32 0 | |
%call7072 = call i8* @SymName(%union.rec* noundef nonnull %916) #5 | |
%call7073 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 32, i8* noundef getelementptr inbounds ([49 x i8], [49 x i8]* @.str.48, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos7071, i8* noundef getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i64 0, i64 0), i8* noundef %call7072) #5 | |
br label %if.end7078 | |
if.else7074: ; preds = %if.then7058 | |
%1112 = getelementptr inbounds %union.rec, %union.rec* %1109, i64 0, i32 0, i32 5 | |
store %union.rec* %916, %union.rec** %1112, align 8, !tbaa !10 | |
br label %if.end7078 | |
if.end7078: ; preds = %if.else7074, %if.then7068, %if.end7050 | |
br i1 %tobool7079.not, label %if.end8289, label %land.lhs.true7080 | |
land.lhs.true7080: ; preds = %if.end7078 | |
%bf.load7085 = load i24, i24* %958, align 1 | |
%1113 = and i24 %bf.load7085, 16448 | |
%1114 = icmp eq i24 %1113, 64 | |
br i1 %1114, label %land.lhs.true7099, label %if.end8289 | |
land.lhs.true7099: ; preds = %land.lhs.true7080 | |
%1115 = getelementptr inbounds %union.rec, %union.rec* %916, i64 0, i32 0, i32 8 | |
%1116 = load %union.rec*, %union.rec** %1115, align 8, !tbaa !10 | |
%cmp7101 = icmp eq %union.rec* %1116, null | |
br i1 %cmp7101, label %if.then7103, label %if.end8289 | |
if.then7103: ; preds = %land.lhs.true7099 | |
%1117 = and i24 %bf.load7085, 8 | |
%tobool7112.not = icmp eq i24 %1117, 0 | |
br i1 %tobool7112.not, label %if.then7119, label %lor.lhs.false7113 | |
lor.lhs.false7113: ; preds = %if.then7103 | |
%call7114 = call %union.rec* @ChildSym(%union.rec* noundef nonnull %916, i32 noundef 146) #5 | |
%os67115 = bitcast %union.rec* %call7114 to %struct.symbol_type* | |
%ouses_count = getelementptr inbounds %struct.symbol_type, %struct.symbol_type* %os67115, i64 0, i32 14 | |
%1118 = load i8, i8* %ouses_count, align 4, !tbaa !10 | |
%cmp7117 = icmp ult i8 %1118, 2 | |
br i1 %cmp7117, label %lor.lhs.false7113.if.then7119_crit_edge, label %if.end8289 | |
lor.lhs.false7113.if.then7119_crit_edge: ; preds = %lor.lhs.false7113 | |
%bf.load7124.pre = load i24, i24* %958, align 1 | |
br label %if.then7119 | |
if.then7119: ; preds = %lor.lhs.false7113.if.then7119_crit_edge, %if.then7103 | |
%bf.load7124 = phi i24 [ %bf.load7124.pre, %lor.lhs.false7113.if.then7119_crit_edge ], [ %bf.load7085, %if.then7103 ] | |
%1119 = load i32, i32* @ttop, align 4 | |
%1120 = shl i24 %bf.load7124, 20 | |
%sext = ashr i24 %1120, 23 | |
%sub7130 = sext i24 %sext to i32 | |
%cond7133 = add i32 %1119, %sub7130 | |
%1121 = sext i32 %cond7133 to i64 | |
br label %while.cond7134 | |
while.cond7134: ; preds = %while.cond7134, %if.then7119 | |
%indvars.iv = phi i64 [ %indvars.iv.next, %while.cond7134 ], [ %1121, %if.then7119 ] | |
%arrayidx7136 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %indvars.iv | |
%1122 = bitcast %union.rec** %arrayidx7136 to %struct.word_type** | |
%1123 = load %struct.word_type*, %struct.word_type** %1122, align 8, !tbaa !8 | |
%otype7140 = getelementptr inbounds %struct.word_type, %struct.word_type* %1123, i64 0, i32 1, i32 0, i32 0 | |
%1124 = load i8, i8* %otype7140, align 8, !tbaa !10 | |
%1125 = icmp ult i8 %1124, 102 | |
%indvars.iv.next = add i64 %indvars.iv, -1 | |
br i1 %1125, label %while.cond7134, label %while.end7178, !llvm.loop !37 | |
while.end7178: ; preds = %while.cond7134 | |
switch i8 %1124, label %if.end8289 [ | |
i8 102, label %land.lhs.true7198 | |
i8 104, label %land.lhs.true7198 | |
] | |
land.lhs.true7198: ; preds = %while.end7178, %while.end7178 | |
%sub7199 = shl i64 %indvars.iv, 32 | |
%sext10499 = add i64 %sub7199, -4294967296 | |
%idxprom7200 = ashr exact i64 %sext10499, 32 | |
%arrayidx7201 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom7200 | |
%1126 = bitcast %union.rec** %arrayidx7201 to %struct.word_type** | |
%1127 = load %struct.word_type*, %struct.word_type** %1126, align 8, !tbaa !8 | |
%otype7205 = getelementptr inbounds %struct.word_type, %struct.word_type* %1127, i64 0, i32 1, i32 0, i32 0 | |
%1128 = load i8, i8* %otype7205, align 8, !tbaa !10 | |
%cmp7207 = icmp eq i8 %1128, 110 | |
br i1 %cmp7207, label %if.then7209, label %if.end8289 | |
if.then7209: ; preds = %land.lhs.true7198 | |
%1129 = and i24 %bf.load7124, 8 | |
%tobool7218.not = icmp eq i24 %1129, 0 | |
br i1 %tobool7218.not, label %if.end7502, label %if.then7219 | |
if.then7219: ; preds = %if.then7209 | |
%1130 = load i8, i8* getelementptr inbounds ([0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 2), align 1, !tbaa !10 | |
%conv7220 = zext i8 %1130 to i32 | |
store i32 %conv7220, i32* @zz_size, align 4, !tbaa !4 | |
%1131 = zext i8 %1130 to i64 | |
%arrayidx7228 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1131 | |
%1132 = load %union.rec*, %union.rec** %arrayidx7228, align 8, !tbaa !8 | |
%cmp7229 = icmp eq %union.rec* %1132, null | |
br i1 %cmp7229, label %if.then7231, label %if.else7233 | |
if.then7231: ; preds = %if.then7219 | |
%1133 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call7232 = call %union.rec* @GetMemory(i32 noundef %conv7220, %struct.FILE_POS* noundef %1133) #5 | |
store %union.rec* %call7232, %union.rec** @zz_hold, align 8, !tbaa !8 | |
br label %if.end7243 | |
if.else7233: ; preds = %if.then7219 | |
store %union.rec* %1132, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred7239 = getelementptr inbounds %union.rec, %union.rec* %1132, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1134 = load %union.rec*, %union.rec** %opred7239, align 8, !tbaa !10 | |
store %union.rec* %1134, %union.rec** %arrayidx7228, align 8, !tbaa !8 | |
br label %if.end7243 | |
if.end7243: ; preds = %if.else7233, %if.then7231 | |
%.in10500 = phi %union.rec* [ %call7232, %if.then7231 ], [ %1132, %if.else7233 ] | |
%1135 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 2, i8* %1135, align 8, !tbaa !10 | |
%1136 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10500, %union.rec** %1136, align 8, !tbaa !10 | |
%1137 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10500, %union.rec** %1137, align 8, !tbaa !10 | |
%1138 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10500, %union.rec** %1138, align 8, !tbaa !10 | |
%1139 = getelementptr %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10500, %union.rec** %1139, align 8, !tbaa !10 | |
%1140 = load %union.rec*, %union.rec** @InputSym, align 8, !tbaa !8 | |
%1141 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 5 | |
store %union.rec* %1140, %union.rec** %1141, align 8, !tbaa !10 | |
%1142 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofile_num7269 = getelementptr inbounds %struct.word_type, %struct.word_type* %1142, i64 0, i32 1, i32 0, i32 2 | |
%1143 = load i16, i16* %ofile_num7269, align 2, !tbaa !10 | |
%1144 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %1143, i16* %1144, align 2, !tbaa !10 | |
%oline_num7277 = getelementptr inbounds %struct.word_type, %struct.word_type* %1142, i64 0, i32 1, i32 0, i32 3 | |
%bf.load7278 = load i32, i32* %oline_num7277, align 4 | |
%bf.clear7279 = and i32 %bf.load7278, 1048575 | |
%1145 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load7284 = load i32, i32* %1145, align 4 | |
%bf.clear7286 = and i32 %bf.load7284, -1048576 | |
%bf.set7287 = or i32 %bf.clear7286, %bf.clear7279 | |
store i32 %bf.set7287, i32* %1145, align 4 | |
%bf.load7292 = load i32, i32* %oline_num7277, align 4 | |
%bf.lshr7293 = and i32 %bf.load7292, -1048576 | |
%bf.set7302 = or i32 %bf.lshr7293, %bf.clear7279 | |
store i32 %bf.set7302, i32* %1145, align 4 | |
%tobool7303.not = icmp eq i32 %obj_prev.38, 0 | |
br i1 %tobool7303.not, label %if.end7485, label %if.then7304 | |
if.then7304: ; preds = %if.end7243 | |
%1146 = getelementptr inbounds %union.rec, %union.rec* %.in10500, i64 0, i32 0, i32 2 | |
%os217309 = bitcast %union.SECOND_UNION* %1146 to %struct.anon.0* | |
%ohspace7310 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os217309, i64 0, i32 1 | |
%1147 = load i8, i8* %ohspace7310, align 1, !tbaa !10 | |
%conv7311 = zext i8 %1147 to i32 | |
%ovspace7315 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os217309, i64 0, i32 2 | |
%1148 = load i8, i8* %ovspace7315, align 2, !tbaa !10 | |
%conv7316 = zext i8 %1148 to i32 | |
%add7317 = sub nsw i32 0, %conv7316 | |
%cmp7318.not = icmp eq i32 %conv7311, %add7317 | |
%cmp7330 = icmp eq i32 %obj_prev.38, 2 | |
%.10157 = select i1 %cmp7330, i8 7, i8 103 | |
%typ7305.0 = select i1 %cmp7318.not, i32 101, i32 100 | |
%prec7306.0 = select i1 %cmp7318.not, i8 %.10157, i8 7 | |
br label %land.rhs7338 | |
land.rhs7338: ; preds = %while.body7349, %if.then7304 | |
%1149 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom7339 = sext i32 %1149 to i64 | |
%arrayidx7340 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom7339 | |
%1150 = bitcast %union.rec** %arrayidx7340 to %struct.word_type** | |
%1151 = load %struct.word_type*, %struct.word_type** %1150, align 8, !tbaa !8 | |
%ou27342 = getelementptr inbounds %struct.word_type, %struct.word_type* %1151, i64 0, i32 2 | |
%oprecedence7344 = bitcast %union.SECOND_UNION* %ou27342 to i8* | |
%1152 = load i8, i8* %oprecedence7344, align 8, !tbaa !10 | |
%cmp7346.not = icmp ugt i8 %prec7306.0, %1152 | |
br i1 %cmp7346.not, label %if.then7353, label %while.body7349 | |
while.body7349: ; preds = %land.rhs7338 | |
%call7350 = call fastcc i32 @Reduce() | |
%tobool7337.not = icmp eq i32 %call7350, 0 | |
br i1 %tobool7337.not, label %if.end7485, label %land.rhs7338, !llvm.loop !38 | |
if.then7353: ; preds = %land.rhs7338 | |
%1153 = zext i32 %typ7305.0 to i64 | |
%arrayidx7355 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %1153 | |
%1154 = load i8, i8* %arrayidx7355, align 1, !tbaa !10 | |
%conv7356 = zext i8 %1154 to i32 | |
store i32 %conv7356, i32* @zz_size, align 4, !tbaa !4 | |
%1155 = zext i8 %1154 to i64 | |
%arrayidx7364 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1155 | |
%1156 = load %union.rec*, %union.rec** %arrayidx7364, align 8, !tbaa !8 | |
%cmp7365 = icmp eq %union.rec* %1156, null | |
br i1 %cmp7365, label %if.then7367, label %if.else7369 | |
if.then7367: ; preds = %if.then7353 | |
%1157 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call7368 = call %union.rec* @GetMemory(i32 noundef %conv7356, %struct.FILE_POS* noundef %1157) #5 | |
store %union.rec* %call7368, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10463 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end7379 | |
if.else7369: ; preds = %if.then7353 | |
store %union.rec* %1156, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred7375 = getelementptr inbounds %union.rec, %union.rec* %1156, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1158 = load %union.rec*, %union.rec** %opred7375, align 8, !tbaa !10 | |
store %union.rec* %1158, %union.rec** %arrayidx7364, align 8, !tbaa !8 | |
br label %if.end7379 | |
if.end7379: ; preds = %if.else7369, %if.then7367 | |
%1159 = phi i32 [ %.pre10463, %if.then7367 ], [ %1149, %if.else7369 ] | |
%.in10502 = phi %union.rec* [ %call7368, %if.then7367 ], [ %1156, %if.else7369 ] | |
%conv7380 = trunc i32 %typ7305.0 to i8 | |
%1160 = getelementptr inbounds %union.rec, %union.rec* %.in10502, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv7380, i8* %1160, align 8, !tbaa !10 | |
%1161 = getelementptr inbounds %union.rec, %union.rec* %.in10502, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in10502, %union.rec** %1161, align 8, !tbaa !10 | |
%1162 = getelementptr inbounds %union.rec, %union.rec* %.in10502, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in10502, %union.rec** %1162, align 8, !tbaa !10 | |
%1163 = getelementptr inbounds %union.rec, %union.rec* %.in10502, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in10502, %union.rec** %1163, align 8, !tbaa !10 | |
%1164 = getelementptr %union.rec, %union.rec* %.in10502, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in10502, %union.rec** %1164, align 8, !tbaa !10 | |
%1165 = getelementptr inbounds %union.rec, %union.rec* %.in10502, i64 0, i32 0, i32 2 | |
%oprecedence7405 = bitcast %union.SECOND_UNION* %1165 to i8* | |
store i8 %prec7306.0, i8* %oprecedence7405, align 8, !tbaa !10 | |
%os57422 = bitcast %union.rec* %.in10502 to %struct.gapobj_type* | |
%1166 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os57422, i64 0, i32 3, i32 0 | |
%bf.load7424 = load i16, i16* %1166, align 4 | |
%bf.clear7430 = and i16 %bf.load7424, -769 | |
%bf.set7431 = or i16 %bf.clear7430, 512 | |
store i16 %bf.set7431, i16* %1166, align 4 | |
%inc7469 = add nsw i32 %1159, 1 | |
store i32 %inc7469, i32* @ttop, align 4, !tbaa !4 | |
%cmp7470 = icmp slt i32 %1159, 99 | |
br i1 %cmp7470, label %if.then7472, label %if.else7475 | |
if.then7472: ; preds = %if.end7379 | |
%idxprom7473 = sext i32 %inc7469 to i64 | |
%arrayidx7474 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom7473 | |
store %union.rec* %.in10502, %union.rec** %arrayidx7474, align 8, !tbaa !8 | |
br label %if.end7485 | |
if.else7475: ; preds = %if.end7379 | |
%idxprom747710286 = zext i32 %1159 to i64 | |
%arrayidx7478 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom747710286 | |
%1167 = bitcast %union.rec** %arrayidx7478 to %struct.word_type** | |
%1168 = load %struct.word_type*, %struct.word_type** %1167, align 8, !tbaa !8 | |
%ofpos7481 = getelementptr inbounds %struct.word_type, %struct.word_type* %1168, i64 0, i32 1, i32 0 | |
%call7482 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos7481) #5 | |
br label %if.end7485 | |
if.end7485: ; preds = %if.else7475, %if.then7472, %while.body7349, %if.end7243 | |
%tmp.2.in.in = phi %union.rec* [ %.in10500, %if.end7243 ], [ %.in10502, %if.then7472 ], [ %.in10502, %if.else7475 ], [ %.in10500, %while.body7349 ] | |
store %union.rec* %tmp.2.in.in, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1169 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc7486 = add nsw i32 %1169, 1 | |
store i32 %inc7486, i32* @otop, align 4, !tbaa !4 | |
%cmp7487 = icmp slt i32 %1169, 99 | |
br i1 %cmp7487, label %if.then7489, label %if.else7492 | |
if.then7489: ; preds = %if.end7485 | |
%idxprom7490 = sext i32 %inc7486 to i64 | |
%arrayidx7491 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom7490 | |
store %union.rec* %tmp.2.in.in, %union.rec** %arrayidx7491, align 8, !tbaa !8 | |
br label %if.end7500 | |
if.else7492: ; preds = %if.end7485 | |
%idxprom749410285 = zext i32 %1169 to i64 | |
%arrayidx7495 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom749410285 | |
%1170 = bitcast %union.rec** %arrayidx7495 to %struct.word_type** | |
%1171 = load %struct.word_type*, %struct.word_type** %1170, align 8, !tbaa !8 | |
%ofpos7498 = getelementptr inbounds %struct.word_type, %struct.word_type* %1171, i64 0, i32 1, i32 0 | |
%call7499 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos7498) #5 | |
br label %if.end7500 | |
if.end7500: ; preds = %if.else7492, %if.then7489 | |
%call7501 = call fastcc i32 @Reduce() | |
br label %if.end7502 | |
if.end7502: ; preds = %if.end7500, %if.then7209 | |
%1172 = load i32, i32* @otop, align 4, !tbaa !4 | |
%dec7503 = add nsw i32 %1172, -1 | |
store i32 %dec7503, i32* @otop, align 4, !tbaa !4 | |
%idxprom7504 = sext i32 %1172 to i64 | |
%arrayidx7505 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom7504 | |
%1173 = load %union.rec*, %union.rec** %arrayidx7505, align 8, !tbaa !8 | |
%call7506 = call %union.rec* @TransferBegin(%union.rec* noundef %1173) #5 | |
%otype7510 = getelementptr inbounds %union.rec, %union.rec* %call7506, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1174 = load i8, i8* %otype7510, align 8, !tbaa !10 | |
%cmp7512 = icmp eq i8 %1174, 2 | |
br i1 %cmp7512, label %if.then7514, label %if.end8250 | |
if.then7514: ; preds = %if.end7502 | |
%bf.load7519 = load i24, i24* %958, align 1 | |
%1175 = and i24 %bf.load7519, 8 | |
%tobool7523.not = icmp eq i24 %1175, 0 | |
br i1 %tobool7523.not, label %if.else8050, label %if.then7524 | |
if.then7524: ; preds = %if.then7514 | |
%opred7528 = getelementptr inbounds %union.rec, %union.rec* %call7506, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1176 = bitcast %union.rec* %call7506 to %struct.word_type** | |
%1177 = load %struct.word_type*, %struct.word_type** %1176, align 8, !tbaa !10 | |
%opred7532 = getelementptr inbounds %struct.word_type, %struct.word_type* %1177, i64 0, i32 0, i64 1, i32 0 | |
%1178 = bitcast %struct.word_type* %1177 to %union.rec* | |
br label %for.cond7533 | |
for.cond7533: ; preds = %for.inc7542, %if.then7524 | |
%tmp.3.in = phi %union.rec** [ %opred7532, %if.then7524 ], [ %opred7546, %for.inc7542 ] | |
%tmp.3 = load %union.rec*, %union.rec** %tmp.3.in, align 8, !tbaa !10 | |
%otype7537 = getelementptr inbounds %union.rec, %union.rec* %tmp.3, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1179 = load i8, i8* %otype7537, align 8, !tbaa !10 | |
switch i8 %1179, label %if.then7565 [ | |
i8 0, label %for.inc7542 | |
i8 10, label %land.lhs.true7555 | |
] | |
for.inc7542: ; preds = %for.cond7533 | |
%opred7546 = getelementptr inbounds %union.rec, %union.rec* %tmp.3, i64 0, i32 0, i32 0, i64 1, i32 0 | |
br label %for.cond7533, !llvm.loop !39 | |
land.lhs.true7555: ; preds = %for.cond7533 | |
%1180 = getelementptr inbounds %union.rec, %union.rec* %tmp.3, i64 0, i32 0, i32 5 | |
%1181 = bitcast %union.rec** %1180 to %struct.word_type** | |
%1182 = load %struct.word_type*, %struct.word_type** %1181, align 8, !tbaa !10 | |
%otype7561 = getelementptr inbounds %struct.word_type, %struct.word_type* %1182, i64 0, i32 1, i32 0, i32 0 | |
%1183 = load i8, i8* %otype7561, align 8, !tbaa !10 | |
%cmp7563 = icmp eq i8 %1183, -110 | |
br i1 %cmp7563, label %if.end7567, label %if.then7565 | |
if.then7565: ; preds = %land.lhs.true7555, %for.cond7533 | |
%1184 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call7566 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 1, i32 noundef 2, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 noundef 0, %struct.FILE_POS* noundef %1184, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.49, i64 0, i64 0)) #5 | |
%.pre10464 = load %union.rec*, %union.rec** %opred7528, align 8, !tbaa !10 | |
br label %if.end7567 | |
if.end7567: ; preds = %if.then7565, %land.lhs.true7555 | |
%1185 = phi %union.rec* [ %.pre10464, %if.then7565 ], [ %1178, %land.lhs.true7555 ] | |
store %union.rec* %1185, %union.rec** @xx_link, align 8, !tbaa !8 | |
%osucc7575 = getelementptr inbounds %union.rec, %union.rec* %1185, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%1186 = load %union.rec*, %union.rec** %osucc7575, align 8, !tbaa !10 | |
%cmp7576 = icmp eq %union.rec* %1186, %1185 | |
br i1 %cmp7576, label %cond.end7608, label %cond.false7579 | |
cond.false7579: ; preds = %if.end7567 | |
store %union.rec* %1186, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1187 = getelementptr inbounds %union.rec, %union.rec* %1185, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1188 = load %union.rec*, %union.rec** %1187, align 8, !tbaa !10 | |
%opred7591 = getelementptr inbounds %union.rec, %union.rec* %1186, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1188, %union.rec** %opred7591, align 8, !tbaa !10 | |
%1189 = bitcast %union.rec** %1187 to %struct.word_type** | |
%1190 = load %struct.word_type*, %struct.word_type** %1189, align 8, !tbaa !10 | |
%osucc7599 = getelementptr inbounds %struct.word_type, %struct.word_type* %1190, i64 0, i32 0, i64 1, i32 1 | |
store %union.rec* %1186, %union.rec** %osucc7599, align 8, !tbaa !10 | |
store %union.rec* %1185, %union.rec** %osucc7575, align 8, !tbaa !10 | |
%opred7607 = getelementptr inbounds %union.rec, %union.rec* %1185, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1185, %union.rec** %opred7607, align 8, !tbaa !10 | |
br label %cond.end7608 | |
cond.end7608: ; preds = %cond.false7579, %if.end7567 | |
%cond7609 = phi %union.rec* [ %1186, %cond.false7579 ], [ null, %if.end7567 ] | |
store %union.rec* %cond7609, %union.rec** @xx_tmp, align 8, !tbaa !8 | |
store %union.rec* %1185, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%osucc7613 = getelementptr inbounds %union.rec, %union.rec* %1185, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%1191 = load %union.rec*, %union.rec** %osucc7613, align 8, !tbaa !10 | |
%cmp7614 = icmp eq %union.rec* %1191, %1185 | |
br i1 %cmp7614, label %cond.end7646, label %cond.false7617 | |
cond.false7617: ; preds = %cond.end7608 | |
store %union.rec* %1191, %union.rec** @zz_res, align 8, !tbaa !8 | |
%opred7625 = getelementptr %union.rec, %union.rec* %1185, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1192 = load %union.rec*, %union.rec** %opred7625, align 8, !tbaa !10 | |
%opred7629 = getelementptr inbounds %union.rec, %union.rec* %1191, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1192, %union.rec** %opred7629, align 8, !tbaa !10 | |
%1193 = load %union.rec*, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1194 = load %struct.word_type**, %struct.word_type*** bitcast (%union.rec** @zz_hold to %struct.word_type***), align 8, !tbaa !8 | |
%1195 = load %struct.word_type*, %struct.word_type** %1194, align 8, !tbaa !10 | |
%osucc7637 = getelementptr inbounds %struct.word_type, %struct.word_type* %1195, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1193, %union.rec** %osucc7637, align 8, !tbaa !10 | |
%osucc7641 = getelementptr inbounds %struct.word_type*, %struct.word_type** %1194, i64 1 | |
%1196 = bitcast %struct.word_type** %osucc7641 to %struct.word_type*** | |
store %struct.word_type** %1194, %struct.word_type*** %1196, align 8, !tbaa !10 | |
%1197 = bitcast %struct.word_type** %1194 to %struct.word_type*** | |
store %struct.word_type** %1194, %struct.word_type*** %1197, align 8, !tbaa !10 | |
%.pre10465 = load %union.rec*, %union.rec** @xx_link, align 8, !tbaa !8 | |
br label %cond.end7646 | |
cond.end7646: ; preds = %cond.false7617, %cond.end7608 | |
%1198 = phi %union.rec* [ %1185, %cond.end7608 ], [ %.pre10465, %cond.false7617 ] | |
store %union.rec* %1198, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype7651 = getelementptr inbounds %union.rec, %union.rec* %1198, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1199 = load i8, i8* %otype7651, align 8, !tbaa !10 | |
%.off10201 = add i8 %1199, -11 | |
%switch10202 = icmp ult i8 %.off10201, 2 | |
%1200 = getelementptr inbounds %union.rec, %union.rec* %1198, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom7674 = zext i8 %1199 to i64 | |
%arrayidx7675 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom7674 | |
%cond7678.in.in = select i1 %switch10202, i8* %1200, i8* %arrayidx7675 | |
%cond7678.in = load i8, i8* %cond7678.in.in, align 1, !tbaa !10 | |
%cond7678 = zext i8 %cond7678.in to i32 | |
store i32 %cond7678, i32* @zz_size, align 4, !tbaa !4 | |
%1201 = zext i8 %cond7678.in to i64 | |
%arrayidx7680 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1201 | |
%1202 = load %union.rec*, %union.rec** %arrayidx7680, align 8, !tbaa !8 | |
%opred7684 = getelementptr %union.rec, %union.rec* %1198, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1202, %union.rec** %opred7684, align 8, !tbaa !10 | |
%1203 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1204 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom7685 = sext i32 %1204 to i64 | |
%arrayidx7686 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom7685 | |
store %union.rec* %1203, %union.rec** %arrayidx7686, align 8, !tbaa !8 | |
%1205 = load %union.rec*, %union.rec** @xx_tmp, align 8, !tbaa !8 | |
%osucc7690 = getelementptr inbounds %union.rec, %union.rec* %1205, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%1206 = load %union.rec*, %union.rec** %osucc7690, align 8, !tbaa !10 | |
%cmp7691 = icmp eq %union.rec* %1206, %1205 | |
br i1 %cmp7691, label %if.then7693, label %if.end7695 | |
if.then7693: ; preds = %cond.end7646 | |
%call7694 = call i32 @DisposeObject(%union.rec* noundef nonnull %1205) #5 | |
br label %if.end7695 | |
if.end7695: ; preds = %if.then7693, %cond.end7646 | |
%bf.load7700 = load i24, i24* %958, align 1 | |
%1207 = and i24 %bf.load7700, 4 | |
%tobool7704.not = icmp eq i24 %1207, 0 | |
br i1 %tobool7704.not, label %if.end8034, label %if.then7705 | |
if.then7705: ; preds = %if.end7695 | |
%osucc7709 = getelementptr inbounds %union.rec, %union.rec* %call7506, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%1208 = bitcast %union.rec** %osucc7709 to %struct.word_type** | |
%1209 = load %struct.word_type*, %struct.word_type** %1208, align 8, !tbaa !10 | |
%opred7713 = getelementptr inbounds %struct.word_type, %struct.word_type* %1209, i64 0, i32 0, i64 1, i32 0 | |
br label %for.cond7714 | |
for.cond7714: ; preds = %for.inc7723, %if.then7705 | |
%tmp.4.in = phi %union.rec** [ %opred7713, %if.then7705 ], [ %opred7727, %for.inc7723 ] | |
%tmp.4 = load %union.rec*, %union.rec** %tmp.4.in, align 8, !tbaa !10 | |
%otype7718 = getelementptr inbounds %union.rec, %union.rec* %tmp.4, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1210 = load i8, i8* %otype7718, align 8, !tbaa !10 | |
switch i8 %1210, label %if.then7746 [ | |
i8 0, label %for.inc7723 | |
i8 10, label %land.lhs.true7736 | |
] | |
for.inc7723: ; preds = %for.cond7714 | |
%opred7727 = getelementptr inbounds %union.rec, %union.rec* %tmp.4, i64 0, i32 0, i32 0, i64 1, i32 0 | |
br label %for.cond7714, !llvm.loop !40 | |
land.lhs.true7736: ; preds = %for.cond7714 | |
%1211 = getelementptr inbounds %union.rec, %union.rec* %tmp.4, i64 0, i32 0, i32 5 | |
%1212 = bitcast %union.rec** %1211 to %struct.word_type** | |
%1213 = load %struct.word_type*, %struct.word_type** %1212, align 8, !tbaa !10 | |
%otype7742 = getelementptr inbounds %struct.word_type, %struct.word_type* %1213, i64 0, i32 1, i32 0, i32 0 | |
%1214 = load i8, i8* %otype7742, align 8, !tbaa !10 | |
%cmp7744 = icmp eq i8 %1214, -112 | |
br i1 %cmp7744, label %if.end7748, label %if.then7746 | |
if.then7746: ; preds = %land.lhs.true7736, %for.cond7714 | |
%1215 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call7747 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 1, i32 noundef 2, i8* noundef getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 noundef 0, %struct.FILE_POS* noundef %1215, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]* @.str.50, i64 0, i64 0)) #5 | |
br label %if.end7748 | |
if.end7748: ; preds = %if.then7746, %land.lhs.true7736 | |
%osucc7752 = getelementptr inbounds %union.rec, %union.rec* %tmp.4, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%1216 = bitcast %union.rec** %osucc7752 to %struct.word_type** | |
%1217 = load %struct.word_type*, %struct.word_type** %1216, align 8, !tbaa !10 | |
%opred7756 = getelementptr inbounds %struct.word_type, %struct.word_type* %1217, i64 0, i32 0, i64 1, i32 0 | |
br label %for.cond7757 | |
for.cond7757: ; preds = %for.cond7757, %if.end7748 | |
%tmp.5.in = phi %union.rec** [ %opred7756, %if.end7748 ], [ %opred7770, %for.cond7757 ] | |
%tmp.5 = load %union.rec*, %union.rec** %tmp.5.in, align 8, !tbaa !10 | |
%otype7761 = getelementptr inbounds %union.rec, %union.rec* %tmp.5, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1218 = load i8, i8* %otype7761, align 8, !tbaa !10 | |
%cmp7763 = icmp eq i8 %1218, 0 | |
%opred7770 = getelementptr inbounds %union.rec, %union.rec* %tmp.5, i64 0, i32 0, i32 0, i64 1, i32 0 | |
br i1 %cmp7763, label %for.cond7757, label %for.end7771, !llvm.loop !41 | |
for.end7771: ; preds = %for.cond7757 | |
store %union.rec* %tmp.5, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1219 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc7772 = add nsw i32 %1219, 1 | |
store i32 %inc7772, i32* @otop, align 4, !tbaa !4 | |
%cmp7773 = icmp slt i32 %1219, 99 | |
br i1 %cmp7773, label %if.then7775, label %if.else7778 | |
if.then7775: ; preds = %for.end7771 | |
%idxprom7776 = sext i32 %inc7772 to i64 | |
%arrayidx7777 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom7776 | |
store %union.rec* %tmp.5, %union.rec** %arrayidx7777, align 8, !tbaa !8 | |
br label %if.end7786 | |
if.else7778: ; preds = %for.end7771 | |
%idxprom778010283 = zext i32 %1219 to i64 | |
%arrayidx7781 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom778010283 | |
%1220 = bitcast %union.rec** %arrayidx7781 to %struct.word_type** | |
%1221 = load %struct.word_type*, %struct.word_type** %1220, align 8, !tbaa !8 | |
%ofpos7784 = getelementptr inbounds %struct.word_type, %struct.word_type* %1221, i64 0, i32 1, i32 0 | |
%call7785 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos7784) #5 | |
br label %if.end7786 | |
if.end7786: ; preds = %if.else7778, %if.then7775 | |
%osucc7790 = getelementptr inbounds %union.rec, %union.rec* %tmp.5, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%1222 = load %union.rec*, %union.rec** %osucc7790, align 8, !tbaa !10 | |
store %union.rec* %1222, %union.rec** @xx_link, align 8, !tbaa !8 | |
%osucc7794 = getelementptr inbounds %union.rec, %union.rec* %1222, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%1223 = load %union.rec*, %union.rec** %osucc7794, align 8, !tbaa !10 | |
%cmp7795 = icmp eq %union.rec* %1223, %1222 | |
br i1 %cmp7795, label %cond.end7827, label %cond.false7798 | |
cond.false7798: ; preds = %if.end7786 | |
store %union.rec* %1223, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1224 = getelementptr inbounds %union.rec, %union.rec* %1222, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1225 = load %union.rec*, %union.rec** %1224, align 8, !tbaa !10 | |
%opred7810 = getelementptr inbounds %union.rec, %union.rec* %1223, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1225, %union.rec** %opred7810, align 8, !tbaa !10 | |
%1226 = bitcast %union.rec** %1224 to %struct.word_type** | |
%1227 = load %struct.word_type*, %struct.word_type** %1226, align 8, !tbaa !10 | |
%osucc7818 = getelementptr inbounds %struct.word_type, %struct.word_type* %1227, i64 0, i32 0, i64 1, i32 1 | |
store %union.rec* %1223, %union.rec** %osucc7818, align 8, !tbaa !10 | |
store %union.rec* %1222, %union.rec** %osucc7794, align 8, !tbaa !10 | |
%opred7826 = getelementptr inbounds %union.rec, %union.rec* %1222, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1222, %union.rec** %opred7826, align 8, !tbaa !10 | |
br label %cond.end7827 | |
cond.end7827: ; preds = %cond.false7798, %if.end7786 | |
store %union.rec* %1222, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%osucc7832 = getelementptr inbounds %union.rec, %union.rec* %1222, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%1228 = load %union.rec*, %union.rec** %osucc7832, align 8, !tbaa !10 | |
%cmp7833 = icmp eq %union.rec* %1228, %1222 | |
br i1 %cmp7833, label %cond.end7865, label %cond.false7836 | |
cond.false7836: ; preds = %cond.end7827 | |
store %union.rec* %1228, %union.rec** @zz_res, align 8, !tbaa !8 | |
%opred7844 = getelementptr %union.rec, %union.rec* %1222, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1229 = load %union.rec*, %union.rec** %opred7844, align 8, !tbaa !10 | |
%opred7848 = getelementptr inbounds %union.rec, %union.rec* %1228, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1229, %union.rec** %opred7848, align 8, !tbaa !10 | |
%1230 = load %union.rec*, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1231 = load %struct.word_type**, %struct.word_type*** bitcast (%union.rec** @zz_hold to %struct.word_type***), align 8, !tbaa !8 | |
%1232 = load %struct.word_type*, %struct.word_type** %1231, align 8, !tbaa !10 | |
%osucc7856 = getelementptr inbounds %struct.word_type, %struct.word_type* %1232, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1230, %union.rec** %osucc7856, align 8, !tbaa !10 | |
%osucc7860 = getelementptr inbounds %struct.word_type*, %struct.word_type** %1231, i64 1 | |
%1233 = bitcast %struct.word_type** %osucc7860 to %struct.word_type*** | |
store %struct.word_type** %1231, %struct.word_type*** %1233, align 8, !tbaa !10 | |
%1234 = bitcast %struct.word_type** %1231 to %struct.word_type*** | |
store %struct.word_type** %1231, %struct.word_type*** %1234, align 8, !tbaa !10 | |
%.pre10466 = load %union.rec*, %union.rec** @xx_link, align 8, !tbaa !8 | |
br label %cond.end7865 | |
cond.end7865: ; preds = %cond.false7836, %cond.end7827 | |
%1235 = phi %union.rec* [ %1222, %cond.end7827 ], [ %.pre10466, %cond.false7836 ] | |
store %union.rec* %1235, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype7870 = getelementptr inbounds %union.rec, %union.rec* %1235, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1236 = load i8, i8* %otype7870, align 8, !tbaa !10 | |
%.off10203 = add i8 %1236, -11 | |
%switch10204 = icmp ult i8 %.off10203, 2 | |
%1237 = getelementptr inbounds %union.rec, %union.rec* %1235, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom7893 = zext i8 %1236 to i64 | |
%arrayidx7894 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom7893 | |
%cond7897.in.in = select i1 %switch10204, i8* %1237, i8* %arrayidx7894 | |
%cond7897.in = load i8, i8* %cond7897.in.in, align 1, !tbaa !10 | |
%cond7897 = zext i8 %cond7897.in to i32 | |
store i32 %cond7897, i32* @zz_size, align 4, !tbaa !4 | |
%1238 = zext i8 %cond7897.in to i64 | |
%arrayidx7899 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1238 | |
%1239 = load %union.rec*, %union.rec** %arrayidx7899, align 8, !tbaa !8 | |
%opred7903 = getelementptr %union.rec, %union.rec* %1235, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1239, %union.rec** %opred7903, align 8, !tbaa !10 | |
%1240 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1241 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom7904 = sext i32 %1241 to i64 | |
%arrayidx7905 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom7904 | |
store %union.rec* %1240, %union.rec** %arrayidx7905, align 8, !tbaa !8 | |
%1242 = load %union.rec*, %union.rec** %osucc7709, align 8, !tbaa !10 | |
store %union.rec* %1242, %union.rec** @xx_link, align 8, !tbaa !8 | |
%osucc7913 = getelementptr inbounds %union.rec, %union.rec* %1242, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%1243 = load %union.rec*, %union.rec** %osucc7913, align 8, !tbaa !10 | |
%cmp7914 = icmp eq %union.rec* %1243, %1242 | |
br i1 %cmp7914, label %cond.end7946, label %cond.false7917 | |
cond.false7917: ; preds = %cond.end7865 | |
store %union.rec* %1243, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1244 = getelementptr inbounds %union.rec, %union.rec* %1242, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%1245 = load %union.rec*, %union.rec** %1244, align 8, !tbaa !10 | |
%opred7929 = getelementptr inbounds %union.rec, %union.rec* %1243, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1245, %union.rec** %opred7929, align 8, !tbaa !10 | |
%1246 = bitcast %union.rec** %1244 to %struct.word_type** | |
%1247 = load %struct.word_type*, %struct.word_type** %1246, align 8, !tbaa !10 | |
%osucc7937 = getelementptr inbounds %struct.word_type, %struct.word_type* %1247, i64 0, i32 0, i64 1, i32 1 | |
store %union.rec* %1243, %union.rec** %osucc7937, align 8, !tbaa !10 | |
store %union.rec* %1242, %union.rec** %osucc7913, align 8, !tbaa !10 | |
%opred7945 = getelementptr inbounds %union.rec, %union.rec* %1242, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %1242, %union.rec** %opred7945, align 8, !tbaa !10 | |
br label %cond.end7946 | |
cond.end7946: ; preds = %cond.false7917, %cond.end7865 | |
%cond7947 = phi %union.rec* [ %1243, %cond.false7917 ], [ null, %cond.end7865 ] | |
store %union.rec* %cond7947, %union.rec** @xx_tmp, align 8, !tbaa !8 | |
store %union.rec* %1242, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%osucc7951 = getelementptr inbounds %union.rec, %union.rec* %1242, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%1248 = load %union.rec*, %union.rec** %osucc7951, align 8, !tbaa !10 | |
%cmp7952 = icmp eq %union.rec* %1248, %1242 | |
br i1 %cmp7952, label %cond.end7984, label %cond.false7955 | |
cond.false7955: ; preds = %cond.end7946 | |
store %union.rec* %1248, %union.rec** @zz_res, align 8, !tbaa !8 | |
%opred7963 = getelementptr %union.rec, %union.rec* %1242, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1249 = load %union.rec*, %union.rec** %opred7963, align 8, !tbaa !10 | |
%opred7967 = getelementptr inbounds %union.rec, %union.rec* %1248, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1249, %union.rec** %opred7967, align 8, !tbaa !10 | |
%1250 = load %union.rec*, %union.rec** @zz_res, align 8, !tbaa !8 | |
%1251 = load %struct.word_type**, %struct.word_type*** bitcast (%union.rec** @zz_hold to %struct.word_type***), align 8, !tbaa !8 | |
%1252 = load %struct.word_type*, %struct.word_type** %1251, align 8, !tbaa !10 | |
%osucc7975 = getelementptr inbounds %struct.word_type, %struct.word_type* %1252, i64 0, i32 0, i64 0, i32 1 | |
store %union.rec* %1250, %union.rec** %osucc7975, align 8, !tbaa !10 | |
%osucc7979 = getelementptr inbounds %struct.word_type*, %struct.word_type** %1251, i64 1 | |
%1253 = bitcast %struct.word_type** %osucc7979 to %struct.word_type*** | |
store %struct.word_type** %1251, %struct.word_type*** %1253, align 8, !tbaa !10 | |
%1254 = bitcast %struct.word_type** %1251 to %struct.word_type*** | |
store %struct.word_type** %1251, %struct.word_type*** %1254, align 8, !tbaa !10 | |
%.pre10467 = load %union.rec*, %union.rec** @xx_link, align 8, !tbaa !8 | |
br label %cond.end7984 | |
cond.end7984: ; preds = %cond.false7955, %cond.end7946 | |
%1255 = phi %union.rec* [ %1242, %cond.end7946 ], [ %.pre10467, %cond.false7955 ] | |
store %union.rec* %1255, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%otype7989 = getelementptr inbounds %union.rec, %union.rec* %1255, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1256 = load i8, i8* %otype7989, align 8, !tbaa !10 | |
%.off10205 = add i8 %1256, -11 | |
%switch10206 = icmp ult i8 %.off10205, 2 | |
%1257 = getelementptr inbounds %union.rec, %union.rec* %1255, i64 0, i32 0, i32 1, i32 0, i32 1 | |
%idxprom8012 = zext i8 %1256 to i64 | |
%arrayidx8013 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %idxprom8012 | |
%cond8016.in.in = select i1 %switch10206, i8* %1257, i8* %arrayidx8013 | |
%cond8016.in = load i8, i8* %cond8016.in.in, align 1, !tbaa !10 | |
%cond8016 = zext i8 %cond8016.in to i32 | |
store i32 %cond8016, i32* @zz_size, align 4, !tbaa !4 | |
%1258 = zext i8 %cond8016.in to i64 | |
%arrayidx8018 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1258 | |
%1259 = load %union.rec*, %union.rec** %arrayidx8018, align 8, !tbaa !8 | |
%opred8022 = getelementptr %union.rec, %union.rec* %1255, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %1259, %union.rec** %opred8022, align 8, !tbaa !10 | |
%1260 = load %union.rec*, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1261 = load i32, i32* @zz_size, align 4, !tbaa !4 | |
%idxprom8023 = sext i32 %1261 to i64 | |
%arrayidx8024 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %idxprom8023 | |
store %union.rec* %1260, %union.rec** %arrayidx8024, align 8, !tbaa !8 | |
%1262 = load %union.rec*, %union.rec** @xx_tmp, align 8, !tbaa !8 | |
%osucc8028 = getelementptr inbounds %union.rec, %union.rec* %1262, i64 0, i32 0, i32 0, i64 1, i32 1 | |
%1263 = load %union.rec*, %union.rec** %osucc8028, align 8, !tbaa !10 | |
%cmp8029 = icmp eq %union.rec* %1263, %1262 | |
br i1 %cmp8029, label %if.then8031, label %if.end8034 | |
if.then8031: ; preds = %cond.end7984 | |
%call8032 = call i32 @DisposeObject(%union.rec* noundef nonnull %1262) #5 | |
br label %if.end8034 | |
if.end8034: ; preds = %if.then8031, %cond.end7984, %if.end7695 | |
%1264 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc8035 = add nsw i32 %1264, 1 | |
store i32 %inc8035, i32* @ttop, align 4, !tbaa !4 | |
%cmp8036 = icmp slt i32 %1264, 99 | |
br i1 %cmp8036, label %if.then8038, label %if.else8041 | |
if.then8038: ; preds = %if.end8034 | |
%idxprom8039 = sext i32 %inc8035 to i64 | |
%arrayidx8040 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8039 | |
store %union.rec* %call7506, %union.rec** %arrayidx8040, align 8, !tbaa !8 | |
br label %if.end8289 | |
if.else8041: ; preds = %if.end8034 | |
%idxprom804310282 = zext i32 %1264 to i64 | |
%arrayidx8044 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom804310282 | |
%1265 = bitcast %union.rec** %arrayidx8044 to %struct.word_type** | |
%1266 = load %struct.word_type*, %struct.word_type** %1265, align 8, !tbaa !8 | |
%ofpos8047 = getelementptr inbounds %struct.word_type, %struct.word_type* %1266, i64 0, i32 1, i32 0 | |
%call8048 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8047) #5 | |
br label %if.end8289 | |
if.else8050: ; preds = %if.then7514 | |
store %union.rec* %call7506, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1267 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc8051 = add nsw i32 %1267, 1 | |
store i32 %inc8051, i32* @otop, align 4, !tbaa !4 | |
%cmp8052 = icmp slt i32 %1267, 99 | |
br i1 %cmp8052, label %if.then8054, label %if.else8057 | |
if.then8054: ; preds = %if.else8050 | |
%idxprom8055 = sext i32 %inc8051 to i64 | |
%arrayidx8056 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom8055 | |
store %union.rec* %call7506, %union.rec** %arrayidx8056, align 8, !tbaa !8 | |
br label %if.end8289 | |
if.else8057: ; preds = %if.else8050 | |
%idxprom805910281 = zext i32 %1267 to i64 | |
%arrayidx8060 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom805910281 | |
%1268 = bitcast %union.rec** %arrayidx8060 to %struct.word_type** | |
%1269 = load %struct.word_type*, %struct.word_type** %1268, align 8, !tbaa !8 | |
%ofpos8063 = getelementptr inbounds %struct.word_type, %struct.word_type* %1269, i64 0, i32 1, i32 0 | |
%call8064 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8063) #5 | |
br label %if.end8289 | |
if.end8250: ; preds = %if.end7502 | |
%1270 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc8251 = add nsw i32 %1270, 1 | |
store i32 %inc8251, i32* @ttop, align 4, !tbaa !4 | |
%cmp8252 = icmp slt i32 %1270, 99 | |
br i1 %cmp8252, label %if.then8254, label %if.else8257 | |
if.then8254: ; preds = %if.end8250 | |
%idxprom8255 = sext i32 %inc8251 to i64 | |
%arrayidx8256 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8255 | |
store %union.rec* %call7506, %union.rec** %arrayidx8256, align 8, !tbaa !8 | |
br label %if.end8265 | |
if.else8257: ; preds = %if.end8250 | |
%idxprom825910284 = zext i32 %1270 to i64 | |
%arrayidx8260 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom825910284 | |
%1271 = bitcast %union.rec** %arrayidx8260 to %struct.word_type** | |
%1272 = load %struct.word_type*, %struct.word_type** %1271, align 8, !tbaa !8 | |
%ofpos8263 = getelementptr inbounds %struct.word_type, %struct.word_type* %1272, i64 0, i32 1, i32 0 | |
%call8264 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8263) #5 | |
br label %if.end8265 | |
if.end8265: ; preds = %if.else8257, %if.then8254 | |
%bf.load8270 = load i24, i24* %958, align 1 | |
%1273 = and i24 %bf.load8270, 8 | |
%tobool8274.not = icmp eq i24 %1273, 0 | |
br i1 %tobool8274.not, label %if.else8276, label %if.end8289 | |
if.else8276: ; preds = %if.end8265 | |
%call8277 = call fastcc i32 @Reduce() | |
%1274 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp8278 = icmp eq i32 %1274, %4 | |
br i1 %cmp8278, label %cleanup9179, label %if.end8289 | |
if.end8289: ; preds = %if.else8276, %if.end8265, %if.else8057, %if.then8054, %if.else8041, %if.then8038, %land.lhs.true7198, %while.end7178, %lor.lhs.false7113, %land.lhs.true7099, %land.lhs.true7080, %if.end7078 | |
%x.1 = phi %union.rec* [ %call7506, %if.else8276 ], [ %914, %land.lhs.true7198 ], [ %914, %lor.lhs.false7113 ], [ %914, %land.lhs.true7099 ], [ %914, %land.lhs.true7080 ], [ %914, %if.end7078 ], [ %914, %while.end7178 ], [ %call7506, %if.else8041 ], [ %call7506, %if.then8038 ], [ %call7506, %if.else8057 ], [ %call7506, %if.then8054 ], [ %call7506, %if.end8265 ] | |
%obj_prev.41 = phi i32 [ %call8277, %if.else8276 ], [ %obj_prev.38, %land.lhs.true7198 ], [ %obj_prev.38, %lor.lhs.false7113 ], [ %obj_prev.38, %land.lhs.true7099 ], [ %obj_prev.38, %land.lhs.true7080 ], [ %obj_prev.38, %if.end7078 ], [ %obj_prev.38, %while.end7178 ], [ 0, %if.else8041 ], [ 0, %if.then8038 ], [ 1, %if.else8057 ], [ 1, %if.then8054 ], [ 0, %if.end8265 ] | |
%1275 = getelementptr inbounds %union.rec, %union.rec* %916, i64 0, i32 0, i32 8 | |
%1276 = load %union.rec*, %union.rec** %1275, align 8, !tbaa !10 | |
%cmp8292.not = icmp eq %union.rec* %1276, null | |
br i1 %cmp8292.not, label %if.else8726, label %if.then8294 | |
if.then8294: ; preds = %if.end8289 | |
%1277 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%otype8298 = getelementptr inbounds %struct.word_type, %struct.word_type* %1277, i64 0, i32 1, i32 0, i32 0 | |
%1278 = load i8, i8* %otype8298, align 8, !tbaa !10 | |
switch i8 %1278, label %if.else8719 [ | |
i8 104, label %if.then8310 | |
i8 102, label %if.then8310 | |
] | |
if.then8310: ; preds = %if.then8294, %if.then8294 | |
%cmp8316 = icmp eq i8 %1278, 104 | |
%conv8317 = zext i1 %cmp8316 to i32 | |
%ofpos8320 = getelementptr inbounds %struct.word_type, %struct.word_type* %1277, i64 0, i32 1, i32 0 | |
%call8321 = call %union.rec* @FilterCreate(i32 noundef %conv8317, %union.rec* noundef nonnull %916, %struct.FILE_POS* noundef nonnull %ofpos8320) #5 | |
%tobool8322.not = icmp eq i32 %obj_prev.41, 0 | |
br i1 %tobool8322.not, label %if.end8504, label %if.then8323 | |
if.then8323: ; preds = %if.then8310 | |
%1279 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou28327 = getelementptr inbounds %struct.word_type, %struct.word_type* %1279, i64 0, i32 2 | |
%os218328 = bitcast %union.SECOND_UNION* %ou28327 to %struct.anon.0* | |
%ohspace8329 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os218328, i64 0, i32 1 | |
%1280 = load i8, i8* %ohspace8329, align 1, !tbaa !10 | |
%conv8330 = zext i8 %1280 to i32 | |
%ovspace8334 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os218328, i64 0, i32 2 | |
%1281 = load i8, i8* %ovspace8334, align 2, !tbaa !10 | |
%conv8335 = zext i8 %1281 to i32 | |
%add8336 = sub nsw i32 0, %conv8335 | |
%cmp8337.not = icmp eq i32 %conv8330, %add8336 | |
br i1 %cmp8337.not, label %if.else8340, label %if.end8354 | |
if.else8340: ; preds = %if.then8323 | |
%otype8344 = getelementptr inbounds %struct.word_type, %struct.word_type* %1279, i64 0, i32 1, i32 0, i32 0 | |
%1282 = load i8, i8* %otype8344, align 8, !tbaa !10 | |
%cmp8346 = icmp eq i8 %1282, 102 | |
%cmp8349 = icmp eq i32 %obj_prev.41, 2 | |
%or.cond9220 = select i1 %cmp8346, i1 true, i1 %cmp8349 | |
%.10158 = select i1 %or.cond9220, i8 7, i8 103 | |
br label %if.end8354 | |
if.end8354: ; preds = %if.else8340, %if.then8323 | |
%typ8324.0 = phi i32 [ 100, %if.then8323 ], [ 101, %if.else8340 ] | |
%prec8325.0 = phi i8 [ 7, %if.then8323 ], [ %.10158, %if.else8340 ] | |
br label %land.rhs8357 | |
land.rhs8357: ; preds = %while.body8368, %if.end8354 | |
%1283 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom8358 = sext i32 %1283 to i64 | |
%arrayidx8359 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8358 | |
%1284 = bitcast %union.rec** %arrayidx8359 to %struct.word_type** | |
%1285 = load %struct.word_type*, %struct.word_type** %1284, align 8, !tbaa !8 | |
%ou28361 = getelementptr inbounds %struct.word_type, %struct.word_type* %1285, i64 0, i32 2 | |
%oprecedence8363 = bitcast %union.SECOND_UNION* %ou28361 to i8* | |
%1286 = load i8, i8* %oprecedence8363, align 8, !tbaa !10 | |
%cmp8365.not = icmp ugt i8 %prec8325.0, %1286 | |
br i1 %cmp8365.not, label %if.then8372, label %while.body8368 | |
while.body8368: ; preds = %land.rhs8357 | |
%call8369 = call fastcc i32 @Reduce() | |
%tobool8356.not = icmp eq i32 %call8369, 0 | |
br i1 %tobool8356.not, label %if.end8504, label %land.rhs8357, !llvm.loop !42 | |
if.then8372: ; preds = %land.rhs8357 | |
%1287 = zext i32 %typ8324.0 to i64 | |
%arrayidx8374 = getelementptr inbounds [0 x i8], [0 x i8]* @zz_lengths, i64 0, i64 %1287 | |
%1288 = load i8, i8* %arrayidx8374, align 1, !tbaa !10 | |
%conv8375 = zext i8 %1288 to i32 | |
store i32 %conv8375, i32* @zz_size, align 4, !tbaa !4 | |
%1289 = zext i8 %1288 to i64 | |
%arrayidx8383 = getelementptr inbounds [0 x %union.rec*], [0 x %union.rec*]* @zz_free, i64 0, i64 %1289 | |
%1290 = load %union.rec*, %union.rec** %arrayidx8383, align 8, !tbaa !8 | |
%cmp8384 = icmp eq %union.rec* %1290, null | |
br i1 %cmp8384, label %if.then8386, label %if.else8388 | |
if.then8386: ; preds = %if.then8372 | |
%1291 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call8387 = call %union.rec* @GetMemory(i32 noundef %conv8375, %struct.FILE_POS* noundef %1291) #5 | |
store %union.rec* %call8387, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%.pre10468 = load i32, i32* @ttop, align 4, !tbaa !4 | |
br label %if.end8398 | |
if.else8388: ; preds = %if.then8372 | |
store %union.rec* %1290, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%opred8394 = getelementptr inbounds %union.rec, %union.rec* %1290, i64 0, i32 0, i32 0, i64 0, i32 0 | |
%1292 = load %union.rec*, %union.rec** %opred8394, align 8, !tbaa !10 | |
store %union.rec* %1292, %union.rec** %arrayidx8383, align 8, !tbaa !8 | |
br label %if.end8398 | |
if.end8398: ; preds = %if.else8388, %if.then8386 | |
%1293 = phi i32 [ %.pre10468, %if.then8386 ], [ %1283, %if.else8388 ] | |
%.in = phi %union.rec* [ %call8387, %if.then8386 ], [ %1290, %if.else8388 ] | |
%conv8399 = trunc i32 %typ8324.0 to i8 | |
%1294 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 1, i32 0, i32 0 | |
store i8 %conv8399, i8* %1294, align 8, !tbaa !10 | |
%1295 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 0, i64 1, i32 1 | |
store %union.rec* %.in, %union.rec** %1295, align 8, !tbaa !10 | |
%1296 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 0, i64 1, i32 0 | |
store %union.rec* %.in, %union.rec** %1296, align 8, !tbaa !10 | |
%1297 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 0, i64 0, i32 1 | |
store %union.rec* %.in, %union.rec** %1297, align 8, !tbaa !10 | |
%1298 = getelementptr %union.rec, %union.rec* %.in, i64 0, i32 0, i32 0, i64 0, i32 0 | |
store %union.rec* %.in, %union.rec** %1298, align 8, !tbaa !10 | |
%1299 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 2 | |
%os218423 = bitcast %union.SECOND_UNION* %1299 to %struct.anon.0* | |
%oprecedence8424 = bitcast %union.SECOND_UNION* %1299 to i8* | |
store i8 %prec8325.0, i8* %oprecedence8424, align 8, !tbaa !10 | |
%1300 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou28426 = getelementptr inbounds %struct.word_type, %struct.word_type* %1300, i64 0, i32 2 | |
%os218427 = bitcast %union.SECOND_UNION* %ou28426 to %struct.anon.0* | |
%ovspace8428 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os218427, i64 0, i32 2 | |
%1301 = load i8, i8* %ovspace8428, align 2, !tbaa !10 | |
%ovspace8432 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os218423, i64 0, i32 2 | |
store i8 %1301, i8* %ovspace8432, align 2, !tbaa !10 | |
%ohspace8436 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os218427, i64 0, i32 1 | |
%1302 = load i8, i8* %ohspace8436, align 1, !tbaa !10 | |
%ohspace8440 = getelementptr inbounds %struct.anon.0, %struct.anon.0* %os218423, i64 0, i32 1 | |
store i8 %1302, i8* %ohspace8440, align 1, !tbaa !10 | |
%os58441 = bitcast %union.rec* %.in to %struct.gapobj_type* | |
%1303 = getelementptr inbounds %struct.gapobj_type, %struct.gapobj_type* %os58441, i64 0, i32 3, i32 0 | |
%bf.load8443 = load i16, i16* %1303, align 4 | |
%bf.clear8449 = and i16 %bf.load8443, -769 | |
%bf.set8450 = or i16 %bf.clear8449, 512 | |
store i16 %bf.set8450, i16* %1303, align 4 | |
%ofile_num8454 = getelementptr inbounds %struct.word_type, %struct.word_type* %1300, i64 0, i32 1, i32 0, i32 2 | |
%1304 = load i16, i16* %ofile_num8454, align 2, !tbaa !10 | |
%1305 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 1, i32 0, i32 2 | |
store i16 %1304, i16* %1305, align 2, !tbaa !10 | |
%oline_num8462 = getelementptr inbounds %struct.word_type, %struct.word_type* %1300, i64 0, i32 1, i32 0, i32 3 | |
%bf.load8463 = load i32, i32* %oline_num8462, align 4 | |
%bf.clear8464 = and i32 %bf.load8463, 1048575 | |
%1306 = getelementptr inbounds %union.rec, %union.rec* %.in, i64 0, i32 0, i32 1, i32 0, i32 3 | |
%bf.load8469 = load i32, i32* %1306, align 4 | |
%bf.clear8471 = and i32 %bf.load8469, -1048576 | |
%bf.set8472 = or i32 %bf.clear8471, %bf.clear8464 | |
store i32 %bf.set8472, i32* %1306, align 4 | |
%bf.load8477 = load i32, i32* %oline_num8462, align 4 | |
%bf.lshr8478 = and i32 %bf.load8477, -1048576 | |
%bf.set8487 = or i32 %bf.lshr8478, %bf.clear8464 | |
store i32 %bf.set8487, i32* %1306, align 4 | |
%inc8488 = add nsw i32 %1293, 1 | |
store i32 %inc8488, i32* @ttop, align 4, !tbaa !4 | |
%cmp8489 = icmp slt i32 %1293, 99 | |
br i1 %cmp8489, label %if.then8491, label %if.else8494 | |
if.then8491: ; preds = %if.end8398 | |
%idxprom8492 = sext i32 %inc8488 to i64 | |
%arrayidx8493 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8492 | |
store %union.rec* %.in, %union.rec** %arrayidx8493, align 8, !tbaa !8 | |
br label %if.end8504 | |
if.else8494: ; preds = %if.end8398 | |
%idxprom849610279 = zext i32 %1293 to i64 | |
%arrayidx8497 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom849610279 | |
%1307 = bitcast %union.rec** %arrayidx8497 to %struct.word_type** | |
%1308 = load %struct.word_type*, %struct.word_type** %1307, align 8, !tbaa !8 | |
%ofpos8500 = getelementptr inbounds %struct.word_type, %struct.word_type* %1308, i64 0, i32 1, i32 0 | |
%call8501 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8500) #5 | |
br label %if.end8504 | |
if.end8504: ; preds = %if.else8494, %if.then8491, %while.body8368, %if.then8310 | |
%tmp.7 = phi %union.rec* [ %call8321, %if.then8310 ], [ %.in, %if.then8491 ], [ %.in, %if.else8494 ], [ %call8321, %while.body8368 ] | |
%1309 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%inc8505 = add nsw i32 %1309, 1 | |
store i32 %inc8505, i32* @ttop, align 4, !tbaa !4 | |
%cmp8506 = icmp slt i32 %1309, 99 | |
br i1 %cmp8506, label %if.then8508, label %if.else8511 | |
if.then8508: ; preds = %if.end8504 | |
%1310 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%idxprom8509 = sext i32 %inc8505 to i64 | |
%arrayidx8510 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8509 | |
store %union.rec* %1310, %union.rec** %arrayidx8510, align 8, !tbaa !8 | |
br label %if.end8702 | |
if.else8511: ; preds = %if.end8504 | |
%idxprom851310278 = zext i32 %1309 to i64 | |
%arrayidx8514 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom851310278 | |
%1311 = bitcast %union.rec** %arrayidx8514 to %struct.word_type** | |
%1312 = load %struct.word_type*, %struct.word_type** %1311, align 8, !tbaa !8 | |
%ofpos8517 = getelementptr inbounds %struct.word_type, %struct.word_type* %1312, i64 0, i32 1, i32 0 | |
%call8518 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8517) #5 | |
br label %if.end8702 | |
if.end8702: ; preds = %if.else8511, %if.then8508 | |
store %union.rec* %tmp.7, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1313 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc8703 = add nsw i32 %1313, 1 | |
store i32 %inc8703, i32* @otop, align 4, !tbaa !4 | |
%cmp8704 = icmp slt i32 %1313, 99 | |
br i1 %cmp8704, label %if.then8706, label %if.else8709 | |
if.then8706: ; preds = %if.end8702 | |
%idxprom8707 = sext i32 %inc8703 to i64 | |
%arrayidx8708 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom8707 | |
store %union.rec* %tmp.7, %union.rec** %arrayidx8708, align 8, !tbaa !8 | |
br label %if.end8717 | |
if.else8709: ; preds = %if.end8702 | |
%idxprom871110277 = zext i32 %1313 to i64 | |
%arrayidx8712 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom871110277 | |
%1314 = bitcast %union.rec** %arrayidx8712 to %struct.word_type** | |
%1315 = load %struct.word_type*, %struct.word_type** %1314, align 8, !tbaa !8 | |
%ofpos8715 = getelementptr inbounds %struct.word_type, %struct.word_type* %1315, i64 0, i32 1, i32 0 | |
%call8716 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8715) #5 | |
br label %if.end8717 | |
if.end8717: ; preds = %if.else8709, %if.then8706 | |
%call8718 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call8718, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
if.else8719: ; preds = %if.then8294 | |
%ofpos8722 = getelementptr inbounds %union.rec, %union.rec* %x.1, i64 0, i32 0, i32 1, i32 0 | |
%call8723 = call i8* @SymName(%union.rec* noundef nonnull %916) #5 | |
%call8724 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 33, i8* noundef getelementptr inbounds ([49 x i8], [49 x i8]* @.str.51, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8722, i8* noundef %call8723) #5 | |
br label %for.cond581.backedge | |
if.else8726: ; preds = %if.end8289 | |
%bf.load8730 = load i24, i24* %958, align 1 | |
%1316 = and i24 %bf.load8730, 256 | |
%tobool8734.not = icmp eq i24 %1316, 0 | |
br i1 %tobool8734.not, label %for.cond581.backedge, label %if.then8735 | |
if.then8735: ; preds = %if.else8726 | |
%1317 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou18737 = getelementptr inbounds %struct.word_type, %struct.word_type* %1317, i64 0, i32 1 | |
%otype8739 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %ou18737, i64 0, i32 0, i32 0 | |
%1318 = load i8, i8* %otype8739, align 8, !tbaa !10 | |
switch i8 %1318, label %if.else8775 [ | |
i8 104, label %if.then8751 | |
i8 102, label %if.then8751 | |
] | |
if.then8751: ; preds = %if.then8735, %if.then8735 | |
call void @PushScope(%union.rec* noundef nonnull %916, i32 noundef 0, i32 noundef 1) #5 | |
%call8752 = call %union.rec* @ChildSym(%union.rec* noundef nonnull %916, i32 noundef 146) #5 | |
call void @PushScope(%union.rec* noundef %call8752, i32 noundef 0, i32 noundef 0) #5 | |
%call8753 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 1) | |
store %union.rec* %call8753, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1319 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc8754 = add nsw i32 %1319, 1 | |
store i32 %inc8754, i32* @otop, align 4, !tbaa !4 | |
%cmp8755 = icmp slt i32 %1319, 99 | |
br i1 %cmp8755, label %if.then8757, label %if.else8760 | |
if.then8757: ; preds = %if.then8751 | |
%idxprom8758 = sext i32 %inc8754 to i64 | |
%arrayidx8759 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom8758 | |
store %union.rec* %call8753, %union.rec** %arrayidx8759, align 8, !tbaa !8 | |
br label %if.end8768 | |
if.else8760: ; preds = %if.then8751 | |
%idxprom876210276 = zext i32 %1319 to i64 | |
%arrayidx8763 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom876210276 | |
%1320 = bitcast %union.rec** %arrayidx8763 to %struct.word_type** | |
%1321 = load %struct.word_type*, %struct.word_type** %1320, align 8, !tbaa !8 | |
%ofpos8766 = getelementptr inbounds %struct.word_type, %struct.word_type* %1321, i64 0, i32 1, i32 0 | |
%call8767 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8766) #5 | |
br label %if.end8768 | |
if.end8768: ; preds = %if.else8760, %if.then8757 | |
%call8769 = call fastcc i32 @Reduce() | |
call void @PopScope() #5 | |
call void @PopScope() #5 | |
%1322 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%cmp8770 = icmp eq %union.rec* %1322, null | |
br i1 %cmp8770, label %if.then8772, label %for.cond581.backedge | |
if.then8772: ; preds = %if.end8768 | |
%call8773 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call8773, %union.rec** %t, align 8, !tbaa !8 | |
br label %for.cond581.backedge | |
if.else8775: ; preds = %if.then8735 | |
%ofpos8778 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %ou18737, i64 0, i32 0 | |
%call8779 = call i8* @SymName(%union.rec* noundef nonnull %916) #5 | |
%call8780 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 34, i8* noundef getelementptr inbounds ([48 x i8], [48 x i8]* @.str.52, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos8778, i8* noundef %call8779) #5 | |
br label %for.cond581.backedge | |
for.cond8785: ; preds = %for.cond8785.backedge, %for.cond581 | |
%obj_prev.44 = phi i32 [ %obj_prev.44.be, %for.cond8785.backedge ], [ %obj_prev.1, %for.cond581 ] | |
%tobool8786.not = icmp eq i32 %obj_prev.44, 0 | |
br i1 %tobool8786.not, label %if.then8787, label %if.else8807 | |
if.then8787: ; preds = %for.cond8785 | |
%1323 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ofpos8790 = getelementptr inbounds %struct.word_type, %struct.word_type* %1323, i64 0, i32 1, i32 0 | |
%call8791 = call %union.rec* @MakeWord(i32 noundef 11, i8* noundef getelementptr inbounds ([1 x i8], [1 x i8]* @.str.27, i64 0, i64 0), %struct.FILE_POS* noundef nonnull %ofpos8790) #5 | |
store %union.rec* %call8791, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1324 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc8792 = add nsw i32 %1324, 1 | |
store i32 %inc8792, i32* @otop, align 4, !tbaa !4 | |
%cmp8793 = icmp slt i32 %1324, 99 | |
br i1 %cmp8793, label %if.then8795, label %if.else8798 | |
if.then8795: ; preds = %if.then8787 | |
%idxprom8796 = sext i32 %inc8792 to i64 | |
%arrayidx8797 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom8796 | |
store %union.rec* %call8791, %union.rec** %arrayidx8797, align 8, !tbaa !8 | |
br label %for.cond8785.backedge | |
for.cond8785.backedge: ; preds = %if.then8823, %if.else8798, %if.then8795 | |
%obj_prev.44.be = phi i32 [ %call8824, %if.then8823 ], [ 1, %if.else8798 ], [ 1, %if.then8795 ] | |
br label %for.cond8785 | |
if.else8798: ; preds = %if.then8787 | |
%idxprom880010293 = zext i32 %1324 to i64 | |
%arrayidx8801 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom880010293 | |
%1325 = bitcast %union.rec** %arrayidx8801 to %struct.word_type** | |
%1326 = load %struct.word_type*, %struct.word_type** %1325, align 8, !tbaa !8 | |
%ofpos8804 = getelementptr inbounds %struct.word_type, %struct.word_type* %1326, i64 0, i32 1, i32 0 | |
%call8805 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8804) #5 | |
br label %for.cond8785.backedge | |
if.else8807: ; preds = %for.cond8785 | |
%1327 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%idxprom8808 = sext i32 %1327 to i64 | |
%arrayidx8809 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8808 | |
%1328 = bitcast %union.rec** %arrayidx8809 to %struct.word_type** | |
%1329 = load %struct.word_type*, %struct.word_type** %1328, align 8, !tbaa !8 | |
%ou28811 = getelementptr inbounds %struct.word_type, %struct.word_type* %1329, i64 0, i32 2 | |
%oprecedence8813 = bitcast %union.SECOND_UNION* %ou28811 to i8* | |
%1330 = load i8, i8* %oprecedence8813, align 8, !tbaa !10 | |
%1331 = load %struct.word_type*, %struct.word_type** %79, align 8, !tbaa !8 | |
%ou28816 = getelementptr inbounds %struct.word_type, %struct.word_type* %1331, i64 0, i32 2 | |
%oprecedence8818 = bitcast %union.SECOND_UNION* %ou28816 to i8* | |
%1332 = load i8, i8* %oprecedence8818, align 8, !tbaa !10 | |
%cmp8821.not.not = icmp ult i8 %1332, %1330 | |
br i1 %cmp8821.not.not, label %if.then8823, label %for.end8835 | |
if.then8823: ; preds = %if.else8807 | |
%call8824 = call fastcc i32 @Reduce() | |
%1333 = load i32, i32* @ttop, align 4, !tbaa !4 | |
%cmp8825 = icmp eq i32 %1333, %4 | |
br i1 %cmp8825, label %if.then8827, label %for.cond8785.backedge | |
if.then8827: ; preds = %if.then8823 | |
%1334 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
br label %cleanup9179 | |
for.end8835: ; preds = %if.else8807 | |
%inc8836 = add nsw i32 %1327, 1 | |
store i32 %inc8836, i32* @ttop, align 4, !tbaa !4 | |
%cmp8837 = icmp slt i32 %1327, 99 | |
br i1 %cmp8837, label %if.then8839, label %if.else8842 | |
if.then8839: ; preds = %for.end8835 | |
%idxprom8840 = sext i32 %inc8836 to i64 | |
%arrayidx8841 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @tok_stack, i64 0, i64 %idxprom8840 | |
%1335 = bitcast %union.rec** %arrayidx8841 to %struct.word_type** | |
store %struct.word_type* %1331, %struct.word_type** %1335, align 8, !tbaa !8 | |
br label %if.end8850 | |
if.else8842: ; preds = %for.end8835 | |
%ofpos8848 = getelementptr inbounds %struct.word_type, %struct.word_type* %1329, i64 0, i32 1, i32 0 | |
%call8849 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 2, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos8848) #5 | |
br label %if.end8850 | |
if.end8850: ; preds = %if.else8842, %if.then8839 | |
%1336 = load i32, i32* @otop, align 4, !tbaa !4 | |
%idxprom8851 = sext i32 %1336 to i64 | |
%arrayidx8852 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom8851 | |
%1337 = load %union.rec*, %union.rec** %arrayidx8852, align 8, !tbaa !8 | |
%otype8856 = getelementptr inbounds %union.rec, %union.rec* %1337, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1338 = load i8, i8* %otype8856, align 8, !tbaa !10 | |
switch i8 %1338, label %if.end8934.thread [ | |
i8 2, label %if.end8934 | |
i8 6, label %land.lhs.true8885 | |
i8 7, label %land.lhs.true8885 | |
] | |
land.lhs.true8885: ; preds = %if.end8850, %if.end8850 | |
%osucc8891 = getelementptr inbounds %union.rec, %union.rec* %1337, i64 0, i32 0, i32 0, i64 0, i32 1 | |
%1339 = load %union.rec*, %union.rec** %osucc8891, align 8, !tbaa !10 | |
%cmp8894.not = icmp eq %union.rec* %1339, %1337 | |
br i1 %cmp8894.not, label %if.end8934.thread, label %for.cond8907 | |
for.cond8907: ; preds = %for.cond8907, %land.lhs.true8885 | |
%.pn = phi %union.rec* [ %tmp.10, %for.cond8907 ], [ %1339, %land.lhs.true8885 ] | |
%tmp.10.in = getelementptr inbounds %union.rec, %union.rec* %.pn, i64 0, i32 0, i32 0, i64 1, i32 0 | |
%tmp.10 = load %union.rec*, %union.rec** %tmp.10.in, align 8, !tbaa !10 | |
%otype8911 = getelementptr inbounds %union.rec, %union.rec* %tmp.10, i64 0, i32 0, i32 1, i32 0, i32 0 | |
%1340 = load i8, i8* %otype8911, align 8, !tbaa !10 | |
switch i8 %1340, label %if.end8934.thread [ | |
i8 0, label %for.cond8907 | |
i8 2, label %if.end8934 | |
] | |
if.end8934.thread: ; preds = %for.cond8907, %land.lhs.true8885, %if.end8850 | |
%call893510214 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call893510214, %union.rec** %t, align 8, !tbaa !8 | |
br label %if.then8938 | |
if.end8934: ; preds = %for.cond8907, %if.end8850 | |
%.pn10298 = phi %union.rec* [ %1337, %if.end8850 ], [ %tmp.10, %for.cond8907 ] | |
%xsym.0.in = getelementptr inbounds %union.rec, %union.rec* %.pn10298, i64 0, i32 0, i32 5 | |
%xsym.0 = load %union.rec*, %union.rec** %xsym.0.in, align 8, !tbaa !10 | |
%call8935 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call8935, %union.rec** %t, align 8, !tbaa !8 | |
%cmp8936 = icmp eq %union.rec* %xsym.0, null | |
br i1 %cmp8936, label %if.then8938, label %if.else8943 | |
if.then8938: ; preds = %if.end8934, %if.end8934.thread | |
%ofpos8941 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %85, i64 0, i32 0 | |
%call8942 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 35, i8* noundef getelementptr inbounds ([29 x i8], [29 x i8]* @.str.53, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos8941, i8* noundef getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0)) #5 | |
br label %for.cond581.backedge | |
if.else8943: ; preds = %if.end8934 | |
%1341 = getelementptr inbounds %union.rec, %union.rec* %call8935, i64 0, i32 0, i32 1 | |
%otype8947 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %1341, i64 0, i32 0, i32 0 | |
%1342 = load i8, i8* %otype8947, align 8, !tbaa !10 | |
switch i8 %1342, label %if.then8959 [ | |
i8 104, label %if.else8964 | |
i8 102, label %if.else8964 | |
] | |
if.then8959: ; preds = %if.else8943 | |
%ofpos8962 = getelementptr %union.FIRST_UNION, %union.FIRST_UNION* %1341, i64 0, i32 0 | |
%call8963 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 36, i8* noundef getelementptr inbounds ([49 x i8], [49 x i8]* @.str.51, i64 0, i64 0), i32 noundef 2, %struct.FILE_POS* noundef nonnull %ofpos8962, i8* noundef getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0)) #5 | |
br label %for.cond581.backedge | |
if.else8964: ; preds = %if.else8943, %if.else8943 | |
call void @PushScope(%union.rec* noundef nonnull %xsym.0, i32 noundef 0, i32 noundef 1) #5 | |
%call8965 = call %union.rec* @Parse(%union.rec** noundef nonnull %t, %union.rec* noundef %encl, i32 noundef 0, i32 noundef 0) | |
store %union.rec* %call8965, %union.rec** @zz_hold, align 8, !tbaa !8 | |
%1343 = load i32, i32* @otop, align 4, !tbaa !4 | |
%inc9149 = add nsw i32 %1343, 1 | |
store i32 %inc9149, i32* @otop, align 4, !tbaa !4 | |
%cmp9150 = icmp slt i32 %1343, 99 | |
br i1 %cmp9150, label %if.then9152, label %if.else9155 | |
if.then9152: ; preds = %if.else8964 | |
%idxprom9153 = sext i32 %inc9149 to i64 | |
%arrayidx9154 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom9153 | |
store %union.rec* %call8965, %union.rec** %arrayidx9154, align 8, !tbaa !8 | |
br label %if.end9163 | |
if.else9155: ; preds = %if.else8964 | |
%idxprom915710294 = zext i32 %1343 to i64 | |
%arrayidx9158 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom915710294 | |
%1344 = bitcast %union.rec** %arrayidx9158 to %struct.word_type** | |
%1345 = load %struct.word_type*, %struct.word_type** %1344, align 8, !tbaa !8 | |
%ofpos9161 = getelementptr inbounds %struct.word_type, %struct.word_type* %1345, i64 0, i32 1, i32 0 | |
%call9162 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 6, i32 noundef 1, i8* noundef getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 noundef 1, %struct.FILE_POS* noundef nonnull %ofpos9161) #5 | |
br label %if.end9163 | |
if.end9163: ; preds = %if.else9155, %if.then9152 | |
call void @PopScope() #5 | |
%1346 = load %union.rec*, %union.rec** %t, align 8, !tbaa !8 | |
%cmp9164 = icmp eq %union.rec* %1346, null | |
br i1 %cmp9164, label %if.then9166, label %if.end9168 | |
if.then9166: ; preds = %if.end9163 | |
%call9167 = call %union.rec* @LexGetToken() #5 | |
store %union.rec* %call9167, %union.rec** %t, align 8, !tbaa !8 | |
br label %if.end9168 | |
if.end9168: ; preds = %if.then9166, %if.end9163 | |
%call9169 = call fastcc i32 @Reduce() | |
br label %for.cond581.backedge | |
sw.default: ; preds = %for.cond581 | |
%conv586 = zext i8 %86 to i32 | |
%1347 = load %struct.FILE_POS*, %struct.FILE_POS** @no_fpos, align 8, !tbaa !8 | |
%call9177 = call i8* @Image(i32 noundef %conv586) #5 | |
%call9178 = call i8* (i32, i32, i8*, i32, %struct.FILE_POS*, ...) @Error(i32 noundef 1, i32 noundef 3, i8* noundef getelementptr inbounds ([23 x i8], [23 x i8]* @.str.55, i64 0, i64 0), i32 noundef 0, %struct.FILE_POS* noundef %1347, i8* noundef getelementptr inbounds ([7 x i8], [7 x i8]* @.str.56, i64 0, i64 0), i8* noundef %call9177) #5 | |
br label %for.cond581.backedge | |
cleanup9179: ; preds = %if.then8827, %if.else8276, %if.else6355, %if.then6132, %if.end3720, %if.then3697, %if.end3638, %if.then3615, %if.else3107, %if.then2886, %if.else2371, %if.then2150, %if.else2084, %if.then1864, %if.then1070 | |
%.sink = phi %union.rec* [ %1334, %if.then8827 ], [ %563, %if.then3697 ], [ %549, %if.then3615 ], [ %422, %if.then2886 ], [ %316, %if.then2150 ], [ %259, %if.then1864 ], [ %175, %if.then1070 ], [ %914, %if.then6132 ], [ null, %if.else2084 ], [ null, %if.else2371 ], [ null, %if.else3107 ], [ null, %if.end3638 ], [ null, %if.end3720 ], [ null, %if.else6355 ], [ null, %if.else8276 ] | |
store %union.rec* %.sink, %union.rec** %token, align 8, !tbaa !8 | |
%1348 = load i32, i32* @otop, align 4, !tbaa !4 | |
%dec8828 = add nsw i32 %1348, -1 | |
store i32 %dec8828, i32* @otop, align 4, !tbaa !4 | |
%idxprom8829 = sext i32 %1348 to i64 | |
%arrayidx8830 = getelementptr inbounds [100 x %union.rec*], [100 x %union.rec*]* @obj_stack, i64 0, i64 %idxprom8829 | |
%retval.0 = load %union.rec*, %union.rec** %arrayidx8830, align 8, !tbaa !8 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %5) #5 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %3) #5 | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %2) #5 | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1) #5 | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %0) #5 | |
ret %union.rec* %retval.0 | |
} | |
; Function Attrs: nounwind uwtable | |
declare hidden fastcc i32 @Reduce() unnamed_addr #2 | |
declare %union.rec* @GetMemory(i32 noundef, %struct.FILE_POS* noundef) local_unnamed_addr #1 | |
declare %union.rec* @LexGetToken() local_unnamed_addr #1 | |
declare void @ReadDefinitions(%union.rec** noundef, %union.rec* noundef, i8 noundef zeroext) local_unnamed_addr #1 | |
declare i32 @ErrorSeen() local_unnamed_addr #1 | |
; Function Attrs: argmemonly mustprogress nofree nounwind readonly willreturn | |
declare i32 @strcmp(i8* nocapture noundef, i8* nocapture noundef) local_unnamed_addr #3 | |
declare %union.rec* @CrossExpand(%union.rec* noundef, %union.rec* noundef, %struct.STYLE* noundef, %union.rec** noundef, %union.rec** noundef) local_unnamed_addr #1 | |
; Function Attrs: nounwind uwtable | |
declare hidden fastcc void @HuntCommandOptions(%union.rec* noundef) unnamed_addr #2 | |
declare void @AttachEnv(%union.rec* noundef, %union.rec* noundef) local_unnamed_addr #1 | |
declare %union.rec* @SetEnv(%union.rec* noundef, %union.rec* noundef) local_unnamed_addr #1 | |
declare i8* @SymName(%union.rec* noundef) local_unnamed_addr #1 | |
declare void @ReadPrependDef(i32 noundef, %union.rec* noundef) local_unnamed_addr #1 | |
declare void @ReadDatabaseDef(i32 noundef, %union.rec* noundef) local_unnamed_addr #1 | |
declare %union.rec* @DbCreate(%union.rec* noundef) local_unnamed_addr #1 | |
declare %union.rec* @DbLoad(%union.rec* noundef, i32 noundef, i32 noundef, %union.rec* noundef, i32 noundef) local_unnamed_addr #1 | |
declare void @FlattenUses() local_unnamed_addr #1 | |
declare void @TransferInit(%union.rec* noundef) local_unnamed_addr #1 | |
declare void @TransferComponent(%union.rec* noundef) local_unnamed_addr #1 | |
declare %union.rec* @LexScanVerbatim(%struct._IO_FILE* noundef, i32 noundef, %struct.FILE_POS* noundef, i32 noundef) local_unnamed_addr #1 | |
; Function Attrs: nounwind uwtable | |
declare hidden fastcc %union.rec* @ParseEnvClosure(%union.rec* noundef, %union.rec* noundef) unnamed_addr #2 | |
declare i64 @LexNextTokenPos() local_unnamed_addr #1 | |
declare void @EnvReadInsert(i16 noundef zeroext, i32 noundef, %union.rec* noundef) local_unnamed_addr #1 | |
; Function Attrs: nofree nounwind | |
declare noundef i32 @__isoc99_sscanf(i8* nocapture noundef readonly, i8* nocapture noundef readonly, ...) local_unnamed_addr #4 | |
declare i32 @EnvReadRetrieve(i16 noundef zeroext, i32 noundef, %union.rec** noundef) local_unnamed_addr #1 | |
declare void @LexPush(i16 noundef zeroext, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1 | |
declare void @LexPop() local_unnamed_addr #1 | |
declare void @PopScope() local_unnamed_addr #1 | |
declare %union.rec* @CopyObject(%union.rec* noundef, %struct.FILE_POS* noundef) local_unnamed_addr #1 | |
declare void @SuppressVisible() local_unnamed_addr #1 | |
declare void @UnSuppressVisible() local_unnamed_addr #1 | |
declare void @InsertUses(%union.rec* noundef, %union.rec* noundef) local_unnamed_addr #1 | |
declare %union.rec* @ChildSymWithCode(%union.rec* noundef, i8 noundef zeroext) local_unnamed_addr #1 | |
declare %union.rec* @ChildSym(%union.rec* noundef, i32 noundef) local_unnamed_addr #1 | |
declare %union.rec* @TransferBegin(%union.rec* noundef) local_unnamed_addr #1 | |
declare %union.rec* @FilterCreate(i32 noundef, %union.rec* noundef, %struct.FILE_POS* noundef) local_unnamed_addr #1 | |
declare i8* @Image(i32 noundef) local_unnamed_addr #1 | |
attributes #0 = { argmemonly nofree nosync nounwind willreturn } | |
attributes #1 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #2 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #3 = { argmemonly mustprogress nofree nounwind readonly willreturn "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #4 = { nofree nounwind "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #5 = { nounwind } | |
attributes #6 = { nounwind readonly willreturn } | |
!llvm.module.flags = !{!0, !1, !2} | |
!llvm.ident = !{!3} | |
!0 = !{i32 1, !"wchar_size", i32 4} | |
!1 = !{i32 7, !"PIC Level", i32 2} | |
!2 = !{i32 7, !"uwtable", i32 2} | |
!3 = !{!"clang version 15.0.0"} | |
!4 = !{!5, !5, i64 0} | |
!5 = !{!"int", !6, i64 0} | |
!6 = !{!"omnipotent char", !7, i64 0} | |
!7 = !{!"Simple C/C++ TBAA"} | |
!8 = !{!9, !9, i64 0} | |
!9 = !{!"any pointer", !6, i64 0} | |
!10 = !{!6, !6, i64 0} | |
!11 = distinct !{!11, !12} | |
!12 = !{!"llvm.loop.mustprogress"} | |
!13 = distinct !{!13, !12} | |
!14 = distinct !{!14, !12} | |
!15 = distinct !{!15, !12} | |
!16 = distinct !{!16, !12} | |
!17 = distinct !{!17, !12} | |
!18 = distinct !{!18, !12} | |
!19 = distinct !{!19, !12} | |
!20 = distinct !{!20, !12} | |
!21 = distinct !{!21, !12} | |
!22 = distinct !{!22, !12} | |
!23 = distinct !{!23, !12} | |
!24 = distinct !{!24, !12} | |
!25 = distinct !{!25, !12} | |
!26 = distinct !{!26, !12} | |
!27 = distinct !{!27, !12} | |
!28 = distinct !{!28, !12} | |
!29 = distinct !{!29, !12} | |
!30 = distinct !{!30, !12} | |
!31 = distinct !{!31, !12} | |
!32 = distinct !{!32, !12} | |
!33 = distinct !{!33, !12} | |
!34 = distinct !{!34, !12} | |
!35 = distinct !{!35, !12} | |
!36 = distinct !{!36, !12} | |
!37 = distinct !{!37, !12} | |
!38 = distinct !{!38, !12} | |
!39 = distinct !{!39, !12} | |
!40 = distinct !{!40, !12} | |
!41 = distinct !{!41, !12} | |
!42 = distinct !{!42, !12} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment