From 08d4ec0b20fd8a6226bb3213c1f8f5ebd3ea2f89 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 13 Jul 2009 22:30:31 +0000 Subject: [PATCH] Add testcases for PR4538, PR4537, and PR4534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75533 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../avoid-infinite-recursion-0.ll | 30 + .../avoid-infinite-recursion-1.ll | 354 + .../PowerPC/tango.net.ftp.FtpClient.ll | 17396 ++++++++++++++++ 3 files changed, 17780 insertions(+) create mode 100644 test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll create mode 100644 test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll create mode 100644 test/CodeGen/PowerPC/tango.net.ftp.FtpClient.ll diff --git a/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll b/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll new file mode 100644 index 00000000000..3fe033676c6 --- /dev/null +++ b/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll @@ -0,0 +1,30 @@ +; RUN: llvm-as < %s | opt -analyze -scalar-evolution -disable-output +; PR4537 + +; ModuleID = 'b.bc' +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +target triple = "x86_64-unknown-linux-gnu" + +define i32 @test() { +entry: + %0 = load i32** undef, align 8 ; [#uses=1] + %1 = ptrtoint i32* %0 to i64 ; [#uses=1] + %2 = sub i64 undef, %1 ; [#uses=1] + %3 = lshr i64 %2, 3 ; [#uses=1] + %4 = trunc i64 %3 to i32 ; [#uses=2] + br i1 undef, label %bb10, label %bb4.i + +bb4.i: ; preds = %bb4.i, %entry + %i.0.i6 = phi i32 [ %8, %bb4.i ], [ 0, %entry ] ; [#uses=2] + %5 = sub i32 %4, %i.0.i6 ; [#uses=1] + %6 = sext i32 %5 to i64 ; [#uses=1] + %7 = udiv i64 undef, %6 ; [#uses=1] + %8 = add i32 %i.0.i6, 1 ; [#uses=2] + %phitmp = icmp eq i64 %7, 0 ; [#uses=1] + %.not.i = icmp sge i32 %8, %4 ; [#uses=1] + %or.cond.i = or i1 %phitmp, %.not.i ; [#uses=1] + br i1 %or.cond.i, label %bb10, label %bb4.i + +bb10: ; preds = %bb4.i, %entry + unreachable +} diff --git a/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll b/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll new file mode 100644 index 00000000000..121e0acd6ae --- /dev/null +++ b/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll @@ -0,0 +1,354 @@ +; RUN: llvm-as < %s | opt -iv-users +; PR4538 + +; ModuleID = 'bugpoint-reduced-simplified.bc' +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +target triple = "x86_64-unknown-freebsd8.0" +module asm ".ident\09\22$FreeBSD: head/sys/kern/vfs_subr.c 195285 2009-07-02 14:19:33Z jamie $\22" +module asm ".section set_pcpu, \22aw\22, @progbits" +module asm ".previous" + type <{ [40 x i8] }> ; type %0 + type <{ %struct.vm_object*, %struct.vm_object** }> ; type %1 + type <{ %struct.vm_object* }> ; type %2 + type <{ %struct.vm_page*, %struct.vm_page** }> ; type %3 + type <{ %struct.pv_entry*, %struct.pv_entry** }> ; type %4 + type <{ %struct.vm_reserv* }> ; type %5 + type <{ %struct.bufobj*, %struct.bufobj** }> ; type %6 + type <{ %struct.proc*, %struct.proc** }> ; type %7 + type <{ %struct.thread*, %struct.thread** }> ; type %8 + type <{ %struct.prison*, %struct.prison** }> ; type %9 + type <{ %struct.prison* }> ; type %10 + type <{ %struct.task* }> ; type %11 + type <{ %struct.osd*, %struct.osd** }> ; type %12 + type <{ %struct.proc* }> ; type %13 + type <{ %struct.ksiginfo*, %struct.ksiginfo** }> ; type %14 + type <{ %struct.pv_chunk*, %struct.pv_chunk** }> ; type %15 + type <{ %struct.pgrp*, %struct.pgrp** }> ; type %16 + type <{ %struct.knote*, %struct.knote** }> ; type %17 + type <{ %struct.ktr_request*, %struct.ktr_request** }> ; type %18 + type <{ %struct.mqueue_notifier* }> ; type %19 + type <{ %struct.turnstile* }> ; type %20 + type <{ %struct.namecache* }> ; type %21 + type <{ %struct.namecache*, %struct.namecache** }> ; type %22 + type <{ %struct.lockf*, %struct.lockf** }> ; type %23 + type <{ %struct.lockf_entry*, %struct.lockf_entry** }> ; type %24 + type <{ %struct.lockf_edge*, %struct.lockf_edge** }> ; type %25 + %struct.__siginfo = type <{ i32, i32, i32, i32, i32, i32, i8*, %union.sigval, %0 }> + %struct.__sigset = type <{ [4 x i32] }> + %struct.acl = type <{ i32, i32, [4 x i32], [254 x %struct.acl_entry] }> + %struct.acl_entry = type <{ i32, i32, i32, i16, i16 }> + %struct.au_mask = type <{ i32, i32 }> + %struct.au_tid_addr = type <{ i32, i32, [4 x i32] }> + %struct.auditinfo_addr = type <{ i32, %struct.au_mask, %struct.au_tid_addr, i32, i64 }> + %struct.bintime = type <{ i64, i64 }> + %struct.buf = type <{ %struct.bufobj*, i64, i8*, i8*, i32, i8, i8, i8, i8, i64, i64, void (%struct.buf*)*, i64, i64, %struct.buflists, %struct.buf*, %struct.buf*, i32, i8, i8, i8, i8, %struct.buflists, i16, i8, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, %struct.lock, i64, i64, i8*, i32, i8, i8, i8, i8, i64, %struct.vnode*, i32, i32, %struct.ucred*, %struct.ucred*, i8*, %union.pager_info, i8, i8, i8, i8, %union.anon, [32 x %struct.vm_page*], i32, i8, i8, i8, i8, %struct.workhead, i8*, i8*, i8*, i32, i8, i8, i8, i8 }> + %struct.buf_ops = type <{ i8*, i32 (%struct.buf*)*, void (%struct.bufobj*, %struct.buf*)*, i32 (%struct.bufobj*, i32)*, void (%struct.bufobj*, %struct.buf*)* }> + %struct.buflists = type <{ %struct.buf*, %struct.buf** }> + %struct.bufobj = type <{ %struct.mtx, %struct.bufv, %struct.bufv, i64, i32, i8, i8, i8, i8, %struct.buf_ops*, i32, i8, i8, i8, i8, %struct.vm_object*, %6, i8*, %struct.vnode* }> + %struct.bufv = type <{ %struct.buflists, %struct.buf*, i32, i8, i8, i8, i8 }> + %struct.callout = type <{ %union.anon, i32, i8, i8, i8, i8, i8*, void (i8*)*, %struct.lock_object*, i32, i32 }> + %struct.cdev_privdata = type opaque + %struct.cluster_save = type <{ i64, i64, i8*, i32, i8, i8, i8, i8, %struct.buf** }> + %struct.componentname = type <{ i64, i64, %struct.thread*, %struct.ucred*, i32, i8, i8, i8, i8, i8*, i8*, i64, i64 }> + %struct.cpuset = type opaque + %struct.cv = type <{ i8*, i32, i8, i8, i8, i8 }> + %struct.fid = type <{ i16, i16, [16 x i8] }> + %struct.file = type <{ i8*, %struct.fileops*, %struct.ucred*, %struct.vnode*, i16, i16, i32, i32, i32, i64, %struct.cdev_privdata*, i64, i8* }> + %struct.filedesc = type opaque + %struct.filedesc_to_leader = type opaque + %struct.fileops = type <{ i32 (%struct.file*, %struct.uio*, %struct.ucred*, i32, %struct.thread*)*, i32 (%struct.file*, %struct.uio*, %struct.ucred*, i32, %struct.thread*)*, i32 (%struct.file*, i64, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, i64, i8*, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, i32, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, %struct.knote*)*, i32 (%struct.file*, %struct.stat*, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, %struct.thread*)*, i32, i8, i8, i8, i8 }> + %struct.filterops = type <{ i32, i8, i8, i8, i8, i32 (%struct.knote*)*, void (%struct.knote*)*, i32 (%struct.knote*, i64)* }> + %struct.flock = type <{ i64, i64, i32, i16, i16, i32, i8, i8, i8, i8 }> + %struct.freelst = type <{ %struct.vnode*, %struct.vnode** }> + %struct.fsid = type <{ [2 x i32] }> + %struct.in6_addr = type opaque + %struct.in_addr = type opaque + %struct.inode = type opaque + %struct.iovec = type <{ i8*, i64 }> + %struct.itimers = type opaque + %struct.itimerval = type <{ %struct.bintime, %struct.bintime }> + %struct.kaioinfo = type opaque + %struct.kaudit_record = type opaque + %struct.kdtrace_proc = type opaque + %struct.kdtrace_thread = type opaque + %struct.kevent = type <{ i64, i16, i16, i32, i64, i8* }> + %struct.klist = type <{ %struct.knote* }> + %struct.knlist = type <{ %struct.klist, void (i8*)*, void (i8*)*, void (i8*)*, void (i8*)*, i8* }> + %struct.knote = type <{ %struct.klist, %struct.klist, %struct.knlist*, %17, %struct.kqueue*, %struct.kevent, i32, i32, i64, %union.sigval, %struct.filterops*, i8* }> + %struct.kqueue = type opaque + %struct.ksiginfo = type <{ %14, %struct.__siginfo, i32, i8, i8, i8, i8, %struct.sigqueue* }> + %struct.ktr_request = type opaque + %struct.label = type opaque + %struct.lock = type <{ %struct.lock_object, i64, i32, i32 }> + %struct.lock_list_entry = type opaque + %struct.lock_object = type <{ i8*, i32, i32, %struct.witness* }> + %struct.lock_owner = type opaque + %struct.lock_profile_object = type opaque + %struct.lockf = type <{ %23, %struct.mtx, %struct.lockf_entry_list, %struct.lockf_entry_list, i32, i8, i8, i8, i8 }> + %struct.lockf_edge = type <{ %25, %25, %struct.lockf_entry*, %struct.lockf_entry* }> + %struct.lockf_edge_list = type <{ %struct.lockf_edge* }> + %struct.lockf_entry = type <{ i16, i16, i8, i8, i8, i8, i64, i64, %struct.lock_owner*, %struct.vnode*, %struct.inode*, %struct.task*, %24, %struct.lockf_edge_list, %struct.lockf_edge_list, i32, i8, i8, i8, i8 }> + %struct.lockf_entry_list = type <{ %struct.lockf_entry* }> + %struct.lpohead = type <{ %struct.lock_profile_object* }> + %struct.md_page = type <{ %4 }> + %struct.mdproc = type <{ %struct.cv*, %struct.system_segment_descriptor }> + %struct.mdthread = type <{ i32, i8, i8, i8, i8, i64 }> + %struct.mntarg = type opaque + %struct.mntlist = type <{ %struct.mount*, %struct.mount** }> + %struct.mount = type <{ %struct.mtx, i32, i8, i8, i8, i8, %struct.mntlist, %struct.vfsops*, %struct.vfsconf*, %struct.vnode*, %struct.vnode*, i32, i8, i8, i8, i8, %struct.freelst, i32, i32, i32, i32, i32, i32, %struct.vfsoptlist*, %struct.vfsoptlist*, i32, i8, i8, i8, i8, %struct.statfs, %struct.ucred*, i8*, i64, i32, i8, i8, i8, i8, %struct.netexport*, %struct.label*, i32, i32, i32, i32, %struct.thread*, i8*, %struct.lock }> + %struct.mqueue_notifier = type opaque + %struct.mtx = type <{ %struct.lock_object, i64 }> + %struct.namecache = type opaque + %struct.netexport = type opaque + %struct.nlminfo = type opaque + %struct.osd = type <{ i32, i8, i8, i8, i8, i8**, %12 }> + %struct.p_sched = type opaque + %struct.pargs = type <{ i32, i32, [1 x i8], i8, i8, i8 }> + %struct.pcb = type opaque + %struct.pgrp = type <{ %16, %13, %struct.session*, %struct.sigiolst, i32, i32, %struct.mtx }> + %struct.plimit = type opaque + %struct.pmap = type <{ %struct.mtx, i64*, %15, i32, i8, i8, i8, i8, %struct.bintime, %struct.vm_page* }> + %struct.prison = type <{ %9, i32, i32, i32, i32, %10, %9, %struct.prison*, %struct.mtx, %struct.task, %struct.osd, %struct.cpuset*, %struct.vnet*, %struct.vnode*, i32, i32, %struct.in_addr*, %struct.in6_addr*, [4 x i8*], i32, i32, i32, i32, i32, [5 x i32], i64, [256 x i8], [1024 x i8], [256 x i8], [256 x i8], [64 x i8] }> + %struct.proc = type <{ %7, %8, %struct.mtx, %struct.ucred*, %struct.filedesc*, %struct.filedesc_to_leader*, %struct.pstats*, %struct.plimit*, %struct.callout, %struct.sigacts*, i32, i32, i32, i8, i8, i8, i8, %7, %7, %struct.proc*, %7, %13, %struct.mtx, %struct.ksiginfo*, %struct.sigqueue, i32, i8, i8, i8, i8, %struct.vmspace*, i32, i8, i8, i8, i8, %struct.itimerval, %struct.rusage, %struct.rusage_ext, %struct.rusage_ext, i32, i32, i32, i8, i8, i8, i8, %struct.vnode*, %struct.ucred*, %struct.vnode*, i32, i8, i8, i8, i8, %struct.sigiolst, i32, i32, i64, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, %struct.nlminfo*, %struct.kaioinfo*, %struct.thread*, i32, i8, i8, i8, i8, %struct.thread*, i32, i32, %struct.itimers*, i32, i32, [20 x i8], i8, i8, i8, i8, %struct.pgrp*, %struct.sysentvec*, %struct.pargs*, i64, i8, i8, i8, i8, i32, i16, i8, i8, i8, i8, i8, i8, %struct.knlist, i32, i8, i8, i8, i8, %struct.mdproc, %struct.callout, i16, i8, i8, i8, i8, i8, i8, %struct.proc*, %struct.proc*, i8*, %struct.label*, %struct.p_sched*, %18, %19, %struct.kdtrace_proc*, %struct.cv }> + %struct.pstats = type opaque + %struct.pv_chunk = type <{ %struct.pmap*, %15, [3 x i64], [2 x i64], [168 x %struct.pv_entry] }> + %struct.pv_entry = type <{ i64, %4 }> + %struct.rusage = type <{ %struct.bintime, %struct.bintime, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }> + %struct.rusage_ext = type <{ i64, i64, i64, i64, i64, i64, i64 }> + %struct.selfd = type opaque + %struct.selfdlist = type <{ %struct.selfd*, %struct.selfd** }> + %struct.selinfo = type <{ %struct.selfdlist, %struct.knlist, %struct.mtx* }> + %struct.seltd = type opaque + %struct.session = type <{ i32, i8, i8, i8, i8, %struct.proc*, %struct.vnode*, %struct.tty*, i32, [24 x i8], i8, i8, i8, i8, %struct.mtx }> + %struct.shmmap_state = type opaque + %struct.sigacts = type <{ [128 x void (i32)*], [128 x %struct.__sigset], %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, i32, i32, %struct.mtx }> + %struct.sigaltstack = type <{ i8*, i64, i32, i8, i8, i8, i8 }> + %struct.sigio = type <{ %union.sigval, %struct.sigiolst, %struct.sigio**, %struct.ucred*, i32, i8, i8, i8, i8 }> + %struct.sigiolst = type <{ %struct.sigio* }> + %struct.sigqueue = type <{ %struct.__sigset, %struct.__sigset, %14, %struct.proc*, i32, i8, i8, i8, i8 }> + %struct.sleepqueue = type opaque + %struct.sockaddr = type opaque + %struct.stat = type <{ i32, i32, i16, i16, i32, i32, i32, %struct.bintime, %struct.bintime, %struct.bintime, i64, i64, i32, i32, i32, i32, %struct.bintime }> + %struct.statfs = type <{ i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, [10 x i64], i32, i32, %struct.fsid, [80 x i8], [16 x i8], [88 x i8], [88 x i8] }> + %struct.sysctl_req = type <{ %struct.thread*, i32, i8, i8, i8, i8, i8*, i64, i64, i32 (%struct.sysctl_req*, i8*, i64)*, i8*, i64, i64, i32 (%struct.sysctl_req*, i8*, i64)*, i64, i32, i8, i8, i8, i8 }> + %struct.sysentvec = type opaque + %struct.system_segment_descriptor = type <{ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }> + %struct.task = type <{ %11, i16, i16, i8, i8, i8, i8, void (i8*, i32)*, i8* }> + %struct.td_sched = type opaque + %struct.thread = type <{ %struct.mtx*, %struct.proc*, %8, %8, %8, %8, %struct.cpuset*, %struct.seltd*, %struct.sleepqueue*, %struct.turnstile*, %struct.umtx_q*, i32, i8, i8, i8, i8, %struct.sigqueue, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8*, i8*, i8, i8, i8, i8, i16, i16, i16, i8, i8, i8, i8, i8, i8, %struct.turnstile*, i8*, %20, %struct.lock_list_entry*, i32, i32, %struct.ucred*, i32, i32, %struct.rusage, i64, i64, i32, i32, i32, i32, i32, %struct.__sigset, %struct.__sigset, i32, %struct.sigaltstack, i32, i8, i8, i8, i8, i64, i32, [20 x i8], %struct.file*, i32, i32, %struct.osd, i8, i8, i8, i8, i8, i8, i8, i8, %struct.pcb*, i32, i8, i8, i8, i8, [2 x i64], %struct.callout, %struct.trapframe*, %struct.vm_object*, i64, i32, i8, i8, i8, i8, %struct.vm_object*, i64, i32, i32, %struct.mdthread, %struct.td_sched*, %struct.kaudit_record*, i32, i8, i8, i8, i8, [2 x %struct.lpohead], %struct.kdtrace_thread*, i32, i8, i8, i8, i8, %struct.vnet*, i8* }> + %struct.trapframe = type <{ i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i16, i16, i64, i32, i16, i16, i64, i64, i64, i64, i64, i64 }> + %struct.tty = type opaque + %struct.turnstile = type opaque + %struct.ucred = type <{ i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, %struct.uidinfo*, %struct.uidinfo*, %struct.prison*, %struct.vimage*, i32, i8, i8, i8, i8, [2 x i8*], %struct.label*, %struct.auditinfo_addr, i32*, i32, i8, i8, i8, i8 }> + %struct.uidinfo = type opaque + %struct.uio = type <{ %struct.iovec*, i32, i8, i8, i8, i8, i64, i64, i32, i32, %struct.thread* }> + %struct.umtx_q = type opaque + %struct.vattr = type <{ i32, i16, i16, i32, i32, i32, i8, i8, i8, i8, i64, i64, i64, %struct.bintime, %struct.bintime, %struct.bintime, %struct.bintime, i64, i64, i32, i8, i8, i8, i8, i64, i64, i32, i8, i8, i8, i8, i64 }> + %struct.vfsconf = type <{ i32, [16 x i8], i8, i8, i8, i8, %struct.vfsops*, i32, i32, i32, i8, i8, i8, i8, %struct.vfsoptdecl*, %struct.vfsconfhead }> + %struct.vfsconfhead = type <{ %struct.vfsconf*, %struct.vfsconf** }> + %struct.vfsops = type <{ i32 (%struct.mount*)*, i32 (%struct.mntarg*, i8*, i32)*, i32 (%struct.mount*, i32)*, i32 (%struct.mount*, i32, %struct.vnode**)*, i32 (%struct.mount*, i32, i32, i8*)*, i32 (%struct.mount*, %struct.statfs*)*, i32 (%struct.mount*, i32)*, i32 (%struct.mount*, i32, i32, %struct.vnode**)*, i32 (%struct.mount*, %struct.fid*, %struct.vnode**)*, i32 (%struct.mount*, %struct.sockaddr*, i32*, %struct.ucred**, i32*, i32**)*, i32 (%struct.vfsconf*)*, i32 (%struct.vfsconf*)*, i32 (%struct.mount*, i32, %struct.vnode*, i32, i8*)*, i32 (%struct.mount*, i32, %struct.sysctl_req*)*, void (%struct.mount*)* }> + %struct.vfsopt = type <{ %struct.vfsoptlist, i8*, i8*, i32, i32, i32, i8, i8, i8, i8 }> + %struct.vfsoptdecl = type opaque + %struct.vfsoptlist = type <{ %struct.vfsopt*, %struct.vfsopt** }> + %struct.vimage = type opaque + %struct.vm_map = type <{ %struct.vm_map_entry, %struct.mtx, %struct.mtx, i32, i8, i8, i8, i8, i64, i32, i8, i8, i8, i8, %struct.vm_map_entry*, %struct.pmap*, %struct.vm_map_entry* }> + %struct.vm_map_entry = type <{ %struct.vm_map_entry*, %struct.vm_map_entry*, %struct.vm_map_entry*, %struct.vm_map_entry*, i64, i64, i64, i64, i64, %union.sigval, i64, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i64, %struct.uidinfo* }> + %struct.vm_object = type <{ %struct.mtx, %1, %2, %1, %3, %struct.vm_page*, i64, i32, i32, i32, i8, i8, i16, i16, i16, i32, %struct.vm_object*, i64, %1, %5, %struct.vm_page*, i8*, %union.anon, %struct.uidinfo*, i64 }> + %struct.vm_page = type <{ %3, %3, %struct.vm_page*, %struct.vm_page*, %struct.vm_object*, i64, i64, %struct.md_page, i8, i8, i16, i8, i8, i16, i32, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8 }> + %struct.vm_reserv = type opaque + %struct.vmspace = type <{ %struct.vm_map, %struct.shmmap_state*, i64, i64, i64, i64, i8*, i8*, i8*, i32, i8, i8, i8, i8, %struct.pmap }> + %struct.vnet = type opaque + %struct.vnode = type <{ i32, i8, i8, i8, i8, i8*, %struct.vop_vector*, i8*, %struct.mount*, %struct.freelst, %union.sigval, %struct.freelst, i32, i8, i8, i8, i8, %21, %22, %struct.namecache*, i64, i64, i64, i32, i8, i8, i8, i8, %struct.lock, %struct.mtx, %struct.lock*, i32, i32, i64, i64, i32, i8, i8, i8, i8, %struct.freelst, %struct.bufobj, %struct.vpollinfo*, %struct.label*, %struct.lockf* }> + %struct.vnodeop_desc = type <{ i8*, i32, i8, i8, i8, i8, i32 (%struct.vop_generic_args*)*, i32*, i32, i32, i32, i32 }> + %struct.vop_access_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.ucred*, %struct.thread* }> + %struct.vop_aclcheck_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.acl*, %struct.ucred*, %struct.thread* }> + %struct.vop_advlock_args = type <{ %struct.vop_generic_args, %struct.vnode*, i8*, i32, i8, i8, i8, i8, %struct.flock*, i32, i8, i8, i8, i8 }> + %struct.vop_advlockasync_args = type <{ %struct.vop_generic_args, %struct.vnode*, i8*, i32, i8, i8, i8, i8, %struct.flock*, i32, i8, i8, i8, i8, %struct.task*, i8** }> + %struct.vop_bmap_args = type <{ %struct.vop_generic_args, %struct.vnode*, i64, %struct.bufobj**, i64*, i32*, i32* }> + %struct.vop_cachedlookup_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.componentname* }> + %struct.vop_create_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.componentname*, %struct.vattr* }> + %struct.vop_deleteextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, %struct.ucred*, %struct.thread* }> + %struct.vop_fsync_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.thread* }> + %struct.vop_generic_args = type <{ %struct.vnodeop_desc* }> + %struct.vop_getattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vattr*, %struct.ucred* }> + %struct.vop_getextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, %struct.uio*, i64*, %struct.ucred*, %struct.thread* }> + %struct.vop_getpages_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vm_page**, i32, i32, i64 }> + %struct.vop_getwritemount_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.mount** }> + %struct.vop_inactive_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.thread* }> + %struct.vop_ioctl_args = type <{ %struct.vop_generic_args, %struct.vnode*, i64, i8*, i32, i8, i8, i8, i8, %struct.ucred*, %struct.thread* }> + %struct.vop_islocked_args = type <{ %struct.vop_generic_args, %struct.vnode* }> + %struct.vop_kqfilter_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.knote* }> + %struct.vop_link_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode*, %struct.componentname* }> + %struct.vop_listextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.uio*, i64*, %struct.ucred*, %struct.thread* }> + %struct.vop_lock1_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, i32, i8, i8, i8, i8 }> + %struct.vop_open_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.ucred*, %struct.thread*, %struct.file* }> + %struct.vop_openextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.ucred*, %struct.thread* }> + %struct.vop_pathconf_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i64* }> + %struct.vop_putpages_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vm_page**, i32, i32, i32*, i64 }> + %struct.vop_read_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.uio*, i32, i8, i8, i8, i8, %struct.ucred* }> + %struct.vop_readdir_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.uio*, %struct.ucred*, i32*, i32*, i64** }> + %struct.vop_readlink_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.uio*, %struct.ucred* }> + %struct.vop_reallocblks_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.cluster_save* }> + %struct.vop_rename_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode*, %struct.componentname*, %struct.vnode*, %struct.vnode*, %struct.componentname* }> + %struct.vop_revoke_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8 }> + %struct.vop_setextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, %struct.uio*, %struct.ucred*, %struct.thread* }> + %struct.vop_setlabel_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.label*, %struct.ucred*, %struct.thread* }> + %struct.vop_strategy_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.buf* }> + %struct.vop_symlink_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.componentname*, %struct.vattr*, i8* }> + %struct.vop_vector = type <{ %struct.vop_vector*, i32 (%struct.vop_generic_args*)*, i32 (%struct.vop_islocked_args*)*, i32 (%struct.vop_cachedlookup_args*)*, i32 (%struct.vop_cachedlookup_args*)*, i32 (%struct.vop_create_args*)*, i32 (%struct.vop_whiteout_args*)*, i32 (%struct.vop_create_args*)*, i32 (%struct.vop_open_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_getattr_args*)*, i32 (%struct.vop_getattr_args*)*, i32 (%struct.vop_islocked_args*)*, i32 (%struct.vop_read_args*)*, i32 (%struct.vop_read_args*)*, i32 (%struct.vop_ioctl_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_kqfilter_args*)*, i32 (%struct.vop_revoke_args*)*, i32 (%struct.vop_fsync_args*)*, i32 (%struct.vop_link_args*)*, i32 (%struct.vop_link_args*)*, i32 (%struct.vop_rename_args*)*, i32 (%struct.vop_create_args*)*, i32 (%struct.vop_link_args*)*, i32 (%struct.vop_symlink_args*)*, i32 (%struct.vop_readdir_args*)*, i32 (%struct.vop_readlink_args*)*, i32 (%struct.vop_inactive_args*)*, i32 (%struct.vop_inactive_args*)*, i32 (%struct.vop_lock1_args*)*, i32 (%struct.vop_revoke_args*)*, i32 (%struct.vop_bmap_args*)*, i32 (%struct.vop_strategy_args*)*, i32 (%struct.vop_getwritemount_args*)*, i32 (%struct.vop_islocked_args*)*, i32 (%struct.vop_pathconf_args*)*, i32 (%struct.vop_advlock_args*)*, i32 (%struct.vop_advlockasync_args*)*, i32 (%struct.vop_reallocblks_args*)*, i32 (%struct.vop_getpages_args*)*, i32 (%struct.vop_putpages_args*)*, i32 (%struct.vop_aclcheck_args*)*, i32 (%struct.vop_aclcheck_args*)*, i32 (%struct.vop_aclcheck_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_getextattr_args*)*, i32 (%struct.vop_listextattr_args*)*, i32 (%struct.vop_openextattr_args*)*, i32 (%struct.vop_deleteextattr_args*)*, i32 (%struct.vop_setextattr_args*)*, i32 (%struct.vop_setlabel_args*)*, i32 (%struct.vop_vptofh_args*)*, i32 (%struct.vop_vptocnp_args*)* }> + %struct.vop_vptocnp_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.ucred*, i8*, i32* }> + %struct.vop_vptofh_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.fid* }> + %struct.vop_whiteout_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.componentname*, i32, i8, i8, i8, i8 }> + %struct.vpollinfo = type <{ %struct.mtx, %struct.selinfo, i16, i16, i8, i8, i8, i8 }> + %struct.witness = type opaque + %struct.workhead = type <{ %struct.worklist* }> + %struct.worklist = type opaque + %union.anon = type <{ [16 x i8] }> + %union.pager_info = type <{ [4 x i8] }> + %union.sigval = type <{ [8 x i8] }> + +define i32 @vlrureclaim(%struct.mount* %mp) nounwind { +entry: + br i1 undef, label %if.then11, label %do.end + +if.then11: ; preds = %entry + br label %do.end + +do.end: ; preds = %if.then11, %entry + br label %while.cond.outer + +while.cond.outer: ; preds = %while.cond.outer.backedge, %do.end + %count.0.ph = phi i32 [ undef, %do.end ], [ undef, %while.cond.outer.backedge ] ; [#uses=1] + br label %while.cond + +while.cond: ; preds = %next_iter, %while.cond.outer + %count.0 = phi i32 [ %dec, %next_iter ], [ %count.0.ph, %while.cond.outer ] ; [#uses=2] + %cmp21 = icmp eq i32 %count.0, 0 ; [#uses=1] + br i1 %cmp21, label %do.body288.loopexit4, label %while.body + +while.body: ; preds = %while.cond + br label %while.cond27 + +while.cond27: ; preds = %while.body36, %while.body + br i1 undef, label %do.body288.loopexit, label %land.rhs + +land.rhs: ; preds = %while.cond27 + br i1 undef, label %while.body36, label %while.end + +while.body36: ; preds = %land.rhs + br label %while.cond27 + +while.end: ; preds = %land.rhs + br i1 undef, label %do.body288.loopexit4, label %do.body46 + +do.body46: ; preds = %while.end + br i1 undef, label %if.else64, label %if.then53 + +if.then53: ; preds = %do.body46 + br label %if.end72 + +if.else64: ; preds = %do.body46 + br label %if.end72 + +if.end72: ; preds = %if.else64, %if.then53 + %dec = add i32 %count.0, -1 ; [#uses=2] + br i1 undef, label %next_iter, label %if.end111 + +if.end111: ; preds = %if.end72 + br i1 undef, label %lor.lhs.false, label %do.body145 + +lor.lhs.false: ; preds = %if.end111 + br i1 undef, label %lor.lhs.false122, label %do.body145 + +lor.lhs.false122: ; preds = %lor.lhs.false + br i1 undef, label %lor.lhs.false128, label %do.body145 + +lor.lhs.false128: ; preds = %lor.lhs.false122 + br i1 undef, label %do.body162, label %land.lhs.true + +land.lhs.true: ; preds = %lor.lhs.false128 + br i1 undef, label %do.body145, label %do.body162 + +do.body145: ; preds = %land.lhs.true, %lor.lhs.false122, %lor.lhs.false, %if.end111 + br i1 undef, label %if.then156, label %next_iter + +if.then156: ; preds = %do.body145 + br label %next_iter + +do.body162: ; preds = %land.lhs.true, %lor.lhs.false128 + br i1 undef, label %if.then173, label %do.end177 + +if.then173: ; preds = %do.body162 + br label %do.end177 + +do.end177: ; preds = %if.then173, %do.body162 + br i1 undef, label %do.body185, label %if.then182 + +if.then182: ; preds = %do.end177 + br label %next_iter_mntunlocked + +do.body185: ; preds = %do.end177 + br i1 undef, label %if.then196, label %do.end202 + +if.then196: ; preds = %do.body185 + br label %do.end202 + +do.end202: ; preds = %if.then196, %do.body185 + br i1 undef, label %lor.lhs.false207, label %if.then231 + +lor.lhs.false207: ; preds = %do.end202 + br i1 undef, label %lor.lhs.false214, label %if.then231 + +lor.lhs.false214: ; preds = %lor.lhs.false207 + br i1 undef, label %do.end236, label %land.lhs.true221 + +land.lhs.true221: ; preds = %lor.lhs.false214 + br i1 undef, label %if.then231, label %do.end236 + +if.then231: ; preds = %land.lhs.true221, %lor.lhs.false207, %do.end202 + br label %next_iter_mntunlocked + +do.end236: ; preds = %land.lhs.true221, %lor.lhs.false214 + br label %next_iter_mntunlocked + +next_iter_mntunlocked: ; preds = %do.end236, %if.then231, %if.then182 + br i1 undef, label %yield, label %do.body269 + +next_iter: ; preds = %if.then156, %do.body145, %if.end72 + %rem2482 = and i32 %dec, 255 ; [#uses=1] + %cmp249 = icmp eq i32 %rem2482, 0 ; [#uses=1] + br i1 %cmp249, label %do.body253, label %while.cond + +do.body253: ; preds = %next_iter + br i1 undef, label %if.then264, label %yield + +if.then264: ; preds = %do.body253 + br label %yield + +yield: ; preds = %if.then264, %do.body253, %next_iter_mntunlocked + br label %do.body269 + +do.body269: ; preds = %yield, %next_iter_mntunlocked + br i1 undef, label %if.then280, label %while.cond.outer.backedge + +if.then280: ; preds = %do.body269 + br label %while.cond.outer.backedge + +while.cond.outer.backedge: ; preds = %if.then280, %do.body269 + br label %while.cond.outer + +do.body288.loopexit: ; preds = %while.cond27 + br label %do.body288 + +do.body288.loopexit4: ; preds = %while.end, %while.cond + br label %do.body288 + +do.body288: ; preds = %do.body288.loopexit4, %do.body288.loopexit + br i1 undef, label %if.then299, label %do.end303 + +if.then299: ; preds = %do.body288 + br label %do.end303 + +do.end303: ; preds = %if.then299, %do.body288 + ret i32 undef +} diff --git a/test/CodeGen/PowerPC/tango.net.ftp.FtpClient.ll b/test/CodeGen/PowerPC/tango.net.ftp.FtpClient.ll new file mode 100644 index 00000000000..ba0c452948a --- /dev/null +++ b/test/CodeGen/PowerPC/tango.net.ftp.FtpClient.ll @@ -0,0 +1,17396 @@ +; RUN: llvm-as < %s | llc +; PR4534 + +; ModuleID = 'tango.net.ftp.FtpClient.bc' +target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128" +target triple = "powerpc-apple-darwin9.6.0" + type { i32, i32, i8*, i32, %tango.net.Socket.timeval } ; type %0 + type { i8*, i32 (i8*, %"tango.text.Regex.List!(TNFAFragment).List.Element"**)* } ; type %1 + type { %object.Interface*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i8*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.Conduit*)*, i8*, i8*, i1 (%tango.io.device.Conduit.Conduit*)*, i8*, void (%tango.io.device.Conduit.Conduit*, %"byte[]")* } ; type %2 + type { %object.Interface*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i8*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*)* } ; type %3 + type { %object.Interface*, i64 (%tango.io.device.Array.Array*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Array.Array*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Array.Array*)*, %"byte[]" (%tango.io.device.Array.Array*)*, i1 (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Array.Array*)*, void (%tango.io.device.Conduit.Conduit*, %"byte[]")* } ; type %4 + type { %object.Interface*, i64 (%tango.io.device.Array.Array*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Array.Array*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*)* } ; type %5 + type { %object.Interface*, i64 (%tango.io.device.Array.Array*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Array.Array*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.Conduit*)*, %"byte[]" (%tango.io.device.Array.Array*)*, i1 (%tango.io.device.Array.Array*, %"uint delegate(char[])")*, i32 (%tango.io.device.Array.Array*, %"uint delegate(char[])")* } ; type %6 + type { %object.Interface*, i64 (%tango.io.device.Array.Array*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Array.Array*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*)*, %"byte[]" (%tango.io.device.Array.Array*)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]")*, i32 (%tango.io.device.Array.Array*, %"uint delegate(char[])")* } ; type %7 + type { %object.Interface* } ; type %8 + type { %object.Interface*, i64 (%tango.io.device.Conduit.InputFilter*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.InputFilter*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.InputFilter*)*, void (%tango.io.device.Conduit.InputFilter*)*, i32 (%tango.io.device.Conduit.InputFilter*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.InputFilter*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.InputFilter*)* } ; type %9 + type { %object.Interface*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Device.Device*)*, %"byte[]" (%tango.io.device.Device.Device*)*, i1 (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Device.Device*)*, void (%tango.io.device.Conduit.Conduit*, %"byte[]")* } ; type %10 + type { %object.Interface*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*)* } ; type %11 + type { %object.Interface*, i32 (%tango.io.device.Device.Device*)* } ; type %12 + type { %object.Interface*, i64 (%tango.io.device.File.File*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Device.Device*)*, %"byte[]" (%tango.io.device.File.File*)*, i1 (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Device.Device*)*, void (%tango.io.device.Conduit.Conduit*, %"byte[]")* } ; type %13 + type { %object.Interface*, i64 (%tango.io.device.File.File*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*)* } ; type %14 + type { %object.Interface*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.net.SocketConduit.SocketConduit*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.net.SocketConduit.SocketConduit*)*, %"byte[]" (%tango.net.SocketConduit.SocketConduit*)*, i1 (%tango.net.SocketConduit.SocketConduit*)*, void (%tango.net.SocketConduit.SocketConduit*)*, void (%tango.io.device.Conduit.Conduit*, %"byte[]")* } ; type %15 + type { %object.Interface*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, void (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.net.SocketConduit.SocketConduit*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*)* } ; type %16 + type { %object.Interface*, i32 (%tango.net.SocketConduit.SocketConduit*)* } ; type %17 + type { i8*, i32 (i8*, %"tango.text.Regex.List!(StateElement).List.Element"**)* } ; type %18 + type { i8*, i32 (i8*, %"tango.text.Regex.List!(SubsetState).List.Element"**)* } ; type %19 + type { %object.TypeInfo.__vtbl*, i8*, %"byte[]", %"byte[]", i8*, i8*, i8*, i8*, i32 } ; type %20 + type { %object.TypeInfo.__vtbl*, i8*, %"byte[]", %"byte[]", i8*, i32 (%tango.net.Socket.timeval*, %tango.net.Socket.timeval*)*, i32 (%tango.net.Socket.timeval*, %tango.net.Socket.timeval*)*, %"byte[]" (%tango.net.Socket.timeval*)*, i32 } ; type %21 + type opaque ; type %22 + type opaque ; type %23 + type opaque ; type %24 + type opaque ; type %25 + type opaque ; type %26 + type opaque ; type %27 + type opaque ; type %28 + type opaque ; type %29 + type opaque ; type %30 + type { i32, void ()* } ; type %31 + type opaque ; type %32 + type { %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFA!(dchar).TNFA"* } ; type %33 + type { %"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.List!(TNFAFragment).List"* } ; type %34 + type { i32, %"byte[]" } ; type %35 + %"Act[]" = type { i32, i32* } + %"CharRange!(dchar)[]" = type { i32, %tango.net.Socket.timeval* } + %"ClassInfo[]" = type { i32, %object.ClassInfo** } + %"Command[]" = type { i32, %tango.net.Socket.timeval* } + %D_CRITICAL_SECTION = type { %D_CRITICAL_SECTION*, %0 } + %"FtpFeature[]" = type { i32, %tango.net.ftp.FtpClient.FtpFeature* } + %"FtpFileInfo[]" = type { i32, %tango.net.ftp.FtpClient.FtpFileInfo* } + %"Interface[]" = type { i32, %object.Interface* } + %"Mark[]" = type { i32, %"tango.text.Regex.TDFA!(dchar).TDFA.Mark"* } + %"ModuleInfo[]" = type { i32, %object.ModuleInfo** } + %ModuleReference = type { %ModuleReference*, %object.ModuleInfo* } + %"OffsetTypeInfo[]" = type { i32, %object.OffsetTypeInfo* } + %"Operator[]" = type { i32, i32* } + %"Pair!(uint)[]" = type { i32, %tango.net.Socket.timeval* } + %"Predicate!(dchar)[]" = type { i32, %"tango.text.Regex.Predicate!(dchar).Predicate"* } + %"StateElement[]" = type { i32, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"** } + %"State[]" = type { i32, %"tango.text.Regex.TDFA!(dchar).TDFA.State"** } + %"TNFAState[]" = type { i32, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** } + %"TNFATransition[]" = type { i32, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** } + %"Transition[]" = type { i32, %"tango.text.Regex.TDFA!(dchar).TDFA.Transition"** } + %"TypeInfo[]" = type { i32, %object.TypeInfo** } + %"_FormatterInfo!(char)[]" = type { i32, %nest.parseListLine* } + %"byte[]" = type { i32, i8* } + %"char[]" = type { i32, i8* } + %"char[] delegate(RegExpT)" = type { i8*, %"byte[]" (i8*, %"tango.text.Regex.RegExpT!(char).RegExpT"*)* } + %"char[][]" = type { i32, %"byte[]"* } + %"dchar[]" = type { i32, i32* } + %"dchar[][]" = type { i32, %"Act[]"* } + %"int delegate(ref Element)" = type { i8*, i32 (i8*, %"tango.text.Regex.List!(TNFATransition).List.Element"**)* } + %"int delegate(ref FrameInfo fInfo)" = type { i8*, i32 (i8*, %object.Exception.FrameInfo*)* } + %"int delegate(ref ModuleInfo)" = type { i8*, i32 (i8*, %object.ModuleInfo**)* } + %"int delegate(ref RegExpT)" = type { i8*, i32 (i8*, %"tango.text.Regex.RegExpT!(char).RegExpT"**)* } + %"int delegate(ref StateElement)" = type { i8*, i32 (i8*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"**)* } + %"int delegate(ref SubsetState)" = type { i8*, i32 (i8*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"**)* } + %"int delegate(ref TNFAFragment)" = type { i8*, i32 (i8*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**)* } + %"int delegate(ref TNFATransition)" = type { i8*, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* } + %"int delegate(ref char[])" = type { i8*, i32 (i8*, %"byte[]"*)* } + %"int delegate(ref int, ref char[])" = type { i8*, i32 (i8*, i32*, %"byte[]"*)* } + %"int delegate(ref int, ref char[], ref char[])" = type { i8*, i32 (i8*, i32*, %"byte[]"*, %"byte[]"*)* } + %"int[]" = type { i32, i32* } + %nest.clone = type { %"tango.text.Regex.TNFAState!(dchar).TNFAState"*, %"tango.text.Regex.TNFA!(dchar).TNFA"* } + %nest.delimit = type { %"char[][]" } + %nest.dostime = type { %tango.time.Time.Date } + %nest.insertAfter = type { %"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.List!(TNFATransition).List"* } + %nest.insertBefore = type { %"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.List!(TNFATransition).List"* } + %nest.parse = type { %"tango.text.convert.Layout.Layout!(char).Layout"*, %"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.Stack!(Operator).Stack", %"tango.text.Regex.Stack!(Operator).Stack", %"tango.text.Regex.Stack!(Pair!(uint)).Stack", %"tango.text.Regex.TNFAState!(dchar).TNFAState"*, %"tango.text.Regex.Stack!(TNFATransition).Stack", i32, %"tango.text.Regex.TNFA!(dchar).TNFA"* } + %nest.parseListLine = type { i32, %"byte[]", %"byte[]" } + %nest.setEntry = type { %"tango.text.Regex.TNFAState!(dchar).TNFAState"* } + %nest.setExit = type { %"tango.text.Regex.TNFAState!(dchar).TNFAState"* } + %nest.splitLines = type { i32, %"char[][]" } + %object.ClassInfo = type { %object.ClassInfo.__vtbl*, i8*, %"byte[]", %"byte[]", %"void*[]", %"Interface[]", %object.ClassInfo*, i8*, i8*, i32, i8*, %"OffsetTypeInfo[]", i8*, %object.TypeInfo* } + %object.ClassInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %object.Object* (%object.ClassInfo*)* } + %object.Exception = type { %object.Exception.__vtbl*, i8*, %"byte[]", %"byte[]", i32, %object.Exception.TraceInfo*, %object.Exception* } + %object.Exception.FrameInfo = type { i64, i32, i32, i32, %"byte[]", %"byte[]", [256 x i8] } + %object.Exception.TraceInfo = type { %object.Exception.TraceInfo.__vtbl* } + %object.Exception.TraceInfo.__vtbl = type { %object.ClassInfo*, i32 (%object.Exception.TraceInfo*, %"int delegate(ref FrameInfo fInfo)")* } + %object.Exception.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Exception*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%object.Exception*, %"void delegate(char[])")* } + %object.Interface = type { %object.ClassInfo*, %"void*[]", i32 } + %object.ModuleInfo = type { %object.ModuleInfo.__vtbl*, i8*, %"byte[]", %"ModuleInfo[]", %"ClassInfo[]", i32, void ()*, void ()*, void ()*, i8*, void ()* } + %object.ModuleInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %object.Object = type { %object.ModuleInfo.__vtbl*, i8* } + %object.Object.Monitor = type { %object.Object.Monitor.__vtbl* } + %object.Object.Monitor.__vtbl = type { %object.ClassInfo*, void (%object.Object.Monitor*)*, void (%object.Object.Monitor*)* } + %object.Object.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %object.OffsetTypeInfo = type { i32, %object.TypeInfo* } + %object.TypeInfo = type { %object.TypeInfo.__vtbl*, i8* } + %object.TypeInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %object.TypeInfo_Array = type { %object.TypeInfo.__vtbl*, i8*, %object.TypeInfo* } + %object.TypeInfo_Array.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %object.TypeInfo_Class = type { %object.TypeInfo.__vtbl*, i8*, %object.ClassInfo* } + %object.TypeInfo_Class.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %object.TypeInfo_Enum = type { %object.TypeInfo.__vtbl*, i8*, %object.TypeInfo*, %"byte[]", %"byte[]" } + %object.TypeInfo_Enum.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %object.TypeInfo_StaticArray = type { %object.TypeInfo.__vtbl*, i8*, %object.TypeInfo*, i32 } + %object.TypeInfo_StaticArray.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %object.TypeInfo_Struct = type { %object.TypeInfo.__vtbl*, i8*, %"byte[]", %"byte[]", i32 ()*, i32 (i8*)*, i32 (i8*)*, %"byte[]" ()*, i32 } + %object.TypeInfo_Struct.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %object.TypeInfo_Typedef = type { %object.TypeInfo.__vtbl*, i8*, %object.TypeInfo*, %"byte[]", %"byte[]" } + %object.TypeInfo_Typedef.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* } + %"tango.core.Array.IsEqual!(char).IsEqual" = type <{ i8 }> + %tango.core.Exception.IllegalArgumentException = type { %object.Exception.__vtbl*, i8*, %"byte[]", %"byte[]", i32, %object.Exception.TraceInfo*, %object.Exception* } + %tango.core.Exception.IllegalArgumentException.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Exception*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%object.Exception*, %"void delegate(char[])")* } + %tango.io.device.Array.Array = type { %tango.io.device.Array.Array.__vtbl*, i8*, %4*, %5*, %"byte[]", i32, i32, i32, i32, %6*, %7*, %8* } + %tango.io.device.Array.Array.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.io.device.Array.Array*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.io.device.Array.Array*)*, i32 (%tango.io.device.Array.Array*, %"byte[]")*, i32 (%tango.io.device.Array.Array*, %"byte[]")*, void (%tango.io.device.Array.Array*)*, i1 (%tango.io.device.Conduit.Conduit*)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, i64 (%tango.io.device.Array.Array*, i64, i32)*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]")*, %tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)* } + %tango.io.device.Conduit.Conduit = type { %tango.io.device.Conduit.Conduit.__vtbl*, i8*, %2*, %3* } + %tango.io.device.Conduit.Conduit.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.io.device.Conduit.Conduit*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.io.device.Conduit.Conduit*)*, i32 (%tango.io.device.Conduit.Conduit*, %"byte[]")*, i32 (%tango.io.device.Conduit.Conduit*, %"byte[]")*, void (%tango.io.device.Conduit.Conduit*)*, i1 (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)* } + %tango.io.device.Conduit.InputFilter = type { %tango.io.device.Conduit.InputFilter.__vtbl*, i8*, %tango.io.model.IConduit.InputStream*, %9* } + %tango.io.device.Conduit.InputFilter.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.InputFilter*)*, i32 (%tango.io.device.Conduit.InputFilter*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.InputFilter*, i32)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.InputFilter*)*, i64 (%tango.io.device.Conduit.InputFilter*, i64, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.InputFilter*)*, void (%tango.io.device.Conduit.InputFilter*)* } + %tango.io.device.Device.Device = type { %tango.io.device.Device.Device.__vtbl*, i8*, %10*, %11*, i32, %12* } + %tango.io.device.Device.Device.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.io.device.Device.Device*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.io.device.Device.Device*)*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, void (%tango.io.device.Device.Device*)*, i1 (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, void (%tango.io.device.Device.Device*, i32)* } + %tango.io.device.File.File = type { %tango.io.device.File.File.__vtbl*, i8*, %13*, %14*, i32, %12*, %"byte[]", %tango.io.device.File.File.Style, %8* } + %tango.io.device.File.File.Style = type <{ i8, i8, i8, i8 }> + %tango.io.device.File.File.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.io.device.File.File*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.io.device.Device.Device*)*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, i32 (%tango.io.device.Device.Device*, %"byte[]")*, void (%tango.io.device.Device.Device*)*, i1 (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, i64 (%tango.io.device.File.File*, i64, i32)*, void (%tango.io.device.Device.Device*, i32)*, void (%tango.io.device.File.File.Style*, %tango.io.device.File.File*)*, i64 (%tango.io.device.File.File*)*, i64 (%tango.io.device.File.File*)*, void (%tango.io.device.File.File*, %"byte[]", %tango.io.device.File.File.Style*)*, void (%tango.io.device.File.File*)*, void (%tango.io.device.File.File*, i64)* } + %tango.io.model.IConduit.IConduit = type { %tango.io.model.IConduit.IConduit.__vtbl* } + %tango.io.model.IConduit.IConduit.Seek = type { %tango.io.model.IConduit.IConduit.Seek.__vtbl* } + %tango.io.model.IConduit.IConduit.Seek.__vtbl = type { %object.ClassInfo* } + %tango.io.model.IConduit.IConduit.__vtbl = type { %object.ClassInfo*, i64 (%tango.io.model.IConduit.IOStream*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.model.IConduit.IOStream*)*, %tango.io.model.IConduit.IOStream* (%tango.io.model.IConduit.IOStream*)*, void (%tango.io.model.IConduit.IOStream*)*, i32 (%tango.io.model.IConduit.InputStream*, %"byte[]")*, %"byte[]" (%tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.model.IConduit.InputStream*)*, i32 (%tango.io.model.IConduit.IConduit*)*, %"byte[]" (%tango.io.model.IConduit.IConduit*)*, i1 (%tango.io.model.IConduit.IConduit*)*, void (%tango.io.model.IConduit.IConduit*)*, void (%tango.io.model.IConduit.IConduit*, %"byte[]")* } + %tango.io.model.IConduit.IOStream = type { %tango.io.model.IConduit.IOStream.__vtbl* } + %tango.io.model.IConduit.IOStream.Mutator = type { %tango.io.model.IConduit.IConduit.Seek.__vtbl* } + %tango.io.model.IConduit.IOStream.Mutator.__vtbl = type { %object.ClassInfo* } + %tango.io.model.IConduit.IOStream.__vtbl = type { %object.ClassInfo*, i64 (%tango.io.model.IConduit.IOStream*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.model.IConduit.IOStream*)*, %tango.io.model.IConduit.IOStream* (%tango.io.model.IConduit.IOStream*)*, void (%tango.io.model.IConduit.IOStream*)* } + %tango.io.model.IConduit.ISelectable = type { %tango.io.model.IConduit.ISelectable.__vtbl* } + %tango.io.model.IConduit.ISelectable.__vtbl = type { %object.ClassInfo*, i32 (%tango.io.model.IConduit.ISelectable*)* } + %tango.io.model.IConduit.InputBuffer = type { %tango.io.model.IConduit.InputBuffer.__vtbl* } + %tango.io.model.IConduit.InputBuffer.__vtbl = type { %object.ClassInfo*, i64 (%tango.io.model.IConduit.IOStream*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.model.IConduit.IOStream*)*, %tango.io.model.IConduit.IOStream* (%tango.io.model.IConduit.IOStream*)*, void (%tango.io.model.IConduit.IOStream*)*, i32 (%tango.io.model.IConduit.InputStream*, %"byte[]")*, %"byte[]" (%tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.model.IConduit.InputStream*)*, %"byte[]" (%tango.io.model.IConduit.InputBuffer*)*, i1 (%tango.io.model.IConduit.InputBuffer*, %"uint delegate(char[])")*, i32 (%tango.io.model.IConduit.InputBuffer*, %"uint delegate(char[])")* } + %tango.io.model.IConduit.InputStream = type { %tango.io.model.IConduit.InputStream.__vtbl* } + %tango.io.model.IConduit.InputStream.__vtbl = type { %object.ClassInfo*, i64 (%tango.io.model.IConduit.IOStream*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.model.IConduit.IOStream*)*, %tango.io.model.IConduit.IOStream* (%tango.io.model.IConduit.IOStream*)*, void (%tango.io.model.IConduit.IOStream*)*, i32 (%tango.io.model.IConduit.InputStream*, %"byte[]")*, %"byte[]" (%tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.model.IConduit.InputStream*)* } + %tango.io.model.IConduit.OutputBuffer = type { %tango.io.model.IConduit.OutputBuffer.__vtbl* } + %tango.io.model.IConduit.OutputBuffer.__vtbl = type { %object.ClassInfo*, i64 (%tango.io.model.IConduit.IOStream*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.model.IConduit.IOStream*)*, %tango.io.model.IConduit.IOStream* (%tango.io.model.IConduit.IOStream*)*, void (%tango.io.model.IConduit.IOStream*)*, i32 (%tango.io.model.IConduit.OutputStream*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.model.IConduit.OutputStream*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.model.IConduit.OutputStream*)*, %"byte[]" (%tango.io.model.IConduit.OutputBuffer*)*, %tango.io.model.IConduit.OutputBuffer* (%tango.io.model.IConduit.OutputBuffer*, %"byte[]")*, i32 (%tango.io.model.IConduit.OutputBuffer*, %"uint delegate(char[])")* } + %tango.io.model.IConduit.OutputStream = type { %tango.io.model.IConduit.OutputStream.__vtbl* } + %tango.io.model.IConduit.OutputStream.__vtbl = type { %object.ClassInfo*, i64 (%tango.io.model.IConduit.IOStream*, i64, i32)*, %tango.io.model.IConduit.IConduit* (%tango.io.model.IConduit.IOStream*)*, %tango.io.model.IConduit.IOStream* (%tango.io.model.IConduit.IOStream*)*, void (%tango.io.model.IConduit.IOStream*)*, i32 (%tango.io.model.IConduit.OutputStream*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.io.model.IConduit.OutputStream*, %tango.io.model.IConduit.InputStream*, i32)*, %tango.io.model.IConduit.OutputStream* (%tango.io.model.IConduit.OutputStream*)* } + %"tango.io.stream.Iterator.Iterator!(char).Iterator" = type { %"tango.io.stream.Iterator.Iterator!(char).Iterator.__vtbl"*, i8*, %tango.io.model.IConduit.InputStream*, %9*, %tango.io.model.IConduit.InputBuffer*, %"byte[]", %"byte[]" } + %"tango.io.stream.Iterator.Iterator!(char).Iterator.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.InputFilter*)*, i32 (%tango.io.device.Conduit.InputFilter*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.InputFilter*, i32)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.InputFilter*)*, i64 (%tango.io.device.Conduit.InputFilter*, i64, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.InputFilter*)*, void (%tango.io.device.Conduit.InputFilter*)*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"byte[]")*, %"tango.io.stream.Iterator.Iterator!(char).Iterator"* (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %tango.io.model.IConduit.InputStream*)*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"int delegate(ref char[])")*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"int delegate(ref int, ref char[])")*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"int delegate(ref int, ref char[], ref char[])")* } + %"tango.io.stream.Lines.Lines!(char).Lines" = type { %"tango.io.stream.Iterator.Iterator!(char).Iterator.__vtbl"*, i8*, %tango.io.model.IConduit.InputStream*, %9*, %tango.io.model.IConduit.InputBuffer*, %"byte[]", %"byte[]" } + %"tango.io.stream.Lines.Lines!(char).Lines.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %tango.io.model.IConduit.IConduit* (%tango.io.device.Conduit.InputFilter*)*, i32 (%tango.io.device.Conduit.InputFilter*, %"byte[]")*, %"byte[]" (%tango.io.device.Conduit.InputFilter*, i32)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.InputFilter*)*, i64 (%tango.io.device.Conduit.InputFilter*, i64, i32)*, %tango.io.model.IConduit.InputStream* (%tango.io.device.Conduit.InputFilter*)*, void (%tango.io.device.Conduit.InputFilter*)*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"byte[]")*, %"tango.io.stream.Iterator.Iterator!(char).Iterator"* (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %tango.io.model.IConduit.InputStream*)*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"int delegate(ref char[])")*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"int delegate(ref int, ref char[])")*, i32 (%"tango.io.stream.Iterator.Iterator!(char).Iterator"*, %"int delegate(ref int, ref char[], ref char[])")* } + %tango.net.Socket.Address = type { %tango.net.Socket.Address.__vtbl*, i8* } + %tango.net.Socket.Address.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.net.Socket.Address*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %tango.net.Socket.sockaddr* (%tango.net.Socket.Address*)*, i32 (%tango.net.Socket.Address*)*, i32 (%tango.net.Socket.Address*)* } + %tango.net.Socket.IPv4Address = type { %tango.net.Socket.IPv4Address.__vtbl*, i8*, [8 x i8], %tango.net.Socket.IPv4Address.sockaddr_in } + %tango.net.Socket.IPv4Address.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.net.Socket.IPv4Address*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %tango.net.Socket.sockaddr* (%tango.net.Socket.IPv4Address*)*, i32 (%tango.net.Socket.IPv4Address*)*, i32 (%tango.net.Socket.IPv4Address*)*, i16 (%tango.net.Socket.IPv4Address*)*, i32 (%tango.net.Socket.IPv4Address*)*, %"byte[]" (%tango.net.Socket.IPv4Address*)*, %"byte[]" (%tango.net.Socket.IPv4Address*)* } + %tango.net.Socket.IPv4Address.sockaddr_in = type { i16, i16, i32, [8 x i8] } + %tango.net.Socket.NetHost = type { %tango.net.Socket.NetHost.__vtbl*, i8*, %"byte[]", %"char[][]", %"Act[]" } + %tango.net.Socket.NetHost.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%tango.net.Socket.NetHost*, %tango.net.Socket.hostent*)*, void (%tango.net.Socket.NetHost*, %tango.net.Socket.hostent*)*, i1 (%tango.net.Socket.NetHost*, %"byte[]")*, i1 (%tango.net.Socket.NetHost*, i32)*, i1 (%tango.net.Socket.NetHost*, %"byte[]")* } + %tango.net.Socket.Socket = type { %tango.net.Socket.Socket.__vtbl*, i8*, i32, i32, i32, i32 } + %tango.net.Socket.Socket.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.net.Socket.Socket*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.net.Socket.Socket*)*, void (%tango.net.Socket.Socket*, i32)*, i1 (%tango.net.Socket.Socket*)*, i1 (%tango.net.Socket.Socket*)*, void (%tango.net.Socket.Socket*, i1)*, i32 (%tango.net.Socket.Socket*)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, %tango.net.Socket.Address*)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, %tango.net.Socket.Address*)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, %tango.net.Socket.Socket*)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i1)*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i1)*, void (%tango.net.Socket.Socket*, %tango.net.Socket.IPv4Address*, i1)*, void (%tango.net.Socket.Socket*)*, %tango.net.Socket.Address* (%tango.net.Socket.Socket*)*, %tango.net.Socket.Address* (%tango.net.Socket.Socket*)*, %tango.net.Socket.Address* (%tango.net.Socket.Socket*)*, i32 (%tango.net.Socket.Socket*, %"byte[]", i32)*, i32 (%tango.net.Socket.Socket*, %"byte[]", i32, %tango.net.Socket.Address*)*, i32 (%tango.net.Socket.Socket*, %"byte[]", %tango.net.Socket.Address*)*, i32 (%tango.net.Socket.Socket*, %"byte[]", i32)*, i32 (%tango.net.Socket.Socket*, %"byte[]", i32)*, i32 (%tango.net.Socket.Socket*, %"byte[]", i32, %tango.net.Socket.Address*)*, i32 (%tango.net.Socket.Socket*, %"byte[]", %tango.net.Socket.Address*)*, i32 (%tango.net.Socket.Socket*, %"byte[]", i32)*, i32 (%tango.net.Socket.Socket*, i32, i32, %"byte[]")*, %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32, i32, %"byte[]")* } + %tango.net.Socket.SocketSet = type { %tango.net.Socket.SocketSet.__vtbl*, i8*, i32, i8*, i32, i32 } + %tango.net.Socket.SocketSet.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.net.Socket.SocketSet*, i32)*, i32 (%tango.net.Socket.SocketSet*, i32)*, i32* (%tango.net.Socket.SocketSet*)*, i32 (%tango.net.Socket.SocketSet*)*, %tango.net.Socket.SocketSet* (%tango.net.Socket.SocketSet*)*, void (%tango.net.Socket.SocketSet*)*, void (%tango.net.Socket.SocketSet*, i32)*, void (%tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*)*, void (%tango.net.Socket.SocketSet*, i32)*, void (%tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*)*, i32 (%tango.net.Socket.SocketSet*, i32)*, i32 (%tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*)*, i32 (%tango.net.Socket.SocketSet*)*, %"tango.core.Array.IsEqual!(char).IsEqual"* (%tango.net.Socket.SocketSet*)* } + %tango.net.Socket.fd_set = type <{ i8 }> + %tango.net.Socket.hostent = type { i8*, i8**, i32, i32, i8** } + %tango.net.Socket.sockaddr = type { i16, [14 x i8] } + %tango.net.Socket.timeval = type { i32, i32 } + %tango.net.SocketConduit.SocketConduit = type { %tango.net.SocketConduit.SocketConduit.__vtbl*, i8*, %15*, %16*, %tango.net.Socket.timeval, %tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*, i1, %tango.net.SocketConduit.SocketConduit*, i1, %17* } + %tango.net.SocketConduit.SocketConduit.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.net.SocketConduit.SocketConduit*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%tango.net.SocketConduit.SocketConduit*)*, i32 (%tango.net.SocketConduit.SocketConduit*, %"byte[]")*, i32 (%tango.net.SocketConduit.SocketConduit*, %"byte[]")*, void (%tango.net.SocketConduit.SocketConduit*)*, i1 (%tango.net.SocketConduit.SocketConduit*)*, %tango.io.model.IConduit.IOStream* (%tango.io.device.Conduit.Conduit*)*, %tango.io.model.IConduit.OutputStream* (%tango.io.device.Conduit.Conduit*, %tango.io.model.IConduit.InputStream*, i32)*, %"byte[]" (%tango.io.device.Conduit.Conduit*, i32)*, i64 (%tango.io.device.Conduit.Conduit*, i64, i32)*, %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*, i32 (%tango.net.SocketConduit.SocketConduit*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, float)*, i1 (%tango.net.SocketConduit.SocketConduit*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*)* } + %tango.net.ftp.FtpClient.FTPConnection = type { %tango.net.ftp.FtpClient.FTPConnection.__vtbl*, i8*, %tango.net.SocketConduit.SocketConduit*, %"tango.io.stream.Iterator.Iterator!(char).Iterator"*, [8192 x i8], %"FtpFeature[]", %tango.net.ftp.FtpClient.FtpConnectionDetail, i32, %"byte[]", %tango.net.SocketConduit.SocketConduit*, %tango.time.Time.Time } + %tango.net.ftp.FtpClient.FTPConnection.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")*, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")*, %"byte[]" (%tango.net.ftp.Telnet.Telnet*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32)*, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.time.Time.Time*)*, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)*, %"FtpFeature[]" (%tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpAddress*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"byte[]", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", i16, %"byte[]", i16)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*)*, %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]")*, i32 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, i32 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*, i32)*, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*)*, %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*, void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)*, %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)*, i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit**)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*, %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)")*, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)")*, %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"void delegate(uint pos)", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*, i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*, i64)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"void delegate(uint pos)", i32)*, void (%tango.net.ftp.FtpClient.FTPConnection*)*, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)", i32)*, %tango.io.model.IConduit.InputStream* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*, %tango.io.model.IConduit.OutputStream* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* } + %tango.net.ftp.FtpClient.FtpAddress = type { %"byte[]", %"byte[]", %"byte[]", %"byte[]", i32 } + %tango.net.ftp.FtpClient.FtpConnectionDetail = type { i32, %tango.net.Socket.Address*, %tango.net.Socket.Address* } + %tango.net.ftp.FtpClient.FtpException = type { %tango.net.ftp.FtpClient.FtpException.__vtbl*, i8*, %"byte[]", %"byte[]", i32, %object.Exception.TraceInfo*, %object.Exception*, [3 x i8] } + %tango.net.ftp.FtpClient.FtpException.__vtbl = type { %object.ClassInfo*, %"byte[]" (%tango.net.ftp.FtpClient.FtpException*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%object.Exception*, %"void delegate(char[])")* } + %tango.net.ftp.FtpClient.FtpFeature = type { %"byte[]", %"byte[]" } + %tango.net.ftp.FtpClient.FtpFileInfo = type { %"byte[]", i32, i64, %tango.time.Time.Time, %tango.time.Time.Time, %"byte[]", i8* } + %tango.net.ftp.FtpClient.FtpResponse = type { [3 x i8], %"byte[]" } + %tango.net.ftp.Telnet.Telnet = type { %tango.net.ftp.Telnet.Telnet.__vtbl*, i8*, %tango.net.SocketConduit.SocketConduit*, %"tango.io.stream.Iterator.Iterator!(char).Iterator"*, [8192 x i8] } + %tango.net.ftp.Telnet.Telnet.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")*, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")*, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")*, %"byte[]" (%tango.net.ftp.Telnet.Telnet*)*, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32)* } + %"tango.text.Regex.CharClass!(dchar).CharClass" = type { %"CharRange!(dchar)[]" } + %"tango.text.Regex.CharRange!(dchar).CharRange" = type { i32, i32 } + %"tango.text.Regex.List!(StateElement).List" = type { %"tango.text.Regex.List!(StateElement).List.__vtbl"*, i8*, i32, %"tango.text.Regex.List!(StateElement).List.Element"*, %"tango.text.Regex.List!(StateElement).List.Element"* } + %"tango.text.Regex.List!(StateElement).List.Element" = type { %object.ModuleInfo.__vtbl*, i8*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*, %"tango.text.Regex.List!(StateElement).List.Element"*, %"tango.text.Regex.List!(StateElement).List.Element"*, %"tango.text.Regex.List!(StateElement).List"* } + %"tango.text.Regex.List!(StateElement).List.Element.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %"tango.text.Regex.List!(StateElement).List.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.List!(StateElement).List.Element"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.List!(StateElement).List"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.List!(StateElement).List.Element"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, %"tango.text.Regex.List!(StateElement).List"* (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.List!(StateElement).List"*)*, i32 (%"tango.text.Regex.List!(StateElement).List"*)*, i1 (%"tango.text.Regex.List!(StateElement).List"*)*, void (%"tango.text.Regex.List!(StateElement).List"*)*, void (%"tango.text.Regex.List!(StateElement).List"*)*, void (%"tango.text.Regex.List!(StateElement).List"*, %"tango.text.Regex.List!(StateElement).List.Element"*)*, i32 (%"tango.text.Regex.List!(StateElement).List"*, %18)*, i32 (%"tango.text.Regex.List!(StateElement).List"*, %18)*, i32 (%"tango.text.Regex.List!(StateElement).List"*, %"int delegate(ref StateElement)")*, i32 (%"tango.text.Regex.List!(StateElement).List"*, %"int delegate(ref StateElement)")* } + %"tango.text.Regex.List!(SubsetState).List" = type { %"tango.text.Regex.List!(SubsetState).List.__vtbl"*, i8*, i32, %"tango.text.Regex.List!(SubsetState).List.Element"*, %"tango.text.Regex.List!(SubsetState).List.Element"* } + %"tango.text.Regex.List!(SubsetState).List.Element" = type { %object.ModuleInfo.__vtbl*, i8*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*, %"tango.text.Regex.List!(SubsetState).List.Element"*, %"tango.text.Regex.List!(SubsetState).List.Element"*, %"tango.text.Regex.List!(SubsetState).List"* } + %"tango.text.Regex.List!(SubsetState).List.Element.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %"tango.text.Regex.List!(SubsetState).List.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.List!(SubsetState).List.Element"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.List!(SubsetState).List"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.List!(SubsetState).List.Element"*, %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, %"tango.text.Regex.List!(SubsetState).List"* (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.List!(SubsetState).List"*)*, i32 (%"tango.text.Regex.List!(SubsetState).List"*)*, i1 (%"tango.text.Regex.List!(SubsetState).List"*)*, void (%"tango.text.Regex.List!(SubsetState).List"*)*, void (%"tango.text.Regex.List!(SubsetState).List"*)*, void (%"tango.text.Regex.List!(SubsetState).List"*, %"tango.text.Regex.List!(SubsetState).List.Element"*)*, i32 (%"tango.text.Regex.List!(SubsetState).List"*, %19)*, i32 (%"tango.text.Regex.List!(SubsetState).List"*, %19)*, i32 (%"tango.text.Regex.List!(SubsetState).List"*, %"int delegate(ref SubsetState)")*, i32 (%"tango.text.Regex.List!(SubsetState).List"*, %"int delegate(ref SubsetState)")* } + %"tango.text.Regex.List!(TNFAFragment).List" = type { %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*, i8*, i32, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"* } + %"tango.text.Regex.List!(TNFAFragment).List.Element" = type { %object.ModuleInfo.__vtbl*, i8*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.List!(TNFAFragment).List"* } + %"tango.text.Regex.List!(TNFAFragment).List.Element.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %"tango.text.Regex.List!(TNFAFragment).List.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List"*)*, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*)*, i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)*, void (%"tango.text.Regex.List!(TNFAFragment).List"*)*, void (%"tango.text.Regex.List!(TNFAFragment).List"*)*, void (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*)*, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %1)*, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %1)*, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %"int delegate(ref TNFAFragment)")*, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %"int delegate(ref TNFAFragment)")* } + %"tango.text.Regex.List!(TNFATransition).List" = type { %"tango.text.Regex.List!(TNFATransition).List.__vtbl"*, i8*, i32, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.List!(TNFATransition).List.Element"* } + %"tango.text.Regex.List!(TNFATransition).List.Element" = type { %object.ModuleInfo.__vtbl*, i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.List!(TNFATransition).List"* } + %"tango.text.Regex.List!(TNFATransition).List.Element.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %"tango.text.Regex.List!(TNFATransition).List.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*, i32 (%"tango.text.Regex.List!(TNFATransition).List"*)*, i1 (%"tango.text.Regex.List!(TNFATransition).List"*)*, void (%"tango.text.Regex.List!(TNFATransition).List"*)*, void (%"tango.text.Regex.List!(TNFATransition).List"*)*, void (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*)*, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref Element)")*, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref Element)")*, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")*, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")* } + %"tango.text.Regex.Pair!(uint).Pair" = type { i32, i32 } + %"tango.text.Regex.Predicate!(dchar).Predicate" = type { %"tango.text.Regex.CharClass!(dchar).CharClass", i32, i32, %"byte[]", i32 } + %tango.text.Regex.RegExpException = type { %object.Exception.__vtbl*, i8*, %"byte[]", %"byte[]", i32, %object.Exception.TraceInfo*, %object.Exception* } + %tango.text.Regex.RegExpException.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Exception*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%object.Exception*, %"void delegate(char[])")* } + %"tango.text.Regex.RegExpT!(char).RegExpT" = type { %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*, i8*, %"Act[]", i32, i32, %"tango.text.Regex.TDFA!(dchar).TDFA"*, %"byte[]", %"byte[]" } + %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %"tango.text.Regex.RegExpT!(char).RegExpT"* (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]")*, i32 (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"int delegate(ref RegExpT)")*, i1 (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]")*, i1 (%"tango.text.Regex.RegExpT!(char).RegExpT"*)*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*)*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*)*, %"char[][]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]")*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]", %"byte[]", %"byte[]")*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]", %"byte[]", %"byte[]")*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]", %"byte[]", %"byte[]")*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]", %"char[] delegate(RegExpT)", %"byte[]")*, %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]", i1)*, i32 (%"tango.text.Regex.RegExpT!(char).RegExpT"*)* } + %"tango.text.Regex.Stack!(Operator).Stack" = type { i32, %"Act[]" } + %"tango.text.Regex.Stack!(Pair!(uint)).Stack" = type { i32, %"CharRange!(dchar)[]" } + %"tango.text.Regex.Stack!(TNFATransition).Stack" = type { i32, %"TNFATransition[]" } + %"tango.text.Regex.Stack!(uint).Stack" = type { i32, %"Act[]" } + %"tango.text.Regex.TDFA!(dchar).TDFA" = type { %"tango.text.Regex.TDFA!(dchar).TDFA.__vtbl"*, i8*, %"State[]", %"tango.text.Regex.TDFA!(dchar).TDFA.State"*, %"CharRange!(dchar)[]", i32, i8*, i32, %"Mark[]" } + %"tango.text.Regex.TDFA!(dchar).TDFA.Command" = type { i32, i32 } + %"tango.text.Regex.TDFA!(dchar).TDFA.Mark" = type { i32, i1, i8, i16 } + %"tango.text.Regex.TDFA!(dchar).TDFA.State" = type { %"tango.text.Regex.TDFA!(dchar).TDFA.State.__vtbl"*, i8*, i1, i32, %"Transition[]", %"Transition[]", %"CharRange!(dchar)[]", %"byte[]", i32, %"tango.text.Regex.TDFA!(dchar).TDFA"* } + %"tango.text.Regex.TDFA!(dchar).TDFA.State.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%"tango.text.Regex.TDFA!(dchar).TDFA.State"*)*, void (%"tango.text.Regex.TDFA!(dchar).TDFA.State"*)* } + %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement" = type { %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement.__vtbl"*, i8*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*, i8*, i32, i32, %"tango.text.Regex.TDFA!(dchar).TDFA"* } + %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)*, i32 (%object.Object*)*, i32 (%"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i1 (%"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*, %"tango.text.Regex.TDFA!(dchar).TDFA.StateElement"*)* } + %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState" = type { %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState.__vtbl"*, i8*, %"StateElement[]", %"tango.text.Regex.TDFA!(dchar).TDFA.State"*, %"tango.text.Regex.TDFA!(dchar).TDFA"* } + %"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%"tango.text.Regex.TDFA!(dchar).TDFA.SubsetState"*, %"int delegate(ref TNFATransition)")* } + %"tango.text.Regex.TDFA!(dchar).TDFA.TagIndex" = type { i32, i32 } + %"tango.text.Regex.TDFA!(dchar).TDFA.Transition" = type { %"tango.text.Regex.TDFA!(dchar).TDFA.Transition.__vtbl"*, i8*, %"tango.text.Regex.TDFA!(dchar).TDFA.State"*, %"tango.text.Regex.Predicate!(dchar).Predicate", %"CharRange!(dchar)[]", %"tango.text.Regex.TDFA!(dchar).TDFA"* } + %"tango.text.Regex.TDFA!(dchar).TDFA.Transition.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%"tango.text.Regex.TDFA!(dchar).TDFA.Transition"*, %object.Object*)*, i32 (%"tango.text.Regex.TDFA!(dchar).TDFA.Transition"*, %object.Object*)*, i1 (%"tango.text.Regex.TDFA!(dchar).TDFA.Transition"*, %"tango.text.Regex.TDFA!(dchar).TDFA.Transition"*)* } + %"tango.text.Regex.TDFA!(dchar).TDFA.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%"tango.text.Regex.TDFA!(dchar).TDFA"*)* } + %"tango.text.Regex.TNFA!(dchar).TNFA" = type { %"tango.text.Regex.TNFA!(dchar).TNFA.__vtbl"*, i8*, %"Act[]", %"TNFAState[]", %"tango.text.Regex.TNFAState!(dchar).TNFAState"*, i1, i32, i32, i32, %"tango.text.Regex.List!(TNFATransition).List"*, i8*, i8* } + %"tango.text.Regex.TNFA!(dchar).TNFA.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%"tango.text.Regex.TNFA!(dchar).TNFA"*)*, void (%"tango.text.Regex.TNFA!(dchar).TNFA"*, i1)* } + %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment" = type { %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*, i8*, %"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*, i1 } + %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)*, void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)* } + %"tango.text.Regex.TNFAState!(dchar).TNFAState" = type { %object.ModuleInfo.__vtbl*, i8*, i1, i1, i32, %"tango.text.Regex.List!(TNFATransition).List"* } + %"tango.text.Regex.TNFAState!(dchar).TNFAState.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %"tango.text.Regex.TNFATransition!(dchar).TNFATransition" = type { %object.ModuleInfo.__vtbl*, i8*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*, %"tango.text.Regex.Predicate!(dchar).Predicate", i32, i32, i32 } + %"tango.text.Regex.TNFATransition!(dchar).TNFATransition.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* } + %"tango.text.Util.DelimFruct!(char).DelimFruct" = type { %"byte[]", %"byte[]" } + %"tango.text.Util.LineFruct!(char).LineFruct" = type { %"byte[]" } + %"tango.text.convert.Integer._FormatterInfo!(char)._FormatterInfo" = type { i32, %"byte[]", %"byte[]" } + %"tango.text.convert.Integer._FormatterInfo!(dchar)._FormatterInfo" = type { i32, %"Act[]", %"Act[]" } + %"tango.text.convert.Integer._FormatterInfo!(wchar)._FormatterInfo" = type { i32, %"wchar[]", %"wchar[]" } + %"tango.text.convert.Layout.Layout!(char).Layout" = type { %"tango.text.convert.Layout.Layout!(char).Layout.__vtbl"*, i8* } + %"tango.text.convert.Layout.Layout!(char).Layout.__vtbl" = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %"byte[]" (%"tango.text.convert.Layout.Layout!(char).Layout"*, %"byte[]", %"byte[]", %object.TypeInfo*, i8*)*, %"byte[]" (%"tango.text.convert.Layout.Layout!(char).Layout"*, %"byte[]", i64, %"byte[]", i64, %"byte[]")*, %"byte[]" (%"tango.text.convert.Layout.Layout!(char).Layout"*, %"byte[]", double, %"byte[]")* } + %tango.time.Time.Date = type { i32, i32, i32, i32, i32, i32 } + %tango.time.Time.DateTime = type { %tango.time.Time.Date, %tango.time.Time.TimeOfDay } + %tango.time.Time.Time = type { i64 } + %tango.time.Time.TimeOfDay = type { i32, i32, i32, i32 } + %tango.time.Time.TimeSpan = type { i64 } + %tango.time.chrono.Calendar.Calendar = type { %tango.time.chrono.Calendar.Calendar.__vtbl*, i8* } + %tango.time.chrono.Calendar.Calendar.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%tango.time.Time.Date*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, void (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*, i32*, i32*, i32*, i32*, i32*, i32*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, i32, i32, i32, i32, i32, i32, i32)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Date*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.DateTime*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Date*, %tango.time.Time.TimeOfDay*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, i32, i32, i32, i32, i32, i32, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*, i32, i32)*, i1 (%tango.time.chrono.Calendar.Calendar*, i32)*, i1 (%tango.time.chrono.Calendar.Calendar*, i32, i32)*, %"Act[]" (%tango.time.chrono.Calendar.Calendar*)*, i32 (%tango.time.chrono.Calendar.Calendar*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*, i32, i1)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*, i32)* } + %tango.time.chrono.Gregorian.Gregorian = type { %tango.time.chrono.Gregorian.Gregorian.__vtbl*, i8*, i32 } + %tango.time.chrono.Gregorian.Gregorian.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i32 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, void (%tango.time.Time.Date*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*)*, void (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*, i32*, i32*, i32*, i32*, i32*, i32*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, i32, i32, i32, i32, i32, i32, i32)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Date*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.DateTime*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Date*, %tango.time.Time.TimeOfDay*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Gregorian.Gregorian*, i32, i32, i32, i32, i32, i32, i32, i32)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32, i32)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, i32, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, i32)*, i32 (%tango.time.chrono.Gregorian.Gregorian*, i32, i32)*, i32 (%tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Time*, i32, i32)*, i1 (%tango.time.chrono.Calendar.Calendar*, i32)*, i1 (%tango.time.chrono.Gregorian.Gregorian*, i32, i32)*, %"Act[]" (%tango.time.chrono.Gregorian.Gregorian*)*, i32 (%tango.time.chrono.Gregorian.Gregorian*)*, void (%tango.time.Time.Time*, %tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*, i32, i1)*, void (%tango.time.Time.Time*, %tango.time.chrono.Gregorian.Gregorian*, %tango.time.Time.Time*, i32)*, i32 (%tango.time.chrono.Gregorian.Gregorian*)* } + %"ubyte[]" = type { i32, i8* } + %"uint delegate(char[])" = type { i8*, i32 (i8*, %"byte[]")* } + %"uint delegate(void[])" = type { i8*, i32 (i8*, %"byte[]")* } + %"uint[]" = type { i32, i32* } + %"void delegate(char[])" = type { i8*, void (i8*, %"byte[]")* } + %"void delegate(uint pos)" = type { i8*, void (i8*, i32)* } + %"void*[]" = type { i32, i8** } + %"void[]" = type { i32, i8* } + %"wchar[]" = type { i32, i16* } + %"wchar[][]" = type { i32, %"wchar[]"* } +@_D5tango3net3ftp9FtpClient10FtpAddress6__initZ = constant %tango.net.ftp.FtpClient.FtpAddress { %"byte[]" zeroinitializer, %"byte[]" zeroinitializer, %"byte[]" { i32 9, i8* getelementptr ([10 x i8]* @.str, i32 0, i32 0) }, %"byte[]" { i32 19, i8* getelementptr ([20 x i8]* @.str1, i32 0, i32 0) }, i32 21 }, align 4 ; <%tango.net.ftp.FtpClient.FtpAddress*> [#uses=1] +@.str = internal constant [10 x i8] c"anonymous\00" ; <[10 x i8]*> [#uses=1] +@.str1 = internal constant [20 x i8] c"anonymous@anonymous\00" ; <[20 x i8]*> [#uses=1] +@_D46TypeInfo_S5tango3net3ftp9FtpClient10FtpAddress6__initZ = linkonce_odr constant %20 { %object.TypeInfo.__vtbl* @_D15TypeInfo_Struct6__vtblZ, i8* null, %"byte[]" { i32 34, i8* getelementptr ([35 x i8]* @.str2, i32 0, i32 0) }, %"byte[]" { i32 36, i8* bitcast (%tango.net.ftp.FtpClient.FtpAddress* @_D5tango3net3ftp9FtpClient10FtpAddress6__initZ to i8*) }, i8* null, i8* null, i8* null, i8* null, i32 1 } ; <%20*> [#uses=1] +@_D6Object7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=11] +@_D15TypeInfo_Struct6__vtblZ = external constant %object.TypeInfo.__vtbl ; <%object.TypeInfo.__vtbl*> [#uses=5] +@.str2 = internal constant [35 x i8] c"tango.net.ftp.FtpClient.FtpAddress\00" ; <[35 x i8]*> [#uses=1] +@_D5tango3net3ftp9FtpClient11FtpResponse6__initZ = constant %tango.net.ftp.FtpClient.FtpResponse { [3 x i8] c"000", %"byte[]" zeroinitializer }, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] +@_D5tango3net3ftp9FtpClient19FtpConnectionDetail6__initZ = constant %tango.net.ftp.FtpClient.FtpConnectionDetail { i32 1, %tango.net.Socket.Address* null, %tango.net.Socket.Address* null }, align 4 ; <%tango.net.ftp.FtpClient.FtpConnectionDetail*> [#uses=0] +@_D5tango3net3ftp9FtpClient10FtpFeature6__initZ = constant %tango.net.ftp.FtpClient.FtpFeature zeroinitializer, align 4 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=1] +@_D46TypeInfo_S5tango3net3ftp9FtpClient10FtpFeature6__initZ = linkonce_odr constant %20 { %object.TypeInfo.__vtbl* @_D15TypeInfo_Struct6__vtblZ, i8* null, %"byte[]" { i32 34, i8* getelementptr ([35 x i8]* @.str5, i32 0, i32 0) }, %"byte[]" { i32 16, i8* bitcast (%tango.net.ftp.FtpClient.FtpFeature* @_D5tango3net3ftp9FtpClient10FtpFeature6__initZ to i8*) }, i8* null, i8* null, i8* null, i8* null, i32 1 } ; <%20*> [#uses=1] +@.str5 = internal constant [35 x i8] c"tango.net.ftp.FtpClient.FtpFeature\00" ; <[35 x i8]*> [#uses=1] +@_D5tango3net3ftp9FtpClient11FtpFileInfo6__initZ = constant %tango.net.ftp.FtpClient.FtpFileInfo { %"byte[]" zeroinitializer, i32 0, i64 -1, %tango.time.Time.Time { i64 3155378975999999999 }, %tango.time.Time.Time { i64 3155378975999999999 }, %"byte[]" zeroinitializer, i8* null }, align 4 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=1] +@_D5tango4time4Time4Time3maxS5tango4time4Time4Time = external constant %tango.time.Time.Time, align 4 ; <%tango.time.Time.Time*> [#uses=1] +@_D47TypeInfo_S5tango3net3ftp9FtpClient11FtpFileInfo6__initZ = linkonce_odr constant %20 { %object.TypeInfo.__vtbl* @_D15TypeInfo_Struct6__vtblZ, i8* null, %"byte[]" { i32 35, i8* getelementptr ([36 x i8]* @.str6, i32 0, i32 0) }, %"byte[]" { i32 48, i8* bitcast (%tango.net.ftp.FtpClient.FtpFileInfo* @_D5tango3net3ftp9FtpClient11FtpFileInfo6__initZ to i8*) }, i8* null, i8* null, i8* null, i8* null, i32 1 } ; <%20*> [#uses=1] +@.str6 = internal constant [36 x i8] c"tango.net.ftp.FtpClient.FtpFileInfo\00" ; <[36 x i8]*> [#uses=1] +@_D9Exception7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=1] +@_D5tango3net3ftp9FtpClient12FtpException7__ClassZ = global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 40, i8* bitcast (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ to i8*) }, %"byte[]" { i32 36, i8* getelementptr ([37 x i8]* @.str7, i32 0, i32 0) }, %"void*[]" { i32 6, i8** bitcast (%tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D9Exception7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D48TypeInfo_C5tango3net3ftp9FtpClient12FtpException6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=17] +@_D5tango3net3ftp9FtpClient12FtpException6__initZ = constant %tango.net.ftp.FtpClient.FtpException { %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, i8* null, %"byte[]" zeroinitializer, %"byte[]" zeroinitializer, i32 0, %object.Exception.TraceInfo* null, %object.Exception* null, [3 x i8] c"000" }, align 4 ; <%tango.net.ftp.FtpClient.FtpException*> [#uses=2] +@_D5tango3net3ftp9FtpClient12FtpException6__vtblZ = constant %tango.net.ftp.FtpClient.FtpException.__vtbl { %object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ, %"byte[]" (%tango.net.ftp.FtpClient.FtpException*)* @_D5tango3net3ftp9FtpClient12FtpException8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi, void (%object.Exception*, %"void delegate(char[])")* @_D6object9Exception8writeOutMFDFAaZvZv } ; <%tango.net.ftp.FtpClient.FtpException.__vtbl*> [#uses=12] +@_D48TypeInfo_C5tango3net3ftp9FtpClient12FtpException6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@_D14TypeInfo_Class6__vtblZ = external constant %object.TypeInfo.__vtbl ; <%object.TypeInfo.__vtbl*> [#uses=10] +@_D9ClassInfo6__vtblZ = external constant %object.ClassInfo.__vtbl ; <%object.ClassInfo.__vtbl*> [#uses=10] +@.str7 = internal constant [37 x i8] c"tango.net.ftp.FtpClient.FtpException\00" ; <[37 x i8]*> [#uses=1] +@_D5tango3net3ftp6Telnet6Telnet7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=1] +@_D5tango3net3ftp9FtpClient13FTPConnection7__ClassZ = global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 8252, i8* bitcast (%tango.net.ftp.FtpClient.FTPConnection* @_D5tango3net3ftp9FtpClient13FTPConnection6__initZ to i8*) }, %"byte[]" { i32 37, i8* getelementptr ([38 x i8]* @.str9, i32 0, i32 0) }, %"void*[]" { i32 63, i8** bitcast (%tango.net.ftp.FtpClient.FTPConnection.__vtbl* @_D5tango3net3ftp9FtpClient13FTPConnection6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D5tango3net3ftp6Telnet6Telnet7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* bitcast (%tango.net.ftp.FtpClient.FTPConnection* (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection5_ctorMFZC5tango3net3ftp9FtpClient13FTPConnection to i8*), %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D49TypeInfo_C5tango3net3ftp9FtpClient13FTPConnection6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=3] +@_D5tango3net3ftp9FtpClient13FTPConnection6__initZ = constant %tango.net.ftp.FtpClient.FTPConnection { %tango.net.ftp.FtpClient.FTPConnection.__vtbl* @_D5tango3net3ftp9FtpClient13FTPConnection6__vtblZ, i8* null, %tango.net.SocketConduit.SocketConduit* null, %"tango.io.stream.Iterator.Iterator!(char).Iterator"* null, [8192 x i8] c"\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF\FF", %"FtpFeature[]" zeroinitializer, %tango.net.ftp.FtpClient.FtpConnectionDetail { i32 1, %tango.net.Socket.Address* null, %tango.net.Socket.Address* null }, i32 0, %"byte[]" { i32 0, i8* getelementptr ([1 x i8]* @.str8, i32 0, i32 0) }, %tango.net.SocketConduit.SocketConduit* null, %tango.time.Time.Time { i64 50000000 } }, align 4 ; <%tango.net.ftp.FtpClient.FTPConnection*> [#uses=1] +@_D5tango3net3ftp9FtpClient13FTPConnection6__vtblZ = constant %tango.net.ftp.FtpClient.FTPConnection.__vtbl { %object.ClassInfo* @_D5tango3net3ftp9FtpClient13FTPConnection7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection9exceptionMFAaZv, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")* @_D5tango3net3ftp6Telnet6Telnet8sendlineMFAvZv, void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")* @_D5tango3net3ftp6Telnet6Telnet8sendDataMFAvZv, %"byte[]" (%tango.net.ftp.Telnet.Telnet*)* @_D5tango3net3ftp6Telnet6Telnet8readLineMFZAa, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32)* @_D5tango3net3ftp6Telnet6Telnet19findAvailableServerMFAaiZC5tango3net13SocketConduit13SocketConduit, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection7timeoutMFZS5tango4time4Time8TimeSpan, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.time.Time.Time*)* @_D5tango3net3ftp9FtpClient13FTPConnection7timeoutMFS5tango4time4Time8TimeSpanZv, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection12shutdownTimeMFZS5tango4time4Time8TimeSpan, %"FtpFeature[]" (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection17supportedFeaturesMFZAS5tango3net3ftp9FtpClient10FtpFeature, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)* @_D5tango3net3ftp9FtpClient13FTPConnection9exceptionMFS5tango3net3ftp9FtpClient11FtpResponseZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpAddress*)* @_D5tango3net3ftp9FtpClient13FTPConnection7connectMFS5tango3net3ftp9FtpClient10FtpAddressZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"byte[]", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection7connectMFAaAaAakZv, void (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection5closeMFZv, void (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection10setPassiveMFZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", i16, %"byte[]", i16)* @_D5tango3net3ftp9FtpClient13FTPConnection9setActiveMFAatAatZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection2cdMFAaZv, void (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection4cdupMFZv, %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection3cwdMFZAa, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection5chmodMFAaiZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection3delMFAaZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection2rmMFAaZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection6renameMFAaAaZv, i32 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection5existMFAaZi, i32 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection4sizeMFAaE5tango3net3ftp9FtpClient9FtpFormatZk, void (%tango.net.ftp.FtpClient.FTPConnection*, i32)* @_D5tango3net3ftp9FtpClient13FTPConnection4typeMFE5tango3net3ftp9FtpClient9FtpFormatZv, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection8modifiedMFAaZS5tango4time4Time4Time, void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection12parseTimevalMFAaZS5tango4time4Time4Time, void (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection4noopMFZv, %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection5mkdirMFAaZAa, void (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection11getFeaturesMFZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")* @_D5tango3net3ftp9FtpClient13FTPConnection11sendCommandMFAaAAaXv, void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection12readResponseMFAaZS5tango3net3ftp9FtpClient11FtpResponse, void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection12readResponseMFZS5tango3net3ftp9FtpClient11FtpResponse, %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)* @_D5tango3net3ftp9FtpClient13FTPConnection8parse257MFS5tango3net3ftp9FtpClient11FtpResponseZAa, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection13getDataSocketMFZC5tango3net13SocketConduit13SocketConduit, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection14connectPassiveMFZC5tango3net13SocketConduit13SocketConduit, i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection11isSupportedMFAaZb, i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection12is_supportedMFAaZb, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit**)* @_D5tango3net3ftp9FtpClient13FTPConnection17prepareDataSocketMFKC5tango3net13SocketConduit13SocketConduitZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)* @_D5tango3net3ftp9FtpClient13FTPConnection17finishDataCommandMFC5tango3net13SocketConduit13SocketConduitZv, %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")* @_D5tango3net3ftp9FtpClient13FTPConnection18processDataCommandMFAaAAaXC5tango3net13SocketConduit13SocketConduit, %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection2lsMFAaZAS5tango3net3ftp9FtpClient11FtpFileInfo, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)")* @_D5tango3net3ftp9FtpClient13FTPConnection10readStreamMFC5tango3net13SocketConduit13SocketConduitC5tango2io5model8IConduit12OutputStreamDFkZvZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)")* @_D5tango3net3ftp9FtpClient13FTPConnection10sendStreamMFC5tango3net13SocketConduit13SocketConduitC5tango2io5model8IConduit11InputStreamDFkZvZv, %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection15sendListCommandMFAaZAS5tango3net3ftp9FtpClient11FtpFileInfo, void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo, void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection13parseMlstLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo, void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection11getFileInfoMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"void delegate(uint pos)", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection3putMFAaAaDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection3putMFAaC5tango2io5model8IConduit11InputStreamDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection6appendMFAaC5tango2io5model8IConduit11InputStreamDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv, void (%tango.net.ftp.FtpClient.FTPConnection*, i32)* @_D5tango3net3ftp9FtpClient13FTPConnection11restartSeekMFkZv, void (%tango.net.ftp.FtpClient.FTPConnection*, i64)* @_D5tango3net3ftp9FtpClient13FTPConnection8allocateMFlZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"void delegate(uint pos)", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection3getMFAaAaDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv, void (%tango.net.ftp.FtpClient.FTPConnection*)* @_D5tango3net3ftp9FtpClient13FTPConnection10enableUTF8MFZv, void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)", i32)* @_D5tango3net3ftp9FtpClient13FTPConnection3getMFAaC5tango2io5model8IConduit12OutputStreamDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv, %tango.io.model.IConduit.InputStream* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection5inputMFAaZC5tango2io5model8IConduit11InputStream, %tango.io.model.IConduit.OutputStream* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")* @_D5tango3net3ftp9FtpClient13FTPConnection6outputMFAaZC5tango2io5model8IConduit12OutputStream } ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=2] +@.str8 = internal constant [1 x i8] zeroinitializer ; <[1 x i8]*> [#uses=1] +@_D49TypeInfo_C5tango3net3ftp9FtpClient13FTPConnection6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango3net3ftp9FtpClient13FTPConnection7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str9 = internal constant [38 x i8] c"tango.net.ftp.FtpClient.FTPConnection\00" ; <[38 x i8]*> [#uses=1] +@_D5tango4text5Regex11__T4TNFATwZ4TNFA7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 56, i8* bitcast (%"tango.text.Regex.TNFA!(dchar).TNFA"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA6__initZ to i8*) }, %"byte[]" { i32 34, i8* getelementptr ([35 x i8]* @.str51, i32 0, i32 0) }, %"void*[]" { i32 7, i8** bitcast (%"tango.text.Regex.TNFA!(dchar).TNFA.__vtbl"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D45TypeInfo_C5tango4text5Regex11__T4TNFATwZ4TNFA6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=2] +@_D5tango4text5Regex11__T4TNFATwZ4TNFA6__initZ = weak_odr constant %"tango.text.Regex.TNFA!(dchar).TNFA" { %"tango.text.Regex.TNFA!(dchar).TNFA.__vtbl"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA6__vtblZ, i8* null, %"Act[]" zeroinitializer, %"TNFAState[]" zeroinitializer, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* null, i1 false, i32 0, i32 0, i32 0, %"tango.text.Regex.List!(TNFATransition).List"* null, i8* null, i8* null }, align 4 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] +@_D5tango4text5Regex11__T4TNFATwZ4TNFA6__vtblZ = weak_odr constant %"tango.text.Regex.TNFA!(dchar).TNFA.__vtbl" { %object.ClassInfo* @_D5tango4text5Regex11__T4TNFATwZ4TNFA7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi, i32 (%"tango.text.Regex.TNFA!(dchar).TNFA"*)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA8tagCountMFZk, void (%"tango.text.Regex.TNFA!(dchar).TNFA"*, i1)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv } ; <%"tango.text.Regex.TNFA!(dchar).TNFA.__vtbl"*> [#uses=2] +@_D5tango4text5Regex11__T4TNFATwZ4TNFA14operator_namesAAa = weak_odr constant %"char[][]" { i32 17, %"byte[]"* getelementptr ([17 x %"byte[]"]* @.constarray, i32 0, i32 0) }, align 4 ; <%"char[][]"*> [#uses=0] +@.str10 = internal constant [4 x i8] c"EOS\00" ; <[4 x i8]*> [#uses=1] +@.str11 = internal constant [7 x i8] c"concat\00" ; <[7 x i8]*> [#uses=1] +@.str12 = internal constant [2 x i8] c"|\00" ; <[2 x i8]*> [#uses=1] +@.str13 = internal constant [2 x i8] c"(\00" ; <[2 x i8]*> [#uses=1] +@.str14 = internal constant [2 x i8] c")\00" ; <[2 x i8]*> [#uses=1] +@.str15 = internal constant [2 x i8] c"?\00" ; <[2 x i8]*> [#uses=1] +@.str16 = internal constant [2 x i8] c"*\00" ; <[2 x i8]*> [#uses=1] +@.str17 = internal constant [2 x i8] c"+\00" ; <[2 x i8]*> [#uses=1] +@.str18 = internal constant [3 x i8] c"??\00" ; <[3 x i8]*> [#uses=1] +@.str19 = internal constant [3 x i8] c"*?\00" ; <[3 x i8]*> [#uses=1] +@.str20 = internal constant [3 x i8] c"+?\00" ; <[3 x i8]*> [#uses=1] +@.str21 = internal constant [4 x i8] c"??x\00" ; <[4 x i8]*> [#uses=1] +@.str22 = internal constant [4 x i8] c"*?x\00" ; <[4 x i8]*> [#uses=1] +@.str23 = internal constant [4 x i8] c"+?x\00" ; <[4 x i8]*> [#uses=1] +@.str24 = internal constant [3 x i8] c"(?\00" ; <[3 x i8]*> [#uses=1] +@.str25 = internal constant [6 x i8] c"{x,y}\00" ; <[6 x i8]*> [#uses=1] +@.str26 = internal constant [7 x i8] c"{x,y}?\00" ; <[7 x i8]*> [#uses=1] +@.constarray = internal global [17 x %"byte[]"] [%"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str10, i32 0, i32 0) }, %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str11, i32 0, i32 0) }, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str12, i32 0, i32 0) }, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str13, i32 0, i32 0) }, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str14, i32 0, i32 0) }, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0) }, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str16, i32 0, i32 0) }, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str17, i32 0, i32 0) }, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str18, i32 0, i32 0) }, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str19, i32 0, i32 0) }, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str20, i32 0, i32 0) }, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str21, i32 0, i32 0) }, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str22, i32 0, i32 0) }, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str23, i32 0, i32 0) }, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str24, i32 0, i32 0) }, %"byte[]" { i32 5, i8* getelementptr ([6 x i8]* @.str25, i32 0, i32 0) }, %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str26, i32 0, i32 0) }] ; <[17 x %"byte[]"]*> [#uses=1] +@_D5tango4text5Regex11__T4TNFATwZ4TNFA12action_namesAAa = weak_odr constant %"char[][]" { i32 6, %"byte[]"* getelementptr ([6 x %"byte[]"]* @.constarray33, i32 0, i32 0) }, align 4 ; <%"char[][]"*> [#uses=0] +@.str27 = internal constant [13 x i8] c"push+advance\00" ; <[13 x i8]*> [#uses=1] +@.str28 = internal constant [9 x i8] c"pop+copy\00" ; <[9 x i8]*> [#uses=1] +@.str29 = internal constant [12 x i8] c"pop+advance\00" ; <[12 x i8]*> [#uses=1] +@.str30 = internal constant [17 x i8] c"pop+copy+advance\00" ; <[17 x i8]*> [#uses=1] +@.str31 = internal constant [5 x i8] c"done\00" ; <[5 x i8]*> [#uses=1] +@.str32 = internal constant [6 x i8] c"error\00" ; <[6 x i8]*> [#uses=1] +@.constarray33 = internal global [6 x %"byte[]"] [%"byte[]" { i32 12, i8* getelementptr ([13 x i8]* @.str27, i32 0, i32 0) }, %"byte[]" { i32 8, i8* getelementptr ([9 x i8]* @.str28, i32 0, i32 0) }, %"byte[]" { i32 11, i8* getelementptr ([12 x i8]* @.str29, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str30, i32 0, i32 0) }, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str31, i32 0, i32 0) }, %"byte[]" { i32 5, i8* getelementptr ([6 x i8]* @.str32, i32 0, i32 0) }] ; <[6 x %"byte[]"]*> [#uses=1] +@_D5tango4text5Regex11__T4TNFATwZ4TNFA13action_lookupAE5tango4text5Regex11__T4TNFATwZ4TNFA3Act = weak_odr constant %"Act[]" { i32 289, i32* getelementptr ([289 x i32]* @.constarray34, i32 0, i32 0) }, align 4 ; <%"Act[]"*> [#uses=0] +@.constarray34 = internal global [289 x i32] [i32 4, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 1, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 5, i32 0, i32 0, i32 0, i32 3, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1] ; <[289 x i32]*> [#uses=2] +@_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 52, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to i8*) }, %"byte[]" { i32 54, i8* getelementptr ([55 x i8]* @.str47, i32 0, i32 0) }, %"void*[]" { i32 5, i8** bitcast (%object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D67TypeInfo_C5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=19] +@_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ = weak_odr constant %"tango.text.Regex.TNFATransition!(dchar).TNFATransition" { %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, i8* null, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* null, %"tango.text.Regex.Predicate!(dchar).Predicate" { %"tango.text.Regex.CharClass!(dchar).CharClass" zeroinitializer, i32 0, i32 0, %"byte[]" zeroinitializer, i32 65535 }, i32 0, i32 0, i32 0 }, align 4 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=2] +@_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ = weak_odr constant %object.ModuleInfo.__vtbl { %object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi } ; <%object.ModuleInfo.__vtbl*> [#uses=19] +@_D5tango4text5Regex16__T9CharClassTwZ9CharClass13line_startendS5tango4text5Regex16__T9CharClassTwZ9CharClass = external constant %"tango.text.Regex.CharClass!(dchar).CharClass", align 4 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=2] +@_D5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ = external constant %tango.net.Socket.timeval, align 4 ; <%tango.net.Socket.timeval*> [#uses=1] +@_D55TypeInfo_S5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ = linkonce_odr constant %21 { %object.TypeInfo.__vtbl* @_D15TypeInfo_Struct6__vtblZ, i8* null, %"byte[]" { i32 44, i8* getelementptr ([45 x i8]* @.str35, i32 0, i32 0) }, %"byte[]" { i32 8, i8* bitcast (%tango.net.Socket.timeval* @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to i8*) }, i8* null, i32 (%tango.net.Socket.timeval*, %tango.net.Socket.timeval*)* @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange8opEqualsMFPS5tango4text5Regex16__T9CharRangeTwZ9CharRangeZi, i32 (%tango.net.Socket.timeval*, %tango.net.Socket.timeval*)* @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange5opCmpMFPS5tango4text5Regex16__T9CharRangeTwZ9CharRangeZi, %"byte[]" (%tango.net.Socket.timeval*)* @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange8toStringMFZAa, i32 0 } ; <%21*> [#uses=1] +@.str35 = internal constant [45 x i8] c"tango.text.Regex.CharRange!(dchar).CharRange\00" ; <[45 x i8]*> [#uses=1] +@_D5tango4text5Regex16__T9CharClassTwZ9CharClass5digitS5tango4text5Regex16__T9CharClassTwZ9CharClass = external constant %"tango.text.Regex.CharClass!(dchar).CharClass", align 4 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=2] +@_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass = external constant %"tango.text.Regex.CharClass!(dchar).CharClass", align 4 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=6] +@_D5tango4text5Regex16__T9CharClassTwZ9CharClass8any_charS5tango4text5Regex16__T9CharClassTwZ9CharClass = external constant %"tango.text.Regex.CharClass!(dchar).CharClass", align 4 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=3] +@_D5tango4text5Regex16__T9CharClassTwZ9CharClass8dot_operS5tango4text5Regex16__T9CharClassTwZ9CharClass = external constant %"tango.text.Regex.CharClass!(dchar).CharClass", align 4 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=1] +@_D5tango4text5Regex16__T9CharClassTwZ9CharClass9alphanum_S5tango4text5Regex16__T9CharClassTwZ9CharClass = external constant %"tango.text.Regex.CharClass!(dchar).CharClass", align 4 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=2] +@_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 20, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to i8*) }, %"byte[]" { i32 44, i8* getelementptr ([45 x i8]* @.str46, i32 0, i32 0) }, %"void*[]" { i32 5, i8** bitcast (%object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* (%"tango.text.Regex.TNFAState!(dchar).TNFAState"*)* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState5_ctorMFZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState to i8*), %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D55TypeInfo_C5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=16] +@_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ = weak_odr constant %"tango.text.Regex.TNFAState!(dchar).TNFAState" { %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, i8* null, i1 false, i1 false, i32 0, %"tango.text.Regex.List!(TNFATransition).List"* null }, align 4 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] +@_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ = weak_odr constant %object.ModuleInfo.__vtbl { %object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi } ; <%object.ModuleInfo.__vtbl*> [#uses=16] +@_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 20, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ to i8*) }, %"byte[]" { i32 43, i8* getelementptr ([44 x i8]* @.str45, i32 0, i32 0) }, %"void*[]" { i32 22, i8** bitcast (%"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 36, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D102TypeInfo_C5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=67] +@_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ = weak_odr constant %"tango.text.Regex.List!(TNFATransition).List" { %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, i8* null, i32 0, %"tango.text.Regex.List!(TNFATransition).List.Element"* null, %"tango.text.Regex.List!(TNFATransition).List.Element"* null }, align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] +@_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ = weak_odr constant %"tango.text.Regex.List!(TNFATransition).List.__vtbl" { %object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11opCatAssignMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11insertAfterMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11insertAfterMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11opCatAssignMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4ListZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List9pushFrontMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List12insertBeforeMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List12insertBeforeMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List9pushFrontMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4ListZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List, i32 (%"tango.text.Regex.List!(TNFATransition).List"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6lengthMFZk, i1 (%"tango.text.Regex.List!(TNFATransition).List"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List5emptyMFZb, void (%"tango.text.Regex.List!(TNFATransition).List"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List5clearMFZv, void (%"tango.text.Regex.List!(TNFATransition).List"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List3popMFZv, void (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6removeMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZv, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref Element)")* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List8elementsMFDFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZiZi, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref Element)")* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List16elements_reverseMFDFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZiZi, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7opApplyMFDFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZiZi, i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List14opApplyReverseMFDFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZiZi } ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=67] +@_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 24, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ to i8*) }, %"byte[]" { i32 51, i8* getelementptr ([52 x i8]* @.str44, i32 0, i32 0) }, %"void*[]" { i32 5, i8** bitcast (%object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D110TypeInfo_C5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=8] +@_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ = weak_odr constant %"tango.text.Regex.List!(TNFATransition).List.Element" { %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, i8* null, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* null, %"tango.text.Regex.List!(TNFATransition).List.Element"* null, %"tango.text.Regex.List!(TNFATransition).List.Element"* null, %"tango.text.Regex.List!(TNFATransition).List"* null }, align 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] +@_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ = weak_odr constant %object.ModuleInfo.__vtbl { %object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi } ; <%object.ModuleInfo.__vtbl*> [#uses=8] +@_D110TypeInfo_C5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str44 = internal constant [52 x i8] c"tango.text.Regex.List!(TNFATransition).List.Element\00" ; <[52 x i8]*> [#uses=1] +@_D102TypeInfo_C5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str45 = internal constant [44 x i8] c"tango.text.Regex.List!(TNFATransition).List\00" ; <[44 x i8]*> [#uses=1] +@_D55TypeInfo_C5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str46 = internal constant [45 x i8] c"tango.text.Regex.TNFAState!(dchar).TNFAState\00" ; <[45 x i8]*> [#uses=1] +@_D67TypeInfo_C5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str47 = internal constant [55 x i8] c"tango.text.Regex.TNFATransition!(dchar).TNFATransition\00" ; <[55 x i8]*> [#uses=1] +@_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 28, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ to i8*) }, %"byte[]" { i32 50, i8* getelementptr ([51 x i8]* @.str48, i32 0, i32 0) }, %"void*[]" { i32 7, i8** bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment5_ctorMFZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment to i8*), %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D63TypeInfo_C5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=13] +@_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ = weak_odr constant %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment" { %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, i8* null, %"tango.text.Regex.List!(TNFATransition).List"* null, %"tango.text.Regex.List!(TNFATransition).List"* null, %"tango.text.Regex.List!(TNFATransition).List"* null, %"tango.text.Regex.List!(TNFATransition).List"* null, i1 false }, align 4 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] +@_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ = weak_odr constant %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl" { %object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi, void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment8setEntryMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv, void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7setExitMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv } ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=13] +@_D63TypeInfo_C5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str48 = internal constant [51 x i8] c"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment\00" ; <[51 x i8]*> [#uses=1] +@_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 20, i8* bitcast (%"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__initZ to i8*) }, %"byte[]" { i32 41, i8* getelementptr ([42 x i8]* @.str50, i32 0, i32 0) }, %"void*[]" { i32 22, i8** bitcast (%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 36, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D98TypeInfo_C5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=3] +@_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__initZ = weak_odr constant %"tango.text.Regex.List!(TNFAFragment).List" { %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__vtblZ, i8* null, i32 0, %"tango.text.Regex.List!(TNFAFragment).List.Element"* null, %"tango.text.Regex.List!(TNFAFragment).List.Element"* null }, align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] +@_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__vtblZ = weak_odr constant %"tango.text.Regex.List!(TNFAFragment).List.__vtbl" { %object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11opCatAssignMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11insertAfterMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11insertAfterMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11opCatAssignMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List9pushFrontMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List12insertBeforeMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List12insertBeforeMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List9pushFrontMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6lengthMFZk, i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List5emptyMFZb, void (%"tango.text.Regex.List!(TNFAFragment).List"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List5clearMFZv, void (%"tango.text.Regex.List!(TNFAFragment).List"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List3popMFZv, void (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6removeMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZv, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %1)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List8elementsMFDFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZiZi, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %1)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List16elements_reverseMFDFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZiZi, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %"int delegate(ref TNFAFragment)")* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7opApplyMFDFKC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZiZi, i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %"int delegate(ref TNFAFragment)")* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List14opApplyReverseMFDFKC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZiZi } ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=3] +@_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ = weak_odr global %object.ClassInfo { %object.ClassInfo.__vtbl* @_D9ClassInfo6__vtblZ, i8* null, %"byte[]" { i32 24, i8* bitcast (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ to i8*) }, %"byte[]" { i32 49, i8* getelementptr ([50 x i8]* @.str49, i32 0, i32 0) }, %"void*[]" { i32 5, i8** bitcast (%object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ to i8**) }, %"Interface[]" zeroinitializer, %object.ClassInfo* @_D6Object7__ClassZ, i8* null, i8* null, i32 44, i8* null, %"OffsetTypeInfo[]" zeroinitializer, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D106TypeInfo_C5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ to %object.TypeInfo*) } ; <%object.ClassInfo*> [#uses=8] +@_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ = weak_odr constant %"tango.text.Regex.List!(TNFAFragment).List.Element" { %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, i8* null, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* null, %"tango.text.Regex.List!(TNFAFragment).List.Element"* null, %"tango.text.Regex.List!(TNFAFragment).List.Element"* null, %"tango.text.Regex.List!(TNFAFragment).List"* null }, align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] +@_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ = weak_odr constant %object.ModuleInfo.__vtbl { %object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ, %"byte[]" (%object.Object*)* @_D6object6Object8toStringMFZAa, i32 (%object.Object*)* @_D6object6Object6toHashMFZk, i32 (%object.Object*, %object.Object*)* @_D6object6Object5opCmpMFC6ObjectZi, i32 (%object.Object*, %object.Object*)* @_D6object6Object8opEqualsMFC6ObjectZi } ; <%object.ModuleInfo.__vtbl*> [#uses=8] +@_D106TypeInfo_C5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str49 = internal constant [50 x i8] c"tango.text.Regex.List!(TNFAFragment).List.Element\00" ; <[50 x i8]*> [#uses=1] +@_D98TypeInfo_C5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str50 = internal constant [42 x i8] c"tango.text.Regex.List!(TNFAFragment).List\00" ; <[42 x i8]*> [#uses=1] +@_D45TypeInfo_C5tango4text5Regex11__T4TNFATwZ4TNFA6__initZ = linkonce_odr constant %object.TypeInfo_Class { %object.TypeInfo.__vtbl* @_D14TypeInfo_Class6__vtblZ, i8* null, %object.ClassInfo* @_D5tango4text5Regex11__T4TNFATwZ4TNFA7__ClassZ } ; <%object.TypeInfo_Class*> [#uses=1] +@.str51 = internal constant [35 x i8] c"tango.text.Regex.TNFA!(dchar).TNFA\00" ; <[35 x i8]*> [#uses=1] +@_D5tango4text7convert7Integer22__T14_FormatterInfoTaZ14_FormatterInfo6__initZ = weak_odr constant %nest.parseListLine zeroinitializer, align 4 ; <%nest.parseListLine*> [#uses=0] +@_D5tango4text4Util16__T9LineFructTaZ9LineFruct6__initZ = weak_odr constant %"tango.text.Util.LineFruct!(char).LineFruct" zeroinitializer, align 4 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=0] +@_D5tango4core5Array14__T7IsEqualTaZ7IsEqual6__initZ = weak_odr constant %"tango.core.Array.IsEqual!(char).IsEqual" zeroinitializer, align 1 ; <%"tango.core.Array.IsEqual!(char).IsEqual"*> [#uses=0] +@_D5tango4core6Traits63__T14isCallableTypeTS5tango4core5Array14__T7IsEqualTaZ7IsEqualZ14isCallableTypeb = weak_odr constant i1 true, align 1 ; [#uses=0] +@_D12TypeInfo_G4a6__initZ = linkonce_odr constant %object.TypeInfo_StaticArray { %object.TypeInfo.__vtbl* @_D20TypeInfo_StaticArray6__vtblZ, i8* null, %object.TypeInfo* @_D10TypeInfo_a6__initZ, i32 4 } ; <%object.TypeInfo_StaticArray*> [#uses=1] +@_D20TypeInfo_StaticArray6__vtblZ = external constant %object.TypeInfo.__vtbl ; <%object.TypeInfo.__vtbl*> [#uses=1] +@_D10TypeInfo_a6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=1] +@_D5tango4text4Util18__T10DelimFructTaZ10DelimFruct6__initZ = weak_odr constant %tango.net.ftp.FtpClient.FtpFeature zeroinitializer, align 4 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=0] +@_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack6__initZ = weak_odr constant %"tango.text.Regex.Stack!(Operator).Stack" zeroinitializer, align 4 ; <%"tango.text.Regex.Stack!(Operator).Stack"*> [#uses=0] +@_D55TypeInfo_AE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Enum* @_D54TypeInfo_E5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@_D14TypeInfo_Array6__vtblZ = external constant %object.TypeInfo.__vtbl ; <%object.TypeInfo.__vtbl*> [#uses=8] +@_D54TypeInfo_E5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ = linkonce_odr constant %object.TypeInfo_Enum { %object.TypeInfo.__vtbl* @_D13TypeInfo_Enum6__vtblZ, i8* null, %object.TypeInfo* @_D10TypeInfo_i6__initZ, %"byte[]" { i32 43, i8* getelementptr ([44 x i8]* @.str57, i32 0, i32 0) }, %"byte[]" zeroinitializer } ; <%object.TypeInfo_Enum*> [#uses=1] +@_D13TypeInfo_Enum6__vtblZ = external constant %object.TypeInfo.__vtbl ; <%object.TypeInfo.__vtbl*> [#uses=1] +@_D10TypeInfo_i6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=1] +@.str57 = internal constant [44 x i8] c"tango.text.Regex.TNFA!(dchar).TNFA.Operator\00" ; <[44 x i8]*> [#uses=1] +@_D5tango4text5Regex12__T5StackTkZ5Stack6__initZ = weak_odr constant %"tango.text.Regex.Stack!(Operator).Stack" zeroinitializer, align 4 ; <%"tango.text.Regex.Stack!(Operator).Stack"*> [#uses=0] +@_D5tango4text5Regex11__T4PairTkZ4Pair6__initZ = weak_odr constant %tango.net.Socket.timeval zeroinitializer, align 4 ; <%tango.net.Socket.timeval*> [#uses=1] +@_D45TypeInfo_S5tango4text5Regex11__T4PairTkZ4Pair6__initZ = linkonce_odr constant %20 { %object.TypeInfo.__vtbl* @_D15TypeInfo_Struct6__vtblZ, i8* null, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str59, i32 0, i32 0) }, %"byte[]" { i32 8, i8* bitcast (%tango.net.Socket.timeval* @_D5tango4text5Regex11__T4PairTkZ4Pair6__initZ to i8*) }, i8* null, i8* null, i8* null, i8* null, i32 0 } ; <%20*> [#uses=1] +@.str59 = internal constant [34 x i8] c"tango.text.Regex.Pair!(uint).Pair\00" ; <[34 x i8]*> [#uses=1] +@_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack6__initZ = weak_odr constant %"tango.text.Regex.Stack!(Pair!(uint)).Stack" zeroinitializer, align 4 ; <%"tango.text.Regex.Stack!(Pair!(uint)).Stack"*> [#uses=0] +@_D46TypeInfo_AS5tango4text5Regex11__T4PairTkZ4Pair6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%20* @_D45TypeInfo_S5tango4text5Regex11__T4PairTkZ4Pair6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack6__initZ = weak_odr constant %"tango.text.Regex.Stack!(TNFATransition).Stack" zeroinitializer, align 4 ; <%"tango.text.Regex.Stack!(TNFATransition).Stack"*> [#uses=0] +@_D68TypeInfo_AC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D67TypeInfo_C5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%21* @_D55TypeInfo_S5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@.str65 = internal constant [7 x i8] c"ftp://\00" ; <[7 x i8]*> [#uses=1] +@_D11TypeInfo_Aa6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=67] +@.str66 = internal constant [4 x i8] c"420\00" ; <[4 x i8]*> [#uses=1] +@.str67 = internal constant [4 x i8] c"220\00" ; <[4 x i8]*> [#uses=1] +@.str68 = internal constant [5 x i8] c"USER\00" ; <[5 x i8]*> [#uses=1] +@.str69 = internal constant [4 x i8] c"331\00" ; <[4 x i8]*> [#uses=1] +@.str70 = internal constant [5 x i8] c"PASS\00" ; <[5 x i8]*> [#uses=1] +@.str71 = internal constant [4 x i8] c"230\00" ; <[4 x i8]*> [#uses=1] +@.str72 = internal constant [4 x i8] c"202\00" ; <[4 x i8]*> [#uses=1] +@.str73 = internal constant [5 x i8] c"QUIT\00" ; <[5 x i8]*> [#uses=1] +@.str74 = internal constant [4 x i8] c"221\00" ; <[4 x i8]*> [#uses=1] +@_D5tango3net6Socket11IPv4Address7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=8] +@_D5tango3net6Socket11IPv4Address6__initZ = external constant %22, align 4 ; <%22*> [#uses=1] +@_D5tango3net6Socket11IPv4Address6__vtblZ = external constant %tango.net.Socket.IPv4Address.__vtbl ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=5] +@.str75 = internal constant [4 x i8] c"CWD\00" ; <[4 x i8]*> [#uses=1] +@.str76 = internal constant [4 x i8] c"250\00" ; <[4 x i8]*> [#uses=1] +@.str77 = internal constant [5 x i8] c"CDUP\00" ; <[5 x i8]*> [#uses=1] +@.str78 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str79 = internal constant [4 x i8] c"250\00" ; <[4 x i8]*> [#uses=1] +@.str80 = internal constant [4 x i8] c"PWD\00" ; <[4 x i8]*> [#uses=1] +@.str81 = internal constant [4 x i8] c"257\00" ; <[4 x i8]*> [#uses=1] +@.str82 = internal constant [4 x i8] c"000\00" ; <[4 x i8]*> [#uses=3] +@.str84 = internal constant [11 x i8] c"SITE CHMOD\00" ; <[11 x i8]*> [#uses=1] +@.str85 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str86 = internal constant [5 x i8] c"DELE\00" ; <[5 x i8]*> [#uses=1] +@.str87 = internal constant [4 x i8] c"250\00" ; <[4 x i8]*> [#uses=1] +@.str88 = internal constant [4 x i8] c"250\00" ; <[4 x i8]*> [#uses=1] +@.str89 = internal constant [4 x i8] c"RMD\00" ; <[4 x i8]*> [#uses=1] +@.str90 = internal constant [4 x i8] c"250\00" ; <[4 x i8]*> [#uses=1] +@.str91 = internal constant [5 x i8] c"RNFR\00" ; <[5 x i8]*> [#uses=1] +@.str92 = internal constant [4 x i8] c"350\00" ; <[4 x i8]*> [#uses=1] +@.str93 = internal constant [5 x i8] c"RNTO\00" ; <[5 x i8]*> [#uses=1] +@.str94 = internal constant [4 x i8] c"250\00" ; <[4 x i8]*> [#uses=1] +@.str95 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@.str96 = internal constant [5 x i8] c"SIZE\00" ; <[5 x i8]*> [#uses=1] +@.str97 = internal constant [4 x i8] c"213\00" ; <[4 x i8]*> [#uses=1] +@.str98 = internal constant [5 x i8] c"TYPE\00" ; <[5 x i8]*> [#uses=1] +@.str99 = internal constant [2 x i8] c"A\00" ; <[2 x i8]*> [#uses=1] +@.str100 = internal constant [5 x i8] c"TYPE\00" ; <[5 x i8]*> [#uses=1] +@.str101 = internal constant [2 x i8] c"I\00" ; <[2 x i8]*> [#uses=1] +@.str102 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str103 = internal constant [5 x i8] c"MDTM\00" ; <[5 x i8]*> [#uses=1] +@.str104 = internal constant [4 x i8] c"213\00" ; <[4 x i8]*> [#uses=1] +@.str105 = internal constant [32 x i8] c"CLIENT: Unable to parse timeval\00" ; <[32 x i8]*> [#uses=1] +@.str106 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@_D5tango4time6chrono9Gregorian9Gregorian7genericC5tango4time6chrono9Gregorian9Gregorian = external global %tango.time.chrono.Gregorian.Gregorian*, align 4 ; <%tango.time.chrono.Gregorian.Gregorian**> [#uses=2] +@.str109 = internal constant [5 x i8] c"NOOP\00" ; <[5 x i8]*> [#uses=1] +@.str110 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str111 = internal constant [4 x i8] c"MKD\00" ; <[4 x i8]*> [#uses=1] +@.str112 = internal constant [4 x i8] c"257\00" ; <[4 x i8]*> [#uses=1] +@.str113 = internal constant [5 x i8] c"FEAT\00" ; <[5 x i8]*> [#uses=1] +@.str114 = internal constant [4 x i8] c"211\00" ; <[4 x i8]*> [#uses=1] +@_D47TypeInfo_AS5tango3net3ftp9FtpClient10FtpFeature6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%20* @_D46TypeInfo_S5tango3net3ftp9FtpClient10FtpFeature6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@.str115 = internal constant [5 x i8] c"FEAT\00" ; <[5 x i8]*> [#uses=1] +@.str117 = internal constant [3 x i8] c"\0D\0A\00", align 2 ; <[3 x i8]*> [#uses=1] +@.str118 = internal constant [4 x i8] c"500\00" ; <[4 x i8]*> [#uses=1] +@.str120 = internal constant [24 x i8] c"unknown connection type\00" ; <[24 x i8]*> [#uses=1] +@_D5tango3net13SocketConduit13SocketConduit7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=2] +@_D5tango3net13SocketConduit13SocketConduit6__initZ = external constant %23, align 4 ; <%23*> [#uses=1] +@_D5tango3net13SocketConduit13SocketConduit6__vtblZ = external constant %tango.net.SocketConduit.SocketConduit.__vtbl ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=2] +@.str122 = internal constant [5 x i8] c"EPRT\00" ; <[5 x i8]*> [#uses=1] +@.str123 = internal constant [5 x i8] c"EPRT\00" ; <[5 x i8]*> [#uses=1] +@.str124 = internal constant [10 x i8] c"|1|%0|%1|\00" ; <[10 x i8]*> [#uses=1] +@.str125 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str126 = internal constant [18 x i8] c"%0,%1,%2,%3,%4,%5\00" ; <[18 x i8]*> [#uses=1] +@.str127 = internal constant [5 x i8] c"PORT\00" ; <[5 x i8]*> [#uses=1] +@.str128 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str129 = internal constant [5 x i8] c"SPSV\00" ; <[5 x i8]*> [#uses=1] +@.str130 = internal constant [5 x i8] c"SPSV\00" ; <[5 x i8]*> [#uses=1] +@.str131 = internal constant [4 x i8] c"227\00" ; <[4 x i8]*> [#uses=1] +@.str132 = internal constant [5 x i8] c"EPSV\00" ; <[5 x i8]*> [#uses=1] +@.str133 = internal constant [5 x i8] c"EPSV\00" ; <[5 x i8]*> [#uses=1] +@.str134 = internal constant [4 x i8] c"229\00" ; <[4 x i8]*> [#uses=1] +@.str135 = internal constant [34 x i8] c"\5C([^0-9][^0-9][^0-9](\5Cd+)[^0-9]\5C)\00" ; <[34 x i8]*> [#uses=1] +@.str136 = internal constant [32 x i8] c"CLIENT: Unable to parse address\00" ; <[32 x i8]*> [#uses=1] +@.str137 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@.str138 = internal constant [5 x i8] c"PASV\00" ; <[5 x i8]*> [#uses=1] +@.str139 = internal constant [4 x i8] c"227\00" ; <[4 x i8]*> [#uses=1] +@.str140 = internal constant [54 x i8] c"(\5Cd+),\5Cs*(\5Cd+),\5Cs*(\5Cd+),\5Cs*(\5Cd+),\5Cs*(\5Cd+)(,\5Cs*(\5Cd+))?\00" ; <[54 x i8]*> [#uses=1] +@.str141 = internal constant [32 x i8] c"CLIENT: Unable to parse address\00" ; <[32 x i8]*> [#uses=1] +@.str142 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@.str146 = internal constant [24 x i8] c"unknown connection type\00" ; <[24 x i8]*> [#uses=1] +@_D5tango3net6Socket9SocketSet7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=3] +@_D5tango3net6Socket9SocketSet6__initZ = external constant %24, align 4 ; <%24*> [#uses=1] +@_D5tango3net6Socket9SocketSet6__vtblZ = external constant %tango.net.Socket.SocketSet.__vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=3] +@.str147 = internal constant [34 x i8] c"CLIENT: No connection from server\00" ; <[34 x i8]*> [#uses=1] +@.str148 = internal constant [4 x i8] c"420\00" ; <[4 x i8]*> [#uses=1] +@_D5tango3net6Socket6Socket7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=2] +@_D5tango3net6Socket6Socket6__initZ = external constant %25, align 4 ; <%25*> [#uses=1] +@_D5tango3net6Socket6Socket6__vtblZ = external constant %tango.net.Socket.Socket.__vtbl ; <%tango.net.Socket.Socket.__vtbl*> [#uses=2] +@.str149 = internal constant [4 x i8] c"226\00" ; <[4 x i8]*> [#uses=1] +@.str150 = internal constant [4 x i8] c"420\00" ; <[4 x i8]*> [#uses=1] +@.str151 = internal constant [11 x i8] c"Bad finish\00" ; <[11 x i8]*> [#uses=1] +@.str152 = internal constant [4 x i8] c"150\00" ; <[4 x i8]*> [#uses=1] +@.str153 = internal constant [4 x i8] c"125\00" ; <[4 x i8]*> [#uses=1] +@.str154 = internal constant [5 x i8] c"MLST\00" ; <[5 x i8]*> [#uses=1] +@.str155 = internal constant [5 x i8] c"MLSD\00" ; <[5 x i8]*> [#uses=1] +@.str156 = internal constant [5 x i8] c"MLSD\00" ; <[5 x i8]*> [#uses=1] +@_D5tango2io6device5Array5Array7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=2] +@_D5tango2io6device5Array5Array6__initZ = external constant %26, align 4 ; <%26*> [#uses=1] +@_D5tango2io6device5Array5Array6__vtblZ = external constant %tango.io.device.Array.Array.__vtbl ; <%tango.io.device.Array.Array.__vtbl*> [#uses=2] +@_D48TypeInfo_AS5tango3net3ftp9FtpClient11FtpFileInfo6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%20* @_D47TypeInfo_S5tango3net3ftp9FtpClient11FtpFileInfo6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@.str161 = internal constant [34 x i8] c"CLIENT: Timeout when reading data\00" ; <[34 x i8]*> [#uses=1] +@.str162 = internal constant [4 x i8] c"420\00" ; <[4 x i8]*> [#uses=1] +@.str163 = internal constant [34 x i8] c"CLIENT: Timeout when sending data\00" ; <[34 x i8]*> [#uses=1] +@.str164 = internal constant [4 x i8] c"420\00" ; <[4 x i8]*> [#uses=1] +@.str165 = internal constant [5 x i8] c"LIST\00" ; <[5 x i8]*> [#uses=1] +@.str166 = internal constant [5 x i8] c"LIST\00" ; <[5 x i8]*> [#uses=1] +@.str167 = internal constant [11 x i8] c"0123456789\00" ; <[11 x i8]*> [#uses=2] +@.str168 = internal constant [5 x i8] c"0000\00" ; <[5 x i8]*> [#uses=1] +@.str169 = internal constant [10 x i8] c"UNIX.mode\00" ; <[10 x i8]*> [#uses=1] +@.str170 = internal constant [11 x i8] c"0123456789\00" ; <[11 x i8]*> [#uses=2] +@.str171 = internal constant [5 x i8] c" -> \00" ; <[5 x i8]*> [#uses=1] +@.str172 = internal constant [7 x i8] c"target\00" ; <[7 x i8]*> [#uses=1] +@.str173 = internal constant [5 x i8] c"type\00" ; <[5 x i8]*> [#uses=1] +@.str174 = internal constant [5 x i8] c"link\00" ; <[5 x i8]*> [#uses=1] +@.str175 = internal constant [43 x i8] c"(\5Cd\5Cd)-(\5Cd\5Cd)-(\5Cd\5Cd)\5Cs+(\5Cd\5Cd):(\5Cd\5Cd)(A|P)M\00" ; <[43 x i8]*> [#uses=1] +@.str176 = internal constant [32 x i8] c"CLIENT: Unsupported LIST format\00" ; <[32 x i8]*> [#uses=1] +@.str177 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@.str178 = internal constant [2 x i8] c".\00" ; <[2 x i8]*> [#uses=1] +@.str179 = internal constant [3 x i8] c"..\00" ; <[3 x i8]*> [#uses=1] +@.str180 = internal constant [36 x i8] c"CLIENT: Bad syntax in MLSx response\00" ; <[36 x i8]*> [#uses=1] +@.str181 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@.str182 = internal constant [2 x i8] c";\00" ; <[2 x i8]*> [#uses=1] +@.str183 = internal constant [5 x i8] c"type\00" ; <[5 x i8]*> [#uses=1] +@.str184 = internal constant [4 x i8] c"dir\00" ; <[4 x i8]*> [#uses=1] +@.str185 = internal constant [5 x i8] c"cdir\00" ; <[5 x i8]*> [#uses=1] +@.str186 = internal constant [5 x i8] c"file\00" ; <[5 x i8]*> [#uses=1] +@.str187 = internal constant [5 x i8] c"pdir\00" ; <[5 x i8]*> [#uses=1] +@.string_switch_table_data = internal constant [4 x %"byte[]"] [%"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str184, i32 0, i32 0) }, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str185, i32 0, i32 0) }, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str186, i32 0, i32 0) }, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str187, i32 0, i32 0) }] ; <[4 x %"byte[]"]*> [#uses=1] +@.str188 = internal constant [5 x i8] c"type\00" ; <[5 x i8]*> [#uses=1] +@.str189 = internal constant [5 x i8] c"size\00" ; <[5 x i8]*> [#uses=1] +@.str190 = internal constant [5 x i8] c"size\00" ; <[5 x i8]*> [#uses=1] +@.str191 = internal constant [11 x i8] c"media-type\00" ; <[11 x i8]*> [#uses=1] +@.str192 = internal constant [11 x i8] c"media-type\00" ; <[11 x i8]*> [#uses=1] +@.str193 = internal constant [7 x i8] c"modify\00" ; <[7 x i8]*> [#uses=1] +@.str194 = internal constant [7 x i8] c"modify\00" ; <[7 x i8]*> [#uses=1] +@.str195 = internal constant [7 x i8] c"create\00" ; <[7 x i8]*> [#uses=1] +@.str196 = internal constant [7 x i8] c"create\00" ; <[7 x i8]*> [#uses=1] +@.str197 = internal constant [38 x i8] c"CLIENT: Bad LIST response from server\00" ; <[38 x i8]*> [#uses=1] +@.str198 = internal constant [4 x i8] c"501\00" ; <[4 x i8]*> [#uses=1] +@_D5tango2io6device4File4File7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=2] +@_D5tango2io6device4File4File6__initZ = external constant %27, align 4 ; <%27*> [#uses=1] +@_D5tango2io6device4File4File6__vtblZ = external constant %tango.io.device.File.File.__vtbl ; <%tango.io.device.File.File.__vtbl*> [#uses=2] +@_D5tango2io6device4File4File12ReadExistingS5tango2io6device4File4File5Style = external constant %tango.io.device.File.File.Style, align 1 ; <%tango.io.device.File.File.Style*> [#uses=1] +@_D5tango2io6device4File4File17ReadWriteExistingS5tango2io6device4File4File5Style = external constant %tango.io.device.File.File.Style, align 1 ; <%tango.io.device.File.File.Style*> [#uses=1] +@_D5tango2io6device4File4File15ReadWriteCreateS5tango2io6device4File4File5Style = external constant %tango.io.device.File.File.Style, align 1 ; <%tango.io.device.File.File.Style*> [#uses=1] +@.str199 = internal constant [5 x i8] c"STOR\00" ; <[5 x i8]*> [#uses=1] +@.str200 = internal constant [5 x i8] c"APPE\00" ; <[5 x i8]*> [#uses=1] +@.str201 = internal constant [5 x i8] c"REST\00" ; <[5 x i8]*> [#uses=1] +@.str202 = internal constant [4 x i8] c"350\00" ; <[4 x i8]*> [#uses=1] +@.str203 = internal constant [5 x i8] c"ALLO\00" ; <[5 x i8]*> [#uses=1] +@.str204 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str205 = internal constant [4 x i8] c"202\00" ; <[4 x i8]*> [#uses=1] +@.str206 = internal constant [13 x i8] c"OPTS UTF8 ON\00" ; <[13 x i8]*> [#uses=1] +@.str207 = internal constant [4 x i8] c"200\00" ; <[4 x i8]*> [#uses=1] +@.str208 = internal constant [5 x i8] c"RETR\00" ; <[5 x i8]*> [#uses=1] +@.str209 = internal constant [5 x i8] c"RETR\00" ; <[5 x i8]*> [#uses=1] +@.str210 = internal constant [5 x i8] c"STOR\00" ; <[5 x i8]*> [#uses=1] +@_D5tango4text5Regex15RegExpException7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=17] +@_D5tango4text5Regex15RegExpException6__initZ = external constant %28, align 4 ; <%28*> [#uses=1] +@_D5tango4text5Regex15RegExpException6__vtblZ = external constant %object.Exception.__vtbl ; <%object.Exception.__vtbl*> [#uses=17] +@.str211 = internal constant [28 x i8] c"cannot process operand at \22\00" ; <[28 x i8]*> [#uses=1] +@._arguments.storage = internal constant [2 x %object.TypeInfo*] [%object.TypeInfo* @_D10TypeInfo_k6__initZ, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ] ; <[2 x %object.TypeInfo*]*> [#uses=1] +@_D10TypeInfo_k6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=2] +@.str213 = internal constant [68 x i8] c"Missing opening parentheses for closing parentheses at char {} \22{}\22\00" ; <[68 x i8]*> [#uses=1] +@._arguments.storage214 = internal constant [3 x %object.TypeInfo*] [%object.TypeInfo* @_D10TypeInfo_k6__initZ, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ] ; <[3 x %object.TypeInfo*]*> [#uses=1] +@.str216 = internal constant [43 x i8] c"Unexpected operand at char {} \22{}\22 in \22{}\22\00" ; <[43 x i8]*> [#uses=1] +@.str217 = internal constant [56 x i8] c"Escape sequence \5Cb not allowed in look-ahead or -behind\00" ; <[56 x i8]*> [#uses=1] +@.str218 = internal constant [56 x i8] c"Escape sequence \5CB not allowed in look-ahead or -behind\00" ; <[56 x i8]*> [#uses=1] +@_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D55TypeInfo_C5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*) } ; <%object.TypeInfo_Array*> [#uses=1] +@.str219 = internal constant [29 x i8] c"Invalid occurence range at \22\00" ; <[29 x i8]*> [#uses=1] +@.str221 = internal constant [29 x i8] c"Invalid occurence range at \22\00" ; <[29 x i8]*> [#uses=1] +@.str223 = internal constant [41 x i8] c"Invalid occurence range (max < min) at \22\00" ; <[41 x i8]*> [#uses=1] +@.str225 = internal constant [45 x i8] c"Missing range start for '-' operator after \22\00" ; <[45 x i8]*> [#uses=1] +@.str227 = internal constant [43 x i8] c"Missing range end for '-' operator after \22\00" ; <[43 x i8]*> [#uses=1] +@.str229 = internal constant [33 x i8] c"unexpected end of string after \22\00" ; <[33 x i8]*> [#uses=1] +@.str231 = internal constant [29 x i8] c"too few arguments for + at \22\00" ; <[29 x i8]*> [#uses=1] +@.str233 = internal constant [29 x i8] c"too few arguments for * at \22\00" ; <[29 x i8]*> [#uses=1] +@.str235 = internal constant [29 x i8] c"too few arguments for ? at \22\00" ; <[29 x i8]*> [#uses=1] +@.str237 = internal constant [33 x i8] c"too few arguments for {x,y} at \22\00" ; <[33 x i8]*> [#uses=1] +@.str239 = internal constant [29 x i8] c"too few arguments for | at \22\00" ; <[29 x i8]*> [#uses=1] +@.str241 = internal constant [40 x i8] c"too few operands for concatenation at \22\00" ; <[40 x i8]*> [#uses=1] +@_D5tango4core9Exception24IllegalArgumentException7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=2] +@_D5tango4core9Exception24IllegalArgumentException6__initZ = external constant %29, align 4 ; <%29*> [#uses=1] +@_D5tango4core9Exception24IllegalArgumentException6__vtblZ = external constant %object.Exception.__vtbl ; <%object.Exception.__vtbl*> [#uses=2] +@.str244 = internal constant [34 x i8] c"Integer.toLong :: invalid literal\00" ; <[34 x i8]*> [#uses=1] +@_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa5lowerAa = weak_odr constant %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str245, i32 0, i32 0) }, align 4 ; <%"byte[]"*> [#uses=0] +@.str245 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa5upperAa = weak_odr constant %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str246, i32 0, i32 0) }, align 4 ; <%"byte[]"*> [#uses=0] +@.str246 = internal constant [17 x i8] c"0123456789ABCDEF\00" ; <[17 x i8]*> [#uses=1] +@_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa7formatsAS5tango4text7convert7Integer22__T14_FormatterInfoTaZ14_FormatterInfo = weak_odr constant %"_FormatterInfo!(char)[]" { i32 8, %nest.parseListLine* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0) }, align 4 ; <%"_FormatterInfo!(char)[]"*> [#uses=0] +@.str247 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str248 = internal constant [2 x i8] c"-\00" ; <[2 x i8]*> [#uses=1] +@.str249 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str250 = internal constant [2 x i8] c" \00" ; <[2 x i8]*> [#uses=1] +@.str251 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str252 = internal constant [2 x i8] c"+\00" ; <[2 x i8]*> [#uses=1] +@.str253 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str254 = internal constant [3 x i8] c"0b\00" ; <[3 x i8]*> [#uses=1] +@.str255 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str256 = internal constant [3 x i8] c"0o\00" ; <[3 x i8]*> [#uses=1] +@.str257 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str258 = internal constant [3 x i8] c"0x\00" ; <[3 x i8]*> [#uses=1] +@.str259 = internal constant [17 x i8] c"0123456789abcdef\00" ; <[17 x i8]*> [#uses=1] +@.str260 = internal constant [3 x i8] c"0X\00" ; <[3 x i8]*> [#uses=1] +@.str261 = internal constant [17 x i8] c"0123456789ABCDEF\00" ; <[17 x i8]*> [#uses=1] +@.constarray262 = internal global [8 x %nest.parseListLine] [%nest.parseListLine { i32 10, %"byte[]" zeroinitializer, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str247, i32 0, i32 0) } }, %nest.parseListLine { i32 10, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str248, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str249, i32 0, i32 0) } }, %nest.parseListLine { i32 10, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str250, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str251, i32 0, i32 0) } }, %nest.parseListLine { i32 10, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str252, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str253, i32 0, i32 0) } }, %nest.parseListLine { i32 2, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str254, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str255, i32 0, i32 0) } }, %nest.parseListLine { i32 8, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str256, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str257, i32 0, i32 0) } }, %nest.parseListLine { i32 16, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str258, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str259, i32 0, i32 0) } }, %nest.parseListLine { i32 16, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str260, i32 0, i32 0) }, %"byte[]" { i32 16, i8* getelementptr ([17 x i8]* @.str261, i32 0, i32 0) } }] ; <[8 x %nest.parseListLine]*> [#uses=13] +@.str263 = internal constant [18 x i8] c"{unknown format '\00" ; <[18 x i8]*> [#uses=1] +@.str264 = internal constant [3 x i8] c"'}\00", align 2 ; <[3 x i8]*> [#uses=1] +@.str265 = internal constant [25 x i8] c"{output width too small}\00" ; <[25 x i8]*> [#uses=1] +@_D12TypeInfo_AAa6__initZ = linkonce_odr constant %object.TypeInfo_Array { %object.TypeInfo.__vtbl* @_D14TypeInfo_Array6__vtblZ, i8* null, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ } ; <%object.TypeInfo_Array*> [#uses=1] +@_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi2nla = weak_odr constant i8 10, align 1 ; [#uses=0] +@_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi2cra = weak_odr constant i8 13, align 1 ; [#uses=0] +@_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa6badargAa = weak_odr global %"byte[]" { i32 20, i8* getelementptr ([21 x i8]* @.str266, i32 0, i32 0) }, align 8 ; <%"byte[]"*> [#uses=1] +@.str266 = internal constant [21 x i8] c"{index out of range}\00" ; <[21 x i8]*> [#uses=1] +@_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa8toosmallAa = weak_odr global %"byte[]" { i32 25, i8* getelementptr ([26 x i8]* @.str267, i32 0, i32 0) }, align 8 ; <%"byte[]"*> [#uses=2] +@.str267 = internal constant [26 x i8] c"{output buffer too small}\00" ; <[26 x i8]*> [#uses=1] +@_D11TypeInfo_Ak6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=4] +@_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT7__ClassZ = external global %object.ClassInfo ; <%object.ClassInfo*> [#uses=3] +@_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__initZ = external constant %30, align 4 ; <%30*> [#uses=1] +@_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__vtblZ = external constant %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl" ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=3] +@_D11TypeInfo_Ag6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=3] +@_D11TypeInfo_Ah6__initZ = external constant %object.TypeInfo ; <%object.TypeInfo*> [#uses=2] +@.str280 = internal constant [9 x i8] c"RegExp: \00", align 8 ; <[9 x i8]*> [#uses=1] +@_D10ModuleInfo6__vtblZ = external constant %object.ModuleInfo.__vtbl ; <%object.ModuleInfo.__vtbl*> [#uses=1] +@.str289 = internal constant [24 x i8] c"tango.net.ftp.FtpClient\00" ; <[24 x i8]*> [#uses=1] +@_D5tango4text5Regex8__ModuleZ = external global %object.ModuleInfo ; <%object.ModuleInfo*> [#uses=1] +@_D5tango4time6chrono9Gregorian8__ModuleZ = external global %object.ModuleInfo ; <%object.ModuleInfo*> [#uses=1] +@_D5tango4text7convert9TimeStamp8__ModuleZ = external global %object.ModuleInfo ; <%object.ModuleInfo*> [#uses=1] +@_D5tango3net3ftp9FtpClient9__importsZ = internal constant [3 x %object.ModuleInfo*] [%object.ModuleInfo* @_D5tango4text5Regex8__ModuleZ, %object.ModuleInfo* @_D5tango4time6chrono9Gregorian8__ModuleZ, %object.ModuleInfo* @_D5tango4text7convert9TimeStamp8__ModuleZ] ; <[3 x %object.ModuleInfo*]*> [#uses=1] +@_D5tango3net3ftp9FtpClient9__classesZ = internal constant [2 x %object.ClassInfo*] [%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ, %object.ClassInfo* @_D5tango3net3ftp9FtpClient13FTPConnection7__ClassZ] ; <[2 x %object.ClassInfo*]*> [#uses=1] +@_D5tango3net3ftp9FtpClient8__ModuleZ = global %object.ModuleInfo { %object.ModuleInfo.__vtbl* @_D10ModuleInfo6__vtblZ, i8* null, %"byte[]" { i32 23, i8* getelementptr ([24 x i8]* @.str289, i32 0, i32 0) }, %"ModuleInfo[]" { i32 3, %object.ModuleInfo** getelementptr ([3 x %object.ModuleInfo*]* @_D5tango3net3ftp9FtpClient9__importsZ, i32 0, i32 0) }, %"ClassInfo[]" { i32 2, %object.ClassInfo** getelementptr ([2 x %object.ClassInfo*]* @_D5tango3net3ftp9FtpClient9__classesZ, i32 0, i32 0) }, i32 0, void ()* null, void ()* null, void ()* null, i8* null, void ()* null } ; <%object.ModuleInfo*> [#uses=1] +@_D5tango3net3ftp9FtpClient11__moduleRefZ = internal global %ModuleReference { %ModuleReference* null, %object.ModuleInfo* @_D5tango3net3ftp9FtpClient8__ModuleZ } ; <%ModuleReference*> [#uses=2] +@_Dmodule_ref = external global %ModuleReference* ; <%ModuleReference**> [#uses=2] +@llvm.global_ctors = appending constant [1 x %31] [%31 { i32 65535, void ()* @_D5tango3net3ftp9FtpClient16__moduleinfoCtorZ }] ; <[1 x %31]*> [#uses=0] + +define fastcc noalias %tango.net.ftp.FtpClient.FtpAddress* @_D5tango3net3ftp9FtpClient10FtpAddress6opCallFAaZPS5tango3net3ftp9FtpClient10FtpAddress(%"byte[]" %str_arg) { +entry: + %len.i = alloca i32, align 4 ; [#uses=3] + %str_arg171 = extractvalue %"byte[]" %str_arg, 0 ; [#uses=8] + %str_arg172 = extractvalue %"byte[]" %str_arg, 1 ; [#uses=4] + %tmp1 = icmp eq i32 %str_arg171, 0 ; [#uses=1] + br i1 %tmp1, label %if, label %try + +if: ; preds = %entry + ret %tango.net.ftp.FtpClient.FtpAddress* null + +try: ; preds = %entry + %.gc_mem = invoke noalias i8* @_d_allocmemoryT(%object.TypeInfo* bitcast (%20* @_D46TypeInfo_S5tango3net3ftp9FtpClient10FtpAddress6__initZ to %object.TypeInfo*)) + to label %postinvoke unwind label %landingpad ; [#uses=11] + +postinvoke: ; preds = %try + %.gc_mem3 = bitcast i8* %.gc_mem to %tango.net.ftp.FtpClient.FtpAddress* ; <%tango.net.ftp.FtpClient.FtpAddress*> [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.gc_mem, i8* bitcast (%tango.net.ftp.FtpClient.FtpAddress* @_D5tango3net3ftp9FtpClient10FtpAddress6__initZ to i8*), i32 36, i32 1) + %tmp9.i = add i32 %str_arg171, -5 ; [#uses=2] + %tmp16.i = icmp ugt i32 %tmp9.i, %str_arg171 ; [#uses=1] + br i1 %tmp16.i, label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, label %whilecond.i + +whilecond.i: ; preds = %else40.i, %postinvoke + %source_arg60.pn.i = phi i8* [ %p.0.i, %else40.i ], [ %str_arg172, %postinvoke ] ; [#uses=4] + %start_arg.pn.i = phi i32 [ %tmp49.i, %else40.i ], [ 0, %postinvoke ] ; [#uses=3] + %extent.0.i = phi i32 [ %tmp51.i, %else40.i ], [ %tmp9.i, %postinvoke ] ; [#uses=5] + %p.0.i = getelementptr i8* %source_arg60.pn.i, i32 %start_arg.pn.i ; [#uses=2] + %tmp18.i = icmp eq i32 %extent.0.i, 0 ; [#uses=1] + br i1 %tmp18.i, label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, label %whilebody.i + +whilebody.i: ; preds = %whilecond.i + %p.0.sum63.i = add i32 %start_arg.pn.i, -1 ; [#uses=1] + %tmp2.i.i = getelementptr i8* %source_arg60.pn.i, i32 %p.0.sum63.i ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %whilebody.i + %len.0.i.i = phi i32 [ %extent.0.i, %whilebody.i ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %whilebody.i ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, 102 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp16.i.i = ptrtoint i8* %p.0.i to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, %tmp16.i.i ; [#uses=1] + br label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i + +_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i: ; preds = %if.i.i, %forcond.i.i + %tmp2561.i = phi i32 [ %tmp17.i.i, %if.i.i ], [ %extent.0.i, %forcond.i.i ] ; [#uses=3] + %tmp27.i = icmp eq i32 %tmp2561.i, %extent.0.i ; [#uses=1] + br i1 %tmp27.i, label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, label %else.i + +else.i: ; preds = %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i + %p.0.sum.i = add i32 %start_arg.pn.i, %tmp2561.i ; [#uses=2] + %tmp32.i = getelementptr i8* %source_arg60.pn.i, i32 %p.0.sum.i ; [#uses=2] + %tmp32.sum.i = add i32 %p.0.sum.i, -1 ; [#uses=1] + %tmp2.i.i.i = getelementptr i8* %source_arg60.pn.i, i32 %tmp32.sum.i ; [#uses=1] + br label %forcond.i.i.i + +forcond.i.i.i: ; preds = %forbody.i.i.i, %else.i + %len.0.i.i.i = phi i32 [ 6, %else.i ], [ %tmp4.i.i.i, %forbody.i.i.i ] ; [#uses=2] + %s2.0.i.i.i = phi i8* [ getelementptr ([7 x i8]* @.str65, i32 0, i32 0), %else.i ], [ %tmp11.i.i.i, %forbody.i.i.i ] ; [#uses=2] + %p.0.i.i.i = phi i8* [ %tmp2.i.i.i, %else.i ], [ %tmp7.i.i.i, %forbody.i.i.i ] ; [#uses=1] + %tmp4.i.i.i = add i32 %len.0.i.i.i, -1 ; [#uses=1] + %tmp5.i.i.i = icmp eq i32 %len.0.i.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i.i, label %if38.i, label %forbody.i.i.i + +forbody.i.i.i: ; preds = %forcond.i.i.i + %tmp7.i.i.i = getelementptr i8* %p.0.i.i.i, i32 1 ; [#uses=3] + %tmp8.i.i.i = load i8* %tmp7.i.i.i ; [#uses=1] + %tmp11.i.i.i = getelementptr i8* %s2.0.i.i.i, i32 1 ; [#uses=1] + %tmp12.i.i.i = load i8* %s2.0.i.i.i ; [#uses=1] + %tmp14.i.i.i = icmp eq i8 %tmp8.i.i.i, %tmp12.i.i.i ; [#uses=1] + br i1 %tmp14.i.i.i, label %forcond.i.i.i, label %if.i.i.i + +if.i.i.i: ; preds = %forbody.i.i.i + %tmp17.i.i.i = ptrtoint i8* %tmp7.i.i.i to i32 ; [#uses=1] + %tmp18.i.i.i = ptrtoint i8* %tmp32.i to i32 ; [#uses=1] + %tmp19.i.i.i = sub i32 %tmp17.i.i.i, %tmp18.i.i.i ; [#uses=1] + %phitmp = icmp eq i32 %tmp19.i.i.i, 6 ; [#uses=1] + br i1 %phitmp, label %if38.i, label %else40.i + +if38.i: ; preds = %if.i.i.i, %forcond.i.i.i + %tmp44.i = ptrtoint i8* %tmp32.i to i32 ; [#uses=1] + %tmp45.i = ptrtoint i8* %str_arg172 to i32 ; [#uses=1] + %tmp46.i = sub i32 %tmp44.i, %tmp45.i ; [#uses=1] + br label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit + +else40.i: ; preds = %if.i.i.i + %tmp49.i = add i32 %tmp2561.i, 1 ; [#uses=2] + %tmp51.i = sub i32 %extent.0.i, %tmp49.i ; [#uses=1] + br label %whilecond.i + +_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit: ; preds = %if38.i, %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i, %whilecond.i, %postinvoke + %tmp7173 = phi i32 [ %tmp46.i, %if38.i ], [ %str_arg171, %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i ], [ %str_arg171, %whilecond.i ], [ %str_arg171, %postinvoke ] ; [#uses=1] + %tmp9 = icmp eq i32 %tmp7173, 0 ; [#uses=1] + br i1 %tmp9, label %if10, label %endif11 + +if10: ; preds = %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit + %tmp15 = getelementptr i8* %str_arg172, i32 6 ; [#uses=1] + %tmp16 = add i32 %str_arg171, -6 ; [#uses=1] + br label %endif11 + +endif11: ; preds = %if10, %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit + %str.1.2 = phi i8* [ %tmp15, %if10 ], [ %str_arg172, %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit ] ; [#uses=8] + %str.0.2 = phi i32 [ %tmp16, %if10 ], [ %str_arg171, %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit ] ; [#uses=6] + %tmp2.i235 = icmp eq i32 %str.0.2, -1 ; [#uses=1] + br i1 %tmp2.i235, label %whilecond.i239, label %if.i236 + +if.i236: ; preds = %endif11 + br label %whilecond.i239 + +whilecond.i239: ; preds = %whilebody.i244, %if.i236, %endif11 + %start.0.i237 = phi i32 [ %str.0.2, %if.i236 ], [ %tmp8.i240, %whilebody.i244 ], [ -1, %endif11 ] ; [#uses=2] + %tmp6.i238 = icmp eq i32 %start.0.i237, 0 ; [#uses=1] + br i1 %tmp6.i238, label %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247, label %whilebody.i244 + +whilebody.i244: ; preds = %whilecond.i239 + %tmp8.i240 = add i32 %start.0.i237, -1 ; [#uses=3] + %tmp10.i241 = getelementptr i8* %str.1.2, i32 %tmp8.i240 ; [#uses=1] + %tmp11.i242 = load i8* %tmp10.i241 ; [#uses=1] + %tmp15.i243 = icmp eq i8 %tmp11.i242, 64 ; [#uses=1] + br i1 %tmp15.i243, label %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247, label %whilecond.i239 + +_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247: ; preds = %whilebody.i244, %whilecond.i239 + %tmp21248 = phi i32 [ %tmp8.i240, %whilebody.i244 ], [ %str.0.2, %whilecond.i239 ] ; [#uses=7] + %tmp25 = icmp eq i32 %tmp21248, %str.0.2 ; [#uses=1] + br i1 %tmp25, label %endif27, label %if26 + +if26: ; preds = %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247 + %tmp38 = add i32 %tmp21248, 1 ; [#uses=2] + %tmp41 = getelementptr i8* %str.1.2, i32 %tmp38 ; [#uses=2] + %tmp42 = sub i32 %str.0.2, %tmp38 ; [#uses=2] + %tmp2.i.i214 = getelementptr i8* %str.1.2, i32 -1 ; [#uses=1] + br label %forcond.i.i219 + +forcond.i.i219: ; preds = %forbody.i.i223, %if26 + %len.0.i.i215 = phi i32 [ %tmp21248, %if26 ], [ %tmp4.i.i217, %forbody.i.i223 ] ; [#uses=2] + %p.0.i.i216 = phi i8* [ %tmp2.i.i214, %if26 ], [ %tmp7.i.i220, %forbody.i.i223 ] ; [#uses=1] + %tmp4.i.i217 = add i32 %len.0.i.i215, -1 ; [#uses=1] + %tmp5.i.i218 = icmp eq i32 %len.0.i.i215, 0 ; [#uses=1] + br i1 %tmp5.i.i218, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit232, label %forbody.i.i223 + +forbody.i.i223: ; preds = %forcond.i.i219 + %tmp7.i.i220 = getelementptr i8* %p.0.i.i216, i32 1 ; [#uses=3] + %tmp8.i.i221 = load i8* %tmp7.i.i220 ; [#uses=1] + %tmp12.i.i222 = icmp eq i8 %tmp8.i.i221, 58 ; [#uses=1] + br i1 %tmp12.i.i222, label %if.i.i227, label %forcond.i.i219 + +if.i.i227: ; preds = %forbody.i.i223 + %tmp15.i.i224 = ptrtoint i8* %tmp7.i.i220 to i32 ; [#uses=1] + %tmp16.i.i225 = ptrtoint i8* %str.1.2 to i32 ; [#uses=1] + %tmp17.i.i226 = sub i32 %tmp15.i.i224, %tmp16.i.i225 ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit232 + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit232: ; preds = %if.i.i227, %forcond.i.i219 + %tmp1318.i229 = phi i32 [ %tmp17.i.i226, %if.i.i227 ], [ %tmp21248, %forcond.i.i219 ] ; [#uses=3] + %tmp51 = icmp eq i32 %tmp1318.i229, %tmp21248 ; [#uses=1] + %tmp55 = getelementptr i8* %.gc_mem, i32 16 ; [#uses=2] + br i1 %tmp51, label %else, label %if52 + +if52: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit232 + %0 = bitcast i8* %tmp55 to i32* ; [#uses=1] + store i32 %tmp1318.i229, i32* %0 + %tmp62 = getelementptr i8* %.gc_mem, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp62 to i8** ; [#uses=1] + store i8* %str.1.2, i8** %1 + %tmp68 = add i32 %tmp1318.i229, 1 ; [#uses=2] + %tmp71 = getelementptr i8* %str.1.2, i32 %tmp68 ; [#uses=1] + %tmp72 = sub i32 %tmp21248, %tmp68 ; [#uses=1] + %tmp73 = getelementptr i8* %.gc_mem, i32 24 ; [#uses=1] + %2 = bitcast i8* %tmp73 to i32* ; [#uses=1] + store i32 %tmp72, i32* %2 + %tmp74 = getelementptr i8* %.gc_mem, i32 28 ; [#uses=1] + %3 = bitcast i8* %tmp74 to i8** ; [#uses=1] + store i8* %tmp71, i8** %3 + br label %endif27 + +else: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit232 + %4 = bitcast i8* %tmp55 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %tmp21248, 0 ; <%"byte[]"> [#uses=1] + %insert150 = insertvalue %"byte[]" %insert, i8* %str.1.2, 1 ; <%"byte[]"> [#uses=1] + store %"byte[]" %insert150, %"byte[]"* %4 + br label %endif27 + +endif27: ; preds = %else, %if52, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247 + %str.1.1 = phi i8* [ %tmp41, %if52 ], [ %tmp41, %else ], [ %str.1.2, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247 ] ; [#uses=6] + %str.0.1 = phi i32 [ %tmp42, %if52 ], [ %tmp42, %else ], [ %str.0.2, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit247 ] ; [#uses=6] + %tmp2.i197 = icmp eq i32 %str.0.1, -1 ; [#uses=1] + br i1 %tmp2.i197, label %whilecond.i201, label %if.i198 + +if.i198: ; preds = %endif27 + br label %whilecond.i201 + +whilecond.i201: ; preds = %whilebody.i205, %if.i198, %endif27 + %start.0.i199 = phi i32 [ %str.0.1, %if.i198 ], [ %tmp8.i202, %whilebody.i205 ], [ -1, %endif27 ] ; [#uses=2] + %tmp6.i200 = icmp eq i32 %start.0.i199, 0 ; [#uses=1] + br i1 %tmp6.i200, label %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit, label %whilebody.i205 + +whilebody.i205: ; preds = %whilecond.i201 + %tmp8.i202 = add i32 %start.0.i199, -1 ; [#uses=3] + %tmp10.i = getelementptr i8* %str.1.1, i32 %tmp8.i202 ; [#uses=1] + %tmp11.i203 = load i8* %tmp10.i ; [#uses=1] + %tmp15.i204 = icmp eq i8 %tmp11.i203, 58 ; [#uses=1] + br i1 %tmp15.i204, label %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit, label %whilecond.i201 + +_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit: ; preds = %whilebody.i205, %whilecond.i201 + %tmp80206 = phi i32 [ %tmp8.i202, %whilebody.i205 ], [ %str.0.1, %whilecond.i201 ] ; [#uses=3] + %tmp84 = icmp eq i32 %tmp80206, %str.0.1 ; [#uses=1] + br i1 %tmp84, label %endif86, label %if85 + +if85: ; preds = %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit + %tmp92 = add i32 %tmp80206, 1 ; [#uses=2] + %tmp95 = getelementptr i8* %str.1.1, i32 %tmp92 ; [#uses=1] + %tmp96 = sub i32 %str.0.1, %tmp92 ; [#uses=2] + store i32 0, i32* %len.i + %insert.i = insertvalue %"byte[]" undef, i32 %tmp96, 0 ; <%"byte[]"> [#uses=1] + %insert14.i = insertvalue %"byte[]" %insert.i, i8* %tmp95, 1 ; <%"byte[]"> [#uses=1] + %tmp2.i191 = call fastcc i64 @_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl(%"byte[]" %insert14.i, i32 0, i32* %len.i) ; [#uses=1] + %tmp4.i = load i32* %len.i ; [#uses=1] + %tmp5.i192 = icmp ult i32 %tmp4.i, %tmp96 ; [#uses=1] + br i1 %tmp5.i192, label %if.i, label %_D5tango4text7convert7Integer13__T6toLongTaZ6toLongFAakZl.exit + +if.i: ; preds = %if85 + %.newclass_gc_alloc.i195 = invoke noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4core9Exception24IllegalArgumentException7__ClassZ) + to label %.newclass_gc_alloc.i.noexc unwind label %landingpad ; [#uses=5] + +.newclass_gc_alloc.i.noexc: ; preds = %if.i + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i195 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i195 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4core9Exception24IllegalArgumentException6__vtblZ, %object.Exception.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i195, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp6.i = getelementptr i8* %.newclass_gc_alloc.i195, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp6.i, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%29* @_D5tango4core9Exception24IllegalArgumentException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp2.i.i193196 = invoke fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc.i, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str244, i32 0, i32 0) }, %object.Exception* null) + to label %tmp2.i.i193.noexc unwind label %landingpad ; <%object.Exception*> [#uses=0] + +tmp2.i.i193.noexc: ; preds = %.newclass_gc_alloc.i.noexc + %tmp11.i = bitcast i8* %.newclass_gc_alloc.i195 to %object.Object* ; <%object.Object*> [#uses=1] + invoke void @_d_throw_exception(%object.Object* %tmp11.i) + to label %.noexc unwind label %landingpad + +.noexc: ; preds = %tmp2.i.i193.noexc + unreachable + +_D5tango4text7convert7Integer13__T6toLongTaZ6toLongFAakZl.exit: ; preds = %if85 + %tmp88 = getelementptr i8* %.gc_mem, i32 32 ; [#uses=1] + %6 = bitcast i8* %tmp88 to i32* ; [#uses=1] + %tmp101 = trunc i64 %tmp2.i191 to i32 ; [#uses=1] + store i32 %tmp101, i32* %6 + br label %endif86 + +endif86: ; preds = %_D5tango4text7convert7Integer13__T6toLongTaZ6toLongFAakZl.exit, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit + %str.0.0 = phi i32 [ %tmp80206, %_D5tango4text7convert7Integer13__T6toLongTaZ6toLongFAakZl.exit ], [ %str.0.1, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit ] ; [#uses=4] + %tmp2.i.i175 = getelementptr i8* %str.1.1, i32 -1 ; [#uses=1] + br label %forcond.i.i180 + +forcond.i.i180: ; preds = %forbody.i.i184, %endif86 + %len.0.i.i176 = phi i32 [ %str.0.0, %endif86 ], [ %tmp4.i.i178, %forbody.i.i184 ] ; [#uses=2] + %p.0.i.i177 = phi i8* [ %tmp2.i.i175, %endif86 ], [ %tmp7.i.i181, %forbody.i.i184 ] ; [#uses=1] + %tmp4.i.i178 = add i32 %len.0.i.i176, -1 ; [#uses=1] + %tmp5.i.i179 = icmp eq i32 %len.0.i.i176, 0 ; [#uses=1] + br i1 %tmp5.i.i179, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit, label %forbody.i.i184 + +forbody.i.i184: ; preds = %forcond.i.i180 + %tmp7.i.i181 = getelementptr i8* %p.0.i.i177, i32 1 ; [#uses=3] + %tmp8.i.i182 = load i8* %tmp7.i.i181 ; [#uses=1] + %tmp12.i.i183 = icmp eq i8 %tmp8.i.i182, 47 ; [#uses=1] + br i1 %tmp12.i.i183, label %if.i.i188, label %forcond.i.i180 + +if.i.i188: ; preds = %forbody.i.i184 + %tmp15.i.i185 = ptrtoint i8* %tmp7.i.i181 to i32 ; [#uses=1] + %tmp16.i.i186 = ptrtoint i8* %str.1.1 to i32 ; [#uses=1] + %tmp17.i.i187 = sub i32 %tmp15.i.i185, %tmp16.i.i186 ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit: ; preds = %if.i.i188, %forcond.i.i180 + %tmp1318.i = phi i32 [ %tmp17.i.i187, %if.i.i188 ], [ %str.0.0, %forcond.i.i180 ] ; [#uses=4] + %tmp115 = icmp eq i32 %tmp1318.i, %str.0.0 ; [#uses=1] + br i1 %tmp115, label %endif117, label %if116 + +if116: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp123 = add i32 %tmp1318.i, 1 ; [#uses=2] + %tmp126 = getelementptr i8* %str.1.1, i32 %tmp123 ; [#uses=1] + %tmp127 = sub i32 %str.0.0, %tmp123 ; [#uses=1] + %tmp128 = getelementptr i8* %.gc_mem, i32 8 ; [#uses=1] + %7 = bitcast i8* %tmp128 to i32* ; [#uses=1] + store i32 %tmp127, i32* %7 + %tmp129 = getelementptr i8* %.gc_mem, i32 12 ; [#uses=1] + %8 = bitcast i8* %tmp129 to i8** ; [#uses=1] + store i8* %tmp126, i8** %8 + br label %endif117 + +endif117: ; preds = %if116, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp137 = bitcast i8* %.gc_mem to i32* ; [#uses=1] + store i32 %tmp1318.i, i32* %tmp137 + %tmp138 = getelementptr i8* %.gc_mem, i32 4 ; [#uses=1] + %9 = bitcast i8* %tmp138 to i8** ; [#uses=1] + store i8* %str.1.1, i8** %9 + %tmp143 = icmp eq i32 %tmp1318.i, 0 ; [#uses=1] + %retval = select i1 %tmp143, %tango.net.ftp.FtpClient.FtpAddress* null, %tango.net.ftp.FtpClient.FtpAddress* %.gc_mem3 ; <%tango.net.ftp.FtpClient.FtpAddress*> [#uses=1] + ret %tango.net.ftp.FtpClient.FtpAddress* %retval + +landingpad: ; preds = %tmp2.i.i193.noexc, %.newclass_gc_alloc.i.noexc, %if.i, %try + %10 = tail call i8* @llvm.eh.exception() ; [#uses=2] + %11 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %10, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D6Object7__ClassZ) ; [#uses=1] + %cond = icmp eq i32 %11, 1 ; [#uses=1] + br i1 %cond, label %catch, label %switchdefault + +catch: ; preds = %landingpad + ret %tango.net.ftp.FtpClient.FtpAddress* null + +switchdefault: ; preds = %landingpad + tail call void @_d_eh_resume_unwind(i8* %10) + unreachable +} + +declare fastcc %"byte[]" @_D6object6Object8toStringMFZAa(%object.Object*) + +declare fastcc i32 @_D6object6Object6toHashMFZk(%object.Object*) + +declare fastcc i32 @_D6object6Object5opCmpMFC6ObjectZi(%object.Object*, %object.Object*) + +declare fastcc i32 @_D6object6Object8opEqualsMFC6ObjectZi(%object.Object*, %object.Object*) + +declare fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception*, %"byte[]", %object.Exception*) + +declare fastcc void @_D6object9Exception8writeOutMFDFAaZvZv(%object.Exception*, %"void delegate(char[])") + +define fastcc %"byte[]" @_D5tango3net3ftp9FtpClient12FtpException8toStringMFZAa(%tango.net.ftp.FtpClient.FtpException* nocapture %.this_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FtpException* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp2 ; [#uses=2] + %tmp3 = add i32 %.len, 4 ; [#uses=2] + %.gc_mem = tail call noalias i8* @_d_newarrayiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp3) ; [#uses=4] + %tmp10 = getelementptr %tango.net.ftp.FtpClient.FtpException* %.this_arg, i32 0, i32 7, i32 0 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.gc_mem, i8* %tmp10, i32 3, i32 1) + %tmp13 = getelementptr i8* %.gc_mem, i32 3 ; [#uses=1] + store i8 32, i8* %tmp13 + %tmp18 = getelementptr i8* %.gc_mem, i32 4 ; [#uses=1] + %tmp23 = getelementptr %tango.net.ftp.FtpClient.FtpException* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr24 = load i8** %tmp23 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp18, i8* %.ptr24, i32 %.len, i32 1) + %insert = insertvalue %"byte[]" undef, i32 %tmp3, 0 ; <%"byte[]"> [#uses=1] + %insert30 = insertvalue %"byte[]" %insert, i8* %.gc_mem, 1 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %insert30 +} + +define fastcc %tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException(%tango.net.ftp.FtpClient.FtpException* %.this_arg, %"byte[]" %message_arg, [3 x i8]* nocapture %code_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FtpException* %.this_arg, i32 0, i32 7, i32 0 ; [#uses=1] + %tmp3 = getelementptr [3 x i8]* %code_arg, i32 0, i32 0 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2, i8* %tmp3, i32 3, i32 1) + %tmp5 = bitcast %tango.net.ftp.FtpClient.FtpException* %.this_arg to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7 = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5, %"byte[]" %message_arg, %object.Exception* null) ; <%object.Exception*> [#uses=0] + ret %tango.net.ftp.FtpClient.FtpException* %.this_arg +} + +define fastcc %tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException5_ctorMFS5tango3net3ftp9FtpClient11FtpResponseZC5tango3net3ftp9FtpClient12FtpException(%tango.net.ftp.FtpClient.FtpException* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* nocapture byval %r_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FtpException* %.this_arg, i32 0, i32 7, i32 0 ; [#uses=1] + %tmp4 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %r_arg, i32 0, i32 0, i32 0 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2, i8* %tmp4, i32 3, i32 1) + %tmp6 = bitcast %tango.net.ftp.FtpClient.FtpException* %.this_arg to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %r_arg, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp8 = load %"byte[]"* %tmp7 ; <%"byte[]"> [#uses=1] + %tmp9 = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp6, %"byte[]" %tmp8, %object.Exception* null) ; <%object.Exception*> [#uses=0] + ret %tango.net.ftp.FtpClient.FtpException* %.this_arg +} + +declare fastcc void @_D5tango3net3ftp6Telnet6Telnet8sendlineMFAvZv(%tango.net.ftp.Telnet.Telnet*, %"byte[]") + +declare fastcc void @_D5tango3net3ftp6Telnet6Telnet8sendDataMFAvZv(%tango.net.ftp.Telnet.Telnet*, %"byte[]") + +declare fastcc %"byte[]" @_D5tango3net3ftp6Telnet6Telnet8readLineMFZAa(%tango.net.ftp.Telnet.Telnet*) + +declare fastcc %tango.net.SocketConduit.SocketConduit* @_D5tango3net3ftp6Telnet6Telnet19findAvailableServerMFAaiZC5tango3net13SocketConduit13SocketConduit(%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32) + +declare fastcc void @_D5tango4time4Time8TimeSpan10fromMillisFlZS5tango4time4Time8TimeSpan(%tango.time.Time.Time* noalias nocapture sret, i64) + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection9exceptionMFAaZv(%tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg, %"byte[]" %message_arg) noreturn { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str66, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" %message_arg, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp6 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp6) + unreachable +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection7timeoutMFZS5tango4time4Time8TimeSpan(%tango.time.Time.Time* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg) nounwind { +entry: + %tmp34 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 10, i32 0 ; [#uses=1] + %tmp = load i64* %tmp34, align 1 ; [#uses=1] + %0 = getelementptr %tango.time.Time.Time* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i64 %tmp, i64* %0 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection7timeoutMFS5tango4time4Time8TimeSpanZv(%tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg, %tango.time.Time.Time* nocapture byval %t_arg) nounwind { +entry: + %tmp34 = getelementptr %tango.time.Time.Time* %t_arg, i32 0, i32 0 ; [#uses=1] + %tmp = load i64* %tmp34, align 1 ; [#uses=1] + %0 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 10, i32 0 ; [#uses=1] + store i64 %tmp, i64* %0 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection12shutdownTimeMFZS5tango4time4Time8TimeSpan(%tango.time.Time.Time* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg) nounwind { +entry: + %tmp1.0 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 10, i32 0 ; [#uses=1] + %tmp = load i64* %tmp1.0, align 1 ; [#uses=1] + %tmp5.i = shl i64 %tmp, 1 ; [#uses=1] + %0 = getelementptr %tango.time.Time.Time* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i64 %tmp5.i, i64* %0 + ret void +} + +define fastcc %"FtpFeature[]" @_D5tango3net3ftp9FtpClient13FTPConnection17supportedFeaturesMFZAS5tango3net3ftp9FtpClient10FtpFeature(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 0 ; [#uses=1] + %.len = load i32* %tmp3 ; [#uses=1] + %tmp4 = icmp eq i32 %.len, 0 ; [#uses=1] + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 1 ; <%tango.net.ftp.FtpClient.FtpFeature**> [#uses=1] + %.ptr = load %tango.net.ftp.FtpClient.FtpFeature** %tmp5 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=1] + %tmp6 = icmp eq %tango.net.ftp.FtpClient.FtpFeature* %.ptr, null ; [#uses=1] + %tmp7 = and i1 %tmp4, %tmp6 ; [#uses=1] + br i1 %tmp7, label %endif, label %if + +if: ; preds = %entry + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5 ; <%"FtpFeature[]"*> [#uses=1] + %tmp10 = load %"FtpFeature[]"* %tmp9 ; <%"FtpFeature[]"> [#uses=1] + ret %"FtpFeature[]" %tmp10 + +endif: ; preds = %entry + %tmp12 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp13 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp12 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.getFeatures@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp13, i32 0, i32 34 ; [#uses=1] + %this.getFeatures = load void (%tango.net.ftp.FtpClient.FTPConnection*)** %"this.getFeatures@vtbl", align 4 ; [#uses=1] + tail call fastcc void %this.getFeatures(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + %tmp16 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5 ; <%"FtpFeature[]"*> [#uses=1] + %tmp17 = load %"FtpFeature[]"* %tmp16 ; <%"FtpFeature[]"> [#uses=1] + ret %"FtpFeature[]" %tmp17 +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection9exceptionMFS5tango3net3ftp9FtpClient11FtpResponseZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* nocapture byval %fr_arg) { +entry: + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 5 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.exception@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %fr_arg, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp5 = load %"byte[]"* %tmp4 ; <%"byte[]"> [#uses=1] + tail call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %tmp5) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection7connectMFS5tango3net3ftp9FtpClient10FtpAddressZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpAddress* nocapture byval %fad_arg) { +entry: + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.connect@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 16 ; [#uses=1] + %this.connect = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"byte[]", i32)** %"this.connect@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr %tango.net.ftp.FtpClient.FtpAddress* %fad_arg, i32 0, i32 0 ; <%"byte[]"*> [#uses=1] + %tmp5 = load %"byte[]"* %tmp4 ; <%"byte[]"> [#uses=1] + %tmp6 = getelementptr %tango.net.ftp.FtpClient.FtpAddress* %fad_arg, i32 0, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp7 = load %"byte[]"* %tmp6 ; <%"byte[]"> [#uses=1] + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FtpAddress* %fad_arg, i32 0, i32 3 ; <%"byte[]"*> [#uses=1] + %tmp9 = load %"byte[]"* %tmp8 ; <%"byte[]"> [#uses=1] + %tmp10 = getelementptr %tango.net.ftp.FtpClient.FtpAddress* %fad_arg, i32 0, i32 4 ; [#uses=1] + %tmp11 = load i32* %tmp10 ; [#uses=1] + tail call fastcc void %this.connect(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %tmp5, %"byte[]" %tmp7, %"byte[]" %tmp9, i32 %tmp11) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection7connectMFAaAaAakZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %hostname_arg, %"byte[]" %username_arg, %"byte[]" %password_arg, i32 %port_arg) { +entry: + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %__arrayArg120 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp44 = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %__arrayArg121 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp73 = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %username_arg100 = extractvalue %"byte[]" %username_arg, 0 ; [#uses=2] + %username_arg101 = extractvalue %"byte[]" %username_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 2 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp2 = load %tango.net.SocketConduit.SocketConduit** %tmp1 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=3] + %tmp3 = icmp eq %tango.net.SocketConduit.SocketConduit* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %endif, label %if + +if: ; preds = %entry + %tmp7 = bitcast %tango.net.SocketConduit.SocketConduit* %tmp2 to %tango.io.device.Conduit.Conduit* ; <%tango.io.device.Conduit.Conduit*> [#uses=1] + %tmp1.i = bitcast %tango.net.SocketConduit.SocketConduit* %tmp2 to %tango.io.device.Conduit.Conduit.__vtbl** ; <%tango.io.device.Conduit.Conduit.__vtbl**> [#uses=1] + %tmp2.i = load %tango.io.device.Conduit.Conduit.__vtbl** %tmp1.i ; <%tango.io.device.Conduit.Conduit.__vtbl*> [#uses=1] + %"this.detach@vtbl.i" = getelementptr %tango.io.device.Conduit.Conduit.__vtbl* %tmp2.i, i32 0, i32 8 ; [#uses=1] + %this.detach.i = load void (%tango.io.device.Conduit.Conduit*)** %"this.detach@vtbl.i", align 4 ; [#uses=1] + call fastcc void %this.detach.i(%tango.io.device.Conduit.Conduit* %tmp7) + br label %endif + +endif: ; preds = %if, %entry + %tmp9 = bitcast %tango.net.ftp.FtpClient.FTPConnection* %.this_arg to %tango.net.ftp.Telnet.Telnet* ; <%tango.net.ftp.Telnet.Telnet*> [#uses=1] + %tmp10 = bitcast %tango.net.ftp.FtpClient.FTPConnection* %.this_arg to %tango.net.ftp.Telnet.Telnet.__vtbl** ; <%tango.net.ftp.Telnet.Telnet.__vtbl**> [#uses=1] + %tmp11 = load %tango.net.ftp.Telnet.Telnet.__vtbl** %tmp10 ; <%tango.net.ftp.Telnet.Telnet.__vtbl*> [#uses=1] + %"(cast(Telnet)this).findAvailableServer@vtbl" = getelementptr %tango.net.ftp.Telnet.Telnet.__vtbl* %tmp11, i32 0, i32 9 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32)**> [#uses=1] + %"(cast(Telnet)this).findAvailableServer" = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32)** %"(cast(Telnet)this).findAvailableServer@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.Telnet.Telnet*, %"byte[]", i32)*> [#uses=1] + %tmp15 = call fastcc %tango.net.SocketConduit.SocketConduit* %"(cast(Telnet)this).findAvailableServer"(%tango.net.ftp.Telnet.Telnet* %tmp9, %"byte[]" %hostname_arg, i32 %port_arg) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=0] + %tmp22 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=7] + %tmp23 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp23, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str67, i32 0, i32 0) }) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %endif + %tmp26 = icmp eq i32 %username_arg100, 0 ; [#uses=1] + br i1 %tmp26, label %if27, label %endif28 + +if27: ; preds = %postinvoke + ret void + +endif28: ; preds = %postinvoke + %tmp31 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp31, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp33 = getelementptr [1 x %"byte[]"]* %__arrayArg120, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + %insert = insertvalue %"byte[]" undef, i32 %username_arg100, 0 ; <%"byte[]"> [#uses=1] + %insert99 = insertvalue %"byte[]" %insert, i8* %username_arg101, 1 ; <%"byte[]"> [#uses=1] + store %"byte[]" %insert99, %"byte[]"* %tmp33, align 8 + %tmp36 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp33, 1 ; <%"char[][]"> [#uses=1] + invoke fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str68, i32 0, i32 0) }, %"char[][]" %tmp36) + to label %postinvoke37 unwind label %landingpad + +postinvoke37: ; preds = %endif28 + %tmp40 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl41" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp40, i32 0, i32 37 ; [#uses=1] + %this.readResponse43 = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl41", align 4 ; [#uses=1] + invoke fastcc void %this.readResponse43(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp44, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke45 unwind label %landingpad + +postinvoke45: ; preds = %postinvoke37 + %tmp46 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=5] + %tmp47 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp44, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp46, i8* %tmp47, i32 12, i32 4) + %tmp50 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp46, 1 ; <%"byte[]"> [#uses=1] + %tmp52 = invoke i32 @_adEq(%"byte[]" %tmp50, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str69, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly + to label %postinvoke51 unwind label %landingpad ; [#uses=1] + +postinvoke51: ; preds = %postinvoke45 + %tmp53 = icmp eq i32 %tmp52, 0 ; [#uses=1] + br i1 %tmp53, label %endif55, label %if54 + +if54: ; preds = %postinvoke51 + %tmp58 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl59" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp58, i32 0, i32 35 ; [#uses=1] + %this.sendCommand61 = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl59", align 4 ; [#uses=1] + %tmp62 = getelementptr [1 x %"byte[]"]* %__arrayArg121, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %password_arg, %"byte[]"* %tmp62, align 8 + %tmp65 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp62, 1 ; <%"char[][]"> [#uses=1] + invoke fastcc void %this.sendCommand61(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str70, i32 0, i32 0) }, %"char[][]" %tmp65) + to label %postinvoke66 unwind label %landingpad + +postinvoke66: ; preds = %if54 + %tmp69 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl70" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp69, i32 0, i32 37 ; [#uses=1] + %this.readResponse72 = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl70", align 4 ; [#uses=1] + invoke fastcc void %this.readResponse72(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp73, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke74 unwind label %landingpad + +postinvoke74: ; preds = %postinvoke66 + %tmp76 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp73, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp46, i8* %tmp76, i32 12, i32 4) + br label %endif55 + +endif55: ; preds = %postinvoke74, %postinvoke51 + %tmp79 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp46, 1 ; <%"byte[]"> [#uses=1] + %tmp81 = invoke i32 @_adEq(%"byte[]" %tmp79, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str71, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly + to label %postinvoke80 unwind label %landingpad ; [#uses=1] + +postinvoke80: ; preds = %endif55 + %tmp82 = icmp eq i32 %tmp81, 0 ; [#uses=1] + br i1 %tmp82, label %andand, label %endtrycatch + +andand: ; preds = %postinvoke80 + %tmp86 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp46, 1 ; <%"byte[]"> [#uses=1] + %tmp88 = invoke i32 @_adEq(%"byte[]" %tmp86, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str72, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly + to label %postinvoke87 unwind label %landingpad ; [#uses=1] + +postinvoke87: ; preds = %andand + %tmp89 = icmp eq i32 %tmp88, 0 ; [#uses=1] + br i1 %tmp89, label %if91, label %endtrycatch + +if91: ; preds = %postinvoke87 + %tmp95 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp95, i32 0, i32 14 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.exception@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response) + to label %endtrycatch unwind label %landingpad + +landingpad: ; preds = %if91, %andand, %endif55, %postinvoke66, %if54, %postinvoke45, %postinvoke37, %endif28, %endif + %0 = call i8* @llvm.eh.exception() ; [#uses=3] + %1 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %0, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D6Object7__ClassZ) ; [#uses=1] + %cond = icmp eq i32 %1, 1 ; [#uses=1] + br i1 %cond, label %catch, label %switchdefault + +catch: ; preds = %landingpad + %2 = bitcast i8* %0 to %object.Object* ; <%object.Object*> [#uses=1] + %tmp18 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp22 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.close@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp18, i32 0, i32 17 ; [#uses=1] + %this.close = load void (%tango.net.ftp.FtpClient.FTPConnection*)** %"this.close@vtbl", align 4 ; [#uses=1] + call fastcc void %this.close(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + call void @_d_throw_exception(%object.Object* %2) + unreachable + +switchdefault: ; preds = %landingpad + call void @_d_eh_resume_unwind(i8* %0) + unreachable + +endtrycatch: ; preds = %if91, %postinvoke87, %postinvoke80 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection5closeMFZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 9 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp2 = load %tango.net.SocketConduit.SocketConduit** %tmp1 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp3 = icmp eq %tango.net.SocketConduit.SocketConduit* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %endif, label %if + +if: ; preds = %entry + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp5 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp2) + br label %endif + +endif: ; preds = %if, %entry + %tmp12 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 2 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=4] + %tmp13 = load %tango.net.SocketConduit.SocketConduit** %tmp12 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + %tmp14 = icmp eq %tango.net.SocketConduit.SocketConduit* %tmp13, null ; [#uses=1] + br i1 %tmp14, label %endif16, label %try + +try: ; preds = %endif + %tmp18 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp19 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp18 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp19, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str73, i32 0, i32 0) }, %"char[][]" zeroinitializer) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %try + %tmp23 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp18 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp23, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str74, i32 0, i32 0) }) + to label %endtrycatch unwind label %landingpad + +landingpad: ; preds = %postinvoke, %try + %0 = call i8* @llvm.eh.exception() ; [#uses=2] + %1 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %0, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=1] + %cond = icmp eq i32 %1, 1 ; [#uses=1] + br i1 %cond, label %endtrycatch, label %switchdefault + +switchdefault: ; preds = %landingpad + call void @_d_eh_resume_unwind(i8* %0) + unreachable + +endtrycatch: ; preds = %landingpad, %postinvoke + %tmp28 = load %tango.net.SocketConduit.SocketConduit** %tmp12 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp29 = bitcast %tango.net.SocketConduit.SocketConduit* %tmp28 to %tango.io.device.Conduit.Conduit* ; <%tango.io.device.Conduit.Conduit*> [#uses=1] + %tmp1.i = bitcast %tango.net.SocketConduit.SocketConduit* %tmp28 to %tango.io.device.Conduit.Conduit.__vtbl** ; <%tango.io.device.Conduit.Conduit.__vtbl**> [#uses=1] + %tmp2.i = load %tango.io.device.Conduit.Conduit.__vtbl** %tmp1.i ; <%tango.io.device.Conduit.Conduit.__vtbl*> [#uses=1] + %"this.detach@vtbl.i" = getelementptr %tango.io.device.Conduit.Conduit.__vtbl* %tmp2.i, i32 0, i32 8 ; [#uses=1] + %this.detach.i = load void (%tango.io.device.Conduit.Conduit*)** %"this.detach@vtbl.i", align 4 ; [#uses=1] + call fastcc void %this.detach.i(%tango.io.device.Conduit.Conduit* %tmp29) + %tmp31 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5 ; <%"FtpFeature[]"*> [#uses=1] + %tmp32 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 0 ; [#uses=1] + %.len = load i32* %tmp32 ; [#uses=1] + %tmp33 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 1 ; <%tango.net.ftp.FtpClient.FtpFeature**> [#uses=1] + %.ptr = load %tango.net.ftp.FtpClient.FtpFeature** %tmp33 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=1] + %.tmp = bitcast %tango.net.ftp.FtpClient.FtpFeature* %.ptr to i8* ; [#uses=1] + call void @_d_delarray(i32 %.len, i8* %.tmp) + store %"FtpFeature[]" zeroinitializer, %"FtpFeature[]"* %tmp31 + %tmp36 = load %tango.net.SocketConduit.SocketConduit** %tmp12 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + %.tmp37 = bitcast %tango.net.SocketConduit.SocketConduit* %tmp36 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp37) + store %tango.net.SocketConduit.SocketConduit* null, %tango.net.SocketConduit.SocketConduit** %tmp12 + ret void + +endif16: ; preds = %endif + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection10setPassiveMFZv(%tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 0 ; [#uses=1] + store i32 1, i32* %tmp2 + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 1 ; <%tango.net.Socket.Address**> [#uses=2] + %tmp6 = load %tango.net.Socket.Address** %tmp5 ; <%tango.net.Socket.Address*> [#uses=1] + %.tmp = bitcast %tango.net.Socket.Address* %tmp6 to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_delclass(%object.Object* %.tmp) + store %tango.net.Socket.Address* null, %tango.net.Socket.Address** %tmp5 + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 2 ; <%tango.net.Socket.Address**> [#uses=2] + %tmp10 = load %tango.net.Socket.Address** %tmp9 ; <%tango.net.Socket.Address*> [#uses=1] + %.tmp11 = bitcast %tango.net.Socket.Address* %tmp10 to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_delclass(%object.Object* %.tmp11) + store %tango.net.Socket.Address* null, %tango.net.Socket.Address** %tmp9 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection9setActiveMFAatAatZv(%tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg, %"byte[]" %ip_arg, i16 zeroext %port_arg, %"byte[]" %listen_ip_arg, i16 zeroext %listen_port_arg) { +entry: + %listen_ip_arg64 = extractvalue %"byte[]" %listen_ip_arg, 0 ; [#uses=2] + %listen_ip_arg65 = extractvalue %"byte[]" %listen_ip_arg, 1 ; [#uses=2] + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 0 ; [#uses=1] + store i32 0, i32* %tmp2 + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 1 ; <%tango.net.Socket.Address**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) ; [#uses=4] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.IPv4Address* ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + store %tango.net.Socket.IPv4Address.__vtbl* @_D5tango3net6Socket11IPv4Address6__vtblZ, %tango.net.Socket.IPv4Address.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp6, i8* getelementptr (%tango.net.Socket.IPv4Address* bitcast (%22* @_D5tango3net6Socket11IPv4Address6__initZ to %tango.net.Socket.IPv4Address*), i32 0, i32 2, i32 0), i32 24, i32 1) + %tmp12 = zext i16 %port_arg to i32 ; [#uses=1] + %tmp13 = tail call fastcc %tango.net.Socket.IPv4Address* @_D5tango3net6Socket11IPv4Address5_ctorMFAaiZC5tango3net6Socket11IPv4Address(%tango.net.Socket.IPv4Address* %.newclass_gc, %"byte[]" %ip_arg, i32 %tmp12) ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %tmp14 = bitcast %tango.net.Socket.IPv4Address* %tmp13 to %tango.net.Socket.Address* ; <%tango.net.Socket.Address*> [#uses=1] + store %tango.net.Socket.Address* %tmp14, %tango.net.Socket.Address** %tmp5 + %tmp17 = icmp eq i16 %listen_port_arg, 0 ; [#uses=1] + %listen_port.0 = select i1 %tmp17, i16 %port_arg, i16 %listen_port_arg ; [#uses=2] + %tmp22 = insertvalue %"byte[]" undef, i32 %listen_ip_arg64, 0 ; <%"byte[]"> [#uses=1] + %tmp23 = insertvalue %"byte[]" %tmp22, i8* %listen_ip_arg65, 1 ; <%"byte[]"> [#uses=1] + %tmp24 = tail call i32 @_adEq(%"byte[]" %tmp23, %"byte[]" zeroinitializer, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp25 = icmp eq i32 %tmp24, 0 ; [#uses=1] + %tmp30 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 2 ; <%tango.net.Socket.Address**> [#uses=2] + %.newclass_gc_alloc31 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) ; [#uses=7] + %vtbl33 = bitcast i8* %.newclass_gc_alloc31 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + store %tango.net.Socket.IPv4Address.__vtbl* @_D5tango3net6Socket11IPv4Address6__vtblZ, %tango.net.Socket.IPv4Address.__vtbl** %vtbl33 + %monitor34 = getelementptr i8* %.newclass_gc_alloc31, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor34 to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp35 = getelementptr i8* %.newclass_gc_alloc31, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp35, i8* getelementptr (%tango.net.Socket.IPv4Address* bitcast (%22* @_D5tango3net6Socket11IPv4Address6__initZ to %tango.net.Socket.IPv4Address*), i32 0, i32 2, i32 0), i32 24, i32 1) + br i1 %tmp25, label %else, label %if26 + +if26: ; preds = %entry + %tmp2.i = getelementptr i8* %.newclass_gc_alloc31, i32 20 ; [#uses=1] + %2 = bitcast i8* %tmp2.i to i32* ; [#uses=1] + store i32 0, i32* %2 + %tmp7.i = getelementptr i8* %.newclass_gc_alloc31, i32 18 ; [#uses=1] + %3 = bitcast i8* %tmp7.i to i16* ; [#uses=1] + store i16 %listen_port.0, i16* %3 + %tmp41 = bitcast i8* %.newclass_gc_alloc31 to %tango.net.Socket.Address* ; <%tango.net.Socket.Address*> [#uses=1] + store %tango.net.Socket.Address* %tmp41, %tango.net.Socket.Address** %tmp30 + ret void + +else: ; preds = %entry + %.newclass_gc32 = bitcast i8* %.newclass_gc_alloc31 to %tango.net.Socket.IPv4Address* ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %listen_ip_arg64, 0 ; <%"byte[]"> [#uses=1] + %insert59 = insertvalue %"byte[]" %insert, i8* %listen_ip_arg65, 1 ; <%"byte[]"> [#uses=1] + %tmp55 = zext i16 %listen_port.0 to i32 ; [#uses=1] + %tmp56 = tail call fastcc %tango.net.Socket.IPv4Address* @_D5tango3net6Socket11IPv4Address5_ctorMFAaiZC5tango3net6Socket11IPv4Address(%tango.net.Socket.IPv4Address* %.newclass_gc32, %"byte[]" %insert59, i32 %tmp55) ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %tmp57 = bitcast %tango.net.Socket.IPv4Address* %tmp56 to %tango.net.Socket.Address* ; <%tango.net.Socket.Address*> [#uses=1] + store %tango.net.Socket.Address* %tmp57, %tango.net.Socket.Address** %tmp30 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection2cdMFAaZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %dir_arg) { +entry: + %__arrayArg123 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr [1 x %"byte[]"]* %__arrayArg123, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %dir_arg, %"byte[]"* %tmp4, align 8 + %tmp7 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp4, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str75, i32 0, i32 0) }, %"char[][]" %tmp7) + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str76, i32 0, i32 0) }) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection4cdupMFZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %fr = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str77, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 37 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %fr, i32 0, i32 0, i32 0 ; [#uses=3] + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp8, i8* %tmp9, i32 12, i32 4) + %tmp12 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp8, 1 ; <%"byte[]"> [#uses=1] + %tmp13 = call i32 @_adEq(%"byte[]" %tmp12, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str78, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp14 = icmp eq i32 %tmp13, 0 ; [#uses=1] + br i1 %tmp14, label %oror, label %if.critedge + +oror: ; preds = %entry + %tmp17 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp8, 1 ; <%"byte[]"> [#uses=1] + %tmp18 = call i32 @_adEq(%"byte[]" %tmp17, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str79, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp19 = icmp eq i32 %tmp18, 0 ; [#uses=1] + br i1 %tmp19, label %else, label %if + +if.critedge: ; preds = %entry + ret void + +if: ; preds = %oror + ret void + +else: ; preds = %oror + %tmp22 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp22, i32 0, i32 14 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.exception@vtbl", align 4 ; [#uses=1] + call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %fr) + ret void +} + +define fastcc %"byte[]" @_D5tango3net3ftp9FtpClient13FTPConnection3cwdMFZAa(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str80, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str81, i32 0, i32 0) }) + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=1] + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp8, i8* %tmp9, i32 12, i32 4) + %tmp12 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parse257@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp12, i32 0, i32 38 ; <%"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)**> [#uses=1] + %this.parse257 = load %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.parse257@vtbl", align 4 ; <%"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)*> [#uses=1] + %tmp14 = call fastcc %"byte[]" %this.parse257(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response) ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp14 +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection5chmodMFAaiZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, i32 %mode_arg) { +entry: + %.nongc_mem182.i = alloca [18 x i8], align 1 ; <[18 x i8]*> [#uses=2] + %__arrayArg126 = alloca [2 x %"byte[]"], align 8 ; <[2 x %"byte[]"]*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp3 = sext i32 %mode_arg to i64 ; [#uses=1] + %.nongc_mem182.sub.i = getelementptr [18 x i8]* %.nongc_mem182.i, i32 0, i32 0 ; [#uses=2] + switch i32 111, label %default37.i [ + i32 100, label %case8.i + i32 68, label %case8.i + i32 103, label %case8.i + i32 71, label %case8.i + i32 117, label %switchend.i + i32 85, label %switchend.i + i32 98, label %case28.i + i32 66, label %case28.i + i32 111, label %case31.i + i32 79, label %case31.i + i32 120, label %case33.i + i32 88, label %case35.i + ] + +case8.i: ; preds = %entry, %entry, %entry, %entry + br i1 undef, label %if11.i, label %switchend.i + +if11.i: ; preds = %case8.i + br label %switchend.i + +case28.i: ; preds = %entry, %entry + br label %switchend.i + +case31.i: ; preds = %entry, %entry + br label %switchend.i + +case33.i: ; preds = %entry + br label %switchend.i + +case35.i: ; preds = %entry + br label %switchend.i + +default37.i: ; preds = %entry + call void @llvm.memcpy.i32(i8* %.nongc_mem182.sub.i, i8* getelementptr ([18 x i8]* @.str263, i32 0, i32 0), i32 17, i32 1) + %tmp38.i = getelementptr [18 x i8]* %.nongc_mem182.i, i32 0, i32 17 ; [#uses=1] + store i8 111, i8* %tmp38.i + %.gc_mem40.i = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 20) ; [#uses=2] + call void @llvm.memcpy.i32(i8* %.gc_mem40.i, i8* %.nongc_mem182.sub.i, i32 18, i32 1) + %tmp41.i = getelementptr i8* %.gc_mem40.i, i32 18 ; [#uses=1] + %tmp41181.i = bitcast i8* %tmp41.i to i16* ; [#uses=1] + %tmp.i = load i16* bitcast ([3 x i8]* @.str264 to i16*), align 2 ; [#uses=1] + store i16 %tmp.i, i16* %tmp41181.i, align 1 + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +switchend.i: ; preds = %case35.i, %case33.i, %case31.i, %case28.i, %if11.i, %case8.i, %entry, %entry + %index.1.i = phi i32 [ 7, %case35.i ], [ 6, %case33.i ], [ 5, %case31.i ], [ 4, %case28.i ], [ 0, %entry ], [ 0, %entry ], [ 1, %if11.i ], [ 0, %case8.i ] ; [#uses=3] + %pre.0.i = phi i8 [ -1, %case35.i ], [ -1, %case33.i ], [ -1, %case31.i ], [ -1, %case28.i ], [ 35, %entry ], [ 35, %if11.i ], [ 35, %entry ], [ 35, %case8.i ] ; [#uses=1] + %tmp48.i = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %index.1.i, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp49.i = load %"byte[]"* %tmp48.i ; <%"byte[]"> [#uses=1] + %tmp49178.i = extractvalue %"byte[]" %tmp49.i, 1 ; [#uses=2] + %tmp51.i = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %index.1.i, i32 0 ; [#uses=1] + %tmp52.i = load i32* %tmp51.i ; [#uses=3] + %tmp58.i19 = icmp sgt i32 %mode_arg, -1 ; [#uses=1] + br i1 %tmp58.i19, label %if59.i, label %dowhile82.i + +if59.i: ; preds = %switchend.i + br label %dowhile.i + +dowhile.i: ; preds = %andand.i, %if59.i + %p.0.i = phi i8* [ getelementptr ([4 x i8]* @.str82, i32 0, i32 3), %if59.i ], [ %tmp65.i, %andand.i ] ; [#uses=1] + %v.0.i = phi i32 [ %mode_arg, %if59.i ], [ %tmp75.i, %andand.i ] ; [#uses=2] + %len.0.i = phi i32 [ 3, %if59.i ], [ %tmp78.i, %andand.i ] ; [#uses=3] + %tmp65.i = getelementptr i8* %p.0.i, i32 -1 ; [#uses=2] + %tmp68.i = urem i32 %v.0.i, %tmp52.i ; [#uses=1] + %tmp71.i = getelementptr i8* %tmp49178.i, i32 %tmp68.i ; [#uses=1] + %tmp72.i = load i8* %tmp71.i ; [#uses=1] + store i8 %tmp72.i, i8* %tmp65.i + %tmp75.i = udiv i32 %v.0.i, %tmp52.i ; [#uses=2] + %tmp76.i = icmp eq i32 %tmp75.i, 0 ; [#uses=1] + br i1 %tmp76.i, label %endif60.i, label %andand.i + +andand.i: ; preds = %dowhile.i + %tmp78.i = add i32 %len.0.i, -1 ; [#uses=2] + %tmp79.i = icmp eq i32 %len.0.i, 1 ; [#uses=1] + br i1 %tmp79.i, label %endif60.i, label %dowhile.i + +dowhile82.i: ; preds = %andand100.i, %switchend.i + %p.2.i = phi i8* [ %tmp86.i, %andand100.i ], [ getelementptr ([4 x i8]* @.str82, i32 0, i32 3), %switchend.i ] ; [#uses=1] + %v80.0.i = phi i64 [ %tmp99.i, %andand100.i ], [ %tmp3, %switchend.i ] ; [#uses=2] + %len.2.i = phi i32 [ %tmp104.i, %andand100.i ], [ 3, %switchend.i ] ; [#uses=3] + %tmp86.i = getelementptr i8* %p.2.i, i32 -1 ; [#uses=2] + %tmp88.i = zext i32 %tmp52.i to i64 ; [#uses=2] + %tmp90.i = urem i64 %v80.0.i, %tmp88.i ; [#uses=1] + %tmp91.i = trunc i64 %tmp90.i to i32 ; [#uses=1] + %tmp94.i = getelementptr i8* %tmp49178.i, i32 %tmp91.i ; [#uses=1] + %tmp95.i = load i8* %tmp94.i ; [#uses=1] + store i8 %tmp95.i, i8* %tmp86.i + %tmp99.i = udiv i64 %v80.0.i, %tmp88.i ; [#uses=2] + %tmp102.i = icmp eq i64 %tmp99.i, 0 ; [#uses=1] + br i1 %tmp102.i, label %endif60.i, label %andand100.i + +andand100.i: ; preds = %dowhile82.i + %tmp104.i = add i32 %len.2.i, -1 ; [#uses=2] + %tmp105.i = icmp eq i32 %len.2.i, 1 ; [#uses=1] + br i1 %tmp105.i, label %endif60.i, label %dowhile82.i + +endif60.i: ; preds = %andand100.i, %dowhile82.i, %andand.i, %dowhile.i + %len.1.i = phi i32 [ %tmp78.i, %andand.i ], [ %len.0.i, %dowhile.i ], [ %tmp104.i, %andand100.i ], [ %len.2.i, %dowhile82.i ] ; [#uses=2] + %tmp109.i = icmp eq i8 %pre.0.i, 35 ; [#uses=1] + br i1 %tmp109.i, label %condtrue.i, label %condend.i + +condtrue.i: ; preds = %endif60.i + %tmp111.i = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %index.1.i, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp112.i = load %"byte[]"* %tmp111.i ; <%"byte[]"> [#uses=1] + br label %condend.i + +condend.i: ; preds = %condtrue.i, %endif60.i + %condtmp.0.i = phi %"byte[]" [ %tmp112.i, %condtrue.i ], [ zeroinitializer, %endif60.i ] ; <%"byte[]"> [#uses=2] + %condtmp.0175.i = extractvalue %"byte[]" %condtmp.0.i, 0 ; [#uses=3] + %tmp117.i = icmp ugt i32 %len.1.i, %condtmp.0175.i ; [#uses=1] + br i1 %tmp117.i, label %endif127.i, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +endif127.i: ; preds = %condend.i + %condtmp.0176.i = extractvalue %"byte[]" %condtmp.0.i, 1 ; [#uses=1] + %tmp123.i = add i32 %condtmp.0175.i, 1 ; [#uses=1] + %tmp124.i = sub i32 %len.1.i, %tmp123.i ; [#uses=1] + %tmp156.i = getelementptr [4 x i8]* @.str82, i32 0, i32 %tmp124.i ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp156.i, i8* %condtmp.0176.i, i32 %condtmp.0175.i, i32 1) + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit: ; preds = %endif127.i, %condend.i, %default37.i + %tmp6 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp6 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp9 = getelementptr [2 x %"byte[]"]* %__arrayArg126, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str82, i32 0, i32 0) }, %"byte[]"* %tmp9, align 8 + %tmp11 = getelementptr [2 x %"byte[]"]* %__arrayArg126, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + store %"byte[]" %path_arg, %"byte[]"* %tmp11, align 8 + %tmp14 = insertvalue %"char[][]" { i32 2, %"byte[]"* undef }, %"byte[]"* %tmp9, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 10, i8* getelementptr ([11 x i8]* @.str84, i32 0, i32 0) }, %"char[][]" %tmp14) + %tmp17 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp6 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp17, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str85, i32 0, i32 0) }) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection3delMFAaZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %__arrayArg127 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr [1 x %"byte[]"]* %__arrayArg127, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp4, align 8 + %tmp7 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp4, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str86, i32 0, i32 0) }, %"char[][]" %tmp7) + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str87, i32 0, i32 0) }) + %tmp12 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=2] + %tmp13 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp12, i8* %tmp13, i32 12, i32 4) + %tmp16 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp12, 1 ; <%"byte[]"> [#uses=1] + %tmp17 = call i32 @_adEq(%"byte[]" %tmp16, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str88, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp18 = icmp eq i32 %tmp17, 0 ; [#uses=1] + br i1 %tmp18, label %if, label %endif + +if: ; preds = %entry + %tmp22 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.rm@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp22, i32 0, i32 25 ; [#uses=1] + %this.rm = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.rm@vtbl", align 4 ; [#uses=1] + call fastcc void %this.rm(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) + ret void + +endif: ; preds = %entry + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection2rmMFAaZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %__arrayArg128 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr [1 x %"byte[]"]* %__arrayArg128, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp4, align 8 + %tmp7 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp4, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str89, i32 0, i32 0) }, %"char[][]" %tmp7) + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str90, i32 0, i32 0) }) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection6renameMFAaAaZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %old_path_arg, %"byte[]" %new_path_arg) { +entry: + %__arrayArg129 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %__arrayArg130 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp28 = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=4] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr [1 x %"byte[]"]* %__arrayArg129, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %old_path_arg, %"byte[]"* %tmp4, align 8 + %tmp7 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp4, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str91, i32 0, i32 0) }, %"char[][]" %tmp7) + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str92, i32 0, i32 0) }) + %tmp14 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl15" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp14, i32 0, i32 35 ; [#uses=1] + %this.sendCommand17 = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl15", align 4 ; [#uses=1] + %tmp18 = getelementptr [1 x %"byte[]"]* %__arrayArg130, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %new_path_arg, %"byte[]"* %tmp18, align 8 + %tmp21 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp18, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand17(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str93, i32 0, i32 0) }, %"char[][]" %tmp21) + %tmp24 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl25" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp24, i32 0, i32 36 ; [#uses=1] + %this.readResponse27 = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl25", align 4 ; [#uses=1] + call fastcc void %this.readResponse27(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp28, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str94, i32 0, i32 0) }) + ret void +} + +define fastcc i32 @_D5tango3net3ftp9FtpClient13FTPConnection5existMFAaZi(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %file_arg) { +entry: + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpFileInfo, align 8 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=2] + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp9 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.getFileInfo@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 52 ; [#uses=1] + %this.getFileInfo = load void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.getFileInfo@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.getFileInfo(%tango.net.ftp.FtpClient.FtpFileInfo* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %file_arg) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %entry + %.rettmp.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 1 ; [#uses=1] + %tmp40 = load i32* %.rettmp.1, align 8 ; [#uses=2] + switch i32 %tmp40, label %oror27 [ + i32 1, label %if18 + i32 4, label %if33.critedge37 + i32 2, label %if33.critedge + ] + +if18: ; preds = %postinvoke + ret i32 1 + +oror27: ; preds = %postinvoke + %tmp31 = icmp eq i32 %tmp40, 3 ; [#uses=1] + %retval = select i1 %tmp31, i32 2, i32 0 ; [#uses=1] + ret i32 %retval + +if33.critedge: ; preds = %postinvoke + ret i32 2 + +if33.critedge37: ; preds = %postinvoke + ret i32 2 + +landingpad: ; preds = %entry + %0 = call i8* @llvm.eh.exception() ; [#uses=3] + %1 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %0, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=1] + %cond = icmp eq i32 %1, 1 ; [#uses=1] + br i1 %cond, label %catch, label %switchdefault + +catch: ; preds = %landingpad + %tmp3 = getelementptr i8* %0, i32 36 ; [#uses=1] + %tmp4 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp3, 1 ; <%"byte[]"> [#uses=1] + %tmp5 = call i32 @_adEq(%"byte[]" %tmp4, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str95, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=0] + ret i32 0 + +switchdefault: ; preds = %landingpad + call void @_d_eh_resume_unwind(i8* %0) + unreachable +} + +define fastcc i32 @_D5tango3net3ftp9FtpClient13FTPConnection4sizeMFAaE5tango3net3ftp9FtpClient9FtpFormatZk(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, i32 %format_arg) { +entry: + %__arrayArg131 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=3] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.type@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 29 ; [#uses=1] + %this.type = load void (%tango.net.ftp.FtpClient.FTPConnection*, i32)** %"this.type@vtbl", align 4 ; [#uses=1] + call fastcc void %this.type(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 %format_arg) + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp9 = getelementptr [1 x %"byte[]"]* %__arrayArg131, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp9, align 8 + %tmp12 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp9, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str96, i32 0, i32 0) }, %"char[][]" %tmp12) + %tmp15 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp15, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str97, i32 0, i32 0) }) + %.rettmp.1.0 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 1, i32 0 ; [#uses=1] + %tmp = load i32* %.rettmp.1.0, align 4 ; [#uses=1] + %.rettmp.1.1 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 1, i32 1 ; [#uses=1] + %tmp54 = load i8** %.rettmp.1.1, align 4 ; [#uses=6] + br label %whilecond + +whilecond: ; preds = %endif, %entry + %end_pos.0 = phi i32 [ 0, %entry ], [ %tmp39, %endif ] ; [#uses=6] + %tmp22 = icmp ult i32 %end_pos.0, %tmp ; [#uses=1] + br i1 %tmp22, label %whilebody, label %endwhile + +whilebody: ; preds = %whilecond + %tmp26 = getelementptr i8* %tmp54, i32 %end_pos.0 ; [#uses=1] + %tmp27 = load i8* %tmp26 ; [#uses=1] + %tmp27.off = add i8 %tmp27, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp27.off, 9 ; [#uses=1] + br i1 %or.cond, label %endwhile, label %endif + +endif: ; preds = %whilebody + %tmp39 = add i32 %end_pos.0, 1 ; [#uses=1] + br label %whilecond + +endwhile: ; preds = %whilebody, %whilecond + %tmp4.i.i = icmp eq i32 %end_pos.0, 0 ; [#uses=1] + br i1 %tmp4.i.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %forcond.i.i + +forcond.i.i: ; preds = %forinc.i.i, %endwhile + %sign.1.i = phi i1 [ false, %endwhile ], [ %sign.0.i, %forinc.i.i ] ; [#uses=4] + %len.0.i.i = phi i32 [ %tmp33.i.i, %forinc.i.i ], [ %end_pos.0, %endwhile ] ; [#uses=3] + %p.0.i.i = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %tmp54, %endwhile ] ; [#uses=6] + %c.0.in.i.i = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %tmp54, %endwhile ] ; [#uses=1] + %c.0.i.i = load i8* %c.0.in.i.i ; [#uses=2] + %tmp8.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp8.i.i, label %endfor.i.i, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + switch i8 %c.0.i.i, label %endfor.i.i [ + i8 32, label %forinc.i.i + i8 9, label %forinc.i.i + i8 45, label %if20.i.i + i8 43, label %if26.i.i + ] + +if20.i.i: ; preds = %forbody.i.i + br label %forinc.i.i + +if26.i.i: ; preds = %forbody.i.i + br label %forinc.i.i + +forinc.i.i: ; preds = %if26.i.i, %if20.i.i, %forbody.i.i, %forbody.i.i + %sign.0.i = phi i1 [ false, %if26.i.i ], [ true, %if20.i.i ], [ %sign.1.i, %forbody.i.i ], [ %sign.1.i, %forbody.i.i ] ; [#uses=1] + %tmp30.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=2] + %tmp33.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + br label %forcond.i.i + +endfor.i.i: ; preds = %forbody.i.i, %forcond.i.i + %tmp37.i.i = icmp eq i8 %c.0.i.i, 48 ; [#uses=1] + %tmp39.i.i = icmp sgt i32 %len.0.i.i, 1 ; [#uses=1] + %or.cond.i.i = and i1 %tmp37.i.i, %tmp39.i.i ; [#uses=1] + br i1 %or.cond.i.i, label %if40.i.i, label %endif41.i.i + +if40.i.i: ; preds = %endfor.i.i + %tmp43.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=2] + %tmp44.i.i = load i8* %tmp43.i.i ; [#uses=1] + %tmp45.i.i = zext i8 %tmp44.i.i to i32 ; [#uses=1] + switch i32 %tmp45.i.i, label %endif41.i.i [ + i32 120, label %case46.i.i + i32 88, label %case46.i.i + i32 98, label %case51.i.i + i32 66, label %case51.i.i + i32 111, label %case56.i.i + i32 79, label %case56.i.i + ] + +case46.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp48.i.i = getelementptr i8* %p.0.i.i, i32 2 ; [#uses=1] + br label %endif41.i.i + +case51.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp53.i.i = getelementptr i8* %p.0.i.i, i32 2 ; [#uses=1] + br label %endif41.i.i + +case56.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp58.i.i = getelementptr i8* %p.0.i.i, i32 2 ; [#uses=1] + br label %endif41.i.i + +endif41.i.i: ; preds = %case56.i.i, %case51.i.i, %case46.i.i, %if40.i.i, %endfor.i.i + %r.0.i.i = phi i32 [ 0, %if40.i.i ], [ 8, %case56.i.i ], [ 2, %case51.i.i ], [ 16, %case46.i.i ], [ 0, %endfor.i.i ] ; [#uses=2] + %p.2.i.i = phi i8* [ %tmp43.i.i, %if40.i.i ], [ %tmp58.i.i, %case56.i.i ], [ %tmp53.i.i, %case51.i.i ], [ %tmp48.i.i, %case46.i.i ], [ %p.0.i.i, %endfor.i.i ] ; [#uses=2] + %tmp63.i.i = icmp eq i32 %r.0.i.i, 0 ; [#uses=1] + br i1 %tmp63.i.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %if70.i.i + +if70.i.i: ; preds = %endif41.i.i + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i: ; preds = %if70.i.i, %endif41.i.i, %endwhile + %sign.2.i = phi i1 [ false, %endwhile ], [ %sign.1.i, %if70.i.i ], [ %sign.1.i, %endif41.i.i ] ; [#uses=1] + %radix.0.i = phi i32 [ 0, %endwhile ], [ %r.0.i.i, %if70.i.i ], [ 10, %endif41.i.i ] ; [#uses=2] + %p.1.i.i = phi i8* [ %p.2.i.i, %if70.i.i ], [ %tmp54, %endwhile ], [ %p.2.i.i, %endif41.i.i ] ; [#uses=1] + %tmp84.i.i = ptrtoint i8* %p.1.i.i to i32 ; [#uses=1] + %tmp85.i.i = ptrtoint i8* %tmp54 to i32 ; [#uses=1] + %tmp86.i.i = sub i32 %tmp84.i.i, %tmp85.i.i ; [#uses=2] + %tmp6.i = sub i32 %end_pos.0, %tmp86.i.i ; [#uses=1] + br label %foreachcond.i.i + +foreachcond.i.i: ; preds = %if55.i.i, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + %value.0.i.i = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp65.i.i, %if55.i.i ] ; [#uses=3] + %foreachkey.0.i.i = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp70.i.i, %if55.i.i ] ; [#uses=3] + %tmp3.i.i = icmp ult i32 %foreachkey.0.i.i, %tmp6.i ; [#uses=1] + br i1 %tmp3.i.i, label %foreachbody.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +foreachbody.i.i: ; preds = %foreachcond.i.i + %tmp5.sum.i = add i32 %tmp86.i.i, %foreachkey.0.i.i ; [#uses=1] + %tmp5.i.i = getelementptr i8* %tmp54, i32 %tmp5.sum.i ; [#uses=1] + %tmp6.i.i = load i8* %tmp5.i.i ; [#uses=6] + %tmp6.off84.i.i = add i8 %tmp6.i.i, -48 ; [#uses=1] + %or.cond.i28.i = icmp ugt i8 %tmp6.off84.i.i, 9 ; [#uses=1] + br i1 %or.cond.i28.i, label %else.i.i, label %endif.i.i + +else.i.i: ; preds = %foreachbody.i.i + %tmp6.off83.i.i = add i8 %tmp6.i.i, -97 ; [#uses=1] + %or.cond81.i.i = icmp ugt i8 %tmp6.off83.i.i, 25 ; [#uses=1] + br i1 %or.cond81.i.i, label %else24.i.i, label %if22.i.i + +if22.i.i: ; preds = %else.i.i + %tmp27.i.i = add i8 %tmp6.i.i, -39 ; [#uses=1] + br label %endif.i.i + +else24.i.i: ; preds = %else.i.i + %tmp6.off.i.i = add i8 %tmp6.i.i, -65 ; [#uses=1] + %or.cond82.i.i = icmp ugt i8 %tmp6.off.i.i, 25 ; [#uses=1] + br i1 %or.cond82.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit, label %if39.i.i + +if39.i.i: ; preds = %else24.i.i + %tmp44.i29.i = add i8 %tmp6.i.i, -7 ; [#uses=1] + br label %endif.i.i + +endif.i.i: ; preds = %if39.i.i, %if22.i.i, %foreachbody.i.i + %c.0.i30.i = phi i8 [ %tmp27.i.i, %if22.i.i ], [ %tmp44.i29.i, %if39.i.i ], [ %tmp6.i.i, %foreachbody.i.i ] ; [#uses=1] + %tmp48.i31.i = zext i8 %c.0.i30.i to i32 ; [#uses=1] + %tmp49.i.i = add i32 %tmp48.i31.i, 208 ; [#uses=1] + %tmp52.i.i = and i32 %tmp49.i.i, 255 ; [#uses=2] + %tmp54.i.i = icmp ult i32 %tmp52.i.i, %radix.0.i ; [#uses=1] + br i1 %tmp54.i.i, label %if55.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +if55.i.i: ; preds = %endif.i.i + %tmp59.i.i = zext i32 %radix.0.i to i64 ; [#uses=1] + %tmp61.i.i = mul i64 %value.0.i.i, %tmp59.i.i ; [#uses=1] + %tmp64.i.i = zext i32 %tmp52.i.i to i64 ; [#uses=1] + %tmp65.i.i = add i64 %tmp61.i.i, %tmp64.i.i ; [#uses=1] + %tmp70.i.i = add i32 %foreachkey.0.i.i, 1 ; [#uses=1] + br label %foreachcond.i.i + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit: ; preds = %endif.i.i, %else24.i.i, %foreachcond.i.i + %negval.i = sub i64 0, %value.0.i.i ; [#uses=1] + %condtmp.0.i = select i1 %sign.2.i, i64 %negval.i, i64 %value.0.i.i ; [#uses=1] + %tmp49 = trunc i64 %condtmp.0.i to i32 ; [#uses=1] + ret i32 %tmp49 +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection4typeMFE5tango3net3ftp9FtpClient9FtpFormatZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 %format_arg) { +entry: + %__arrayArg132 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %__arrayArg133 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = icmp eq i32 %format_arg, 0 ; [#uses=1] + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp4 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp4, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=2] + br i1 %tmp1, label %if, label %else + +if: ; preds = %entry + %tmp6 = getelementptr [1 x %"byte[]"]* %__arrayArg132, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str99, i32 0, i32 0) }, %"byte[]"* %tmp6, align 8 + %tmp8 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp6, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str98, i32 0, i32 0) }, %"char[][]" %tmp8) + br label %endif + +else: ; preds = %entry + %tmp15 = getelementptr [1 x %"byte[]"]* %__arrayArg133, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str101, i32 0, i32 0) }, %"byte[]"* %tmp15, align 8 + %tmp17 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp15, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str100, i32 0, i32 0) }, %"char[][]" %tmp17) + br label %endif + +endif: ; preds = %else, %if + %tmp20 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp20, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str102, i32 0, i32 0) }) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection8modifiedMFAaZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %file_arg) { +entry: + %__arrayArg134 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=3] + %.rettmp18 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr [1 x %"byte[]"]* %__arrayArg134, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %file_arg, %"byte[]"* %tmp4, align 8 + %tmp7 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp4, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str103, i32 0, i32 0) }, %"char[][]" %tmp7) + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str104, i32 0, i32 0) }) + %.rettmp.1.0 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 1, i32 0 ; [#uses=1] + %tmp = load i32* %.rettmp.1.0, align 4 ; [#uses=1] + %.rettmp.1.1 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 1, i32 1 ; [#uses=1] + %tmp27 = load i8** %.rettmp.1.1, align 4 ; [#uses=1] + %tmp16 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parseTimeval@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp16, i32 0, i32 31 ; [#uses=1] + %this.parseTimeval = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.parseTimeval@vtbl", align 4 ; [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %tmp, 0 ; <%"byte[]"> [#uses=1] + %insert29 = insertvalue %"byte[]" %insert, i8* %tmp27, 1 ; <%"byte[]"> [#uses=1] + call fastcc void %this.parseTimeval(%tango.time.Time.Time* noalias nocapture sret %.rettmp18, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %insert29) + %tmp2234 = getelementptr %tango.time.Time.Time* %.rettmp18, i32 0, i32 0 ; [#uses=1] + %tmp36 = load i64* %tmp2234, align 8 ; [#uses=1] + %0 = getelementptr %tango.time.Time.Time* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i64 %tmp36, i64* %0 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection12parseTimevalMFAaZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg, %"byte[]" %timeval_arg) { +entry: + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %timeval_arg43 = extractvalue %"byte[]" %timeval_arg, 0 ; [#uses=1] + %timeval_arg44 = extractvalue %"byte[]" %timeval_arg, 1 ; [#uses=6] + %tmp1 = icmp ult i32 %timeval_arg43, 14 ; [#uses=1] + br i1 %tmp1, label %if, label %endif + +if: ; preds = %entry + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp2 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str106, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 31, i8* getelementptr ([32 x i8]* @.str105, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp7 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp7) + unreachable + +endif: ; preds = %entry + %1 = load %tango.time.chrono.Gregorian.Gregorian** @_D5tango4time6chrono9Gregorian9Gregorian7genericC5tango4time6chrono9Gregorian9Gregorian ; <%tango.time.chrono.Gregorian.Gregorian*> [#uses=2] + %tmp8 = bitcast %tango.time.chrono.Gregorian.Gregorian* %1 to %tango.time.chrono.Calendar.Calendar* ; <%tango.time.chrono.Calendar.Calendar*> [#uses=1] + %tmp9 = bitcast %tango.time.chrono.Gregorian.Gregorian* %1 to %tango.time.chrono.Calendar.Calendar.__vtbl** ; <%tango.time.chrono.Calendar.Calendar.__vtbl**> [#uses=1] + %tmp10 = load %tango.time.chrono.Calendar.Calendar.__vtbl** %tmp9 ; <%tango.time.chrono.Calendar.Calendar.__vtbl*> [#uses=1] + %"generic.toTime@vtbl" = getelementptr %tango.time.chrono.Calendar.Calendar.__vtbl* %tmp10, i32 0, i32 7 ; [#uses=1] + %generic.toTime = load void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, i32, i32, i32, i32, i32, i32, i32)** %"generic.toTime@vtbl", align 4 ; [#uses=1] + br label %foreachcond.i + +foreachcond.i: ; preds = %if.i, %endif + %value.0.i = phi i32 [ 0, %endif ], [ %tmp19.i, %if.i ] ; [#uses=2] + %foreachkey.0.i = phi i32 [ 0, %endif ], [ %tmp21.i, %if.i ] ; [#uses=3] + %tmp3.i = icmp ult i32 %foreachkey.0.i, 4 ; [#uses=1] + br i1 %tmp3.i, label %foreachbody.i, label %foreachcond.i125 + +foreachbody.i: ; preds = %foreachcond.i + %tmp5.i47 = getelementptr i8* %timeval_arg44, i32 %foreachkey.0.i ; [#uses=1] + %tmp6.i = load i8* %tmp5.i47 ; [#uses=2] + %tmp6.off.i = add i8 %tmp6.i, -48 ; [#uses=1] + %or.cond.i = icmp ugt i8 %tmp6.off.i, 9 ; [#uses=1] + br i1 %or.cond.i, label %foreachcond.i125, label %if.i + +if.i: ; preds = %foreachbody.i + %tmp15.i = mul i32 %value.0.i, 10 ; [#uses=1] + %tmp17.i = zext i8 %tmp6.i to i32 ; [#uses=1] + %tmp18.i = add i32 %tmp17.i, -48 ; [#uses=1] + %tmp19.i = add i32 %tmp15.i, %tmp18.i ; [#uses=1] + %tmp21.i = add i32 %foreachkey.0.i, 1 ; [#uses=1] + br label %foreachcond.i + +foreachcond.i125: ; preds = %if.i136, %foreachbody.i, %foreachcond.i + %value.0.i122 = phi i32 [ %tmp19.i134, %if.i136 ], [ 0, %foreachcond.i ], [ 0, %foreachbody.i ] ; [#uses=2] + %foreachkey.0.i123 = phi i32 [ %tmp21.i135, %if.i136 ], [ 0, %foreachcond.i ], [ 0, %foreachbody.i ] ; [#uses=3] + %tmp3.i124 = icmp ult i32 %foreachkey.0.i123, 2 ; [#uses=1] + br i1 %tmp3.i124, label %foreachbody.i130, label %foreachcond.i107 + +foreachbody.i130: ; preds = %foreachcond.i125 + %tmp18.sum = add i32 %foreachkey.0.i123, 4 ; [#uses=1] + %tmp5.i126 = getelementptr i8* %timeval_arg44, i32 %tmp18.sum ; [#uses=1] + %tmp6.i127 = load i8* %tmp5.i126 ; [#uses=2] + %tmp6.off.i128 = add i8 %tmp6.i127, -48 ; [#uses=1] + %or.cond.i129 = icmp ugt i8 %tmp6.off.i128, 9 ; [#uses=1] + br i1 %or.cond.i129, label %foreachcond.i107, label %if.i136 + +if.i136: ; preds = %foreachbody.i130 + %tmp15.i131 = mul i32 %value.0.i122, 10 ; [#uses=1] + %tmp17.i132 = zext i8 %tmp6.i127 to i32 ; [#uses=1] + %tmp18.i133 = add i32 %tmp17.i132, -48 ; [#uses=1] + %tmp19.i134 = add i32 %tmp15.i131, %tmp18.i133 ; [#uses=1] + %tmp21.i135 = add i32 %foreachkey.0.i123, 1 ; [#uses=1] + br label %foreachcond.i125 + +foreachcond.i107: ; preds = %if.i118, %foreachbody.i130, %foreachcond.i125 + %value.0.i104 = phi i32 [ %tmp19.i116, %if.i118 ], [ 0, %foreachcond.i125 ], [ 0, %foreachbody.i130 ] ; [#uses=2] + %foreachkey.0.i105 = phi i32 [ %tmp21.i117, %if.i118 ], [ 0, %foreachcond.i125 ], [ 0, %foreachbody.i130 ] ; [#uses=3] + %tmp3.i106 = icmp ult i32 %foreachkey.0.i105, 2 ; [#uses=1] + br i1 %tmp3.i106, label %foreachbody.i112, label %foreachcond.i89 + +foreachbody.i112: ; preds = %foreachcond.i107 + %tmp23.sum = add i32 %foreachkey.0.i105, 6 ; [#uses=1] + %tmp5.i108 = getelementptr i8* %timeval_arg44, i32 %tmp23.sum ; [#uses=1] + %tmp6.i109 = load i8* %tmp5.i108 ; [#uses=2] + %tmp6.off.i110 = add i8 %tmp6.i109, -48 ; [#uses=1] + %or.cond.i111 = icmp ugt i8 %tmp6.off.i110, 9 ; [#uses=1] + br i1 %or.cond.i111, label %foreachcond.i89, label %if.i118 + +if.i118: ; preds = %foreachbody.i112 + %tmp15.i113 = mul i32 %value.0.i104, 10 ; [#uses=1] + %tmp17.i114 = zext i8 %tmp6.i109 to i32 ; [#uses=1] + %tmp18.i115 = add i32 %tmp17.i114, -48 ; [#uses=1] + %tmp19.i116 = add i32 %tmp15.i113, %tmp18.i115 ; [#uses=1] + %tmp21.i117 = add i32 %foreachkey.0.i105, 1 ; [#uses=1] + br label %foreachcond.i107 + +foreachcond.i89: ; preds = %if.i100, %foreachbody.i112, %foreachcond.i107 + %value.0.i86 = phi i32 [ %tmp19.i98, %if.i100 ], [ 0, %foreachcond.i107 ], [ 0, %foreachbody.i112 ] ; [#uses=2] + %foreachkey.0.i87 = phi i32 [ %tmp21.i99, %if.i100 ], [ 0, %foreachcond.i107 ], [ 0, %foreachbody.i112 ] ; [#uses=3] + %tmp3.i88 = icmp ult i32 %foreachkey.0.i87, 2 ; [#uses=1] + br i1 %tmp3.i88, label %foreachbody.i94, label %foreachcond.i71 + +foreachbody.i94: ; preds = %foreachcond.i89 + %tmp28.sum = add i32 %foreachkey.0.i87, 8 ; [#uses=1] + %tmp5.i90 = getelementptr i8* %timeval_arg44, i32 %tmp28.sum ; [#uses=1] + %tmp6.i91 = load i8* %tmp5.i90 ; [#uses=2] + %tmp6.off.i92 = add i8 %tmp6.i91, -48 ; [#uses=1] + %or.cond.i93 = icmp ugt i8 %tmp6.off.i92, 9 ; [#uses=1] + br i1 %or.cond.i93, label %foreachcond.i71, label %if.i100 + +if.i100: ; preds = %foreachbody.i94 + %tmp15.i95 = mul i32 %value.0.i86, 10 ; [#uses=1] + %tmp17.i96 = zext i8 %tmp6.i91 to i32 ; [#uses=1] + %tmp18.i97 = add i32 %tmp17.i96, -48 ; [#uses=1] + %tmp19.i98 = add i32 %tmp15.i95, %tmp18.i97 ; [#uses=1] + %tmp21.i99 = add i32 %foreachkey.0.i87, 1 ; [#uses=1] + br label %foreachcond.i89 + +foreachcond.i71: ; preds = %if.i82, %foreachbody.i94, %foreachcond.i89 + %value.0.i68 = phi i32 [ %tmp19.i80, %if.i82 ], [ 0, %foreachcond.i89 ], [ 0, %foreachbody.i94 ] ; [#uses=2] + %foreachkey.0.i69 = phi i32 [ %tmp21.i81, %if.i82 ], [ 0, %foreachcond.i89 ], [ 0, %foreachbody.i94 ] ; [#uses=3] + %tmp3.i70 = icmp ult i32 %foreachkey.0.i69, 2 ; [#uses=1] + br i1 %tmp3.i70, label %foreachbody.i76, label %foreachcond.i53 + +foreachbody.i76: ; preds = %foreachcond.i71 + %tmp33.sum = add i32 %foreachkey.0.i69, 10 ; [#uses=1] + %tmp5.i72 = getelementptr i8* %timeval_arg44, i32 %tmp33.sum ; [#uses=1] + %tmp6.i73 = load i8* %tmp5.i72 ; [#uses=2] + %tmp6.off.i74 = add i8 %tmp6.i73, -48 ; [#uses=1] + %or.cond.i75 = icmp ugt i8 %tmp6.off.i74, 9 ; [#uses=1] + br i1 %or.cond.i75, label %foreachcond.i53, label %if.i82 + +if.i82: ; preds = %foreachbody.i76 + %tmp15.i77 = mul i32 %value.0.i68, 10 ; [#uses=1] + %tmp17.i78 = zext i8 %tmp6.i73 to i32 ; [#uses=1] + %tmp18.i79 = add i32 %tmp17.i78, -48 ; [#uses=1] + %tmp19.i80 = add i32 %tmp15.i77, %tmp18.i79 ; [#uses=1] + %tmp21.i81 = add i32 %foreachkey.0.i69, 1 ; [#uses=1] + br label %foreachcond.i71 + +foreachcond.i53: ; preds = %if.i64, %foreachbody.i76, %foreachcond.i71 + %value.0.i50 = phi i32 [ %tmp19.i62, %if.i64 ], [ 0, %foreachcond.i71 ], [ 0, %foreachbody.i76 ] ; [#uses=2] + %foreachkey.0.i51 = phi i32 [ %tmp21.i63, %if.i64 ], [ 0, %foreachcond.i71 ], [ 0, %foreachbody.i76 ] ; [#uses=3] + %tmp3.i52 = icmp ult i32 %foreachkey.0.i51, 2 ; [#uses=1] + br i1 %tmp3.i52, label %foreachbody.i58, label %_D5tango4text7convert7Integer11__T4atoiTaZ4atoiFAaiZk.exit65 + +foreachbody.i58: ; preds = %foreachcond.i53 + %tmp38.sum = add i32 %foreachkey.0.i51, 12 ; [#uses=1] + %tmp5.i54 = getelementptr i8* %timeval_arg44, i32 %tmp38.sum ; [#uses=1] + %tmp6.i55 = load i8* %tmp5.i54 ; [#uses=2] + %tmp6.off.i56 = add i8 %tmp6.i55, -48 ; [#uses=1] + %or.cond.i57 = icmp ugt i8 %tmp6.off.i56, 9 ; [#uses=1] + br i1 %or.cond.i57, label %_D5tango4text7convert7Integer11__T4atoiTaZ4atoiFAaiZk.exit65, label %if.i64 + +if.i64: ; preds = %foreachbody.i58 + %tmp15.i59 = mul i32 %value.0.i50, 10 ; [#uses=1] + %tmp17.i60 = zext i8 %tmp6.i55 to i32 ; [#uses=1] + %tmp18.i61 = add i32 %tmp17.i60, -48 ; [#uses=1] + %tmp19.i62 = add i32 %tmp15.i59, %tmp18.i61 ; [#uses=1] + %tmp21.i63 = add i32 %foreachkey.0.i51, 1 ; [#uses=1] + br label %foreachcond.i53 + +_D5tango4text7convert7Integer11__T4atoiTaZ4atoiFAaiZk.exit65: ; preds = %foreachbody.i58, %foreachcond.i53 + call fastcc void %generic.toTime(%tango.time.Time.Time* noalias nocapture sret %.rettmp, %tango.time.chrono.Calendar.Calendar* %tmp8, i32 %value.0.i, i32 %value.0.i122, i32 %value.0.i104, i32 %value.0.i86, i32 %value.0.i68, i32 %value.0.i50, i32 0) + %tmp4245 = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp = load i64* %tmp4245, align 8 ; [#uses=1] + %2 = getelementptr %tango.time.Time.Time* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i64 %tmp, i64* %2 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection4noopMFZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str109, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str110, i32 0, i32 0) }) + ret void +} + +define fastcc %"byte[]" @_D5tango3net3ftp9FtpClient13FTPConnection5mkdirMFAaZAa(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %__arrayArg136 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp4 = getelementptr [1 x %"byte[]"]* %__arrayArg136, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp4, align 8 + %tmp7 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp4, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str111, i32 0, i32 0) }, %"char[][]" %tmp7) + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str112, i32 0, i32 0) }) + %tmp12 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=1] + %tmp13 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp12, i8* %tmp13, i32 12, i32 4) + %tmp16 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parse257@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp16, i32 0, i32 38 ; <%"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)**> [#uses=1] + %this.parse257 = load %"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.parse257@vtbl", align 4 ; <%"byte[]" (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)*> [#uses=1] + %tmp18 = call fastcc %"byte[]" %this.parse257(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response) ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp18 +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection11getFeaturesMFZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %.frame.i = alloca %nest.splitLines, align 8 ; <%nest.splitLines*> [#uses=5] + %.rettmp.i = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %.rettmp8.i = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str113, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 37 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=2] + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp8, i8* %tmp9, i32 12, i32 4) + %tmp12 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp8, 1 ; <%"byte[]"> [#uses=1] + %tmp13 = call i32 @_adEq(%"byte[]" %tmp12, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str114, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp14 = icmp eq i32 %tmp13, 0 ; [#uses=1] + br i1 %tmp14, label %if, label %else + +if: ; preds = %entry + %tmp17 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5 ; <%"FtpFeature[]"*> [#uses=1] + %tmp18 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 0 ; [#uses=1] + %.len = load i32* %tmp18 ; [#uses=1] + %tmp19 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 1 ; <%tango.net.ftp.FtpClient.FtpFeature**> [#uses=1] + %.ptr = load %tango.net.ftp.FtpClient.FtpFeature** %tmp19 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=1] + %.tmp = bitcast %tango.net.ftp.FtpClient.FtpFeature* %.ptr to i8* ; [#uses=1] + call void @_d_delarray(i32 %.len, i8* %.tmp) + store %"FtpFeature[]" zeroinitializer, %"FtpFeature[]"* %tmp17 + ret void + +else: ; preds = %entry + %tmp20 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp21 = load %"byte[]"* %tmp20 ; <%"byte[]"> [#uses=4] + %count.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 0 ; [#uses=3] + %result.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1 ; <%"char[][]"*> [#uses=1] + store i32 0, i32* %count.i, align 8 + %src_arg8.i.i = extractvalue %"byte[]" %tmp21, 0 ; [#uses=1] + %src_arg9.i.i = extractvalue %"byte[]" %tmp21, 1 ; [#uses=1] + %0 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg8.i.i, i32* %0, align 8 + %.sret_arg10.1.i.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg9.i.i, i8** %.sret_arg10.1.i.i, align 4 + %tmp1.i = bitcast %nest.splitLines* %.frame.i to i8* ; [#uses=2] + %tmp2.i = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1.i, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func.i = insertvalue %"int delegate(ref char[])" %tmp2.i, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody41MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp3.i = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, %"int delegate(ref char[])" %.func.i) ; [#uses=0] + %tmp4.i = load i32* %count.i, align 8 ; [#uses=2] + %.gc_mem.i = call noalias i8* @_d_newarrayT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D12TypeInfo_AAa6__initZ to %object.TypeInfo*), i32 %tmp4.i) ; [#uses=1] + %.gc_mem5.i = bitcast i8* %.gc_mem.i to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp6.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp4.i, i32* %tmp6.i + %tmp7.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1, i32 1 ; <%"byte[]"**> [#uses=1] + store %"byte[]"* %.gc_mem5.i, %"byte[]"** %tmp7.i + store i32 0, i32* %count.i, align 8 + %src_arg8.i15.i = extractvalue %"byte[]" %tmp21, 0 ; [#uses=1] + %src_arg9.i16.i = extractvalue %"byte[]" %tmp21, 1 ; [#uses=1] + %1 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg8.i15.i, i32* %1, align 8 + %.sret_arg10.1.i17.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg9.i16.i, i8** %.sret_arg10.1.i17.i, align 4 + %tmp11.i = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1.i, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func12.i = insertvalue %"int delegate(ref char[])" %tmp11.i, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody42MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp13.i = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, %"int delegate(ref char[])" %.func12.i) ; [#uses=0] + %tmp14.i = load %"char[][]"* %result.i ; <%"char[][]"> [#uses=2] + %tmp22109 = extractvalue %"char[][]" %tmp14.i, 0 ; [#uses=2] + %tmp22110 = extractvalue %"char[][]" %tmp14.i, 1 ; <%"byte[]"*> [#uses=4] + %tmp27 = add i32 %tmp22109, -1 ; [#uses=3] + %.gc_mem = call noalias i8* @_d_newarrayiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D47TypeInfo_AS5tango3net3ftp9FtpClient10FtpFeature6__initZ to %object.TypeInfo*), i32 %tmp27) ; [#uses=2] + %.gc_mem28 = bitcast i8* %.gc_mem to %tango.net.ftp.FtpClient.FtpFeature* ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=1] + %tmp29 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 0 ; [#uses=1] + store i32 %tmp27, i32* %tmp29 + %tmp30 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 1 ; <%tango.net.ftp.FtpClient.FtpFeature**> [#uses=3] + store %tango.net.ftp.FtpClient.FtpFeature* %.gc_mem28, %tango.net.ftp.FtpClient.FtpFeature** %tmp30 + %tmp36 = bitcast i8* %.gc_mem to %"byte[]"* ; <%"byte[]"*> [#uses=1] + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str115, i32 0, i32 0) }, %"byte[]"* %tmp36 + br label %forcond + +forcond: ; preds = %forinc, %else + %i.0 = phi i32 [ 1, %else ], [ %tmp103, %forinc ] ; [#uses=9] + %tmp41 = icmp ult i32 %i.0, %tmp27 ; [#uses=1] + br i1 %tmp41, label %forbody, label %endfor + +forbody: ; preds = %forcond + %tmp45 = getelementptr %"byte[]"* %tmp22110, i32 %i.0 ; <%"byte[]"*> [#uses=1] + %tmp46 = load %"byte[]"* %tmp45 ; <%"byte[]"> [#uses=2] + %source_arg16.i = extractvalue %"byte[]" %tmp46, 0 ; [#uses=2] + %source_arg17.i = extractvalue %"byte[]" %tmp46, 1 ; [#uses=2] + %tmp2.i.i = getelementptr i8* %source_arg17.i, i32 -1 ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %forbody + %len.0.i.i = phi i32 [ %source_arg16.i, %forbody ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %forbody ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, 32 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp16.i.i = ptrtoint i8* %source_arg17.i to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, %tmp16.i.i ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit: ; preds = %if.i.i, %forcond.i.i + %tmp1318.i = phi i32 [ %tmp17.i.i, %if.i.i ], [ %source_arg16.i, %forcond.i.i ] ; [#uses=3] + %.ptr51 = load %tango.net.ftp.FtpClient.FtpFeature** %tmp30 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=2] + %tmp59 = getelementptr %"byte[]"* %tmp22110, i32 %i.0, i32 1 ; [#uses=2] + %.ptr60 = load i8** %tmp59 ; [#uses=1] + %tmp64 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.ptr51, i32 %i.0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp1318.i, i32* %tmp64 + %tmp65 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.ptr51, i32 %i.0, i32 0, i32 1 ; [#uses=1] + store i8* %.ptr60, i8** %tmp65 + %tmp70 = getelementptr %"byte[]"* %tmp22110, i32 %i.0, i32 0 ; [#uses=1] + %.len71 = load i32* %tmp70 ; [#uses=2] + %tmp72 = add i32 %.len71, -1 ; [#uses=1] + %tmp74 = icmp ult i32 %tmp1318.i, %tmp72 ; [#uses=1] + br i1 %tmp74, label %if75, label %forinc + +if75: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %.ptr80 = load %tango.net.ftp.FtpClient.FtpFeature** %tmp30 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=2] + %.ptr89 = load i8** %tmp59 ; [#uses=1] + %tmp91 = add i32 %tmp1318.i, 1 ; [#uses=2] + %tmp98 = getelementptr i8* %.ptr89, i32 %tmp91 ; [#uses=1] + %tmp99 = sub i32 %.len71, %tmp91 ; [#uses=1] + %tmp100 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.ptr80, i32 %i.0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp99, i32* %tmp100 + %tmp101 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.ptr80, i32 %i.0, i32 1, i32 1 ; [#uses=1] + store i8* %tmp98, i8** %tmp101 + br label %forinc + +forinc: ; preds = %if75, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp103 = add i32 %i.0, 1 ; [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + %.tmp108 = bitcast %"byte[]"* %tmp22110 to i8* ; [#uses=1] + call void @_d_delarray(i32 %tmp22109, i8* %.tmp108) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection11sendCommandMFAaAAaXv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %command_arg, %"char[][]" %parameters_arg) { +entry: + %parameters_arg55 = extractvalue %"char[][]" %parameters_arg, 0 ; [#uses=1] + %parameters_arg56 = extractvalue %"char[][]" %parameters_arg, 1 ; <%"byte[]"*> [#uses=1] + %command_arg53 = extractvalue %"byte[]" %command_arg, 0 ; [#uses=1] + %command_arg54 = extractvalue %"byte[]" %command_arg, 1 ; [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %foreachbody, %entry + %socketCommand.0.0 = phi i32 [ %command_arg53, %entry ], [ %tmp17, %foreachbody ] ; [#uses=6] + %socketCommand.1.0 = phi i8* [ %command_arg54, %entry ], [ %.gc_mem22, %foreachbody ] ; [#uses=2] + %foreachkey.0 = phi i32 [ 0, %entry ], [ %tmp28, %foreachbody ] ; [#uses=3] + %tmp4 = icmp ult i32 %foreachkey.0, %parameters_arg55 ; [#uses=1] + br i1 %tmp4, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp6 = getelementptr %"byte[]"* %parameters_arg56, i32 %foreachkey.0 ; <%"byte[]"*> [#uses=1] + %tmp7 = load %"byte[]"* %tmp6 ; <%"byte[]"> [#uses=2] + %tmp751 = extractvalue %"byte[]" %tmp7, 0 ; [#uses=2] + %tmp752 = extractvalue %"byte[]" %tmp7, 1 ; [#uses=1] + %tmp10 = add i32 %tmp751, 1 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp10, align 1 ; [#uses=3] + store i8 32, i8* %.nongc_mem, align 1 + %tmp13 = getelementptr i8* %.nongc_mem, i32 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp13, i8* %tmp752, i32 %tmp751, i32 1) + %tmp17 = add i32 %socketCommand.0.0, %tmp10 ; [#uses=2] + %.gc_mem22 = tail call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp17, i32 %socketCommand.0.0, i8* %socketCommand.1.0) ; [#uses=2] + %tmp23 = getelementptr i8* %.gc_mem22, i32 %socketCommand.0.0 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp23, i8* %.nongc_mem, i32 %tmp10, i32 1) + %tmp28 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + %tmp31 = add i32 %socketCommand.0.0, 2 ; [#uses=2] + %.gc_mem36 = tail call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp31, i32 %socketCommand.0.0, i8* %socketCommand.1.0) ; [#uses=2] + %tmp37 = getelementptr i8* %.gc_mem36, i32 %socketCommand.0.0 ; [#uses=1] + %tmp3757 = bitcast i8* %tmp37 to i16* ; [#uses=1] + %tmp = load i16* bitcast ([3 x i8]* @.str117 to i16*), align 2 ; [#uses=1] + store i16 %tmp, i16* %tmp3757, align 1 + %tmp41 = bitcast %tango.net.ftp.FtpClient.FTPConnection* %.this_arg to %tango.net.ftp.Telnet.Telnet* ; <%tango.net.ftp.Telnet.Telnet*> [#uses=1] + %tmp42 = bitcast %tango.net.ftp.FtpClient.FTPConnection* %.this_arg to %tango.net.ftp.Telnet.Telnet.__vtbl** ; <%tango.net.ftp.Telnet.Telnet.__vtbl**> [#uses=1] + %tmp43 = load %tango.net.ftp.Telnet.Telnet.__vtbl** %tmp42 ; <%tango.net.ftp.Telnet.Telnet.__vtbl*> [#uses=1] + %"(cast(Telnet)this).sendData@vtbl" = getelementptr %tango.net.ftp.Telnet.Telnet.__vtbl* %tmp43, i32 0, i32 7 ; [#uses=1] + %"(cast(Telnet)this).sendData" = load void (%tango.net.ftp.Telnet.Telnet*, %"byte[]")** %"(cast(Telnet)this).sendData@vtbl", align 4 ; [#uses=1] + %tmp49 = insertvalue %"byte[]" undef, i32 %tmp31, 0 ; <%"byte[]"> [#uses=1] + %tmp50 = insertvalue %"byte[]" %tmp49, i8* %.gc_mem36, 1 ; <%"byte[]"> [#uses=1] + tail call fastcc void %"(cast(Telnet)this).sendData"(%tango.net.ftp.Telnet.Telnet* %tmp41, %"byte[]" %tmp50) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection12readResponseMFAaZS5tango3net3ftp9FtpClient11FtpResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %expected_code_arg) { +entry: + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %expected_code_arg26 = extractvalue %"byte[]" %expected_code_arg, 0 ; [#uses=1] + %expected_code_arg27 = extractvalue %"byte[]" %expected_code_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 37 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + %tmp4 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=3] + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4, i8* %tmp5, i32 12, i32 4) + %tmp12 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp4, 1 ; <%"byte[]"> [#uses=1] + %tmp13 = insertvalue %"byte[]" undef, i32 %expected_code_arg26, 0 ; <%"byte[]"> [#uses=1] + %tmp14 = insertvalue %"byte[]" %tmp13, i8* %expected_code_arg27, 1 ; <%"byte[]"> [#uses=1] + %tmp15 = call i32 @_adEq(%"byte[]" %tmp12, %"byte[]" %tmp14, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp16 = icmp eq i32 %tmp15, 0 ; [#uses=1] + br i1 %tmp16, label %if, label %endif + +if: ; preds = %entry + %tmp20 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp20, i32 0, i32 14 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.exception@vtbl", align 4 ; [#uses=1] + call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response) + br label %endif + +endif: ; preds = %if, %entry + %tmp22 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.sret_arg, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp22, i8* %tmp4, i32 12, i32 1) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection12readResponseMFZS5tango3net3ftp9FtpClient11FtpResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp2 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=4] + %.rettmp6 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + call fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp) + call fastcc void @_D5tango4time4Time8TimeSpan10fromMillisFlZS5tango4time4Time8TimeSpan(%tango.time.Time.Time* noalias nocapture sret %.rettmp2, i64 2500) + %tmp1.i = getelementptr %tango.time.Time.Time* %.rettmp2, i32 0, i32 0 ; [#uses=1] + %tmp2.i = load i64* %tmp1.i, align 8 ; [#uses=1] + %tmp4.i = mul i64 %tmp2.i, 10 ; [#uses=1] + %tmp1.i177 = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp3.i = load i64* %tmp1.i177, align 8 ; [#uses=1] + %tmp5.i = add i64 %tmp3.i, %tmp4.i ; [#uses=1] + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=6] + call void @llvm.memcpy.i32(i8* %tmp5, i8* getelementptr (%tango.net.ftp.FtpClient.FtpResponse* @_D5tango3net3ftp9FtpClient11FtpResponse6__initZ, i32 0, i32 0, i32 0), i32 12, i32 4) + br label %whilecond + +whilecond: ; preds = %andand153, %andand139, %endif, %entry + call fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp6) + %tmp1.i181 = getelementptr %tango.time.Time.Time* %.rettmp6, i32 0, i32 0 ; [#uses=1] + %tmp3.i183 = load i64* %tmp1.i181, align 8 ; [#uses=1] + %tmp5.i185 = icmp slt i64 %tmp3.i183, %tmp5.i ; [#uses=1] + br i1 %tmp5.i185, label %whilebody, label %endwhile + +whilebody: ; preds = %whilecond + %tmp10 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp11 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp10 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readLine@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp11, i32 0, i32 8 ; <%"byte[]" (%tango.net.ftp.Telnet.Telnet*)**> [#uses=1] + %this.readLine = load %"byte[]" (%tango.net.ftp.Telnet.Telnet*)** %"this.readLine@vtbl", align 4 ; <%"byte[]" (%tango.net.ftp.Telnet.Telnet*)*> [#uses=1] + %tmp13 = bitcast %tango.net.ftp.FtpClient.FTPConnection* %.this_arg to %tango.net.ftp.Telnet.Telnet* ; <%tango.net.ftp.Telnet.Telnet*> [#uses=1] + %tmp14 = call fastcc %"byte[]" %this.readLine(%tango.net.ftp.Telnet.Telnet* %tmp13) ; <%"byte[]"> [#uses=2] + %tmp14168 = extractvalue %"byte[]" %tmp14, 0 ; [#uses=9] + %tmp14169 = extractvalue %"byte[]" %tmp14, 1 ; [#uses=9] + %tmp16 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 1, i32 0 ; [#uses=6] + %.len = load i32* %tmp16 ; [#uses=4] + %tmp17 = icmp eq i32 %.len, 0 ; [#uses=1] + br i1 %tmp17, label %if, label %else + +if: ; preds = %whilebody + %tmp20 = icmp ult i32 %tmp14168, 4 ; [#uses=1] + br i1 %tmp20, label %if21, label %endif22 + +if21: ; preds = %if + call void @llvm.memcpy.i32(i8* %tmp5, i8* getelementptr ([4 x i8]* @.str118, i32 0, i32 0), i32 3, i32 1) + br label %endwhile + +endif22: ; preds = %if + call void @llvm.memcpy.i32(i8* %tmp5, i8* %tmp14169, i32 3, i32 1) + %tmp34 = getelementptr i8* %tmp14169, i32 4 ; [#uses=1] + %tmp35 = add i32 %tmp14168, -4 ; [#uses=1] + store i32 %tmp35, i32* %tmp16 + %tmp37 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 1, i32 1 ; [#uses=1] + store i8* %tmp34, i8** %tmp37 + br label %endif + +else: ; preds = %whilebody + %tmp41 = add i32 %.len, 1 ; [#uses=11] + %tmp44 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 1, i32 1 ; [#uses=5] + %.ptr45 = load i8** %tmp44 ; [#uses=1] + %.gc_mem = call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp41, i32 %.len, i8* %.ptr45) ; [#uses=5] + %tmp46 = getelementptr i8* %.gc_mem, i32 %.len ; [#uses=1] + store i8 10, i8* %tmp46, align 1 + store i32 %tmp41, i32* %tmp16 + store i8* %.gc_mem, i8** %tmp44 + %tmp51 = icmp ugt i32 %tmp14168, 4 ; [#uses=1] + br i1 %tmp51, label %andand, label %else65 + +andand: ; preds = %else + %tmp59 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp14169, 1 ; <%"byte[]"> [#uses=1] + %tmp60 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp5, 1 ; <%"byte[]"> [#uses=1] + %tmp61 = call i32 @_adEq(%"byte[]" %tmp59, %"byte[]" %tmp60, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp62 = icmp eq i32 %tmp61, 0 ; [#uses=1] + br i1 %tmp62, label %else65, label %if63 + +if63: ; preds = %andand + %tmp71 = getelementptr i8* %tmp14169, i32 4 ; [#uses=1] + %tmp72 = add i32 %tmp14168, -4 ; [#uses=2] + %tmp75 = add i32 %tmp41, %tmp72 ; [#uses=2] + %.gc_mem80 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp75, i32 %tmp41, i8* %.gc_mem) ; [#uses=2] + %tmp81 = getelementptr i8* %.gc_mem80, i32 %tmp41 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp81, i8* %tmp71, i32 %tmp72, i32 1) + store i32 %tmp75, i32* %tmp16 + store i8* %.gc_mem80, i8** %tmp44 + br label %endif + +else65: ; preds = %andand, %else + %tmp87 = icmp ugt i32 %tmp14168, 2 ; [#uses=1] + br i1 %tmp87, label %andand88, label %else99 + +andand88: ; preds = %else65 + %tmp93 = load i8* %tmp14169 ; [#uses=1] + %tmp95 = icmp eq i8 %tmp93, 32 ; [#uses=1] + br i1 %tmp95, label %if97, label %else99 + +if97: ; preds = %andand88 + %tmp105 = getelementptr i8* %tmp14169, i32 1 ; [#uses=1] + %tmp106 = add i32 %tmp14168, -1 ; [#uses=2] + %tmp109 = add i32 %tmp41, %tmp106 ; [#uses=2] + %.gc_mem114 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp109, i32 %tmp41, i8* %.gc_mem) ; [#uses=2] + %tmp115 = getelementptr i8* %.gc_mem114, i32 %tmp41 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp115, i8* %tmp105, i32 %tmp106, i32 1) + store i32 %tmp109, i32* %tmp16 + store i8* %.gc_mem114, i8** %tmp44 + br label %endif + +else99: ; preds = %andand88, %else65 + %tmp124 = add i32 %tmp41, %tmp14168 ; [#uses=2] + %.gc_mem129 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp124, i32 %tmp41, i8* %.gc_mem) ; [#uses=2] + %tmp132 = getelementptr i8* %.gc_mem129, i32 %tmp41 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp132, i8* %tmp14169, i32 %tmp14168, i32 1) + store i32 %tmp124, i32* %tmp16 + store i8* %.gc_mem129, i8** %tmp44 + br label %endif + +endif: ; preds = %else99, %if97, %if63, %endif22 + %tmp138 = icmp ult i32 %tmp14168, 4 ; [#uses=1] + br i1 %tmp138, label %whilecond, label %andand139 + +andand139: ; preds = %endif + %tmp148 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp14169, 1 ; <%"byte[]"> [#uses=1] + %tmp149 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp5, 1 ; <%"byte[]"> [#uses=1] + %tmp150 = call i32 @_adEq(%"byte[]" %tmp148, %"byte[]" %tmp149, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp151 = icmp eq i32 %tmp150, 0 ; [#uses=1] + br i1 %tmp151, label %whilecond, label %andand153 + +andand153: ; preds = %andand139 + %tmp157 = getelementptr i8* %tmp14169, i32 3 ; [#uses=1] + %tmp158 = load i8* %tmp157 ; [#uses=1] + %tmp160 = icmp eq i8 %tmp158, 32 ; [#uses=1] + br i1 %tmp160, label %endwhile, label %whilecond + +endwhile: ; preds = %andand153, %if21, %whilecond + %tmp165 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.sret_arg, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp165, i8* %tmp5, i32 12, i32 1) + ret void +} + +define fastcc %"byte[]" @_D5tango3net3ftp9FtpClient13FTPConnection8parse257MFS5tango3net3ftp9FtpClient11FtpResponseZAa(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response_arg) { +entry: + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response_arg, i32 0, i32 1, i32 0 ; [#uses=3] + %.len = load i32* %tmp1 ; [#uses=2] + %.gc_mem = tail call noalias i8* @_d_newarrayiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %.len) ; [#uses=3] + %.len6 = load i32* %tmp1 ; [#uses=1] + %tmp7 = icmp ugt i32 %.len6, 2 ; [#uses=1] + br i1 %tmp7, label %whilecond, label %if + +if: ; preds = %entry + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp9 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 14 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.exception@vtbl", align 4 ; [#uses=1] + tail call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response_arg) + br label %whilecond + +whilecond: ; preds = %endif25, %if, %entry + %pos.1 = phi i32 [ 1, %if ], [ %tmp70, %endif25 ], [ 1, %entry ] ; [#uses=4] + %len.1 = phi i32 [ 0, %if ], [ %len.0, %endif25 ], [ 0, %entry ] ; [#uses=5] + %.len14 = load i32* %tmp1 ; [#uses=2] + %tmp16 = icmp ult i32 %pos.1, %.len14 ; [#uses=1] + br i1 %tmp16, label %whilebody, label %endwhile + +whilebody: ; preds = %whilecond + %tmp18 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i8** %tmp18 ; [#uses=2] + %tmp20 = getelementptr i8* %.ptr, i32 %pos.1 ; [#uses=1] + %tmp21 = load i8* %tmp20 ; [#uses=2] + %tmp23 = icmp eq i8 %tmp21, 34 ; [#uses=1] + br i1 %tmp23, label %if24, label %else + +if24: ; preds = %whilebody + %tmp27 = add i32 %pos.1, 1 ; [#uses=3] + %tmp31 = icmp eq i32 %tmp27, %.len14 ; [#uses=1] + br i1 %tmp31, label %endwhile, label %endif33 + +endif33: ; preds = %if24 + %tmp39 = getelementptr i8* %.ptr, i32 %tmp27 ; [#uses=1] + %tmp40 = load i8* %tmp39 ; [#uses=2] + %tmp42 = icmp eq i8 %tmp40, 34 ; [#uses=1] + br i1 %tmp42, label %if43, label %endwhile + +if43: ; preds = %endif33 + %tmp50 = getelementptr i8* %.gc_mem, i32 %len.1 ; [#uses=1] + store i8 %tmp40, i8* %tmp50 + br label %endif25 + +else: ; preds = %whilebody + %tmp62 = getelementptr i8* %.gc_mem, i32 %len.1 ; [#uses=1] + store i8 %tmp21, i8* %tmp62 + br label %endif25 + +endif25: ; preds = %else, %if43 + %pos.0 = phi i32 [ %tmp27, %if43 ], [ %pos.1, %else ] ; [#uses=1] + %len.0 = add i32 %len.1, 1 ; [#uses=1] + %tmp70 = add i32 %pos.0, 1 ; [#uses=1] + br label %whilecond + +endwhile: ; preds = %endif33, %if24, %whilecond + %.gc_mem76 = tail call i8* @_d_arraysetlengthiT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %len.1, i32 %.len, i8* %.gc_mem) ; [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %len.1, 0 ; <%"byte[]"> [#uses=1] + %insert82 = insertvalue %"byte[]" %insert, i8* %.gc_mem76, 1 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %insert82 +} + +define fastcc %tango.net.SocketConduit.SocketConduit* @_D5tango3net3ftp9FtpClient13FTPConnection13getDataSocketMFZC5tango3net13SocketConduit13SocketConduit(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %tmp63207 = alloca [64 x i8], align 1 ; <[64 x i8]*> [#uses=1] + %__arrayArg139 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %__arrayArg138 = alloca [3 x %"byte[]"], align 8 ; <[3 x %"byte[]"]*> [#uses=3] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp145208 = alloca [64 x i8], align 1 ; <[64 x i8]*> [#uses=1] + %foo = alloca [20 x i8], align 1 ; <[20 x i8]*> [#uses=12] + %__arrayArg140 = alloca [7 x %"byte[]"], align 8 ; <[7 x %"byte[]"]*> [#uses=7] + %__arrayArg141 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp204 = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp145208.sub = getelementptr [64 x i8]* %tmp145208, i32 0, i32 0 ; [#uses=1] + %tmp63207.sub = getelementptr [64 x i8]* %tmp63207, i32 0, i32 0 ; [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 9 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp2 = load %tango.net.SocketConduit.SocketConduit** %tmp1 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp3 = icmp eq %tango.net.SocketConduit.SocketConduit* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %endif, label %if + +if: ; preds = %entry + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp5 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp2) + br label %endif + +endif: ; preds = %if, %entry + %tmp13 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 0 ; [#uses=1] + %tmp14 = load i32* %tmp13 ; [#uses=1] + switch i32 %tmp14, label %default15 [ + i32 1, label %endif.case_crit_edge + i32 0, label %case25 + ] + +endif.case_crit_edge: ; preds = %endif + %tmp21.pre = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + br label %case + +default15: ; preds = %endif + %tmp17 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp18 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp17 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp18, i32 0, i32 5 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.exception@vtbl", align 4 ; [#uses=1] + call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 23, i8* getelementptr ([24 x i8]* @.str120, i32 0, i32 0) }) + br label %case + +case: ; preds = %default15, %endif.case_crit_edge + %tmp21.pre-phi = phi %tango.net.ftp.FtpClient.FTPConnection.__vtbl** [ %tmp21.pre, %endif.case_crit_edge ], [ %tmp17, %default15 ] ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp22 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp21.pre-phi ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.connectPassive@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp22, i32 0, i32 40 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)**> [#uses=1] + %this.connectPassive = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)** %"this.connectPassive@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)*> [#uses=1] + %tmp24 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.connectPassive(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + ret %tango.net.SocketConduit.SocketConduit* %tmp24 + +case25: ; preds = %endif + %tmp28 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 1 ; <%tango.net.Socket.Address**> [#uses=1] + %tmp29 = load %tango.net.Socket.Address** %tmp28 ; <%tango.net.Socket.Address*> [#uses=1] + %tmp30 = bitcast %tango.net.Socket.Address* %tmp29 to %object.Object* ; <%object.Object*> [#uses=1] + %tmp31 = call %object.Object* @_d_dynamic_cast(%object.Object* %tmp30, %object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) nounwind readonly ; <%object.Object*> [#uses=3] + %tmp32 = bitcast %object.Object* %tmp31 to %tango.net.Socket.IPv4Address* ; <%tango.net.Socket.IPv4Address*> [#uses=8] + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net13SocketConduit13SocketConduit7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.net.SocketConduit.SocketConduit* ; <%tango.net.SocketConduit.SocketConduit*> [#uses=4] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.SocketConduit.SocketConduit.__vtbl** ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=3] + store %tango.net.SocketConduit.SocketConduit.__vtbl* @_D5tango3net13SocketConduit13SocketConduit6__vtblZ, %tango.net.SocketConduit.SocketConduit.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp33 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp33, i8* bitcast (%15** getelementptr (%tango.net.SocketConduit.SocketConduit* bitcast (%23* @_D5tango3net13SocketConduit13SocketConduit6__initZ to %tango.net.SocketConduit.SocketConduit*), i32 0, i32 2) to i8*), i32 40, i32 1) + %tmp1.i.i.i = getelementptr i8* %.newclass_gc_alloc, i32 28 ; [#uses=1] + %1 = bitcast i8* %tmp1.i.i.i to %tango.net.Socket.Socket** ; <%tango.net.Socket.Socket**> [#uses=1] + %.newclass_gc_alloc.i.i.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket6Socket7__ClassZ) ; [#uses=7] + %.newclass_gc.i.i.i = bitcast i8* %.newclass_gc_alloc.i.i.i to %tango.net.Socket.Socket* ; <%tango.net.Socket.Socket*> [#uses=2] + %vtbl.i.i.i = bitcast i8* %.newclass_gc_alloc.i.i.i to %tango.net.Socket.Socket.__vtbl** ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + store %tango.net.Socket.Socket.__vtbl* @_D5tango3net6Socket6Socket6__vtblZ, %tango.net.Socket.Socket.__vtbl** %vtbl.i.i.i + %monitor.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor.i.i.i to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp2.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i.i.i, i8* bitcast (i32* getelementptr (%tango.net.Socket.Socket* bitcast (%25* @_D5tango3net6Socket6Socket6__initZ to %tango.net.Socket.Socket*), i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp1.i.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp1.i.i.i.i to i32* ; [#uses=1] + store i32 1, i32* %3 + %tmp4.i.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i, i32 16 ; [#uses=1] + %4 = bitcast i8* %tmp4.i.i.i.i to i32* ; [#uses=1] + store i32 2, i32* %4 + %tmp7.i.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i, i32 20 ; [#uses=1] + %5 = bitcast i8* %tmp7.i.i.i.i to i32* ; [#uses=1] + store i32 6, i32* %5 + call fastcc void @_D5tango3net6Socket6Socket10initializeMFT5tango3net6Socket8socket_tZv(%tango.net.Socket.Socket* %.newclass_gc.i.i.i, i32 -1) + store %tango.net.Socket.Socket* %.newclass_gc.i.i.i, %tango.net.Socket.Socket** %1 + %tmp40 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %vtbl ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"listener.bind@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp40, i32 0, i32 19 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)**> [#uses=1] + %listener.bind = load %tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)** %"listener.bind@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)*> [#uses=1] + %tmp44 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 2 ; <%tango.net.Socket.Address**> [#uses=1] + %tmp45 = load %tango.net.Socket.Address** %tmp44 ; <%tango.net.Socket.Address*> [#uses=1] + %tmp46 = call fastcc %tango.net.SocketConduit.SocketConduit* %listener.bind(%tango.net.SocketConduit.SocketConduit* %.newclass_gc, %tango.net.Socket.Address* %tmp45) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=0] + %tmp49 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %vtbl ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"listener.socket@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp49, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %listener.socket = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"listener.socket@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp51 = call fastcc %tango.net.Socket.Socket* %listener.socket(%tango.net.SocketConduit.SocketConduit* %.newclass_gc) ; <%tango.net.Socket.Socket*> [#uses=2] + %tmp52 = getelementptr %tango.net.Socket.Socket* %tmp51, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp53 = load %tango.net.Socket.Socket.__vtbl** %tmp52 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"listener.socket().listen@vtbl" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp53, i32 0, i32 13 ; <%tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)**> [#uses=1] + %"listener.socket().listen" = load %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)** %"listener.socket().listen@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)*> [#uses=1] + %tmp55 = call fastcc %tango.net.Socket.Socket* %"listener.socket().listen"(%tango.net.Socket.Socket* %tmp51, i32 32) ; <%tango.net.Socket.Socket*> [#uses=0] + %tmp57 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=5] + %tmp58 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp57 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.is_supported@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp58, i32 0, i32 42 ; [#uses=1] + %this.is_supported = load i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.is_supported@vtbl", align 4 ; [#uses=1] + %tmp60 = call fastcc i1 %this.is_supported(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str122, i32 0, i32 0) }) ; [#uses=1] + br i1 %tmp60, label %if61, label %else + +if61: ; preds = %case25 + %tmp66 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp57 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp66, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp68 = getelementptr [1 x %"byte[]"]* %__arrayArg139, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + %tmp70 = insertvalue %"byte[]" { i32 64, i8* undef }, i8* %tmp63207.sub, 1 ; <%"byte[]"> [#uses=1] + %tmp71 = getelementptr [3 x %"byte[]"]* %__arrayArg138, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" { i32 9, i8* getelementptr ([10 x i8]* @.str124, i32 0, i32 0) }, %"byte[]"* %tmp71, align 8 + %tmp72 = getelementptr [3 x %"byte[]"]* %__arrayArg138, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp74 = bitcast %object.Object* %tmp31 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=2] + %tmp75 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp74 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.toAddrString@vtbl" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp75, i32 0, i32 10 ; <%"byte[]" (%tango.net.Socket.IPv4Address*)**> [#uses=1] + %data_addr.toAddrString = load %"byte[]" (%tango.net.Socket.IPv4Address*)** %"data_addr.toAddrString@vtbl", align 4 ; <%"byte[]" (%tango.net.Socket.IPv4Address*)*> [#uses=1] + %tmp77 = call fastcc %"byte[]" %data_addr.toAddrString(%tango.net.Socket.IPv4Address* %tmp32) ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp77, %"byte[]"* %tmp72, align 8 + %tmp78 = getelementptr [3 x %"byte[]"]* %__arrayArg138, i32 0, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp81 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp74 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.toPortString@vtbl" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp81, i32 0, i32 11 ; <%"byte[]" (%tango.net.Socket.IPv4Address*)**> [#uses=1] + %data_addr.toPortString = load %"byte[]" (%tango.net.Socket.IPv4Address*)** %"data_addr.toPortString@vtbl", align 4 ; <%"byte[]" (%tango.net.Socket.IPv4Address*)*> [#uses=1] + %tmp83 = call fastcc %"byte[]" %data_addr.toPortString(%tango.net.Socket.IPv4Address* %tmp32) ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp83, %"byte[]"* %tmp78, align 8 + %tmp85 = insertvalue %"char[][]" { i32 3, %"byte[]"* undef }, %"byte[]"* %tmp71, 1 ; <%"char[][]"> [#uses=1] + %tmp86 = call fastcc %"byte[]" @_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa(%"byte[]" %tmp70, %"char[][]" %tmp85) ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp86, %"byte[]"* %tmp68, align 8 + %tmp88 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp68, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str123, i32 0, i32 0) }, %"char[][]" %tmp88) + %tmp91 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp57 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp91, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str125, i32 0, i32 0) }) + ret %tango.net.SocketConduit.SocketConduit* %.newclass_gc + +else: ; preds = %case25 + %tmp94 = bitcast %object.Object* %tmp31 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=6] + %tmp95 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp94 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.addr@vtbl" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp95, i32 0, i32 9 ; [#uses=1] + %data_addr.addr = load i32 (%tango.net.Socket.IPv4Address*)** %"data_addr.addr@vtbl", align 4 ; [#uses=1] + %tmp97 = call fastcc i32 %data_addr.addr(%tango.net.Socket.IPv4Address* %tmp32) ; [#uses=1] + %tmp98 = lshr i32 %tmp97, 24 ; [#uses=1] + %tmp102 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp94 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.addr@vtbl103" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp102, i32 0, i32 9 ; [#uses=1] + %data_addr.addr105 = load i32 (%tango.net.Socket.IPv4Address*)** %"data_addr.addr@vtbl103", align 4 ; [#uses=1] + %tmp106 = call fastcc i32 %data_addr.addr105(%tango.net.Socket.IPv4Address* %tmp32) ; [#uses=1] + %tmp107 = lshr i32 %tmp106, 16 ; [#uses=1] + %tmp108 = and i32 %tmp107, 255 ; [#uses=1] + %tmp111 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp94 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.addr@vtbl112" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp111, i32 0, i32 9 ; [#uses=1] + %data_addr.addr114 = load i32 (%tango.net.Socket.IPv4Address*)** %"data_addr.addr@vtbl112", align 4 ; [#uses=1] + %tmp115 = call fastcc i32 %data_addr.addr114(%tango.net.Socket.IPv4Address* %tmp32) ; [#uses=1] + %tmp116 = lshr i32 %tmp115, 8 ; [#uses=1] + %tmp117 = and i32 %tmp116, 255 ; [#uses=1] + %tmp120 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp94 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.addr@vtbl121" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp120, i32 0, i32 9 ; [#uses=1] + %data_addr.addr123 = load i32 (%tango.net.Socket.IPv4Address*)** %"data_addr.addr@vtbl121", align 4 ; [#uses=1] + %tmp124 = call fastcc i32 %data_addr.addr123(%tango.net.Socket.IPv4Address* %tmp32) ; [#uses=1] + %tmp126 = and i32 %tmp124, 255 ; [#uses=1] + %tmp129 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp94 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.port@vtbl" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp129, i32 0, i32 8 ; [#uses=1] + %data_addr.port = load i16 (%tango.net.Socket.IPv4Address*)** %"data_addr.port@vtbl", align 4 ; [#uses=1] + %tmp131 = call fastcc zeroext i16 %data_addr.port(%tango.net.Socket.IPv4Address* %tmp32) ; [#uses=1] + %tmp132 = zext i16 %tmp131 to i32 ; [#uses=1] + %tmp133210 = lshr i32 %tmp132, 8 ; [#uses=1] + %tmp137 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp94 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"data_addr.port@vtbl138" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp137, i32 0, i32 8 ; [#uses=1] + %data_addr.port140 = load i16 (%tango.net.Socket.IPv4Address*)** %"data_addr.port@vtbl138", align 4 ; [#uses=1] + %tmp141 = call fastcc zeroext i16 %data_addr.port140(%tango.net.Socket.IPv4Address* %tmp32) ; [#uses=1] + %tmp142 = zext i16 %tmp141 to i32 ; [#uses=1] + %tmp144 = and i32 %tmp142, 255 ; [#uses=1] + %tmp147 = insertvalue %"byte[]" { i32 64, i8* undef }, i8* %tmp145208.sub, 1 ; <%"byte[]"> [#uses=1] + %tmp148 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" { i32 17, i8* getelementptr ([18 x i8]* @.str126, i32 0, i32 0) }, %"byte[]"* %tmp148, align 8 + %tmp149 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp49.i = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i = extractvalue %"byte[]" %tmp49.i, 1 ; [#uses=1] + %tmp52.i = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i = getelementptr [20 x i8]* %foo, i32 0, i32 3 ; [#uses=1] + br i1 false, label %dowhile82.i, label %if59.i + +if59.i: ; preds = %else + br label %dowhile.i + +dowhile.i: ; preds = %andand.i, %if59.i + %p.0.i = phi i8* [ %tmp56.i, %if59.i ], [ %tmp65.i, %andand.i ] ; [#uses=1] + %v.0.i = phi i32 [ %tmp98, %if59.i ], [ %tmp75.i, %andand.i ] ; [#uses=2] + %len.0.i = phi i32 [ 3, %if59.i ], [ %tmp78.i, %andand.i ] ; [#uses=3] + %tmp65.i = getelementptr i8* %p.0.i, i32 -1 ; [#uses=2] + %tmp68.i = urem i32 %v.0.i, %tmp52.i ; [#uses=1] + %tmp71.i = getelementptr i8* %tmp49178.i, i32 %tmp68.i ; [#uses=1] + %tmp72.i = load i8* %tmp71.i ; [#uses=1] + store i8 %tmp72.i, i8* %tmp65.i + %tmp75.i = udiv i32 %v.0.i, %tmp52.i ; [#uses=2] + %tmp76.i = icmp eq i32 %tmp75.i, 0 ; [#uses=1] + br i1 %tmp76.i, label %condtrue.i, label %andand.i + +andand.i: ; preds = %dowhile.i + %tmp78.i = add i32 %len.0.i, -1 ; [#uses=2] + %tmp79.i = icmp eq i32 %len.0.i, 1 ; [#uses=1] + br i1 %tmp79.i, label %condtrue.i, label %dowhile.i + +dowhile82.i: ; preds = %andand100.i, %else + br i1 undef, label %condtrue.i, label %andand100.i + +andand100.i: ; preds = %dowhile82.i + br i1 undef, label %condtrue.i, label %dowhile82.i + +condtrue.i: ; preds = %andand100.i, %dowhile82.i, %andand.i, %dowhile.i + %len.1.i = phi i32 [ %tmp78.i, %andand.i ], [ %len.0.i, %dowhile.i ], [ undef, %andand100.i ], [ undef, %dowhile82.i ] ; [#uses=2] + %tmp112.i = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i = extractvalue %"byte[]" %tmp112.i, 0 ; [#uses=3] + %tmp117.i = icmp ugt i32 %len.1.i, %condtmp.0175.i ; [#uses=1] + br i1 %tmp117.i, label %if118.i, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +if118.i: ; preds = %condtrue.i + %condtmp.0176.i = extractvalue %"byte[]" %tmp112.i, 1 ; [#uses=1] + %tmp123.i = add i32 %condtmp.0175.i, 1 ; [#uses=1] + %tmp124.i = sub i32 %len.1.i, %tmp123.i ; [#uses=2] + %tmp156.i = getelementptr [20 x i8]* %foo, i32 0, i32 %tmp124.i ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i, i8* %condtmp.0176.i, i32 %condtmp.0175.i, i32 1) + %tmp170.i = sub i32 3, %tmp124.i ; [#uses=1] + %tmp171.i = insertvalue %"byte[]" undef, i32 %tmp170.i, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i = insertvalue %"byte[]" %tmp171.i, i8* %tmp156.i, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit: ; preds = %if118.i, %condtrue.i + %tmp6.i.i408 = phi %"byte[]" [ %tmp172.i, %if118.i ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i.i408, %"byte[]"* %tmp149, align 8 + %tmp155 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp49.i423 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i424 = extractvalue %"byte[]" %tmp49.i423, 1 ; [#uses=1] + %tmp52.i426 = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i427 = getelementptr [20 x i8]* %foo, i32 0, i32 6 ; [#uses=1] + br i1 false, label %dowhile82.i456, label %if59.i431 + +if59.i431: ; preds = %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + br label %dowhile.i441 + +dowhile.i441: ; preds = %andand.i444, %if59.i431 + %p.0.i432 = phi i8* [ %tmp56.i427, %if59.i431 ], [ %tmp65.i435, %andand.i444 ] ; [#uses=1] + %v.0.i433 = phi i32 [ %tmp108, %if59.i431 ], [ %tmp75.i439, %andand.i444 ] ; [#uses=2] + %len.0.i434 = phi i32 [ 3, %if59.i431 ], [ %tmp78.i442, %andand.i444 ] ; [#uses=3] + %tmp65.i435 = getelementptr i8* %p.0.i432, i32 -1 ; [#uses=2] + %tmp68.i436 = urem i32 %v.0.i433, %tmp52.i426 ; [#uses=1] + %tmp71.i437 = getelementptr i8* %tmp49178.i424, i32 %tmp68.i436 ; [#uses=1] + %tmp72.i438 = load i8* %tmp71.i437 ; [#uses=1] + store i8 %tmp72.i438, i8* %tmp65.i435 + %tmp75.i439 = udiv i32 %v.0.i433, %tmp52.i426 ; [#uses=2] + %tmp76.i440 = icmp eq i32 %tmp75.i439, 0 ; [#uses=1] + br i1 %tmp76.i440, label %condtrue.i466, label %andand.i444 + +andand.i444: ; preds = %dowhile.i441 + %tmp78.i442 = add i32 %len.0.i434, -1 ; [#uses=2] + %tmp79.i443 = icmp eq i32 %len.0.i434, 1 ; [#uses=1] + br i1 %tmp79.i443, label %condtrue.i466, label %dowhile.i441 + +dowhile82.i456: ; preds = %andand100.i459, %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + br i1 undef, label %condtrue.i466, label %andand100.i459 + +andand100.i459: ; preds = %dowhile82.i456 + br i1 undef, label %condtrue.i466, label %dowhile82.i456 + +condtrue.i466: ; preds = %andand100.i459, %dowhile82.i456, %andand.i444, %dowhile.i441 + %len.1.i461 = phi i32 [ %tmp78.i442, %andand.i444 ], [ %len.0.i434, %dowhile.i441 ], [ undef, %andand100.i459 ], [ undef, %dowhile82.i456 ] ; [#uses=2] + %tmp112.i465 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i468 = extractvalue %"byte[]" %tmp112.i465, 0 ; [#uses=3] + %tmp117.i470 = icmp ugt i32 %len.1.i461, %condtmp.0175.i468 ; [#uses=1] + br i1 %tmp117.i470, label %if118.i474, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit482 + +if118.i474: ; preds = %condtrue.i466 + %condtmp.0176.i469 = extractvalue %"byte[]" %tmp112.i465, 1 ; [#uses=1] + %tmp123.i472 = add i32 %condtmp.0175.i468, 1 ; [#uses=1] + %tmp124.i473 = sub i32 %len.1.i461, %tmp123.i472 ; [#uses=2] + %tmp157.sum788 = add i32 %tmp124.i473, 3 ; [#uses=1] + %tmp156.i476 = getelementptr [20 x i8]* %foo, i32 0, i32 %tmp157.sum788 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i476, i8* %condtmp.0176.i469, i32 %condtmp.0175.i468, i32 1) + %tmp170.i477 = sub i32 3, %tmp124.i473 ; [#uses=1] + %tmp171.i478 = insertvalue %"byte[]" undef, i32 %tmp170.i477, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i479 = insertvalue %"byte[]" %tmp171.i478, i8* %tmp156.i476, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit482 + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit482: ; preds = %if118.i474, %condtrue.i466 + %tmp6.i.i248483 = phi %"byte[]" [ %tmp172.i479, %if118.i474 ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i466 ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i.i248483, %"byte[]"* %tmp155, align 8 + %tmp161 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 3 ; <%"byte[]"*> [#uses=1] + %tmp49.i498 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i499 = extractvalue %"byte[]" %tmp49.i498, 1 ; [#uses=1] + %tmp52.i501 = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i502 = getelementptr [20 x i8]* %foo, i32 0, i32 9 ; [#uses=1] + br i1 false, label %dowhile82.i531, label %if59.i506 + +if59.i506: ; preds = %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit482 + br label %dowhile.i516 + +dowhile.i516: ; preds = %andand.i519, %if59.i506 + %p.0.i507 = phi i8* [ %tmp56.i502, %if59.i506 ], [ %tmp65.i510, %andand.i519 ] ; [#uses=1] + %v.0.i508 = phi i32 [ %tmp117, %if59.i506 ], [ %tmp75.i514, %andand.i519 ] ; [#uses=2] + %len.0.i509 = phi i32 [ 3, %if59.i506 ], [ %tmp78.i517, %andand.i519 ] ; [#uses=3] + %tmp65.i510 = getelementptr i8* %p.0.i507, i32 -1 ; [#uses=2] + %tmp68.i511 = urem i32 %v.0.i508, %tmp52.i501 ; [#uses=1] + %tmp71.i512 = getelementptr i8* %tmp49178.i499, i32 %tmp68.i511 ; [#uses=1] + %tmp72.i513 = load i8* %tmp71.i512 ; [#uses=1] + store i8 %tmp72.i513, i8* %tmp65.i510 + %tmp75.i514 = udiv i32 %v.0.i508, %tmp52.i501 ; [#uses=2] + %tmp76.i515 = icmp eq i32 %tmp75.i514, 0 ; [#uses=1] + br i1 %tmp76.i515, label %condtrue.i541, label %andand.i519 + +andand.i519: ; preds = %dowhile.i516 + %tmp78.i517 = add i32 %len.0.i509, -1 ; [#uses=2] + %tmp79.i518 = icmp eq i32 %len.0.i509, 1 ; [#uses=1] + br i1 %tmp79.i518, label %condtrue.i541, label %dowhile.i516 + +dowhile82.i531: ; preds = %andand100.i534, %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit482 + br i1 undef, label %condtrue.i541, label %andand100.i534 + +andand100.i534: ; preds = %dowhile82.i531 + br i1 undef, label %condtrue.i541, label %dowhile82.i531 + +condtrue.i541: ; preds = %andand100.i534, %dowhile82.i531, %andand.i519, %dowhile.i516 + %len.1.i536 = phi i32 [ %tmp78.i517, %andand.i519 ], [ %len.0.i509, %dowhile.i516 ], [ undef, %andand100.i534 ], [ undef, %dowhile82.i531 ] ; [#uses=2] + %tmp112.i540 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i543 = extractvalue %"byte[]" %tmp112.i540, 0 ; [#uses=3] + %tmp117.i545 = icmp ugt i32 %len.1.i536, %condtmp.0175.i543 ; [#uses=1] + br i1 %tmp117.i545, label %if118.i549, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit557 + +if118.i549: ; preds = %condtrue.i541 + %condtmp.0176.i544 = extractvalue %"byte[]" %tmp112.i540, 1 ; [#uses=1] + %tmp123.i547 = add i32 %condtmp.0175.i543, 1 ; [#uses=1] + %tmp124.i548 = sub i32 %len.1.i536, %tmp123.i547 ; [#uses=2] + %tmp163.sum787 = add i32 %tmp124.i548, 6 ; [#uses=1] + %tmp156.i551 = getelementptr [20 x i8]* %foo, i32 0, i32 %tmp163.sum787 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i551, i8* %condtmp.0176.i544, i32 %condtmp.0175.i543, i32 1) + %tmp170.i552 = sub i32 3, %tmp124.i548 ; [#uses=1] + %tmp171.i553 = insertvalue %"byte[]" undef, i32 %tmp170.i552, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i554 = insertvalue %"byte[]" %tmp171.i553, i8* %tmp156.i551, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit557 + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit557: ; preds = %if118.i549, %condtrue.i541 + %tmp6.i.i286558 = phi %"byte[]" [ %tmp172.i554, %if118.i549 ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i541 ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i.i286558, %"byte[]"* %tmp161, align 8 + %tmp167 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 4 ; <%"byte[]"*> [#uses=1] + %tmp49.i573 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i574 = extractvalue %"byte[]" %tmp49.i573, 1 ; [#uses=1] + %tmp52.i576 = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i577 = getelementptr [20 x i8]* %foo, i32 0, i32 12 ; [#uses=1] + br i1 false, label %dowhile82.i606, label %if59.i581 + +if59.i581: ; preds = %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit557 + br label %dowhile.i591 + +dowhile.i591: ; preds = %andand.i594, %if59.i581 + %p.0.i582 = phi i8* [ %tmp56.i577, %if59.i581 ], [ %tmp65.i585, %andand.i594 ] ; [#uses=1] + %v.0.i583 = phi i32 [ %tmp126, %if59.i581 ], [ %tmp75.i589, %andand.i594 ] ; [#uses=2] + %len.0.i584 = phi i32 [ 3, %if59.i581 ], [ %tmp78.i592, %andand.i594 ] ; [#uses=3] + %tmp65.i585 = getelementptr i8* %p.0.i582, i32 -1 ; [#uses=2] + %tmp68.i586 = urem i32 %v.0.i583, %tmp52.i576 ; [#uses=1] + %tmp71.i587 = getelementptr i8* %tmp49178.i574, i32 %tmp68.i586 ; [#uses=1] + %tmp72.i588 = load i8* %tmp71.i587 ; [#uses=1] + store i8 %tmp72.i588, i8* %tmp65.i585 + %tmp75.i589 = udiv i32 %v.0.i583, %tmp52.i576 ; [#uses=2] + %tmp76.i590 = icmp eq i32 %tmp75.i589, 0 ; [#uses=1] + br i1 %tmp76.i590, label %condtrue.i616, label %andand.i594 + +andand.i594: ; preds = %dowhile.i591 + %tmp78.i592 = add i32 %len.0.i584, -1 ; [#uses=2] + %tmp79.i593 = icmp eq i32 %len.0.i584, 1 ; [#uses=1] + br i1 %tmp79.i593, label %condtrue.i616, label %dowhile.i591 + +dowhile82.i606: ; preds = %andand100.i609, %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit557 + br i1 undef, label %condtrue.i616, label %andand100.i609 + +andand100.i609: ; preds = %dowhile82.i606 + br i1 undef, label %condtrue.i616, label %dowhile82.i606 + +condtrue.i616: ; preds = %andand100.i609, %dowhile82.i606, %andand.i594, %dowhile.i591 + %len.1.i611 = phi i32 [ %tmp78.i592, %andand.i594 ], [ %len.0.i584, %dowhile.i591 ], [ undef, %andand100.i609 ], [ undef, %dowhile82.i606 ] ; [#uses=2] + %tmp112.i615 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i618 = extractvalue %"byte[]" %tmp112.i615, 0 ; [#uses=3] + %tmp117.i620 = icmp ugt i32 %len.1.i611, %condtmp.0175.i618 ; [#uses=1] + br i1 %tmp117.i620, label %if118.i624, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit632 + +if118.i624: ; preds = %condtrue.i616 + %condtmp.0176.i619 = extractvalue %"byte[]" %tmp112.i615, 1 ; [#uses=1] + %tmp123.i622 = add i32 %condtmp.0175.i618, 1 ; [#uses=1] + %tmp124.i623 = sub i32 %len.1.i611, %tmp123.i622 ; [#uses=2] + %tmp169.sum786 = add i32 %tmp124.i623, 9 ; [#uses=1] + %tmp156.i626 = getelementptr [20 x i8]* %foo, i32 0, i32 %tmp169.sum786 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i626, i8* %condtmp.0176.i619, i32 %condtmp.0175.i618, i32 1) + %tmp170.i627 = sub i32 3, %tmp124.i623 ; [#uses=1] + %tmp171.i628 = insertvalue %"byte[]" undef, i32 %tmp170.i627, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i629 = insertvalue %"byte[]" %tmp171.i628, i8* %tmp156.i626, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit632 + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit632: ; preds = %if118.i624, %condtrue.i616 + %tmp6.i.i400633 = phi %"byte[]" [ %tmp172.i629, %if118.i624 ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i616 ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i.i400633, %"byte[]"* %tmp167, align 8 + %tmp173 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 5 ; <%"byte[]"*> [#uses=1] + %tmp49.i723 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i724 = extractvalue %"byte[]" %tmp49.i723, 1 ; [#uses=1] + %tmp52.i726 = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i727 = getelementptr [20 x i8]* %foo, i32 0, i32 15 ; [#uses=1] + br i1 false, label %dowhile82.i756, label %if59.i731 + +if59.i731: ; preds = %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit632 + br label %dowhile.i741 + +dowhile.i741: ; preds = %andand.i744, %if59.i731 + %p.0.i732 = phi i8* [ %tmp56.i727, %if59.i731 ], [ %tmp65.i735, %andand.i744 ] ; [#uses=1] + %v.0.i733 = phi i32 [ %tmp133210, %if59.i731 ], [ %tmp75.i739, %andand.i744 ] ; [#uses=2] + %len.0.i734 = phi i32 [ 3, %if59.i731 ], [ %tmp78.i742, %andand.i744 ] ; [#uses=3] + %tmp65.i735 = getelementptr i8* %p.0.i732, i32 -1 ; [#uses=2] + %tmp68.i736 = urem i32 %v.0.i733, %tmp52.i726 ; [#uses=1] + %tmp71.i737 = getelementptr i8* %tmp49178.i724, i32 %tmp68.i736 ; [#uses=1] + %tmp72.i738 = load i8* %tmp71.i737 ; [#uses=1] + store i8 %tmp72.i738, i8* %tmp65.i735 + %tmp75.i739 = udiv i32 %v.0.i733, %tmp52.i726 ; [#uses=2] + %tmp76.i740 = icmp eq i32 %tmp75.i739, 0 ; [#uses=1] + br i1 %tmp76.i740, label %condtrue.i766, label %andand.i744 + +andand.i744: ; preds = %dowhile.i741 + %tmp78.i742 = add i32 %len.0.i734, -1 ; [#uses=2] + %tmp79.i743 = icmp eq i32 %len.0.i734, 1 ; [#uses=1] + br i1 %tmp79.i743, label %condtrue.i766, label %dowhile.i741 + +dowhile82.i756: ; preds = %andand100.i759, %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit632 + br i1 undef, label %condtrue.i766, label %andand100.i759 + +andand100.i759: ; preds = %dowhile82.i756 + br i1 undef, label %condtrue.i766, label %dowhile82.i756 + +condtrue.i766: ; preds = %andand100.i759, %dowhile82.i756, %andand.i744, %dowhile.i741 + %len.1.i761 = phi i32 [ %tmp78.i742, %andand.i744 ], [ %len.0.i734, %dowhile.i741 ], [ undef, %andand100.i759 ], [ undef, %dowhile82.i756 ] ; [#uses=2] + %tmp112.i765 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i768 = extractvalue %"byte[]" %tmp112.i765, 0 ; [#uses=3] + %tmp117.i770 = icmp ugt i32 %len.1.i761, %condtmp.0175.i768 ; [#uses=1] + br i1 %tmp117.i770, label %if118.i774, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit782 + +if118.i774: ; preds = %condtrue.i766 + %condtmp.0176.i769 = extractvalue %"byte[]" %tmp112.i765, 1 ; [#uses=1] + %tmp123.i772 = add i32 %condtmp.0175.i768, 1 ; [#uses=1] + %tmp124.i773 = sub i32 %len.1.i761, %tmp123.i772 ; [#uses=2] + %tmp175.sum785 = add i32 %tmp124.i773, 12 ; [#uses=1] + %tmp156.i776 = getelementptr [20 x i8]* %foo, i32 0, i32 %tmp175.sum785 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i776, i8* %condtmp.0176.i769, i32 %condtmp.0175.i768, i32 1) + %tmp170.i777 = sub i32 3, %tmp124.i773 ; [#uses=1] + %tmp171.i778 = insertvalue %"byte[]" undef, i32 %tmp170.i777, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i779 = insertvalue %"byte[]" %tmp171.i778, i8* %tmp156.i776, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit782 + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit782: ; preds = %if118.i774, %condtrue.i766 + %tmp6.i.i362783 = phi %"byte[]" [ %tmp172.i779, %if118.i774 ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i766 ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i.i362783, %"byte[]"* %tmp173, align 8 + %tmp179 = getelementptr [7 x %"byte[]"]* %__arrayArg140, i32 0, i32 6 ; <%"byte[]"*> [#uses=1] + %tmp49.i648 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i649 = extractvalue %"byte[]" %tmp49.i648, 1 ; [#uses=1] + %tmp52.i651 = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i652 = getelementptr [20 x i8]* %foo, i32 0, i32 18 ; [#uses=1] + br i1 false, label %dowhile82.i681, label %if59.i656 + +if59.i656: ; preds = %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit782 + br label %dowhile.i666 + +dowhile.i666: ; preds = %andand.i669, %if59.i656 + %p.0.i657 = phi i8* [ %tmp56.i652, %if59.i656 ], [ %tmp65.i660, %andand.i669 ] ; [#uses=1] + %v.0.i658 = phi i32 [ %tmp144, %if59.i656 ], [ %tmp75.i664, %andand.i669 ] ; [#uses=2] + %len.0.i659 = phi i32 [ 3, %if59.i656 ], [ %tmp78.i667, %andand.i669 ] ; [#uses=3] + %tmp65.i660 = getelementptr i8* %p.0.i657, i32 -1 ; [#uses=2] + %tmp68.i661 = urem i32 %v.0.i658, %tmp52.i651 ; [#uses=1] + %tmp71.i662 = getelementptr i8* %tmp49178.i649, i32 %tmp68.i661 ; [#uses=1] + %tmp72.i663 = load i8* %tmp71.i662 ; [#uses=1] + store i8 %tmp72.i663, i8* %tmp65.i660 + %tmp75.i664 = udiv i32 %v.0.i658, %tmp52.i651 ; [#uses=2] + %tmp76.i665 = icmp eq i32 %tmp75.i664, 0 ; [#uses=1] + br i1 %tmp76.i665, label %condtrue.i691, label %andand.i669 + +andand.i669: ; preds = %dowhile.i666 + %tmp78.i667 = add i32 %len.0.i659, -1 ; [#uses=2] + %tmp79.i668 = icmp eq i32 %len.0.i659, 1 ; [#uses=1] + br i1 %tmp79.i668, label %condtrue.i691, label %dowhile.i666 + +dowhile82.i681: ; preds = %andand100.i684, %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit782 + br i1 undef, label %condtrue.i691, label %andand100.i684 + +andand100.i684: ; preds = %dowhile82.i681 + br i1 undef, label %condtrue.i691, label %dowhile82.i681 + +condtrue.i691: ; preds = %andand100.i684, %dowhile82.i681, %andand.i669, %dowhile.i666 + %len.1.i686 = phi i32 [ %tmp78.i667, %andand.i669 ], [ %len.0.i659, %dowhile.i666 ], [ undef, %andand100.i684 ], [ undef, %dowhile82.i681 ] ; [#uses=2] + %tmp112.i690 = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i693 = extractvalue %"byte[]" %tmp112.i690, 0 ; [#uses=3] + %tmp117.i695 = icmp ugt i32 %len.1.i686, %condtmp.0175.i693 ; [#uses=1] + br i1 %tmp117.i695, label %if118.i699, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit707 + +if118.i699: ; preds = %condtrue.i691 + %condtmp.0176.i694 = extractvalue %"byte[]" %tmp112.i690, 1 ; [#uses=1] + %tmp123.i697 = add i32 %condtmp.0175.i693, 1 ; [#uses=1] + %tmp124.i698 = sub i32 %len.1.i686, %tmp123.i697 ; [#uses=2] + %tmp181.sum784 = add i32 %tmp124.i698, 15 ; [#uses=1] + %tmp156.i701 = getelementptr [20 x i8]* %foo, i32 0, i32 %tmp181.sum784 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i701, i8* %condtmp.0176.i694, i32 %condtmp.0175.i693, i32 1) + %tmp170.i702 = sub i32 3, %tmp124.i698 ; [#uses=1] + %tmp171.i703 = insertvalue %"byte[]" undef, i32 %tmp170.i702, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i704 = insertvalue %"byte[]" %tmp171.i703, i8* %tmp156.i701, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit707 + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit707: ; preds = %if118.i699, %condtrue.i691 + %tmp6.i.i324708 = phi %"byte[]" [ %tmp172.i704, %if118.i699 ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i691 ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i.i324708, %"byte[]"* %tmp179, align 8 + %tmp186 = insertvalue %"char[][]" { i32 7, %"byte[]"* undef }, %"byte[]"* %tmp148, 1 ; <%"char[][]"> [#uses=1] + %tmp187 = call fastcc %"byte[]" @_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa(%"byte[]" %tmp147, %"char[][]" %tmp186) ; <%"byte[]"> [#uses=1] + %tmp190 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp57 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl191" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp190, i32 0, i32 35 ; [#uses=1] + %this.sendCommand193 = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl191", align 4 ; [#uses=1] + %tmp194 = getelementptr [1 x %"byte[]"]* %__arrayArg141, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %tmp187, %"byte[]"* %tmp194, align 8 + %tmp197 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp194, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand193(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str127, i32 0, i32 0) }, %"char[][]" %tmp197) + %tmp200 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp57 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl201" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp200, i32 0, i32 36 ; [#uses=1] + %this.readResponse203 = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl201", align 4 ; [#uses=1] + call fastcc void %this.readResponse203(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp204, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str128, i32 0, i32 0) }) + ret %tango.net.SocketConduit.SocketConduit* %.newclass_gc +} + +define fastcc %tango.net.SocketConduit.SocketConduit* @_D5tango3net3ftp9FtpClient13FTPConnection14connectPassiveMFZC5tango3net13SocketConduit13SocketConduit(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=3] + %.rettmp70 = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=3] + %.rettmp161 = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=3] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=6] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.is_supported@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 42 ; [#uses=1] + %this.is_supported = load i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.is_supported@vtbl", align 4 ; [#uses=1] + %tmp4 = call fastcc i1 %this.is_supported(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str129, i32 0, i32 0) }) ; [#uses=1] + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=2] + br i1 %tmp4, label %if, label %else + +if: ; preds = %entry + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str130, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp11 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp11, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str131, i32 0, i32 0) }) + %.rettmp.1.0 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 1, i32 0 ; [#uses=1] + %tmp359 = load i32* %.rettmp.1.0, align 4 ; [#uses=3] + %.rettmp.1.1 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 1, i32 1 ; [#uses=1] + %tmp360 = load i8** %.rettmp.1.1, align 4 ; [#uses=5] + %tmp16 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 2 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp17 = load %tango.net.SocketConduit.SocketConduit** %tmp16 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp18 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp17, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp19 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp18 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"this.socket_.socket@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp19, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %this.socket_.socket = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"this.socket_.socket@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp21 = call fastcc %tango.net.Socket.Socket* %this.socket_.socket(%tango.net.SocketConduit.SocketConduit* %tmp17) ; <%tango.net.Socket.Socket*> [#uses=2] + %tmp22 = getelementptr %tango.net.Socket.Socket* %tmp21, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp23 = load %tango.net.Socket.Socket.__vtbl** %tmp22 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"this.socket_.socket().remoteAddress@vtbl" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp23, i32 0, i32 23 ; <%tango.net.Socket.Address* (%tango.net.Socket.Socket*)**> [#uses=1] + %"this.socket_.socket().remoteAddress" = load %tango.net.Socket.Address* (%tango.net.Socket.Socket*)** %"this.socket_.socket().remoteAddress@vtbl", align 4 ; <%tango.net.Socket.Address* (%tango.net.Socket.Socket*)*> [#uses=1] + %tmp25 = call fastcc %tango.net.Socket.Address* %"this.socket_.socket().remoteAddress"(%tango.net.Socket.Socket* %tmp21) ; <%tango.net.Socket.Address*> [#uses=1] + %tmp26 = bitcast %tango.net.Socket.Address* %tmp25 to %object.Object* ; <%object.Object*> [#uses=1] + %tmp27 = call %object.Object* @_d_dynamic_cast(%object.Object* %tmp26, %object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) nounwind readonly ; <%object.Object*> [#uses=2] + %tmp28 = bitcast %object.Object* %tmp27 to %tango.net.Socket.IPv4Address* ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %tmp30 = bitcast %object.Object* %tmp27 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + %tmp31 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp30 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"remote.addr@vtbl" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp31, i32 0, i32 9 ; [#uses=1] + %remote.addr = load i32 (%tango.net.Socket.IPv4Address*)** %"remote.addr@vtbl", align 4 ; [#uses=1] + %tmp33 = call fastcc i32 %remote.addr(%tango.net.Socket.IPv4Address* %tmp28) ; [#uses=1] + %tmp4.i.i = icmp eq i32 %tmp359, 0 ; [#uses=1] + br i1 %tmp4.i.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %forcond.i.i + +forcond.i.i: ; preds = %forinc.i.i, %if + %sign.1.i = phi i1 [ false, %if ], [ %sign.0.i, %forinc.i.i ] ; [#uses=4] + %len.0.i.i = phi i32 [ %tmp33.i.i, %forinc.i.i ], [ %tmp359, %if ] ; [#uses=3] + %p.0.i.i = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %tmp360, %if ] ; [#uses=6] + %c.0.in.i.i = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %tmp360, %if ] ; [#uses=1] + %c.0.i.i = load i8* %c.0.in.i.i ; [#uses=2] + %tmp8.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp8.i.i, label %endfor.i.i, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + switch i8 %c.0.i.i, label %endfor.i.i [ + i8 32, label %forinc.i.i + i8 9, label %forinc.i.i + i8 45, label %if20.i.i + i8 43, label %if26.i.i + ] + +if20.i.i: ; preds = %forbody.i.i + br label %forinc.i.i + +if26.i.i: ; preds = %forbody.i.i + br label %forinc.i.i + +forinc.i.i: ; preds = %if26.i.i, %if20.i.i, %forbody.i.i, %forbody.i.i + %sign.0.i = phi i1 [ false, %if26.i.i ], [ true, %if20.i.i ], [ %sign.1.i, %forbody.i.i ], [ %sign.1.i, %forbody.i.i ] ; [#uses=1] + %tmp30.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=2] + %tmp33.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + br label %forcond.i.i + +endfor.i.i: ; preds = %forbody.i.i, %forcond.i.i + %tmp37.i.i = icmp eq i8 %c.0.i.i, 48 ; [#uses=1] + %tmp39.i.i = icmp sgt i32 %len.0.i.i, 1 ; [#uses=1] + %or.cond.i.i = and i1 %tmp37.i.i, %tmp39.i.i ; [#uses=1] + br i1 %or.cond.i.i, label %if40.i.i, label %endif41.i.i + +if40.i.i: ; preds = %endfor.i.i + %tmp43.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=2] + %tmp44.i.i = load i8* %tmp43.i.i ; [#uses=1] + %tmp45.i.i = zext i8 %tmp44.i.i to i32 ; [#uses=1] + switch i32 %tmp45.i.i, label %endif41.i.i [ + i32 120, label %case46.i.i + i32 88, label %case46.i.i + i32 98, label %case51.i.i + i32 66, label %case51.i.i + i32 111, label %case56.i.i + i32 79, label %case56.i.i + ] + +case46.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp48.i.i = getelementptr i8* %p.0.i.i, i32 2 ; [#uses=1] + br label %endif41.i.i + +case51.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp53.i.i = getelementptr i8* %p.0.i.i, i32 2 ; [#uses=1] + br label %endif41.i.i + +case56.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp58.i.i = getelementptr i8* %p.0.i.i, i32 2 ; [#uses=1] + br label %endif41.i.i + +endif41.i.i: ; preds = %case56.i.i, %case51.i.i, %case46.i.i, %if40.i.i, %endfor.i.i + %r.0.i.i = phi i32 [ 0, %if40.i.i ], [ 8, %case56.i.i ], [ 2, %case51.i.i ], [ 16, %case46.i.i ], [ 0, %endfor.i.i ] ; [#uses=2] + %p.2.i.i = phi i8* [ %tmp43.i.i, %if40.i.i ], [ %tmp58.i.i, %case56.i.i ], [ %tmp53.i.i, %case51.i.i ], [ %tmp48.i.i, %case46.i.i ], [ %p.0.i.i, %endfor.i.i ] ; [#uses=2] + %tmp63.i.i = icmp eq i32 %r.0.i.i, 0 ; [#uses=1] + br i1 %tmp63.i.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %if70.i.i + +if70.i.i: ; preds = %endif41.i.i + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i: ; preds = %if70.i.i, %endif41.i.i, %if + %sign.2.i = phi i1 [ false, %if ], [ %sign.1.i, %if70.i.i ], [ %sign.1.i, %endif41.i.i ] ; [#uses=1] + %radix.0.i = phi i32 [ 0, %if ], [ %r.0.i.i, %if70.i.i ], [ 10, %endif41.i.i ] ; [#uses=2] + %p.1.i.i = phi i8* [ %p.2.i.i, %if70.i.i ], [ %tmp360, %if ], [ %p.2.i.i, %endif41.i.i ] ; [#uses=1] + %tmp84.i.i = ptrtoint i8* %p.1.i.i to i32 ; [#uses=1] + %tmp85.i.i = ptrtoint i8* %tmp360 to i32 ; [#uses=1] + %tmp86.i.i = sub i32 %tmp84.i.i, %tmp85.i.i ; [#uses=2] + %tmp6.i = sub i32 %tmp359, %tmp86.i.i ; [#uses=1] + br label %foreachcond.i.i + +foreachcond.i.i: ; preds = %if55.i.i, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + %value.0.i.i = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp65.i.i, %if55.i.i ] ; [#uses=3] + %foreachkey.0.i.i = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp70.i.i, %if55.i.i ] ; [#uses=3] + %tmp3.i.i = icmp ult i32 %foreachkey.0.i.i, %tmp6.i ; [#uses=1] + br i1 %tmp3.i.i, label %foreachbody.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +foreachbody.i.i: ; preds = %foreachcond.i.i + %tmp5.sum.i = add i32 %tmp86.i.i, %foreachkey.0.i.i ; [#uses=1] + %tmp5.i.i = getelementptr i8* %tmp360, i32 %tmp5.sum.i ; [#uses=1] + %tmp6.i.i = load i8* %tmp5.i.i ; [#uses=6] + %tmp6.off84.i.i = add i8 %tmp6.i.i, -48 ; [#uses=1] + %or.cond.i28.i = icmp ugt i8 %tmp6.off84.i.i, 9 ; [#uses=1] + br i1 %or.cond.i28.i, label %else.i.i, label %endif.i.i + +else.i.i: ; preds = %foreachbody.i.i + %tmp6.off83.i.i = add i8 %tmp6.i.i, -97 ; [#uses=1] + %or.cond81.i.i = icmp ugt i8 %tmp6.off83.i.i, 25 ; [#uses=1] + br i1 %or.cond81.i.i, label %else24.i.i, label %if22.i.i + +if22.i.i: ; preds = %else.i.i + %tmp27.i.i = add i8 %tmp6.i.i, -39 ; [#uses=1] + br label %endif.i.i + +else24.i.i: ; preds = %else.i.i + %tmp6.off.i.i = add i8 %tmp6.i.i, -65 ; [#uses=1] + %or.cond82.i.i = icmp ugt i8 %tmp6.off.i.i, 25 ; [#uses=1] + br i1 %or.cond82.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit, label %if39.i.i + +if39.i.i: ; preds = %else24.i.i + %tmp44.i29.i = add i8 %tmp6.i.i, -7 ; [#uses=1] + br label %endif.i.i + +endif.i.i: ; preds = %if39.i.i, %if22.i.i, %foreachbody.i.i + %c.0.i30.i = phi i8 [ %tmp27.i.i, %if22.i.i ], [ %tmp44.i29.i, %if39.i.i ], [ %tmp6.i.i, %foreachbody.i.i ] ; [#uses=1] + %tmp48.i31.i = zext i8 %c.0.i30.i to i32 ; [#uses=1] + %tmp49.i.i = add i32 %tmp48.i31.i, 208 ; [#uses=1] + %tmp52.i.i = and i32 %tmp49.i.i, 255 ; [#uses=2] + %tmp54.i.i = icmp ult i32 %tmp52.i.i, %radix.0.i ; [#uses=1] + br i1 %tmp54.i.i, label %if55.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +if55.i.i: ; preds = %endif.i.i + %tmp59.i.i = zext i32 %radix.0.i to i64 ; [#uses=1] + %tmp61.i.i = mul i64 %value.0.i.i, %tmp59.i.i ; [#uses=1] + %tmp64.i.i = zext i32 %tmp52.i.i to i64 ; [#uses=1] + %tmp65.i.i = add i64 %tmp61.i.i, %tmp64.i.i ; [#uses=1] + %tmp70.i.i = add i32 %foreachkey.0.i.i, 1 ; [#uses=1] + br label %foreachcond.i.i + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit: ; preds = %endif.i.i, %else24.i.i, %foreachcond.i.i + %negval.i = sub i64 0, %value.0.i.i ; [#uses=1] + %condtmp.0.i = select i1 %sign.2.i, i64 %negval.i, i64 %value.0.i.i ; [#uses=1] + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) ; [#uses=6] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + store %tango.net.Socket.IPv4Address.__vtbl* @_D5tango3net6Socket11IPv4Address6__vtblZ, %tango.net.Socket.IPv4Address.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp38 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp38, i8* getelementptr (%tango.net.Socket.IPv4Address* bitcast (%22* @_D5tango3net6Socket11IPv4Address6__initZ to %tango.net.Socket.IPv4Address*), i32 0, i32 2, i32 0), i32 24, i32 1) + %tmp44 = trunc i64 %condtmp.0.i to i16 ; [#uses=1] + %tmp2.i = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp2.i to i32* ; [#uses=1] + store i32 %tmp33, i32* %1 + %tmp7.i = getelementptr i8* %.newclass_gc_alloc, i32 18 ; [#uses=1] + %2 = bitcast i8* %tmp7.i to i16* ; [#uses=1] + store i16 %tmp44, i16* %2 + %tmp46 = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.Address* ; <%tango.net.Socket.Address*> [#uses=1] + br label %try + +else: ; preds = %entry + %"this.is_supported@vtbl50" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 42 ; [#uses=1] + %this.is_supported52 = load i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.is_supported@vtbl50", align 4 ; [#uses=1] + %tmp53 = call fastcc i1 %this.is_supported52(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str132, i32 0, i32 0) }) ; [#uses=1] + %tmp59 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl60" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp59, i32 0, i32 35 ; [#uses=1] + %this.sendCommand62 = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl60", align 4 ; [#uses=2] + br i1 %tmp53, label %if54, label %else56 + +if54: ; preds = %else + call fastcc void %this.sendCommand62(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str133, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp66 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl67" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp66, i32 0, i32 36 ; [#uses=1] + %this.readResponse69 = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl67", align 4 ; [#uses=1] + call fastcc void %this.readResponse69(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp70, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str134, i32 0, i32 0) }) + %.rettmp70.1.0 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp70, i32 0, i32 1, i32 0 ; [#uses=1] + %tmp345 = load i32* %.rettmp70.1.0, align 4 ; [#uses=2] + %.rettmp70.1.1 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp70, i32 0, i32 1, i32 1 ; [#uses=1] + %tmp346 = load i8** %.rettmp70.1.1, align 4 ; [#uses=2] + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT7__ClassZ) ; [#uses=4] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.RegExpT!(char).RegExpT"* ; <%"tango.text.Regex.RegExpT!(char).RegExpT"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"**> [#uses=3] + store %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__vtblZ, %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i, i8* bitcast (%"Act[]"* getelementptr (%"tango.text.Regex.RegExpT!(char).RegExpT"* bitcast (%30* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__initZ to %"tango.text.Regex.RegExpT!(char).RegExpT"*), i32 0, i32 2) to i8*), i32 36, i32 1) + %tmp2.i.i = call fastcc %"tango.text.Regex.RegExpT!(char).RegExpT"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT5_ctorMFAabbbZC5tango4text5Regex14__T7RegExpTTaZ7RegExpT(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str135, i32 0, i32 0) }, i1 false, i1 true, i1 false) ; <%"tango.text.Regex.RegExpT!(char).RegExpT"*> [#uses=0] + %tmp76 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.test@vtbl" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp76, i32 0, i32 7 ; [#uses=1] + %r.test = load i1 (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]")** %"r.test@vtbl", align 4 ; [#uses=1] + br label %foreachcond.i.i460 + +foreachcond.i.i460: ; preds = %foreachnext.i.i, %if54 + %pos.0.i.i = phi i32 [ 0, %if54 ], [ %tmp12.i.i, %foreachnext.i.i ] ; [#uses=4] + %tmp3.i.i459 = icmp ult i32 %pos.0.i.i, %tmp345 ; [#uses=1] + br i1 %tmp3.i.i459, label %foreachbody.i.i463, label %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit + +foreachbody.i.i463: ; preds = %foreachcond.i.i460 + %tmp5.i.i461 = getelementptr i8* %tmp346, i32 %pos.0.i.i ; [#uses=1] + %tmp6.i.i462 = load i8* %tmp5.i.i461 ; [#uses=1] + %tmp4.i.i.i = icmp eq i8 %tmp6.i.i462, 10 ; [#uses=1] + br i1 %tmp4.i.i.i, label %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit, label %foreachnext.i.i + +foreachnext.i.i: ; preds = %foreachbody.i.i463 + %tmp12.i.i = add i32 %pos.0.i.i, 1 ; [#uses=1] + br label %foreachcond.i.i460 + +_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit: ; preds = %foreachbody.i.i463, %foreachcond.i.i460 + %tmp23.i = phi i32 [ %pos.0.i.i, %foreachbody.i.i463 ], [ %tmp345, %foreachcond.i.i460 ] ; [#uses=1] + %tmp85 = insertvalue %"byte[]" undef, i32 %tmp23.i, 0 ; <%"byte[]"> [#uses=1] + %tmp86 = insertvalue %"byte[]" %tmp85, i8* %tmp346, 1 ; <%"byte[]"> [#uses=1] + %tmp87 = call fastcc i1 %r.test(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, %"byte[]" %tmp86) ; [#uses=1] + br i1 %tmp87, label %endif89, label %if88 + +if88: ; preds = %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit + %.newclass_gc_alloc90 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl92 = bitcast i8* %.newclass_gc_alloc90 to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl92 + %monitor93 = getelementptr i8* %.newclass_gc_alloc90, i32 4 ; [#uses=1] + %4 = bitcast i8* %monitor93 to i8** ; [#uses=1] + store i8* null, i8** %4 + %tmp94 = getelementptr i8* %.newclass_gc_alloc90, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp94, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i549 = getelementptr i8* %.newclass_gc_alloc90, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i549, i8* getelementptr ([4 x i8]* @.str137, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc90 to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i550 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 31, i8* getelementptr ([32 x i8]* @.str136, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp99 = bitcast i8* %.newclass_gc_alloc90 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp99) + unreachable + +endif89: ; preds = %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit + %tmp102 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 2 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp103 = load %tango.net.SocketConduit.SocketConduit** %tmp102 ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp104 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp103, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp105 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp104 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"this.socket_.socket@vtbl106" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp105, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %this.socket_.socket108 = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"this.socket_.socket@vtbl106", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp109 = call fastcc %tango.net.Socket.Socket* %this.socket_.socket108(%tango.net.SocketConduit.SocketConduit* %tmp103) ; <%tango.net.Socket.Socket*> [#uses=2] + %tmp110 = getelementptr %tango.net.Socket.Socket* %tmp109, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp111 = load %tango.net.Socket.Socket.__vtbl** %tmp110 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"this.socket_.socket().remoteAddress@vtbl112" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp111, i32 0, i32 23 ; <%tango.net.Socket.Address* (%tango.net.Socket.Socket*)**> [#uses=1] + %"this.socket_.socket().remoteAddress114" = load %tango.net.Socket.Address* (%tango.net.Socket.Socket*)** %"this.socket_.socket().remoteAddress@vtbl112", align 4 ; <%tango.net.Socket.Address* (%tango.net.Socket.Socket*)*> [#uses=1] + %tmp115 = call fastcc %tango.net.Socket.Address* %"this.socket_.socket().remoteAddress114"(%tango.net.Socket.Socket* %tmp109) ; <%tango.net.Socket.Address*> [#uses=1] + %tmp116 = bitcast %tango.net.Socket.Address* %tmp115 to %object.Object* ; <%object.Object*> [#uses=1] + %tmp117 = call %object.Object* @_d_dynamic_cast(%object.Object* %tmp116, %object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) nounwind readonly ; <%object.Object*> [#uses=2] + %tmp118 = bitcast %object.Object* %tmp117 to %tango.net.Socket.IPv4Address* ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %tmp121 = bitcast %object.Object* %tmp117 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + %tmp122 = load %tango.net.Socket.IPv4Address.__vtbl** %tmp121 ; <%tango.net.Socket.IPv4Address.__vtbl*> [#uses=1] + %"remote.addr@vtbl123" = getelementptr %tango.net.Socket.IPv4Address.__vtbl* %tmp122, i32 0, i32 9 ; [#uses=1] + %remote.addr125 = load i32 (%tango.net.Socket.IPv4Address*)** %"remote.addr@vtbl123", align 4 ; [#uses=1] + %tmp126 = call fastcc i32 %remote.addr125(%tango.net.Socket.IPv4Address* %tmp118) ; [#uses=1] + %tmp130 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp130, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp132 = call fastcc %"byte[]" %r.match(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, i32 1) ; <%"byte[]"> [#uses=2] + %digits_arg26.i551 = extractvalue %"byte[]" %tmp132, 0 ; [#uses=3] + %digits_arg27.i552 = extractvalue %"byte[]" %tmp132, 1 ; [#uses=5] + %tmp4.i.i553 = icmp eq i32 %digits_arg26.i551, 0 ; [#uses=1] + br i1 %tmp4.i.i553, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597, label %forcond.i.i560 + +forcond.i.i560: ; preds = %forinc.i.i567, %endif89 + %sign.1.i554 = phi i1 [ false, %endif89 ], [ %sign.0.i564, %forinc.i.i567 ] ; [#uses=4] + %len.0.i.i555 = phi i32 [ %tmp33.i.i566, %forinc.i.i567 ], [ %digits_arg26.i551, %endif89 ] ; [#uses=3] + %p.0.i.i556 = phi i8* [ %tmp30.i.i565, %forinc.i.i567 ], [ %digits_arg27.i552, %endif89 ] ; [#uses=6] + %c.0.in.i.i557 = phi i8* [ %tmp30.i.i565, %forinc.i.i567 ], [ %digits_arg27.i552, %endif89 ] ; [#uses=1] + %c.0.i.i558 = load i8* %c.0.in.i.i557 ; [#uses=2] + %tmp8.i.i559 = icmp eq i32 %len.0.i.i555, 0 ; [#uses=1] + br i1 %tmp8.i.i559, label %endfor.i.i571, label %forbody.i.i561 + +forbody.i.i561: ; preds = %forcond.i.i560 + switch i8 %c.0.i.i558, label %endfor.i.i571 [ + i8 32, label %forinc.i.i567 + i8 9, label %forinc.i.i567 + i8 45, label %if20.i.i562 + i8 43, label %if26.i.i563 + ] + +if20.i.i562: ; preds = %forbody.i.i561 + br label %forinc.i.i567 + +if26.i.i563: ; preds = %forbody.i.i561 + br label %forinc.i.i567 + +forinc.i.i567: ; preds = %if26.i.i563, %if20.i.i562, %forbody.i.i561, %forbody.i.i561 + %sign.0.i564 = phi i1 [ false, %if26.i.i563 ], [ true, %if20.i.i562 ], [ %sign.1.i554, %forbody.i.i561 ], [ %sign.1.i554, %forbody.i.i561 ] ; [#uses=1] + %tmp30.i.i565 = getelementptr i8* %p.0.i.i556, i32 1 ; [#uses=2] + %tmp33.i.i566 = add i32 %len.0.i.i555, -1 ; [#uses=1] + br label %forcond.i.i560 + +endfor.i.i571: ; preds = %forbody.i.i561, %forcond.i.i560 + %tmp37.i.i568 = icmp eq i8 %c.0.i.i558, 48 ; [#uses=1] + %tmp39.i.i569 = icmp sgt i32 %len.0.i.i555, 1 ; [#uses=1] + %or.cond.i.i570 = and i1 %tmp37.i.i568, %tmp39.i.i569 ; [#uses=1] + br i1 %or.cond.i.i570, label %if40.i.i575, label %endif41.i.i585 + +if40.i.i575: ; preds = %endfor.i.i571 + %tmp43.i.i572 = getelementptr i8* %p.0.i.i556, i32 1 ; [#uses=2] + %tmp44.i.i573 = load i8* %tmp43.i.i572 ; [#uses=1] + %tmp45.i.i574 = zext i8 %tmp44.i.i573 to i32 ; [#uses=1] + switch i32 %tmp45.i.i574, label %endif41.i.i585 [ + i32 120, label %case46.i.i577 + i32 88, label %case46.i.i577 + i32 98, label %case51.i.i579 + i32 66, label %case51.i.i579 + i32 111, label %case56.i.i581 + i32 79, label %case56.i.i581 + ] + +case46.i.i577: ; preds = %if40.i.i575, %if40.i.i575 + %tmp48.i.i576 = getelementptr i8* %p.0.i.i556, i32 2 ; [#uses=1] + br label %endif41.i.i585 + +case51.i.i579: ; preds = %if40.i.i575, %if40.i.i575 + %tmp53.i.i578 = getelementptr i8* %p.0.i.i556, i32 2 ; [#uses=1] + br label %endif41.i.i585 + +case56.i.i581: ; preds = %if40.i.i575, %if40.i.i575 + %tmp58.i.i580 = getelementptr i8* %p.0.i.i556, i32 2 ; [#uses=1] + br label %endif41.i.i585 + +endif41.i.i585: ; preds = %case56.i.i581, %case51.i.i579, %case46.i.i577, %if40.i.i575, %endfor.i.i571 + %r.0.i.i582 = phi i32 [ 0, %if40.i.i575 ], [ 8, %case56.i.i581 ], [ 2, %case51.i.i579 ], [ 16, %case46.i.i577 ], [ 0, %endfor.i.i571 ] ; [#uses=2] + %p.2.i.i583 = phi i8* [ %tmp43.i.i572, %if40.i.i575 ], [ %tmp58.i.i580, %case56.i.i581 ], [ %tmp53.i.i578, %case51.i.i579 ], [ %tmp48.i.i576, %case46.i.i577 ], [ %p.0.i.i556, %endfor.i.i571 ] ; [#uses=2] + %tmp63.i.i584 = icmp eq i32 %r.0.i.i582, 0 ; [#uses=1] + br i1 %tmp63.i.i584, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597, label %if70.i.i589 + +if70.i.i589: ; preds = %endif41.i.i585 + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597 + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597: ; preds = %if70.i.i589, %endif41.i.i585, %endif89 + %sign.2.i590 = phi i1 [ false, %endif89 ], [ %sign.1.i554, %if70.i.i589 ], [ %sign.1.i554, %endif41.i.i585 ] ; [#uses=1] + %radix.0.i591 = phi i32 [ 0, %endif89 ], [ %r.0.i.i582, %if70.i.i589 ], [ 10, %endif41.i.i585 ] ; [#uses=2] + %p.1.i.i592 = phi i8* [ %p.2.i.i583, %if70.i.i589 ], [ %digits_arg27.i552, %endif89 ], [ %p.2.i.i583, %endif41.i.i585 ] ; [#uses=1] + %tmp84.i.i593 = ptrtoint i8* %p.1.i.i592 to i32 ; [#uses=1] + %tmp85.i.i594 = ptrtoint i8* %digits_arg27.i552 to i32 ; [#uses=1] + %tmp86.i.i595 = sub i32 %tmp84.i.i593, %tmp85.i.i594 ; [#uses=2] + %tmp6.i596 = sub i32 %digits_arg26.i551, %tmp86.i.i595 ; [#uses=1] + br label %foreachcond.i.i602 + +foreachcond.i.i602: ; preds = %if55.i.i631, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597 + %value.0.i.i598 = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597 ], [ %tmp65.i.i628, %if55.i.i631 ] ; [#uses=3] + %foreachkey.0.i.i600 = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i597 ], [ %tmp70.i.i630, %if55.i.i631 ] ; [#uses=3] + %tmp3.i.i601 = icmp ult i32 %foreachkey.0.i.i600, %tmp6.i596 ; [#uses=1] + br i1 %tmp3.i.i601, label %foreachbody.i.i608, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit635 + +foreachbody.i.i608: ; preds = %foreachcond.i.i602 + %tmp5.sum.i603 = add i32 %tmp86.i.i595, %foreachkey.0.i.i600 ; [#uses=1] + %tmp5.i.i604 = getelementptr i8* %digits_arg27.i552, i32 %tmp5.sum.i603 ; [#uses=1] + %tmp6.i.i605 = load i8* %tmp5.i.i604 ; [#uses=6] + %tmp6.off84.i.i606 = add i8 %tmp6.i.i605, -48 ; [#uses=1] + %or.cond.i28.i607 = icmp ugt i8 %tmp6.off84.i.i606, 9 ; [#uses=1] + br i1 %or.cond.i28.i607, label %else.i.i611, label %endif.i.i624 + +else.i.i611: ; preds = %foreachbody.i.i608 + %tmp6.off83.i.i609 = add i8 %tmp6.i.i605, -97 ; [#uses=1] + %or.cond81.i.i610 = icmp ugt i8 %tmp6.off83.i.i609, 25 ; [#uses=1] + br i1 %or.cond81.i.i610, label %else24.i.i616, label %if22.i.i613 + +if22.i.i613: ; preds = %else.i.i611 + %tmp27.i.i612 = add i8 %tmp6.i.i605, -39 ; [#uses=1] + br label %endif.i.i624 + +else24.i.i616: ; preds = %else.i.i611 + %tmp6.off.i.i614 = add i8 %tmp6.i.i605, -65 ; [#uses=1] + %or.cond82.i.i615 = icmp ugt i8 %tmp6.off.i.i614, 25 ; [#uses=1] + br i1 %or.cond82.i.i615, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit635, label %if39.i.i618 + +if39.i.i618: ; preds = %else24.i.i616 + %tmp44.i29.i617 = add i8 %tmp6.i.i605, -7 ; [#uses=1] + br label %endif.i.i624 + +endif.i.i624: ; preds = %if39.i.i618, %if22.i.i613, %foreachbody.i.i608 + %c.0.i30.i619 = phi i8 [ %tmp27.i.i612, %if22.i.i613 ], [ %tmp44.i29.i617, %if39.i.i618 ], [ %tmp6.i.i605, %foreachbody.i.i608 ] ; [#uses=1] + %tmp48.i31.i620 = zext i8 %c.0.i30.i619 to i32 ; [#uses=1] + %tmp49.i.i621 = add i32 %tmp48.i31.i620, 208 ; [#uses=1] + %tmp52.i.i622 = and i32 %tmp49.i.i621, 255 ; [#uses=2] + %tmp54.i.i623 = icmp ult i32 %tmp52.i.i622, %radix.0.i591 ; [#uses=1] + br i1 %tmp54.i.i623, label %if55.i.i631, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit635 + +if55.i.i631: ; preds = %endif.i.i624 + %tmp59.i.i625 = zext i32 %radix.0.i591 to i64 ; [#uses=1] + %tmp61.i.i626 = mul i64 %value.0.i.i598, %tmp59.i.i625 ; [#uses=1] + %tmp64.i.i627 = zext i32 %tmp52.i.i622 to i64 ; [#uses=1] + %tmp65.i.i628 = add i64 %tmp61.i.i626, %tmp64.i.i627 ; [#uses=1] + %tmp70.i.i630 = add i32 %foreachkey.0.i.i600, 1 ; [#uses=1] + br label %foreachcond.i.i602 + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit635: ; preds = %endif.i.i624, %else24.i.i616, %foreachcond.i.i602 + %negval.i633 = sub i64 0, %value.0.i.i598 ; [#uses=1] + %condtmp.0.i634 = select i1 %sign.2.i590, i64 %negval.i633, i64 %value.0.i.i598 ; [#uses=1] + %.newclass_gc_alloc135 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) ; [#uses=6] + %vtbl137 = bitcast i8* %.newclass_gc_alloc135 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + store %tango.net.Socket.IPv4Address.__vtbl* @_D5tango3net6Socket11IPv4Address6__vtblZ, %tango.net.Socket.IPv4Address.__vtbl** %vtbl137 + %monitor138 = getelementptr i8* %.newclass_gc_alloc135, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor138 to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp139 = getelementptr i8* %.newclass_gc_alloc135, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp139, i8* getelementptr (%tango.net.Socket.IPv4Address* bitcast (%22* @_D5tango3net6Socket11IPv4Address6__initZ to %tango.net.Socket.IPv4Address*), i32 0, i32 2, i32 0), i32 24, i32 1) + %tmp145 = trunc i64 %condtmp.0.i634 to i16 ; [#uses=1] + %tmp2.i636 = getelementptr i8* %.newclass_gc_alloc135, i32 20 ; [#uses=1] + %6 = bitcast i8* %tmp2.i636 to i32* ; [#uses=1] + store i32 %tmp126, i32* %6 + %tmp7.i637 = getelementptr i8* %.newclass_gc_alloc135, i32 18 ; [#uses=1] + %7 = bitcast i8* %tmp7.i637 to i16* ; [#uses=1] + store i16 %tmp145, i16* %7 + %tmp147 = bitcast i8* %.newclass_gc_alloc135 to %tango.net.Socket.Address* ; <%tango.net.Socket.Address*> [#uses=1] + br label %try + +else56: ; preds = %else + call fastcc void %this.sendCommand62(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str138, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp157 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl158" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp157, i32 0, i32 36 ; [#uses=1] + %this.readResponse160 = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl158", align 4 ; [#uses=1] + call fastcc void %this.readResponse160(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp161, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str139, i32 0, i32 0) }) + %.rettmp161.1.0 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp161, i32 0, i32 1, i32 0 ; [#uses=1] + %tmp = load i32* %.rettmp161.1.0, align 4 ; [#uses=2] + %.rettmp161.1.1 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp161, i32 0, i32 1, i32 1 ; [#uses=1] + %tmp332 = load i8** %.rettmp161.1.1, align 4 ; [#uses=2] + %.newclass_gc_alloc.i638 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT7__ClassZ) ; [#uses=4] + %.newclass_gc.i639 = bitcast i8* %.newclass_gc_alloc.i638 to %"tango.text.Regex.RegExpT!(char).RegExpT"* ; <%"tango.text.Regex.RegExpT!(char).RegExpT"*> [#uses=9] + %vtbl.i640 = bitcast i8* %.newclass_gc_alloc.i638 to %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"**> [#uses=9] + store %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__vtblZ, %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 + %monitor.i641 = getelementptr i8* %.newclass_gc_alloc.i638, i32 4 ; [#uses=1] + %8 = bitcast i8* %monitor.i641 to i8** ; [#uses=1] + store i8* null, i8** %8 + %tmp.i642 = getelementptr i8* %.newclass_gc_alloc.i638, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i642, i8* bitcast (%"Act[]"* getelementptr (%"tango.text.Regex.RegExpT!(char).RegExpT"* bitcast (%30* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__initZ to %"tango.text.Regex.RegExpT!(char).RegExpT"*), i32 0, i32 2) to i8*), i32 36, i32 1) + %tmp2.i.i643 = call fastcc %"tango.text.Regex.RegExpT!(char).RegExpT"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT5_ctorMFAabbbZC5tango4text5Regex14__T7RegExpTTaZ7RegExpT(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, %"byte[]" { i32 53, i8* getelementptr ([54 x i8]* @.str140, i32 0, i32 0) }, i1 false, i1 true, i1 false) ; <%"tango.text.Regex.RegExpT!(char).RegExpT"*> [#uses=0] + %tmp168 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.test@vtbl169" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp168, i32 0, i32 7 ; [#uses=1] + %r.test171 = load i1 (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]")** %"r.test@vtbl169", align 4 ; [#uses=1] + br label %foreachcond.i.i648 + +foreachcond.i.i648: ; preds = %foreachnext.i.i655, %else56 + %pos.0.i.i646 = phi i32 [ 0, %else56 ], [ %tmp12.i.i654, %foreachnext.i.i655 ] ; [#uses=4] + %tmp3.i.i647 = icmp ult i32 %pos.0.i.i646, %tmp ; [#uses=1] + br i1 %tmp3.i.i647, label %foreachbody.i.i652, label %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit658 + +foreachbody.i.i652: ; preds = %foreachcond.i.i648 + %tmp5.i.i649 = getelementptr i8* %tmp332, i32 %pos.0.i.i646 ; [#uses=1] + %tmp6.i.i650 = load i8* %tmp5.i.i649 ; [#uses=1] + %tmp4.i.i.i651 = icmp eq i8 %tmp6.i.i650, 10 ; [#uses=1] + br i1 %tmp4.i.i.i651, label %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit658, label %foreachnext.i.i655 + +foreachnext.i.i655: ; preds = %foreachbody.i.i652 + %tmp12.i.i654 = add i32 %pos.0.i.i646, 1 ; [#uses=1] + br label %foreachcond.i.i648 + +_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit658: ; preds = %foreachbody.i.i652, %foreachcond.i.i648 + %tmp23.i657 = phi i32 [ %pos.0.i.i646, %foreachbody.i.i652 ], [ %tmp, %foreachcond.i.i648 ] ; [#uses=1] + %tmp180 = insertvalue %"byte[]" undef, i32 %tmp23.i657, 0 ; <%"byte[]"> [#uses=1] + %tmp181 = insertvalue %"byte[]" %tmp180, i8* %tmp332, 1 ; <%"byte[]"> [#uses=1] + %tmp182 = call fastcc i1 %r.test171(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, %"byte[]" %tmp181) ; [#uses=1] + br i1 %tmp182, label %endif184, label %if183 + +if183: ; preds = %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit658 + %.newclass_gc_alloc185 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl187 = bitcast i8* %.newclass_gc_alloc185 to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl187 + %monitor188 = getelementptr i8* %.newclass_gc_alloc185, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor188 to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp189 = getelementptr i8* %.newclass_gc_alloc185, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp189, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i659 = getelementptr i8* %.newclass_gc_alloc185, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i659, i8* getelementptr ([4 x i8]* @.str142, i32 0, i32 0), i32 3, i32 1) + %tmp5.i660 = bitcast i8* %.newclass_gc_alloc185 to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i661 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i660, %"byte[]" { i32 31, i8* getelementptr ([32 x i8]* @.str141, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp194 = bitcast i8* %.newclass_gc_alloc185 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp194) + unreachable + +endif184: ; preds = %_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk.exit658 + %tmp199 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl200" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp199, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match202 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl200", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp203 = call fastcc %"byte[]" %r.match202(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 1) ; <%"byte[]"> [#uses=2] + %.len = extractvalue %"byte[]" %tmp203, 0 ; [#uses=3] + %tmp204 = add i32 %.len, 1 ; [#uses=4] + %.nongc_mem = alloca i8, i32 %tmp204, align 1 ; [#uses=3] + %.ptr205 = extractvalue %"byte[]" %tmp203, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* %.ptr205, i32 %.len, i32 1) + %tmp207 = getelementptr i8* %.nongc_mem, i32 %.len ; [#uses=1] + store i8 46, i8* %tmp207, align 1 + %tmp210 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl211" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp210, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match213 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl211", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp214 = call fastcc %"byte[]" %r.match213(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 2) ; <%"byte[]"> [#uses=2] + %.len215 = extractvalue %"byte[]" %tmp214, 0 ; [#uses=2] + %tmp216 = add i32 %tmp204, %.len215 ; [#uses=4] + %.nongc_mem662 = alloca i8, i32 %tmp216, align 1 ; [#uses=3] + %.ptr218 = extractvalue %"byte[]" %tmp214, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem662, i8* %.nongc_mem, i32 %tmp204, i32 1) + %tmp220 = getelementptr i8* %.nongc_mem662, i32 %tmp204 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp220, i8* %.ptr218, i32 %.len215, i32 1) + %tmp222 = add i32 %tmp216, 1 ; [#uses=4] + %.nongc_mem663 = alloca i8, i32 %tmp222, align 1 ; [#uses=3] + call void @llvm.memcpy.i32(i8* %.nongc_mem663, i8* %.nongc_mem662, i32 %tmp216, i32 1) + %tmp225 = getelementptr i8* %.nongc_mem663, i32 %tmp216 ; [#uses=1] + store i8 46, i8* %tmp225, align 1 + %tmp228 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl229" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp228, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match231 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl229", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp232 = call fastcc %"byte[]" %r.match231(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 3) ; <%"byte[]"> [#uses=2] + %.len233 = extractvalue %"byte[]" %tmp232, 0 ; [#uses=2] + %tmp234 = add i32 %tmp222, %.len233 ; [#uses=4] + %.nongc_mem664 = alloca i8, i32 %tmp234, align 1 ; [#uses=3] + %.ptr236 = extractvalue %"byte[]" %tmp232, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem664, i8* %.nongc_mem663, i32 %tmp222, i32 1) + %tmp238 = getelementptr i8* %.nongc_mem664, i32 %tmp222 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp238, i8* %.ptr236, i32 %.len233, i32 1) + %tmp240 = add i32 %tmp234, 1 ; [#uses=4] + %.nongc_mem665 = alloca i8, i32 %tmp240, align 1 ; [#uses=3] + call void @llvm.memcpy.i32(i8* %.nongc_mem665, i8* %.nongc_mem664, i32 %tmp234, i32 1) + %tmp243 = getelementptr i8* %.nongc_mem665, i32 %tmp234 ; [#uses=1] + store i8 46, i8* %tmp243, align 1 + %tmp246 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl247" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp246, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match249 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl247", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp250 = call fastcc %"byte[]" %r.match249(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 4) ; <%"byte[]"> [#uses=2] + %.len251 = extractvalue %"byte[]" %tmp250, 0 ; [#uses=2] + %tmp252 = add i32 %tmp240, %.len251 ; [#uses=2] + %.gc_mem253 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp252) ; [#uses=3] + %.ptr254 = extractvalue %"byte[]" %tmp250, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.gc_mem253, i8* %.nongc_mem665, i32 %tmp240, i32 1) + %tmp256 = getelementptr i8* %.gc_mem253, i32 %tmp240 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp256, i8* %.ptr254, i32 %.len251, i32 1) + %tmp263 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl264" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp263, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match266 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl264", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp267 = call fastcc %"byte[]" %r.match266(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 5) ; <%"byte[]"> [#uses=2] + %digits_arg26.i464 = extractvalue %"byte[]" %tmp267, 0 ; [#uses=3] + %digits_arg27.i465 = extractvalue %"byte[]" %tmp267, 1 ; [#uses=5] + %tmp4.i.i466 = icmp eq i32 %digits_arg26.i464, 0 ; [#uses=1] + br i1 %tmp4.i.i466, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510, label %forcond.i.i473 + +forcond.i.i473: ; preds = %forinc.i.i480, %endif184 + %sign.1.i467 = phi i1 [ false, %endif184 ], [ %sign.0.i477, %forinc.i.i480 ] ; [#uses=4] + %len.0.i.i468 = phi i32 [ %tmp33.i.i479, %forinc.i.i480 ], [ %digits_arg26.i464, %endif184 ] ; [#uses=3] + %p.0.i.i469 = phi i8* [ %tmp30.i.i478, %forinc.i.i480 ], [ %digits_arg27.i465, %endif184 ] ; [#uses=6] + %c.0.in.i.i470 = phi i8* [ %tmp30.i.i478, %forinc.i.i480 ], [ %digits_arg27.i465, %endif184 ] ; [#uses=1] + %c.0.i.i471 = load i8* %c.0.in.i.i470 ; [#uses=2] + %tmp8.i.i472 = icmp eq i32 %len.0.i.i468, 0 ; [#uses=1] + br i1 %tmp8.i.i472, label %endfor.i.i484, label %forbody.i.i474 + +forbody.i.i474: ; preds = %forcond.i.i473 + switch i8 %c.0.i.i471, label %endfor.i.i484 [ + i8 32, label %forinc.i.i480 + i8 9, label %forinc.i.i480 + i8 45, label %if20.i.i475 + i8 43, label %if26.i.i476 + ] + +if20.i.i475: ; preds = %forbody.i.i474 + br label %forinc.i.i480 + +if26.i.i476: ; preds = %forbody.i.i474 + br label %forinc.i.i480 + +forinc.i.i480: ; preds = %if26.i.i476, %if20.i.i475, %forbody.i.i474, %forbody.i.i474 + %sign.0.i477 = phi i1 [ false, %if26.i.i476 ], [ true, %if20.i.i475 ], [ %sign.1.i467, %forbody.i.i474 ], [ %sign.1.i467, %forbody.i.i474 ] ; [#uses=1] + %tmp30.i.i478 = getelementptr i8* %p.0.i.i469, i32 1 ; [#uses=2] + %tmp33.i.i479 = add i32 %len.0.i.i468, -1 ; [#uses=1] + br label %forcond.i.i473 + +endfor.i.i484: ; preds = %forbody.i.i474, %forcond.i.i473 + %tmp37.i.i481 = icmp eq i8 %c.0.i.i471, 48 ; [#uses=1] + %tmp39.i.i482 = icmp sgt i32 %len.0.i.i468, 1 ; [#uses=1] + %or.cond.i.i483 = and i1 %tmp37.i.i481, %tmp39.i.i482 ; [#uses=1] + br i1 %or.cond.i.i483, label %if40.i.i488, label %endif41.i.i498 + +if40.i.i488: ; preds = %endfor.i.i484 + %tmp43.i.i485 = getelementptr i8* %p.0.i.i469, i32 1 ; [#uses=2] + %tmp44.i.i486 = load i8* %tmp43.i.i485 ; [#uses=1] + %tmp45.i.i487 = zext i8 %tmp44.i.i486 to i32 ; [#uses=1] + switch i32 %tmp45.i.i487, label %endif41.i.i498 [ + i32 120, label %case46.i.i490 + i32 88, label %case46.i.i490 + i32 98, label %case51.i.i492 + i32 66, label %case51.i.i492 + i32 111, label %case56.i.i494 + i32 79, label %case56.i.i494 + ] + +case46.i.i490: ; preds = %if40.i.i488, %if40.i.i488 + %tmp48.i.i489 = getelementptr i8* %p.0.i.i469, i32 2 ; [#uses=1] + br label %endif41.i.i498 + +case51.i.i492: ; preds = %if40.i.i488, %if40.i.i488 + %tmp53.i.i491 = getelementptr i8* %p.0.i.i469, i32 2 ; [#uses=1] + br label %endif41.i.i498 + +case56.i.i494: ; preds = %if40.i.i488, %if40.i.i488 + %tmp58.i.i493 = getelementptr i8* %p.0.i.i469, i32 2 ; [#uses=1] + br label %endif41.i.i498 + +endif41.i.i498: ; preds = %case56.i.i494, %case51.i.i492, %case46.i.i490, %if40.i.i488, %endfor.i.i484 + %r.0.i.i495 = phi i32 [ 0, %if40.i.i488 ], [ 8, %case56.i.i494 ], [ 2, %case51.i.i492 ], [ 16, %case46.i.i490 ], [ 0, %endfor.i.i484 ] ; [#uses=2] + %p.2.i.i496 = phi i8* [ %tmp43.i.i485, %if40.i.i488 ], [ %tmp58.i.i493, %case56.i.i494 ], [ %tmp53.i.i491, %case51.i.i492 ], [ %tmp48.i.i489, %case46.i.i490 ], [ %p.0.i.i469, %endfor.i.i484 ] ; [#uses=2] + %tmp63.i.i497 = icmp eq i32 %r.0.i.i495, 0 ; [#uses=1] + br i1 %tmp63.i.i497, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510, label %if70.i.i502 + +if70.i.i502: ; preds = %endif41.i.i498 + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510 + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510: ; preds = %if70.i.i502, %endif41.i.i498, %endif184 + %sign.2.i503 = phi i1 [ false, %endif184 ], [ %sign.1.i467, %if70.i.i502 ], [ %sign.1.i467, %endif41.i.i498 ] ; [#uses=1] + %radix.0.i504 = phi i32 [ 0, %endif184 ], [ %r.0.i.i495, %if70.i.i502 ], [ 10, %endif41.i.i498 ] ; [#uses=2] + %p.1.i.i505 = phi i8* [ %p.2.i.i496, %if70.i.i502 ], [ %digits_arg27.i465, %endif184 ], [ %p.2.i.i496, %endif41.i.i498 ] ; [#uses=1] + %tmp84.i.i506 = ptrtoint i8* %p.1.i.i505 to i32 ; [#uses=1] + %tmp85.i.i507 = ptrtoint i8* %digits_arg27.i465 to i32 ; [#uses=1] + %tmp86.i.i508 = sub i32 %tmp84.i.i506, %tmp85.i.i507 ; [#uses=2] + %tmp6.i509 = sub i32 %digits_arg26.i464, %tmp86.i.i508 ; [#uses=1] + br label %foreachcond.i.i515 + +foreachcond.i.i515: ; preds = %if55.i.i544, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510 + %value.0.i.i511 = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510 ], [ %tmp65.i.i541, %if55.i.i544 ] ; [#uses=3] + %foreachkey.0.i.i513 = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i510 ], [ %tmp70.i.i543, %if55.i.i544 ] ; [#uses=3] + %tmp3.i.i514 = icmp ult i32 %foreachkey.0.i.i513, %tmp6.i509 ; [#uses=1] + br i1 %tmp3.i.i514, label %foreachbody.i.i521, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548 + +foreachbody.i.i521: ; preds = %foreachcond.i.i515 + %tmp5.sum.i516 = add i32 %tmp86.i.i508, %foreachkey.0.i.i513 ; [#uses=1] + %tmp5.i.i517 = getelementptr i8* %digits_arg27.i465, i32 %tmp5.sum.i516 ; [#uses=1] + %tmp6.i.i518 = load i8* %tmp5.i.i517 ; [#uses=6] + %tmp6.off84.i.i519 = add i8 %tmp6.i.i518, -48 ; [#uses=1] + %or.cond.i28.i520 = icmp ugt i8 %tmp6.off84.i.i519, 9 ; [#uses=1] + br i1 %or.cond.i28.i520, label %else.i.i524, label %endif.i.i537 + +else.i.i524: ; preds = %foreachbody.i.i521 + %tmp6.off83.i.i522 = add i8 %tmp6.i.i518, -97 ; [#uses=1] + %or.cond81.i.i523 = icmp ugt i8 %tmp6.off83.i.i522, 25 ; [#uses=1] + br i1 %or.cond81.i.i523, label %else24.i.i529, label %if22.i.i526 + +if22.i.i526: ; preds = %else.i.i524 + %tmp27.i.i525 = add i8 %tmp6.i.i518, -39 ; [#uses=1] + br label %endif.i.i537 + +else24.i.i529: ; preds = %else.i.i524 + %tmp6.off.i.i527 = add i8 %tmp6.i.i518, -65 ; [#uses=1] + %or.cond82.i.i528 = icmp ugt i8 %tmp6.off.i.i527, 25 ; [#uses=1] + br i1 %or.cond82.i.i528, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548, label %if39.i.i531 + +if39.i.i531: ; preds = %else24.i.i529 + %tmp44.i29.i530 = add i8 %tmp6.i.i518, -7 ; [#uses=1] + br label %endif.i.i537 + +endif.i.i537: ; preds = %if39.i.i531, %if22.i.i526, %foreachbody.i.i521 + %c.0.i30.i532 = phi i8 [ %tmp27.i.i525, %if22.i.i526 ], [ %tmp44.i29.i530, %if39.i.i531 ], [ %tmp6.i.i518, %foreachbody.i.i521 ] ; [#uses=1] + %tmp48.i31.i533 = zext i8 %c.0.i30.i532 to i32 ; [#uses=1] + %tmp49.i.i534 = add i32 %tmp48.i31.i533, 208 ; [#uses=1] + %tmp52.i.i535 = and i32 %tmp49.i.i534, 255 ; [#uses=2] + %tmp54.i.i536 = icmp ult i32 %tmp52.i.i535, %radix.0.i504 ; [#uses=1] + br i1 %tmp54.i.i536, label %if55.i.i544, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548 + +if55.i.i544: ; preds = %endif.i.i537 + %tmp59.i.i538 = zext i32 %radix.0.i504 to i64 ; [#uses=1] + %tmp61.i.i539 = mul i64 %value.0.i.i511, %tmp59.i.i538 ; [#uses=1] + %tmp64.i.i540 = zext i32 %tmp52.i.i535 to i64 ; [#uses=1] + %tmp65.i.i541 = add i64 %tmp61.i.i539, %tmp64.i.i540 ; [#uses=1] + %tmp70.i.i543 = add i32 %foreachkey.0.i.i513, 1 ; [#uses=1] + br label %foreachcond.i.i515 + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548: ; preds = %endif.i.i537, %else24.i.i529, %foreachcond.i.i515 + %negval.i546 = sub i64 0, %value.0.i.i511 ; [#uses=1] + %condtmp.0.i547 = select i1 %sign.2.i503, i64 %negval.i546, i64 %value.0.i.i511 ; [#uses=1] + %tmp269 = trunc i64 %condtmp.0.i547 to i32 ; [#uses=1] + %tmp270 = shl i32 %tmp269, 8 ; [#uses=1] + %tmp273 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl274" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp273, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match276 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl274", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp277 = call fastcc %"byte[]" %r.match276(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 7) ; <%"byte[]"> [#uses=1] + %.len278 = extractvalue %"byte[]" %tmp277, 0 ; [#uses=1] + %tmp279 = icmp eq i32 %.len278, 0 ; [#uses=1] + br i1 %tmp279, label %condend, label %condtrue + +condtrue: ; preds = %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548 + %tmp282 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i640 ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl283" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp282, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match285 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl283", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp286 = call fastcc %"byte[]" %r.match285(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i639, i32 7) ; <%"byte[]"> [#uses=2] + %digits_arg26.i375 = extractvalue %"byte[]" %tmp286, 0 ; [#uses=3] + %digits_arg27.i376 = extractvalue %"byte[]" %tmp286, 1 ; [#uses=5] + %tmp4.i.i377 = icmp eq i32 %digits_arg26.i375, 0 ; [#uses=1] + br i1 %tmp4.i.i377, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421, label %forcond.i.i384 + +forcond.i.i384: ; preds = %forinc.i.i391, %condtrue + %sign.1.i378 = phi i1 [ false, %condtrue ], [ %sign.0.i388, %forinc.i.i391 ] ; [#uses=4] + %len.0.i.i379 = phi i32 [ %tmp33.i.i390, %forinc.i.i391 ], [ %digits_arg26.i375, %condtrue ] ; [#uses=3] + %p.0.i.i380 = phi i8* [ %tmp30.i.i389, %forinc.i.i391 ], [ %digits_arg27.i376, %condtrue ] ; [#uses=6] + %c.0.in.i.i381 = phi i8* [ %tmp30.i.i389, %forinc.i.i391 ], [ %digits_arg27.i376, %condtrue ] ; [#uses=1] + %c.0.i.i382 = load i8* %c.0.in.i.i381 ; [#uses=2] + %tmp8.i.i383 = icmp eq i32 %len.0.i.i379, 0 ; [#uses=1] + br i1 %tmp8.i.i383, label %endfor.i.i395, label %forbody.i.i385 + +forbody.i.i385: ; preds = %forcond.i.i384 + switch i8 %c.0.i.i382, label %endfor.i.i395 [ + i8 32, label %forinc.i.i391 + i8 9, label %forinc.i.i391 + i8 45, label %if20.i.i386 + i8 43, label %if26.i.i387 + ] + +if20.i.i386: ; preds = %forbody.i.i385 + br label %forinc.i.i391 + +if26.i.i387: ; preds = %forbody.i.i385 + br label %forinc.i.i391 + +forinc.i.i391: ; preds = %if26.i.i387, %if20.i.i386, %forbody.i.i385, %forbody.i.i385 + %sign.0.i388 = phi i1 [ false, %if26.i.i387 ], [ true, %if20.i.i386 ], [ %sign.1.i378, %forbody.i.i385 ], [ %sign.1.i378, %forbody.i.i385 ] ; [#uses=1] + %tmp30.i.i389 = getelementptr i8* %p.0.i.i380, i32 1 ; [#uses=2] + %tmp33.i.i390 = add i32 %len.0.i.i379, -1 ; [#uses=1] + br label %forcond.i.i384 + +endfor.i.i395: ; preds = %forbody.i.i385, %forcond.i.i384 + %tmp37.i.i392 = icmp eq i8 %c.0.i.i382, 48 ; [#uses=1] + %tmp39.i.i393 = icmp sgt i32 %len.0.i.i379, 1 ; [#uses=1] + %or.cond.i.i394 = and i1 %tmp37.i.i392, %tmp39.i.i393 ; [#uses=1] + br i1 %or.cond.i.i394, label %if40.i.i399, label %endif41.i.i409 + +if40.i.i399: ; preds = %endfor.i.i395 + %tmp43.i.i396 = getelementptr i8* %p.0.i.i380, i32 1 ; [#uses=2] + %tmp44.i.i397 = load i8* %tmp43.i.i396 ; [#uses=1] + %tmp45.i.i398 = zext i8 %tmp44.i.i397 to i32 ; [#uses=1] + switch i32 %tmp45.i.i398, label %endif41.i.i409 [ + i32 120, label %case46.i.i401 + i32 88, label %case46.i.i401 + i32 98, label %case51.i.i403 + i32 66, label %case51.i.i403 + i32 111, label %case56.i.i405 + i32 79, label %case56.i.i405 + ] + +case46.i.i401: ; preds = %if40.i.i399, %if40.i.i399 + %tmp48.i.i400 = getelementptr i8* %p.0.i.i380, i32 2 ; [#uses=1] + br label %endif41.i.i409 + +case51.i.i403: ; preds = %if40.i.i399, %if40.i.i399 + %tmp53.i.i402 = getelementptr i8* %p.0.i.i380, i32 2 ; [#uses=1] + br label %endif41.i.i409 + +case56.i.i405: ; preds = %if40.i.i399, %if40.i.i399 + %tmp58.i.i404 = getelementptr i8* %p.0.i.i380, i32 2 ; [#uses=1] + br label %endif41.i.i409 + +endif41.i.i409: ; preds = %case56.i.i405, %case51.i.i403, %case46.i.i401, %if40.i.i399, %endfor.i.i395 + %r.0.i.i406 = phi i32 [ 0, %if40.i.i399 ], [ 8, %case56.i.i405 ], [ 2, %case51.i.i403 ], [ 16, %case46.i.i401 ], [ 0, %endfor.i.i395 ] ; [#uses=2] + %p.2.i.i407 = phi i8* [ %tmp43.i.i396, %if40.i.i399 ], [ %tmp58.i.i404, %case56.i.i405 ], [ %tmp53.i.i402, %case51.i.i403 ], [ %tmp48.i.i400, %case46.i.i401 ], [ %p.0.i.i380, %endfor.i.i395 ] ; [#uses=2] + %tmp63.i.i408 = icmp eq i32 %r.0.i.i406, 0 ; [#uses=1] + br i1 %tmp63.i.i408, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421, label %if70.i.i413 + +if70.i.i413: ; preds = %endif41.i.i409 + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421 + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421: ; preds = %if70.i.i413, %endif41.i.i409, %condtrue + %sign.2.i414 = phi i1 [ false, %condtrue ], [ %sign.1.i378, %if70.i.i413 ], [ %sign.1.i378, %endif41.i.i409 ] ; [#uses=1] + %radix.0.i415 = phi i32 [ 0, %condtrue ], [ %r.0.i.i406, %if70.i.i413 ], [ 10, %endif41.i.i409 ] ; [#uses=2] + %p.1.i.i416 = phi i8* [ %p.2.i.i407, %if70.i.i413 ], [ %digits_arg27.i376, %condtrue ], [ %p.2.i.i407, %endif41.i.i409 ] ; [#uses=1] + %tmp84.i.i417 = ptrtoint i8* %p.1.i.i416 to i32 ; [#uses=1] + %tmp85.i.i418 = ptrtoint i8* %digits_arg27.i376 to i32 ; [#uses=1] + %tmp86.i.i419 = sub i32 %tmp84.i.i417, %tmp85.i.i418 ; [#uses=2] + %tmp6.i420 = sub i32 %digits_arg26.i375, %tmp86.i.i419 ; [#uses=1] + br label %foreachcond.i.i426 + +foreachcond.i.i426: ; preds = %if55.i.i455, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421 + %value.0.i.i422 = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421 ], [ %tmp65.i.i452, %if55.i.i455 ] ; [#uses=3] + %foreachkey.0.i.i424 = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i421 ], [ %tmp70.i.i454, %if55.i.i455 ] ; [#uses=3] + %tmp3.i.i425 = icmp ult i32 %foreachkey.0.i.i424, %tmp6.i420 ; [#uses=1] + br i1 %tmp3.i.i425, label %foreachbody.i.i432, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit458 + +foreachbody.i.i432: ; preds = %foreachcond.i.i426 + %tmp5.sum.i427 = add i32 %tmp86.i.i419, %foreachkey.0.i.i424 ; [#uses=1] + %tmp5.i.i428 = getelementptr i8* %digits_arg27.i376, i32 %tmp5.sum.i427 ; [#uses=1] + %tmp6.i.i429 = load i8* %tmp5.i.i428 ; [#uses=6] + %tmp6.off84.i.i430 = add i8 %tmp6.i.i429, -48 ; [#uses=1] + %or.cond.i28.i431 = icmp ugt i8 %tmp6.off84.i.i430, 9 ; [#uses=1] + br i1 %or.cond.i28.i431, label %else.i.i435, label %endif.i.i448 + +else.i.i435: ; preds = %foreachbody.i.i432 + %tmp6.off83.i.i433 = add i8 %tmp6.i.i429, -97 ; [#uses=1] + %or.cond81.i.i434 = icmp ugt i8 %tmp6.off83.i.i433, 25 ; [#uses=1] + br i1 %or.cond81.i.i434, label %else24.i.i440, label %if22.i.i437 + +if22.i.i437: ; preds = %else.i.i435 + %tmp27.i.i436 = add i8 %tmp6.i.i429, -39 ; [#uses=1] + br label %endif.i.i448 + +else24.i.i440: ; preds = %else.i.i435 + %tmp6.off.i.i438 = add i8 %tmp6.i.i429, -65 ; [#uses=1] + %or.cond82.i.i439 = icmp ugt i8 %tmp6.off.i.i438, 25 ; [#uses=1] + br i1 %or.cond82.i.i439, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit458, label %if39.i.i442 + +if39.i.i442: ; preds = %else24.i.i440 + %tmp44.i29.i441 = add i8 %tmp6.i.i429, -7 ; [#uses=1] + br label %endif.i.i448 + +endif.i.i448: ; preds = %if39.i.i442, %if22.i.i437, %foreachbody.i.i432 + %c.0.i30.i443 = phi i8 [ %tmp27.i.i436, %if22.i.i437 ], [ %tmp44.i29.i441, %if39.i.i442 ], [ %tmp6.i.i429, %foreachbody.i.i432 ] ; [#uses=1] + %tmp48.i31.i444 = zext i8 %c.0.i30.i443 to i32 ; [#uses=1] + %tmp49.i.i445 = add i32 %tmp48.i31.i444, 208 ; [#uses=1] + %tmp52.i.i446 = and i32 %tmp49.i.i445, 255 ; [#uses=2] + %tmp54.i.i447 = icmp ult i32 %tmp52.i.i446, %radix.0.i415 ; [#uses=1] + br i1 %tmp54.i.i447, label %if55.i.i455, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit458 + +if55.i.i455: ; preds = %endif.i.i448 + %tmp59.i.i449 = zext i32 %radix.0.i415 to i64 ; [#uses=1] + %tmp61.i.i450 = mul i64 %value.0.i.i422, %tmp59.i.i449 ; [#uses=1] + %tmp64.i.i451 = zext i32 %tmp52.i.i446 to i64 ; [#uses=1] + %tmp65.i.i452 = add i64 %tmp61.i.i450, %tmp64.i.i451 ; [#uses=1] + %tmp70.i.i454 = add i32 %foreachkey.0.i.i424, 1 ; [#uses=1] + br label %foreachcond.i.i426 + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit458: ; preds = %endif.i.i448, %else24.i.i440, %foreachcond.i.i426 + %negval.i456 = sub i64 0, %value.0.i.i422 ; [#uses=1] + %condtmp.0.i457 = select i1 %sign.2.i414, i64 %negval.i456, i64 %value.0.i.i422 ; [#uses=1] + %tmp288 = trunc i64 %condtmp.0.i457 to i32 ; [#uses=1] + br label %condend + +condend: ; preds = %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit458, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548 + %condtmp.0 = phi i32 [ %tmp288, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit458 ], [ 0, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit548 ] ; [#uses=1] + %tmp290 = add i32 %tmp270, %condtmp.0 ; [#uses=1] + %.newclass_gc_alloc291 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket11IPv4Address7__ClassZ) ; [#uses=4] + %.newclass_gc292 = bitcast i8* %.newclass_gc_alloc291 to %tango.net.Socket.IPv4Address* ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %vtbl293 = bitcast i8* %.newclass_gc_alloc291 to %tango.net.Socket.IPv4Address.__vtbl** ; <%tango.net.Socket.IPv4Address.__vtbl**> [#uses=1] + store %tango.net.Socket.IPv4Address.__vtbl* @_D5tango3net6Socket11IPv4Address6__vtblZ, %tango.net.Socket.IPv4Address.__vtbl** %vtbl293 + %monitor294 = getelementptr i8* %.newclass_gc_alloc291, i32 4 ; [#uses=1] + %10 = bitcast i8* %monitor294 to i8** ; [#uses=1] + store i8* null, i8** %10 + %tmp295 = getelementptr i8* %.newclass_gc_alloc291, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp295, i8* getelementptr (%tango.net.Socket.IPv4Address* bitcast (%22* @_D5tango3net6Socket11IPv4Address6__initZ to %tango.net.Socket.IPv4Address*), i32 0, i32 2, i32 0), i32 24, i32 1) + %insert = insertvalue %"byte[]" undef, i32 %tmp252, 0 ; <%"byte[]"> [#uses=1] + %insert327 = insertvalue %"byte[]" %insert, i8* %.gc_mem253, 1 ; <%"byte[]"> [#uses=1] + %tmp301 = call fastcc %tango.net.Socket.IPv4Address* @_D5tango3net6Socket11IPv4Address5_ctorMFAaiZC5tango3net6Socket11IPv4Address(%tango.net.Socket.IPv4Address* %.newclass_gc292, %"byte[]" %insert327, i32 %tmp290) ; <%tango.net.Socket.IPv4Address*> [#uses=1] + %tmp302 = bitcast %tango.net.Socket.IPv4Address* %tmp301 to %tango.net.Socket.Address* ; <%tango.net.Socket.Address*> [#uses=1] + br label %try + +try: ; preds = %condend, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit635, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + %connect_to.0 = phi %tango.net.Socket.Address* [ %tmp46, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit ], [ %tmp147, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit635 ], [ %tmp302, %condend ] ; <%tango.net.Socket.Address*> [#uses=3] + %.newclass_gc_alloc304 = invoke noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net13SocketConduit13SocketConduit7__ClassZ) + to label %postinvoke unwind label %landingpad ; [#uses=5] + +postinvoke: ; preds = %try + %.newclass_gc305 = bitcast i8* %.newclass_gc_alloc304 to %tango.net.SocketConduit.SocketConduit* ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %vtbl306 = bitcast i8* %.newclass_gc_alloc304 to %tango.net.SocketConduit.SocketConduit.__vtbl** ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=2] + store %tango.net.SocketConduit.SocketConduit.__vtbl* @_D5tango3net13SocketConduit13SocketConduit6__vtblZ, %tango.net.SocketConduit.SocketConduit.__vtbl** %vtbl306 + %monitor307 = getelementptr i8* %.newclass_gc_alloc304, i32 4 ; [#uses=1] + %11 = bitcast i8* %monitor307 to i8** ; [#uses=1] + store i8* null, i8** %11 + %tmp308 = getelementptr i8* %.newclass_gc_alloc304, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp308, i8* bitcast (%15** getelementptr (%tango.net.SocketConduit.SocketConduit* bitcast (%23* @_D5tango3net13SocketConduit13SocketConduit6__initZ to %tango.net.SocketConduit.SocketConduit*), i32 0, i32 2) to i8*), i32 40, i32 1) + %tmp1.i.i.i = getelementptr i8* %.newclass_gc_alloc304, i32 28 ; [#uses=1] + %12 = bitcast i8* %tmp1.i.i.i to %tango.net.Socket.Socket** ; <%tango.net.Socket.Socket**> [#uses=1] + %.newclass_gc_alloc.i.i.i374 = invoke noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket6Socket7__ClassZ) + to label %.newclass_gc_alloc.i.i.i.noexc unwind label %landingpad ; [#uses=7] + +.newclass_gc_alloc.i.i.i.noexc: ; preds = %postinvoke + %.newclass_gc.i.i.i = bitcast i8* %.newclass_gc_alloc.i.i.i374 to %tango.net.Socket.Socket* ; <%tango.net.Socket.Socket*> [#uses=2] + %vtbl.i.i.i = bitcast i8* %.newclass_gc_alloc.i.i.i374 to %tango.net.Socket.Socket.__vtbl** ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + store %tango.net.Socket.Socket.__vtbl* @_D5tango3net6Socket6Socket6__vtblZ, %tango.net.Socket.Socket.__vtbl** %vtbl.i.i.i + %monitor.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i374, i32 4 ; [#uses=1] + %13 = bitcast i8* %monitor.i.i.i to i8** ; [#uses=1] + store i8* null, i8** %13 + %tmp2.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i374, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i.i.i, i8* bitcast (i32* getelementptr (%tango.net.Socket.Socket* bitcast (%25* @_D5tango3net6Socket6Socket6__initZ to %tango.net.Socket.Socket*), i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp1.i.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i374, i32 12 ; [#uses=1] + %14 = bitcast i8* %tmp1.i.i.i.i to i32* ; [#uses=1] + store i32 1, i32* %14 + %tmp4.i.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i374, i32 16 ; [#uses=1] + %15 = bitcast i8* %tmp4.i.i.i.i to i32* ; [#uses=1] + store i32 2, i32* %15 + %tmp7.i.i.i.i = getelementptr i8* %.newclass_gc_alloc.i.i.i374, i32 20 ; [#uses=1] + %16 = bitcast i8* %tmp7.i.i.i.i to i32* ; [#uses=1] + store i32 6, i32* %16 + invoke fastcc void @_D5tango3net6Socket6Socket10initializeMFT5tango3net6Socket8socket_tZv(%tango.net.Socket.Socket* %.newclass_gc.i.i.i, i32 -1) + to label %_D5tango3net13SocketConduit13SocketConduit5_ctorMFZC5tango3net13SocketConduit13SocketConduit.exit unwind label %landingpad + +_D5tango3net13SocketConduit13SocketConduit5_ctorMFZC5tango3net13SocketConduit13SocketConduit.exit: ; preds = %.newclass_gc_alloc.i.i.i.noexc + store %tango.net.Socket.Socket* %.newclass_gc.i.i.i, %tango.net.Socket.Socket** %12 + %tmp316 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %vtbl306 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"sock.connect@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp316, i32 0, i32 18 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)**> [#uses=1] + %sock.connect = load %tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)** %"sock.connect@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.SocketConduit.SocketConduit*, %tango.net.Socket.Address*)*> [#uses=1] + %tmp320 = invoke fastcc %tango.net.SocketConduit.SocketConduit* %sock.connect(%tango.net.SocketConduit.SocketConduit* %.newclass_gc305, %tango.net.Socket.Address* %connect_to.0) + to label %postinvoke319 unwind label %landingpad ; <%tango.net.SocketConduit.SocketConduit*> [#uses=0] + +postinvoke319: ; preds = %_D5tango3net13SocketConduit13SocketConduit5_ctorMFZC5tango3net13SocketConduit13SocketConduit.exit + %.tmp323 = bitcast %tango.net.Socket.Address* %connect_to.0 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp323) + ret %tango.net.SocketConduit.SocketConduit* %.newclass_gc305 + +landingpad: ; preds = %_D5tango3net13SocketConduit13SocketConduit5_ctorMFZC5tango3net13SocketConduit13SocketConduit.exit, %.newclass_gc_alloc.i.i.i.noexc, %postinvoke, %try + %17 = call i8* @llvm.eh.exception() ; [#uses=2] + %18 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %17, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %.tmp = bitcast %tango.net.Socket.Address* %connect_to.0 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp) + call void @_d_eh_resume_unwind(i8* %17) + unreachable +} + +define fastcc i1 @_D5tango3net3ftp9FtpClient13FTPConnection11isSupportedMFAaZb(%tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg, %"byte[]" %command_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 0 ; [#uses=1] + %.len = load i32* %tmp2 ; [#uses=2] + %tmp3 = icmp eq i32 %.len, 0 ; [#uses=1] + br i1 %tmp3, label %if, label %endif + +if: ; preds = %entry + ret i1 true + +endif: ; preds = %entry + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 1 ; <%tango.net.ftp.FtpClient.FtpFeature**> [#uses=1] + %.ptr = load %tango.net.ftp.FtpClient.FtpFeature** %tmp8 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=2] + br label %foreachcond + +foreachcond: ; preds = %foreachnext, %endif + %foreachkey.0 = phi i32 [ 0, %endif ], [ %tmp24, %foreachnext ] ; [#uses=4] + %tmp10 = icmp ult i32 %foreachkey.0, %.len ; [#uses=1] + br i1 %tmp10, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp1231.0 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.ptr, i32 %foreachkey.0, i32 0, i32 0 ; [#uses=1] + %tmp32 = load i32* %tmp1231.0 ; [#uses=3] + %tmp1231.1 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.ptr, i32 %foreachkey.0, i32 0, i32 1 ; [#uses=1] + %tmp33 = load i8** %tmp1231.1, align 4 ; [#uses=1] + %s2_arg22.i = extractvalue %"byte[]" %command_arg, 0 ; [#uses=3] + %s2_arg23.i = extractvalue %"byte[]" %command_arg, 1 ; [#uses=1] + %tmp4.i = icmp ult i32 %s2_arg22.i, %tmp32 ; [#uses=1] + %len.0.i = select i1 %tmp4.i, i32 %s2_arg22.i, i32 %tmp32 ; [#uses=1] + %tmp11.i = tail call i32 @strncasecmp(i8* %tmp33, i8* %s2_arg23.i, i32 %len.0.i) ; [#uses=2] + %tmp20.i = sub i32 %tmp32, %s2_arg22.i ; [#uses=1] + %tmp13.i = icmp eq i32 %tmp11.i, 0 ; [#uses=1] + %tmp20.tmp11.i = select i1 %tmp13.i, i32 %tmp20.i, i32 %tmp11.i ; [#uses=1] + %tmp19 = icmp eq i32 %tmp20.tmp11.i, 0 ; [#uses=1] + br i1 %tmp19, label %if20, label %foreachnext + +if20: ; preds = %foreachbody + ret i1 true + +foreachnext: ; preds = %foreachbody + %tmp24 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + ret i1 false +} + +define fastcc i1 @_D5tango3net3ftp9FtpClient13FTPConnection12is_supportedMFAaZb(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %command_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 5, i32 0 ; [#uses=1] + %.len = load i32* %tmp2 ; [#uses=1] + %tmp3 = icmp eq i32 %.len, 0 ; [#uses=1] + br i1 %tmp3, label %if, label %endif + +if: ; preds = %entry + ret i1 false + +endif: ; preds = %entry + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp5 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.isSupported@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 41 ; [#uses=1] + %this.isSupported = load i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.isSupported@vtbl", align 4 ; [#uses=1] + %tmp9 = tail call fastcc i1 %this.isSupported(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %command_arg) ; [#uses=1] + ret i1 %tmp9 +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection17prepareDataSocketMFKC5tango3net13SocketConduit13SocketConduitZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit** nocapture %data_arg) { +entry: + %tv.i = alloca %tango.net.Socket.timeval, align 8 ; <%tango.net.Socket.timeval*> [#uses=2] + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp20 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp25 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp53 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 6, i32 0 ; [#uses=1] + %tmp3 = load i32* %tmp2 ; [#uses=1] + switch i32 %tmp3, label %default4 [ + i32 0, label %case + i32 1, label %switchend + ] + +default4: ; preds = %entry + %tmp6 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp6 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 5 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.exception@vtbl", align 4 ; [#uses=1] + call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 23, i8* getelementptr ([24 x i8]* @.str146, i32 0, i32 0) }) + br label %case + +case: ; preds = %default4, %entry + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket9SocketSet7__ClassZ) ; [#uses=8] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.SocketSet* ; <%tango.net.Socket.SocketSet*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.SocketSet.__vtbl** ; <%tango.net.Socket.SocketSet.__vtbl**> [#uses=3] + store %tango.net.Socket.SocketSet.__vtbl* @_D5tango3net6Socket9SocketSet6__vtblZ, %tango.net.Socket.SocketSet.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp9 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp9, i8* bitcast (i32* getelementptr (%tango.net.Socket.SocketSet* bitcast (%24* @_D5tango3net6Socket9SocketSet6__initZ to %tango.net.Socket.SocketSet*), i32 0, i32 2) to i8*), i32 16, i32 1) + %1 = bitcast i8* %tmp9 to i32* ; [#uses=2] + store i32 128, i32* %1 + %tmp9.i.i = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %2 = bitcast i8* %tmp9.i.i to i8** ; [#uses=1] + %.gc_mem.i.i = call noalias i8* @_d_newarrayT(%object.TypeInfo* @_D11TypeInfo_Ag6__initZ, i32 128) ; [#uses=1] + store i8* %.gc_mem.i.i, i8** %2 + %tmp14.i.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %3 = bitcast i8* %tmp14.i.i to i32* ; [#uses=1] + %tmp17.i.i = load i32* %1 ; [#uses=1] + %tmp18.i.i = shl i32 %tmp17.i.i, 3 ; [#uses=1] + store i32 %tmp18.i.i, i32* %3 + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %case + %tmp17 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp18 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp17 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp18, i32 0, i32 10 ; [#uses=1] + %this.timeout = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.timeout(%tango.time.Time.Time* noalias nocapture sret %.rettmp20, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke21 unwind label %landingpad + +postinvoke21: ; preds = %postinvoke + %.rettmp20.0 = getelementptr %tango.time.Time.Time* %.rettmp20, i32 0, i32 0 ; [#uses=1] + %tmp = load i64* %.rettmp20.0, align 8 ; [#uses=1] + %tmp1.i = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp3.i = load i64* %tmp1.i, align 8 ; [#uses=1] + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp25) + to label %postinvoke26 unwind label %landingpad + +whilebody: ; preds = %postinvoke26 + %tmp32 = load %tango.net.Socket.SocketSet.__vtbl** %vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=1] + %"set.reset@vtbl" = getelementptr %tango.net.Socket.SocketSet.__vtbl* %tmp32, i32 0, i32 10 ; [#uses=1] + %set.reset = load void (%tango.net.Socket.SocketSet*)** %"set.reset@vtbl", align 4 ; [#uses=1] + invoke fastcc void %set.reset(%tango.net.Socket.SocketSet* %.newclass_gc) + to label %postinvoke34 unwind label %landingpad + +postinvoke26: ; preds = %postinvoke21 + %tmp5.i = add i64 %tmp3.i, %tmp ; [#uses=1] + %tmp1.i133 = getelementptr %tango.time.Time.Time* %.rettmp25, i32 0, i32 0 ; [#uses=1] + %tmp3.i135 = load i64* %tmp1.i133, align 8 ; [#uses=1] + %tmp5.i137 = icmp slt i64 %tmp3.i135, %tmp5.i ; [#uses=1] + br i1 %tmp5.i137, label %whilebody, label %endwhile + +postinvoke34: ; preds = %whilebody + %tmp37 = load %tango.net.Socket.SocketSet.__vtbl** %vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=1] + %"set.add@vtbl" = getelementptr %tango.net.Socket.SocketSet.__vtbl* %tmp37, i32 0, i32 12 ; [#uses=1] + %set.add = load void (%tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*)** %"set.add@vtbl", align 4 ; [#uses=1] + %tmp39 = load %tango.net.SocketConduit.SocketConduit** %data_arg ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp40 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp39, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp41 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp40 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp41, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp44 = invoke fastcc %tango.net.Socket.Socket* %data.socket(%tango.net.SocketConduit.SocketConduit* %tmp39) + to label %postinvoke43 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=1] + +postinvoke43: ; preds = %postinvoke34 + invoke fastcc void %set.add(%tango.net.Socket.SocketSet* %.newclass_gc, %tango.net.Socket.Socket* %tmp44) + to label %postinvoke45 unwind label %landingpad + +postinvoke45: ; preds = %postinvoke43 + %tmp49 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp17 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl50" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp49, i32 0, i32 10 ; [#uses=1] + %this.timeout52 = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl50", align 4 ; [#uses=1] + invoke fastcc void %this.timeout52(%tango.time.Time.Time* noalias nocapture sret %.rettmp53, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke54 unwind label %landingpad + +postinvoke54: ; preds = %postinvoke45 + %.rettmp53.0 = getelementptr %tango.time.Time.Time* %.rettmp53, i32 0, i32 0 ; [#uses=1] + %tmp150 = load i64* %.rettmp53.0, align 8 ; [#uses=2] + %tmp3.i.i.i = sdiv i64 %tmp150, 10000000 ; [#uses=1] + %tmp3.i14.i.i = sdiv i64 %tmp150, 10 ; [#uses=1] + %tmp6.i.i = trunc i64 %tmp3.i14.i.i to i32 ; [#uses=1] + %tmp7.i.i = urem i32 %tmp6.i.i, 1000000 ; [#uses=1] + %tmp7.i = bitcast %tango.net.Socket.timeval* %tv.i to i64* ; [#uses=1] + %4 = shl i64 %tmp3.i.i.i, 32 ; [#uses=1] + %5 = zext i32 %tmp7.i.i to i64 ; [#uses=1] + %6 = or i64 %5, %4 ; [#uses=1] + store i64 %6, i64* %tmp7.i, align 8 + %tmp5.i141142 = invoke fastcc i32 @_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetPS5tango3net6Socket7timevalZi(%tango.net.Socket.SocketSet* %.newclass_gc, %tango.net.Socket.SocketSet* null, %tango.net.Socket.SocketSet* null, %tango.net.Socket.timeval* %tv.i) + to label %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit unwind label %landingpad ; [#uses=1] + +_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit: ; preds = %postinvoke54 + switch i32 %tmp5.i141142, label %endif [ + i32 -1, label %endwhile + i32 0, label %endwhile + ] + +endif: ; preds = %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit + %tmp61 = load %tango.net.SocketConduit.SocketConduit** %data_arg ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp62 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp61, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp63 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp62 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl64" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp63, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket66 = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl64", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp68 = invoke fastcc %tango.net.Socket.Socket* %data.socket66(%tango.net.SocketConduit.SocketConduit* %tmp61) + to label %postinvoke67 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=2] + +postinvoke67: ; preds = %endif + %tmp69 = getelementptr %tango.net.Socket.Socket* %tmp68, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp70 = load %tango.net.Socket.Socket.__vtbl** %tmp69 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"data.socket().accept@vtbl" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp70, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.Socket.Socket*)**> [#uses=1] + %"data.socket().accept" = load %tango.net.Socket.Socket* (%tango.net.Socket.Socket*)** %"data.socket().accept@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.Socket.Socket*)*> [#uses=1] + %tmp73 = invoke fastcc %tango.net.Socket.Socket* %"data.socket().accept"(%tango.net.Socket.Socket* %tmp68) + to label %endwhile unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=1] + +endwhile: ; preds = %postinvoke67, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit, %postinvoke26 + %new_data.0 = phi %tango.net.Socket.Socket* [ null, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit ], [ null, %postinvoke26 ], [ null, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit ], [ %tmp73, %postinvoke67 ] ; <%tango.net.Socket.Socket*> [#uses=2] + %tmp76 = icmp eq %tango.net.Socket.Socket* %new_data.0, null ; [#uses=1] + br i1 %tmp76, label %if77, label %endif78 + +if77: ; preds = %endwhile + %.newclass_gc_alloc80 = invoke noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) + to label %postinvoke79 unwind label %landingpad ; [#uses=6] + +postinvoke79: ; preds = %if77 + %vtbl82 = bitcast i8* %.newclass_gc_alloc80 to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl82 + %monitor83 = getelementptr i8* %.newclass_gc_alloc80, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor83 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp84 = getelementptr i8* %.newclass_gc_alloc80, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp84, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i143 = getelementptr i8* %.newclass_gc_alloc80, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i143, i8* getelementptr ([4 x i8]* @.str148, i32 0, i32 0), i32 3, i32 1) + %tmp5.i144 = bitcast i8* %.newclass_gc_alloc80 to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i145146 = invoke fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i144, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str147, i32 0, i32 0) }, %object.Exception* null) + to label %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit unwind label %landingpad ; <%object.Exception*> [#uses=0] + +_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit: ; preds = %postinvoke79 + %tmp90 = bitcast i8* %.newclass_gc_alloc80 to %object.Object* ; <%object.Object*> [#uses=1] + invoke void @_d_throw_exception(%object.Object* %tmp90) + to label %postinvoke91 unwind label %landingpad + +postinvoke91: ; preds = %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit + unreachable + +endif78: ; preds = %endwhile + %tmp92 = load %tango.net.SocketConduit.SocketConduit** %data_arg ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp93 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp92, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp94 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp93 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl95" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp94, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket97 = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl95", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp99 = invoke fastcc %tango.net.Socket.Socket* %data.socket97(%tango.net.SocketConduit.SocketConduit* %tmp92) + to label %postinvoke98 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=2] + +postinvoke98: ; preds = %endif78 + %tmp100 = getelementptr %tango.net.Socket.Socket* %tmp99, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp101 = load %tango.net.Socket.Socket.__vtbl** %tmp100 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"data.socket().shutdown@vtbl" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp101, i32 0, i32 16 ; <%tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)**> [#uses=1] + %"data.socket().shutdown" = load %tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)** %"data.socket().shutdown@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.Socket.Socket*, i32)*> [#uses=1] + %tmp104 = invoke fastcc %tango.net.Socket.Socket* %"data.socket().shutdown"(%tango.net.Socket.Socket* %tmp99, i32 2) + to label %postinvoke103 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=0] + +postinvoke103: ; preds = %postinvoke98 + %tmp105 = load %tango.net.SocketConduit.SocketConduit** %data_arg ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp106 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp105, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp107 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp106 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.detach@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp107, i32 0, i32 8 ; [#uses=1] + %data.detach = load void (%tango.net.SocketConduit.SocketConduit*)** %"data.detach@vtbl", align 4 ; [#uses=1] + invoke fastcc void %data.detach(%tango.net.SocketConduit.SocketConduit* %tmp105) + to label %postinvoke109 unwind label %landingpad + +postinvoke109: ; preds = %postinvoke103 + %tmp110 = load %tango.net.SocketConduit.SocketConduit** %data_arg ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp111 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp110, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp112 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp111 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl113" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp112, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket115 = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl113", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp117 = invoke fastcc %tango.net.Socket.Socket* %data.socket115(%tango.net.SocketConduit.SocketConduit* %tmp110) + to label %postinvoke116 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=1] + +postinvoke116: ; preds = %postinvoke109 + %tmp118 = getelementptr %tango.net.Socket.Socket* %tmp117, i32 0, i32 2 ; [#uses=1] + %tmp120 = getelementptr %tango.net.Socket.Socket* %new_data.0, i32 0, i32 2 ; [#uses=1] + %tmp121 = load i32* %tmp120 ; [#uses=1] + store i32 %tmp121, i32* %tmp118 + %.tmp123 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp123) + ret void + +landingpad: ; preds = %postinvoke109, %postinvoke103, %postinvoke98, %endif78, %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit, %postinvoke79, %if77, %postinvoke67, %endif, %postinvoke54, %postinvoke45, %postinvoke43, %postinvoke34, %whilebody, %postinvoke21, %postinvoke, %case + %8 = call i8* @llvm.eh.exception() ; [#uses=2] + %9 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %8, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %.tmp = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp) + call void @_d_eh_resume_unwind(i8* %8) + unreachable + +switchend: ; preds = %entry + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection17finishDataCommandMFC5tango3net13SocketConduit13SocketConduitZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data_arg) { +entry: + %r = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = bitcast %tango.net.SocketConduit.SocketConduit* %data_arg to %tango.io.device.Conduit.Conduit* ; <%tango.io.device.Conduit.Conduit*> [#uses=1] + %tmp1.i = bitcast %tango.net.SocketConduit.SocketConduit* %data_arg to %tango.io.device.Conduit.Conduit.__vtbl** ; <%tango.io.device.Conduit.Conduit.__vtbl**> [#uses=1] + %tmp2.i = load %tango.io.device.Conduit.Conduit.__vtbl** %tmp1.i ; <%tango.io.device.Conduit.Conduit.__vtbl*> [#uses=1] + %"this.detach@vtbl.i" = getelementptr %tango.io.device.Conduit.Conduit.__vtbl* %tmp2.i, i32 0, i32 8 ; [#uses=1] + %this.detach.i = load void (%tango.io.device.Conduit.Conduit*)** %"this.detach@vtbl.i", align 4 ; [#uses=1] + call fastcc void %this.detach.i(%tango.io.device.Conduit.Conduit* %tmp1) + %tmp3 = getelementptr %tango.net.SocketConduit.SocketConduit* %data_arg, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=1] + %tmp4 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp3 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.detach@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp4, i32 0, i32 8 ; [#uses=1] + %data.detach = load void (%tango.net.SocketConduit.SocketConduit*)** %"data.detach@vtbl", align 4 ; [#uses=1] + call fastcc void %data.detach(%tango.net.SocketConduit.SocketConduit* %data_arg) + %tmp7 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp8 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp7 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp8, i32 0, i32 37 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + %tmp10 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %r, i32 0, i32 0, i32 0 ; [#uses=3] + %tmp11 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp10, i8* %tmp11, i32 12, i32 4) + %tmp14 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp10, 1 ; <%"byte[]"> [#uses=1] + %tmp15 = call i32 @_adEq(%"byte[]" %tmp14, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str149, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp16 = icmp eq i32 %tmp15, 0 ; [#uses=1] + br i1 %tmp16, label %oror, label %endif + +oror: ; preds = %entry + %tmp19 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp10, 1 ; <%"byte[]"> [#uses=1] + %tmp20 = call i32 @_adEq(%"byte[]" %tmp19, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str150, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp21 = icmp eq i32 %tmp20, 0 ; [#uses=1] + br i1 %tmp21, label %if, label %endif + +if: ; preds = %oror + %tmp24 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp7 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp24, i32 0, i32 5 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.exception@vtbl", align 4 ; [#uses=1] + call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 10, i8* getelementptr ([11 x i8]* @.str151, i32 0, i32 0) }) + ret void + +endif: ; preds = %oror, %entry + ret void +} + +define fastcc %tango.net.SocketConduit.SocketConduit* @_D5tango3net3ftp9FtpClient13FTPConnection18processDataCommandMFAaAAaXC5tango3net13SocketConduit13SocketConduit(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %command_arg, %"char[][]" %parameters_arg) { +entry: + %data = alloca %tango.net.SocketConduit.SocketConduit*, align 4 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=4] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=5] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.getDataSocket@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 39 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)**> [#uses=1] + %this.getDataSocket = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)** %"this.getDataSocket@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*)*> [#uses=1] + %tmp4 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.getDataSocket(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + store %tango.net.SocketConduit.SocketConduit* %tmp4, %tango.net.SocketConduit.SocketConduit** %data + %tmp10 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp10, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %command_arg, %"char[][]" %parameters_arg) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %entry + %tmp16 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp16, i32 0, i32 37 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke18 unwind label %landingpad + +postinvoke18: ; preds = %postinvoke + %tmp19 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=3] + %tmp20 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp19, i8* %tmp20, i32 12, i32 4) + %tmp23 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp19, 1 ; <%"byte[]"> [#uses=1] + %tmp25 = invoke i32 @_adEq(%"byte[]" %tmp23, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str152, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly + to label %postinvoke24 unwind label %landingpad ; [#uses=1] + +postinvoke24: ; preds = %postinvoke18 + %tmp26 = icmp eq i32 %tmp25, 0 ; [#uses=1] + br i1 %tmp26, label %andand, label %endif + +andand: ; preds = %postinvoke24 + %tmp30 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp19, 1 ; <%"byte[]"> [#uses=1] + %tmp32 = invoke i32 @_adEq(%"byte[]" %tmp30, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str153, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly + to label %postinvoke31 unwind label %landingpad ; [#uses=1] + +postinvoke31: ; preds = %andand + %tmp33 = icmp eq i32 %tmp32, 0 ; [#uses=1] + br i1 %tmp33, label %if, label %endif + +if: ; preds = %postinvoke31 + %tmp37 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp37, i32 0, i32 14 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.exception@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response) + to label %endif unwind label %landingpad + +endif: ; preds = %if, %postinvoke31, %postinvoke24 + %tmp42 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.prepareDataSocket@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp42, i32 0, i32 43 ; [#uses=1] + %this.prepareDataSocket = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit**)** %"this.prepareDataSocket@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.prepareDataSocket(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit** %data) + to label %postinvoke44 unwind label %landingpad + +postinvoke44: ; preds = %endif + %tmp45 = load %tango.net.SocketConduit.SocketConduit** %data ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + ret %tango.net.SocketConduit.SocketConduit* %tmp45 + +landingpad: ; preds = %endif, %if, %andand, %postinvoke18, %postinvoke, %entry + %0 = call i8* @llvm.eh.exception() ; [#uses=3] + %1 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %0, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D6Object7__ClassZ) ; [#uses=1] + %cond = icmp eq i32 %1, 1 ; [#uses=1] + br i1 %cond, label %catch, label %switchdefault + +catch: ; preds = %landingpad + %2 = bitcast i8* %0 to %object.Object* ; <%object.Object*> [#uses=1] + %tmp5 = load %tango.net.SocketConduit.SocketConduit** %data ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp6 = bitcast %tango.net.SocketConduit.SocketConduit* %tmp5 to %tango.io.device.Conduit.Conduit* ; <%tango.io.device.Conduit.Conduit*> [#uses=1] + %tmp1.i = bitcast %tango.net.SocketConduit.SocketConduit* %tmp5 to %tango.io.device.Conduit.Conduit.__vtbl** ; <%tango.io.device.Conduit.Conduit.__vtbl**> [#uses=1] + %tmp2.i = load %tango.io.device.Conduit.Conduit.__vtbl** %tmp1.i ; <%tango.io.device.Conduit.Conduit.__vtbl*> [#uses=1] + %"this.detach@vtbl.i" = getelementptr %tango.io.device.Conduit.Conduit.__vtbl* %tmp2.i, i32 0, i32 8 ; [#uses=1] + %this.detach.i = load void (%tango.io.device.Conduit.Conduit*)** %"this.detach@vtbl.i", align 4 ; [#uses=1] + call fastcc void %this.detach.i(%tango.io.device.Conduit.Conduit* %tmp6) + call void @_d_throw_exception(%object.Object* %2) + unreachable + +switchdefault: ; preds = %landingpad + call void @_d_eh_resume_unwind(i8* %0) + unreachable +} + +define fastcc %"FtpFileInfo[]" @_D5tango3net3ftp9FtpClient13FTPConnection2lsMFAaZAS5tango3net3ftp9FtpClient11FtpFileInfo(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %.frame.i = alloca %nest.splitLines, align 8 ; <%nest.splitLines*> [#uses=5] + %.rettmp.i = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %.rettmp8.i = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %__arrayArg146 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpFileInfo, align 8 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=10] + %path_arg207 = extractvalue %"byte[]" %path_arg, 0 ; [#uses=4] + %path_arg208 = extractvalue %"byte[]" %path_arg, 1 ; [#uses=3] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=7] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.isSupported@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 41 ; [#uses=1] + %this.isSupported = load i1 (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.isSupported@vtbl", align 4 ; [#uses=1] + %tmp4 = call fastcc i1 %this.isSupported(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str154, i32 0, i32 0) }) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + %tmp6 = icmp eq i32 %path_arg207, 0 ; [#uses=1] + %tmp11 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp11, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=2] + br i1 %tmp6, label %else, label %if7 + +if7: ; preds = %if + %tmp13 = getelementptr [1 x %"byte[]"]* %__arrayArg146, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + %insert204 = insertvalue %"byte[]" undef, i32 %path_arg207, 0 ; <%"byte[]"> [#uses=1] + %insert206 = insertvalue %"byte[]" %insert204, i8* %path_arg208, 1 ; <%"byte[]"> [#uses=1] + store %"byte[]" %insert206, %"byte[]"* %tmp13, align 8 + %tmp16 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp13, 1 ; <%"char[][]"> [#uses=1] + %tmp17 = invoke fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str155, i32 0, i32 0) }, %"char[][]" %tmp16) + to label %endif unwind label %landingpad ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + +else: ; preds = %if + %tmp25 = invoke fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str156, i32 0, i32 0) }, %"char[][]" zeroinitializer) + to label %endif unwind label %landingpad ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + +landingpad: ; preds = %else, %if7 + %0 = call i8* @llvm.eh.exception() ; [#uses=2] + %1 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %0, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=1] + %cond149 = icmp eq i32 %1, 1 ; [#uses=1] + br i1 %cond149, label %endif, label %switchdefault + +switchdefault: ; preds = %landingpad + call void @_d_eh_resume_unwind(i8* %0) + unreachable + +endif: ; preds = %landingpad, %else, %if7, %entry + %data.0 = phi %tango.net.SocketConduit.SocketConduit* [ null, %entry ], [ %tmp17, %if7 ], [ %tmp25, %else ], [ null, %landingpad ] ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %mlsd_success.0 = phi i1 [ false, %entry ], [ true, %if7 ], [ true, %else ], [ false, %landingpad ] ; [#uses=1] + br i1 %mlsd_success.0, label %if27, label %else29 + +if27: ; preds = %endif + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango2io6device5Array5Array7__ClassZ) ; [#uses=9] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Array.Array* ; <%tango.io.device.Array.Array*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Array.Array.__vtbl** ; <%tango.io.device.Array.Array.__vtbl**> [#uses=2] + store %tango.io.device.Array.Array.__vtbl* @_D5tango2io6device5Array5Array6__vtblZ, %tango.io.device.Array.Array.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp30 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp30, i8* bitcast (%4** getelementptr (%tango.io.device.Array.Array* bitcast (%26* @_D5tango2io6device5Array5Array6__initZ to %tango.io.device.Array.Array*), i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp2.i = load %tango.io.device.Array.Array.__vtbl** %vtbl ; <%tango.io.device.Array.Array.__vtbl*> [#uses=1] + %"this.assign@vtbl.i" = getelementptr %tango.io.device.Array.Array.__vtbl* %tmp2.i, i32 0, i32 15 ; <%tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)**> [#uses=1] + %this.assign.i = load %tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)** %"this.assign@vtbl.i", align 4 ; <%tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)*> [#uses=1] + %.gc_mem.i = call noalias i8* @_d_newarrayT(%object.TypeInfo* @_D11TypeInfo_Ah6__initZ, i32 256) ; [#uses=1] + %tmp5.i = insertvalue %"byte[]" undef, i32 256, 0 ; <%"byte[]"> [#uses=1] + %tmp6.i = insertvalue %"byte[]" %tmp5.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp7.i = call fastcc %tango.io.device.Array.Array* %this.assign.i(%tango.io.device.Array.Array* %.newclass_gc, %"byte[]" %tmp6.i, i32 0) ; <%tango.io.device.Array.Array*> [#uses=0] + %tmp9.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + %3 = bitcast i8* %tmp9.i to i32* ; [#uses=1] + store i32 65536, i32* %3 + %tmp37 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readStream@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp37, i32 0, i32 47 ; [#uses=1] + %this.readStream = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)")** %"this.readStream@vtbl", align 4 ; [#uses=1] + %tmp41 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %tmp42 = bitcast i8* %tmp41 to %tango.io.model.IConduit.OutputStream* ; <%tango.io.model.IConduit.OutputStream*> [#uses=1] + call fastcc void %this.readStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data.0, %tango.io.model.IConduit.OutputStream* %tmp42, %"void delegate(uint pos)" zeroinitializer) + %tmp45 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp45, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data.0) + %tmp2.i209 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %4 = bitcast i8* %tmp2.i209 to i8** ; [#uses=1] + %.ptr.i = load i8** %4 ; [#uses=1] + %tmp4.i = getelementptr i8* %.newclass_gc_alloc, i32 24 ; [#uses=1] + %5 = bitcast i8* %tmp4.i to i32* ; [#uses=1] + %tmp6.i210 = getelementptr i8* %.newclass_gc_alloc, i32 28 ; [#uses=1] + %6 = bitcast i8* %tmp6.i210 to i32* ; [#uses=1] + %tmp7.i211 = load i32* %5 ; [#uses=2] + %tmp8.i = load i32* %6 ; [#uses=1] + %tmp9.i212 = getelementptr i8* %.ptr.i, i32 %tmp7.i211 ; [#uses=2] + %tmp10.i = sub i32 %tmp8.i, %tmp7.i211 ; [#uses=2] + %count.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 0 ; [#uses=3] + %result.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1 ; <%"char[][]"*> [#uses=1] + store i32 0, i32* %count.i, align 8 + %7 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp10.i, i32* %7, align 8 + %.sret_arg10.1.i.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp9.i212, i8** %.sret_arg10.1.i.i, align 4 + %tmp1.i213 = bitcast %nest.splitLines* %.frame.i to i8* ; [#uses=2] + %tmp2.i214 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1.i213, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func.i = insertvalue %"int delegate(ref char[])" %tmp2.i214, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody41MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp3.i = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, %"int delegate(ref char[])" %.func.i) ; [#uses=0] + %tmp4.i215 = load i32* %count.i, align 8 ; [#uses=2] + %.gc_mem.i216 = call noalias i8* @_d_newarrayT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D12TypeInfo_AAa6__initZ to %object.TypeInfo*), i32 %tmp4.i215) ; [#uses=1] + %.gc_mem5.i = bitcast i8* %.gc_mem.i216 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp6.i217 = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp4.i215, i32* %tmp6.i217 + %tmp7.i218 = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1, i32 1 ; <%"byte[]"**> [#uses=1] + store %"byte[]"* %.gc_mem5.i, %"byte[]"** %tmp7.i218 + store i32 0, i32* %count.i, align 8 + %8 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp10.i, i32* %8, align 8 + %.sret_arg10.1.i17.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp9.i212, i8** %.sret_arg10.1.i17.i, align 4 + %tmp11.i219 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1.i213, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func12.i = insertvalue %"int delegate(ref char[])" %tmp11.i219, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody42MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp13.i = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, %"int delegate(ref char[])" %.func12.i) ; [#uses=0] + %tmp14.i = load %"char[][]"* %result.i ; <%"char[][]"> [#uses=2] + %tmp53189 = extractvalue %"char[][]" %tmp14.i, 0 ; [#uses=5] + %tmp53190 = extractvalue %"char[][]" %tmp14.i, 1 ; <%"byte[]"*> [#uses=5] + br label %foreachcond + +foreachcond: ; preds = %foreachnext, %if27 + %dir.1.1 = phi %tango.net.ftp.FtpClient.FtpFileInfo* [ null, %if27 ], [ %dir.1.0, %foreachnext ] ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=4] + %dir.0.1 = phi i32 [ 0, %if27 ], [ %dir.0.0, %foreachnext ] ; [#uses=14] + %foreachkey.0 = phi i32 [ 0, %if27 ], [ %tmp127, %foreachnext ] ; [#uses=3] + %tmp65 = icmp ult i32 %foreachkey.0, %tmp53189 ; [#uses=1] + br i1 %tmp65, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp67 = getelementptr %"byte[]"* %tmp53190, i32 %foreachkey.0 ; <%"byte[]"*> [#uses=1] + %tmp68 = load %"byte[]"* %tmp67 ; <%"byte[]"> [#uses=2] + %tmp68187 = extractvalue %"byte[]" %tmp68, 0 ; [#uses=2] + %tmp71 = icmp eq i32 %tmp68187, 0 ; [#uses=1] + br i1 %tmp71, label %foreachnext, label %try74 + +try74: ; preds = %foreachbody + %tmp68188 = extractvalue %"byte[]" %tmp68, 1 ; [#uses=1] + %tmp99 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parseMlstLine@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp99, i32 0, i32 51 ; [#uses=1] + %this.parseMlstLine = load void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.parseMlstLine@vtbl", align 4 ; [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %tmp68187, 0 ; <%"byte[]"> [#uses=1] + %insert186 = insertvalue %"byte[]" %insert, i8* %tmp68188, 1 ; <%"byte[]"> [#uses=1] + invoke fastcc void %this.parseMlstLine(%tango.net.ftp.FtpClient.FtpFileInfo* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %insert186) + to label %postinvoke102 unwind label %landingpad75 + +postinvoke102: ; preds = %try74 + %.rettmp179.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + %tmp180 = load i32* %.rettmp179.0, align 8 ; [#uses=2] + %.rettmp179.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 0, i32 1 ; [#uses=1] + %tmp181 = load i8** %.rettmp179.1, align 4 ; [#uses=1] + %.rettmp.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 1 ; [#uses=1] + %tmp162 = load i32* %.rettmp.1, align 8 ; [#uses=1] + %.rettmp.2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 2 ; [#uses=1] + %tmp163 = load i64* %.rettmp.2, align 4 ; [#uses=1] + %.rettmp.3.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 3, i32 0 ; [#uses=1] + %tmp177 = load i64* %.rettmp.3.0, align 4 ; [#uses=1] + %.rettmp.4.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 4, i32 0 ; [#uses=1] + %tmp175 = load i64* %.rettmp.4.0, align 4 ; [#uses=1] + %.rettmp.5.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 5, i32 0 ; [#uses=1] + %tmp171 = load i32* %.rettmp.5.0, align 4 ; [#uses=1] + %.rettmp.5.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 5, i32 1 ; [#uses=1] + %tmp172 = load i8** %.rettmp.5.1, align 4 ; [#uses=1] + %.rettmp.6 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 6 ; [#uses=1] + %tmp170 = load i8** %.rettmp.6, align 4 ; [#uses=1] + %tmp108 = icmp eq i32 %tmp180, 0 ; [#uses=1] + br i1 %tmp108, label %foreachnext, label %if109 + +if109: ; preds = %postinvoke102 + %tmp113 = add i32 %dir.0.1, 1 ; [#uses=2] + %tmp118 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %dir.1.1 to i8* ; [#uses=1] + %.gc_mem = invoke i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D48TypeInfo_AS5tango3net3ftp9FtpClient11FtpFileInfo6__initZ to %object.TypeInfo*), i32 %tmp113, i32 %dir.0.1, i8* %tmp118) + to label %postinvoke119 unwind label %landingpad75 ; [#uses=1] + +postinvoke119: ; preds = %if109 + %.gc_mem120 = bitcast i8* %.gc_mem to %tango.net.ftp.FtpClient.FtpFileInfo* ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=10] + %9 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 0, i32 0 ; [#uses=1] + store i32 %tmp180, i32* %9 + %tmp121182.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 0, i32 1 ; [#uses=1] + store i8* %tmp181, i8** %tmp121182.1, align 4 + %tmp121.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 1 ; [#uses=1] + store i32 %tmp162, i32* %tmp121.1, align 8 + %tmp121.2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 2 ; [#uses=1] + store i64 %tmp163, i64* %tmp121.2, align 4 + %tmp121.3.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 3, i32 0 ; [#uses=1] + store i64 %tmp177, i64* %tmp121.3.0, align 4 + %tmp121.4.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 4, i32 0 ; [#uses=1] + store i64 %tmp175, i64* %tmp121.4.0, align 4 + %tmp121.5.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 5, i32 0 ; [#uses=1] + store i32 %tmp171, i32* %tmp121.5.0, align 4 + %tmp121.5.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 5, i32 1 ; [#uses=1] + store i8* %tmp172, i8** %tmp121.5.1, align 4 + %tmp121.6 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem120, i32 %dir.0.1, i32 6 ; [#uses=1] + store i8* %tmp170, i8** %tmp121.6, align 4 + br label %foreachnext + +landingpad75: ; preds = %if109, %try74 + %10 = call i8* @llvm.eh.exception() ; [#uses=2] + %11 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %10, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), %object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ, i32 0) ; [#uses=1] + %cond = icmp eq i32 %11, 1 ; [#uses=1] + br i1 %cond, label %catch77, label %switchdefault90 + +catch77: ; preds = %landingpad75 + %tmp80 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendListCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp80, i32 0, i32 49 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")**> [#uses=1] + %this.sendListCommand = load %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.sendListCommand@vtbl", align 4 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*> [#uses=1] + %insert200 = insertvalue %"byte[]" undef, i32 %path_arg207, 0 ; <%"byte[]"> [#uses=1] + %insert202 = insertvalue %"byte[]" %insert200, i8* %path_arg208, 1 ; <%"byte[]"> [#uses=1] + %tmp84 = invoke fastcc %"FtpFileInfo[]" %this.sendListCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %insert202) + to label %postinvoke83 unwind label %catch77.landingpad55_crit_edge ; <%"FtpFileInfo[]"> [#uses=1] + +catch77.landingpad55_crit_edge: ; preds = %catch77 + %.tmp.pre = bitcast %"byte[]"* %tmp53190 to i8* ; [#uses=1] + br label %landingpad55 + +postinvoke83: ; preds = %catch77 + %.tmp89 = bitcast %"byte[]"* %tmp53190 to i8* ; [#uses=1] + call void @_d_delarray(i32 %tmp53189, i8* %.tmp89) + ret %"FtpFileInfo[]" %tmp84 + +switchdefault90: ; preds = %landingpad75 + %.tmp95 = bitcast %"byte[]"* %tmp53190 to i8* ; [#uses=2] + invoke void @_d_delarray(i32 %tmp53189, i8* %.tmp95) + to label %postinvoke96 unwind label %landingpad55 + +postinvoke96: ; preds = %switchdefault90 + call void @_d_eh_resume_unwind(i8* %10) + unreachable + +foreachnext: ; preds = %postinvoke119, %postinvoke102, %foreachbody + %dir.1.0 = phi %tango.net.ftp.FtpClient.FtpFileInfo* [ %dir.1.1, %foreachbody ], [ %.gc_mem120, %postinvoke119 ], [ %dir.1.1, %postinvoke102 ] ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=1] + %dir.0.0 = phi i32 [ %dir.0.1, %foreachbody ], [ %tmp113, %postinvoke119 ], [ %dir.0.1, %postinvoke102 ] ; [#uses=1] + %tmp127 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + %insert192 = insertvalue %"FtpFileInfo[]" undef, i32 %dir.0.1, 0 ; <%"FtpFileInfo[]"> [#uses=1] + %insert194 = insertvalue %"FtpFileInfo[]" %insert192, %tango.net.ftp.FtpClient.FtpFileInfo* %dir.1.1, 1 ; <%"FtpFileInfo[]"> [#uses=1] + %.tmp133 = bitcast %"byte[]"* %tmp53190 to i8* ; [#uses=1] + call void @_d_delarray(i32 %tmp53189, i8* %.tmp133) + ret %"FtpFileInfo[]" %insert194 + +landingpad55: ; preds = %switchdefault90, %catch77.landingpad55_crit_edge + %.tmp.pre-phi = phi i8* [ %.tmp.pre, %catch77.landingpad55_crit_edge ], [ %.tmp95, %switchdefault90 ] ; [#uses=1] + %12 = call i8* @llvm.eh.exception() ; [#uses=2] + %13 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %12, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + call void @_d_delarray(i32 %tmp53189, i8* %.tmp.pre-phi) + call void @_d_eh_resume_unwind(i8* %12) + unreachable + +else29: ; preds = %endif + %tmp142 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendListCommand@vtbl143" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp142, i32 0, i32 49 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")**> [#uses=1] + %this.sendListCommand145 = load %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.sendListCommand@vtbl143", align 4 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*> [#uses=1] + %insert196 = insertvalue %"byte[]" undef, i32 %path_arg207, 0 ; <%"byte[]"> [#uses=1] + %insert198 = insertvalue %"byte[]" %insert196, i8* %path_arg208, 1 ; <%"byte[]"> [#uses=1] + %tmp147 = call fastcc %"FtpFileInfo[]" %this.sendListCommand145(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %insert198) ; <%"FtpFileInfo[]"> [#uses=1] + ret %"FtpFileInfo[]" %tmp147 +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection10readStreamMFC5tango3net13SocketConduit13SocketConduitC5tango2io5model8IConduit12OutputStreamDFkZvZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data_arg, %tango.io.model.IConduit.OutputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg) { +entry: + %tv.i = alloca %tango.net.Socket.timeval, align 8 ; <%tango.net.Socket.timeval*> [#uses=2] + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp11 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %buf = alloca [8192 x i8], align 1 ; <[8192 x i8]*> [#uses=1] + %.rettmp17 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp45 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp110 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp119 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %progress_arg144 = extractvalue %"void delegate(uint pos)" %progress_arg, 0 ; [#uses=2] + %progress_arg145 = extractvalue %"void delegate(uint pos)" %progress_arg, 1 ; [#uses=2] + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket9SocketSet7__ClassZ) ; [#uses=8] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.SocketSet* ; <%tango.net.Socket.SocketSet*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.SocketSet.__vtbl** ; <%tango.net.Socket.SocketSet.__vtbl**> [#uses=3] + store %tango.net.Socket.SocketSet.__vtbl* @_D5tango3net6Socket9SocketSet6__vtblZ, %tango.net.Socket.SocketSet.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (i32* getelementptr (%tango.net.Socket.SocketSet* bitcast (%24* @_D5tango3net6Socket9SocketSet6__initZ to %tango.net.Socket.SocketSet*), i32 0, i32 2) to i8*), i32 16, i32 1) + %1 = bitcast i8* %tmp to i32* ; [#uses=2] + store i32 128, i32* %1 + %tmp9.i.i = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %2 = bitcast i8* %tmp9.i.i to i8** ; [#uses=1] + %.gc_mem.i.i = call noalias i8* @_d_newarrayT(%object.TypeInfo* @_D11TypeInfo_Ag6__initZ, i32 128) ; [#uses=1] + store i8* %.gc_mem.i.i, i8** %2 + %tmp14.i.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %3 = bitcast i8* %tmp14.i.i to i32* ; [#uses=1] + %tmp17.i.i = load i32* %1 ; [#uses=1] + %tmp18.i.i = shl i32 %tmp17.i.i, 3 ; [#uses=1] + store i32 %tmp18.i.i, i32* %3 + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %entry + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp9 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp8 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp9, i32 0, i32 10 ; [#uses=1] + %this.timeout = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.timeout(%tango.time.Time.Time* noalias nocapture sret %.rettmp11, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke12 unwind label %landingpad + +postinvoke12: ; preds = %postinvoke + %.rettmp11.0 = getelementptr %tango.time.Time.Time* %.rettmp11, i32 0, i32 0 ; [#uses=1] + %tmp183 = load i64* %.rettmp11.0, align 8 ; [#uses=1] + %tmp1.i162 = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp3.i164 = load i64* %tmp1.i162, align 8 ; [#uses=1] + %tmp16 = getelementptr [8192 x i8]* %buf, i32 0, i32 0 ; [#uses=3] + call void @llvm.memset.i32(i8* %tmp16, i8 0, i32 8192, i32 1) + br label %whilecond + +whilecond: ; preds = %postinvoke120, %postinvoke12 + %tmp3.i164.pn = phi i64 [ %tmp3.i164, %postinvoke12 ], [ %tmp3.i, %postinvoke120 ] ; [#uses=1] + %.pn = phi i64 [ %tmp183, %postinvoke12 ], [ %tmp181, %postinvoke120 ] ; [#uses=1] + %pos.0 = phi i32 [ 0, %postinvoke12 ], [ %tmp96, %postinvoke120 ] ; [#uses=1] + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp17) + to label %postinvoke18 unwind label %landingpad + +whilebody: ; preds = %postinvoke18 + %tmp24 = load %tango.net.Socket.SocketSet.__vtbl** %vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=1] + %"set.reset@vtbl" = getelementptr %tango.net.Socket.SocketSet.__vtbl* %tmp24, i32 0, i32 10 ; [#uses=1] + %set.reset = load void (%tango.net.Socket.SocketSet*)** %"set.reset@vtbl", align 4 ; [#uses=1] + invoke fastcc void %set.reset(%tango.net.Socket.SocketSet* %.newclass_gc) + to label %postinvoke26 unwind label %landingpad + +postinvoke18: ; preds = %whilecond + %end_time.0.0 = add i64 %tmp3.i164.pn, %.pn ; [#uses=1] + %tmp1.i168 = getelementptr %tango.time.Time.Time* %.rettmp17, i32 0, i32 0 ; [#uses=1] + %tmp3.i170 = load i64* %tmp1.i168, align 8 ; [#uses=1] + %tmp5.i172 = icmp slt i64 %tmp3.i170, %end_time.0.0 ; [#uses=1] + br i1 %tmp5.i172, label %whilebody, label %if125 + +postinvoke26: ; preds = %whilebody + %tmp29 = load %tango.net.Socket.SocketSet.__vtbl** %vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=1] + %"set.add@vtbl" = getelementptr %tango.net.Socket.SocketSet.__vtbl* %tmp29, i32 0, i32 12 ; [#uses=1] + %set.add = load void (%tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*)** %"set.add@vtbl", align 4 ; [#uses=1] + %tmp32 = getelementptr %tango.net.SocketConduit.SocketConduit* %data_arg, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=2] + %tmp33 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp32 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp33, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp36 = invoke fastcc %tango.net.Socket.Socket* %data.socket(%tango.net.SocketConduit.SocketConduit* %data_arg) + to label %postinvoke35 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=1] + +postinvoke35: ; preds = %postinvoke26 + invoke fastcc void %set.add(%tango.net.Socket.SocketSet* %.newclass_gc, %tango.net.Socket.Socket* %tmp36) + to label %postinvoke37 unwind label %landingpad + +postinvoke37: ; preds = %postinvoke35 + %tmp41 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp8 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl42" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp41, i32 0, i32 10 ; [#uses=1] + %this.timeout44 = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl42", align 4 ; [#uses=1] + invoke fastcc void %this.timeout44(%tango.time.Time.Time* noalias nocapture sret %.rettmp45, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke46 unwind label %landingpad + +postinvoke46: ; preds = %postinvoke37 + %.rettmp45.0 = getelementptr %tango.time.Time.Time* %.rettmp45, i32 0, i32 0 ; [#uses=1] + %tmp185 = load i64* %.rettmp45.0, align 8 ; [#uses=2] + %tmp3.i.i.i = sdiv i64 %tmp185, 10000000 ; [#uses=1] + %tmp3.i14.i.i = sdiv i64 %tmp185, 10 ; [#uses=1] + %tmp6.i.i = trunc i64 %tmp3.i14.i.i to i32 ; [#uses=1] + %tmp7.i.i = urem i32 %tmp6.i.i, 1000000 ; [#uses=1] + %tmp7.i = bitcast %tango.net.Socket.timeval* %tv.i to i64* ; [#uses=1] + %4 = shl i64 %tmp3.i.i.i, 32 ; [#uses=1] + %5 = zext i32 %tmp7.i.i to i64 ; [#uses=1] + %6 = or i64 %5, %4 ; [#uses=1] + store i64 %6, i64* %tmp7.i, align 8 + %tmp5.i176177 = invoke fastcc i32 @_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetPS5tango3net6Socket7timevalZi(%tango.net.Socket.SocketSet* %.newclass_gc, %tango.net.Socket.SocketSet* null, %tango.net.Socket.SocketSet* null, %tango.net.Socket.timeval* %tv.i) + to label %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit unwind label %landingpad ; [#uses=1] + +_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit: ; preds = %postinvoke46 + switch i32 %tmp5.i176177, label %endif [ + i32 -1, label %if125 + i32 0, label %if125 + ] + +endif: ; preds = %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit + %tmp55 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp32 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl56" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp55, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket58 = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl56", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp60 = invoke fastcc %tango.net.Socket.Socket* %data.socket58(%tango.net.SocketConduit.SocketConduit* %data_arg) + to label %postinvoke59 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=2] + +postinvoke59: ; preds = %endif + %tmp61 = getelementptr %tango.net.Socket.Socket* %tmp60, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp62 = load %tango.net.Socket.Socket.__vtbl** %tmp61 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"data.socket().receive@vtbl" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp62, i32 0, i32 29 ; [#uses=1] + %"data.socket().receive" = load i32 (%tango.net.Socket.Socket*, %"byte[]", i32)** %"data.socket().receive@vtbl", align 4 ; [#uses=1] + %tmp65 = insertvalue %"byte[]" { i32 8192, i8* undef }, i8* %tmp16, 1 ; <%"byte[]"> [#uses=1] + %tmp67 = invoke fastcc i32 %"data.socket().receive"(%tango.net.Socket.Socket* %tmp60, %"byte[]" %tmp65, i32 0) + to label %postinvoke66 unwind label %landingpad ; [#uses=3] + +postinvoke66: ; preds = %postinvoke59 + switch i32 %tmp67, label %endif76 [ + i32 -1, label %if125 + i32 0, label %if75 + ] + +if75: ; preds = %postinvoke66 + %.tmp141 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp141) + ret void + +endif76: ; preds = %postinvoke66 + %tmp79 = bitcast %tango.io.model.IConduit.OutputStream* %stream_arg to i8* ; [#uses=1] + %tmp80 = call %object.Object* @_d_toObject(i8* %tmp79) nounwind readonly ; <%object.Object*> [#uses=1] + %tmp82 = getelementptr %tango.io.model.IConduit.OutputStream* %stream_arg, i32 0, i32 0 ; <%tango.io.model.IConduit.OutputStream.__vtbl**> [#uses=1] + %tmp83 = load %tango.io.model.IConduit.OutputStream.__vtbl** %tmp82 ; <%tango.io.model.IConduit.OutputStream.__vtbl*> [#uses=1] + %"stream.write@vtbl" = getelementptr %tango.io.model.IConduit.OutputStream.__vtbl* %tmp83, i32 0, i32 5 ; [#uses=1] + %stream.write = load i32 (%tango.io.model.IConduit.OutputStream*, %"byte[]")** %"stream.write@vtbl", align 4 ; [#uses=1] + %tmp85 = bitcast %object.Object* %tmp80 to %tango.io.model.IConduit.OutputStream* ; <%tango.io.model.IConduit.OutputStream*> [#uses=1] + %tmp90 = insertvalue %"byte[]" undef, i32 %tmp67, 0 ; <%"byte[]"> [#uses=1] + %tmp91 = insertvalue %"byte[]" %tmp90, i8* %tmp16, 1 ; <%"byte[]"> [#uses=1] + %tmp93 = invoke fastcc i32 %stream.write(%tango.io.model.IConduit.OutputStream* %tmp85, %"byte[]" %tmp91) + to label %postinvoke92 unwind label %landingpad ; [#uses=0] + +postinvoke92: ; preds = %endif76 + %tmp96 = add i32 %pos.0, %tmp67 ; [#uses=2] + %tmp98 = icmp eq i8* %progress_arg144, null ; [#uses=1] + %tmp99 = icmp eq void (i8*, i32)* %progress_arg145, null ; [#uses=1] + %tmp100 = and i1 %tmp98, %tmp99 ; [#uses=1] + br i1 %tmp100, label %endif103, label %if102 + +if102: ; preds = %postinvoke92 + invoke fastcc void %progress_arg145(i8* %progress_arg144, i32 %tmp96) + to label %endif103 unwind label %landingpad + +endif103: ; preds = %if102, %postinvoke92 + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp110) + to label %postinvoke111 unwind label %landingpad + +postinvoke111: ; preds = %endif103 + %tmp115 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp8 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl116" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp115, i32 0, i32 10 ; [#uses=1] + %this.timeout118 = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl116", align 4 ; [#uses=1] + invoke fastcc void %this.timeout118(%tango.time.Time.Time* noalias nocapture sret %.rettmp119, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke120 unwind label %landingpad + +postinvoke120: ; preds = %postinvoke111 + %.rettmp119.0 = getelementptr %tango.time.Time.Time* %.rettmp119, i32 0, i32 0 ; [#uses=1] + %tmp181 = load i64* %.rettmp119.0, align 8 ; [#uses=1] + %tmp1.i = getelementptr %tango.time.Time.Time* %.rettmp110, i32 0, i32 0 ; [#uses=1] + %tmp3.i = load i64* %tmp1.i, align 8 ; [#uses=1] + br label %whilecond + +if125: ; preds = %postinvoke66, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit, %postinvoke18 + %.newclass_gc_alloc128 = invoke noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) + to label %postinvoke127 unwind label %landingpad ; [#uses=6] + +postinvoke127: ; preds = %if125 + %vtbl130 = bitcast i8* %.newclass_gc_alloc128 to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl130 + %monitor131 = getelementptr i8* %.newclass_gc_alloc128, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor131 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp132 = getelementptr i8* %.newclass_gc_alloc128, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp132, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc128, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str162, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc128 to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i154 = invoke fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str161, i32 0, i32 0) }, %object.Exception* null) + to label %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit unwind label %landingpad ; <%object.Exception*> [#uses=0] + +_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit: ; preds = %postinvoke127 + %tmp138 = bitcast i8* %.newclass_gc_alloc128 to %object.Object* ; <%object.Object*> [#uses=1] + invoke void @_d_throw_exception(%object.Object* %tmp138) + to label %postinvoke139 unwind label %landingpad + +postinvoke139: ; preds = %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit + unreachable + +landingpad: ; preds = %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit, %postinvoke127, %if125, %postinvoke111, %endif103, %if102, %endif76, %postinvoke59, %endif, %postinvoke46, %postinvoke37, %postinvoke35, %postinvoke26, %whilebody, %whilecond, %postinvoke, %entry + %8 = call i8* @llvm.eh.exception() ; [#uses=2] + %9 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %8, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %.tmp = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp) + call void @_d_eh_resume_unwind(i8* %8) + unreachable +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection10sendStreamMFC5tango3net13SocketConduit13SocketConduitC5tango2io5model8IConduit11InputStreamDFkZvZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data_arg, %tango.io.model.IConduit.InputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg) { +entry: + %tv.i = alloca %tango.net.Socket.timeval, align 8 ; <%tango.net.Socket.timeval*> [#uses=2] + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp11 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %buf = alloca [8192 x i8], align 1 ; <[8192 x i8]*> [#uses=2] + %.rettmp18 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp46 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp123 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %.rettmp132 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %progress_arg157 = extractvalue %"void delegate(uint pos)" %progress_arg, 0 ; [#uses=2] + %progress_arg158 = extractvalue %"void delegate(uint pos)" %progress_arg, 1 ; [#uses=2] + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net6Socket9SocketSet7__ClassZ) ; [#uses=8] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.SocketSet* ; <%tango.net.Socket.SocketSet*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.Socket.SocketSet.__vtbl** ; <%tango.net.Socket.SocketSet.__vtbl**> [#uses=3] + store %tango.net.Socket.SocketSet.__vtbl* @_D5tango3net6Socket9SocketSet6__vtblZ, %tango.net.Socket.SocketSet.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (i32* getelementptr (%tango.net.Socket.SocketSet* bitcast (%24* @_D5tango3net6Socket9SocketSet6__initZ to %tango.net.Socket.SocketSet*), i32 0, i32 2) to i8*), i32 16, i32 1) + %1 = bitcast i8* %tmp to i32* ; [#uses=2] + store i32 128, i32* %1 + %tmp9.i.i = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %2 = bitcast i8* %tmp9.i.i to i8** ; [#uses=1] + %.gc_mem.i.i = call noalias i8* @_d_newarrayT(%object.TypeInfo* @_D11TypeInfo_Ag6__initZ, i32 128) ; [#uses=1] + store i8* %.gc_mem.i.i, i8** %2 + %tmp14.i.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %3 = bitcast i8* %tmp14.i.i to i32* ; [#uses=1] + %tmp17.i.i = load i32* %1 ; [#uses=1] + %tmp18.i.i = shl i32 %tmp17.i.i, 3 ; [#uses=1] + store i32 %tmp18.i.i, i32* %3 + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp) + to label %postinvoke unwind label %landingpad + +postinvoke: ; preds = %entry + %tmp8 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp9 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp8 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp9, i32 0, i32 10 ; [#uses=1] + %this.timeout = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl", align 4 ; [#uses=1] + invoke fastcc void %this.timeout(%tango.time.Time.Time* noalias nocapture sret %.rettmp11, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke12 unwind label %landingpad + +postinvoke12: ; preds = %postinvoke + %.rettmp11.0 = getelementptr %tango.time.Time.Time* %.rettmp11, i32 0, i32 0 ; [#uses=1] + %tmp196 = load i64* %.rettmp11.0, align 8 ; [#uses=1] + %tmp1.i175 = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp3.i177 = load i64* %tmp1.i175, align 8 ; [#uses=1] + %tmp5.i179 = add i64 %tmp3.i177, %tmp196 ; [#uses=1] + %tmp16 = getelementptr [8192 x i8]* %buf, i32 0, i32 0 ; [#uses=2] + call void @llvm.memset.i32(i8* %tmp16, i8 0, i32 8192, i32 1) + br label %whilecond + +whilecond: ; preds = %postinvoke133, %endif112, %postinvoke12 + %end_time.0.0 = phi i64 [ %tmp5.i179, %postinvoke12 ], [ %end_time.0.0, %endif112 ], [ %tmp5.i171, %postinvoke133 ] ; [#uses=2] + %buf_pos.1 = phi i32 [ 0, %postinvoke12 ], [ %tmp102, %postinvoke133 ], [ %tmp102, %endif112 ] ; [#uses=2] + %buf_size.1 = phi i32 [ 0, %postinvoke12 ], [ %buf_size.0, %postinvoke133 ], [ %buf_size.0, %endif112 ] ; [#uses=2] + %pos.0 = phi i32 [ 0, %postinvoke12 ], [ %tmp105, %postinvoke133 ], [ %tmp105, %endif112 ] ; [#uses=1] + %completed.2 = phi i1 [ false, %postinvoke12 ], [ %completed.1, %postinvoke133 ], [ %completed.1, %endif112 ] ; [#uses=7] + br i1 %completed.2, label %endwhile, label %andand + +whilebody: ; preds = %postinvoke19 + %tmp25 = load %tango.net.Socket.SocketSet.__vtbl** %vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=1] + %"set.reset@vtbl" = getelementptr %tango.net.Socket.SocketSet.__vtbl* %tmp25, i32 0, i32 10 ; [#uses=1] + %set.reset = load void (%tango.net.Socket.SocketSet*)** %"set.reset@vtbl", align 4 ; [#uses=1] + invoke fastcc void %set.reset(%tango.net.Socket.SocketSet* %.newclass_gc) + to label %postinvoke27 unwind label %landingpad + +andand: ; preds = %whilecond + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp18) + to label %postinvoke19 unwind label %landingpad + +postinvoke19: ; preds = %andand + %tmp1.i181 = getelementptr %tango.time.Time.Time* %.rettmp18, i32 0, i32 0 ; [#uses=1] + %tmp3.i183 = load i64* %tmp1.i181, align 8 ; [#uses=1] + %tmp5.i185 = icmp slt i64 %tmp3.i183, %end_time.0.0 ; [#uses=1] + br i1 %tmp5.i185, label %whilebody, label %endwhile + +postinvoke27: ; preds = %whilebody + %tmp30 = load %tango.net.Socket.SocketSet.__vtbl** %vtbl ; <%tango.net.Socket.SocketSet.__vtbl*> [#uses=1] + %"set.add@vtbl" = getelementptr %tango.net.Socket.SocketSet.__vtbl* %tmp30, i32 0, i32 12 ; [#uses=1] + %set.add = load void (%tango.net.Socket.SocketSet*, %tango.net.Socket.Socket*)** %"set.add@vtbl", align 4 ; [#uses=1] + %tmp33 = getelementptr %tango.net.SocketConduit.SocketConduit* %data_arg, i32 0, i32 0 ; <%tango.net.SocketConduit.SocketConduit.__vtbl**> [#uses=2] + %tmp34 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp33 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp34, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp37 = invoke fastcc %tango.net.Socket.Socket* %data.socket(%tango.net.SocketConduit.SocketConduit* %data_arg) + to label %postinvoke36 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=1] + +postinvoke36: ; preds = %postinvoke27 + invoke fastcc void %set.add(%tango.net.Socket.SocketSet* %.newclass_gc, %tango.net.Socket.Socket* %tmp37) + to label %postinvoke38 unwind label %landingpad + +postinvoke38: ; preds = %postinvoke36 + %tmp42 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp8 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl43" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp42, i32 0, i32 10 ; [#uses=1] + %this.timeout45 = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl43", align 4 ; [#uses=1] + invoke fastcc void %this.timeout45(%tango.time.Time.Time* noalias nocapture sret %.rettmp46, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke47 unwind label %landingpad + +postinvoke47: ; preds = %postinvoke38 + %.rettmp46.0 = getelementptr %tango.time.Time.Time* %.rettmp46, i32 0, i32 0 ; [#uses=1] + %tmp198 = load i64* %.rettmp46.0, align 8 ; [#uses=2] + %tmp3.i.i.i = sdiv i64 %tmp198, 10000000 ; [#uses=1] + %tmp3.i14.i.i = sdiv i64 %tmp198, 10 ; [#uses=1] + %tmp6.i.i = trunc i64 %tmp3.i14.i.i to i32 ; [#uses=1] + %tmp7.i.i = urem i32 %tmp6.i.i, 1000000 ; [#uses=1] + %tmp7.i = bitcast %tango.net.Socket.timeval* %tv.i to i64* ; [#uses=1] + %4 = shl i64 %tmp3.i.i.i, 32 ; [#uses=1] + %5 = zext i32 %tmp7.i.i to i64 ; [#uses=1] + %6 = or i64 %5, %4 ; [#uses=1] + store i64 %6, i64* %tmp7.i, align 8 + %tmp5.i189190 = invoke fastcc i32 @_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetPS5tango3net6Socket7timevalZi(%tango.net.Socket.SocketSet* null, %tango.net.Socket.SocketSet* %.newclass_gc, %tango.net.Socket.SocketSet* null, %tango.net.Socket.timeval* %tv.i) + to label %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit unwind label %landingpad ; [#uses=1] + +_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit: ; preds = %postinvoke47 + switch i32 %tmp5.i189190, label %endif [ + i32 -1, label %endwhile + i32 0, label %endwhile + ] + +endif: ; preds = %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit + %tmp57 = icmp eq i32 %buf_size.1, %buf_pos.1 ; [#uses=1] + br i1 %tmp57, label %if58, label %endif59 + +if58: ; preds = %endif + %tmp61 = bitcast %tango.io.model.IConduit.InputStream* %stream_arg to i8* ; [#uses=1] + %tmp62 = call %object.Object* @_d_toObject(i8* %tmp61) nounwind readonly ; <%object.Object*> [#uses=1] + %tmp64 = getelementptr %tango.io.model.IConduit.InputStream* %stream_arg, i32 0, i32 0 ; <%tango.io.model.IConduit.InputStream.__vtbl**> [#uses=1] + %tmp65 = load %tango.io.model.IConduit.InputStream.__vtbl** %tmp64 ; <%tango.io.model.IConduit.InputStream.__vtbl*> [#uses=1] + %"stream.read@vtbl" = getelementptr %tango.io.model.IConduit.InputStream.__vtbl* %tmp65, i32 0, i32 5 ; [#uses=1] + %stream.read = load i32 (%tango.io.model.IConduit.InputStream*, %"byte[]")** %"stream.read@vtbl", align 4 ; [#uses=1] + %tmp67 = bitcast %object.Object* %tmp62 to %tango.io.model.IConduit.InputStream* ; <%tango.io.model.IConduit.InputStream*> [#uses=1] + %tmp69 = insertvalue %"byte[]" { i32 8192, i8* undef }, i8* %tmp16, 1 ; <%"byte[]"> [#uses=1] + %tmp71 = invoke fastcc i32 %stream.read(%tango.io.model.IConduit.InputStream* %tmp67, %"byte[]" %tmp69) + to label %postinvoke70 unwind label %landingpad ; [#uses=2] + +postinvoke70: ; preds = %if58 + %tmp72 = icmp eq i32 %tmp71, -1 ; [#uses=2] + %buf_size.2 = select i1 %tmp72, i32 0, i32 %tmp71 ; [#uses=1] + %completed.0 = or i1 %tmp72, %completed.2 ; [#uses=1] + br label %endif59 + +endif59: ; preds = %postinvoke70, %endif + %buf_pos.0 = phi i32 [ 0, %postinvoke70 ], [ %buf_pos.1, %endif ] ; [#uses=3] + %buf_size.0 = phi i32 [ %buf_size.2, %postinvoke70 ], [ %buf_size.1, %endif ] ; [#uses=3] + %completed.1 = phi i1 [ %completed.0, %postinvoke70 ], [ %completed.2, %endif ] ; [#uses=3] + %tmp77 = load %tango.net.SocketConduit.SocketConduit.__vtbl** %tmp33 ; <%tango.net.SocketConduit.SocketConduit.__vtbl*> [#uses=1] + %"data.socket@vtbl78" = getelementptr %tango.net.SocketConduit.SocketConduit.__vtbl* %tmp77, i32 0, i32 14 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)**> [#uses=1] + %data.socket80 = load %tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)** %"data.socket@vtbl78", align 4 ; <%tango.net.Socket.Socket* (%tango.net.SocketConduit.SocketConduit*)*> [#uses=1] + %tmp82 = invoke fastcc %tango.net.Socket.Socket* %data.socket80(%tango.net.SocketConduit.SocketConduit* %data_arg) + to label %postinvoke81 unwind label %landingpad ; <%tango.net.Socket.Socket*> [#uses=2] + +postinvoke81: ; preds = %endif59 + %tmp83 = getelementptr %tango.net.Socket.Socket* %tmp82, i32 0, i32 0 ; <%tango.net.Socket.Socket.__vtbl**> [#uses=1] + %tmp84 = load %tango.net.Socket.Socket.__vtbl** %tmp83 ; <%tango.net.Socket.Socket.__vtbl*> [#uses=1] + %"data.socket().send@vtbl" = getelementptr %tango.net.Socket.Socket.__vtbl* %tmp84, i32 0, i32 25 ; [#uses=1] + %"data.socket().send" = load i32 (%tango.net.Socket.Socket*, %"byte[]", i32)** %"data.socket().send@vtbl", align 4 ; [#uses=1] + %tmp89 = getelementptr [8192 x i8]* %buf, i32 0, i32 %buf_pos.0 ; [#uses=1] + %tmp90 = sub i32 %buf_size.0, %buf_pos.0 ; [#uses=1] + %tmp91 = insertvalue %"byte[]" undef, i32 %tmp90, 0 ; <%"byte[]"> [#uses=1] + %tmp92 = insertvalue %"byte[]" %tmp91, i8* %tmp89, 1 ; <%"byte[]"> [#uses=1] + %tmp94 = invoke fastcc i32 %"data.socket().send"(%tango.net.Socket.Socket* %tmp82, %"byte[]" %tmp92, i32 0) + to label %postinvoke93 unwind label %landingpad ; [#uses=4] + +postinvoke93: ; preds = %postinvoke81 + %tmp96 = icmp eq i32 %tmp94, -1 ; [#uses=1] + br i1 %tmp96, label %endwhile, label %endif98 + +endif98: ; preds = %postinvoke93 + %tmp102 = add i32 %buf_pos.0, %tmp94 ; [#uses=2] + %tmp105 = add i32 %pos.0, %tmp94 ; [#uses=3] + %tmp107 = icmp eq i8* %progress_arg157, null ; [#uses=1] + %tmp108 = icmp eq void (i8*, i32)* %progress_arg158, null ; [#uses=1] + %tmp109 = and i1 %tmp107, %tmp108 ; [#uses=1] + br i1 %tmp109, label %endif112, label %if111 + +if111: ; preds = %endif98 + invoke fastcc void %progress_arg158(i8* %progress_arg157, i32 %tmp105) + to label %endif112 unwind label %landingpad + +endif112: ; preds = %if111, %endif98 + %tmp120 = icmp eq i32 %tmp94, 0 ; [#uses=1] + br i1 %tmp120, label %whilecond, label %if121 + +if121: ; preds = %endif112 + invoke fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret %.rettmp123) + to label %postinvoke124 unwind label %landingpad + +postinvoke124: ; preds = %if121 + %tmp128 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp8 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.timeout@vtbl129" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp128, i32 0, i32 10 ; [#uses=1] + %this.timeout131 = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.timeout@vtbl129", align 4 ; [#uses=1] + invoke fastcc void %this.timeout131(%tango.time.Time.Time* noalias nocapture sret %.rettmp132, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + to label %postinvoke133 unwind label %landingpad + +postinvoke133: ; preds = %postinvoke124 + %.rettmp132.0 = getelementptr %tango.time.Time.Time* %.rettmp132, i32 0, i32 0 ; [#uses=1] + %tmp194 = load i64* %.rettmp132.0, align 8 ; [#uses=1] + %tmp1.i = getelementptr %tango.time.Time.Time* %.rettmp123, i32 0, i32 0 ; [#uses=1] + %tmp3.i = load i64* %tmp1.i, align 8 ; [#uses=1] + %tmp5.i171 = add i64 %tmp3.i, %tmp194 ; [#uses=1] + br label %whilecond + +endwhile: ; preds = %postinvoke93, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit, %postinvoke19, %whilecond + %completed.3 = phi i1 [ %completed.2, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit ], [ %completed.1, %postinvoke93 ], [ %completed.2, %postinvoke19 ], [ %completed.2, %whilecond ], [ %completed.2, %_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetS5tango4time4Time8TimeSpanZi.exit ] ; [#uses=1] + br i1 %completed.3, label %finally, label %if138 + +if138: ; preds = %endwhile + %.newclass_gc_alloc141 = invoke noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) + to label %postinvoke140 unwind label %landingpad ; [#uses=6] + +postinvoke140: ; preds = %if138 + %vtbl143 = bitcast i8* %.newclass_gc_alloc141 to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl143 + %monitor144 = getelementptr i8* %.newclass_gc_alloc141, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor144 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp145 = getelementptr i8* %.newclass_gc_alloc141, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp145, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc141, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str164, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc141 to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i167 = invoke fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str163, i32 0, i32 0) }, %object.Exception* null) + to label %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit unwind label %landingpad ; <%object.Exception*> [#uses=0] + +_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit: ; preds = %postinvoke140 + %tmp151 = bitcast i8* %.newclass_gc_alloc141 to %object.Object* ; <%object.Object*> [#uses=1] + invoke void @_d_throw_exception(%object.Object* %tmp151) + to label %postinvoke152 unwind label %landingpad + +postinvoke152: ; preds = %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit + unreachable + +finally: ; preds = %endwhile + %.tmp154 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp154) + ret void + +landingpad: ; preds = %_D5tango3net3ftp9FtpClient12FtpException5_ctorMFAaG3aZC5tango3net3ftp9FtpClient12FtpException.exit, %postinvoke140, %if138, %postinvoke124, %if121, %if111, %postinvoke81, %endif59, %if58, %postinvoke47, %postinvoke38, %postinvoke36, %postinvoke27, %andand, %whilebody, %postinvoke, %entry + %8 = call i8* @llvm.eh.exception() ; [#uses=2] + %9 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %8, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %.tmp = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp) + call void @_d_eh_resume_unwind(i8* %8) + unreachable +} + +define fastcc %"FtpFileInfo[]" @_D5tango3net3ftp9FtpClient13FTPConnection15sendListCommandMFAaZAS5tango3net3ftp9FtpClient11FtpFileInfo(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %.frame.i = alloca %nest.splitLines, align 8 ; <%nest.splitLines*> [#uses=5] + %.rettmp.i = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %.rettmp8.i = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %__arrayArg148 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpFileInfo, align 8 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=10] + %path_arg169 = extractvalue %"byte[]" %path_arg, 0 ; [#uses=2] + %tmp1 = icmp eq i32 %path_arg169, 0 ; [#uses=1] + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=4] + %tmp4 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp4, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=2] + br i1 %tmp1, label %else, label %if + +if: ; preds = %entry + %path_arg170 = extractvalue %"byte[]" %path_arg, 1 ; [#uses=1] + %tmp6 = getelementptr [1 x %"byte[]"]* %__arrayArg148, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + %insert166 = insertvalue %"byte[]" undef, i32 %path_arg169, 0 ; <%"byte[]"> [#uses=1] + %insert168 = insertvalue %"byte[]" %insert166, i8* %path_arg170, 1 ; <%"byte[]"> [#uses=1] + store %"byte[]" %insert168, %"byte[]"* %tmp6, align 8 + %tmp9 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp6, 1 ; <%"char[][]"> [#uses=1] + %tmp10 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str165, i32 0, i32 0) }, %"char[][]" %tmp9) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + br label %endif + +else: ; preds = %entry + %tmp17 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str166, i32 0, i32 0) }, %"char[][]" zeroinitializer) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=1] + br label %endif + +endif: ; preds = %else, %if + %data.0 = phi %tango.net.SocketConduit.SocketConduit* [ %tmp10, %if ], [ %tmp17, %else ] ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango2io6device5Array5Array7__ClassZ) ; [#uses=9] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Array.Array* ; <%tango.io.device.Array.Array*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Array.Array.__vtbl** ; <%tango.io.device.Array.Array.__vtbl**> [#uses=2] + store %tango.io.device.Array.Array.__vtbl* @_D5tango2io6device5Array5Array6__vtblZ, %tango.io.device.Array.Array.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp18 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp18, i8* bitcast (%4** getelementptr (%tango.io.device.Array.Array* bitcast (%26* @_D5tango2io6device5Array5Array6__initZ to %tango.io.device.Array.Array*), i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp2.i = load %tango.io.device.Array.Array.__vtbl** %vtbl ; <%tango.io.device.Array.Array.__vtbl*> [#uses=1] + %"this.assign@vtbl.i" = getelementptr %tango.io.device.Array.Array.__vtbl* %tmp2.i, i32 0, i32 15 ; <%tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)**> [#uses=1] + %this.assign.i = load %tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)** %"this.assign@vtbl.i", align 4 ; <%tango.io.device.Array.Array* (%tango.io.device.Array.Array*, %"byte[]", i32)*> [#uses=1] + %.gc_mem.i = call noalias i8* @_d_newarrayT(%object.TypeInfo* @_D11TypeInfo_Ah6__initZ, i32 256) ; [#uses=1] + %tmp5.i = insertvalue %"byte[]" undef, i32 256, 0 ; <%"byte[]"> [#uses=1] + %tmp6.i = insertvalue %"byte[]" %tmp5.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp7.i = call fastcc %tango.io.device.Array.Array* %this.assign.i(%tango.io.device.Array.Array* %.newclass_gc, %"byte[]" %tmp6.i, i32 0) ; <%tango.io.device.Array.Array*> [#uses=0] + %tmp9.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + %1 = bitcast i8* %tmp9.i to i32* ; [#uses=1] + store i32 65536, i32* %1 + %tmp25 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readStream@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp25, i32 0, i32 47 ; [#uses=1] + %this.readStream = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)")** %"this.readStream@vtbl", align 4 ; [#uses=1] + %tmp29 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %tmp30 = bitcast i8* %tmp29 to %tango.io.model.IConduit.OutputStream* ; <%tango.io.model.IConduit.OutputStream*> [#uses=1] + call fastcc void %this.readStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data.0, %tango.io.model.IConduit.OutputStream* %tmp30, %"void delegate(uint pos)" zeroinitializer) + %tmp33 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp33, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %data.0) + %tmp2.i171 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %2 = bitcast i8* %tmp2.i171 to i8** ; [#uses=1] + %.ptr.i = load i8** %2 ; [#uses=1] + %tmp4.i = getelementptr i8* %.newclass_gc_alloc, i32 24 ; [#uses=1] + %3 = bitcast i8* %tmp4.i to i32* ; [#uses=1] + %tmp6.i172 = getelementptr i8* %.newclass_gc_alloc, i32 28 ; [#uses=1] + %4 = bitcast i8* %tmp6.i172 to i32* ; [#uses=1] + %tmp7.i173 = load i32* %3 ; [#uses=2] + %tmp8.i = load i32* %4 ; [#uses=1] + %tmp9.i174 = getelementptr i8* %.ptr.i, i32 %tmp7.i173 ; [#uses=2] + %tmp10.i = sub i32 %tmp8.i, %tmp7.i173 ; [#uses=2] + %count.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 0 ; [#uses=3] + %result.i = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1 ; <%"char[][]"*> [#uses=1] + store i32 0, i32* %count.i, align 8 + %5 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp10.i, i32* %5, align 8 + %.sret_arg10.1.i.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp9.i174, i8** %.sret_arg10.1.i.i, align 4 + %tmp1.i186 = bitcast %nest.splitLines* %.frame.i to i8* ; [#uses=2] + %tmp2.i187 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1.i186, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func.i = insertvalue %"int delegate(ref char[])" %tmp2.i187, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody41MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp3.i = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp.i, %"int delegate(ref char[])" %.func.i) ; [#uses=0] + %tmp4.i188 = load i32* %count.i, align 8 ; [#uses=2] + %.gc_mem.i189 = call noalias i8* @_d_newarrayT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D12TypeInfo_AAa6__initZ to %object.TypeInfo*), i32 %tmp4.i188) ; [#uses=1] + %.gc_mem5.i = bitcast i8* %.gc_mem.i189 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp6.i190 = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp4.i188, i32* %tmp6.i190 + %tmp7.i191 = getelementptr %nest.splitLines* %.frame.i, i32 0, i32 1, i32 1 ; <%"byte[]"**> [#uses=1] + store %"byte[]"* %.gc_mem5.i, %"byte[]"** %tmp7.i191 + store i32 0, i32* %count.i, align 8 + %6 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp10.i, i32* %6, align 8 + %.sret_arg10.1.i17.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp9.i174, i8** %.sret_arg10.1.i17.i, align 4 + %tmp11.i192 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1.i186, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func12.i = insertvalue %"int delegate(ref char[])" %tmp11.i192, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody42MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp13.i = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8.i, %"int delegate(ref char[])" %.func12.i) ; [#uses=0] + %tmp14.i = load %"char[][]"* %result.i ; <%"char[][]"> [#uses=2] + %tmp41159 = extractvalue %"char[][]" %tmp14.i, 0 ; [#uses=3] + %tmp41160 = extractvalue %"char[][]" %tmp14.i, 1 ; <%"byte[]"*> [#uses=3] + br label %foreachcond + +foreachcond: ; preds = %foreachnext, %endif + %dir.1.1 = phi %tango.net.ftp.FtpClient.FtpFileInfo* [ null, %endif ], [ %dir.1.0, %foreachnext ] ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=5] + %dir.0.1 = phi i32 [ 0, %endif ], [ %dir.0.0, %foreachnext ] ; [#uses=15] + %foreachkey.0 = phi i32 [ 0, %endif ], [ %tmp99, %foreachnext ] ; [#uses=3] + %tmp51 = icmp ult i32 %foreachkey.0, %tmp41159 ; [#uses=1] + br i1 %tmp51, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp53 = getelementptr %"byte[]"* %tmp41160, i32 %foreachkey.0 ; <%"byte[]"*> [#uses=1] + %tmp54 = load %"byte[]"* %tmp53 ; <%"byte[]"> [#uses=2] + %tmp54157 = extractvalue %"byte[]" %tmp54, 0 ; [#uses=7] + %tmp54158 = extractvalue %"byte[]" %tmp54, 1 ; [#uses=4] + %tmp57 = icmp eq i32 %tmp54157, 0 ; [#uses=1] + br i1 %tmp57, label %foreachnext, label %endif59 + +endif59: ; preds = %foreachbody + %tmp2.i.i = getelementptr i8* %tmp54158, i32 -1 ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %endif59 + %len.0.i.i = phi i32 [ %tmp54157, %endif59 ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %endif59 ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, 32 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp16.i.i = ptrtoint i8* %tmp54158 to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, %tmp16.i.i ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit: ; preds = %if.i.i, %forcond.i.i + %tmp1318.i = phi i32 [ %tmp17.i.i, %if.i.i ], [ %tmp54157, %forcond.i.i ] ; [#uses=1] + %tmp2.i175 = icmp eq i32 %tmp54157, -1 ; [#uses=1] + br i1 %tmp2.i175, label %whilecond.i, label %if.i + +if.i: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + br label %whilecond.i + +whilecond.i: ; preds = %whilebody.i, %if.i, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %start.0.i = phi i32 [ %tmp54157, %if.i ], [ %tmp8.i177, %whilebody.i ], [ -1, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit ] ; [#uses=2] + %tmp6.i176 = icmp eq i32 %start.0.i, 0 ; [#uses=1] + br i1 %tmp6.i176, label %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit, label %whilebody.i + +whilebody.i: ; preds = %whilecond.i + %tmp8.i177 = add i32 %start.0.i, -1 ; [#uses=3] + %tmp10.i178 = getelementptr i8* %tmp54158, i32 %tmp8.i177 ; [#uses=1] + %tmp11.i179 = load i8* %tmp10.i178 ; [#uses=1] + %tmp15.i = icmp eq i8 %tmp11.i179, 32 ; [#uses=1] + br i1 %tmp15.i, label %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit, label %whilecond.i + +_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit: ; preds = %whilebody.i, %whilecond.i + %tmp64180 = phi i32 [ %tmp8.i177, %whilebody.i ], [ %tmp54157, %whilecond.i ] ; [#uses=1] + %tmp65 = icmp eq i32 %tmp1318.i, %tmp64180 ; [#uses=1] + br i1 %tmp65, label %foreachnext, label %endif67 + +endif67: ; preds = %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit + %tmp71 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parseListLine@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp71, i32 0, i32 50 ; [#uses=1] + %this.parseListLine = load void (%tango.net.ftp.FtpClient.FtpFileInfo*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.parseListLine@vtbl", align 4 ; [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %tmp54157, 0 ; <%"byte[]"> [#uses=1] + %insert148 = insertvalue %"byte[]" %insert, i8* %tmp54158, 1 ; <%"byte[]"> [#uses=1] + invoke fastcc void %this.parseListLine(%tango.net.ftp.FtpClient.FtpFileInfo* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %insert148) + to label %postinvoke74 unwind label %landingpad + +postinvoke74: ; preds = %endif67 + %.rettmp141.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + %tmp142 = load i32* %.rettmp141.0, align 8 ; [#uses=2] + %.rettmp141.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 0, i32 1 ; [#uses=1] + %tmp143 = load i8** %.rettmp141.1, align 4 ; [#uses=1] + %.rettmp.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 1 ; [#uses=1] + %tmp124 = load i32* %.rettmp.1, align 8 ; [#uses=1] + %.rettmp.2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 2 ; [#uses=1] + %tmp125 = load i64* %.rettmp.2, align 4 ; [#uses=1] + %.rettmp.3.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 3, i32 0 ; [#uses=1] + %tmp139 = load i64* %.rettmp.3.0, align 4 ; [#uses=1] + %.rettmp.4.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 4, i32 0 ; [#uses=1] + %tmp137 = load i64* %.rettmp.4.0, align 4 ; [#uses=1] + %.rettmp.5.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 5, i32 0 ; [#uses=1] + %tmp133 = load i32* %.rettmp.5.0, align 4 ; [#uses=1] + %.rettmp.5.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 5, i32 1 ; [#uses=1] + %tmp134 = load i8** %.rettmp.5.1, align 4 ; [#uses=1] + %.rettmp.6 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.rettmp, i32 0, i32 6 ; [#uses=1] + %tmp132 = load i8** %.rettmp.6, align 4 ; [#uses=1] + %tmp80 = icmp eq i32 %tmp142, 0 ; [#uses=1] + br i1 %tmp80, label %foreachnext, label %if81 + +if81: ; preds = %postinvoke74 + %tmp85 = add i32 %dir.0.1, 1 ; [#uses=2] + %tmp90 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %dir.1.1 to i8* ; [#uses=1] + %.gc_mem = invoke i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D48TypeInfo_AS5tango3net3ftp9FtpClient11FtpFileInfo6__initZ to %object.TypeInfo*), i32 %tmp85, i32 %dir.0.1, i8* %tmp90) + to label %postinvoke91 unwind label %landingpad ; [#uses=1] + +postinvoke91: ; preds = %if81 + %.gc_mem92 = bitcast i8* %.gc_mem to %tango.net.ftp.FtpClient.FtpFileInfo* ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=10] + %7 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 0, i32 0 ; [#uses=1] + store i32 %tmp142, i32* %7 + %tmp93144.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 0, i32 1 ; [#uses=1] + store i8* %tmp143, i8** %tmp93144.1, align 4 + %tmp93.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 1 ; [#uses=1] + store i32 %tmp124, i32* %tmp93.1, align 8 + %tmp93.2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 2 ; [#uses=1] + store i64 %tmp125, i64* %tmp93.2, align 4 + %tmp93.3.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 3, i32 0 ; [#uses=1] + store i64 %tmp139, i64* %tmp93.3.0, align 4 + %tmp93.4.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 4, i32 0 ; [#uses=1] + store i64 %tmp137, i64* %tmp93.4.0, align 4 + %tmp93.5.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 5, i32 0 ; [#uses=1] + store i32 %tmp133, i32* %tmp93.5.0, align 4 + %tmp93.5.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 5, i32 1 ; [#uses=1] + store i8* %tmp134, i8** %tmp93.5.1, align 4 + %tmp93.6 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.gc_mem92, i32 %dir.0.1, i32 6 ; [#uses=1] + store i8* %tmp132, i8** %tmp93.6, align 4 + br label %foreachnext + +foreachnext: ; preds = %postinvoke91, %postinvoke74, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit, %foreachbody + %dir.1.0 = phi %tango.net.ftp.FtpClient.FtpFileInfo* [ %dir.1.1, %foreachbody ], [ %dir.1.1, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit ], [ %.gc_mem92, %postinvoke91 ], [ %dir.1.1, %postinvoke74 ] ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=1] + %dir.0.0 = phi i32 [ %dir.0.1, %foreachbody ], [ %dir.0.1, %_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk.exit ], [ %tmp85, %postinvoke91 ], [ %dir.0.1, %postinvoke74 ] ; [#uses=1] + %tmp99 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + %insert162 = insertvalue %"FtpFileInfo[]" undef, i32 %dir.0.1, 0 ; <%"FtpFileInfo[]"> [#uses=1] + %insert164 = insertvalue %"FtpFileInfo[]" %insert162, %tango.net.ftp.FtpClient.FtpFileInfo* %dir.1.1, 1 ; <%"FtpFileInfo[]"> [#uses=1] + %.tmp105 = bitcast %"byte[]"* %tmp41160 to i8* ; [#uses=1] + call void @_d_delarray(i32 %tmp41159, i8* %.tmp105) + ret %"FtpFileInfo[]" %insert164 + +landingpad: ; preds = %if81, %endif67 + %8 = call i8* @llvm.eh.exception() ; [#uses=2] + %9 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %8, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %.tmp = bitcast %"byte[]"* %tmp41160 to i8* ; [#uses=1] + call void @_d_delarray(i32 %tmp41159, i8* %.tmp) + call void @_d_eh_resume_unwind(i8* %8) + unreachable +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo(%tango.net.ftp.FtpClient.FtpFileInfo* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* nocapture %.this_arg, %"byte[]" %line_arg) { +entry: + %info = alloca %tango.net.ftp.FtpClient.FtpFileInfo, align 8 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=22] + %aatmpkeystorage = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage114 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage141 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %line_arg830 = extractvalue %"byte[]" %line_arg, 0 ; [#uses=21] + %line_arg831 = extractvalue %"byte[]" %line_arg, 1 ; [#uses=28] + %tmp2 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %info to i8* ; [#uses=6] + call void @llvm.memcpy.i32(i8* %tmp2, i8* bitcast (%tango.net.ftp.FtpClient.FtpFileInfo* @_D5tango3net3ftp9FtpClient11FtpFileInfo6__initZ to i8*), i32 48, i32 4) + %tmp5 = load i8* %line_arg831 ; [#uses=3] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %entry + %len.0.i.i = phi i32 [ 10, %entry ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ getelementptr ([11 x i8]* @.str167, i32 0, i32 -1), %entry ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, %tmp5 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, ptrtoint ([11 x i8]* @.str167 to i32) ; [#uses=1] + %phitmp640 = icmp eq i32 %tmp17.i.i, 10 ; [#uses=1] + %phitmp641 = zext i1 %phitmp640 to i32 ; [#uses=1] + br label %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + +_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit: ; preds = %if.i.i, %forcond.i.i + %tmp39.i = phi i32 [ %phitmp641, %if.i.i ], [ 1, %forcond.i.i ] ; [#uses=1] + switch i32 %tmp39.i, label %default223 [ + i32 1, label %case + i32 0, label %case145 + ] + +case: ; preds = %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + %tmp9 = icmp ult i32 %line_arg830, 20 ; [#uses=1] + br i1 %tmp9, label %if, label %endif + +if: ; preds = %case + %tmp10 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp10, i8* %tmp2, i32 48, i32 1) + ret void + +endif: ; preds = %case + switch i8 %tmp5, label %else29 [ + i8 100, label %if18 + i8 108, label %if27 + ] + +if18: ; preds = %endif + %tmp20 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 4, i32* %tmp20, align 8 + br label %endif19 + +if27: ; preds = %endif + %tmp30 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 5, i32* %tmp30, align 8 + br label %endif19 + +else29: ; preds = %endif + %tmp36 = icmp eq i8 %tmp5, 45 ; [#uses=1] + %tmp40 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=2] + br i1 %tmp36, label %if37, label %else39 + +if37: ; preds = %else29 + store i32 1, i32* %tmp40, align 8 + br label %endif19 + +else39: ; preds = %else29 + store i32 0, i32* %tmp40, align 8 + br label %endif19 + +endif19: ; preds = %else39, %if37, %if27, %if18 + %tmp42 = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_StaticArray* @_D12TypeInfo_G4a6__initZ to %object.TypeInfo*), %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str168, i32 0, i32 0) }) ; <%"byte[]"> [#uses=2] + %tmp42834 = extractvalue %"byte[]" %tmp42, 0 ; [#uses=1] + %tmp42835 = extractvalue %"byte[]" %tmp42, 1 ; [#uses=10] + br label %forcond.i + +forcond.i: ; preds = %forinc.i, %endif19 + %storemerge.i = phi i32 [ %tmp106.i, %forinc.i ], [ 1, %endif19 ] ; [#uses=1] + %tmp77.i286 = phi i32 [ %tmp106.i, %forinc.i ], [ 1, %endif19 ] ; [#uses=2] + %tmp10.i = icmp ugt i32 %tmp77.i286, 3 ; [#uses=1] + br i1 %tmp10.i, label %forcond.i295, label %forbody.i + +forbody.i: ; preds = %forcond.i + %tmp16.i = getelementptr i8* %line_arg831, i32 %tmp77.i286 ; [#uses=1] + %tmp17.i = load i8* %tmp16.i ; [#uses=1] + switch i8 %tmp17.i, label %forinc.i [ + i8 114, label %if.i + i8 119, label %if49.i + i8 120, label %if82.i + ] + +if.i: ; preds = %forbody.i + %tmp25.i = getelementptr i8* %tmp42835, i32 1 ; [#uses=2] + %tmp33.i = load i8* %tmp25.i ; [#uses=1] + %tmp35.i = or i8 %tmp33.i, 4 ; [#uses=1] + store i8 %tmp35.i, i8* %tmp25.i + br label %forinc.i + +if49.i: ; preds = %forbody.i + %tmp58.i = getelementptr i8* %tmp42835, i32 1 ; [#uses=2] + %tmp66.i = load i8* %tmp58.i ; [#uses=1] + %tmp68.i = or i8 %tmp66.i, 2 ; [#uses=1] + store i8 %tmp68.i, i8* %tmp58.i + br label %forinc.i + +if82.i: ; preds = %forbody.i + %tmp90.i290 = getelementptr i8* %tmp42835, i32 1 ; [#uses=2] + %tmp98.i = load i8* %tmp90.i290 ; [#uses=1] + %tmp100.i = or i8 %tmp98.i, 1 ; [#uses=1] + store i8 %tmp100.i, i8* %tmp90.i290 + br label %forinc.i + +forinc.i: ; preds = %if82.i, %if49.i, %if.i, %forbody.i + %tmp106.i = add i32 %storemerge.i, 1 ; [#uses=2] + br label %forcond.i + +forcond.i295: ; preds = %forinc.i326, %forcond.i + %storemerge.i292 = phi i32 [ %tmp106.i325, %forinc.i326 ], [ 4, %forcond.i ] ; [#uses=1] + %tmp77.i293 = phi i32 [ %tmp106.i325, %forinc.i326 ], [ 4, %forcond.i ] ; [#uses=2] + %tmp10.i294 = icmp ugt i32 %tmp77.i293, 6 ; [#uses=1] + br i1 %tmp10.i294, label %forcond.i332, label %forbody.i301 + +forbody.i301: ; preds = %forcond.i295 + %tmp16.i298 = getelementptr i8* %line_arg831, i32 %tmp77.i293 ; [#uses=1] + %tmp17.i299 = load i8* %tmp16.i298 ; [#uses=1] + switch i8 %tmp17.i299, label %forinc.i326 [ + i8 114, label %if.i307 + i8 119, label %if49.i315 + i8 120, label %if82.i323 + ] + +if.i307: ; preds = %forbody.i301 + %tmp25.i304 = getelementptr i8* %tmp42835, i32 2 ; [#uses=2] + %tmp33.i305 = load i8* %tmp25.i304 ; [#uses=1] + %tmp35.i306 = or i8 %tmp33.i305, 4 ; [#uses=1] + store i8 %tmp35.i306, i8* %tmp25.i304 + br label %forinc.i326 + +if49.i315: ; preds = %forbody.i301 + %tmp58.i312 = getelementptr i8* %tmp42835, i32 2 ; [#uses=2] + %tmp66.i313 = load i8* %tmp58.i312 ; [#uses=1] + %tmp68.i314 = or i8 %tmp66.i313, 2 ; [#uses=1] + store i8 %tmp68.i314, i8* %tmp58.i312 + br label %forinc.i326 + +if82.i323: ; preds = %forbody.i301 + %tmp90.i320 = getelementptr i8* %tmp42835, i32 2 ; [#uses=2] + %tmp98.i321 = load i8* %tmp90.i320 ; [#uses=1] + %tmp100.i322 = or i8 %tmp98.i321, 1 ; [#uses=1] + store i8 %tmp100.i322, i8* %tmp90.i320 + br label %forinc.i326 + +forinc.i326: ; preds = %if82.i323, %if49.i315, %if.i307, %forbody.i301 + %tmp106.i325 = add i32 %storemerge.i292, 1 ; [#uses=2] + br label %forcond.i295 + +forcond.i332: ; preds = %forinc.i363, %forcond.i295 + %storemerge.i329 = phi i32 [ %tmp106.i362, %forinc.i363 ], [ 7, %forcond.i295 ] ; [#uses=3] + %tmp77.i330 = phi i32 [ %tmp106.i362, %forinc.i363 ], [ 7, %forcond.i295 ] ; [#uses=2] + %tmp10.i331 = icmp ugt i32 %tmp77.i330, 9 ; [#uses=1] + br i1 %tmp10.i331, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo9read_modeMFiZv.exit364, label %forbody.i338 + +forbody.i338: ; preds = %forcond.i332 + %tmp16.i335 = getelementptr i8* %line_arg831, i32 %tmp77.i330 ; [#uses=1] + %tmp17.i336 = load i8* %tmp16.i335 ; [#uses=1] + switch i8 %tmp17.i336, label %forinc.i363 [ + i8 114, label %if.i344 + i8 119, label %if49.i352 + i8 120, label %if82.i360 + ] + +if.i344: ; preds = %forbody.i338 + %tmp25.i341 = getelementptr i8* %tmp42835, i32 3 ; [#uses=2] + %tmp33.i342 = load i8* %tmp25.i341 ; [#uses=1] + %tmp35.i343 = or i8 %tmp33.i342, 4 ; [#uses=1] + store i8 %tmp35.i343, i8* %tmp25.i341 + br label %forinc.i363 + +if49.i352: ; preds = %forbody.i338 + %tmp58.i349 = getelementptr i8* %tmp42835, i32 3 ; [#uses=2] + %tmp66.i350 = load i8* %tmp58.i349 ; [#uses=1] + %tmp68.i351 = or i8 %tmp66.i350, 2 ; [#uses=1] + store i8 %tmp68.i351, i8* %tmp58.i349 + br label %forinc.i363 + +if82.i360: ; preds = %forbody.i338 + %tmp90.i357 = getelementptr i8* %tmp42835, i32 3 ; [#uses=2] + %tmp98.i358 = load i8* %tmp90.i357 ; [#uses=1] + %tmp100.i359 = or i8 %tmp98.i358, 1 ; [#uses=1] + store i8 %tmp100.i359, i8* %tmp90.i357 + br label %forinc.i363 + +forinc.i363: ; preds = %if82.i360, %if49.i352, %if.i344, %forbody.i338 + %tmp106.i362 = add i32 %storemerge.i329, 1 ; [#uses=2] + br label %forcond.i332 + +_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo9read_modeMFiZv.exit364: ; preds = %forcond.i332 + %tmp46 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 6 ; [#uses=1] + %tmp47 = bitcast i8** %tmp46 to %32* ; <%32*> [#uses=3] + store %"byte[]" { i32 9, i8* getelementptr ([10 x i8]* @.str169, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage, align 8 + %tmp48 = bitcast %"byte[]"* %aatmpkeystorage to i8* ; [#uses=1] + %aa.index = call i8* @_aaGet(%32* nocapture %tmp47, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 8, i8* nocapture %tmp48) ; [#uses=1] + %tmp49 = bitcast i8* %aa.index to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %insert837 = insertvalue %"byte[]" undef, i32 %tmp42834, 0 ; <%"byte[]"> [#uses=1] + %insert839 = insertvalue %"byte[]" %insert837, i8* %tmp42835, 1 ; <%"byte[]"> [#uses=1] + store %"byte[]" %insert839, %"byte[]"* %tmp49 + br label %whilecond.i370 + +whilecond.i370: ; preds = %whilebody.i372, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo9read_modeMFiZv.exit364 + %.frame.0.11 = phi i32 [ %storemerge.i329, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo9read_modeMFiZv.exit364 ], [ %tmp18.i371.c, %whilebody.i372 ] ; [#uses=2] + %tmp3.i368 = phi i32 [ %tmp18.i371.c, %whilebody.i372 ], [ %storemerge.i329, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo9read_modeMFiZv.exit364 ] ; [#uses=5] + %tmp4.i369 = icmp ult i32 %tmp3.i368, %line_arg830 ; [#uses=1] + br i1 %tmp4.i369, label %andand.i378, label %whilecond22.i383 + +whilebody.i372: ; preds = %andand.i378 + %tmp18.i371.c = add i32 %tmp3.i368, 1 ; [#uses=2] + br label %whilecond.i370 + +andand.i378: ; preds = %whilecond.i370 + %tmp11.i375 = getelementptr i8* %line_arg831, i32 %tmp3.i368 ; [#uses=1] + %tmp12.i376 = load i8* %tmp11.i375 ; [#uses=1] + %tmp14.i377 = icmp eq i8 %tmp12.i376, 32 ; [#uses=1] + br i1 %tmp14.i377, label %whilebody.i372, label %whilecond22.i383 + +whilecond22.i383: ; preds = %whilebody23.i385, %andand.i378, %whilecond.i370 + %.frame.0.10 = phi i32 [ %.frame.0.11, %andand.i378 ], [ %tmp50.i384, %whilebody23.i385 ], [ %.frame.0.11, %whilecond.i370 ] ; [#uses=2] + %tmp49.i381 = phi i32 [ %tmp3.i368, %andand.i378 ], [ %tmp50.i384, %whilebody23.i385 ], [ %tmp3.i368, %whilecond.i370 ] ; [#uses=5] + %tmp32.i382 = icmp ult i32 %tmp49.i381, %line_arg830 ; [#uses=1] + br i1 %tmp32.i382, label %andand33.i391, label %whilecond54.i396 + +whilebody23.i385: ; preds = %andand33.i391 + %tmp50.i384 = add i32 %tmp49.i381, 1 ; [#uses=2] + br label %whilecond22.i383 + +andand33.i391: ; preds = %whilecond22.i383 + %tmp42.i388 = getelementptr i8* %line_arg831, i32 %tmp49.i381 ; [#uses=1] + %tmp43.i389 = load i8* %tmp42.i388 ; [#uses=1] + %tmp45.i390 = icmp eq i8 %tmp43.i389, 32 ; [#uses=1] + br i1 %tmp45.i390, label %whilecond54.i396, label %whilebody23.i385 + +whilecond54.i396: ; preds = %whilebody55.i401, %andand33.i391, %whilecond22.i383 + %.frame.0.9 = phi i32 [ %.frame.0.10, %andand33.i391 ], [ %tmp82.i400, %whilebody55.i401 ], [ %.frame.0.10, %whilecond22.i383 ] ; [#uses=2] + %tmp81.i394 = phi i32 [ %tmp49.i381, %andand33.i391 ], [ %tmp82.i400, %whilebody55.i401 ], [ %tmp49.i381, %whilecond22.i383 ] ; [#uses=3] + %tmp64.i395 = icmp ult i32 %tmp81.i394, %line_arg830 ; [#uses=1] + br i1 %tmp64.i395, label %andand65.i407, label %whilecond.i716 + +whilebody55.i401: ; preds = %andand65.i407 + %tmp82.i400 = add i32 %tmp81.i394, 1 ; [#uses=2] + br label %whilecond54.i396 + +andand65.i407: ; preds = %whilecond54.i396 + %tmp74.i404 = getelementptr i8* %line_arg831, i32 %tmp81.i394 ; [#uses=1] + %tmp75.i405 = load i8* %tmp74.i404 ; [#uses=1] + %tmp77.i406 = icmp eq i8 %tmp75.i405, 32 ; [#uses=1] + br i1 %tmp77.i406, label %whilebody55.i401, label %whilecond.i716 + +whilecond.i716: ; preds = %whilebody.i717, %andand65.i407, %whilecond54.i396 + %.frame.0.0 = phi i32 [ %tmp18.i.c829, %whilebody.i717 ], [ %.frame.0.9, %whilecond54.i396 ], [ %.frame.0.9, %andand65.i407 ] ; [#uses=7] + %tmp4.i715 = icmp ult i32 %.frame.0.0, %line_arg830 ; [#uses=1] + br i1 %tmp4.i715, label %andand.i721, label %whilecond22.i724 + +whilebody.i717: ; preds = %andand.i721 + %tmp18.i.c829 = add i32 %.frame.0.0, 1 ; [#uses=1] + br label %whilecond.i716 + +andand.i721: ; preds = %whilecond.i716 + %tmp11.i718 = getelementptr i8* %line_arg831, i32 %.frame.0.0 ; [#uses=1] + %tmp12.i719 = load i8* %tmp11.i718 ; [#uses=1] + %tmp14.i720 = icmp eq i8 %tmp12.i719, 32 ; [#uses=1] + br i1 %tmp14.i720, label %whilebody.i717, label %whilecond22.i724 + +whilecond22.i724: ; preds = %whilebody23.i726, %andand.i721, %whilecond.i716 + %.frame.0.1 = phi i32 [ %.frame.0.0, %andand.i721 ], [ %tmp50.i725, %whilebody23.i726 ], [ %.frame.0.0, %whilecond.i716 ] ; [#uses=2] + %tmp49.i722 = phi i32 [ %.frame.0.0, %andand.i721 ], [ %tmp50.i725, %whilebody23.i726 ], [ %.frame.0.0, %whilecond.i716 ] ; [#uses=5] + %tmp32.i723 = icmp ult i32 %tmp49.i722, %line_arg830 ; [#uses=1] + br i1 %tmp32.i723, label %andand33.i731, label %whilecond54.i734 + +whilebody23.i726: ; preds = %andand33.i731 + %tmp50.i725 = add i32 %tmp49.i722, 1 ; [#uses=2] + br label %whilecond22.i724 + +andand33.i731: ; preds = %whilecond22.i724 + %tmp42.i728 = getelementptr i8* %line_arg831, i32 %tmp49.i722 ; [#uses=1] + %tmp43.i729 = load i8* %tmp42.i728 ; [#uses=1] + %tmp45.i730 = icmp eq i8 %tmp43.i729, 32 ; [#uses=1] + br i1 %tmp45.i730, label %whilecond54.i734, label %whilebody23.i726 + +whilecond54.i734: ; preds = %whilebody55.i736, %andand33.i731, %whilecond22.i724 + %.frame.0.2 = phi i32 [ %.frame.0.1, %andand33.i731 ], [ %tmp82.i735, %whilebody55.i736 ], [ %.frame.0.1, %whilecond22.i724 ] ; [#uses=2] + %tmp81.i732 = phi i32 [ %tmp49.i722, %andand33.i731 ], [ %tmp82.i735, %whilebody55.i736 ], [ %tmp49.i722, %whilecond22.i724 ] ; [#uses=3] + %tmp64.i733 = icmp ult i32 %tmp81.i732, %line_arg830 ; [#uses=1] + br i1 %tmp64.i733, label %andand65.i740, label %whilecond.i750 + +whilebody55.i736: ; preds = %andand65.i740 + %tmp82.i735 = add i32 %tmp81.i732, 1 ; [#uses=2] + br label %whilecond54.i734 + +andand65.i740: ; preds = %whilecond54.i734 + %tmp74.i737 = getelementptr i8* %line_arg831, i32 %tmp81.i732 ; [#uses=1] + %tmp75.i738 = load i8* %tmp74.i737 ; [#uses=1] + %tmp77.i739 = icmp eq i8 %tmp75.i738, 32 ; [#uses=1] + br i1 %tmp77.i739, label %whilebody55.i736, label %whilecond.i750 + +whilecond.i750: ; preds = %whilebody.i752, %andand65.i740, %whilecond54.i734 + %.frame.0.3 = phi i32 [ %tmp18.i751.c, %whilebody.i752 ], [ %.frame.0.2, %whilecond54.i734 ], [ %.frame.0.2, %andand65.i740 ] ; [#uses=11] + %tmp4.i749 = icmp ult i32 %.frame.0.3, %line_arg830 ; [#uses=1] + br i1 %tmp4.i749, label %andand.i758, label %whilecond22.i761 + +whilebody.i752: ; preds = %andand.i758 + %tmp18.i751.c = add i32 %.frame.0.3, 1 ; [#uses=1] + br label %whilecond.i750 + +andand.i758: ; preds = %whilecond.i750 + %tmp11.i755 = getelementptr i8* %line_arg831, i32 %.frame.0.3 ; [#uses=1] + %tmp12.i756 = load i8* %tmp11.i755 ; [#uses=1] + %tmp14.i757 = icmp eq i8 %tmp12.i756, 32 ; [#uses=1] + br i1 %tmp14.i757, label %whilebody.i752, label %whilecond22.i761 + +whilecond22.i761: ; preds = %whilebody23.i763, %andand.i758, %whilecond.i750 + %.frame.0.4 = phi i32 [ %.frame.0.3, %andand.i758 ], [ %tmp50.i762, %whilebody23.i763 ], [ %.frame.0.3, %whilecond.i750 ] ; [#uses=2] + %tmp49.i759 = phi i32 [ %.frame.0.3, %andand.i758 ], [ %tmp50.i762, %whilebody23.i763 ], [ %.frame.0.3, %whilecond.i750 ] ; [#uses=7] + %tmp32.i760 = icmp ult i32 %tmp49.i759, %line_arg830 ; [#uses=1] + br i1 %tmp32.i760, label %andand33.i769, label %whilecond54.i773 + +whilebody23.i763: ; preds = %andand33.i769 + %tmp50.i762 = add i32 %tmp49.i759, 1 ; [#uses=2] + br label %whilecond22.i761 + +andand33.i769: ; preds = %whilecond22.i761 + %tmp42.i766 = getelementptr i8* %line_arg831, i32 %tmp49.i759 ; [#uses=1] + %tmp43.i767 = load i8* %tmp42.i766 ; [#uses=1] + %tmp45.i768 = icmp eq i8 %tmp43.i767, 32 ; [#uses=1] + br i1 %tmp45.i768, label %whilecond54.i773, label %whilebody23.i763 + +whilecond54.i773: ; preds = %whilebody55.i775, %andand33.i769, %whilecond22.i761 + %.frame.0.5 = phi i32 [ %.frame.0.4, %andand33.i769 ], [ %tmp82.i774, %whilebody55.i775 ], [ %.frame.0.4, %whilecond22.i761 ] ; [#uses=3] + %tmp81.i770 = phi i32 [ %tmp49.i759, %andand33.i769 ], [ %tmp82.i774, %whilebody55.i775 ], [ %tmp49.i759, %whilecond22.i761 ] ; [#uses=3] + %tmp64.i771 = icmp ult i32 %tmp81.i770, %line_arg830 ; [#uses=1] + br i1 %tmp64.i771, label %andand65.i780, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit786 + +whilebody55.i775: ; preds = %andand65.i780 + %tmp82.i774 = add i32 %tmp81.i770, 1 ; [#uses=2] + br label %whilecond54.i773 + +andand65.i780: ; preds = %whilecond54.i773 + %tmp74.i777 = getelementptr i8* %line_arg831, i32 %tmp81.i770 ; [#uses=1] + %tmp75.i778 = load i8* %tmp74.i777 ; [#uses=1] + %tmp77.i779 = icmp eq i8 %tmp75.i778, 32 ; [#uses=1] + br i1 %tmp77.i779, label %whilebody55.i775, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit786 + +_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit786: ; preds = %andand65.i780, %whilecond54.i773 + %tmp89.i782 = getelementptr i8* %line_arg831, i32 %.frame.0.3 ; [#uses=4] + %tmp90.i783 = sub i32 %tmp49.i759, %.frame.0.3 ; [#uses=2] + br label %whilecond.i792 + +whilecond.i792: ; preds = %whilebody.i794, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit786 + %.frame.0.6 = phi i32 [ %.frame.0.5, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit786 ], [ %tmp18.i793.c, %whilebody.i794 ] ; [#uses=11] + %tmp4.i791 = icmp ult i32 %.frame.0.6, %line_arg830 ; [#uses=1] + br i1 %tmp4.i791, label %andand.i800, label %whilecond22.i803 + +whilebody.i794: ; preds = %andand.i800 + %tmp18.i793.c = add i32 %.frame.0.6, 1 ; [#uses=1] + br label %whilecond.i792 + +andand.i800: ; preds = %whilecond.i792 + %tmp11.i797 = getelementptr i8* %line_arg831, i32 %.frame.0.6 ; [#uses=1] + %tmp12.i798 = load i8* %tmp11.i797 ; [#uses=1] + %tmp14.i799 = icmp eq i8 %tmp12.i798, 32 ; [#uses=1] + br i1 %tmp14.i799, label %whilebody.i794, label %whilecond22.i803 + +whilecond22.i803: ; preds = %whilebody23.i805, %andand.i800, %whilecond.i792 + %.frame.0.7 = phi i32 [ %.frame.0.6, %andand.i800 ], [ %tmp50.i804, %whilebody23.i805 ], [ %.frame.0.6, %whilecond.i792 ] ; [#uses=2] + %tmp49.i801 = phi i32 [ %.frame.0.6, %andand.i800 ], [ %tmp50.i804, %whilebody23.i805 ], [ %.frame.0.6, %whilecond.i792 ] ; [#uses=7] + %tmp32.i802 = icmp ult i32 %tmp49.i801, %line_arg830 ; [#uses=1] + br i1 %tmp32.i802, label %andand33.i811, label %whilecond54.i815 + +whilebody23.i805: ; preds = %andand33.i811 + %tmp50.i804 = add i32 %tmp49.i801, 1 ; [#uses=2] + br label %whilecond22.i803 + +andand33.i811: ; preds = %whilecond22.i803 + %tmp42.i808 = getelementptr i8* %line_arg831, i32 %tmp49.i801 ; [#uses=1] + %tmp43.i809 = load i8* %tmp42.i808 ; [#uses=1] + %tmp45.i810 = icmp eq i8 %tmp43.i809, 32 ; [#uses=1] + br i1 %tmp45.i810, label %whilecond54.i815, label %whilebody23.i805 + +whilecond54.i815: ; preds = %whilebody55.i817, %andand33.i811, %whilecond22.i803 + %.frame.0.8 = phi i32 [ %.frame.0.7, %andand33.i811 ], [ %tmp82.i816, %whilebody55.i817 ], [ %.frame.0.7, %whilecond22.i803 ] ; [#uses=2] + %tmp81.i812 = phi i32 [ %tmp49.i801, %andand33.i811 ], [ %tmp82.i816, %whilebody55.i817 ], [ %tmp49.i801, %whilecond22.i803 ] ; [#uses=3] + %tmp64.i813 = icmp ult i32 %tmp81.i812, %line_arg830 ; [#uses=1] + br i1 %tmp64.i813, label %andand65.i822, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit828 + +whilebody55.i817: ; preds = %andand65.i822 + %tmp82.i816 = add i32 %tmp81.i812, 1 ; [#uses=2] + br label %whilecond54.i815 + +andand65.i822: ; preds = %whilecond54.i815 + %tmp74.i819 = getelementptr i8* %line_arg831, i32 %tmp81.i812 ; [#uses=1] + %tmp75.i820 = load i8* %tmp74.i819 ; [#uses=1] + %tmp77.i821 = icmp eq i8 %tmp75.i820, 32 ; [#uses=1] + br i1 %tmp77.i821, label %whilebody55.i817, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit828 + +_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit828: ; preds = %andand65.i822, %whilecond54.i815 + %tmp89.i824 = getelementptr i8* %line_arg831, i32 %.frame.0.6 ; [#uses=4] + %tmp90.i825 = sub i32 %tmp49.i801, %.frame.0.6 ; [#uses=2] + %tmp63 = load i8* %tmp89.i824 ; [#uses=2] + br label %forcond.i.i622 + +forcond.i.i622: ; preds = %forbody.i.i626, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit828 + %len.0.i.i618 = phi i32 [ 10, %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit828 ], [ %tmp4.i.i620, %forbody.i.i626 ] ; [#uses=2] + %p.0.i.i619 = phi i8* [ getelementptr ([11 x i8]* @.str170, i32 0, i32 -1), %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit828 ], [ %tmp7.i.i623, %forbody.i.i626 ] ; [#uses=1] + %tmp4.i.i620 = add i32 %len.0.i.i618, -1 ; [#uses=1] + %tmp5.i.i621 = icmp eq i32 %len.0.i.i618, 0 ; [#uses=1] + br i1 %tmp5.i.i621, label %if65, label %forbody.i.i626 + +forbody.i.i626: ; preds = %forcond.i.i622 + %tmp7.i.i623 = getelementptr i8* %p.0.i.i619, i32 1 ; [#uses=3] + %tmp8.i.i624 = load i8* %tmp7.i.i623 ; [#uses=1] + %tmp12.i.i625 = icmp eq i8 %tmp8.i.i624, %tmp63 ; [#uses=1] + br i1 %tmp12.i.i625, label %if.i.i630, label %forcond.i.i622 + +if.i.i630: ; preds = %forbody.i.i626 + %tmp15.i.i627 = ptrtoint i8* %tmp7.i.i623 to i32 ; [#uses=1] + %tmp17.i.i629 = sub i32 %tmp15.i.i627, ptrtoint ([11 x i8]* @.str170 to i32) ; [#uses=1] + %phitmp636 = icmp eq i32 %tmp17.i.i629, 10 ; [#uses=1] + br i1 %phitmp636, label %if65, label %else67 + +if65: ; preds = %if.i.i630, %forcond.i.i622 + %tmp69 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 2 ; [#uses=1] + %tmp4.i.i532 = icmp eq i32 %tmp49.i759, %.frame.0.3 ; [#uses=1] + br i1 %tmp4.i.i532, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576, label %forcond.i.i539 + +forcond.i.i539: ; preds = %forinc.i.i546, %if65 + %sign.1.i533 = phi i1 [ false, %if65 ], [ %sign.0.i543, %forinc.i.i546 ] ; [#uses=4] + %len.0.i.i534 = phi i32 [ %tmp33.i.i545, %forinc.i.i546 ], [ %tmp90.i783, %if65 ] ; [#uses=3] + %p.0.i.i535 = phi i8* [ %tmp30.i.i544, %forinc.i.i546 ], [ %tmp89.i782, %if65 ] ; [#uses=6] + %c.0.in.i.i536 = phi i8* [ %tmp30.i.i544, %forinc.i.i546 ], [ %tmp89.i782, %if65 ] ; [#uses=1] + %c.0.i.i537 = load i8* %c.0.in.i.i536 ; [#uses=2] + %tmp8.i.i538 = icmp eq i32 %len.0.i.i534, 0 ; [#uses=1] + br i1 %tmp8.i.i538, label %endfor.i.i550, label %forbody.i.i540 + +forbody.i.i540: ; preds = %forcond.i.i539 + switch i8 %c.0.i.i537, label %endfor.i.i550 [ + i8 32, label %forinc.i.i546 + i8 9, label %forinc.i.i546 + i8 45, label %if20.i.i541 + i8 43, label %if26.i.i542 + ] + +if20.i.i541: ; preds = %forbody.i.i540 + br label %forinc.i.i546 + +if26.i.i542: ; preds = %forbody.i.i540 + br label %forinc.i.i546 + +forinc.i.i546: ; preds = %if26.i.i542, %if20.i.i541, %forbody.i.i540, %forbody.i.i540 + %sign.0.i543 = phi i1 [ false, %if26.i.i542 ], [ true, %if20.i.i541 ], [ %sign.1.i533, %forbody.i.i540 ], [ %sign.1.i533, %forbody.i.i540 ] ; [#uses=1] + %tmp30.i.i544 = getelementptr i8* %p.0.i.i535, i32 1 ; [#uses=2] + %tmp33.i.i545 = add i32 %len.0.i.i534, -1 ; [#uses=1] + br label %forcond.i.i539 + +endfor.i.i550: ; preds = %forbody.i.i540, %forcond.i.i539 + %tmp37.i.i547 = icmp eq i8 %c.0.i.i537, 48 ; [#uses=1] + %tmp39.i.i548 = icmp sgt i32 %len.0.i.i534, 1 ; [#uses=1] + %or.cond.i.i549 = and i1 %tmp37.i.i547, %tmp39.i.i548 ; [#uses=1] + br i1 %or.cond.i.i549, label %if40.i.i554, label %endif41.i.i564 + +if40.i.i554: ; preds = %endfor.i.i550 + %tmp43.i.i551 = getelementptr i8* %p.0.i.i535, i32 1 ; [#uses=2] + %tmp44.i.i552 = load i8* %tmp43.i.i551 ; [#uses=1] + %tmp45.i.i553 = zext i8 %tmp44.i.i552 to i32 ; [#uses=1] + switch i32 %tmp45.i.i553, label %endif41.i.i564 [ + i32 120, label %case46.i.i556 + i32 88, label %case46.i.i556 + i32 98, label %case51.i.i558 + i32 66, label %case51.i.i558 + i32 111, label %case56.i.i560 + i32 79, label %case56.i.i560 + ] + +case46.i.i556: ; preds = %if40.i.i554, %if40.i.i554 + %tmp48.i.i555 = getelementptr i8* %p.0.i.i535, i32 2 ; [#uses=1] + br label %endif41.i.i564 + +case51.i.i558: ; preds = %if40.i.i554, %if40.i.i554 + %tmp53.i.i557 = getelementptr i8* %p.0.i.i535, i32 2 ; [#uses=1] + br label %endif41.i.i564 + +case56.i.i560: ; preds = %if40.i.i554, %if40.i.i554 + %tmp58.i.i559 = getelementptr i8* %p.0.i.i535, i32 2 ; [#uses=1] + br label %endif41.i.i564 + +endif41.i.i564: ; preds = %case56.i.i560, %case51.i.i558, %case46.i.i556, %if40.i.i554, %endfor.i.i550 + %r.0.i.i561 = phi i32 [ 0, %if40.i.i554 ], [ 8, %case56.i.i560 ], [ 2, %case51.i.i558 ], [ 16, %case46.i.i556 ], [ 0, %endfor.i.i550 ] ; [#uses=2] + %p.2.i.i562 = phi i8* [ %tmp43.i.i551, %if40.i.i554 ], [ %tmp58.i.i559, %case56.i.i560 ], [ %tmp53.i.i557, %case51.i.i558 ], [ %tmp48.i.i555, %case46.i.i556 ], [ %p.0.i.i535, %endfor.i.i550 ] ; [#uses=2] + %tmp63.i.i563 = icmp eq i32 %r.0.i.i561, 0 ; [#uses=1] + br i1 %tmp63.i.i563, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576, label %if70.i.i568 + +if70.i.i568: ; preds = %endif41.i.i564 + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576 + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576: ; preds = %if70.i.i568, %endif41.i.i564, %if65 + %sign.2.i569 = phi i1 [ false, %if65 ], [ %sign.1.i533, %if70.i.i568 ], [ %sign.1.i533, %endif41.i.i564 ] ; [#uses=1] + %radix.0.i570 = phi i32 [ 0, %if65 ], [ %r.0.i.i561, %if70.i.i568 ], [ 10, %endif41.i.i564 ] ; [#uses=2] + %p.1.i.i571 = phi i8* [ %p.2.i.i562, %if70.i.i568 ], [ %tmp89.i782, %if65 ], [ %p.2.i.i562, %endif41.i.i564 ] ; [#uses=1] + %tmp84.i.i572 = ptrtoint i8* %p.1.i.i571 to i32 ; [#uses=1] + %tmp85.i.i573 = ptrtoint i8* %tmp89.i782 to i32 ; [#uses=1] + %tmp86.i.i574 = sub i32 %tmp84.i.i572, %tmp85.i.i573 ; [#uses=2] + %tmp6.i575 = sub i32 %tmp90.i783, %tmp86.i.i574 ; [#uses=1] + br label %foreachcond.i.i581 + +foreachcond.i.i581: ; preds = %if55.i.i610, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576 + %value.0.i.i577 = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576 ], [ %tmp65.i.i607, %if55.i.i610 ] ; [#uses=3] + %foreachkey.0.i.i579 = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i576 ], [ %tmp70.i.i609, %if55.i.i610 ] ; [#uses=3] + %tmp3.i.i580 = icmp ult i32 %foreachkey.0.i.i579, %tmp6.i575 ; [#uses=1] + br i1 %tmp3.i.i580, label %foreachbody.i.i587, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614 + +foreachbody.i.i587: ; preds = %foreachcond.i.i581 + %tmp5.sum.i582 = add i32 %tmp86.i.i574, %foreachkey.0.i.i579 ; [#uses=1] + %tmp89.i782.sum = add i32 %.frame.0.3, %tmp5.sum.i582 ; [#uses=1] + %tmp5.i.i583 = getelementptr i8* %line_arg831, i32 %tmp89.i782.sum ; [#uses=1] + %tmp6.i.i584 = load i8* %tmp5.i.i583 ; [#uses=6] + %tmp6.off84.i.i585 = add i8 %tmp6.i.i584, -48 ; [#uses=1] + %or.cond.i28.i586 = icmp ugt i8 %tmp6.off84.i.i585, 9 ; [#uses=1] + br i1 %or.cond.i28.i586, label %else.i.i590, label %endif.i.i603 + +else.i.i590: ; preds = %foreachbody.i.i587 + %tmp6.off83.i.i588 = add i8 %tmp6.i.i584, -97 ; [#uses=1] + %or.cond81.i.i589 = icmp ugt i8 %tmp6.off83.i.i588, 25 ; [#uses=1] + br i1 %or.cond81.i.i589, label %else24.i.i595, label %if22.i.i592 + +if22.i.i592: ; preds = %else.i.i590 + %tmp27.i.i591 = add i8 %tmp6.i.i584, -39 ; [#uses=1] + br label %endif.i.i603 + +else24.i.i595: ; preds = %else.i.i590 + %tmp6.off.i.i593 = add i8 %tmp6.i.i584, -65 ; [#uses=1] + %or.cond82.i.i594 = icmp ugt i8 %tmp6.off.i.i593, 25 ; [#uses=1] + br i1 %or.cond82.i.i594, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614, label %if39.i.i597 + +if39.i.i597: ; preds = %else24.i.i595 + %tmp44.i29.i596 = add i8 %tmp6.i.i584, -7 ; [#uses=1] + br label %endif.i.i603 + +endif.i.i603: ; preds = %if39.i.i597, %if22.i.i592, %foreachbody.i.i587 + %c.0.i30.i598 = phi i8 [ %tmp27.i.i591, %if22.i.i592 ], [ %tmp44.i29.i596, %if39.i.i597 ], [ %tmp6.i.i584, %foreachbody.i.i587 ] ; [#uses=1] + %tmp48.i31.i599 = zext i8 %c.0.i30.i598 to i32 ; [#uses=1] + %tmp49.i.i600 = add i32 %tmp48.i31.i599, 208 ; [#uses=1] + %tmp52.i.i601 = and i32 %tmp49.i.i600, 255 ; [#uses=2] + %tmp54.i.i602 = icmp ult i32 %tmp52.i.i601, %radix.0.i570 ; [#uses=1] + br i1 %tmp54.i.i602, label %if55.i.i610, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614 + +if55.i.i610: ; preds = %endif.i.i603 + %tmp59.i.i604 = zext i32 %radix.0.i570 to i64 ; [#uses=1] + %tmp61.i.i605 = mul i64 %value.0.i.i577, %tmp59.i.i604 ; [#uses=1] + %tmp64.i.i606 = zext i32 %tmp52.i.i601 to i64 ; [#uses=1] + %tmp65.i.i607 = add i64 %tmp61.i.i605, %tmp64.i.i606 ; [#uses=1] + %tmp70.i.i609 = add i32 %foreachkey.0.i.i579, 1 ; [#uses=1] + br label %foreachcond.i.i581 + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614: ; preds = %endif.i.i603, %else24.i.i595, %foreachcond.i.i581 + %negval.i611 = sub i64 0, %value.0.i.i577 ; [#uses=1] + %condtmp.0.i612 = select i1 %sign.2.i569, i64 %negval.i611, i64 %value.0.i.i577 ; [#uses=1] + store i64 %condtmp.0.i612, i64* %tmp69 + br label %endif66 + +else67: ; preds = %if.i.i630 + %tmp72 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 2 ; [#uses=1] + %tmp4.i.i447 = icmp eq i32 %tmp49.i801, %.frame.0.6 ; [#uses=1] + br i1 %tmp4.i.i447, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491, label %forcond.i.i454 + +forcond.i.i454: ; preds = %forinc.i.i461, %else67 + %c.0.i.i452 = phi i8 [ %c.0.i.i452.pre, %forinc.i.i461 ], [ %tmp63, %else67 ] ; [#uses=2] + %sign.1.i448 = phi i1 [ false, %else67 ], [ %sign.0.i458, %forinc.i.i461 ] ; [#uses=4] + %len.0.i.i449 = phi i32 [ %tmp33.i.i460, %forinc.i.i461 ], [ %tmp90.i825, %else67 ] ; [#uses=3] + %p.0.i.i450 = phi i8* [ %tmp30.i.i459, %forinc.i.i461 ], [ %tmp89.i824, %else67 ] ; [#uses=6] + %tmp8.i.i453 = icmp eq i32 %len.0.i.i449, 0 ; [#uses=1] + br i1 %tmp8.i.i453, label %endfor.i.i465, label %forbody.i.i455 + +forbody.i.i455: ; preds = %forcond.i.i454 + switch i8 %c.0.i.i452, label %endfor.i.i465 [ + i8 32, label %forinc.i.i461 + i8 9, label %forinc.i.i461 + i8 45, label %if20.i.i456 + i8 43, label %if26.i.i457 + ] + +if20.i.i456: ; preds = %forbody.i.i455 + br label %forinc.i.i461 + +if26.i.i457: ; preds = %forbody.i.i455 + br label %forinc.i.i461 + +forinc.i.i461: ; preds = %if26.i.i457, %if20.i.i456, %forbody.i.i455, %forbody.i.i455 + %sign.0.i458 = phi i1 [ false, %if26.i.i457 ], [ true, %if20.i.i456 ], [ %sign.1.i448, %forbody.i.i455 ], [ %sign.1.i448, %forbody.i.i455 ] ; [#uses=1] + %tmp30.i.i459 = getelementptr i8* %p.0.i.i450, i32 1 ; [#uses=2] + %tmp33.i.i460 = add i32 %len.0.i.i449, -1 ; [#uses=1] + %c.0.i.i452.pre = load i8* %tmp30.i.i459 ; [#uses=1] + br label %forcond.i.i454 + +endfor.i.i465: ; preds = %forbody.i.i455, %forcond.i.i454 + %tmp37.i.i462 = icmp eq i8 %c.0.i.i452, 48 ; [#uses=1] + %tmp39.i.i463 = icmp sgt i32 %len.0.i.i449, 1 ; [#uses=1] + %or.cond.i.i464 = and i1 %tmp37.i.i462, %tmp39.i.i463 ; [#uses=1] + br i1 %or.cond.i.i464, label %if40.i.i469, label %endif41.i.i479 + +if40.i.i469: ; preds = %endfor.i.i465 + %tmp43.i.i466 = getelementptr i8* %p.0.i.i450, i32 1 ; [#uses=2] + %tmp44.i.i467 = load i8* %tmp43.i.i466 ; [#uses=1] + %tmp45.i.i468 = zext i8 %tmp44.i.i467 to i32 ; [#uses=1] + switch i32 %tmp45.i.i468, label %endif41.i.i479 [ + i32 120, label %case46.i.i471 + i32 88, label %case46.i.i471 + i32 98, label %case51.i.i473 + i32 66, label %case51.i.i473 + i32 111, label %case56.i.i475 + i32 79, label %case56.i.i475 + ] + +case46.i.i471: ; preds = %if40.i.i469, %if40.i.i469 + %tmp48.i.i470 = getelementptr i8* %p.0.i.i450, i32 2 ; [#uses=1] + br label %endif41.i.i479 + +case51.i.i473: ; preds = %if40.i.i469, %if40.i.i469 + %tmp53.i.i472 = getelementptr i8* %p.0.i.i450, i32 2 ; [#uses=1] + br label %endif41.i.i479 + +case56.i.i475: ; preds = %if40.i.i469, %if40.i.i469 + %tmp58.i.i474 = getelementptr i8* %p.0.i.i450, i32 2 ; [#uses=1] + br label %endif41.i.i479 + +endif41.i.i479: ; preds = %case56.i.i475, %case51.i.i473, %case46.i.i471, %if40.i.i469, %endfor.i.i465 + %r.0.i.i476 = phi i32 [ 0, %if40.i.i469 ], [ 8, %case56.i.i475 ], [ 2, %case51.i.i473 ], [ 16, %case46.i.i471 ], [ 0, %endfor.i.i465 ] ; [#uses=2] + %p.2.i.i477 = phi i8* [ %tmp43.i.i466, %if40.i.i469 ], [ %tmp58.i.i474, %case56.i.i475 ], [ %tmp53.i.i472, %case51.i.i473 ], [ %tmp48.i.i470, %case46.i.i471 ], [ %p.0.i.i450, %endfor.i.i465 ] ; [#uses=2] + %tmp63.i.i478 = icmp eq i32 %r.0.i.i476, 0 ; [#uses=1] + br i1 %tmp63.i.i478, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491, label %if70.i.i483 + +if70.i.i483: ; preds = %endif41.i.i479 + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491 + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491: ; preds = %if70.i.i483, %endif41.i.i479, %else67 + %sign.2.i484 = phi i1 [ false, %else67 ], [ %sign.1.i448, %if70.i.i483 ], [ %sign.1.i448, %endif41.i.i479 ] ; [#uses=1] + %radix.0.i485 = phi i32 [ 0, %else67 ], [ %r.0.i.i476, %if70.i.i483 ], [ 10, %endif41.i.i479 ] ; [#uses=2] + %p.1.i.i486 = phi i8* [ %p.2.i.i477, %if70.i.i483 ], [ %tmp89.i824, %else67 ], [ %p.2.i.i477, %endif41.i.i479 ] ; [#uses=1] + %tmp84.i.i487 = ptrtoint i8* %p.1.i.i486 to i32 ; [#uses=1] + %tmp85.i.i488 = ptrtoint i8* %tmp89.i824 to i32 ; [#uses=1] + %tmp86.i.i489 = sub i32 %tmp84.i.i487, %tmp85.i.i488 ; [#uses=2] + %tmp6.i490 = sub i32 %tmp90.i825, %tmp86.i.i489 ; [#uses=1] + br label %foreachcond.i.i496 + +foreachcond.i.i496: ; preds = %if55.i.i525, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491 + %value.0.i.i492 = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491 ], [ %tmp65.i.i522, %if55.i.i525 ] ; [#uses=3] + %foreachkey.0.i.i494 = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i491 ], [ %tmp70.i.i524, %if55.i.i525 ] ; [#uses=3] + %tmp3.i.i495 = icmp ult i32 %foreachkey.0.i.i494, %tmp6.i490 ; [#uses=1] + br i1 %tmp3.i.i495, label %foreachbody.i.i502, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529 + +foreachbody.i.i502: ; preds = %foreachcond.i.i496 + %tmp5.sum.i497 = add i32 %tmp86.i.i489, %foreachkey.0.i.i494 ; [#uses=1] + %tmp89.i824.sum = add i32 %.frame.0.6, %tmp5.sum.i497 ; [#uses=1] + %tmp5.i.i498 = getelementptr i8* %line_arg831, i32 %tmp89.i824.sum ; [#uses=1] + %tmp6.i.i499 = load i8* %tmp5.i.i498 ; [#uses=6] + %tmp6.off84.i.i500 = add i8 %tmp6.i.i499, -48 ; [#uses=1] + %or.cond.i28.i501 = icmp ugt i8 %tmp6.off84.i.i500, 9 ; [#uses=1] + br i1 %or.cond.i28.i501, label %else.i.i505, label %endif.i.i518 + +else.i.i505: ; preds = %foreachbody.i.i502 + %tmp6.off83.i.i503 = add i8 %tmp6.i.i499, -97 ; [#uses=1] + %or.cond81.i.i504 = icmp ugt i8 %tmp6.off83.i.i503, 25 ; [#uses=1] + br i1 %or.cond81.i.i504, label %else24.i.i510, label %if22.i.i507 + +if22.i.i507: ; preds = %else.i.i505 + %tmp27.i.i506 = add i8 %tmp6.i.i499, -39 ; [#uses=1] + br label %endif.i.i518 + +else24.i.i510: ; preds = %else.i.i505 + %tmp6.off.i.i508 = add i8 %tmp6.i.i499, -65 ; [#uses=1] + %or.cond82.i.i509 = icmp ugt i8 %tmp6.off.i.i508, 25 ; [#uses=1] + br i1 %or.cond82.i.i509, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529, label %if39.i.i512 + +if39.i.i512: ; preds = %else24.i.i510 + %tmp44.i29.i511 = add i8 %tmp6.i.i499, -7 ; [#uses=1] + br label %endif.i.i518 + +endif.i.i518: ; preds = %if39.i.i512, %if22.i.i507, %foreachbody.i.i502 + %c.0.i30.i513 = phi i8 [ %tmp27.i.i506, %if22.i.i507 ], [ %tmp44.i29.i511, %if39.i.i512 ], [ %tmp6.i.i499, %foreachbody.i.i502 ] ; [#uses=1] + %tmp48.i31.i514 = zext i8 %c.0.i30.i513 to i32 ; [#uses=1] + %tmp49.i.i515 = add i32 %tmp48.i31.i514, 208 ; [#uses=1] + %tmp52.i.i516 = and i32 %tmp49.i.i515, 255 ; [#uses=2] + %tmp54.i.i517 = icmp ult i32 %tmp52.i.i516, %radix.0.i485 ; [#uses=1] + br i1 %tmp54.i.i517, label %if55.i.i525, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529 + +if55.i.i525: ; preds = %endif.i.i518 + %tmp59.i.i519 = zext i32 %radix.0.i485 to i64 ; [#uses=1] + %tmp61.i.i520 = mul i64 %value.0.i.i492, %tmp59.i.i519 ; [#uses=1] + %tmp64.i.i521 = zext i32 %tmp52.i.i516 to i64 ; [#uses=1] + %tmp65.i.i522 = add i64 %tmp61.i.i520, %tmp64.i.i521 ; [#uses=1] + %tmp70.i.i524 = add i32 %foreachkey.0.i.i494, 1 ; [#uses=1] + br label %foreachcond.i.i496 + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529: ; preds = %endif.i.i518, %else24.i.i510, %foreachcond.i.i496 + %negval.i526 = sub i64 0, %value.0.i.i492 ; [#uses=1] + %condtmp.0.i527 = select i1 %sign.2.i484, i64 %negval.i526, i64 %value.0.i.i492 ; [#uses=1] + store i64 %condtmp.0.i527, i64* %tmp72 + br label %endif66 + +endif66: ; preds = %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614 + %tmp85 = phi i32 [ %.frame.0.8, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529 ], [ %.frame.0.5, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614 ] ; [#uses=1] + %tmp75 = phi i32 [ %.frame.0.8, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit529 ], [ %.frame.0.5, %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit614 ] ; [#uses=1] + %tmp76 = add i32 %tmp75, 13 ; [#uses=1] + %tmp79 = icmp ult i32 %tmp76, %line_arg830 ; [#uses=1] + br i1 %tmp79, label %endif81, label %if80 + +if80: ; preds = %endif66 + %tmp82 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp82, i8* %tmp2, i32 48, i32 1) + ret void + +endif81: ; preds = %endif66 + %tmp86 = add i32 %tmp85, 13 ; [#uses=2] + %tmp93 = getelementptr i8* %line_arg831, i32 %tmp86 ; [#uses=1] + %tmp94 = sub i32 %line_arg830, %tmp86 ; [#uses=1] + %tmp95 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 0 ; [#uses=4] + store i32 %tmp94, i32* %tmp95, align 8 + %tmp96 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 1 ; [#uses=3] + store i8* %tmp93, i8** %tmp96 + %tmp97 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + %tmp98 = load i32* %tmp97, align 8 ; [#uses=1] + %tmp99 = icmp eq i32 %tmp98, 5 ; [#uses=1] + br i1 %tmp99, label %if100, label %switchend + +if100: ; preds = %endif81 + %tmp102 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0 ; <%"byte[]"*> [#uses=1] + %tmp103 = load %"byte[]"* %tmp102, align 8 ; <%"byte[]"> [#uses=2] + %source_arg59.i = extractvalue %"byte[]" %tmp103, 0 ; [#uses=5] + %source_arg60.i = extractvalue %"byte[]" %tmp103, 1 ; [#uses=2] + %tmp9.i418 = add i32 %source_arg59.i, -3 ; [#uses=2] + %tmp16.i420 = icmp ugt i32 %tmp9.i418, %source_arg59.i ; [#uses=1] + br i1 %tmp16.i420, label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, label %whilecond.i422 + +whilecond.i422: ; preds = %else40.i, %if100 + %source_arg60.pn.i = phi i8* [ %p.0.i, %else40.i ], [ %source_arg60.i, %if100 ] ; [#uses=4] + %start_arg.pn.i = phi i32 [ %tmp49.i443, %else40.i ], [ 0, %if100 ] ; [#uses=3] + %extent.0.i = phi i32 [ %tmp51.i, %else40.i ], [ %tmp9.i418, %if100 ] ; [#uses=5] + %p.0.i = getelementptr i8* %source_arg60.pn.i, i32 %start_arg.pn.i ; [#uses=2] + %tmp18.i421 = icmp eq i32 %extent.0.i, 0 ; [#uses=1] + br i1 %tmp18.i421, label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, label %whilebody.i425 + +whilebody.i425: ; preds = %whilecond.i422 + %p.0.sum63.i = add i32 %start_arg.pn.i, -1 ; [#uses=1] + %tmp2.i.i424 = getelementptr i8* %source_arg60.pn.i, i32 %p.0.sum63.i ; [#uses=1] + br label %forcond.i.i430 + +forcond.i.i430: ; preds = %forbody.i.i434, %whilebody.i425 + %len.0.i.i426 = phi i32 [ %extent.0.i, %whilebody.i425 ], [ %tmp4.i.i428, %forbody.i.i434 ] ; [#uses=2] + %p.0.i.i427 = phi i8* [ %tmp2.i.i424, %whilebody.i425 ], [ %tmp7.i.i431, %forbody.i.i434 ] ; [#uses=1] + %tmp4.i.i428 = add i32 %len.0.i.i426, -1 ; [#uses=1] + %tmp5.i.i429 = icmp eq i32 %len.0.i.i426, 0 ; [#uses=1] + br i1 %tmp5.i.i429, label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i, label %forbody.i.i434 + +forbody.i.i434: ; preds = %forcond.i.i430 + %tmp7.i.i431 = getelementptr i8* %p.0.i.i427, i32 1 ; [#uses=3] + %tmp8.i.i432 = load i8* %tmp7.i.i431 ; [#uses=1] + %tmp12.i.i433 = icmp eq i8 %tmp8.i.i432, 32 ; [#uses=1] + br i1 %tmp12.i.i433, label %if.i.i438, label %forcond.i.i430 + +if.i.i438: ; preds = %forbody.i.i434 + %tmp15.i.i435 = ptrtoint i8* %tmp7.i.i431 to i32 ; [#uses=1] + %tmp16.i.i436 = ptrtoint i8* %p.0.i to i32 ; [#uses=1] + %tmp17.i.i437 = sub i32 %tmp15.i.i435, %tmp16.i.i436 ; [#uses=1] + br label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i + +_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i: ; preds = %if.i.i438, %forcond.i.i430 + %tmp2561.i = phi i32 [ %tmp17.i.i437, %if.i.i438 ], [ %extent.0.i, %forcond.i.i430 ] ; [#uses=3] + %tmp27.i = icmp eq i32 %tmp2561.i, %extent.0.i ; [#uses=1] + br i1 %tmp27.i, label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, label %else.i441 + +else.i441: ; preds = %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i + %p.0.sum.i = add i32 %start_arg.pn.i, %tmp2561.i ; [#uses=2] + %tmp32.i440 = getelementptr i8* %source_arg60.pn.i, i32 %p.0.sum.i ; [#uses=2] + %tmp32.sum.i = add i32 %p.0.sum.i, -1 ; [#uses=1] + %tmp2.i.i.i = getelementptr i8* %source_arg60.pn.i, i32 %tmp32.sum.i ; [#uses=1] + br label %forcond.i.i.i + +forcond.i.i.i: ; preds = %forbody.i.i.i, %else.i441 + %len.0.i.i.i = phi i32 [ 4, %else.i441 ], [ %tmp4.i.i.i, %forbody.i.i.i ] ; [#uses=2] + %s2.0.i.i.i = phi i8* [ getelementptr ([5 x i8]* @.str171, i32 0, i32 0), %else.i441 ], [ %tmp11.i.i.i, %forbody.i.i.i ] ; [#uses=2] + %p.0.i.i.i = phi i8* [ %tmp2.i.i.i, %else.i441 ], [ %tmp7.i.i.i, %forbody.i.i.i ] ; [#uses=1] + %tmp4.i.i.i = add i32 %len.0.i.i.i, -1 ; [#uses=1] + %tmp5.i.i.i = icmp eq i32 %len.0.i.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i.i, label %if38.i, label %forbody.i.i.i + +forbody.i.i.i: ; preds = %forcond.i.i.i + %tmp7.i.i.i = getelementptr i8* %p.0.i.i.i, i32 1 ; [#uses=3] + %tmp8.i.i.i = load i8* %tmp7.i.i.i ; [#uses=1] + %tmp11.i.i.i = getelementptr i8* %s2.0.i.i.i, i32 1 ; [#uses=1] + %tmp12.i.i.i = load i8* %s2.0.i.i.i ; [#uses=1] + %tmp14.i.i.i = icmp eq i8 %tmp8.i.i.i, %tmp12.i.i.i ; [#uses=1] + br i1 %tmp14.i.i.i, label %forcond.i.i.i, label %if.i.i.i + +if.i.i.i: ; preds = %forbody.i.i.i + %tmp17.i.i.i = ptrtoint i8* %tmp7.i.i.i to i32 ; [#uses=1] + %tmp18.i.i.i = ptrtoint i8* %tmp32.i440 to i32 ; [#uses=1] + %tmp19.i.i.i = sub i32 %tmp17.i.i.i, %tmp18.i.i.i ; [#uses=1] + %phitmp = icmp eq i32 %tmp19.i.i.i, 4 ; [#uses=1] + br i1 %phitmp, label %if38.i, label %else40.i + +if38.i: ; preds = %if.i.i.i, %forcond.i.i.i + %tmp44.i = ptrtoint i8* %tmp32.i440 to i32 ; [#uses=1] + %tmp45.i442 = ptrtoint i8* %source_arg60.i to i32 ; [#uses=1] + %tmp46.i = sub i32 %tmp44.i, %tmp45.i442 ; [#uses=1] + br label %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit + +else40.i: ; preds = %if.i.i.i + %tmp49.i443 = add i32 %tmp2561.i, 1 ; [#uses=2] + %tmp51.i = sub i32 %extent.0.i, %tmp49.i443 ; [#uses=1] + br label %whilecond.i422 + +_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit: ; preds = %if38.i, %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i, %whilecond.i422, %if100 + %tmp104444 = phi i32 [ %tmp46.i, %if38.i ], [ %source_arg59.i, %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit.i ], [ %source_arg59.i, %whilecond.i422 ], [ %source_arg59.i, %if100 ] ; [#uses=3] + %.len107 = load i32* %tmp95, align 8 ; [#uses=1] + %tmp109 = icmp eq i32 %tmp104444, %.len107 ; [#uses=1] + br i1 %tmp109, label %switchend, label %if110 + +if110: ; preds = %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit + store %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str172, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage114, align 8 + %tmp115 = bitcast %"byte[]"* %aatmpkeystorage114 to i8* ; [#uses=1] + %aa.index116 = call i8* @_aaGet(%32* nocapture %tmp47, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 8, i8* nocapture %tmp115) ; [#uses=2] + %.ptr120 = load i8** %tmp96 ; [#uses=2] + %tmp122 = add i32 %tmp104444, 4 ; [#uses=2] + %.len125 = load i32* %tmp95, align 8 ; [#uses=1] + %tmp126 = getelementptr i8* %.ptr120, i32 %tmp122 ; [#uses=1] + %tmp127 = sub i32 %.len125, %tmp122 ; [#uses=1] + %tmp128 = bitcast i8* %aa.index116 to i32* ; [#uses=1] + store i32 %tmp127, i32* %tmp128 + %tmp129 = getelementptr i8* %aa.index116, i32 4 ; [#uses=1] + %0 = bitcast i8* %tmp129 to i8** ; [#uses=1] + store i8* %tmp126, i8** %0 + store i32 %tmp104444, i32* %tmp95, align 8 + store i8* %.ptr120, i8** %tmp96 + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str173, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage141, align 8 + %tmp142 = bitcast %"byte[]"* %aatmpkeystorage141 to i8* ; [#uses=1] + %aa.index143 = call i8* @_aaGet(%32* nocapture %tmp47, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 8, i8* nocapture %tmp142) ; [#uses=1] + %tmp144 = bitcast i8* %aa.index143 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str174, i32 0, i32 0) }, %"byte[]"* %tmp144 + br label %switchend + +case145: ; preds = %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + %tmp148 = icmp ult i32 %line_arg830, 18 ; [#uses=1] + br i1 %tmp148, label %if149, label %endif150 + +if149: ; preds = %case145 + %tmp151 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp151, i8* %tmp2, i32 48, i32 1) + ret void + +endif150: ; preds = %case145 + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT7__ClassZ) ; [#uses=5] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.RegExpT!(char).RegExpT"* ; <%"tango.text.Regex.RegExpT!(char).RegExpT"*> [#uses=4] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"**> [#uses=4] + store %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__vtblZ, %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i, i8* bitcast (%"Act[]"* getelementptr (%"tango.text.Regex.RegExpT!(char).RegExpT"* bitcast (%30* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT6__initZ to %"tango.text.Regex.RegExpT!(char).RegExpT"*), i32 0, i32 2) to i8*), i32 36, i32 1) + %tmp2.i.i416 = call fastcc %"tango.text.Regex.RegExpT!(char).RegExpT"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT5_ctorMFAabbbZC5tango4text5Regex14__T7RegExpTTaZ7RegExpT(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, %"byte[]" { i32 42, i8* getelementptr ([43 x i8]* @.str175, i32 0, i32 0) }, i1 false, i1 true, i1 false) ; <%"tango.text.Regex.RegExpT!(char).RegExpT"*> [#uses=0] + %tmp157 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.test@vtbl" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp157, i32 0, i32 7 ; [#uses=1] + %r.test = load i1 (%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]")** %"r.test@vtbl", align 4 ; [#uses=1] + %insert = insertvalue %"byte[]" undef, i32 %line_arg830, 0 ; <%"byte[]"> [#uses=1] + %insert833 = insertvalue %"byte[]" %insert, i8* %line_arg831, 1 ; <%"byte[]"> [#uses=1] + %tmp160 = call fastcc i1 %r.test(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, %"byte[]" %insert833) ; [#uses=1] + br i1 %tmp160, label %endif162, label %if161 + +if161: ; preds = %endif150 + %tmp163 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp163, i8* %tmp2, i32 48, i32 1) + ret void + +endif162: ; preds = %endif150 + %tmp168 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp168, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp170 = call fastcc %"byte[]" %r.match(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, i32 0) ; <%"byte[]"> [#uses=1] + %tmp171 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 3 ; <%tango.time.Time.Time*> [#uses=1] + %tmp172 = call fastcc i32 @_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi(%"byte[]" %tmp170, %tango.time.Time.Time* %tmp171) ; [#uses=1] + %tmp173 = icmp eq i32 %tmp172, 0 ; [#uses=1] + br i1 %tmp173, label %if174, label %endif175 + +if174: ; preds = %endif162 + %tmp = load i64* getelementptr (%tango.time.Time.Time* @_D5tango4time4Time4Time3maxS5tango4time4Time4Time, i32 0, i32 0), align 4 ; [#uses=1] + %2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 3, i32 0 ; [#uses=1] + store i64 %tmp, i64* %2 + br label %endif175 + +endif175: ; preds = %if174, %endif162 + %tmp180 = load %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"** %vtbl.i ; <%"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"*> [#uses=1] + %"r.match@vtbl181" = getelementptr %"tango.text.Regex.RegExpT!(char).RegExpT.__vtbl"* %tmp180, i32 0, i32 9 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)**> [#uses=1] + %r.match183 = load %"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)** %"r.match@vtbl181", align 4 ; <%"byte[]" (%"tango.text.Regex.RegExpT!(char).RegExpT"*, i32)*> [#uses=1] + %tmp184 = call fastcc %"byte[]" %r.match183(%"tango.text.Regex.RegExpT!(char).RegExpT"* %.newclass_gc.i, i32 0) ; <%"byte[]"> [#uses=1] + %.len185 = extractvalue %"byte[]" %tmp184, 0 ; [#uses=1] + %.tmp = bitcast i8* %.newclass_gc_alloc.i to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_delclass(%object.Object* %.tmp) + br label %whilecond.i + +whilecond.i: ; preds = %whilebody.i, %endif175 + %tmp3.i = phi i32 [ %tmp18.i.c, %whilebody.i ], [ %.len185, %endif175 ] ; [#uses=11] + %tmp4.i = icmp ult i32 %tmp3.i, %line_arg830 ; [#uses=1] + br i1 %tmp4.i, label %andand.i, label %whilecond22.i + +whilebody.i: ; preds = %andand.i + %tmp18.i.c = add i32 %tmp3.i, 1 ; [#uses=1] + br label %whilecond.i + +andand.i: ; preds = %whilecond.i + %tmp11.i = getelementptr i8* %line_arg831, i32 %tmp3.i ; [#uses=1] + %tmp12.i = load i8* %tmp11.i ; [#uses=1] + %tmp14.i = icmp eq i8 %tmp12.i, 32 ; [#uses=1] + br i1 %tmp14.i, label %whilebody.i, label %whilecond22.i + +whilecond22.i: ; preds = %whilebody23.i, %andand.i, %whilecond.i + %tmp217.rle699 = phi i32 [ %tmp50.i, %whilebody23.i ], [ %tmp3.i, %andand.i ], [ %tmp3.i, %whilecond.i ] ; [#uses=2] + %tmp49.i = phi i32 [ %tmp3.i, %andand.i ], [ %tmp50.i, %whilebody23.i ], [ %tmp3.i, %whilecond.i ] ; [#uses=7] + %tmp32.i = icmp ult i32 %tmp49.i, %line_arg830 ; [#uses=1] + br i1 %tmp32.i, label %andand33.i, label %whilecond54.i + +whilebody23.i: ; preds = %andand33.i + %tmp50.i = add i32 %tmp49.i, 1 ; [#uses=2] + br label %whilecond22.i + +andand33.i: ; preds = %whilecond22.i + %tmp42.i = getelementptr i8* %line_arg831, i32 %tmp49.i ; [#uses=1] + %tmp43.i = load i8* %tmp42.i ; [#uses=1] + %tmp45.i = icmp eq i8 %tmp43.i, 32 ; [#uses=1] + br i1 %tmp45.i, label %whilecond54.i, label %whilebody23.i + +whilecond54.i: ; preds = %whilebody55.i, %andand33.i, %whilecond22.i + %tmp217 = phi i32 [ %tmp82.i, %whilebody55.i ], [ %tmp217.rle699, %andand33.i ], [ %tmp217.rle699, %whilecond22.i ] ; [#uses=2] + %tmp81.i = phi i32 [ %tmp49.i, %andand33.i ], [ %tmp82.i, %whilebody55.i ], [ %tmp49.i, %whilecond22.i ] ; [#uses=3] + %tmp64.i = icmp ult i32 %tmp81.i, %line_arg830 ; [#uses=1] + br i1 %tmp64.i, label %andand65.i, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit + +whilebody55.i: ; preds = %andand65.i + %tmp82.i = add i32 %tmp81.i, 1 ; [#uses=2] + br label %whilecond54.i + +andand65.i: ; preds = %whilecond54.i + %tmp74.i = getelementptr i8* %line_arg831, i32 %tmp81.i ; [#uses=1] + %tmp75.i = load i8* %tmp74.i ; [#uses=1] + %tmp77.i = icmp eq i8 %tmp75.i, 32 ; [#uses=1] + br i1 %tmp77.i, label %whilebody55.i, label %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit + +_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit: ; preds = %andand65.i, %whilecond54.i + %tmp89.i = getelementptr i8* %line_arg831, i32 %tmp3.i ; [#uses=4] + %tmp90.i = sub i32 %tmp49.i, %tmp3.i ; [#uses=2] + %tmp201 = load i8* %tmp89.i ; [#uses=2] + %tmp203 = icmp eq i8 %tmp201, 60 ; [#uses=1] + br i1 %tmp203, label %if204, label %else206 + +if204: ; preds = %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit + %tmp207 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 4, i32* %tmp207, align 8 + br label %endif193 + +else206: ; preds = %_D5tango3net3ftp9FtpClient13FTPConnection13parseListLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo10parse_wordMFZAa.exit + %tmp208 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 2 ; [#uses=1] + %tmp4.i.i274 = icmp eq i32 %tmp49.i, %tmp3.i ; [#uses=1] + br i1 %tmp4.i.i274, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %forcond.i.i278 + +forcond.i.i278: ; preds = %forinc.i.i, %else206 + %c.0.i.i = phi i8 [ %c.0.i.i.pre, %forinc.i.i ], [ %tmp201, %else206 ] ; [#uses=2] + %sign.1.i = phi i1 [ false, %else206 ], [ %sign.0.i, %forinc.i.i ] ; [#uses=4] + %len.0.i.i275 = phi i32 [ %tmp33.i.i, %forinc.i.i ], [ %tmp90.i, %else206 ] ; [#uses=3] + %p.0.i.i276 = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %tmp89.i, %else206 ] ; [#uses=6] + %tmp8.i.i277 = icmp eq i32 %len.0.i.i275, 0 ; [#uses=1] + br i1 %tmp8.i.i277, label %endfor.i.i280, label %forbody.i.i279 + +forbody.i.i279: ; preds = %forcond.i.i278 + switch i8 %c.0.i.i, label %endfor.i.i280 [ + i8 32, label %forinc.i.i + i8 9, label %forinc.i.i + i8 45, label %if20.i.i + i8 43, label %if26.i.i + ] + +if20.i.i: ; preds = %forbody.i.i279 + br label %forinc.i.i + +if26.i.i: ; preds = %forbody.i.i279 + br label %forinc.i.i + +forinc.i.i: ; preds = %if26.i.i, %if20.i.i, %forbody.i.i279, %forbody.i.i279 + %sign.0.i = phi i1 [ false, %if26.i.i ], [ true, %if20.i.i ], [ %sign.1.i, %forbody.i.i279 ], [ %sign.1.i, %forbody.i.i279 ] ; [#uses=1] + %tmp30.i.i = getelementptr i8* %p.0.i.i276, i32 1 ; [#uses=2] + %tmp33.i.i = add i32 %len.0.i.i275, -1 ; [#uses=1] + %c.0.i.i.pre = load i8* %tmp30.i.i ; [#uses=1] + br label %forcond.i.i278 + +endfor.i.i280: ; preds = %forbody.i.i279, %forcond.i.i278 + %tmp37.i.i = icmp eq i8 %c.0.i.i, 48 ; [#uses=1] + %tmp39.i.i = icmp sgt i32 %len.0.i.i275, 1 ; [#uses=1] + %or.cond.i.i = and i1 %tmp37.i.i, %tmp39.i.i ; [#uses=1] + br i1 %or.cond.i.i, label %if40.i.i, label %endif41.i.i + +if40.i.i: ; preds = %endfor.i.i280 + %tmp43.i.i = getelementptr i8* %p.0.i.i276, i32 1 ; [#uses=2] + %tmp44.i.i = load i8* %tmp43.i.i ; [#uses=1] + %tmp45.i.i = zext i8 %tmp44.i.i to i32 ; [#uses=1] + switch i32 %tmp45.i.i, label %endif41.i.i [ + i32 120, label %case46.i.i + i32 88, label %case46.i.i + i32 98, label %case51.i.i + i32 66, label %case51.i.i + i32 111, label %case56.i.i + i32 79, label %case56.i.i + ] + +case46.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp48.i.i = getelementptr i8* %p.0.i.i276, i32 2 ; [#uses=1] + br label %endif41.i.i + +case51.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp53.i.i = getelementptr i8* %p.0.i.i276, i32 2 ; [#uses=1] + br label %endif41.i.i + +case56.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp58.i.i = getelementptr i8* %p.0.i.i276, i32 2 ; [#uses=1] + br label %endif41.i.i + +endif41.i.i: ; preds = %case56.i.i, %case51.i.i, %case46.i.i, %if40.i.i, %endfor.i.i280 + %r.0.i.i = phi i32 [ 0, %if40.i.i ], [ 8, %case56.i.i ], [ 2, %case51.i.i ], [ 16, %case46.i.i ], [ 0, %endfor.i.i280 ] ; [#uses=2] + %p.2.i.i = phi i8* [ %tmp43.i.i, %if40.i.i ], [ %tmp58.i.i, %case56.i.i ], [ %tmp53.i.i, %case51.i.i ], [ %tmp48.i.i, %case46.i.i ], [ %p.0.i.i276, %endfor.i.i280 ] ; [#uses=2] + %tmp63.i.i = icmp eq i32 %r.0.i.i, 0 ; [#uses=1] + br i1 %tmp63.i.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %if70.i.i + +if70.i.i: ; preds = %endif41.i.i + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i: ; preds = %if70.i.i, %endif41.i.i, %else206 + %sign.2.i = phi i1 [ false, %else206 ], [ %sign.1.i, %if70.i.i ], [ %sign.1.i, %endif41.i.i ] ; [#uses=1] + %radix.0.i = phi i32 [ 0, %else206 ], [ %r.0.i.i, %if70.i.i ], [ 10, %endif41.i.i ] ; [#uses=2] + %p.1.i.i = phi i8* [ %p.2.i.i, %if70.i.i ], [ %tmp89.i, %else206 ], [ %p.2.i.i, %endif41.i.i ] ; [#uses=1] + %tmp84.i.i = ptrtoint i8* %p.1.i.i to i32 ; [#uses=1] + %tmp85.i.i = ptrtoint i8* %tmp89.i to i32 ; [#uses=1] + %tmp86.i.i = sub i32 %tmp84.i.i, %tmp85.i.i ; [#uses=2] + %tmp6.i281 = sub i32 %tmp90.i, %tmp86.i.i ; [#uses=1] + br label %foreachcond.i.i + +foreachcond.i.i: ; preds = %if55.i.i, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + %value.0.i.i = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp65.i.i, %if55.i.i ] ; [#uses=3] + %foreachkey.0.i.i = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp70.i.i, %if55.i.i ] ; [#uses=3] + %tmp3.i.i = icmp ult i32 %foreachkey.0.i.i, %tmp6.i281 ; [#uses=1] + br i1 %tmp3.i.i, label %foreachbody.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +foreachbody.i.i: ; preds = %foreachcond.i.i + %tmp5.sum.i = add i32 %tmp86.i.i, %foreachkey.0.i.i ; [#uses=1] + %tmp89.i.sum = add i32 %tmp3.i, %tmp5.sum.i ; [#uses=1] + %tmp5.i.i282 = getelementptr i8* %line_arg831, i32 %tmp89.i.sum ; [#uses=1] + %tmp6.i.i = load i8* %tmp5.i.i282 ; [#uses=6] + %tmp6.off84.i.i = add i8 %tmp6.i.i, -48 ; [#uses=1] + %or.cond.i28.i = icmp ugt i8 %tmp6.off84.i.i, 9 ; [#uses=1] + br i1 %or.cond.i28.i, label %else.i.i, label %endif.i.i + +else.i.i: ; preds = %foreachbody.i.i + %tmp6.off83.i.i = add i8 %tmp6.i.i, -97 ; [#uses=1] + %or.cond81.i.i = icmp ugt i8 %tmp6.off83.i.i, 25 ; [#uses=1] + br i1 %or.cond81.i.i, label %else24.i.i, label %if22.i.i + +if22.i.i: ; preds = %else.i.i + %tmp27.i.i = add i8 %tmp6.i.i, -39 ; [#uses=1] + br label %endif.i.i + +else24.i.i: ; preds = %else.i.i + %tmp6.off.i.i = add i8 %tmp6.i.i, -65 ; [#uses=1] + %or.cond82.i.i = icmp ugt i8 %tmp6.off.i.i, 25 ; [#uses=1] + br i1 %or.cond82.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit, label %if39.i.i + +if39.i.i: ; preds = %else24.i.i + %tmp44.i29.i = add i8 %tmp6.i.i, -7 ; [#uses=1] + br label %endif.i.i + +endif.i.i: ; preds = %if39.i.i, %if22.i.i, %foreachbody.i.i + %c.0.i30.i = phi i8 [ %tmp27.i.i, %if22.i.i ], [ %tmp44.i29.i, %if39.i.i ], [ %tmp6.i.i, %foreachbody.i.i ] ; [#uses=1] + %tmp48.i31.i = zext i8 %c.0.i30.i to i32 ; [#uses=1] + %tmp49.i.i = add i32 %tmp48.i31.i, 208 ; [#uses=1] + %tmp52.i.i = and i32 %tmp49.i.i, 255 ; [#uses=2] + %tmp54.i.i = icmp ult i32 %tmp52.i.i, %radix.0.i ; [#uses=1] + br i1 %tmp54.i.i, label %if55.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +if55.i.i: ; preds = %endif.i.i + %tmp59.i.i = zext i32 %radix.0.i to i64 ; [#uses=1] + %tmp61.i.i = mul i64 %value.0.i.i, %tmp59.i.i ; [#uses=1] + %tmp64.i.i = zext i32 %tmp52.i.i to i64 ; [#uses=1] + %tmp65.i.i = add i64 %tmp61.i.i, %tmp64.i.i ; [#uses=1] + %tmp70.i.i = add i32 %foreachkey.0.i.i, 1 ; [#uses=1] + br label %foreachcond.i.i + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit: ; preds = %endif.i.i, %else24.i.i, %foreachcond.i.i + %negval.i = sub i64 0, %value.0.i.i ; [#uses=1] + %condtmp.0.i = select i1 %sign.2.i, i64 %negval.i, i64 %value.0.i.i ; [#uses=1] + store i64 %condtmp.0.i, i64* %tmp208 + %tmp211 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 1, i32* %tmp211, align 8 + br label %endif193 + +endif193: ; preds = %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit, %if204 + %tmp218 = getelementptr i8* %line_arg831, i32 %tmp217 ; [#uses=1] + %tmp219 = sub i32 %line_arg830, %tmp217 ; [#uses=1] + %tmp220 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp219, i32* %tmp220, align 8 + %tmp221 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp218, i8** %tmp221 + br label %switchend + +default223: ; preds = %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp224 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp224, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str177, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 31, i8* getelementptr ([32 x i8]* @.str176, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp229 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp229) + unreachable + +switchend: ; preds = %endif193, %if110, %_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk.exit, %endif81 + %tmp232 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 0 ; [#uses=1] + %.len233 = load i32* %tmp232, align 8 ; [#uses=2] + %tmp234 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 1 ; [#uses=1] + %.ptr235 = load i8** %tmp234 ; [#uses=2] + %tmp236 = insertvalue %"byte[]" undef, i32 %.len233, 0 ; <%"byte[]"> [#uses=1] + %tmp237 = insertvalue %"byte[]" %tmp236, i8* %.ptr235, 1 ; <%"byte[]"> [#uses=1] + %tmp238 = call i32 @_adEq(%"byte[]" %tmp237, %"byte[]" { i32 1, i8* getelementptr ([2 x i8]* @.str178, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp239 = icmp eq i32 %tmp238, 0 ; [#uses=1] + br i1 %tmp239, label %else242, label %if240 + +if240: ; preds = %switchend + %tmp243 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 2, i32* %tmp243, align 8 + br label %endif241 + +else242: ; preds = %switchend + %tmp250 = insertvalue %"byte[]" undef, i32 %.len233, 0 ; <%"byte[]"> [#uses=1] + %tmp251 = insertvalue %"byte[]" %tmp250, i8* %.ptr235, 1 ; <%"byte[]"> [#uses=1] + %tmp252 = call i32 @_adEq(%"byte[]" %tmp251, %"byte[]" { i32 2, i8* getelementptr ([3 x i8]* @.str179, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp253 = icmp eq i32 %tmp252, 0 ; [#uses=1] + br i1 %tmp253, label %endif241, label %if254 + +if254: ; preds = %else242 + %tmp256 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 3, i32* %tmp256, align 8 + br label %endif241 + +endif241: ; preds = %if254, %else242, %if240 + %tmp257 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp257, i8* %tmp2, i32 48, i32 1) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection13parseMlstLineMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo(%tango.net.ftp.FtpClient.FtpFileInfo* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %line_arg) { +entry: + %.frame.i = alloca %nest.delimit, align 8 ; <%nest.delimit*> [#uses=2] + %.rettmp.i = alloca %tango.net.ftp.FtpClient.FtpFeature, align 8 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=5] + %info = alloca %tango.net.ftp.FtpClient.FtpFileInfo, align 4 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=14] + %aatmpkeystorage = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage89 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage98 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage120 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage131 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage140 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage151 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage159 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %aatmpkeystorage174 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %aatmpkeystorage184 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %.rettmp198 = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %aatmpkeystorage202 = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=2] + %line_arg217 = extractvalue %"byte[]" %line_arg, 0 ; [#uses=3] + %line_arg218 = extractvalue %"byte[]" %line_arg, 1 ; [#uses=3] + %tmp = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %info to i8* ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (%tango.net.ftp.FtpClient.FtpFileInfo* @_D5tango3net3ftp9FtpClient11FtpFileInfo6__initZ to i8*), i32 48, i32 4) + br label %whilecond + +whilecond: ; preds = %andand, %entry + %filename_pos.0 = phi i32 [ 0, %entry ], [ %tmp5, %andand ] ; [#uses=4] + %tmp3 = icmp ult i32 %filename_pos.0, %line_arg217 ; [#uses=1] + br i1 %tmp3, label %andand, label %endwhile + +andand: ; preds = %whilecond + %tmp5 = add i32 %filename_pos.0, 1 ; [#uses=2] + %tmp7 = getelementptr i8* %line_arg218, i32 %filename_pos.0 ; [#uses=1] + %tmp8 = load i8* %tmp7 ; [#uses=1] + %tmp10 = icmp eq i8 %tmp8, 32 ; [#uses=1] + br i1 %tmp10, label %endwhile, label %whilecond + +endwhile: ; preds = %andand, %whilecond + %filename_pos.1 = phi i32 [ %tmp5, %andand ], [ %filename_pos.0, %whilecond ] ; [#uses=5] + %tmp14 = icmp eq i32 %filename_pos.1, %line_arg217 ; [#uses=1] + br i1 %tmp14, label %if, label %endif + +if: ; preds = %endwhile + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp15 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp15, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str181, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 35, i8* getelementptr ([36 x i8]* @.str180, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp20 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp20) + unreachable + +endif: ; preds = %endwhile + %tmp27 = getelementptr i8* %line_arg218, i32 %filename_pos.1 ; [#uses=1] + %tmp28 = sub i32 %line_arg217, %filename_pos.1 ; [#uses=1] + %tmp29 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp28, i32* %tmp29 + %tmp30 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp27, i8** %tmp30 + %tmp32 = icmp ugt i32 %filename_pos.1, 1 ; [#uses=1] + br i1 %tmp32, label %if33, label %endif34 + +if33: ; preds = %endif + %tmp38 = add i32 %filename_pos.1, -1 ; [#uses=1] + %result.i = getelementptr %nest.delimit* %.frame.i, i32 0, i32 0 ; <%"char[][]"*> [#uses=2] + store %"char[][]" zeroinitializer, %"char[][]"* %result.i, align 8 + %1 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp.i, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp38, i32* %1, align 8 + %.sret_arg18.1.i.i = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp.i, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %line_arg218, i8** %.sret_arg18.1.i.i, align 4 + %.sret_arg.1.0.i.i = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp.i, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 1, i32* %.sret_arg.1.0.i.i, align 8 + %.sret_arg.1.1.i.i = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp.i, i32 0, i32 1, i32 1 ; [#uses=1] + store i8* getelementptr ([2 x i8]* @.str182, i32 0, i32 0), i8** %.sret_arg.1.1.i.i, align 4 + %tmp2.i225 = bitcast %nest.delimit* %.frame.i to i8* ; [#uses=1] + %tmp3.i = insertvalue %"int delegate(ref char[])" undef, i8* %tmp2.i225, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func.i = insertvalue %"int delegate(ref char[])" %tmp3.i, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util14__T7delimitTaZ7delimitFAaAaZAAa15__foreachbody43MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp4.i = call fastcc i32 @_D5tango4text4Util18__T10DelimFructTaZ10DelimFruct7opApplyMFDFKAaZiZi(%tango.net.ftp.FtpClient.FtpFeature* %.rettmp.i, %"int delegate(ref char[])" %.func.i) ; [#uses=0] + %tmp5.i226 = load %"char[][]"* %result.i, align 8 ; <%"char[][]"> [#uses=2] + %tmp43215 = extractvalue %"char[][]" %tmp5.i226, 0 ; [#uses=1] + %tmp43216 = extractvalue %"char[][]" %tmp5.i226, 1 ; <%"byte[]"*> [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %foreachnext, %if33 + %foreachkey.0 = phi i32 [ 0, %if33 ], [ %tmp85, %foreachnext ] ; [#uses=3] + %tmp49 = icmp ult i32 %foreachkey.0, %tmp43215 ; [#uses=1] + br i1 %tmp49, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp51 = getelementptr %"byte[]"* %tmp43216, i32 %foreachkey.0 ; <%"byte[]"*> [#uses=1] + %tmp52 = load %"byte[]"* %tmp51 ; <%"byte[]"> [#uses=2] + %tmp52213 = extractvalue %"byte[]" %tmp52, 0 ; [#uses=4] + %tmp52214 = extractvalue %"byte[]" %tmp52, 1 ; [#uses=4] + %tmp2.i.i = getelementptr i8* %tmp52214, i32 -1 ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %foreachbody + %len.0.i.i = phi i32 [ %tmp52213, %foreachbody ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %foreachbody ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, 61 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp16.i.i = ptrtoint i8* %tmp52214 to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, %tmp16.i.i ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit: ; preds = %if.i.i, %forcond.i.i + %tmp1318.i = phi i32 [ %tmp17.i.i, %if.i.i ], [ %tmp52213, %forcond.i.i ] ; [#uses=3] + %tmp58 = icmp eq i32 %tmp1318.i, %tmp52213 ; [#uses=1] + br i1 %tmp58, label %foreachnext, label %endif60 + +endif60: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp62 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 6 ; [#uses=1] + %tmp68 = insertvalue %"byte[]" undef, i32 %tmp1318.i, 0 ; <%"byte[]"> [#uses=1] + %tmp69 = insertvalue %"byte[]" %tmp68, i8* %tmp52214, 1 ; <%"byte[]"> [#uses=1] + %tmp70 = call fastcc %"byte[]" @_D5tango4text5Ascii7toLowerFAaAaZAa(%"byte[]" %tmp69, %"byte[]" zeroinitializer) ; <%"byte[]"> [#uses=1] + %tmp71 = bitcast i8** %tmp62 to %32* ; <%32*> [#uses=1] + store %"byte[]" %tmp70, %"byte[]"* %aatmpkeystorage, align 8 + %tmp72 = bitcast %"byte[]"* %aatmpkeystorage to i8* ; [#uses=1] + %aa.index = call i8* @_aaGet(%32* nocapture %tmp71, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 8, i8* nocapture %tmp72) ; [#uses=2] + %tmp77 = add i32 %tmp1318.i, 1 ; [#uses=2] + %tmp80 = getelementptr i8* %tmp52214, i32 %tmp77 ; [#uses=1] + %tmp81 = sub i32 %tmp52213, %tmp77 ; [#uses=1] + %tmp82 = bitcast i8* %aa.index to i32* ; [#uses=1] + store i32 %tmp81, i32* %tmp82 + %tmp83 = getelementptr i8* %aa.index, i32 4 ; [#uses=1] + %2 = bitcast i8* %tmp83 to i8** ; [#uses=1] + store i8* %tmp80, i8** %2 + br label %foreachnext + +foreachnext: ; preds = %endif60, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp85 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + %tmp86 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 6 ; [#uses=1] + %tmp87 = load i8** %tmp86 ; [#uses=1] + %tmp88 = bitcast i8* %tmp87 to %32* ; <%32*> [#uses=10] + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str183, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage89, align 8 + %tmp90 = bitcast %"byte[]"* %aatmpkeystorage89 to i8* ; [#uses=1] + %aa.in = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp90) readonly ; [#uses=1] + %tmp94 = icmp eq i8* %aa.in, null ; [#uses=1] + br i1 %tmp94, label %endif93, label %if92 + +if92: ; preds = %foreachend + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str188, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage98, align 8 + %tmp99 = bitcast %"byte[]"* %aatmpkeystorage98 to i8* ; [#uses=1] + %aa.index100 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp99) readonly ; [#uses=1] + %tmp101 = bitcast i8* %aa.index100 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp102 = load %"byte[]"* %tmp101 ; <%"byte[]"> [#uses=1] + %tmp103 = call fastcc %"byte[]" @_D5tango4text5Ascii7toLowerFAaAaZAa(%"byte[]" %tmp102, %"byte[]" zeroinitializer) ; <%"byte[]"> [#uses=1] + %tmp104 = call i32 @_d_switch_string(%"char[][]" { i32 4, %"byte[]"* getelementptr ([4 x %"byte[]"]* @.string_switch_table_data, i32 0, i32 0) }, %"byte[]" %tmp103) readonly ; [#uses=1] + switch i32 %tmp104, label %default115 [ + i32 2, label %case + i32 1, label %case106 + i32 3, label %case109 + i32 0, label %case112 + ] + +case: ; preds = %if92 + %tmp105 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 1, i32* %tmp105 + br label %endif93 + +case106: ; preds = %if92 + %tmp107 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 2, i32* %tmp107 + br label %endif93 + +case109: ; preds = %if92 + %tmp110 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 3, i32* %tmp110 + br label %endif93 + +case112: ; preds = %if92 + %tmp113 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 4, i32* %tmp113 + br label %endif93 + +default115: ; preds = %if92 + %tmp116 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 1 ; [#uses=1] + store i32 5, i32* %tmp116 + br label %endif93 + +endif93: ; preds = %default115, %case112, %case109, %case106, %case, %foreachend + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str189, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage120, align 8 + %tmp121 = bitcast %"byte[]"* %aatmpkeystorage120 to i8* ; [#uses=1] + %aa.in122 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp121) readonly ; [#uses=1] + %tmp126 = icmp eq i8* %aa.in122, null ; [#uses=1] + br i1 %tmp126, label %endif125, label %if124 + +if124: ; preds = %endif93 + %tmp127 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 2 ; [#uses=1] + store %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str190, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage131, align 8 + %tmp132 = bitcast %"byte[]"* %aatmpkeystorage131 to i8* ; [#uses=1] + %aa.index133 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp132) readonly ; [#uses=1] + %tmp134 = bitcast i8* %aa.index133 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp135 = load %"byte[]"* %tmp134 ; <%"byte[]"> [#uses=2] + %digits_arg26.i = extractvalue %"byte[]" %tmp135, 0 ; [#uses=3] + %digits_arg27.i = extractvalue %"byte[]" %tmp135, 1 ; [#uses=5] + %tmp4.i.i229 = icmp eq i32 %digits_arg26.i, 0 ; [#uses=1] + br i1 %tmp4.i.i229, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %forcond.i.i233 + +forcond.i.i233: ; preds = %forinc.i.i, %if124 + %sign.1.i = phi i1 [ false, %if124 ], [ %sign.0.i, %forinc.i.i ] ; [#uses=4] + %len.0.i.i230 = phi i32 [ %tmp33.i.i, %forinc.i.i ], [ %digits_arg26.i, %if124 ] ; [#uses=3] + %p.0.i.i231 = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %digits_arg27.i, %if124 ] ; [#uses=6] + %c.0.in.i.i = phi i8* [ %tmp30.i.i, %forinc.i.i ], [ %digits_arg27.i, %if124 ] ; [#uses=1] + %c.0.i.i = load i8* %c.0.in.i.i ; [#uses=2] + %tmp8.i.i232 = icmp eq i32 %len.0.i.i230, 0 ; [#uses=1] + br i1 %tmp8.i.i232, label %endfor.i.i235, label %forbody.i.i234 + +forbody.i.i234: ; preds = %forcond.i.i233 + switch i8 %c.0.i.i, label %endfor.i.i235 [ + i8 32, label %forinc.i.i + i8 9, label %forinc.i.i + i8 45, label %if20.i.i + i8 43, label %if26.i.i + ] + +if20.i.i: ; preds = %forbody.i.i234 + br label %forinc.i.i + +if26.i.i: ; preds = %forbody.i.i234 + br label %forinc.i.i + +forinc.i.i: ; preds = %if26.i.i, %if20.i.i, %forbody.i.i234, %forbody.i.i234 + %sign.0.i = phi i1 [ false, %if26.i.i ], [ true, %if20.i.i ], [ %sign.1.i, %forbody.i.i234 ], [ %sign.1.i, %forbody.i.i234 ] ; [#uses=1] + %tmp30.i.i = getelementptr i8* %p.0.i.i231, i32 1 ; [#uses=2] + %tmp33.i.i = add i32 %len.0.i.i230, -1 ; [#uses=1] + br label %forcond.i.i233 + +endfor.i.i235: ; preds = %forbody.i.i234, %forcond.i.i233 + %tmp37.i.i = icmp eq i8 %c.0.i.i, 48 ; [#uses=1] + %tmp39.i.i = icmp sgt i32 %len.0.i.i230, 1 ; [#uses=1] + %or.cond.i.i = and i1 %tmp37.i.i, %tmp39.i.i ; [#uses=1] + br i1 %or.cond.i.i, label %if40.i.i, label %endif41.i.i + +if40.i.i: ; preds = %endfor.i.i235 + %tmp43.i.i = getelementptr i8* %p.0.i.i231, i32 1 ; [#uses=2] + %tmp44.i.i = load i8* %tmp43.i.i ; [#uses=1] + %tmp45.i.i = zext i8 %tmp44.i.i to i32 ; [#uses=1] + switch i32 %tmp45.i.i, label %endif41.i.i [ + i32 120, label %case46.i.i + i32 88, label %case46.i.i + i32 98, label %case51.i.i + i32 66, label %case51.i.i + i32 111, label %case56.i.i + i32 79, label %case56.i.i + ] + +case46.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp48.i.i = getelementptr i8* %p.0.i.i231, i32 2 ; [#uses=1] + br label %endif41.i.i + +case51.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp53.i.i = getelementptr i8* %p.0.i.i231, i32 2 ; [#uses=1] + br label %endif41.i.i + +case56.i.i: ; preds = %if40.i.i, %if40.i.i + %tmp58.i.i = getelementptr i8* %p.0.i.i231, i32 2 ; [#uses=1] + br label %endif41.i.i + +endif41.i.i: ; preds = %case56.i.i, %case51.i.i, %case46.i.i, %if40.i.i, %endfor.i.i235 + %r.0.i.i = phi i32 [ 0, %if40.i.i ], [ 8, %case56.i.i ], [ 2, %case51.i.i ], [ 16, %case46.i.i ], [ 0, %endfor.i.i235 ] ; [#uses=2] + %p.2.i.i = phi i8* [ %tmp43.i.i, %if40.i.i ], [ %tmp58.i.i, %case56.i.i ], [ %tmp53.i.i, %case51.i.i ], [ %tmp48.i.i, %case46.i.i ], [ %p.0.i.i231, %endfor.i.i235 ] ; [#uses=2] + %tmp63.i.i = icmp eq i32 %r.0.i.i, 0 ; [#uses=1] + br i1 %tmp63.i.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i, label %if70.i.i + +if70.i.i: ; preds = %endif41.i.i + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i: ; preds = %if70.i.i, %endif41.i.i, %if124 + %sign.2.i = phi i1 [ false, %if124 ], [ %sign.1.i, %if70.i.i ], [ %sign.1.i, %endif41.i.i ] ; [#uses=1] + %radix.0.i = phi i32 [ 0, %if124 ], [ %r.0.i.i, %if70.i.i ], [ 10, %endif41.i.i ] ; [#uses=2] + %p.1.i.i = phi i8* [ %p.2.i.i, %if70.i.i ], [ %digits_arg27.i, %if124 ], [ %p.2.i.i, %endif41.i.i ] ; [#uses=1] + %tmp84.i.i = ptrtoint i8* %p.1.i.i to i32 ; [#uses=1] + %tmp85.i.i = ptrtoint i8* %digits_arg27.i to i32 ; [#uses=1] + %tmp86.i.i = sub i32 %tmp84.i.i, %tmp85.i.i ; [#uses=2] + %tmp6.i = sub i32 %digits_arg26.i, %tmp86.i.i ; [#uses=1] + br label %foreachcond.i.i + +foreachcond.i.i: ; preds = %if55.i.i, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i + %value.0.i.i = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp65.i.i, %if55.i.i ] ; [#uses=3] + %foreachkey.0.i.i = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit.i ], [ %tmp70.i.i, %if55.i.i ] ; [#uses=3] + %tmp3.i.i = icmp ult i32 %foreachkey.0.i.i, %tmp6.i ; [#uses=1] + br i1 %tmp3.i.i, label %foreachbody.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +foreachbody.i.i: ; preds = %foreachcond.i.i + %tmp5.sum.i = add i32 %tmp86.i.i, %foreachkey.0.i.i ; [#uses=1] + %tmp5.i.i236 = getelementptr i8* %digits_arg27.i, i32 %tmp5.sum.i ; [#uses=1] + %tmp6.i.i = load i8* %tmp5.i.i236 ; [#uses=6] + %tmp6.off84.i.i = add i8 %tmp6.i.i, -48 ; [#uses=1] + %or.cond.i28.i = icmp ugt i8 %tmp6.off84.i.i, 9 ; [#uses=1] + br i1 %or.cond.i28.i, label %else.i.i, label %endif.i.i + +else.i.i: ; preds = %foreachbody.i.i + %tmp6.off83.i.i = add i8 %tmp6.i.i, -97 ; [#uses=1] + %or.cond81.i.i = icmp ugt i8 %tmp6.off83.i.i, 25 ; [#uses=1] + br i1 %or.cond81.i.i, label %else24.i.i, label %if22.i.i + +if22.i.i: ; preds = %else.i.i + %tmp27.i.i = add i8 %tmp6.i.i, -39 ; [#uses=1] + br label %endif.i.i + +else24.i.i: ; preds = %else.i.i + %tmp6.off.i.i = add i8 %tmp6.i.i, -65 ; [#uses=1] + %or.cond82.i.i = icmp ugt i8 %tmp6.off.i.i, 25 ; [#uses=1] + br i1 %or.cond82.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit, label %if39.i.i + +if39.i.i: ; preds = %else24.i.i + %tmp44.i29.i = add i8 %tmp6.i.i, -7 ; [#uses=1] + br label %endif.i.i + +endif.i.i: ; preds = %if39.i.i, %if22.i.i, %foreachbody.i.i + %c.0.i30.i = phi i8 [ %tmp27.i.i, %if22.i.i ], [ %tmp44.i29.i, %if39.i.i ], [ %tmp6.i.i, %foreachbody.i.i ] ; [#uses=1] + %tmp48.i31.i = zext i8 %c.0.i30.i to i32 ; [#uses=1] + %tmp49.i.i = add i32 %tmp48.i31.i, 208 ; [#uses=1] + %tmp52.i.i = and i32 %tmp49.i.i, 255 ; [#uses=2] + %tmp54.i.i = icmp ult i32 %tmp52.i.i, %radix.0.i ; [#uses=1] + br i1 %tmp54.i.i, label %if55.i.i, label %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit + +if55.i.i: ; preds = %endif.i.i + %tmp59.i.i = zext i32 %radix.0.i to i64 ; [#uses=1] + %tmp61.i.i = mul i64 %value.0.i.i, %tmp59.i.i ; [#uses=1] + %tmp64.i.i = zext i32 %tmp52.i.i to i64 ; [#uses=1] + %tmp65.i.i = add i64 %tmp61.i.i, %tmp64.i.i ; [#uses=1] + %tmp70.i.i = add i32 %foreachkey.0.i.i, 1 ; [#uses=1] + br label %foreachcond.i.i + +_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit: ; preds = %endif.i.i, %else24.i.i, %foreachcond.i.i + %negval.i = sub i64 0, %value.0.i.i ; [#uses=1] + %condtmp.0.i = select i1 %sign.2.i, i64 %negval.i, i64 %value.0.i.i ; [#uses=1] + store i64 %condtmp.0.i, i64* %tmp127 + br label %endif125 + +endif125: ; preds = %_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl.exit, %endif93 + store %"byte[]" { i32 10, i8* getelementptr ([11 x i8]* @.str191, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage140, align 8 + %tmp141 = bitcast %"byte[]"* %aatmpkeystorage140 to i8* ; [#uses=1] + %aa.in142 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp141) readonly ; [#uses=1] + %tmp146 = icmp eq i8* %aa.in142, null ; [#uses=1] + br i1 %tmp146, label %endif145, label %if144 + +if144: ; preds = %endif125 + %tmp147 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 5 ; <%"byte[]"*> [#uses=1] + store %"byte[]" { i32 10, i8* getelementptr ([11 x i8]* @.str192, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage151, align 8 + %tmp152 = bitcast %"byte[]"* %aatmpkeystorage151 to i8* ; [#uses=1] + %aa.index153 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp152) readonly ; [#uses=1] + %tmp154 = bitcast i8* %aa.index153 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp155 = load %"byte[]"* %tmp154 ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp155, %"byte[]"* %tmp147 + br label %endif145 + +endif145: ; preds = %if144, %endif125 + store %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str193, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage159, align 8 + %tmp160 = bitcast %"byte[]"* %aatmpkeystorage159 to i8* ; [#uses=1] + %aa.in161 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp160) readonly ; [#uses=1] + %tmp165 = icmp eq i8* %aa.in161, null ; [#uses=1] + br i1 %tmp165, label %endif164, label %if163 + +if163: ; preds = %endif145 + %tmp168 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp169 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp168 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parseTimeval@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp169, i32 0, i32 31 ; [#uses=1] + %this.parseTimeval = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.parseTimeval@vtbl", align 4 ; [#uses=1] + store %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str194, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage174, align 8 + %tmp175 = bitcast %"byte[]"* %aatmpkeystorage174 to i8* ; [#uses=1] + %aa.index176 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp175) readonly ; [#uses=1] + %tmp177 = bitcast i8* %aa.index176 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp178 = load %"byte[]"* %tmp177 ; <%"byte[]"> [#uses=1] + call fastcc void %this.parseTimeval(%tango.time.Time.Time* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %tmp178) + %tmp180219 = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp221 = load i64* %tmp180219, align 8 ; [#uses=1] + %3 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 3, i32 0 ; [#uses=1] + store i64 %tmp221, i64* %3 + br label %endif164 + +endif164: ; preds = %if163, %endif145 + store %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str195, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage184, align 8 + %tmp185 = bitcast %"byte[]"* %aatmpkeystorage184 to i8* ; [#uses=1] + %aa.in186 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp185) readonly ; [#uses=1] + %tmp190 = icmp eq i8* %aa.in186, null ; [#uses=1] + br i1 %tmp190, label %endif34, label %if188 + +if188: ; preds = %endif164 + %tmp193 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp194 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp193 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.parseTimeval@vtbl195" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp194, i32 0, i32 31 ; [#uses=1] + %this.parseTimeval197 = load void (%tango.time.Time.Time*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.parseTimeval@vtbl195", align 4 ; [#uses=1] + store %"byte[]" { i32 6, i8* getelementptr ([7 x i8]* @.str196, i32 0, i32 0) }, %"byte[]"* %aatmpkeystorage202, align 8 + %tmp203 = bitcast %"byte[]"* %aatmpkeystorage202 to i8* ; [#uses=1] + %aa.index204 = call i8* @_aaIn(%32* nocapture %tmp88, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i8* nocapture %tmp203) readonly ; [#uses=1] + %tmp205 = bitcast i8* %aa.index204 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp206 = load %"byte[]"* %tmp205 ; <%"byte[]"> [#uses=1] + call fastcc void %this.parseTimeval197(%tango.time.Time.Time* noalias nocapture sret %.rettmp198, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %tmp206) + %tmp208222 = getelementptr %tango.time.Time.Time* %.rettmp198, i32 0, i32 0 ; [#uses=1] + %tmp224 = load i64* %tmp208222, align 8 ; [#uses=1] + %4 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %info, i32 0, i32 4, i32 0 ; [#uses=1] + store i64 %tmp224, i64* %4 + br label %endif34 + +endif34: ; preds = %if188, %endif164, %endif + %tmp209 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp209, i8* %tmp, i32 48, i32 1) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection11getFileInfoMFAaZS5tango3net3ftp9FtpClient11FtpFileInfo(%tango.net.ftp.FtpClient.FtpFileInfo* noalias nocapture sret %.sret_arg, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp3 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp2 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.ls@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp3, i32 0, i32 46 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")**> [#uses=1] + %this.ls = load %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.ls@vtbl", align 4 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*> [#uses=1] + %tmp6 = tail call fastcc %"FtpFileInfo[]" %this.ls(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) ; <%"FtpFileInfo[]"> [#uses=2] + %tmp699 = extractvalue %"FtpFileInfo[]" %tmp6, 0 ; [#uses=1] + %tmp8 = icmp eq i32 %tmp699, 1 ; [#uses=1] + br i1 %tmp8, label %if, label %else + +if: ; preds = %entry + %tmp6100 = extractvalue %"FtpFileInfo[]" %tmp6, 1 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=1] + %tmp11 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + %tmp12 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %tmp6100 to i8* ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp11, i8* %tmp12, i32 48, i32 1) + ret void + +else: ; preds = %entry + %tmp15 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp2 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendListCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp15, i32 0, i32 49 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")**> [#uses=1] + %this.sendListCommand = load %"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.sendListCommand@vtbl", align 4 ; <%"FtpFileInfo[]" (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")*> [#uses=1] + %tmp18 = tail call fastcc %"FtpFileInfo[]" %this.sendListCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) ; <%"FtpFileInfo[]"> [#uses=2] + %tmp1897 = extractvalue %"FtpFileInfo[]" %tmp18, 0 ; [#uses=2] + %tmp1898 = extractvalue %"FtpFileInfo[]" %tmp18, 1 ; <%tango.net.ftp.FtpClient.FtpFileInfo*> [#uses=10] + switch i32 %tmp1897, label %foreachcond [ + i32 0, label %if22 + i32 1, label %endif34 + ] + +if22: ; preds = %else + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango3net3ftp9FtpClient12FtpException7__ClassZ) ; [#uses=6] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.net.ftp.FtpClient.FtpException.__vtbl** ; <%tango.net.ftp.FtpClient.FtpException.__vtbl**> [#uses=1] + store %tango.net.ftp.FtpClient.FtpException.__vtbl* @_D5tango3net3ftp9FtpClient12FtpException6__vtblZ, %tango.net.ftp.FtpClient.FtpException.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp24 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* bitcast (%"byte[]"* getelementptr (%tango.net.ftp.FtpClient.FtpException* @_D5tango3net3ftp9FtpClient12FtpException6__initZ, i32 0, i32 2) to i8*), i32 31, i32 1) + %tmp2.i = getelementptr i8* %.newclass_gc_alloc, i32 36 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i, i8* getelementptr ([4 x i8]* @.str198, i32 0, i32 0), i32 3, i32 1) + %tmp5.i = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %tmp7.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %tmp5.i, %"byte[]" { i32 37, i8* getelementptr ([38 x i8]* @.str197, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp29 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp29) + unreachable + +foreachcond: ; preds = %foreachnext, %else + %foreachkey.0 = phi i32 [ %tmp54, %foreachnext ], [ 0, %else ] ; [#uses=11] + %tmp40 = icmp ult i32 %foreachkey.0, %tmp1897 ; [#uses=1] + br i1 %tmp40, label %foreachbody, label %endif34 + +foreachbody: ; preds = %foreachcond + %tmp42.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 1 ; [#uses=1] + %tmp74 = load i32* %tmp42.1, align 8 ; [#uses=2] + %tmp47 = icmp eq i32 %tmp74, 2 ; [#uses=1] + br i1 %tmp47, label %if48, label %foreachnext + +if48: ; preds = %foreachbody + %tmp4291.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 0, i32 0 ; [#uses=1] + %tmp92 = load i32* %tmp4291.0 ; [#uses=1] + %tmp4291.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 0, i32 1 ; [#uses=1] + %tmp93 = load i8** %tmp4291.1, align 4 ; [#uses=1] + %tmp42.2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 2 ; [#uses=1] + %tmp75 = load i64* %tmp42.2, align 4 ; [#uses=1] + %tmp42.3.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 3, i32 0 ; [#uses=1] + %tmp89 = load i64* %tmp42.3.0, align 4 ; [#uses=1] + %tmp42.4.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 4, i32 0 ; [#uses=1] + %tmp87 = load i64* %tmp42.4.0, align 4 ; [#uses=1] + %tmp42.5.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 5, i32 0 ; [#uses=1] + %tmp83 = load i32* %tmp42.5.0, align 4 ; [#uses=1] + %tmp42.5.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 5, i32 1 ; [#uses=1] + %tmp84 = load i8** %tmp42.5.1, align 4 ; [#uses=1] + %tmp42.6 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898, i32 %foreachkey.0, i32 6 ; [#uses=1] + %tmp82 = load i8** %tmp42.6, align 4 ; [#uses=1] + %1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %tmp92, i32* %1 + %.sret_arg94.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %tmp93, i8** %.sret_arg94.1, align 4 + %.sret_arg.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 1 ; [#uses=1] + store i32 %tmp74, i32* %.sret_arg.1, align 8 + %.sret_arg.2 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 2 ; [#uses=1] + store i64 %tmp75, i64* %.sret_arg.2, align 4 + %.sret_arg.3.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 3, i32 0 ; [#uses=1] + store i64 %tmp89, i64* %.sret_arg.3.0, align 4 + %.sret_arg.4.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 4, i32 0 ; [#uses=1] + store i64 %tmp87, i64* %.sret_arg.4.0, align 4 + %.sret_arg.5.0 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 5, i32 0 ; [#uses=1] + store i32 %tmp83, i32* %.sret_arg.5.0, align 4 + %.sret_arg.5.1 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 5, i32 1 ; [#uses=1] + store i8* %tmp84, i8** %.sret_arg.5.1, align 4 + %.sret_arg.6 = getelementptr %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg, i32 0, i32 6 ; [#uses=1] + store i8* %tmp82, i8** %.sret_arg.6, align 4 + ret void + +foreachnext: ; preds = %foreachbody + %tmp54 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +endif34: ; preds = %foreachcond, %else + %tmp58 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %.sret_arg to i8* ; [#uses=1] + %tmp59 = bitcast %tango.net.ftp.FtpClient.FtpFileInfo* %tmp1898 to i8* ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp58, i8* %tmp59, i32 48, i32 1) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection3putMFAaAaDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %"byte[]" %local_file_arg, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) { +entry: + %style_arg = alloca i32, align 8 ; [#uses=2] + %tmpcast = bitcast i32* %style_arg to %tango.io.device.File.File.Style* ; <%tango.io.device.File.File.Style*> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango2io6device4File4File7__ClassZ) ; [#uses=10] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.io.device.File.File* ; <%tango.io.device.File.File*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.io.device.File.File.__vtbl** ; <%tango.io.device.File.File.__vtbl**> [#uses=3] + store %tango.io.device.File.File.__vtbl* @_D5tango2io6device4File4File6__vtblZ, %tango.io.device.File.File.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (%13** getelementptr (%tango.io.device.File.File* bitcast (%27* @_D5tango2io6device4File4File6__initZ to %tango.io.device.File.File*), i32 0, i32 2) to i8*), i32 32, i32 1) + %tmp50 = load i32* bitcast (%tango.io.device.File.File.Style* @_D5tango2io6device4File4File12ReadExistingS5tango2io6device4File4File5Style to i32*), align 1 ; [#uses=1] + store i32 %tmp50, i32* %style_arg, align 8 + %tmp2.i = load %tango.io.device.File.File.__vtbl** %vtbl ; <%tango.io.device.File.File.__vtbl*> [#uses=1] + %"this.open@vtbl.i" = getelementptr %tango.io.device.File.File.__vtbl* %tmp2.i, i32 0, i32 18 ; [#uses=1] + %this.open.i = load void (%tango.io.device.File.File*, %"byte[]", %tango.io.device.File.File.Style*)** %"this.open@vtbl.i", align 4 ; [#uses=1] + tail call fastcc void %this.open.i(%tango.io.device.File.File* %.newclass_gc, %"byte[]" %local_file_arg, %tango.io.device.File.File.Style* byval %tmpcast) + %tmp13 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 7 ; [#uses=2] + %tmp14 = load i32* %tmp13 ; [#uses=2] + %tmp15 = icmp eq i32 %tmp14, 0 ; [#uses=1] + br i1 %tmp15, label %endif, label %if + +if: ; preds = %entry + %tmp18 = load %tango.io.device.File.File.__vtbl** %vtbl ; <%tango.io.device.File.File.__vtbl*> [#uses=1] + %"file.seek@vtbl" = getelementptr %tango.io.device.File.File.__vtbl* %tmp18, i32 0, i32 13 ; [#uses=1] + %file.seek = load i64 (%tango.io.device.File.File*, i64, i32)** %"file.seek@vtbl", align 4 ; [#uses=1] + %tmp23 = zext i32 %tmp14 to i64 ; [#uses=1] + %tmp24 = invoke fastcc i64 %file.seek(%tango.io.device.File.File* %.newclass_gc, i64 %tmp23, i32 0) + to label %postinvoke unwind label %landingpad ; [#uses=0] + +postinvoke: ; preds = %if + store i32 0, i32* %tmp13 + br label %endif + +endif: ; preds = %postinvoke, %entry + %tmp28 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp29 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp28 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.put@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp29, i32 0, i32 54 ; [#uses=1] + %this.put = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)", i32)** %"this.put@vtbl", align 4 ; [#uses=1] + %tmp34 = bitcast i8* %tmp to %tango.io.model.IConduit.InputStream* ; <%tango.io.model.IConduit.InputStream*> [#uses=1] + invoke fastcc void %this.put(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %tango.io.model.IConduit.InputStream* %tmp34, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) + to label %finally unwind label %landingpad + +finally: ; preds = %endif + %tmp39 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device* ; <%tango.io.device.Device.Device*> [#uses=1] + %tmp40 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device.__vtbl** ; <%tango.io.device.Device.Device.__vtbl**> [#uses=1] + %tmp41 = load %tango.io.device.Device.Device.__vtbl** %tmp40 ; <%tango.io.device.Device.Device.__vtbl*> [#uses=1] + %"(cast(Device)file).detach@vtbl42" = getelementptr %tango.io.device.Device.Device.__vtbl* %tmp41, i32 0, i32 8 ; [#uses=1] + %"(cast(Device)file).detach44" = load void (%tango.io.device.Device.Device*)** %"(cast(Device)file).detach@vtbl42", align 4 ; [#uses=1] + tail call fastcc void %"(cast(Device)file).detach44"(%tango.io.device.Device.Device* %tmp39) + %.tmp46 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_delclass(%object.Object* %.tmp46) + ret void + +landingpad: ; preds = %endif, %if + %1 = tail call i8* @llvm.eh.exception() ; [#uses=2] + %2 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %1, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %tmp7 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device* ; <%tango.io.device.Device.Device*> [#uses=1] + %tmp8 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device.__vtbl** ; <%tango.io.device.Device.Device.__vtbl**> [#uses=1] + %tmp9 = load %tango.io.device.Device.Device.__vtbl** %tmp8 ; <%tango.io.device.Device.Device.__vtbl*> [#uses=1] + %"(cast(Device)file).detach@vtbl" = getelementptr %tango.io.device.Device.Device.__vtbl* %tmp9, i32 0, i32 8 ; [#uses=1] + %"(cast(Device)file).detach" = load void (%tango.io.device.Device.Device*)** %"(cast(Device)file).detach@vtbl", align 4 ; [#uses=1] + tail call fastcc void %"(cast(Device)file).detach"(%tango.io.device.Device.Device* %tmp7) + %.tmp = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_delclass(%object.Object* %.tmp) + tail call void @_d_eh_resume_unwind(i8* %1) + unreachable +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection3putMFAaC5tango2io5model8IConduit11InputStreamDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %tango.io.model.IConduit.InputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) { +entry: + %__arrayArg150 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=4] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.type@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 29 ; [#uses=1] + %this.type = load void (%tango.net.ftp.FtpClient.FTPConnection*, i32)** %"this.type@vtbl", align 4 ; [#uses=1] + call fastcc void %this.type(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 %format_arg) + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=1] + %tmp9 = getelementptr [1 x %"byte[]"]* %__arrayArg150, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp9, align 8 + %tmp12 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp9, 1 ; <%"char[][]"> [#uses=1] + %tmp13 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str199, i32 0, i32 0) }, %"char[][]" %tmp12) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp15 = icmp eq %tango.io.model.IConduit.InputStream* %stream_arg, null ; [#uses=1] + br i1 %tmp15, label %endif, label %if + +if: ; preds = %entry + %tmp18 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendStream@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp18, i32 0, i32 48 ; [#uses=1] + %this.sendStream = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)")** %"this.sendStream@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp13, %tango.io.model.IConduit.InputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg) + br label %endif + +endif: ; preds = %if, %entry + %tmp25 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp25, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp13) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection6appendMFAaC5tango2io5model8IConduit11InputStreamDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %tango.io.model.IConduit.InputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) { +entry: + %__arrayArg151 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=4] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.type@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 29 ; [#uses=1] + %this.type = load void (%tango.net.ftp.FtpClient.FTPConnection*, i32)** %"this.type@vtbl", align 4 ; [#uses=1] + call fastcc void %this.type(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 %format_arg) + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=1] + %tmp9 = getelementptr [1 x %"byte[]"]* %__arrayArg151, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp9, align 8 + %tmp12 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp9, 1 ; <%"char[][]"> [#uses=1] + %tmp13 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str200, i32 0, i32 0) }, %"char[][]" %tmp12) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp16 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendStream@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp16, i32 0, i32 48 ; [#uses=1] + %this.sendStream = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.InputStream*, %"void delegate(uint pos)")** %"this.sendStream@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp13, %tango.io.model.IConduit.InputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg) + %tmp23 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp23, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp13) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection11restartSeekMFkZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 %offset_arg) { +entry: + %tmp = alloca [16 x i8], align 1 ; <[16 x i8]*> [#uses=3] + %__arrayArg152 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr [16 x i8]* %tmp, i32 0, i32 0 ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp1, i8 -1, i32 16, i32 1) + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp4 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp4, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp6 = getelementptr [1 x %"byte[]"]* %__arrayArg152, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + %tmp49.i = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 2) ; <%"byte[]"> [#uses=1] + %tmp49178.i = extractvalue %"byte[]" %tmp49.i, 1 ; [#uses=1] + %tmp52.i = load i32* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 0), align 8 ; [#uses=2] + %tmp56.i = getelementptr [16 x i8]* %tmp, i32 0, i32 16 ; [#uses=1] + br label %dowhile.i + +dowhile.i: ; preds = %andand.i, %entry + %p.0.i = phi i8* [ %tmp65.i, %andand.i ], [ %tmp56.i, %entry ] ; [#uses=1] + %v.0.i = phi i32 [ %tmp75.i, %andand.i ], [ %offset_arg, %entry ] ; [#uses=2] + %len.0.i = phi i32 [ %tmp78.i, %andand.i ], [ 16, %entry ] ; [#uses=3] + %tmp65.i = getelementptr i8* %p.0.i, i32 -1 ; [#uses=2] + %tmp68.i = urem i32 %v.0.i, %tmp52.i ; [#uses=1] + %tmp71.i = getelementptr i8* %tmp49178.i, i32 %tmp68.i ; [#uses=1] + %tmp72.i = load i8* %tmp71.i ; [#uses=1] + store i8 %tmp72.i, i8* %tmp65.i + %tmp75.i = udiv i32 %v.0.i, %tmp52.i ; [#uses=2] + %tmp76.i = icmp eq i32 %tmp75.i, 0 ; [#uses=1] + br i1 %tmp76.i, label %condtrue.i, label %andand.i + +andand.i: ; preds = %dowhile.i + %tmp78.i = add i32 %len.0.i, -1 ; [#uses=2] + %tmp79.i = icmp eq i32 %len.0.i, 1 ; [#uses=1] + br i1 %tmp79.i, label %condtrue.i, label %dowhile.i + +condtrue.i: ; preds = %andand.i, %dowhile.i + %len.1.i = phi i32 [ %tmp78.i, %andand.i ], [ %len.0.i, %dowhile.i ] ; [#uses=2] + %tmp112.i = load %"byte[]"* getelementptr ([8 x %nest.parseListLine]* @.constarray262, i32 0, i32 0, i32 1) ; <%"byte[]"> [#uses=2] + %condtmp.0175.i = extractvalue %"byte[]" %tmp112.i, 0 ; [#uses=3] + %tmp117.i = icmp ugt i32 %len.1.i, %condtmp.0175.i ; [#uses=1] + br i1 %tmp117.i, label %if118.i, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +if118.i: ; preds = %condtrue.i + %condtmp.0176.i = extractvalue %"byte[]" %tmp112.i, 1 ; [#uses=1] + %tmp123.i = add i32 %condtmp.0175.i, 1 ; [#uses=1] + %tmp124.i = sub i32 %len.1.i, %tmp123.i ; [#uses=2] + %tmp156.i = getelementptr [16 x i8]* %tmp, i32 0, i32 %tmp124.i ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i, i8* %condtmp.0176.i, i32 %condtmp.0175.i, i32 1) + %tmp170.i = sub i32 16, %tmp124.i ; [#uses=1] + %tmp171.i = insertvalue %"byte[]" undef, i32 %tmp170.i, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i = insertvalue %"byte[]" %tmp171.i, i8* %tmp156.i, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit: ; preds = %if118.i, %condtrue.i + %tmp6.i21 = phi %"byte[]" [ %tmp172.i, %if118.i ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i21, %"byte[]"* %tmp6, align 8 + %tmp13 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp6, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str201, i32 0, i32 0) }, %"char[][]" %tmp13) + %tmp16 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp16, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str202, i32 0, i32 0) }) + %tmp19 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 7 ; [#uses=1] + store i32 %offset_arg, i32* %tmp19 + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection8allocateMFlZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i64 %bytes_arg) { +entry: + %tmp = alloca [16 x i8], align 1 ; <[16 x i8]*> [#uses=3] + %__arrayArg153 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %response = alloca %tango.net.ftp.FtpClient.FtpResponse, align 4 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=2] + %tmp1 = getelementptr [16 x i8]* %tmp, i32 0, i32 0 ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp1, i8 -1, i32 16, i32 1) + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=3] + %tmp4 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp4, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + %tmp6 = getelementptr [1 x %"byte[]"]* %__arrayArg153, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + %tmp10.i = icmp slt i64 %bytes_arg, 0 ; [#uses=1] + %negval.i = sub i64 0, %bytes_arg ; [#uses=1] + %bytes_arg.lobit = lshr i64 %bytes_arg, 63 ; [#uses=1] + %tmp36 = trunc i64 %bytes_arg.lobit to i32 ; [#uses=3] + %i.1.i = select i1 %tmp10.i, i64 %negval.i, i64 %bytes_arg ; [#uses=3] + %tmp48.i = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %tmp36, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp49.i = load %"byte[]"* %tmp48.i ; <%"byte[]"> [#uses=1] + %tmp49178.i = extractvalue %"byte[]" %tmp49.i, 1 ; [#uses=2] + %tmp51.i = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %tmp36, i32 0 ; [#uses=1] + %tmp52.i = load i32* %tmp51.i ; [#uses=3] + %tmp56.i = getelementptr [16 x i8]* %tmp, i32 0, i32 16 ; [#uses=2] + %tmp58.i = icmp ugt i64 %i.1.i, 4294967295 ; [#uses=1] + br i1 %tmp58.i, label %dowhile82.i, label %if59.i + +if59.i: ; preds = %entry + %tmp63.i = trunc i64 %i.1.i to i32 ; [#uses=1] + br label %dowhile.i + +dowhile.i: ; preds = %andand.i, %if59.i + %p.0.i = phi i8* [ %tmp56.i, %if59.i ], [ %tmp65.i, %andand.i ] ; [#uses=1] + %v.0.i = phi i32 [ %tmp63.i, %if59.i ], [ %tmp75.i, %andand.i ] ; [#uses=2] + %len.0.i = phi i32 [ 16, %if59.i ], [ %tmp78.i, %andand.i ] ; [#uses=3] + %tmp65.i = getelementptr i8* %p.0.i, i32 -1 ; [#uses=2] + %tmp68.i = urem i32 %v.0.i, %tmp52.i ; [#uses=1] + %tmp71.i = getelementptr i8* %tmp49178.i, i32 %tmp68.i ; [#uses=1] + %tmp72.i = load i8* %tmp71.i ; [#uses=1] + store i8 %tmp72.i, i8* %tmp65.i + %tmp75.i = udiv i32 %v.0.i, %tmp52.i ; [#uses=2] + %tmp76.i = icmp eq i32 %tmp75.i, 0 ; [#uses=1] + br i1 %tmp76.i, label %condtrue.i, label %andand.i + +andand.i: ; preds = %dowhile.i + %tmp78.i = add i32 %len.0.i, -1 ; [#uses=2] + %tmp79.i = icmp eq i32 %len.0.i, 1 ; [#uses=1] + br i1 %tmp79.i, label %condtrue.i, label %dowhile.i + +dowhile82.i: ; preds = %andand100.i, %entry + %p.2.i = phi i8* [ %tmp86.i, %andand100.i ], [ %tmp56.i, %entry ] ; [#uses=1] + %v80.0.i = phi i64 [ %tmp99.i, %andand100.i ], [ %i.1.i, %entry ] ; [#uses=2] + %len.2.i = phi i32 [ %tmp104.i, %andand100.i ], [ 16, %entry ] ; [#uses=3] + %tmp86.i = getelementptr i8* %p.2.i, i32 -1 ; [#uses=2] + %tmp88.i = zext i32 %tmp52.i to i64 ; [#uses=2] + %tmp90.i = urem i64 %v80.0.i, %tmp88.i ; [#uses=1] + %tmp91.i = trunc i64 %tmp90.i to i32 ; [#uses=1] + %tmp94.i = getelementptr i8* %tmp49178.i, i32 %tmp91.i ; [#uses=1] + %tmp95.i = load i8* %tmp94.i ; [#uses=1] + store i8 %tmp95.i, i8* %tmp86.i + %tmp99.i = udiv i64 %v80.0.i, %tmp88.i ; [#uses=2] + %tmp102.i = icmp eq i64 %tmp99.i, 0 ; [#uses=1] + br i1 %tmp102.i, label %condtrue.i, label %andand100.i + +andand100.i: ; preds = %dowhile82.i + %tmp104.i = add i32 %len.2.i, -1 ; [#uses=2] + %tmp105.i = icmp eq i32 %len.2.i, 1 ; [#uses=1] + br i1 %tmp105.i, label %condtrue.i, label %dowhile82.i + +condtrue.i: ; preds = %andand100.i, %dowhile82.i, %andand.i, %dowhile.i + %len.1.i = phi i32 [ %tmp78.i, %andand.i ], [ %len.0.i, %dowhile.i ], [ %tmp104.i, %andand100.i ], [ %len.2.i, %dowhile82.i ] ; [#uses=2] + %tmp111.i = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %tmp36, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp112.i = load %"byte[]"* %tmp111.i ; <%"byte[]"> [#uses=2] + %condtmp.0175.i = extractvalue %"byte[]" %tmp112.i, 0 ; [#uses=3] + %tmp117.i = icmp ugt i32 %len.1.i, %condtmp.0175.i ; [#uses=1] + br i1 %tmp117.i, label %if118.i, label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +if118.i: ; preds = %condtrue.i + %condtmp.0176.i = extractvalue %"byte[]" %tmp112.i, 1 ; [#uses=1] + %tmp123.i = add i32 %condtmp.0175.i, 1 ; [#uses=1] + %tmp124.i = sub i32 %len.1.i, %tmp123.i ; [#uses=2] + %tmp156.i = getelementptr [16 x i8]* %tmp, i32 0, i32 %tmp124.i ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp156.i, i8* %condtmp.0176.i, i32 %condtmp.0175.i, i32 1) + %tmp170.i = sub i32 16, %tmp124.i ; [#uses=1] + %tmp171.i = insertvalue %"byte[]" undef, i32 %tmp170.i, 0 ; <%"byte[]"> [#uses=1] + %tmp172.i = insertvalue %"byte[]" %tmp171.i, i8* %tmp156.i, 1 ; <%"byte[]"> [#uses=1] + br label %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + +_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit: ; preds = %if118.i, %condtrue.i + %tmp6.i35 = phi %"byte[]" [ %tmp172.i, %if118.i ], [ { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) }, %condtrue.i ] ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp6.i35, %"byte[]"* %tmp6, align 8 + %tmp12 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp6, 1 ; <%"char[][]"> [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str203, i32 0, i32 0) }, %"char[][]" %tmp12) + %tmp15 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp15, i32 0, i32 37 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*)** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg) + %tmp17 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %response, i32 0, i32 0, i32 0 ; [#uses=3] + %tmp18 = getelementptr %tango.net.ftp.FtpClient.FtpResponse* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp17, i8* %tmp18, i32 12, i32 4) + %tmp21 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp17, 1 ; <%"byte[]"> [#uses=1] + %tmp22 = call i32 @_adEq(%"byte[]" %tmp21, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str204, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp23 = icmp eq i32 %tmp22, 0 ; [#uses=1] + br i1 %tmp23, label %andand, label %endif + +andand: ; preds = %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + %tmp27 = insertvalue %"byte[]" { i32 3, i8* undef }, i8* %tmp17, 1 ; <%"byte[]"> [#uses=1] + %tmp28 = call i32 @_adEq(%"byte[]" %tmp27, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str205, i32 0, i32 0) }, %object.TypeInfo* @_D11TypeInfo_Aa6__initZ) readonly ; [#uses=1] + %tmp29 = icmp eq i32 %tmp28, 0 ; [#uses=1] + br i1 %tmp29, label %if, label %endif + +if: ; preds = %andand + %tmp33 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.exception@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp33, i32 0, i32 14 ; [#uses=1] + %this.exception = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpResponse*)** %"this.exception@vtbl", align 4 ; [#uses=1] + call fastcc void %this.exception(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpResponse* byval %response) + ret void + +endif: ; preds = %andand, %_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa.exit + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection3getMFAaAaDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %"byte[]" %local_file_arg, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) { +entry: + %style_arg57 = alloca i32, align 8 ; [#uses=2] + %style_arg = alloca i32, align 8 ; [#uses=2] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 7 ; [#uses=3] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp3 = icmp eq i32 %tmp2, 0 ; [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango2io6device4File4File7__ClassZ) ; [#uses=11] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %tango.io.device.File.File* ; <%tango.io.device.File.File*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %tango.io.device.File.File.__vtbl** ; <%tango.io.device.File.File.__vtbl**> [#uses=4] + store %tango.io.device.File.File.__vtbl* @_D5tango2io6device4File4File6__vtblZ, %tango.io.device.File.File.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp4 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4, i8* bitcast (%13** getelementptr (%tango.io.device.File.File* bitcast (%27* @_D5tango2io6device4File4File6__initZ to %tango.io.device.File.File*), i32 0, i32 2) to i8*), i32 32, i32 1) + br i1 %tmp3, label %if, label %else + +if: ; preds = %entry + %tmpcast = bitcast i32* %style_arg to %tango.io.device.File.File.Style* ; <%tango.io.device.File.File.Style*> [#uses=1] + %tmp65 = load i32* bitcast (%tango.io.device.File.File.Style* @_D5tango2io6device4File4File15ReadWriteCreateS5tango2io6device4File4File5Style to i32*), align 1 ; [#uses=1] + store i32 %tmp65, i32* %style_arg, align 8 + %tmp2.i = load %tango.io.device.File.File.__vtbl** %vtbl ; <%tango.io.device.File.File.__vtbl*> [#uses=1] + %"this.open@vtbl.i" = getelementptr %tango.io.device.File.File.__vtbl* %tmp2.i, i32 0, i32 18 ; [#uses=1] + %this.open.i = load void (%tango.io.device.File.File*, %"byte[]", %tango.io.device.File.File.Style*)** %"this.open@vtbl.i", align 4 ; [#uses=1] + tail call fastcc void %this.open.i(%tango.io.device.File.File* %.newclass_gc, %"byte[]" %local_file_arg, %tango.io.device.File.File.Style* byval %tmpcast) + br label %try + +else: ; preds = %entry + %tmpcast68 = bitcast i32* %style_arg57 to %tango.io.device.File.File.Style* ; <%tango.io.device.File.File.Style*> [#uses=1] + %tmp = load i32* bitcast (%tango.io.device.File.File.Style* @_D5tango2io6device4File4File17ReadWriteExistingS5tango2io6device4File4File5Style to i32*), align 1 ; [#uses=1] + store i32 %tmp, i32* %style_arg57, align 8 + %tmp2.i61 = load %tango.io.device.File.File.__vtbl** %vtbl ; <%tango.io.device.File.File.__vtbl*> [#uses=1] + %"this.open@vtbl.i62" = getelementptr %tango.io.device.File.File.__vtbl* %tmp2.i61, i32 0, i32 18 ; [#uses=1] + %this.open.i63 = load void (%tango.io.device.File.File*, %"byte[]", %tango.io.device.File.File.Style*)** %"this.open@vtbl.i62", align 4 ; [#uses=1] + tail call fastcc void %this.open.i63(%tango.io.device.File.File* %.newclass_gc, %"byte[]" %local_file_arg, %tango.io.device.File.File.Style* byval %tmpcast68) + %tmp22 = load %tango.io.device.File.File.__vtbl** %vtbl ; <%tango.io.device.File.File.__vtbl*> [#uses=1] + %"file.seek@vtbl" = getelementptr %tango.io.device.File.File.__vtbl* %tmp22, i32 0, i32 13 ; [#uses=1] + %file.seek = load i64 (%tango.io.device.File.File*, i64, i32)** %"file.seek@vtbl", align 4 ; [#uses=1] + %tmp26 = load i32* %tmp1 ; [#uses=1] + %tmp27 = zext i32 %tmp26 to i64 ; [#uses=1] + %tmp28 = tail call fastcc i64 %file.seek(%tango.io.device.File.File* %.newclass_gc, i64 %tmp27, i32 0) ; [#uses=0] + store i32 0, i32* %tmp1 + br label %try + +try: ; preds = %else, %if + %tmp38 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp39 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp38 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.get@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp39, i32 0, i32 60 ; [#uses=1] + %this.get = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)", i32)** %"this.get@vtbl", align 4 ; [#uses=1] + %tmp43 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %tmp44 = bitcast i8* %tmp43 to %tango.io.model.IConduit.OutputStream* ; <%tango.io.model.IConduit.OutputStream*> [#uses=1] + invoke fastcc void %this.get(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %tango.io.model.IConduit.OutputStream* %tmp44, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) + to label %finally unwind label %landingpad + +finally: ; preds = %try + %tmp48 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device* ; <%tango.io.device.Device.Device*> [#uses=1] + %tmp49 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device.__vtbl** ; <%tango.io.device.Device.Device.__vtbl**> [#uses=1] + %tmp50 = load %tango.io.device.Device.Device.__vtbl** %tmp49 ; <%tango.io.device.Device.Device.__vtbl*> [#uses=1] + %"(cast(Device)file).detach@vtbl51" = getelementptr %tango.io.device.Device.Device.__vtbl* %tmp50, i32 0, i32 8 ; [#uses=1] + %"(cast(Device)file).detach53" = load void (%tango.io.device.Device.Device*)** %"(cast(Device)file).detach@vtbl51", align 4 ; [#uses=1] + tail call fastcc void %"(cast(Device)file).detach53"(%tango.io.device.Device.Device* %tmp48) + %.tmp55 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_delclass(%object.Object* %.tmp55) + ret void + +landingpad: ; preds = %try + %1 = tail call i8* @llvm.eh.exception() ; [#uses=2] + %2 = tail call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32(i8* %1, i8* bitcast (i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality to i8*), i32 0) ; [#uses=0] + %tmp32 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device* ; <%tango.io.device.Device.Device*> [#uses=1] + %tmp33 = bitcast i8* %.newclass_gc_alloc to %tango.io.device.Device.Device.__vtbl** ; <%tango.io.device.Device.Device.__vtbl**> [#uses=1] + %tmp34 = load %tango.io.device.Device.Device.__vtbl** %tmp33 ; <%tango.io.device.Device.Device.__vtbl*> [#uses=1] + %"(cast(Device)file).detach@vtbl" = getelementptr %tango.io.device.Device.Device.__vtbl* %tmp34, i32 0, i32 8 ; [#uses=1] + %"(cast(Device)file).detach" = load void (%tango.io.device.Device.Device*)** %"(cast(Device)file).detach@vtbl", align 4 ; [#uses=1] + tail call fastcc void %"(cast(Device)file).detach"(%tango.io.device.Device.Device* %tmp32) + %.tmp = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_delclass(%object.Object* %.tmp) + tail call void @_d_eh_resume_unwind(i8* %1) + unreachable +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection10enableUTF8MFZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) { +entry: + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpResponse, align 8 ; <%tango.net.ftp.FtpClient.FtpResponse*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=2] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.sendCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 35 ; [#uses=1] + %this.sendCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.sendCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.sendCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 12, i8* getelementptr ([13 x i8]* @.str206, i32 0, i32 0) }, %"char[][]" zeroinitializer) + %tmp6 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readResponse@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp6, i32 0, i32 36 ; [#uses=1] + %this.readResponse = load void (%tango.net.ftp.FtpClient.FtpResponse*, %tango.net.ftp.FtpClient.FTPConnection*, %"byte[]")** %"this.readResponse@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readResponse(%tango.net.ftp.FtpClient.FtpResponse* noalias nocapture sret %.rettmp, %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 3, i8* getelementptr ([4 x i8]* @.str207, i32 0, i32 0) }) + ret void +} + +define fastcc void @_D5tango3net3ftp9FtpClient13FTPConnection3getMFAaC5tango2io5model8IConduit12OutputStreamDFkZvE5tango3net3ftp9FtpClient9FtpFormatZv(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg, %tango.io.model.IConduit.OutputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg, i32 %format_arg) { +entry: + %__arrayArg155 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=4] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.type@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 29 ; [#uses=1] + %this.type = load void (%tango.net.ftp.FtpClient.FTPConnection*, i32)** %"this.type@vtbl", align 4 ; [#uses=1] + call fastcc void %this.type(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 %format_arg) + %tmp7 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp7, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=1] + %tmp9 = getelementptr [1 x %"byte[]"]* %__arrayArg155, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp9, align 8 + %tmp12 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp9, 1 ; <%"char[][]"> [#uses=1] + %tmp13 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str208, i32 0, i32 0) }, %"char[][]" %tmp12) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=2] + %tmp16 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.readStream@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp16, i32 0, i32 47 ; [#uses=1] + %this.readStream = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*, %tango.io.model.IConduit.OutputStream*, %"void delegate(uint pos)")** %"this.readStream@vtbl", align 4 ; [#uses=1] + call fastcc void %this.readStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp13, %tango.io.model.IConduit.OutputStream* %stream_arg, %"void delegate(uint pos)" %progress_arg) + %tmp23 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.finishDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp23, i32 0, i32 44 ; [#uses=1] + %this.finishDataCommand = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.SocketConduit.SocketConduit*)** %"this.finishDataCommand@vtbl", align 4 ; [#uses=1] + call fastcc void %this.finishDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.SocketConduit.SocketConduit* %tmp13) + ret void +} + +define fastcc %tango.io.model.IConduit.InputStream* @_D5tango3net3ftp9FtpClient13FTPConnection5inputMFAaZC5tango2io5model8IConduit11InputStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %__arrayArg156 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 9 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp4 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp4, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=1] + %tmp6 = getelementptr [1 x %"byte[]"]* %__arrayArg156, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp6, align 8 + %tmp9 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp6, 1 ; <%"char[][]"> [#uses=1] + %tmp10 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str209, i32 0, i32 0) }, %"char[][]" %tmp9) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=3] + store %tango.net.SocketConduit.SocketConduit* %tmp10, %tango.net.SocketConduit.SocketConduit** %tmp1 + %tmp14 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp10, i32 0, i32 2 ; <%15**> [#uses=1] + %tmp15 = bitcast %15** %tmp14 to %tango.io.model.IConduit.InputStream* ; <%tango.io.model.IConduit.InputStream*> [#uses=1] + %.nullcheck = icmp eq %tango.net.SocketConduit.SocketConduit* %tmp10, null ; [#uses=1] + %.interface = select i1 %.nullcheck, %tango.io.model.IConduit.InputStream* null, %tango.io.model.IConduit.InputStream* %tmp15 ; <%tango.io.model.IConduit.InputStream*> [#uses=1] + ret %tango.io.model.IConduit.InputStream* %.interface +} + +define fastcc %tango.io.model.IConduit.OutputStream* @_D5tango3net3ftp9FtpClient13FTPConnection6outputMFAaZC5tango2io5model8IConduit12OutputStream(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %path_arg) { +entry: + %__arrayArg157 = alloca [1 x %"byte[]"], align 8 ; <[1 x %"byte[]"]*> [#uses=1] + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 9 ; <%tango.net.SocketConduit.SocketConduit**> [#uses=1] + %tmp3 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp4 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp3 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.processDataCommand@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp4, i32 0, i32 45 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")**> [#uses=1] + %this.processDataCommand = load %tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")** %"this.processDataCommand@vtbl", align 4 ; <%tango.net.SocketConduit.SocketConduit* (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"char[][]")*> [#uses=1] + %tmp6 = getelementptr [1 x %"byte[]"]* %__arrayArg157, i32 0, i32 0 ; <%"byte[]"*> [#uses=2] + store %"byte[]" %path_arg, %"byte[]"* %tmp6, align 8 + %tmp9 = insertvalue %"char[][]" { i32 1, %"byte[]"* undef }, %"byte[]"* %tmp6, 1 ; <%"char[][]"> [#uses=1] + %tmp10 = call fastcc %tango.net.SocketConduit.SocketConduit* %this.processDataCommand(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" { i32 4, i8* getelementptr ([5 x i8]* @.str210, i32 0, i32 0) }, %"char[][]" %tmp9) ; <%tango.net.SocketConduit.SocketConduit*> [#uses=3] + store %tango.net.SocketConduit.SocketConduit* %tmp10, %tango.net.SocketConduit.SocketConduit** %tmp1 + %tmp14 = getelementptr %tango.net.SocketConduit.SocketConduit* %tmp10, i32 0, i32 3 ; <%16**> [#uses=1] + %tmp15 = bitcast %16** %tmp14 to %tango.io.model.IConduit.OutputStream* ; <%tango.io.model.IConduit.OutputStream*> [#uses=1] + %.nullcheck = icmp eq %tango.net.SocketConduit.SocketConduit* %tmp10, null ; [#uses=1] + %.interface = select i1 %.nullcheck, %tango.io.model.IConduit.OutputStream* null, %tango.io.model.IConduit.OutputStream* %tmp15 ; <%tango.io.model.IConduit.OutputStream*> [#uses=1] + ret %tango.io.model.IConduit.OutputStream* %.interface +} + +define fastcc %tango.net.ftp.FtpClient.FTPConnection* @_D5tango3net3ftp9FtpClient13FTPConnection5_ctorMFZC5tango3net3ftp9FtpClient13FTPConnection(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg) nounwind readnone { +entry: + ret %tango.net.ftp.FtpClient.FTPConnection* %.this_arg +} + +define fastcc %tango.net.ftp.FtpClient.FTPConnection* @_D5tango3net3ftp9FtpClient13FTPConnection5_ctorMFAaAaAakZC5tango3net3ftp9FtpClient13FTPConnection(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %hostname_arg, %"byte[]" %username_arg, %"byte[]" %password_arg, i32 %port_arg) { +entry: + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.connect@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 16 ; [#uses=1] + %this.connect = load void (%tango.net.ftp.FtpClient.FTPConnection*, %"byte[]", %"byte[]", %"byte[]", i32)** %"this.connect@vtbl", align 4 ; [#uses=1] + tail call fastcc void %this.connect(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %"byte[]" %hostname_arg, %"byte[]" %username_arg, %"byte[]" %password_arg, i32 %port_arg) + ret %tango.net.ftp.FtpClient.FTPConnection* %.this_arg +} + +define fastcc %tango.net.ftp.FtpClient.FTPConnection* @_D5tango3net3ftp9FtpClient13FTPConnection5_ctorMFS5tango3net3ftp9FtpClient10FtpAddressZC5tango3net3ftp9FtpClient13FTPConnection(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpAddress* byval %fad_arg) { +entry: + %tmp1 = getelementptr %tango.net.ftp.FtpClient.FTPConnection* %.this_arg, i32 0, i32 0 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl**> [#uses=1] + %tmp2 = load %tango.net.ftp.FtpClient.FTPConnection.__vtbl** %tmp1 ; <%tango.net.ftp.FtpClient.FTPConnection.__vtbl*> [#uses=1] + %"this.connect@vtbl" = getelementptr %tango.net.ftp.FtpClient.FTPConnection.__vtbl* %tmp2, i32 0, i32 15 ; [#uses=1] + %this.connect = load void (%tango.net.ftp.FtpClient.FTPConnection*, %tango.net.ftp.FtpClient.FtpAddress*)** %"this.connect@vtbl", align 4 ; [#uses=1] + tail call fastcc void %this.connect(%tango.net.ftp.FtpClient.FTPConnection* %.this_arg, %tango.net.ftp.FtpClient.FtpAddress* byval %fad_arg) + ret %tango.net.ftp.FtpClient.FTPConnection* %.this_arg +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA8tagCountMFZk(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 6 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp3 = add i32 %tmp2, -1 ; [#uses=1] + ret i32 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i1 %unanchored_arg) { +entry: + %tmp.i872 = alloca i32, align 4 ; [#uses=2] + %tmp.i823 = alloca i32, align 4 ; [#uses=2] + %tmp.i798 = alloca i32, align 4 ; [#uses=2] + %tmp.i773 = alloca i32, align 4 ; [#uses=2] + %tmp.i = alloca i32, align 4 ; [#uses=2] + %.frame = alloca %nest.parse, align 8 ; <%nest.parse*> [#uses=43] + %occur = alloca %tango.net.Socket.timeval, align 8 ; <%tango.net.Socket.timeval*> [#uses=3] + %cc = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=3] + %cc323 = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=3] + %cc351 = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=3] + %cc381 = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=4] + %cc448 = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=4] + %trans = alloca [4 x %"tango.text.Regex.List!(TNFATransition).List"*], align 4 ; <[4 x %"tango.text.Regex.List!(TNFATransition).List"*]*> [#uses=4] + %layout = getelementptr %nest.parse* %.frame, i32 0, i32 0 ; <%"tango.text.convert.Layout.Layout!(char).Layout"**> [#uses=1] + %frags = getelementptr %nest.parse* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=27] + %opStack = getelementptr %nest.parse* %.frame, i32 0, i32 2 ; <%"tango.text.Regex.Stack!(Operator).Stack"*> [#uses=1] + %tagStack = getelementptr %nest.parse* %.frame, i32 0, i32 3 ; <%"tango.text.Regex.Stack!(Operator).Stack"*> [#uses=1] + %occurStack = getelementptr %nest.parse* %.frame, i32 0, i32 4 ; <%"tango.text.Regex.Stack!(Pair!(uint)).Stack"*> [#uses=1] + %finish = getelementptr %nest.parse* %.frame, i32 0, i32 5 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %todo = getelementptr %nest.parse* %.frame, i32 0, i32 6 ; <%"tango.text.Regex.Stack!(TNFATransition).Stack"*> [#uses=1] + %nextPrio = getelementptr %nest.parse* %.frame, i32 0, i32 7 ; [#uses=1] + %this = getelementptr %nest.parse* %.frame, i32 0, i32 8 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + store %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFA!(dchar).TNFA"** %this, align 8 + %tmp2 = call fastcc %"tango.text.convert.Layout.Layout!(char).Layout"* @_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout8instanceFZC5tango4text7convert6Layout13__T6LayoutTaZ6Layout() ; <%"tango.text.convert.Layout.Layout!(char).Layout"*> [#uses=1] + store %"tango.text.convert.Layout.Layout!(char).Layout"* %tmp2, %"tango.text.convert.Layout.Layout!(char).Layout"** %layout, align 8 + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFAFragment).List"* ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__vtblZ, %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp3 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp3, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFAFragment).List"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List"** %frags + %tmp7 = bitcast %"tango.text.Regex.Stack!(Operator).Stack"* %opStack to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp7, i8 0, i32 12, i32 8) + %tmp8 = bitcast %"tango.text.Regex.Stack!(Operator).Stack"* %tagStack to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp8, i8 0, i32 12, i32 4) + %tmp9 = bitcast %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %occurStack to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp9, i8 0, i32 12, i32 8) + %tmp1.i = getelementptr %nest.parse* %.frame, i32 0, i32 2, i32 0 ; [#uses=4] + %tmp4.i = getelementptr %nest.parse* %.frame, i32 0, i32 2, i32 1, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp4.i ; [#uses=3] + %tmp5.i = load i32* %tmp1.i, align 8 ; [#uses=2] + %tmp6.i = icmp ult i32 %tmp5.i, %.len.i ; [#uses=1] + br i1 %tmp6.i, label %entry.endif_crit_edge.i, label %if.i + +entry.endif_crit_edge.i: ; preds = %entry + %tmp26.pre.i = getelementptr %nest.parse* %.frame, i32 0, i32 2, i32 1, i32 1 ; [#uses=1] + %.ptr27.i.pre = load i32** %tmp26.pre.i ; [#uses=1] + br label %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + +if.i: ; preds = %entry + %tmp13.i = shl i32 %.len.i, 1 ; [#uses=1] + %tmp1437.i = or i32 %tmp13.i, 1 ; [#uses=2] + %tmp17.i = getelementptr %nest.parse* %.frame, i32 0, i32 2, i32 1, i32 1 ; [#uses=2] + %.ptr.i = load i32** %tmp17.i ; [#uses=1] + %tmp18.i = bitcast i32* %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i = call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D55TypeInfo_AE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ to %object.TypeInfo*), i32 %tmp1437.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i to i32* ; [#uses=2] + store i32 %tmp1437.i, i32* %tmp4.i + store i32* %.gc_mem19.i, i32** %tmp17.i + %tmp28.pre.i = load i32* %tmp1.i, align 8 ; [#uses=1] + br label %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + +_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit: ; preds = %if.i, %entry.endif_crit_edge.i + %.ptr27.i = phi i32* [ %.ptr27.i.pre, %entry.endif_crit_edge.i ], [ %.gc_mem19.i, %if.i ] ; [#uses=1] + %tmp28.i = phi i32 [ %tmp5.i, %entry.endif_crit_edge.i ], [ %tmp28.pre.i, %if.i ] ; [#uses=1] + %tmp29.i = getelementptr i32* %.ptr27.i, i32 %tmp28.i ; [#uses=1] + store i32 0, i32* %tmp29.i + %tmp35.i = load i32* %tmp1.i, align 8 ; [#uses=1] + %tmp36.i = add i32 %tmp35.i, 1 ; [#uses=1] + store i32 %tmp36.i, i32* %tmp1.i, align 8 + br i1 %unanchored_arg, label %if, label %whilecond + +if: ; preds = %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + %tmp11 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp12 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp11, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp13 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp12 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp13, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp16 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8any_charS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 0) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp17 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp11, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp16) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp18 = bitcast %nest.parse* %.frame to i8* ; [#uses=3] + %tmp19 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp18, i32 12, i1 false) ; [#uses=0] + %tmp21 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp18, i32 1, i1 false) ; [#uses=0] + %tmp23 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp18, i32 3, i1 false) ; [#uses=0] + br label %whilecond + +whilecond: ; preds = %endif532, %default515, %endif436, %endif370, %case350, %case338, %case322, %case310, %case296, %case284, %case272, %case260, %case248, %endif181, %endif165, %endif148, %endif131, %else120, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896, %else99, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847, %else85, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822, %else71, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797, %case61, %else, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741, %case, %if, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + %.rettmp.0.1.0 = phi i32 [ undef, %if ], [ %.rettmp.0.1.0, %endif532 ], [ %.rettmp.0.1.0, %default515 ], [ %.rettmp.0.1.0, %endif436 ], [ %.rettmp.0.1.0, %endif370 ], [ %.rettmp.0.1.0, %case350 ], [ %.rettmp.0.1.0, %case338 ], [ %.rettmp.0.1.0, %case322 ], [ %.rettmp.0.1.0, %case310 ], [ %tmp, %case296 ], [ %.rettmp.0.1.0, %case284 ], [ %.rettmp.0.1.0, %case272 ], [ %.rettmp.0.1.0, %case260 ], [ %.rettmp.0.1.0, %case248 ], [ %.rettmp.0.1.0, %endif148 ], [ %.rettmp.0.1.0, %endif131 ], [ %.rettmp.0.1.0, %endif181 ], [ %.rettmp.0.1.0, %endif165 ], [ %.rettmp.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 ], [ %.rettmp.0.1.0, %else120 ], [ %.rettmp.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 ], [ %.rettmp.0.1.0, %else99 ], [ %.rettmp.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 ], [ %.rettmp.0.1.0, %else85 ], [ %.rettmp.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 ], [ %.rettmp.0.1.0, %else71 ], [ %.rettmp.0.1.0, %case61 ], [ %.rettmp.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 ], [ %.rettmp.0.1.0, %else ], [ %.rettmp.0.1.0, %case ], [ undef, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit ] ; [#uses=28] + %.rettmp324.0.1.0 = phi i32 [ undef, %if ], [ %.rettmp324.0.1.0, %endif532 ], [ %.rettmp324.0.1.0, %default515 ], [ %.rettmp324.0.1.0, %endif436 ], [ %.rettmp324.0.1.0, %endif370 ], [ %.rettmp324.0.1.0, %case350 ], [ %.rettmp324.0.1.0, %case338 ], [ %tmp1018, %case322 ], [ %.rettmp324.0.1.0, %case310 ], [ %.rettmp324.0.1.0, %case296 ], [ %.rettmp324.0.1.0, %case284 ], [ %.rettmp324.0.1.0, %case272 ], [ %.rettmp324.0.1.0, %case260 ], [ %.rettmp324.0.1.0, %case248 ], [ %.rettmp324.0.1.0, %endif148 ], [ %.rettmp324.0.1.0, %endif131 ], [ %.rettmp324.0.1.0, %endif181 ], [ %.rettmp324.0.1.0, %endif165 ], [ %.rettmp324.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 ], [ %.rettmp324.0.1.0, %else120 ], [ %.rettmp324.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 ], [ %.rettmp324.0.1.0, %else99 ], [ %.rettmp324.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 ], [ %.rettmp324.0.1.0, %else85 ], [ %.rettmp324.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 ], [ %.rettmp324.0.1.0, %else71 ], [ %.rettmp324.0.1.0, %case61 ], [ %.rettmp324.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 ], [ %.rettmp324.0.1.0, %else ], [ %.rettmp324.0.1.0, %case ], [ undef, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit ] ; [#uses=28] + %.rettmp352.0.1.0 = phi i32 [ undef, %if ], [ %.rettmp352.0.1.0, %endif532 ], [ %.rettmp352.0.1.0, %default515 ], [ %.rettmp352.0.1.0, %endif436 ], [ %.rettmp352.0.1.0, %endif370 ], [ %tmp1013, %case350 ], [ %.rettmp352.0.1.0, %case338 ], [ %.rettmp352.0.1.0, %case322 ], [ %.rettmp352.0.1.0, %case310 ], [ %.rettmp352.0.1.0, %case296 ], [ %.rettmp352.0.1.0, %case284 ], [ %.rettmp352.0.1.0, %case272 ], [ %.rettmp352.0.1.0, %case260 ], [ %.rettmp352.0.1.0, %case248 ], [ %.rettmp352.0.1.0, %endif148 ], [ %.rettmp352.0.1.0, %endif131 ], [ %.rettmp352.0.1.0, %endif181 ], [ %.rettmp352.0.1.0, %endif165 ], [ %.rettmp352.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 ], [ %.rettmp352.0.1.0, %else120 ], [ %.rettmp352.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 ], [ %.rettmp352.0.1.0, %else99 ], [ %.rettmp352.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 ], [ %.rettmp352.0.1.0, %else85 ], [ %.rettmp352.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 ], [ %.rettmp352.0.1.0, %else71 ], [ %.rettmp352.0.1.0, %case61 ], [ %.rettmp352.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 ], [ %.rettmp352.0.1.0, %else ], [ %.rettmp352.0.1.0, %case ], [ undef, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit ] ; [#uses=28] + %.rettmp382.0.1.0 = phi i32 [ undef, %if ], [ %.rettmp382.0.1.0, %endif532 ], [ %.rettmp382.0.1.0, %default515 ], [ %.rettmp382.0.1.0, %endif436 ], [ %tmp1008, %endif370 ], [ %.rettmp382.0.1.0, %case350 ], [ %.rettmp382.0.1.0, %case338 ], [ %.rettmp382.0.1.0, %case322 ], [ %.rettmp382.0.1.0, %case310 ], [ %.rettmp382.0.1.0, %case296 ], [ %.rettmp382.0.1.0, %case284 ], [ %.rettmp382.0.1.0, %case272 ], [ %.rettmp382.0.1.0, %case260 ], [ %.rettmp382.0.1.0, %case248 ], [ %.rettmp382.0.1.0, %endif148 ], [ %.rettmp382.0.1.0, %endif131 ], [ %.rettmp382.0.1.0, %endif181 ], [ %.rettmp382.0.1.0, %endif165 ], [ %.rettmp382.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 ], [ %.rettmp382.0.1.0, %else120 ], [ %.rettmp382.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 ], [ %.rettmp382.0.1.0, %else99 ], [ %.rettmp382.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 ], [ %.rettmp382.0.1.0, %else85 ], [ %.rettmp382.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 ], [ %.rettmp382.0.1.0, %else71 ], [ %.rettmp382.0.1.0, %case61 ], [ %.rettmp382.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 ], [ %.rettmp382.0.1.0, %else ], [ %.rettmp382.0.1.0, %case ], [ undef, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit ] ; [#uses=28] + %.rettmp449.0.1.0 = phi i32 [ undef, %if ], [ %.rettmp449.0.1.0, %endif532 ], [ %.rettmp449.0.1.0, %default515 ], [ %tmp1003, %endif436 ], [ %.rettmp449.0.1.0, %endif370 ], [ %.rettmp449.0.1.0, %case350 ], [ %.rettmp449.0.1.0, %case338 ], [ %.rettmp449.0.1.0, %case322 ], [ %.rettmp449.0.1.0, %case310 ], [ %.rettmp449.0.1.0, %case296 ], [ %.rettmp449.0.1.0, %case284 ], [ %.rettmp449.0.1.0, %case272 ], [ %.rettmp449.0.1.0, %case260 ], [ %.rettmp449.0.1.0, %case248 ], [ %.rettmp449.0.1.0, %endif148 ], [ %.rettmp449.0.1.0, %endif131 ], [ %.rettmp449.0.1.0, %endif181 ], [ %.rettmp449.0.1.0, %endif165 ], [ %.rettmp449.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 ], [ %.rettmp449.0.1.0, %else120 ], [ %.rettmp449.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 ], [ %.rettmp449.0.1.0, %else99 ], [ %.rettmp449.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 ], [ %.rettmp449.0.1.0, %else85 ], [ %.rettmp449.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 ], [ %.rettmp449.0.1.0, %else71 ], [ %.rettmp449.0.1.0, %case61 ], [ %.rettmp449.0.1.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 ], [ %.rettmp449.0.1.0, %else ], [ %.rettmp449.0.1.0, %case ], [ undef, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit ] ; [#uses=28] + %implicit_concat.0 = phi i1 [ true, %endif532 ], [ true, %default515 ], [ true, %endif436 ], [ true, %endif370 ], [ true, %case350 ], [ true, %case338 ], [ true, %case322 ], [ true, %case310 ], [ true, %case296 ], [ true, %case284 ], [ true, %case272 ], [ true, %case260 ], [ true, %case248 ], [ true, %endif131 ], [ true, %endif148 ], [ true, %endif181 ], [ true, %endif165 ], [ %implicit_concat.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 ], [ %implicit_concat.0, %else120 ], [ %implicit_concat.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 ], [ %implicit_concat.0, %else99 ], [ %implicit_concat.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 ], [ %implicit_concat.0, %else85 ], [ %implicit_concat.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 ], [ %implicit_concat.0, %else71 ], [ %implicit_concat.0, %case61 ], [ false, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 ], [ false, %else ], [ false, %case ], [ false, %if ], [ false, %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit ] ; [#uses=17] + %tmp1.i692 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=23] + %tmp4.i693 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=14] + %.len.i694 = load i32* %tmp4.i693 ; [#uses=1] + %tmp5.i695 = load i32* %tmp1.i692 ; [#uses=2] + %tmp6.i696 = icmp ult i32 %tmp5.i695, %.len.i694 ; [#uses=1] + br i1 %tmp6.i696, label %whilebody, label %endwhile + +whilebody: ; preds = %whilecond + %tmp1.i697 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=9] + store i32 %tmp5.i695, i32* %tmp1.i697 + %tmp13.i700 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i = load %"Act[]"* %tmp13.i700 ; <%"Act[]"> [#uses=1] + %tmp17.i701 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i, i32* %tmp1.i692) ; [#uses=2] + switch i32 %tmp17.i701, label %default529 [ + i32 124, label %case + i32 40, label %case31 + i32 41, label %case61 + i32 63, label %case65 + i32 42, label %case79 + i32 43, label %case93 + i32 123, label %case107 + i32 91, label %case128 + i32 46, label %case145 + i32 36, label %case162 + i32 94, label %case178 + i32 62, label %case194 + i32 60, label %case214 + i32 92, label %case236 + ] + +case: ; preds = %whilebody + %tmp29 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp30 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp29, i32 2, i1 true) ; [#uses=0] + br label %whilecond + +case31: ; preds = %whilebody + br i1 %implicit_concat.0, label %if33, label %endif34 + +if33: ; preds = %case31 + %tmp35 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp36 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp35, i32 1, i1 false) ; [#uses=0] + br label %endif34 + +endif34: ; preds = %if33, %case31 + %tmp3.i718 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp3.i718, i32* %tmp.i + %.len.i720 = load i32* %tmp4.i693 ; [#uses=1] + %tmp8.i721 = icmp ult i32 %tmp3.i718, %.len.i720 ; [#uses=1] + br i1 %tmp8.i721, label %if.i724, label %else + +if.i724: ; preds = %endif34 + %tmp10.i722 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i723 = load %"Act[]"* %tmp10.i722 ; <%"Act[]"> [#uses=1] + %tmp12.i = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i723, i32* %tmp.i) ; [#uses=1] + %phitmp = icmp eq i32 %tmp12.i, 63 ; [#uses=1] + br i1 %phitmp, label %if40, label %else + +if40: ; preds = %if.i724 + %tmp4.i732 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i732, i32* %tmp1.i697 + %.len.i734 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i735 = icmp ult i32 %tmp4.i732, %.len.i734 ; [#uses=1] + br i1 %tmp11.i735, label %if.i739, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 + +if.i739: ; preds = %if40 + %tmp13.i736 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i737 = load %"Act[]"* %tmp13.i736 ; <%"Act[]"> [#uses=1] + %tmp17.i738 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i737, i32* %tmp1.i692) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit741: ; preds = %if.i739, %if40 + %tmp44 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp46 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 5 ; [#uses=1] + %tmp47 = load i1* %tmp46 ; [#uses=1] + %condtmp.0 = select i1 %tmp47, i32 3, i32 14 ; [#uses=1] + %tmp49 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp44, i32 %condtmp.0, i1 true) ; [#uses=0] + br label %whilecond + +else: ; preds = %if.i724, %endif34 + %tmp50 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp56 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 5 ; [#uses=1] + %tmp57 = load i1* %tmp56 ; [#uses=1] + %condtmp51.0 = select i1 %tmp57, i32 14, i32 3 ; [#uses=1] + %tmp59 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp50, i32 %condtmp51.0, i1 true) ; [#uses=0] + br label %whilecond + +case61: ; preds = %whilebody + %tmp62 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp63 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp62, i32 4, i1 true) ; [#uses=0] + br label %whilecond + +case65: ; preds = %whilebody + %tmp3.i775 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp3.i775, i32* %tmp.i773 + %.len.i777 = load i32* %tmp4.i693 ; [#uses=1] + %tmp8.i778 = icmp ult i32 %tmp3.i775, %.len.i777 ; [#uses=1] + br i1 %tmp8.i778, label %if.i782, label %else71 + +if.i782: ; preds = %case65 + %tmp10.i779 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i780 = load %"Act[]"* %tmp10.i779 ; <%"Act[]"> [#uses=1] + %tmp12.i781 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i780, i32* %tmp.i773) ; [#uses=1] + %phitmp1066 = icmp eq i32 %tmp12.i781, 63 ; [#uses=1] + br i1 %phitmp1066, label %if69, label %else71 + +if69: ; preds = %if.i782 + %tmp4.i788 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i788, i32* %tmp1.i697 + %.len.i790 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i791 = icmp ult i32 %tmp4.i788, %.len.i790 ; [#uses=1] + br i1 %tmp11.i791, label %if.i795, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 + +if.i795: ; preds = %if69 + %tmp13.i792 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i793 = load %"Act[]"* %tmp13.i792 ; <%"Act[]"> [#uses=1] + %tmp17.i794 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i793, i32* %tmp1.i692) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit797: ; preds = %if.i795, %if69 + %tmp74 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp75 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp74, i32 8, i1 true) ; [#uses=0] + br label %whilecond + +else71: ; preds = %if.i782, %case65 + %tmp76 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp77 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp76, i32 5, i1 true) ; [#uses=0] + br label %whilecond + +case79: ; preds = %whilebody + %tmp3.i800 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp3.i800, i32* %tmp.i798 + %.len.i802 = load i32* %tmp4.i693 ; [#uses=1] + %tmp8.i803 = icmp ult i32 %tmp3.i800, %.len.i802 ; [#uses=1] + br i1 %tmp8.i803, label %if.i807, label %else85 + +if.i807: ; preds = %case79 + %tmp10.i804 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i805 = load %"Act[]"* %tmp10.i804 ; <%"Act[]"> [#uses=1] + %tmp12.i806 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i805, i32* %tmp.i798) ; [#uses=1] + %phitmp1067 = icmp eq i32 %tmp12.i806, 63 ; [#uses=1] + br i1 %phitmp1067, label %if83, label %else85 + +if83: ; preds = %if.i807 + %tmp4.i813 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i813, i32* %tmp1.i697 + %.len.i815 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i816 = icmp ult i32 %tmp4.i813, %.len.i815 ; [#uses=1] + br i1 %tmp11.i816, label %if.i820, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 + +if.i820: ; preds = %if83 + %tmp13.i817 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i818 = load %"Act[]"* %tmp13.i817 ; <%"Act[]"> [#uses=1] + %tmp17.i819 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i818, i32* %tmp1.i692) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit822: ; preds = %if.i820, %if83 + %tmp88 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp89 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp88, i32 9, i1 true) ; [#uses=0] + br label %whilecond + +else85: ; preds = %if.i807, %case79 + %tmp90 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp91 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp90, i32 6, i1 true) ; [#uses=0] + br label %whilecond + +case93: ; preds = %whilebody + %tmp3.i825 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp3.i825, i32* %tmp.i823 + %.len.i827 = load i32* %tmp4.i693 ; [#uses=1] + %tmp8.i828 = icmp ult i32 %tmp3.i825, %.len.i827 ; [#uses=1] + br i1 %tmp8.i828, label %if.i832, label %else99 + +if.i832: ; preds = %case93 + %tmp10.i829 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i830 = load %"Act[]"* %tmp10.i829 ; <%"Act[]"> [#uses=1] + %tmp12.i831 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i830, i32* %tmp.i823) ; [#uses=1] + %phitmp1068 = icmp eq i32 %tmp12.i831, 63 ; [#uses=1] + br i1 %phitmp1068, label %if97, label %else99 + +if97: ; preds = %if.i832 + %tmp4.i838 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i838, i32* %tmp1.i697 + %.len.i840 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i841 = icmp ult i32 %tmp4.i838, %.len.i840 ; [#uses=1] + br i1 %tmp11.i841, label %if.i845, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 + +if.i845: ; preds = %if97 + %tmp13.i842 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i843 = load %"Act[]"* %tmp13.i842 ; <%"Act[]"> [#uses=1] + %tmp17.i844 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i843, i32* %tmp1.i692) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit847: ; preds = %if.i845, %if97 + %tmp102 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp103 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp102, i32 10, i1 true) ; [#uses=0] + br label %whilecond + +else99: ; preds = %if.i832, %case93 + %tmp104 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp105 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp104, i32 7, i1 true) ; [#uses=0] + br label %whilecond + +case107: ; preds = %whilebody + %occur672 = bitcast %tango.net.Socket.timeval* %occur to i64* ; [#uses=1] + store i64 0, i64* %occur672, align 8 + %tmp110 = getelementptr %tango.net.Socket.timeval* %occur, i32 0, i32 0 ; [#uses=3] + %tmp113 = getelementptr i32* %tmp110, i32 1 ; [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA15parseOccurCountMFJkJkZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32* %tmp110, i32* %tmp113) + %tmp1025 = load i32* %tmp110, align 8 ; [#uses=1] + %occur.1 = getelementptr %tango.net.Socket.timeval* %occur, i32 0, i32 1 ; [#uses=1] + %tmp1026 = load i32* %occur.1, align 4 ; [#uses=1] + %tmp1.i850 = getelementptr %nest.parse* %.frame, i32 0, i32 4, i32 0 ; [#uses=4] + %tmp4.i851 = getelementptr %nest.parse* %.frame, i32 0, i32 4, i32 1, i32 0 ; [#uses=2] + %.len.i852 = load i32* %tmp4.i851 ; [#uses=3] + %tmp5.i853 = load i32* %tmp1.i850, align 8 ; [#uses=2] + %tmp6.i854 = icmp ult i32 %tmp5.i853, %.len.i852 ; [#uses=1] + br i1 %tmp6.i854, label %entry.endif_crit_edge.i856, label %if.i864 + +entry.endif_crit_edge.i856: ; preds = %case107 + %tmp26.pre.i855 = getelementptr %nest.parse* %.frame, i32 0, i32 4, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr27.i867.pre = load %tango.net.Socket.timeval** %tmp26.pre.i855 ; <%tango.net.Socket.timeval*> [#uses=1] + br label %_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack4pushMFS5tango4text5Regex11__T4PairTkZ4PairZv.exit + +if.i864: ; preds = %case107 + %tmp13.i857 = shl i32 %.len.i852, 1 ; [#uses=1] + %tmp1438.i = or i32 %tmp13.i857, 1 ; [#uses=2] + %tmp17.i858 = getelementptr %nest.parse* %.frame, i32 0, i32 4, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i859 = load %tango.net.Socket.timeval** %tmp17.i858 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp18.i860 = bitcast %tango.net.Socket.timeval* %.ptr.i859 to i8* ; [#uses=1] + %.gc_mem.i861 = call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D46TypeInfo_AS5tango4text5Regex11__T4PairTkZ4Pair6__initZ to %object.TypeInfo*), i32 %tmp1438.i, i32 %.len.i852, i8* %tmp18.i860) ; [#uses=1] + %.gc_mem19.i862 = bitcast i8* %.gc_mem.i861 to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + store i32 %tmp1438.i, i32* %tmp4.i851 + store %tango.net.Socket.timeval* %.gc_mem19.i862, %tango.net.Socket.timeval** %tmp17.i858 + %tmp28.pre.i863 = load i32* %tmp1.i850, align 8 ; [#uses=1] + br label %_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack4pushMFS5tango4text5Regex11__T4PairTkZ4PairZv.exit + +_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack4pushMFS5tango4text5Regex11__T4PairTkZ4PairZv.exit: ; preds = %if.i864, %entry.endif_crit_edge.i856 + %.ptr27.i867 = phi %tango.net.Socket.timeval* [ %.ptr27.i867.pre, %entry.endif_crit_edge.i856 ], [ %.gc_mem19.i862, %if.i864 ] ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp28.i866 = phi i32 [ %tmp5.i853, %entry.endif_crit_edge.i856 ], [ %tmp28.pre.i863, %if.i864 ] ; [#uses=1] + %tmp29.i868 = getelementptr %tango.net.Socket.timeval* %.ptr27.i867, i32 %tmp28.i866 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp3040.i = bitcast %tango.net.Socket.timeval* %tmp29.i868 to i64* ; [#uses=1] + %1 = zext i32 %tmp1025 to i64 ; [#uses=1] + %2 = shl i64 %1, 32 ; [#uses=1] + %3 = zext i32 %tmp1026 to i64 ; [#uses=1] + %4 = or i64 %3, %2 ; [#uses=1] + store i64 %4, i64* %tmp3040.i, align 1 + %tmp36.i870 = load i32* %tmp1.i850, align 8 ; [#uses=1] + %tmp37.i = add i32 %tmp36.i870, 1 ; [#uses=1] + store i32 %tmp37.i, i32* %tmp1.i850, align 8 + %tmp3.i874 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp3.i874, i32* %tmp.i872 + %.len.i876 = load i32* %tmp4.i693 ; [#uses=1] + %tmp8.i877 = icmp ult i32 %tmp3.i874, %.len.i876 ; [#uses=1] + br i1 %tmp8.i877, label %if.i881, label %else120 + +if.i881: ; preds = %_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack4pushMFS5tango4text5Regex11__T4PairTkZ4PairZv.exit + %tmp10.i878 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i879 = load %"Act[]"* %tmp10.i878 ; <%"Act[]"> [#uses=1] + %tmp12.i880 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i879, i32* %tmp.i872) ; [#uses=1] + %phitmp1069 = icmp eq i32 %tmp12.i880, 63 ; [#uses=1] + br i1 %phitmp1069, label %if118, label %else120 + +if118: ; preds = %if.i881 + %tmp4.i887 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i887, i32* %tmp1.i697 + %.len.i889 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i890 = icmp ult i32 %tmp4.i887, %.len.i889 ; [#uses=1] + br i1 %tmp11.i890, label %if.i894, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 + +if.i894: ; preds = %if118 + %tmp13.i891 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i892 = load %"Act[]"* %tmp13.i891 ; <%"Act[]"> [#uses=1] + %tmp17.i893 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i892, i32* %tmp1.i692) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit896: ; preds = %if.i894, %if118 + %tmp123 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp124 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp123, i32 16, i1 true) ; [#uses=0] + br label %whilecond + +else120: ; preds = %if.i881, %_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack4pushMFS5tango4text5Regex11__T4PairTkZ4PairZv.exit + %tmp125 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp126 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp125, i32 15, i1 true) ; [#uses=0] + br label %whilecond + +case128: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908, %whilebody + %pred_type.0 = phi i32 [ 3, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 ], [ 2, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 ], [ 0, %whilebody ] ; [#uses=1] + br i1 %implicit_concat.0, label %if130, label %endif131 + +if130: ; preds = %case128 + %tmp132 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp133 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp132, i32 1, i1 false) ; [#uses=0] + br label %endif131 + +endif131: ; preds = %if130, %case128 + %tmp134 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp135 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp134, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp136 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp135 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl137" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp136, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign139 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl137", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp142 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA18constructCharClassMFE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 %pred_type.0) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp143 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign139(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp134, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp142) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case145: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908, %whilebody + %pred_type.1 = phi i32 [ 0, %whilebody ], [ 2, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 ], [ 3, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 ] ; [#uses=1] + br i1 %implicit_concat.0, label %if147, label %endif148 + +if147: ; preds = %case145 + %tmp149 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp150 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp149, i32 1, i1 false) ; [#uses=0] + br label %endif148 + +endif148: ; preds = %if147, %case145 + %tmp151 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp152 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp151, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp153 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp152 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl154" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp153, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign156 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl154", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp159 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8dot_operS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 %pred_type.1) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp160 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign156(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp151, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp159) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case162: ; preds = %whilebody + br i1 %implicit_concat.0, label %if164, label %endif165 + +if164: ; preds = %case162 + %tmp166 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp167 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp166, i32 1, i1 false) ; [#uses=0] + br label %endif165 + +endif165: ; preds = %if164, %case162 + %tmp168 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp169 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp168, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp170 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp169 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl171" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp170, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign173 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl171", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp175 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass13line_startendS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp176 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign173(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp168, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp175) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case178: ; preds = %whilebody + br i1 %implicit_concat.0, label %if180, label %endif181 + +if180: ; preds = %case178 + %tmp182 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp183 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp182, i32 1, i1 false) ; [#uses=0] + br label %endif181 + +endif181: ; preds = %if180, %case178 + %tmp184 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp185 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp184, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp186 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp185 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl187" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp186, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign189 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl187", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp191 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass13line_startendS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 3) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp192 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign189(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp184, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp191) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case194: ; preds = %whilebody + %tmp4.i899 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i899, i32* %tmp1.i697 + %.len.i901 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i902 = icmp ult i32 %tmp4.i899, %.len.i901 ; [#uses=1] + br i1 %tmp11.i902, label %if.i906, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 + +if.i906: ; preds = %case194 + %tmp13.i903 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i904 = load %"Act[]"* %tmp13.i903 ; <%"Act[]"> [#uses=1] + %tmp17.i905 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i904, i32* %tmp1.i692) ; [#uses=1] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908: ; preds = %if.i906, %case194 + %tmp196909 = phi i32 [ %tmp17.i905, %if.i906 ], [ 0, %case194 ] ; [#uses=2] + switch i32 %tmp196909, label %default529 [ + i32 91, label %case128 + i32 92, label %case236 + i32 46, label %case145 + ] + +case214: ; preds = %whilebody + %tmp4.i912 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i912, i32* %tmp1.i697 + %.len.i914 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i915 = icmp ult i32 %tmp4.i912, %.len.i914 ; [#uses=1] + br i1 %tmp11.i915, label %if.i919, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 + +if.i919: ; preds = %case214 + %tmp13.i916 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i917 = load %"Act[]"* %tmp13.i916 ; <%"Act[]"> [#uses=1] + %tmp17.i918 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i917, i32* %tmp1.i692) ; [#uses=1] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921: ; preds = %if.i919, %case214 + %tmp216922 = phi i32 [ %tmp17.i918, %if.i919 ], [ 0, %case214 ] ; [#uses=2] + switch i32 %tmp216922, label %default529 [ + i32 91, label %case128 + i32 92, label %case236 + i32 46, label %case145 + ] + +case236: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908, %whilebody + %pred_type.2 = phi i32 [ 0, %whilebody ], [ 2, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 ], [ 3, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 ] ; [#uses=12] + %tmp4.i925 = load i32* %tmp1.i692 ; [#uses=2] + store i32 %tmp4.i925, i32* %tmp1.i697 + %.len.i927 = load i32* %tmp4.i693 ; [#uses=1] + %tmp11.i928 = icmp ult i32 %tmp4.i925, %.len.i927 ; [#uses=1] + br i1 %tmp11.i928, label %if.i932, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit934 + +if.i932: ; preds = %case236 + %tmp13.i929 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i930 = load %"Act[]"* %tmp13.i929 ; <%"Act[]"> [#uses=1] + %tmp17.i931 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i930, i32* %tmp1.i692) ; [#uses=1] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit934 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit934: ; preds = %if.i932, %case236 + %tmp238935 = phi i32 [ %tmp17.i931, %if.i932 ], [ 0, %case236 ] ; [#uses=2] + br i1 %implicit_concat.0, label %if240, label %endif241 + +if240: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit934 + %tmp242 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp243 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp242, i32 1, i1 false) ; [#uses=0] + br label %endif241 + +endif241: ; preds = %if240, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit934 + switch i32 %tmp238935, label %default515 [ + i32 116, label %case248 + i32 110, label %case260 + i32 114, label %case272 + i32 119, label %case284 + i32 87, label %case296 + i32 115, label %case310 + i32 83, label %case322 + i32 100, label %case338 + i32 68, label %case350 + i32 98, label %case366 + i32 66, label %case432 + ] + +case248: ; preds = %endif241 + %tmp249 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp250 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp249, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp251 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp250 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl252" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp251, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign254 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl252", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp257 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA19constructSingleCharMFwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 9, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp258 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign254(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp249, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp257) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case260: ; preds = %endif241 + %tmp261 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp262 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp261, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp263 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp262 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl264" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp263, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign266 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl264", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp269 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA19constructSingleCharMFwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 10, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp270 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign266(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp261, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp269) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case272: ; preds = %endif241 + %tmp273 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp274 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp273, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp275 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp274 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl276" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp275, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign278 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl276", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp281 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA19constructSingleCharMFwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 13, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp282 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign278(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp273, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp281) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case284: ; preds = %endif241 + %tmp285 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp286 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp285, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp287 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp286 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl288" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp287, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign290 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl288", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp293 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass9alphanum_S5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp294 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign290(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp285, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp293) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case296: ; preds = %endif241 + %srcval = load i64* bitcast (%"tango.text.Regex.CharClass!(dchar).CharClass"* @_D5tango4text5Regex16__T9CharClassTwZ9CharClass9alphanum_S5tango4text5Regex16__T9CharClassTwZ9CharClass to i64*), align 4 ; [#uses=2] + %tmp1028 = lshr i64 %srcval, 32 ; [#uses=1] + %tmp1029 = trunc i64 %tmp1028 to i32 ; [#uses=1] + %tmp1030 = insertvalue %"byte[]" undef, i32 %tmp1029, 0 ; <%"byte[]"> [#uses=1] + %tmp1031 = trunc i64 %srcval to i32 ; [#uses=1] + %tmp1032 = inttoptr i32 %tmp1031 to i8* ; [#uses=1] + %tmp1033 = insertvalue %"byte[]" %tmp1030, i8* %tmp1032, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i940 = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp1033) ; <%"byte[]"> [#uses=2] + %tmp6.i941 = extractvalue %"byte[]" %tmp5.i940, 0 ; [#uses=1] + %tmp8.i942 = extractvalue %"byte[]" %tmp5.i940, 1 ; [#uses=1] + %tmp = ptrtoint i8* %tmp8.i942 to i32 ; [#uses=2] + %tmp297674 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc to i64* ; [#uses=1] + %5 = zext i32 %tmp6.i941 to i64 ; [#uses=1] + %6 = shl i64 %5, 32 ; [#uses=1] + %7 = zext i32 %tmp to i64 ; [#uses=1] + %8 = or i64 %7, %6 ; [#uses=1] + store i64 %8, i64* %tmp297674, align 8 + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %cc) + %tmp299 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp300 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp299, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp301 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp300 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl302" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp301, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign304 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl302", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp307 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp308 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign304(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp299, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp307) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case310: ; preds = %endif241 + %tmp311 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp312 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp311, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp313 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp312 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl314" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp313, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign316 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl314", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp319 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp320 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign316(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp311, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp319) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case322: ; preds = %endif241 + %srcval1041 = load i64* bitcast (%"tango.text.Regex.CharClass!(dchar).CharClass"* @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass to i64*), align 4 ; [#uses=2] + %tmp1035 = lshr i64 %srcval1041, 32 ; [#uses=1] + %tmp1036 = trunc i64 %tmp1035 to i32 ; [#uses=1] + %tmp1037 = insertvalue %"byte[]" undef, i32 %tmp1036, 0 ; <%"byte[]"> [#uses=1] + %tmp1038 = trunc i64 %srcval1041 to i32 ; [#uses=1] + %tmp1039 = inttoptr i32 %tmp1038 to i8* ; [#uses=1] + %tmp1040 = insertvalue %"byte[]" %tmp1037, i8* %tmp1039, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i949 = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp1040) ; <%"byte[]"> [#uses=2] + %tmp6.i950 = extractvalue %"byte[]" %tmp5.i949, 0 ; [#uses=1] + %tmp8.i951 = extractvalue %"byte[]" %tmp5.i949, 1 ; [#uses=1] + %tmp1018 = ptrtoint i8* %tmp8.i951 to i32 ; [#uses=2] + %tmp325676 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc323 to i64* ; [#uses=1] + %9 = zext i32 %tmp6.i950 to i64 ; [#uses=1] + %10 = shl i64 %9, 32 ; [#uses=1] + %11 = zext i32 %tmp1018 to i64 ; [#uses=1] + %12 = or i64 %11, %10 ; [#uses=1] + store i64 %12, i64* %tmp325676, align 8 + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %cc323) + %tmp327 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp328 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp327, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp329 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp328 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl330" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp329, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign332 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl330", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp335 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc323, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp336 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign332(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp327, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp335) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case338: ; preds = %endif241 + %tmp339 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp340 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp339, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp341 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp340 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl342" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp341, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign344 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl342", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp347 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass5digitS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp348 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign344(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp339, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp347) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case350: ; preds = %endif241 + %srcval1049 = load i64* bitcast (%"tango.text.Regex.CharClass!(dchar).CharClass"* @_D5tango4text5Regex16__T9CharClassTwZ9CharClass5digitS5tango4text5Regex16__T9CharClassTwZ9CharClass to i64*), align 4 ; [#uses=2] + %tmp1043 = lshr i64 %srcval1049, 32 ; [#uses=1] + %tmp1044 = trunc i64 %tmp1043 to i32 ; [#uses=1] + %tmp1045 = insertvalue %"byte[]" undef, i32 %tmp1044, 0 ; <%"byte[]"> [#uses=1] + %tmp1046 = trunc i64 %srcval1049 to i32 ; [#uses=1] + %tmp1047 = inttoptr i32 %tmp1046 to i8* ; [#uses=1] + %tmp1048 = insertvalue %"byte[]" %tmp1045, i8* %tmp1047, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i959 = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp1048) ; <%"byte[]"> [#uses=2] + %tmp6.i960 = extractvalue %"byte[]" %tmp5.i959, 0 ; [#uses=1] + %tmp8.i961 = extractvalue %"byte[]" %tmp5.i959, 1 ; [#uses=1] + %tmp1013 = ptrtoint i8* %tmp8.i961 to i32 ; [#uses=2] + %tmp353679 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc351 to i64* ; [#uses=1] + %13 = zext i32 %tmp6.i960 to i64 ; [#uses=1] + %14 = shl i64 %13, 32 ; [#uses=1] + %15 = zext i32 %tmp1013 to i64 ; [#uses=1] + %16 = or i64 %15, %14 ; [#uses=1] + store i64 %16, i64* %tmp353679, align 8 + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %cc351) + %tmp355 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp356 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp355, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp357 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp356 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl358" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp357, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign360 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl358", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp363 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc351, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp364 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign360(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp355, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp363) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +case366: ; preds = %endif241 + %tmp368 = icmp eq i32 %pred_type.2, 0 ; [#uses=1] + br i1 %tmp368, label %endif370, label %if369 + +if369: ; preds = %case366 + %.newclass_gc_alloc371 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc372 = bitcast i8* %.newclass_gc_alloc371 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl373 = bitcast i8* %.newclass_gc_alloc371 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl373 + %monitor374 = getelementptr i8* %.newclass_gc_alloc371, i32 4 ; [#uses=1] + %17 = bitcast i8* %monitor374 to i8** ; [#uses=1] + store i8* null, i8** %17 + %tmp375 = getelementptr i8* %.newclass_gc_alloc371, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp375, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %.gc_mem.i965 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 63) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i965 to i64* ; [#uses=1] + %tmp.i966 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i966, i64* %.gc_mem12.i, align 1 + %tmp4.i967 = getelementptr i8* %.gc_mem.i965, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i967, i8* getelementptr ([56 x i8]* @.str217, i32 0, i32 0), i32 55, i32 1) + %tmp6.i968 = insertvalue %"byte[]" undef, i32 63, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i969 = insertvalue %"byte[]" %tmp6.i968, i8* %.gc_mem.i965, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i970 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc372, %"byte[]" %tmp7.i969, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp380 = bitcast i8* %.newclass_gc_alloc371 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp380) + unreachable + +endif370: ; preds = %case366 + %srcval1057 = load i64* bitcast (%"tango.text.Regex.CharClass!(dchar).CharClass"* @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass to i64*), align 4 ; [#uses=2] + %tmp1051 = lshr i64 %srcval1057, 32 ; [#uses=1] + %tmp1052 = trunc i64 %tmp1051 to i32 ; [#uses=1] + %tmp1053 = insertvalue %"byte[]" undef, i32 %tmp1052, 0 ; <%"byte[]"> [#uses=1] + %tmp1054 = trunc i64 %srcval1057 to i32 ; [#uses=1] + %tmp1055 = inttoptr i32 %tmp1054 to i8* ; [#uses=1] + %tmp1056 = insertvalue %"byte[]" %tmp1053, i8* %tmp1055, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i976 = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp1056) ; <%"byte[]"> [#uses=2] + %tmp6.i977 = extractvalue %"byte[]" %tmp5.i976, 0 ; [#uses=1] + %tmp8.i978 = extractvalue %"byte[]" %tmp5.i976, 1 ; [#uses=1] + %tmp1008 = ptrtoint i8* %tmp8.i978 to i32 ; [#uses=2] + %tmp383682 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc381 to i64* ; [#uses=1] + %18 = zext i32 %tmp6.i977 to i64 ; [#uses=1] + %19 = shl i64 %18, 32 ; [#uses=1] + %20 = zext i32 %tmp1008 to i64 ; [#uses=1] + %21 = or i64 %20, %19 ; [#uses=1] + store i64 %21, i64* %tmp383682, align 8 + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %cc381) + %tmp385 = bitcast %nest.parse* %.frame to i8* ; [#uses=5] + %tmp386 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp385, i32 14, i1 true) ; [#uses=0] + %tmp387 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp388 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp387, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp389 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp388 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl390" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp389, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign392 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl390", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp394 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc381, i32 3) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp395 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign392(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp387, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp394) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp397 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp385, i32 1, i1 false) ; [#uses=0] + %tmp398 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp399 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp398, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp400 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp399 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl401" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp400, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign403 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl401", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp405 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp406 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign403(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp398, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp405) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp408 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp385, i32 2, i1 false) ; [#uses=0] + %tmp409 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp410 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp409, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp411 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp410 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl412" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp411, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign414 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl412", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp416 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 3) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp417 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign414(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp409, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp416) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp419 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp385, i32 1, i1 false) ; [#uses=0] + %tmp420 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp421 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp420, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp422 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp421 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl423" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp422, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign425 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl423", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp427 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc381, i32 2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp428 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign425(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp420, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp427) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp430 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp385, i32 4, i1 false) ; [#uses=0] + br label %whilecond + +case432: ; preds = %endif241 + %tmp434 = icmp eq i32 %pred_type.2, 0 ; [#uses=1] + br i1 %tmp434, label %endif436, label %if435 + +if435: ; preds = %case432 + %.newclass_gc_alloc437 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc438 = bitcast i8* %.newclass_gc_alloc437 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl439 = bitcast i8* %.newclass_gc_alloc437 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl439 + %monitor440 = getelementptr i8* %.newclass_gc_alloc437, i32 4 ; [#uses=1] + %22 = bitcast i8* %monitor440 to i8** ; [#uses=1] + store i8* null, i8** %22 + %tmp441 = getelementptr i8* %.newclass_gc_alloc437, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp441, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %.gc_mem.i984 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 63) ; [#uses=3] + %.gc_mem12.i985 = bitcast i8* %.gc_mem.i984 to i64* ; [#uses=1] + %tmp.i986 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i986, i64* %.gc_mem12.i985, align 1 + %tmp4.i987 = getelementptr i8* %.gc_mem.i984, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i987, i8* getelementptr ([56 x i8]* @.str218, i32 0, i32 0), i32 55, i32 1) + %tmp6.i988 = insertvalue %"byte[]" undef, i32 63, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i989 = insertvalue %"byte[]" %tmp6.i988, i8* %.gc_mem.i984, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i990 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc438, %"byte[]" %tmp7.i989, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp446 = bitcast i8* %.newclass_gc_alloc437 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp446) + unreachable + +endif436: ; preds = %case432 + %srcval1065 = load i64* bitcast (%"tango.text.Regex.CharClass!(dchar).CharClass"* @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass to i64*), align 4 ; [#uses=2] + %tmp1059 = lshr i64 %srcval1065, 32 ; [#uses=1] + %tmp1060 = trunc i64 %tmp1059 to i32 ; [#uses=1] + %tmp1061 = insertvalue %"byte[]" undef, i32 %tmp1060, 0 ; <%"byte[]"> [#uses=1] + %tmp1062 = trunc i64 %srcval1065 to i32 ; [#uses=1] + %tmp1063 = inttoptr i32 %tmp1062 to i8* ; [#uses=1] + %tmp1064 = insertvalue %"byte[]" %tmp1061, i8* %tmp1063, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i996 = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp1064) ; <%"byte[]"> [#uses=2] + %tmp6.i997 = extractvalue %"byte[]" %tmp5.i996, 0 ; [#uses=1] + %tmp8.i998 = extractvalue %"byte[]" %tmp5.i996, 1 ; [#uses=1] + %tmp1003 = ptrtoint i8* %tmp8.i998 to i32 ; [#uses=2] + %tmp450685 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc448 to i64* ; [#uses=1] + %23 = zext i32 %tmp6.i997 to i64 ; [#uses=1] + %24 = shl i64 %23, 32 ; [#uses=1] + %25 = zext i32 %tmp1003 to i64 ; [#uses=1] + %26 = or i64 %25, %24 ; [#uses=1] + store i64 %26, i64* %tmp450685, align 8 + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %cc448) + %tmp452 = bitcast %nest.parse* %.frame to i8* ; [#uses=5] + %tmp453 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp452, i32 14, i1 true) ; [#uses=0] + %tmp454 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp455 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp454, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp456 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp455 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl457" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp456, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign459 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl457", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp461 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc448, i32 3) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp462 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign459(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp454, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp461) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp464 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp452, i32 1, i1 false) ; [#uses=0] + %tmp465 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp466 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp465, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp467 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp466 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl468" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp467, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign470 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl468", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp472 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc448, i32 2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp473 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign470(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp465, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp472) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp475 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp452, i32 2, i1 false) ; [#uses=0] + %tmp476 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp477 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp476, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp478 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp477 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl479" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp478, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign481 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl479", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp483 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 3) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp484 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign481(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp476, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp483) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp486 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp452, i32 1, i1 false) ; [#uses=0] + %tmp487 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp488 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp487, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp489 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp488 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl490" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp489, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign492 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl490", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp494 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass10whitespaceS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp495 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign492(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp487, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp494) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp497 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp452, i32 4, i1 false) ; [#uses=0] + br label %whilecond + +default515: ; preds = %endif241 + %tmp516 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp517 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp516, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp518 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp517 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl519" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp518, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign521 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl519", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp525 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA19constructSingleCharMFwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 %tmp238935, i32 %pred_type.2) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp526 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign521(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp516, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp525) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +default529: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908, %whilebody + %c.0 = phi i32 [ %tmp17.i701, %whilebody ], [ %tmp196909, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 ], [ %tmp216922, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 ] ; [#uses=1] + %pred_type.3 = phi i32 [ 0, %whilebody ], [ 2, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit908 ], [ 3, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit921 ] ; [#uses=1] + br i1 %implicit_concat.0, label %if531, label %endif532 + +if531: ; preds = %default529 + %tmp533 = bitcast %nest.parse* %.frame to i8* ; [#uses=1] + %tmp534 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp533, i32 1, i1 false) ; [#uses=0] + br label %endif532 + +endif532: ; preds = %if531, %default529 + %tmp535 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp536 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp535, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp537 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp536 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl538" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp537, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign540 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl538", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp544 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA19constructSingleCharMFwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 %c.0, i32 %pred_type.3) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp545 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign540(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp535, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp544) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + br label %whilecond + +endwhile: ; preds = %whilecond + br i1 %unanchored_arg, label %if547, label %whilecond567 + +if547: ; preds = %endwhile + %tmp549 = bitcast %nest.parse* %.frame to i8* ; [#uses=3] + %tmp550 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp549, i32 4, i1 false) ; [#uses=0] + br i1 %implicit_concat.0, label %if552, label %endif553 + +if552: ; preds = %if547 + %tmp555 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp549, i32 1, i1 false) ; [#uses=0] + br label %endif553 + +endif553: ; preds = %if552, %if547 + %tmp556 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp557 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp556, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp558 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp557 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl559" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp558, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign561 = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl559", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp563 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8any_charS5tango4text5Regex16__T9CharClassTwZ9CharClass, i32 0) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp564 = call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign561(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp556, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp563) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + %tmp566 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp549, i32 9, i1 false) ; [#uses=0] + br label %whilecond567 + +whilecond567: ; preds = %whilecond567, %endif553, %endwhile + %tmp570 = bitcast %nest.parse* %.frame to i8* ; [#uses=4] + %tmp571 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %tmp570, i32 0, i1 true) ; [#uses=1] + br i1 %tmp571, label %endwhile569, label %whilecond567 + +endwhile569: ; preds = %whilecond567 + %tmp573 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %.newclass_gc_alloc.i752 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i753 = bitcast i8* %.newclass_gc_alloc.i752 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %vtbl.i754 = bitcast i8* %.newclass_gc_alloc.i752 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i754 + %monitor.i755 = getelementptr i8* %.newclass_gc_alloc.i752, i32 4 ; [#uses=1] + %27 = bitcast i8* %monitor.i755 to i8** ; [#uses=1] + store i8* null, i8** %27 + %tmp.i756 = getelementptr i8* %.newclass_gc_alloc.i752, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i756, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i757 = getelementptr i8* %.newclass_gc_alloc.i752, i32 16 ; [#uses=1] + %28 = bitcast i8* %tmp1.i.i757 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i758 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i759 = bitcast i8* %.newclass_gc_alloc.i.i758 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i760 = bitcast i8* %.newclass_gc_alloc.i.i758 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i760 + %monitor.i.i761 = getelementptr i8* %.newclass_gc_alloc.i.i758, i32 4 ; [#uses=1] + %29 = bitcast i8* %monitor.i.i761 to i8** ; [#uses=1] + store i8* null, i8** %29 + %tmp2.i.i762 = getelementptr i8* %.newclass_gc_alloc.i.i758, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i.i762, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i759, %"tango.text.Regex.List!(TNFATransition).List"** %28 + %tmp6.i763 = getelementptr i8* %.newclass_gc_alloc.i752, i32 12 ; [#uses=1] + %30 = bitcast i8* %tmp6.i763 to i32* ; [#uses=1] + %tmp9.i764 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=4] + %.len.i765 = load i32* %tmp9.i764 ; [#uses=4] + store i32 %.len.i765, i32* %30 + %tmp14.i766 = add i32 %.len.i765, 1 ; [#uses=2] + %tmp17.i767 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=4] + %.ptr.i768 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i767 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i769 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i768 to i8* ; [#uses=1] + %.gc_mem.i770 = call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i766, i32 %.len.i765, i8* %tmp18.i769) ; [#uses=1] + %.gc_mem19.i771 = bitcast i8* %.gc_mem.i770 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i772 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i771, i32 %.len.i765 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i753, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i772 + store i32 %tmp14.i766, i32* %tmp9.i764 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i771, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i767 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i753, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp573 + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %31 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %31 + %tmp.i742 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp.i742, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %32 = bitcast i8* %tmp1.i.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %33 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %33 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %32 + %tmp6.i743 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %34 = bitcast i8* %tmp6.i743 to i32* ; [#uses=1] + %.len.i745 = load i32* %tmp9.i764 ; [#uses=4] + store i32 %.len.i745, i32* %34 + %tmp14.i746 = add i32 %.len.i745, 1 ; [#uses=2] + %.ptr.i748 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i767 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i749 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i748 to i8* ; [#uses=1] + %.gc_mem.i750 = call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i746, i32 %.len.i745, i8* %tmp18.i749) ; [#uses=1] + %.gc_mem19.i751 = bitcast i8* %.gc_mem.i750 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i751, i32 %.len.i745 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i746, i32* %tmp9.i764 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i751, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i767 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %finish + %35 = bitcast i8* %tmp.i742 to i1* ; [#uses=1] + store i1 true, i1* %35 + %tmp580 = load %"tango.text.Regex.List!(TNFAFragment).List"** %frags ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp581 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp580, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp582 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp581 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp582, i32 0, i32 20 ; [#uses=1] + %frags.opApply = load i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %"int delegate(ref TNFAFragment)")** %"frags.opApply@vtbl", align 4 ; [#uses=1] + %tmp585 = insertvalue %"int delegate(ref TNFAFragment)" undef, i8* %tmp570, 0 ; <%"int delegate(ref TNFAFragment)"> [#uses=1] + %.func = insertvalue %"int delegate(ref TNFAFragment)" %tmp585, i32 (i8*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv15__foreachbody44MFKC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZi, 1 ; <%"int delegate(ref TNFAFragment)"> [#uses=1] + %tmp586 = call fastcc i32 %frags.opApply(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp580, %"int delegate(ref TNFAFragment)" %.func) ; [#uses=0] + %tmp588 = bitcast [4 x %"tango.text.Regex.List!(TNFATransition).List"*]* %trans to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp588, i8 0, i32 16, i32 4) + br label %foreachcond + +foreachcond: ; preds = %foreachbody, %endwhile569 + %foreachkey.0 = phi i32 [ 0, %endwhile569 ], [ %tmp603, %foreachbody ] ; [#uses=3] + %tmp591 = icmp ult i32 %foreachkey.0, 4 ; [#uses=1] + br i1 %tmp591, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp593 = getelementptr [4 x %"tango.text.Regex.List!(TNFATransition).List"*]* %trans, i32 0, i32 %foreachkey.0 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc594 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc595 = bitcast i8* %.newclass_gc_alloc594 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl596 = bitcast i8* %.newclass_gc_alloc594 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl596 + %monitor597 = getelementptr i8* %.newclass_gc_alloc594, i32 4 ; [#uses=1] + %36 = bitcast i8* %monitor597 to i8** ; [#uses=1] + store i8* null, i8** %36 + %tmp598 = getelementptr i8* %.newclass_gc_alloc594, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp598, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc595, %"tango.text.Regex.List!(TNFATransition).List"** %tmp593 + %tmp603 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + %tmp604 = bitcast %"tango.text.Regex.Stack!(TNFATransition).Stack"* %todo to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp604, i8 0, i32 12, i32 8) + br label %whilecond608 + +whilecond608: ; preds = %endif634, %foreachend + %state.0.in = phi %"tango.text.Regex.TNFAState!(dchar).TNFAState"** [ %tmp573, %foreachend ], [ %tmp649, %endif634 ] ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %state.0 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %state.0.in ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %tmp1.i727 = getelementptr %nest.parse* %.frame, i32 0, i32 6, i32 0 ; [#uses=3] + %tmp2.i728 = load i32* %tmp1.i727, align 8 ; [#uses=2] + %tmp3.i729 = icmp eq i32 %tmp2.i728, 0 ; [#uses=1] + %tmp613 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state.0, i32 0, i32 3 ; [#uses=3] + br i1 %tmp3.i729, label %oror, label %whilebody609 + +whilebody609: ; preds = %oror, %whilecond608 + %tmp617 = load i1* %tmp613 ; [#uses=1] + br i1 %tmp617, label %endif619, label %if618 + +oror: ; preds = %whilecond608 + %tmp614 = load i1* %tmp613 ; [#uses=1] + br i1 %tmp614, label %endwhile610, label %whilebody609 + +if618: ; preds = %whilebody609 + store i1 true, i1* %tmp613 + %tmp623 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state.0, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp624 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp623 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp625 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp624, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp626 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp625 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"state.transitions.opApplyReverse@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp626, i32 0, i32 21 ; [#uses=1] + %state.transitions.opApplyReverse = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"state.transitions.opApplyReverse@vtbl", align 4 ; [#uses=1] + %tmp629 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp570, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func630 = insertvalue %"int delegate(ref TNFATransition)" %tmp629, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv15__foreachbody45MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp631 = call fastcc i32 %state.transitions.opApplyReverse(%"tango.text.Regex.List!(TNFATransition).List"* %tmp624, %"int delegate(ref TNFATransition)" %.func630) ; [#uses=0] + %tmp2.i.pre = load i32* %tmp1.i727, align 8 ; [#uses=1] + br label %endif619 + +endif619: ; preds = %if618, %whilebody609 + %tmp6.i705 = phi i32 [ %tmp2.i728, %whilebody609 ], [ %tmp2.i.pre, %if618 ] ; [#uses=2] + %tmp3.i716 = icmp eq i32 %tmp6.i705, 0 ; [#uses=1] + br i1 %tmp3.i716, label %endwhile610, label %endif634 + +endif634: ; preds = %endif619 + %tmp5.i710 = add i32 %tmp6.i705, -1 ; [#uses=2] + %tmp6.i711 = getelementptr %nest.parse* %.frame, i32 0, i32 6, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr.i712 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp6.i711 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp7.i713 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr.i712, i32 %tmp5.i710 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp8.i714 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp7.i713 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + store i32 %tmp5.i710, i32* %tmp1.i727, align 8 + %tmp639 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp8.i714, i32 0, i32 6 ; [#uses=1] + %tmp640 = load i32* %tmp639 ; [#uses=1] + %tmp641 = getelementptr [4 x %"tango.text.Regex.List!(TNFATransition).List"*]* %trans, i32 0, i32 %tmp640 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp642 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp641 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp643 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp642, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp644 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp643 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"(trans[cast(uint)t.priorityClass]).opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp644, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %"(trans[cast(uint)t.priorityClass]).opCatAssign" = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"(trans[cast(uint)t.priorityClass]).opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp647 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %"(trans[cast(uint)t.priorityClass]).opCatAssign"(%"tango.text.Regex.List!(TNFATransition).List"* %tmp642, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp8.i714) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp649 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp8.i714, i32 0, i32 2 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + br label %whilecond608 + +endwhile610: ; preds = %endif619, %oror + store i32 0, i32* %nextPrio + br label %foreachcond653 + +foreachcond653: ; preds = %foreachbody654, %endwhile610 + %foreachkey651.0 = phi i32 [ 0, %endwhile610 ], [ %tmp671, %foreachbody654 ] ; [#uses=3] + %tmp658 = icmp ult i32 %foreachkey651.0, 4 ; [#uses=1] + br i1 %tmp658, label %foreachbody654, label %foreachend656 + +foreachbody654: ; preds = %foreachcond653 + %tmp660 = getelementptr [4 x %"tango.text.Regex.List!(TNFATransition).List"*]* %trans, i32 0, i32 %foreachkey651.0 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp661 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp660 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp663 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp661, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp664 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp663 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"ts.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp664, i32 0, i32 20 ; [#uses=1] + %ts.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"ts.opApply@vtbl", align 4 ; [#uses=1] + %tmp667 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp570, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func668 = insertvalue %"int delegate(ref TNFATransition)" %tmp667, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv15__foreachbody46MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp669 = call fastcc i32 %ts.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp661, %"int delegate(ref TNFATransition)" %.func668) ; [#uses=0] + %tmp671 = add i32 %foreachkey651.0, 1 ; [#uses=1] + br label %foreachcond653 + +foreachend656: ; preds = %foreachcond653 + ret void +} + +define weak_odr fastcc %"tango.text.Regex.TNFA!(dchar).TNFA"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5_ctorMFAwZC5tango4text5Regex11__T4TNFATwZ4TNFA(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"Act[]" %regex_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 6 ; [#uses=1] + store i32 1, i32* %tmp1 + %tmp3 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp4 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 + %tmp9 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + store %"Act[]" %regex_arg, %"Act[]"* %tmp9 + ret %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA11peekPatternMFZw(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg) { +entry: + %tmp = alloca i32, align 4 ; [#uses=2] + %tmp2 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=1] + %tmp3 = load i32* %tmp2 ; [#uses=2] + store i32 %tmp3, i32* %tmp + %tmp6 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp6 ; [#uses=1] + %tmp8 = icmp ult i32 %tmp3, %.len ; [#uses=1] + br i1 %tmp8, label %if, label %endif + +if: ; preds = %entry + %tmp10 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11 = load %"Act[]"* %tmp10 ; <%"Act[]"> [#uses=1] + %tmp12 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11, i32* %tmp) ; [#uses=1] + ret i32 %tmp12 + +endif: ; preds = %entry + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp3 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=2] + %tmp4 = load i32* %tmp3 ; [#uses=2] + store i32 %tmp4, i32* %tmp1 + %tmp9 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp9 ; [#uses=1] + %tmp11 = icmp ult i32 %tmp4, %.len ; [#uses=1] + br i1 %tmp11, label %if, label %endif + +if: ; preds = %entry + %tmp13 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14 = load %"Act[]"* %tmp13 ; <%"Act[]"> [#uses=1] + %tmp17 = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14, i32* %tmp3) ; [#uses=1] + ret i32 %tmp17 + +endif: ; preds = %entry + ret i32 0 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA12endOfPatternMFZb(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=1] + %tmp4 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp4 ; [#uses=1] + %tmp5 = load i32* %tmp1 ; [#uses=1] + %tmp6 = icmp uge i32 %tmp5, %.len ; [#uses=1] + ret i1 %tmp6 +} + +define weak_odr fastcc %"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA8addStateMFZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg) { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %1 = bitcast i8* %tmp1.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp2.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp6 to i32* ; [#uses=1] + %tmp9 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len = load i32* %tmp9 ; [#uses=4] + store i32 %.len, i32* %3 + %tmp14 = add i32 %.len, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14, i32 %.len, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19, i32 %.len ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20 + store i32 %tmp14, i32* %tmp9 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17 + ret %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc +} + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA13addTransitionMFE5tango4text5Regex13PriorityClassZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, i32 %pc_arg) { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i = getelementptr i8* %.newclass_gc_alloc, i32 48 ; [#uses=1] + %1 = bitcast i8* %tmp1.i to i32* ; [#uses=1] + store i32 %pc_arg, i32* %1 + %tmp7 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp8 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg) { +entry: + %tmp.i = alloca i32, align 4 ; [#uses=2] + br label %whilecond + +whilecond: ; preds = %if.i, %endif, %entry + %res.0 = phi i32 [ 0, %entry ], [ %tmp12, %endif ], [ %tmp12, %if.i ] ; [#uses=2] + %tmp1.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=3] + %tmp4.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp4.i ; [#uses=1] + %tmp5.i = load i32* %tmp1.i ; [#uses=2] + %tmp6.i = icmp ult i32 %tmp5.i, %.len.i ; [#uses=1] + br i1 %tmp6.i, label %whilebody, label %endwhile + +whilebody: ; preds = %whilecond + store i32 %tmp5.i, i32* %tmp.i + %tmp10.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i22 = load %"Act[]"* %tmp10.i ; <%"Act[]"> [#uses=1] + %tmp12.i = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i22, i32* %tmp.i) ; [#uses=1] + %phitmp = add i32 %tmp12.i, -48 ; [#uses=2] + %or.cond = icmp ugt i32 %phitmp, 9 ; [#uses=1] + br i1 %or.cond, label %endwhile, label %endif + +endif: ; preds = %whilebody + %tmp9 = mul i32 %res.0, 10 ; [#uses=1] + %tmp12 = add i32 %tmp9, %phitmp ; [#uses=2] + %tmp1.i16 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp4.i17 = load i32* %tmp1.i ; [#uses=2] + store i32 %tmp4.i17, i32* %tmp1.i16 + %.len.i18 = load i32* %tmp4.i ; [#uses=1] + %tmp11.i = icmp ult i32 %tmp4.i17, %.len.i18 ; [#uses=1] + br i1 %tmp11.i, label %if.i, label %whilecond + +if.i: ; preds = %endif + %tmp13.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i = load %"Act[]"* %tmp13.i ; <%"Act[]"> [#uses=1] + %tmp17.i = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i, i32* %tmp1.i) ; [#uses=0] + br label %whilecond + +endwhile: ; preds = %whilebody, %whilecond + ret i32 %res.0 +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA15parseOccurCountMFJkJkZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32* nocapture %minOccur_arg, i32* nocapture %maxOccur_arg) { +entry: + %tmp.i235 = alloca i32, align 4 ; [#uses=2] + %tmp.i210 = alloca i32, align 4 ; [#uses=2] + %tmp.i.i158 = alloca i32, align 4 ; [#uses=2] + %tmp.i147 = alloca i32, align 4 ; [#uses=2] + %tmp.i.i = alloca i32, align 4 ; [#uses=2] + store i32 0, i32* %minOccur_arg + store i32 0, i32* %maxOccur_arg + br label %whilecond.i + +whilecond.i: ; preds = %if.i.i, %endif.i, %entry + %res.0.i = phi i32 [ 0, %entry ], [ %tmp12.i, %endif.i ], [ %tmp12.i, %if.i.i ] ; [#uses=2] + %tmp1.i.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=15] + %tmp4.i.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=13] + %.len.i.i = load i32* %tmp4.i.i ; [#uses=1] + %tmp5.i.i = load i32* %tmp1.i.i ; [#uses=2] + %tmp6.i.i = icmp ult i32 %tmp5.i.i, %.len.i.i ; [#uses=1] + br i1 %tmp6.i.i, label %whilebody.i, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit + +whilebody.i: ; preds = %whilecond.i + store i32 %tmp5.i.i, i32* %tmp.i.i + %tmp10.i.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=2] + %tmp11.i22.i = load %"Act[]"* %tmp10.i.i ; <%"Act[]"> [#uses=1] + %tmp12.i.i = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i22.i, i32* %tmp.i.i) ; [#uses=1] + %phitmp = add i32 %tmp12.i.i, -48 ; [#uses=2] + %or.cond.i = icmp ugt i32 %phitmp, 9 ; [#uses=1] + br i1 %or.cond.i, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit, label %endif.i + +endif.i: ; preds = %whilebody.i + %tmp9.i = mul i32 %res.0.i, 10 ; [#uses=1] + %tmp12.i = add i32 %tmp9.i, %phitmp ; [#uses=2] + %tmp1.i16.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp4.i17.i = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp4.i17.i, i32* %tmp1.i16.i + %.len.i18.i = load i32* %tmp4.i.i ; [#uses=1] + %tmp11.i.i = icmp ult i32 %tmp4.i17.i, %.len.i18.i ; [#uses=1] + br i1 %tmp11.i.i, label %if.i.i, label %whilecond.i + +if.i.i: ; preds = %endif.i + %tmp14.i.i = load %"Act[]"* %tmp10.i.i ; <%"Act[]"> [#uses=1] + %tmp17.i.i = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i.i, i32* %tmp1.i.i) ; [#uses=0] + br label %whilecond.i + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit: ; preds = %whilebody.i, %whilecond.i + store i32 %res.0.i, i32* %minOccur_arg + %tmp3.i237 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp3.i237, i32* %tmp.i235 + %.len.i239 = load i32* %tmp4.i.i ; [#uses=1] + %tmp8.i240 = icmp ult i32 %tmp3.i237, %.len.i239 ; [#uses=1] + br i1 %tmp8.i240, label %if.i244, label %endif + +if.i244: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit + %tmp10.i241 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i242 = load %"Act[]"* %tmp10.i241 ; <%"Act[]"> [#uses=1] + %tmp12.i243 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i242, i32* %tmp.i235) ; [#uses=1] + %phitmp251 = icmp eq i32 %tmp12.i243, 125 ; [#uses=1] + br i1 %phitmp251, label %if, label %endif + +if: ; preds = %if.i244 + %tmp1.i223 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp4.i225 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp4.i225, i32* %tmp1.i223 + %.len.i227 = load i32* %tmp4.i.i ; [#uses=1] + %tmp11.i228 = icmp ult i32 %tmp4.i225, %.len.i227 ; [#uses=1] + br i1 %tmp11.i228, label %if.i232, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit234 + +if.i232: ; preds = %if + %tmp13.i229 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i230 = load %"Act[]"* %tmp13.i229 ; <%"Act[]"> [#uses=1] + %tmp17.i231 = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i230, i32* %tmp1.i.i) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit234 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit234: ; preds = %if.i232, %if + %tmp7 = load i32* %minOccur_arg ; [#uses=1] + store i32 %tmp7, i32* %maxOccur_arg + ret void + +endif: ; preds = %if.i244, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit + %tmp3.i212 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp3.i212, i32* %tmp.i210 + %.len.i214 = load i32* %tmp4.i.i ; [#uses=1] + %tmp8.i215 = icmp ult i32 %tmp3.i212, %.len.i214 ; [#uses=1] + br i1 %tmp8.i215, label %if.i219, label %if11 + +if.i219: ; preds = %endif + %tmp10.i216 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i217 = load %"Act[]"* %tmp10.i216 ; <%"Act[]"> [#uses=1] + %tmp12.i218 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i217, i32* %tmp.i210) ; [#uses=1] + %phitmp250 = icmp eq i32 %tmp12.i218, 44 ; [#uses=1] + br i1 %phitmp250, label %endif12, label %if11 + +if11: ; preds = %if.i219, %endif + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp13, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp19 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp19 ; [#uses=1] + %tmp21 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %.len = load i32* %tmp4.i.i ; [#uses=1] + %tmp23 = load i32* %tmp21 ; [#uses=2] + %tmp24 = getelementptr i32* %.ptr, i32 %tmp23 ; [#uses=1] + %tmp25 = sub i32 %.len, %tmp23 ; [#uses=1] + %tmp26 = insertvalue %"Act[]" undef, i32 %tmp25, 0 ; <%"Act[]"> [#uses=1] + %tmp27 = insertvalue %"Act[]" %tmp26, i32* %tmp24, 1 ; <%"Act[]"> [#uses=1] + %tmp28 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp27, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len29 = extractvalue %"byte[]" %tmp28, 0 ; [#uses=4] + %tmp30 = add i32 %.len29, 28 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp30, align 1 ; [#uses=3] + %.ptr31 = extractvalue %"byte[]" %tmp28, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([29 x i8]* @.str219, i32 0, i32 0), i32 28, i32 1) + %tmp32 = getelementptr i8* %.nongc_mem, i32 28 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32, i8* %.ptr31, i32 %.len29, i32 1) + %tmp34 = add i32 %.len29, 29 ; [#uses=2] + %.nongc_mem252 = alloca i8, i32 %tmp34, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem252, i8* %.nongc_mem, i32 %tmp30, i32 1) + %tmp37 = getelementptr i8* %.nongc_mem252, i32 %tmp30 ; [#uses=1] + store i8 34, i8* %tmp37, align 1 + %tmp2.i202 = add i32 %.len29, 37 ; [#uses=2] + %.gc_mem.i203 = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i202) ; [#uses=3] + %.gc_mem12.i204 = bitcast i8* %.gc_mem.i203 to i64* ; [#uses=1] + %tmp.i205 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i205, i64* %.gc_mem12.i204, align 1 + %tmp4.i206 = getelementptr i8* %.gc_mem.i203, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i206, i8* %.nongc_mem252, i32 %tmp34, i32 1) + %tmp6.i207 = insertvalue %"byte[]" undef, i32 %tmp2.i202, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i208 = insertvalue %"byte[]" %tmp6.i207, i8* %.gc_mem.i203, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i209 = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i208, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp41 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp41) + unreachable + +endif12: ; preds = %if.i219 + %tmp1.i188 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=5] + %tmp4.i190 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp4.i190, i32* %tmp1.i188 + %.len.i192 = load i32* %tmp4.i.i ; [#uses=1] + %tmp11.i193 = icmp ult i32 %tmp4.i190, %.len.i192 ; [#uses=1] + br i1 %tmp11.i193, label %if.i197, label %whilecond.i165 + +if.i197: ; preds = %endif12 + %tmp13.i194 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i195 = load %"Act[]"* %tmp13.i194 ; <%"Act[]"> [#uses=1] + %tmp17.i196 = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i195, i32* %tmp1.i.i) ; [#uses=0] + br label %whilecond.i165 + +whilecond.i165: ; preds = %if.i.i184, %endif.i180, %if.i197, %endif12 + %res.0.i159 = phi i32 [ 0, %endif12 ], [ 0, %if.i197 ], [ %tmp12.i175, %endif.i180 ], [ %tmp12.i175, %if.i.i184 ] ; [#uses=2] + %.len.i.i162 = load i32* %tmp4.i.i ; [#uses=1] + %tmp5.i.i163 = load i32* %tmp1.i.i ; [#uses=2] + %tmp6.i.i164 = icmp ult i32 %tmp5.i.i163, %.len.i.i162 ; [#uses=1] + br i1 %tmp6.i.i164, label %whilebody.i166, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit187 + +whilebody.i166: ; preds = %whilecond.i165 + store i32 %tmp5.i.i163, i32* %tmp.i.i158 + %tmp10.i.i167 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=2] + %tmp11.i22.i168 = load %"Act[]"* %tmp10.i.i167 ; <%"Act[]"> [#uses=1] + %tmp12.i.i169 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i22.i168, i32* %tmp.i.i158) ; [#uses=1] + %phitmp248 = add i32 %tmp12.i.i169, -48 ; [#uses=2] + %or.cond.i172 = icmp ugt i32 %phitmp248, 9 ; [#uses=1] + br i1 %or.cond.i172, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit187, label %endif.i180 + +endif.i180: ; preds = %whilebody.i166 + %tmp9.i174 = mul i32 %res.0.i159, 10 ; [#uses=1] + %tmp12.i175 = add i32 %tmp9.i174, %phitmp248 ; [#uses=2] + %tmp4.i17.i177 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp4.i17.i177, i32* %tmp1.i188 + %.len.i18.i178 = load i32* %tmp4.i.i ; [#uses=1] + %tmp11.i.i179 = icmp ult i32 %tmp4.i17.i177, %.len.i18.i178 ; [#uses=1] + br i1 %tmp11.i.i179, label %if.i.i184, label %whilecond.i165 + +if.i.i184: ; preds = %endif.i180 + %tmp14.i.i182 = load %"Act[]"* %tmp10.i.i167 ; <%"Act[]"> [#uses=1] + %tmp17.i.i183 = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i.i182, i32* %tmp1.i.i) ; [#uses=0] + br label %whilecond.i165 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit187: ; preds = %whilebody.i166, %whilecond.i165 + store i32 %res.0.i159, i32* %maxOccur_arg + %tmp3.i149 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp3.i149, i32* %tmp.i147 + %.len.i151 = load i32* %tmp4.i.i ; [#uses=1] + %tmp8.i152 = icmp ult i32 %tmp3.i149, %.len.i151 ; [#uses=1] + br i1 %tmp8.i152, label %if.i155, label %if49 + +if.i155: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit187 + %tmp10.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i153 = load %"Act[]"* %tmp10.i ; <%"Act[]"> [#uses=1] + %tmp12.i154 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i153, i32* %tmp.i147) ; [#uses=1] + %phitmp249 = icmp eq i32 %tmp12.i154, 125 ; [#uses=1] + br i1 %phitmp249, label %endif50, label %if49 + +if49: ; preds = %if.i155, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11parseNumberMFZk.exit187 + %.newclass_gc_alloc51 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc52 = bitcast i8* %.newclass_gc_alloc51 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl53 = bitcast i8* %.newclass_gc_alloc51 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl53 + %monitor54 = getelementptr i8* %.newclass_gc_alloc51, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor54 to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp55 = getelementptr i8* %.newclass_gc_alloc51, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp55, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp61 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr62 = load i32** %tmp61 ; [#uses=1] + %.len66 = load i32* %tmp4.i.i ; [#uses=1] + %tmp67 = load i32* %tmp1.i188 ; [#uses=2] + %tmp68 = getelementptr i32* %.ptr62, i32 %tmp67 ; [#uses=1] + %tmp69 = sub i32 %.len66, %tmp67 ; [#uses=1] + %tmp70 = insertvalue %"Act[]" undef, i32 %tmp69, 0 ; <%"Act[]"> [#uses=1] + %tmp71 = insertvalue %"Act[]" %tmp70, i32* %tmp68, 1 ; <%"Act[]"> [#uses=1] + %tmp72 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp71, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len73 = extractvalue %"byte[]" %tmp72, 0 ; [#uses=4] + %tmp74 = add i32 %.len73, 28 ; [#uses=3] + %.nongc_mem253 = alloca i8, i32 %tmp74, align 1 ; [#uses=3] + %.ptr76 = extractvalue %"byte[]" %tmp72, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem253, i8* getelementptr ([29 x i8]* @.str221, i32 0, i32 0), i32 28, i32 1) + %tmp77 = getelementptr i8* %.nongc_mem253, i32 28 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp77, i8* %.ptr76, i32 %.len73, i32 1) + %tmp79 = add i32 %.len73, 29 ; [#uses=2] + %.nongc_mem254 = alloca i8, i32 %tmp79, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem254, i8* %.nongc_mem253, i32 %tmp74, i32 1) + %tmp82 = getelementptr i8* %.nongc_mem254, i32 %tmp74 ; [#uses=1] + store i8 34, i8* %tmp82, align 1 + %tmp2.i139 = add i32 %.len73, 37 ; [#uses=2] + %.gc_mem.i140 = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i139) ; [#uses=3] + %.gc_mem12.i141 = bitcast i8* %.gc_mem.i140 to i64* ; [#uses=1] + %tmp.i142 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i142, i64* %.gc_mem12.i141, align 1 + %tmp4.i143 = getelementptr i8* %.gc_mem.i140, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i143, i8* %.nongc_mem254, i32 %tmp79, i32 1) + %tmp6.i144 = insertvalue %"byte[]" undef, i32 %tmp2.i139, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i145 = insertvalue %"byte[]" %tmp6.i144, i8* %.gc_mem.i140, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i146 = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc52, %"byte[]" %tmp7.i145, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp86 = bitcast i8* %.newclass_gc_alloc51 to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp86) + unreachable + +endif50: ; preds = %if.i155 + %tmp4.i134 = load i32* %tmp1.i.i ; [#uses=2] + store i32 %tmp4.i134, i32* %tmp1.i188 + %.len.i = load i32* %tmp4.i.i ; [#uses=1] + %tmp11.i = icmp ult i32 %tmp4.i134, %.len.i ; [#uses=1] + br i1 %tmp11.i, label %if.i, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit + +if.i: ; preds = %endif50 + %tmp13.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i = load %"Act[]"* %tmp13.i ; <%"Act[]"> [#uses=1] + %tmp17.i = tail call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i, i32* %tmp1.i.i) ; [#uses=0] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit: ; preds = %if.i, %endif50 + %tmp90 = load i32* %maxOccur_arg ; [#uses=2] + %tmp91 = icmp eq i32 %tmp90, 0 ; [#uses=1] + br i1 %tmp91, label %endif96, label %andand + +andand: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit + %tmp93 = load i32* %minOccur_arg ; [#uses=1] + %tmp94 = icmp ult i32 %tmp90, %tmp93 ; [#uses=1] + br i1 %tmp94, label %if95, label %endif96 + +if95: ; preds = %andand + %.newclass_gc_alloc97 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc98 = bitcast i8* %.newclass_gc_alloc97 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl99 = bitcast i8* %.newclass_gc_alloc97 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl99 + %monitor100 = getelementptr i8* %.newclass_gc_alloc97, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor100 to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp101 = getelementptr i8* %.newclass_gc_alloc97, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp101, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp107 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr108 = load i32** %tmp107 ; [#uses=1] + %.len112 = load i32* %tmp4.i.i ; [#uses=1] + %tmp113 = load i32* %tmp1.i188 ; [#uses=2] + %tmp114 = getelementptr i32* %.ptr108, i32 %tmp113 ; [#uses=1] + %tmp115 = sub i32 %.len112, %tmp113 ; [#uses=1] + %tmp116 = insertvalue %"Act[]" undef, i32 %tmp115, 0 ; <%"Act[]"> [#uses=1] + %tmp117 = insertvalue %"Act[]" %tmp116, i32* %tmp114, 1 ; <%"Act[]"> [#uses=1] + %tmp118 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp117, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len119 = extractvalue %"byte[]" %tmp118, 0 ; [#uses=4] + %tmp120 = add i32 %.len119, 40 ; [#uses=3] + %.nongc_mem255 = alloca i8, i32 %tmp120, align 1 ; [#uses=3] + %.ptr122 = extractvalue %"byte[]" %tmp118, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem255, i8* getelementptr ([41 x i8]* @.str223, i32 0, i32 0), i32 40, i32 1) + %tmp123 = getelementptr i8* %.nongc_mem255, i32 40 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp123, i8* %.ptr122, i32 %.len119, i32 1) + %tmp125 = add i32 %.len119, 41 ; [#uses=2] + %.nongc_mem256 = alloca i8, i32 %tmp125, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem256, i8* %.nongc_mem255, i32 %tmp120, i32 1) + %tmp128 = getelementptr i8* %.nongc_mem256, i32 %tmp120 ; [#uses=1] + store i8 34, i8* %tmp128, align 1 + %tmp2.i = add i32 %.len119, 49 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem256, i32 %tmp125, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc98, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp132 = bitcast i8* %.newclass_gc_alloc97 to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp132) + unreachable + +endif96: ; preds = %andand, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit + ret void +} + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %t_arg) { +entry: + %t = alloca %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*, align 4 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=4] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %t_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %t + %tmp1 = icmp eq %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %t_arg, null ; [#uses=1] + br i1 %tmp1, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* null + +endif: ; preds = %entry + %tmp4 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 11 ; [#uses=2] + %tmp5 = load i8** %tmp4 ; [#uses=1] + %tmp6 = bitcast i8* %tmp5 to %32* ; <%32*> [#uses=1] + %tmp7 = bitcast %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %t to i8* ; [#uses=2] + %aa.in = call i8* @_aaIn(%32* nocapture %tmp6, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D67TypeInfo_C5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*), i8* nocapture %tmp7) readonly ; [#uses=2] + %tmp10 = icmp eq i8* %aa.in, null ; [#uses=1] + br i1 %tmp10, label %endif12, label %if11 + +if11: ; preds = %endif + %tmp8 = bitcast i8* %aa.in to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp8 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp14 + +endif12: ; preds = %endif + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=8] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp16 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp16, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp21 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %t_arg, i32 0, i32 6 ; [#uses=1] + %tmp22 = load i32* %tmp21 ; [#uses=1] + %tmp1.i = getelementptr i8* %.newclass_gc_alloc, i32 48 ; [#uses=1] + %1 = bitcast i8* %tmp1.i to i32* ; [#uses=1] + store i32 %tmp22, i32* %1 + %tmp26 = bitcast i8** %tmp4 to %32* ; <%32*> [#uses=1] + %aa.index = call i8* @_aaGet(%32* nocapture %tmp26, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D67TypeInfo_C5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*), i32 4, i8* nocapture %tmp7) ; [#uses=1] + %tmp28 = bitcast i8* %aa.index to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp28 + %tmp31 = getelementptr i8* %.newclass_gc_alloc, i32 44 ; [#uses=1] + %2 = bitcast i8* %tmp31 to i32* ; [#uses=1] + %tmp32 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %t ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %tmp33 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp32, i32 0, i32 5 ; [#uses=1] + %tmp34 = load i32* %tmp33 ; [#uses=1] + store i32 %tmp34, i32* %2 + %tmp36 = getelementptr i8* %.newclass_gc_alloc, i32 40 ; [#uses=1] + %3 = bitcast i8* %tmp36 to i32* ; [#uses=1] + %tmp38 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp32, i32 0, i32 4 ; [#uses=1] + %tmp39 = load i32* %tmp38 ; [#uses=1] + store i32 %tmp39, i32* %3 + %tmp43 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp32, i32 0, i32 3 ; <%"tango.text.Regex.Predicate!(dchar).Predicate"*> [#uses=1] + %tmp41 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %tmp45 = bitcast %"tango.text.Regex.Predicate!(dchar).Predicate"* %tmp43 to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp41, i8* %tmp45, i32 28, i32 1) + %4 = bitcast i8* %tmp16 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp49 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %t ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp50 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp49, i32 0, i32 2 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp51 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp50 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp52 = call fastcc %"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp51) ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp52, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %4 + %tmp54 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp55 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp54 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp56 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp55, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp57 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp56 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp57, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp60 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp55, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc +} + +define weak_odr fastcc %"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %s_arg) { +entry: + %s = alloca %"tango.text.Regex.TNFAState!(dchar).TNFAState"*, align 4 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=5] + %.frame = alloca %nest.clone, align 8 ; <%nest.clone*> [#uses=3] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %s_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s + %s2 = getelementptr %nest.clone* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=7] + %this = getelementptr %nest.clone* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + store %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFA!(dchar).TNFA"** %this + %tmp3 = icmp eq %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %s_arg, null ; [#uses=1] + br i1 %tmp3, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.TNFAState!(dchar).TNFAState"* null + +endif: ; preds = %entry + %tmp6 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 10 ; [#uses=2] + %tmp7 = load i8** %tmp6 ; [#uses=1] + %tmp8 = bitcast i8* %tmp7 to %32* ; <%32*> [#uses=1] + %tmp9 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s to i8* ; [#uses=2] + %aa.in = call i8* @_aaIn(%32* nocapture %tmp8, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D55TypeInfo_C5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i8* nocapture %tmp9) readonly ; [#uses=2] + %tmp12 = icmp eq i8* %aa.in, null ; [#uses=1] + br i1 %tmp12, label %endif14, label %if13 + +if13: ; preds = %endif + %tmp10 = bitcast i8* %aa.in to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp10 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + ret %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp16 + +endif14: ; preds = %endif + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp18 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp18, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %1 = bitcast i8* %tmp1.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp2.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i, %"tango.text.Regex.List!(TNFATransition).List"** %1 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 + %tmp25 = bitcast i8** %tmp6 to %32* ; <%32*> [#uses=1] + %aa.index = call i8* @_aaGet(%32* nocapture %tmp25, %object.TypeInfo* bitcast (%object.TypeInfo_Class* @_D55TypeInfo_C5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 4, i8* nocapture %tmp9) ; [#uses=1] + %tmp27 = bitcast i8* %aa.index to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp28 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp28, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp27 + %tmp29 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp30 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp29, i32 0, i32 2 ; [#uses=1] + %tmp31 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp32 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp31, i32 0, i32 2 ; [#uses=1] + %tmp33 = load i1* %tmp32 ; [#uses=1] + store i1 %tmp33, i1* %tmp30 + %tmp34 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp35 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp34, i32 0, i32 3 ; [#uses=1] + %tmp36 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp37 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp36, i32 0, i32 3 ; [#uses=1] + %tmp38 = load i1* %tmp37 ; [#uses=1] + store i1 %tmp38, i1* %tmp35 + %tmp39 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp40 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp39, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp41 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp40 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp42 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp41, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp43 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp42 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"s.transitions.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp43, i32 0, i32 20 ; [#uses=1] + %s.transitions.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"s.transitions.opApply@vtbl", align 4 ; [#uses=1] + %tmp45 = bitcast %nest.clone* %.frame to i8* ; [#uses=1] + %tmp46 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp45, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func = insertvalue %"int delegate(ref TNFATransition)" %tmp46, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState15__foreachbody47MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp47 = call fastcc i32 %s.transitions.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp41, %"int delegate(ref TNFATransition)" %.func) ; [#uses=0] + %tmp48 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp49 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp48, i32 0, i32 4 ; [#uses=1] + %tmp52 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=3] + %.len = load i32* %tmp52 ; [#uses=1] + store i32 %.len, i32* %tmp49 + %.len56 = load i32* %tmp52 ; [#uses=3] + %tmp57 = add i32 %.len56, 1 ; [#uses=2] + %tmp60 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp60 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp61 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr to i8* ; [#uses=1] + %.gc_mem = call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp57, i32 %.len56, i8* %tmp61) ; [#uses=1] + %.gc_mem62 = bitcast i8* %.gc_mem to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp63 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem62, i32 %.len56 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp64 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp64, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp63 + store i32 %tmp57, i32* %tmp52 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem62, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp60 + %tmp67 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2, align 8 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + ret %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp67 +} + +define weak_odr fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f_arg) { +entry: + %.frame = alloca %33, align 8 ; <%33*> [#uses=3] + %f2 = getelementptr %33* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=2] + %this = getelementptr %33* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + store %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFA!(dchar).TNFA"** %this + %tmp3 = icmp eq %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f_arg, null ; [#uses=1] + br i1 %tmp3, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* null + +endif: ; preds = %entry + %tmp5 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 10 ; [#uses=1] + store i8* null, i8** %tmp5 + %tmp7 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 11 ; [#uses=1] + store i8* null, i8** %tmp7 + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp8 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp8, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %1 = bitcast i8* %tmp8 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp2.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %tmp7.i = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp7.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %4 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %4 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %3 + %tmp17.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %5 = bitcast i8* %tmp17.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %6 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %6 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %5 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %7 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc28.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %8 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %8 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %7 + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %f2, align 8 + %tmp14 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f_arg, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp15 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp14 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp16 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp15, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp17 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp16 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.entries.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp17, i32 0, i32 20 ; [#uses=1] + %f.entries.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"f.entries.opApply@vtbl", align 4 ; [#uses=1] + %tmp19 = bitcast %33* %.frame to i8* ; [#uses=4] + %tmp20 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp19, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func = insertvalue %"int delegate(ref TNFATransition)" %tmp20, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody48MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp21 = call fastcc i32 %f.entries.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp15, %"int delegate(ref TNFATransition)" %.func) ; [#uses=0] + %tmp23 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp24 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp23 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp25 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp24, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp26 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp25 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.exits.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp26, i32 0, i32 20 ; [#uses=1] + %f.exits.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"f.exits.opApply@vtbl", align 4 ; [#uses=1] + %tmp29 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp19, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func30 = insertvalue %"int delegate(ref TNFATransition)" %tmp29, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody49MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp31 = call fastcc i32 %f.exits.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp24, %"int delegate(ref TNFATransition)" %.func30) ; [#uses=0] + %tmp33 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp34 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp33 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp34, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp36 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp35 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.entry_state.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp36, i32 0, i32 20 ; [#uses=1] + %f.entry_state.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"f.entry_state.opApply@vtbl", align 4 ; [#uses=1] + %tmp39 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp19, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func40 = insertvalue %"int delegate(ref TNFATransition)" %tmp39, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody50MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp41 = call fastcc i32 %f.entry_state.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp34, %"int delegate(ref TNFATransition)" %.func40) ; [#uses=0] + %tmp43 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f_arg, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp44 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp43 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp45 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp44, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp46 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp45 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.exit_state.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp46, i32 0, i32 20 ; [#uses=1] + %f.exit_state.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"f.exit_state.opApply@vtbl", align 4 ; [#uses=1] + %tmp49 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp19, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func50 = insertvalue %"int delegate(ref TNFATransition)" %tmp49, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody51MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp51 = call fastcc i32 %f.exit_state.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp44, %"int delegate(ref TNFATransition)" %.func50) ; [#uses=0] + %tmp52 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %f2, align 8 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52 +} + +define weak_odr fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA19constructSingleCharMFwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, i32 %c_arg, i32 %type_arg) { +entry: + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=8] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 48 ; [#uses=1] + %1 = bitcast i8* %tmp1.i.i to i32* ; [#uses=1] + store i32 1, i32* %1 + %tmp7.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp8.i = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %2 = bitcast i8* %tmp2.i.i to i32* ; [#uses=2] + %.len.i.i = load i32* %2 ; [#uses=3] + %tmp3.i.i = add i32 %.len.i.i, 1 ; [#uses=2] + %tmp6.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %3 = bitcast i8* %tmp6.i.i to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i.i = load %tango.net.Socket.timeval** %3 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7.i.i = bitcast %tango.net.Socket.timeval* %.ptr.i.i to i8* ; [#uses=1] + %.gc_mem.i.i = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp3.i.i, i32 %.len.i.i, i8* %tmp7.i.i) ; [#uses=1] + %.gc_mem8.i.i = bitcast i8* %.gc_mem.i.i to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp9.i.i = getelementptr %tango.net.Socket.timeval* %.gc_mem8.i.i, i32 %.len.i.i ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1015.i.i = bitcast %tango.net.Socket.timeval* %tmp9.i.i to i64* ; [#uses=1] + %4 = zext i32 %c_arg to i64 ; [#uses=2] + %5 = shl i64 %4, 32 ; [#uses=1] + %6 = or i64 %4, %5 ; [#uses=1] + store i64 %6, i64* %tmp1015.i.i, align 1 + store i32 %tmp3.i.i, i32* %2 + store %tango.net.Socket.timeval* %.gc_mem8.i.i, %tango.net.Socket.timeval** %3 + %tmp7 = getelementptr i8* %.newclass_gc_alloc.i, i32 20 ; [#uses=1] + %7 = bitcast i8* %tmp7 to i32* ; [#uses=1] + store i32 %type_arg, i32* %7 + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %8 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %8 + %tmp9 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp9, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %9 = bitcast i8* %tmp9 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i32 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=5] + %.newclass_gc.i33 = bitcast i8* %.newclass_gc_alloc.i32 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %vtbl.i34 = bitcast i8* %.newclass_gc_alloc.i32 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i34 + %monitor.i35 = getelementptr i8* %.newclass_gc_alloc.i32, i32 4 ; [#uses=1] + %10 = bitcast i8* %monitor.i35 to i8** ; [#uses=1] + store i8* null, i8** %10 + %tmp2.i = getelementptr i8* %.newclass_gc_alloc.i32, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i33, %"tango.text.Regex.List!(TNFATransition).List"** %9 + %tmp7.i36 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %11 = bitcast i8* %tmp7.i36 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %12 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %12 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %11 + %tmp17.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %13 = bitcast i8* %tmp17.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %14 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %14 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %13 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %15 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc28.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=5] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %16 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %16 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %15 + %tmp17 = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp18 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp17 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp18, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp21 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp25 = bitcast i8* %.newclass_gc_alloc.i32 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp26 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp25 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp26, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp29 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i33, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc +} + +define weak_odr fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFAwE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"Act[]" %chars_arg, i32 %type_arg) { +entry: + %cc = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=4] + %chars_arg13 = extractvalue %"Act[]" %chars_arg, 0 ; [#uses=1] + %chars_arg14 = extractvalue %"Act[]" %chars_arg, 1 ; [#uses=1] + %cc15 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc to i64* ; [#uses=1] + store i64 0, i64* %cc15, align 8 + br label %forcond + +forcond: ; preds = %forbody, %entry + %i.0 = phi i32 [ 0, %entry ], [ %tmp9, %forbody ] ; [#uses=3] + %tmp3 = icmp ult i32 %i.0, %chars_arg13 ; [#uses=1] + br i1 %tmp3, label %forbody, label %endfor + +forbody: ; preds = %forcond + %tmp6 = getelementptr i32* %chars_arg14, i32 %i.0 ; [#uses=1] + %tmp7 = load i32* %tmp6 ; [#uses=1] + %tmp2.i = getelementptr %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc, i32 0, i32 0, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp2.i, align 8 ; [#uses=3] + %tmp3.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp6.i = getelementptr %"tango.text.Regex.CharClass!(dchar).CharClass"* %cc, i32 0, i32 0, i32 1 ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i = load %tango.net.Socket.timeval** %tmp6.i ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7.i = bitcast %tango.net.Socket.timeval* %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp3.i, i32 %.len.i, i8* %tmp7.i) ; [#uses=1] + %.gc_mem8.i = bitcast i8* %.gc_mem.i to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp9.i = getelementptr %tango.net.Socket.timeval* %.gc_mem8.i, i32 %.len.i ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1116.i = bitcast %tango.net.Socket.timeval* %tmp9.i to i64* ; [#uses=1] + %0 = zext i32 %tmp7 to i64 ; [#uses=2] + %1 = shl i64 %0, 32 ; [#uses=1] + %2 = or i64 %0, %1 ; [#uses=1] + store i64 %2, i64* %tmp1116.i, align 1 + store i32 %tmp3.i, i32* %tmp2.i, align 8 + store %tango.net.Socket.timeval* %.gc_mem8.i, %tango.net.Socket.timeval** %tmp6.i + %tmp9 = add i32 %i.0, 1 ; [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + %tmp12 = call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* byval %cc, i32 %type_arg) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp12 +} + +define weak_odr fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructCharsMFS5tango4text5Regex16__T9CharClassTwZ9CharClassE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.CharClass!(dchar).CharClass"* nocapture byval %charclass_arg, i32 %type_arg) { +entry: + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=7] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 48 ; [#uses=1] + %1 = bitcast i8* %tmp1.i.i to i32* ; [#uses=1] + store i32 1, i32* %1 + %tmp7.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp8.i = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp4 = getelementptr i8* %.newclass_gc_alloc.i, i32 20 ; [#uses=1] + %2 = bitcast i8* %tmp4 to i32* ; [#uses=1] + store i32 %type_arg, i32* %2 + %3 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %charclass_arg to i64* ; [#uses=1] + %srcval = load i64* %3, align 1 ; [#uses=2] + %tmp51 = lshr i64 %srcval, 32 ; [#uses=1] + %tmp52 = trunc i64 %tmp51 to i32 ; [#uses=1] + %tmp53 = insertvalue %"byte[]" undef, i32 %tmp52, 0 ; <%"byte[]"> [#uses=1] + %tmp54 = trunc i64 %srcval to i32 ; [#uses=1] + %tmp55 = inttoptr i32 %tmp54 to i8* ; [#uses=1] + %tmp56 = insertvalue %"byte[]" %tmp53, i8* %tmp55, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp56) ; <%"byte[]"> [#uses=2] + %tmp6.i = extractvalue %"byte[]" %tmp5.i, 0 ; [#uses=1] + %tmp8.i33 = extractvalue %"byte[]" %tmp5.i, 1 ; [#uses=1] + %tmp59 = zext i32 %tmp6.i to i64 ; [#uses=1] + %tmp60 = shl i64 %tmp59, 32 ; [#uses=1] + %tmp = ptrtoint i8* %tmp8.i33 to i32 ; [#uses=1] + %tmp57 = zext i32 %tmp to i64 ; [#uses=1] + %ins = or i64 %tmp60, %tmp57 ; [#uses=1] + %tmp7 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=2] + %tmp25.i = bitcast i8* %tmp7 to i64* ; [#uses=1] + store i64 %ins, i64* %tmp25.i, align 1 + %4 = bitcast i8* %tmp7 to %"tango.text.Regex.CharClass!(dchar).CharClass"* ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=1] + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8optimizeMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %4) + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp10 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp10, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %6 = bitcast i8* %tmp10 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i39 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=5] + %.newclass_gc.i40 = bitcast i8* %.newclass_gc_alloc.i39 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %vtbl.i41 = bitcast i8* %.newclass_gc_alloc.i39 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i41 + %monitor.i42 = getelementptr i8* %.newclass_gc_alloc.i39, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor.i42 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp2.i = getelementptr i8* %.newclass_gc_alloc.i39, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i40, %"tango.text.Regex.List!(TNFATransition).List"** %6 + %tmp7.i43 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %8 = bitcast i8* %tmp7.i43 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %8 + %tmp17.i = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %10 = bitcast i8* %tmp17.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %11 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %11 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %10 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %12 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc28.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=5] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %13 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %13 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %12 + %tmp18 = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp19 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp18 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp19, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp22 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp26 = bitcast i8* %.newclass_gc_alloc.i39 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp27 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp26 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp27, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp30 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i40, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc +} + +define weak_odr fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA18constructCharClassMFE5tango4text5Regex16__T9PredicateTwZ9Predicate4TypeZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 %type_arg) { +entry: + %tmp.i419 = alloca i32, align 4 ; [#uses=2] + %tmp.i359 = alloca i32, align 4 ; [#uses=2] + %tmp.i213 = alloca i32, align 4 ; [#uses=2] + %tmp162 = alloca %"tango.text.Regex.CharClass!(dchar).CharClass", align 8 ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=5] + %.newclass_gc_alloc.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=17] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp.i, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 48 ; [#uses=1] + %1 = bitcast i8* %tmp1.i.i to i32* ; [#uses=1] + store i32 1, i32* %1 + %tmp7.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp8.i = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp2.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 8 ; [#uses=13] + %tmp3.i = load i32* %tmp2.i ; [#uses=2] + store i32 %tmp3.i, i32* %tmp.i213 + %tmp6.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=8] + %.len.i = load i32* %tmp6.i ; [#uses=1] + %tmp8.i214 = icmp ult i32 %tmp3.i, %.len.i ; [#uses=1] + br i1 %tmp8.i214, label %if.i, label %forcond + +if.i: ; preds = %entry + %tmp10.i215 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i = load %"Act[]"* %tmp10.i215 ; <%"Act[]"> [#uses=1] + %tmp12.i = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i, i32* %tmp.i213) ; [#uses=1] + %phitmp470 = icmp eq i32 %tmp12.i, 94 ; [#uses=1] + br i1 %phitmp470, label %if, label %forcond + +if: ; preds = %if.i + %tmp1.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp4.i = load i32* %tmp2.i ; [#uses=2] + store i32 %tmp4.i, i32* %tmp1.i + %.len.i219 = load i32* %tmp6.i ; [#uses=1] + %tmp11.i220 = icmp ult i32 %tmp4.i, %.len.i219 ; [#uses=1] + br i1 %tmp11.i220, label %if.i222, label %forcond + +if.i222: ; preds = %if + %tmp13.i221 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i = load %"Act[]"* %tmp13.i221 ; <%"Act[]"> [#uses=1] + %tmp17.i = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i, i32* %tmp2.i) ; [#uses=0] + br label %forcond + +forcond: ; preds = %if137, %default135, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347, %if19, %if.i222, %if, %if.i, %entry + %negated.0 = phi i1 [ false, %if.i ], [ %negated.0, %default135 ], [ %negated.0, %if137 ], [ %negated.0, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347 ], [ %negated.0, %if19 ], [ true, %if ], [ true, %if.i222 ], [ false, %entry ] ; [#uses=5] + %last.1 = phi i32 [ 65535, %if.i ], [ %last.1, %if19 ], [ %last.1, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347 ], [ %c.0, %if137 ], [ %c.0, %default135 ], [ 65535, %if ], [ 65535, %if.i222 ], [ 65535, %entry ] ; [#uses=9] + %have_range_start.1 = phi i1 [ false, %if.i ], [ %have_range_start.1, %if19 ], [ false, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347 ], [ true, %if137 ], [ true, %default135 ], [ false, %if ], [ false, %if.i222 ], [ false, %entry ] ; [#uses=3] + %first_char.0 = phi i1 [ true, %if.i ], [ false, %default135 ], [ false, %if137 ], [ false, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347 ], [ false, %if19 ], [ true, %if ], [ true, %if.i222 ], [ true, %entry ] ; [#uses=1] + %.len.i434 = load i32* %tmp6.i ; [#uses=1] + %tmp5.i435 = load i32* %tmp2.i ; [#uses=2] + %tmp6.i436 = icmp ult i32 %tmp5.i435, %.len.i434 ; [#uses=1] + br i1 %tmp6.i436, label %andand, label %endfor + +andand: ; preds = %forcond + store i32 %tmp5.i435, i32* %tmp.i419 + %tmp10.i425 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i426 = load %"Act[]"* %tmp10.i425 ; <%"Act[]"> [#uses=1] + %tmp12.i427 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i426, i32* %tmp.i419) ; [#uses=1] + %phitmp469 = icmp eq i32 %tmp12.i427, 93 ; [#uses=1] + br i1 %phitmp469, label %endfor, label %forbody + +forbody: ; preds = %andand + %tmp1.i406 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=3] + %tmp4.i408 = load i32* %tmp2.i ; [#uses=2] + store i32 %tmp4.i408, i32* %tmp1.i406 + %.len.i410 = load i32* %tmp6.i ; [#uses=1] + %tmp11.i411 = icmp ult i32 %tmp4.i408, %.len.i410 ; [#uses=1] + br i1 %tmp11.i411, label %if.i415, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417 + +if.i415: ; preds = %forbody + %tmp13.i412 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i413 = load %"Act[]"* %tmp13.i412 ; <%"Act[]"> [#uses=1] + %tmp17.i414 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i413, i32* %tmp2.i) ; [#uses=1] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417: ; preds = %if.i415, %forbody + %tmp16418 = phi i32 [ %tmp17.i414, %if.i415 ], [ 0, %forbody ] ; [#uses=3] + switch i32 %tmp16418, label %default135 [ + i32 45, label %case + i32 92, label %case89 + ] + +case: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417 + br i1 %first_char.0, label %if19, label %endif20 + +if19: ; preds = %case + %tmp2.i.i394 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %2 = bitcast i8* %tmp2.i.i394 to i32* ; [#uses=2] + %.len.i.i395 = load i32* %2 ; [#uses=3] + %tmp3.i.i396 = add i32 %.len.i.i395, 1 ; [#uses=2] + %tmp6.i.i397 = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %3 = bitcast i8* %tmp6.i.i397 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i.i398 = load %tango.net.Socket.timeval** %3 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7.i.i399 = bitcast %tango.net.Socket.timeval* %.ptr.i.i398 to i8* ; [#uses=1] + %.gc_mem.i.i400 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp3.i.i396, i32 %.len.i.i395, i8* %tmp7.i.i399) ; [#uses=1] + %.gc_mem8.i.i401 = bitcast i8* %.gc_mem.i.i400 to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp9.i.i402 = getelementptr %tango.net.Socket.timeval* %.gc_mem8.i.i401, i32 %.len.i.i395 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1015.i.i403 = bitcast %tango.net.Socket.timeval* %tmp9.i.i402 to i64* ; [#uses=1] + %4 = zext i32 %tmp16418 to i64 ; [#uses=2] + %5 = shl i64 %4, 32 ; [#uses=1] + %6 = or i64 %4, %5 ; [#uses=1] + store i64 %6, i64* %tmp1015.i.i403, align 1 + store i32 %tmp3.i.i396, i32* %2 + store %tango.net.Socket.timeval* %.gc_mem8.i.i401, %tango.net.Socket.timeval** %3 + br label %forcond + +endif20: ; preds = %case + br i1 %have_range_start.1, label %else, label %if25 + +if25: ; preds = %endif20 + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp27 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp27, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp32 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp33 = load %"Act[]"* %tmp32 ; <%"Act[]"> [#uses=1] + %tmp34 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp33, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len = extractvalue %"byte[]" %tmp34, 0 ; [#uses=4] + %tmp35 = add i32 %.len, 44 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp35, align 1 ; [#uses=3] + %.ptr = extractvalue %"byte[]" %tmp34, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([45 x i8]* @.str225, i32 0, i32 0), i32 44, i32 1) + %tmp36 = getelementptr i8* %.nongc_mem, i32 44 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp36, i8* %.ptr, i32 %.len, i32 1) + %tmp38 = add i32 %.len, 45 ; [#uses=2] + %.nongc_mem471 = alloca i8, i32 %tmp38, align 1 ; [#uses=3] + call void @llvm.memcpy.i32(i8* %.nongc_mem471, i8* %.nongc_mem, i32 %tmp35, i32 1) + %tmp41 = getelementptr i8* %.nongc_mem471, i32 %tmp35 ; [#uses=1] + store i8 34, i8* %tmp41, align 1 + %tmp2.i379 = add i32 %.len, 53 ; [#uses=2] + %.gc_mem.i380 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i379) ; [#uses=3] + %.gc_mem12.i381 = bitcast i8* %.gc_mem.i380 to i64* ; [#uses=1] + %tmp.i382 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i382, i64* %.gc_mem12.i381, align 1 + %tmp4.i383 = getelementptr i8* %.gc_mem.i380, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i383, i8* %.nongc_mem471, i32 %tmp38, i32 1) + %tmp6.i384 = insertvalue %"byte[]" undef, i32 %tmp2.i379, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i385 = insertvalue %"byte[]" %tmp6.i384, i8* %.gc_mem.i380, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i386 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i385, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp45 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp45) + unreachable + +else: ; preds = %endif20 + %.len.i374 = load i32* %tmp6.i ; [#uses=1] + %tmp5.i375 = load i32* %tmp2.i ; [#uses=2] + %tmp6.i376 = icmp ult i32 %tmp5.i375, %.len.i374 ; [#uses=1] + br i1 %tmp6.i376, label %oror, label %if51 + +oror: ; preds = %else + store i32 %tmp5.i375, i32* %tmp.i359 + %tmp10.i365 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp11.i366 = load %"Act[]"* %tmp10.i365 ; <%"Act[]"> [#uses=1] + %tmp12.i367 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp11.i366, i32* %tmp.i359) ; [#uses=1] + %phitmp = icmp eq i32 %tmp12.i367, 93 ; [#uses=1] + br i1 %phitmp, label %if51, label %else53 + +if51: ; preds = %oror, %else + %.newclass_gc_alloc54 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc55 = bitcast i8* %.newclass_gc_alloc54 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl56 = bitcast i8* %.newclass_gc_alloc54 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl56 + %monitor57 = getelementptr i8* %.newclass_gc_alloc54, i32 4 ; [#uses=1] + %8 = bitcast i8* %monitor57 to i8** ; [#uses=1] + store i8* null, i8** %8 + %tmp58 = getelementptr i8* %.newclass_gc_alloc54, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp58, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp63 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp64 = load %"Act[]"* %tmp63 ; <%"Act[]"> [#uses=1] + %tmp65 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp64, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len66 = extractvalue %"byte[]" %tmp65, 0 ; [#uses=4] + %tmp67 = add i32 %.len66, 42 ; [#uses=3] + %.nongc_mem472 = alloca i8, i32 %tmp67, align 1 ; [#uses=3] + %.ptr69 = extractvalue %"byte[]" %tmp65, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem472, i8* getelementptr ([43 x i8]* @.str227, i32 0, i32 0), i32 42, i32 1) + %tmp70 = getelementptr i8* %.nongc_mem472, i32 42 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp70, i8* %.ptr69, i32 %.len66, i32 1) + %tmp72 = add i32 %.len66, 43 ; [#uses=2] + %.nongc_mem473 = alloca i8, i32 %tmp72, align 1 ; [#uses=3] + call void @llvm.memcpy.i32(i8* %.nongc_mem473, i8* %.nongc_mem472, i32 %tmp67, i32 1) + %tmp75 = getelementptr i8* %.nongc_mem473, i32 %tmp67 ; [#uses=1] + store i8 34, i8* %tmp75, align 1 + %tmp2.i351 = add i32 %.len66, 51 ; [#uses=2] + %.gc_mem.i352 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i351) ; [#uses=3] + %.gc_mem12.i353 = bitcast i8* %.gc_mem.i352 to i64* ; [#uses=1] + %tmp.i354 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i354, i64* %.gc_mem12.i353, align 1 + %tmp4.i355 = getelementptr i8* %.gc_mem.i352, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i355, i8* %.nongc_mem473, i32 %tmp72, i32 1) + %tmp6.i356 = insertvalue %"byte[]" undef, i32 %tmp2.i351, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i357 = insertvalue %"byte[]" %tmp6.i356, i8* %.gc_mem.i352, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i358 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc55, %"byte[]" %tmp7.i357, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp79 = bitcast i8* %.newclass_gc_alloc54 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp79) + unreachable + +else53: ; preds = %oror + %tmp4.i338 = load i32* %tmp2.i ; [#uses=2] + store i32 %tmp4.i338, i32* %tmp1.i406 + %.len.i340 = load i32* %tmp6.i ; [#uses=1] + %tmp11.i341 = icmp ult i32 %tmp4.i338, %.len.i340 ; [#uses=1] + br i1 %tmp11.i341, label %if.i345, label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347 + +if.i345: ; preds = %else53 + %tmp13.i342 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i343 = load %"Act[]"* %tmp13.i342 ; <%"Act[]"> [#uses=1] + %tmp17.i344 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i343, i32* %tmp2.i) ; [#uses=1] + br label %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347 + +_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit347: ; preds = %if.i345, %else53 + %tmp82348 = phi i32 [ %tmp17.i344, %if.i345 ], [ 0, %else53 ] ; [#uses=4] + %tmp2.i.i333 = icmp ult i32 %tmp82348, %last.1 ; [#uses=1] + %condtmp.0.i.i = select i1 %tmp2.i.i333, i32 %tmp82348, i32 %last.1 ; [#uses=1] + %tmp2.i15.i = icmp ugt i32 %tmp82348, %last.1 ; [#uses=1] + %condtmp.0.i16.i = select i1 %tmp2.i15.i, i32 %tmp82348, i32 %last.1 ; [#uses=1] + %tmp2.i.i323 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %9 = bitcast i8* %tmp2.i.i323 to i32* ; [#uses=2] + %.len.i.i324 = load i32* %9 ; [#uses=3] + %tmp3.i.i325 = add i32 %.len.i.i324, 1 ; [#uses=2] + %tmp6.i.i326 = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %10 = bitcast i8* %tmp6.i.i326 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i.i327 = load %tango.net.Socket.timeval** %10 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7.i.i328 = bitcast %tango.net.Socket.timeval* %.ptr.i.i327 to i8* ; [#uses=1] + %.gc_mem.i.i329 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp3.i.i325, i32 %.len.i.i324, i8* %tmp7.i.i328) ; [#uses=1] + %.gc_mem8.i.i330 = bitcast i8* %.gc_mem.i.i329 to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp9.i.i331 = getelementptr %tango.net.Socket.timeval* %.gc_mem8.i.i330, i32 %.len.i.i324 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1015.i.i332 = bitcast %tango.net.Socket.timeval* %tmp9.i.i331 to i64* ; [#uses=1] + %11 = zext i32 %condtmp.0.i.i to i64 ; [#uses=1] + %12 = shl i64 %11, 32 ; [#uses=1] + %13 = zext i32 %condtmp.0.i16.i to i64 ; [#uses=1] + %14 = or i64 %13, %12 ; [#uses=1] + store i64 %14, i64* %tmp1015.i.i332, align 1 + store i32 %tmp3.i.i325, i32* %9 + store %tango.net.Socket.timeval* %.gc_mem8.i.i330, %tango.net.Socket.timeval** %10 + br label %forcond + +case89: ; preds = %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417 + %.len.i313 = load i32* %tmp6.i ; [#uses=1] + %tmp5.i314 = load i32* %tmp2.i ; [#uses=2] + %tmp6.i315 = icmp ult i32 %tmp5.i314, %.len.i313 ; [#uses=1] + br i1 %tmp6.i315, label %endif93, label %if92 + +if92: ; preds = %case89 + %.newclass_gc_alloc94 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc95 = bitcast i8* %.newclass_gc_alloc94 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl96 = bitcast i8* %.newclass_gc_alloc94 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl96 + %monitor97 = getelementptr i8* %.newclass_gc_alloc94, i32 4 ; [#uses=1] + %15 = bitcast i8* %monitor97 to i8** ; [#uses=1] + store i8* null, i8** %15 + %tmp98 = getelementptr i8* %.newclass_gc_alloc94, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp98, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp103 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp104 = load %"Act[]"* %tmp103 ; <%"Act[]"> [#uses=1] + %tmp105 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp104, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len106 = extractvalue %"byte[]" %tmp105, 0 ; [#uses=4] + %tmp107 = add i32 %.len106, 32 ; [#uses=3] + %.nongc_mem474 = alloca i8, i32 %tmp107, align 1 ; [#uses=3] + %.ptr109 = extractvalue %"byte[]" %tmp105, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem474, i8* getelementptr ([33 x i8]* @.str229, i32 0, i32 0), i32 32, i32 1) + %tmp110 = getelementptr i8* %.nongc_mem474, i32 32 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp110, i8* %.ptr109, i32 %.len106, i32 1) + %tmp112 = add i32 %.len106, 33 ; [#uses=2] + %.nongc_mem475 = alloca i8, i32 %tmp112, align 1 ; [#uses=3] + call void @llvm.memcpy.i32(i8* %.nongc_mem475, i8* %.nongc_mem474, i32 %tmp107, i32 1) + %tmp115 = getelementptr i8* %.nongc_mem475, i32 %tmp107 ; [#uses=1] + store i8 34, i8* %tmp115, align 1 + %tmp2.i305 = add i32 %.len106, 41 ; [#uses=2] + %.gc_mem.i = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i305) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i306 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i306, i64* %.gc_mem12.i, align 1 + %tmp4.i307 = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i307, i8* %.nongc_mem475, i32 %tmp112, i32 1) + %tmp6.i308 = insertvalue %"byte[]" undef, i32 %tmp2.i305, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i309 = insertvalue %"byte[]" %tmp6.i308, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i310 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc95, %"byte[]" %tmp7.i309, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp119 = bitcast i8* %.newclass_gc_alloc94 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp119) + unreachable + +endif93: ; preds = %case89 + store i32 %tmp5.i314, i32* %tmp1.i406 + %tmp13.i298 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i299 = load %"Act[]"* %tmp13.i298 ; <%"Act[]"> [#uses=1] + %tmp17.i300 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i299, i32* %tmp2.i) ; [#uses=2] + switch i32 %tmp17.i300, label %default135 [ + i32 116, label %case127 + i32 110, label %case129 + i32 114, label %case131 + ] + +case127: ; preds = %endif93 + br label %default135 + +case129: ; preds = %endif93 + br label %default135 + +case131: ; preds = %endif93 + br label %default135 + +default135: ; preds = %case131, %case129, %case127, %endif93, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417 + %c.0 = phi i32 [ %tmp16418, %_D5tango4text5Regex11__T4TNFATwZ4TNFA11readPatternMFZw.exit417 ], [ %tmp17.i300, %endif93 ], [ 13, %case131 ], [ 10, %case129 ], [ 9, %case127 ] ; [#uses=2] + br i1 %have_range_start.1, label %if137, label %forcond + +if137: ; preds = %default135 + %tmp2.i.i280 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %16 = bitcast i8* %tmp2.i.i280 to i32* ; [#uses=2] + %.len.i.i281 = load i32* %16 ; [#uses=3] + %tmp3.i.i282 = add i32 %.len.i.i281, 1 ; [#uses=2] + %tmp6.i.i283 = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %17 = bitcast i8* %tmp6.i.i283 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i.i284 = load %tango.net.Socket.timeval** %17 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7.i.i285 = bitcast %tango.net.Socket.timeval* %.ptr.i.i284 to i8* ; [#uses=1] + %.gc_mem.i.i286 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp3.i.i282, i32 %.len.i.i281, i8* %tmp7.i.i285) ; [#uses=1] + %.gc_mem8.i.i287 = bitcast i8* %.gc_mem.i.i286 to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp9.i.i288 = getelementptr %tango.net.Socket.timeval* %.gc_mem8.i.i287, i32 %.len.i.i281 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1015.i.i289 = bitcast %tango.net.Socket.timeval* %tmp9.i.i288 to i64* ; [#uses=1] + %18 = zext i32 %last.1 to i64 ; [#uses=2] + %19 = shl i64 %18, 32 ; [#uses=1] + %20 = or i64 %18, %19 ; [#uses=1] + store i64 %20, i64* %tmp1015.i.i289, align 1 + store i32 %tmp3.i.i282, i32* %16 + store %tango.net.Socket.timeval* %.gc_mem8.i.i287, %tango.net.Socket.timeval** %17 + br label %forcond + +endfor: ; preds = %andand, %forcond + %.len.i270 = load i32* %tmp6.i ; [#uses=1] + %tmp5.i271 = load i32* %tmp2.i ; [#uses=2] + %tmp6.i272 = icmp ult i32 %tmp5.i271, %.len.i270 ; [#uses=1] + br i1 %tmp6.i272, label %if146, label %endif147 + +if146: ; preds = %endfor + %tmp1.i256 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + store i32 %tmp5.i271, i32* %tmp1.i256 + %tmp13.i262 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp14.i263 = load %"Act[]"* %tmp13.i262 ; <%"Act[]"> [#uses=1] + %tmp17.i264 = call fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]" %tmp14.i263, i32* %tmp2.i) ; [#uses=0] + br label %endif147 + +endif147: ; preds = %if146, %endfor + %tmp151 = icmp eq i32 %last.1, 65535 ; [#uses=1] + br i1 %tmp151, label %endif153, label %if152 + +if152: ; preds = %endif147 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %21 = bitcast i8* %tmp2.i.i to i32* ; [#uses=2] + %.len.i.i250 = load i32* %21 ; [#uses=3] + %tmp3.i.i251 = add i32 %.len.i.i250, 1 ; [#uses=2] + %tmp6.i.i252 = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %22 = bitcast i8* %tmp6.i.i252 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i.i253 = load %tango.net.Socket.timeval** %22 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7.i.i = bitcast %tango.net.Socket.timeval* %.ptr.i.i253 to i8* ; [#uses=1] + %.gc_mem.i.i254 = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp3.i.i251, i32 %.len.i.i250, i8* %tmp7.i.i) ; [#uses=1] + %.gc_mem8.i.i = bitcast i8* %.gc_mem.i.i254 to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp9.i.i255 = getelementptr %tango.net.Socket.timeval* %.gc_mem8.i.i, i32 %.len.i.i250 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1015.i.i = bitcast %tango.net.Socket.timeval* %tmp9.i.i255 to i64* ; [#uses=1] + %23 = zext i32 %last.1 to i64 ; [#uses=2] + %24 = shl i64 %23, 32 ; [#uses=1] + %25 = or i64 %23, %24 ; [#uses=1] + store i64 %25, i64* %tmp1015.i.i, align 1 + store i32 %tmp3.i.i251, i32* %21 + store %tango.net.Socket.timeval* %.gc_mem8.i.i, %tango.net.Socket.timeval** %22 + br label %endif153 + +endif153: ; preds = %if152, %endif147 + br i1 %negated.0, label %if159, label %else161 + +if159: ; preds = %endif153 + %srcval = load i64* bitcast (%"tango.text.Regex.CharClass!(dchar).CharClass"* @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8any_charS5tango4text5Regex16__T9CharClassTwZ9CharClass to i64*), align 4 ; [#uses=2] + %tmp455 = lshr i64 %srcval, 32 ; [#uses=1] + %tmp456 = trunc i64 %tmp455 to i32 ; [#uses=1] + %tmp457 = insertvalue %"byte[]" undef, i32 %tmp456, 0 ; <%"byte[]"> [#uses=1] + %tmp458 = trunc i64 %srcval to i32 ; [#uses=1] + %tmp459 = inttoptr i32 %tmp458 to i8* ; [#uses=1] + %tmp460 = insertvalue %"byte[]" %tmp457, i8* %tmp459, 1 ; <%"byte[]"> [#uses=1] + %tmp5.i = call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), %"byte[]" %tmp460) ; <%"byte[]"> [#uses=2] + %tmp6.i243 = extractvalue %"byte[]" %tmp5.i, 0 ; [#uses=1] + %tmp8.i244 = extractvalue %"byte[]" %tmp5.i, 1 ; [#uses=1] + %tmp439 = ptrtoint i8* %tmp8.i244 to i32 ; [#uses=1] + %tmp164209 = bitcast %"tango.text.Regex.CharClass!(dchar).CharClass"* %tmp162 to i64* ; [#uses=2] + %26 = zext i32 %tmp6.i243 to i64 ; [#uses=1] + %27 = shl i64 %26, 32 ; [#uses=1] + %28 = zext i32 %tmp439 to i64 ; [#uses=1] + %29 = or i64 %28, %27 ; [#uses=1] + store i64 %29, i64* %tmp164209, align 8 + %tmp168451.0 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=2] + %30 = bitcast i8* %tmp168451.0 to i32* ; [#uses=1] + %tmp452 = load i32* %30, align 1 ; [#uses=2] + %tmp168451.1 = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %31 = bitcast i8* %tmp168451.1 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=1] + %tmp453 = load %tango.net.Socket.timeval** %31, align 1 ; <%tango.net.Socket.timeval*> [#uses=1] + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %tmp162) + %tmp3.i.i = getelementptr %"tango.text.Regex.CharClass!(dchar).CharClass"* %tmp162, i32 0, i32 0, i32 0 ; [#uses=2] + %.len.i.i = load i32* %tmp3.i.i, align 8 ; [#uses=3] + %tmp6.i.i = add i32 %.len.i.i, %tmp452 ; [#uses=2] + %tmp9.i.i = getelementptr %"tango.text.Regex.CharClass!(dchar).CharClass"* %tmp162, i32 0, i32 0, i32 1 ; <%tango.net.Socket.timeval**> [#uses=2] + %.ptr.i.i = load %tango.net.Socket.timeval** %tmp9.i.i ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp10.i.i = bitcast %tango.net.Socket.timeval* %.ptr.i.i to i8* ; [#uses=1] + %.gc_mem.i.i = call i8* @_d_arraysetlengthiT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AS5tango4text5Regex16__T9CharRangeTwZ9CharRange6__initZ to %object.TypeInfo*), i32 %tmp6.i.i, i32 %.len.i.i, i8* %tmp10.i.i) ; [#uses=1] + %.gc_mem11.i.i = bitcast i8* %.gc_mem.i.i to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=2] + %tmp14.i.i = getelementptr %tango.net.Socket.timeval* %.gc_mem11.i.i, i32 %.len.i.i ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp15.i.i = shl i32 %tmp452, 3 ; [#uses=1] + %tmp16.i.i = bitcast %tango.net.Socket.timeval* %tmp14.i.i to i8* ; [#uses=1] + %tmp17.i.i = bitcast %tango.net.Socket.timeval* %tmp453 to i8* ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp16.i.i, i8* %tmp17.i.i, i32 %tmp15.i.i, i32 1) + store i32 %tmp6.i.i, i32* %tmp3.i.i, align 8 + store %tango.net.Socket.timeval* %.gc_mem11.i.i, %tango.net.Socket.timeval** %tmp9.i.i + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %tmp162) + %tmp172207 = bitcast i8* %tmp168451.0 to i64* ; [#uses=1] + %tmp = load i64* %tmp164209, align 8 ; [#uses=1] + store i64 %tmp, i64* %tmp172207, align 1 + br label %endif160 + +else161: ; preds = %endif153 + %tmp1.i233 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %32 = bitcast i8* %tmp1.i233 to %"tango.text.Regex.CharClass!(dchar).CharClass"* ; <%"tango.text.Regex.CharClass!(dchar).CharClass"*> [#uses=1] + call fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8optimizeMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"* %32) + br label %endif160 + +endif160: ; preds = %else161, %if159 + %tmp178 = getelementptr i8* %.newclass_gc_alloc.i, i32 20 ; [#uses=1] + %33 = bitcast i8* %tmp178 to i32* ; [#uses=1] + store i32 %type_arg, i32* %33 + %.newclass_gc_alloc180 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc181 = bitcast i8* %.newclass_gc_alloc180 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl182 = bitcast i8* %.newclass_gc_alloc180 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl182 + %monitor183 = getelementptr i8* %.newclass_gc_alloc180, i32 4 ; [#uses=1] + %34 = bitcast i8* %monitor183 to i8** ; [#uses=1] + store i8* null, i8** %34 + %tmp184 = getelementptr i8* %.newclass_gc_alloc180, i32 8 ; [#uses=2] + call void @llvm.memcpy.i32(i8* %tmp184, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %35 = bitcast i8* %tmp184 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i225 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=5] + %.newclass_gc.i226 = bitcast i8* %.newclass_gc_alloc.i225 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %vtbl.i227 = bitcast i8* %.newclass_gc_alloc.i225 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i227 + %monitor.i228 = getelementptr i8* %.newclass_gc_alloc.i225, i32 4 ; [#uses=1] + %36 = bitcast i8* %monitor.i228 to i8** ; [#uses=1] + store i8* null, i8** %36 + %tmp2.i229 = getelementptr i8* %.newclass_gc_alloc.i225, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp2.i229, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i226, %"tango.text.Regex.List!(TNFATransition).List"** %35 + %tmp7.i230 = getelementptr i8* %.newclass_gc_alloc180, i32 12 ; [#uses=1] + %37 = bitcast i8* %tmp7.i230 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %38 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %38 + %tmp12.i231 = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp12.i231, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %37 + %tmp17.i232 = getelementptr i8* %.newclass_gc_alloc180, i32 16 ; [#uses=1] + %39 = bitcast i8* %tmp17.i232 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %40 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %40 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %39 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc180, i32 20 ; [#uses=1] + %41 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc28.i = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=5] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %42 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %42 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %41 + %tmp192 = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp193 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp192 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp193, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp196 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp200 = bitcast i8* %.newclass_gc_alloc.i225 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp201 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp200 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp201, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp204 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i226, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc181 +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructBracketMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListkZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 %tag_arg) { +entry: + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp.i = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %1 = bitcast i8* %tmp1.i.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %tmp6.i = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp6.i to i32* ; [#uses=1] + %tmp9.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=4] + %.len.i = load i32* %tmp9.i ; [#uses=4] + store i32 %.len.i, i32* %3 + %tmp14.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp17.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=4] + %.ptr.i = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, i32 %.len.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i, i32* %tmp9.i + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %.newclass_gc_alloc.i84 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i85 = bitcast i8* %.newclass_gc_alloc.i84 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %vtbl.i86 = bitcast i8* %.newclass_gc_alloc.i84 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i86 + %monitor.i87 = getelementptr i8* %.newclass_gc_alloc.i84, i32 4 ; [#uses=1] + %4 = bitcast i8* %monitor.i87 to i8** ; [#uses=1] + store i8* null, i8** %4 + %tmp.i88 = getelementptr i8* %.newclass_gc_alloc.i84, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i88, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i89 = getelementptr i8* %.newclass_gc_alloc.i84, i32 16 ; [#uses=1] + %5 = bitcast i8* %tmp1.i.i89 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc.i.i90 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i91 = bitcast i8* %.newclass_gc_alloc.i.i90 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i92 = bitcast i8* %.newclass_gc_alloc.i.i90 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i92 + %monitor.i.i93 = getelementptr i8* %.newclass_gc_alloc.i.i90, i32 4 ; [#uses=1] + %6 = bitcast i8* %monitor.i.i93 to i8** ; [#uses=1] + store i8* null, i8** %6 + %tmp2.i.i94 = getelementptr i8* %.newclass_gc_alloc.i.i90, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i94, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i91, %"tango.text.Regex.List!(TNFATransition).List"** %5 + %tmp6.i95 = getelementptr i8* %.newclass_gc_alloc.i84, i32 12 ; [#uses=1] + %7 = bitcast i8* %tmp6.i95 to i32* ; [#uses=1] + %.len.i97 = load i32* %tmp9.i ; [#uses=4] + store i32 %.len.i97, i32* %7 + %tmp14.i98 = add i32 %.len.i97, 1 ; [#uses=2] + %.ptr.i100 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i101 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i100 to i8* ; [#uses=1] + %.gc_mem.i102 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i98, i32 %.len.i97, i8* %tmp18.i101) ; [#uses=1] + %.gc_mem19.i103 = bitcast i8* %.gc_mem.i102 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i104 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i103, i32 %.len.i97 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i85, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i104 + store i32 %tmp14.i98, i32* %tmp9.i + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i103, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %tmp6 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp7 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp6 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp8 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp7, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp8 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + %tmp10 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp9, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp11 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp10 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"frags.tail.value.setEntry@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp11, i32 0, i32 5 ; [#uses=1] + %frags.tail.value.setEntry = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"frags.tail.value.setEntry@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.tail.value.setEntry(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp9, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i) + %tmp16 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp6 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp17 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp16, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp18 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp17 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + %tmp19 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp18, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp20 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp19 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"frags.tail.value.setExit@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp20, i32 0, i32 6 ; [#uses=1] + %frags.tail.value.setExit = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"frags.tail.value.setExit@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.tail.value.setExit(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp18, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i85) + %.newclass_gc_alloc.i105 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=7] + %.newclass_gc.i106 = bitcast i8* %.newclass_gc_alloc.i105 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=2] + %vtbl.i107 = bitcast i8* %.newclass_gc_alloc.i105 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i107 + %monitor.i108 = getelementptr i8* %.newclass_gc_alloc.i105, i32 4 ; [#uses=1] + %8 = bitcast i8* %monitor.i108 to i8** ; [#uses=1] + store i8* null, i8** %8 + %tmp.i109 = getelementptr i8* %.newclass_gc_alloc.i105, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp.i109, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i110 = getelementptr i8* %.newclass_gc_alloc.i105, i32 48 ; [#uses=1] + %9 = bitcast i8* %tmp1.i.i110 to i32* ; [#uses=1] + store i32 1, i32* %9 + %tmp7.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp8.i = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i111 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i111 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i106) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i112 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=7] + %.newclass_gc.i113 = bitcast i8* %.newclass_gc_alloc.i112 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i114 = bitcast i8* %.newclass_gc_alloc.i112 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i114 + %monitor.i115 = getelementptr i8* %.newclass_gc_alloc.i112, i32 4 ; [#uses=1] + %10 = bitcast i8* %monitor.i115 to i8** ; [#uses=1] + store i8* null, i8** %10 + %tmp.i116 = getelementptr i8* %.newclass_gc_alloc.i112, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i116, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i117 = getelementptr i8* %.newclass_gc_alloc.i112, i32 48 ; [#uses=1] + %11 = bitcast i8* %tmp1.i.i117 to i32* ; [#uses=1] + store i32 1, i32* %11 + %tmp8.i119 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i120 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i119, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i121 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i120 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i122" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i121, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i123 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i122", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i124 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i123(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i119, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i113) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp29 = getelementptr i8* %.newclass_gc_alloc.i105, i32 20 ; [#uses=1] + %12 = bitcast i8* %tmp29 to i32* ; [#uses=1] + store i32 1, i32* %12 + %tmp32 = getelementptr i8* %.newclass_gc_alloc.i112, i32 20 ; [#uses=1] + %13 = bitcast i8* %tmp32 to i32* ; [#uses=1] + store i32 1, i32* %13 + %tmp34 = icmp eq i32 %tag_arg, 0 ; [#uses=1] + br i1 %tmp34, label %endif, label %if + +if: ; preds = %entry + %tmp36 = getelementptr i8* %.newclass_gc_alloc.i105, i32 44 ; [#uses=1] + %14 = bitcast i8* %tmp36 to i32* ; [#uses=1] + %tmp38 = add i32 %tag_arg, 1 ; [#uses=1] + store i32 %tag_arg, i32* %14 + %tmp40 = getelementptr i8* %.newclass_gc_alloc.i112, i32 44 ; [#uses=1] + %15 = bitcast i8* %tmp40 to i32* ; [#uses=1] + store i32 %tmp38, i32* %15 + br label %endif + +endif: ; preds = %if, %entry + %16 = bitcast i8* %tmp.i109 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %16 + %tmp47 = load %"tango.text.Regex.List!(TNFATransition).List"** %5 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp47, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp49 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp48 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"exit.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp49, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %exit.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"exit.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp52 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %exit.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp47, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i113) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %17 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %17 + %tmp53 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp53, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %18 = bitcast i8* %tmp53 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc.i125 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i126 = bitcast i8* %.newclass_gc_alloc.i125 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i127 = bitcast i8* %.newclass_gc_alloc.i125 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i127 + %monitor.i128 = getelementptr i8* %.newclass_gc_alloc.i125, i32 4 ; [#uses=1] + %19 = bitcast i8* %monitor.i128 to i8** ; [#uses=1] + store i8* null, i8** %19 + %tmp2.i = getelementptr i8* %.newclass_gc_alloc.i125, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i126, %"tango.text.Regex.List!(TNFATransition).List"** %18 + %tmp7.i129 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %20 = bitcast i8* %tmp7.i129 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %21 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %21 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %20 + %tmp17.i130 = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %22 = bitcast i8* %tmp17.i130 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %23 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %23 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %22 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %24 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %25 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %25 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %24 + %tmp60 = load %"tango.text.Regex.List!(TNFATransition).List"** %18 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp61 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp60, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp62 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp61 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp62, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp65 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp60, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i106) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp68 = load %"tango.text.Regex.List!(TNFATransition).List"** %24 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp69 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp68, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp70 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp69 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp70, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp73 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp68, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i113) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp75 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=2] + %tmp76 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp75 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp76, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp80 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp75 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp80, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp83 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructOneMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 %prioClass_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=3] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %frags.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %frags.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp5 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp5, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp11 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp11 ; [#uses=1] + %tmp13 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp14 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp14 ; [#uses=1] + %tmp15 = load i32* %tmp13 ; [#uses=2] + %tmp16 = getelementptr i32* %.ptr, i32 %tmp15 ; [#uses=1] + %tmp17 = sub i32 %.len, %tmp15 ; [#uses=1] + %tmp18 = insertvalue %"Act[]" undef, i32 %tmp17, 0 ; <%"Act[]"> [#uses=1] + %tmp19 = insertvalue %"Act[]" %tmp18, i32* %tmp16, 1 ; <%"Act[]"> [#uses=1] + %tmp20 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp19, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len21 = extractvalue %"byte[]" %tmp20, 0 ; [#uses=4] + %tmp22 = add i32 %.len21, 28 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp22, align 1 ; [#uses=3] + %.ptr23 = extractvalue %"byte[]" %tmp20, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([29 x i8]* @.str231, i32 0, i32 0), i32 28, i32 1) + %tmp24 = getelementptr i8* %.nongc_mem, i32 28 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* %.ptr23, i32 %.len21, i32 1) + %tmp26 = add i32 %.len21, 29 ; [#uses=2] + %.nongc_mem171 = alloca i8, i32 %tmp26, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem171, i8* %.nongc_mem, i32 %tmp22, i32 1) + %tmp29 = getelementptr i8* %.nongc_mem171, i32 %tmp22 ; [#uses=1] + store i8 34, i8* %tmp29, align 1 + %tmp2.i = add i32 %.len21, 37 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem171, i32 %tmp26, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp33 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp33) + unreachable + +endif: ; preds = %entry + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp.i139 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i139, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 48 ; [#uses=1] + %2 = bitcast i8* %tmp1.i.i to i32* ; [#uses=1] + store i32 %prioClass_arg, i32* %2 + %tmp7.i140 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp8.i141 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i140 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i141, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i141, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i142 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i143 = bitcast i8* %.newclass_gc_alloc.i142 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i144 = bitcast i8* %.newclass_gc_alloc.i142 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i144 + %monitor.i145 = getelementptr i8* %.newclass_gc_alloc.i142, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i145 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp.i146 = getelementptr i8* %.newclass_gc_alloc.i142, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i146, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i147 = getelementptr i8* %.newclass_gc_alloc.i142, i32 48 ; [#uses=1] + %4 = bitcast i8* %tmp1.i.i147 to i32* ; [#uses=1] + store i32 1, i32* %4 + %tmp8.i149 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i140 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i150 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i149, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i151 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i150 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i152" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i151, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i153 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i152", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i154 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i153(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i149, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i143) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp41 = getelementptr i8* %.newclass_gc_alloc.i, i32 20 ; [#uses=1] + %5 = bitcast i8* %tmp41 to i32* ; [#uses=1] + store i32 1, i32* %5 + %tmp44 = getelementptr i8* %.newclass_gc_alloc.i142, i32 20 ; [#uses=1] + %6 = bitcast i8* %tmp44 to i32* ; [#uses=1] + store i32 1, i32* %6 + %.newclass_gc_alloc.i155 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i156 = bitcast i8* %.newclass_gc_alloc.i155 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %vtbl.i157 = bitcast i8* %.newclass_gc_alloc.i155 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i157 + %monitor.i158 = getelementptr i8* %.newclass_gc_alloc.i155, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor.i158 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp.i159 = getelementptr i8* %.newclass_gc_alloc.i155, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i159, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i160 = getelementptr i8* %.newclass_gc_alloc.i155, i32 16 ; [#uses=1] + %8 = bitcast i8* %tmp1.i.i160 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc.i.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %8 + %tmp6.i161 = getelementptr i8* %.newclass_gc_alloc.i155, i32 12 ; [#uses=1] + %10 = bitcast i8* %tmp6.i161 to i32* ; [#uses=1] + %tmp9.i162 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp9.i162 ; [#uses=4] + store i32 %.len.i, i32* %10 + %tmp14.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp17.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr.i = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i163 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i163 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, i32 %.len.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i156, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i, i32* %tmp9.i162 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=3] + %tmp49 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp50 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp49, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp51 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp50 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + %tmp52 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp51, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp53 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp52 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"frags.tail.value.setExit@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp53, i32 0, i32 6 ; [#uses=1] + %frags.tail.value.setExit = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"frags.tail.value.setExit@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.tail.value.setExit(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp51, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i156) + %tmp58 = load %"tango.text.Regex.List!(TNFATransition).List"** %8 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp59 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp58, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp60 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp59 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"s.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp60, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %s.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"s.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp63 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %s.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp58, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp66 = load %"tango.text.Regex.List!(TNFATransition).List"** %8 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp67 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp66, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp68 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp67 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"s.transitions.opCatAssign@vtbl69" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp68, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %s.transitions.opCatAssign71 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"s.transitions.opCatAssign@vtbl69", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp73 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %s.transitions.opCatAssign71(%"tango.text.Regex.List!(TNFATransition).List"* %tmp66, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i143) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc74 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc75 = bitcast i8* %.newclass_gc_alloc74 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl76 = bitcast i8* %.newclass_gc_alloc74 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl76 + %monitor77 = getelementptr i8* %.newclass_gc_alloc74, i32 4 ; [#uses=1] + %11 = bitcast i8* %monitor77 to i8** ; [#uses=1] + store i8* null, i8** %11 + %tmp78 = getelementptr i8* %.newclass_gc_alloc74, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp78, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %12 = bitcast i8* %tmp78 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc.i164 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i165 = bitcast i8* %.newclass_gc_alloc.i164 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i166 = bitcast i8* %.newclass_gc_alloc.i164 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i166 + %monitor.i167 = getelementptr i8* %.newclass_gc_alloc.i164, i32 4 ; [#uses=1] + %13 = bitcast i8* %monitor.i167 to i8** ; [#uses=1] + store i8* null, i8** %13 + %tmp2.i168 = getelementptr i8* %.newclass_gc_alloc.i164, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i168, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i165, %"tango.text.Regex.List!(TNFATransition).List"** %12 + %tmp7.i169 = getelementptr i8* %.newclass_gc_alloc74, i32 12 ; [#uses=1] + %14 = bitcast i8* %tmp7.i169 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %15 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %15 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %14 + %tmp17.i170 = getelementptr i8* %.newclass_gc_alloc74, i32 16 ; [#uses=1] + %16 = bitcast i8* %tmp17.i170 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %17 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %17 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %16 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc74, i32 20 ; [#uses=1] + %18 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %19 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %19 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %18 + %tmp85 = load %"tango.text.Regex.List!(TNFATransition).List"** %12 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp86 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp85, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp87 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp86 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp87, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp91 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp92 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp91, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp93 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp92 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp94 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp93, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp95 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp94 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp96 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp85, %"tango.text.Regex.List!(TNFATransition).List"* %tmp95) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp99 = load %"tango.text.Regex.List!(TNFATransition).List"** %16 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp100 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp99, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp101 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp100 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entry_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp101, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entry_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entry_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp105 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp106 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp105, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp107 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp106 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp108 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp107, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp109 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp108 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp110 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entry_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp99, %"tango.text.Regex.List!(TNFATransition).List"* %tmp109) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp113 = load %"tango.text.Regex.List!(TNFATransition).List"** %16 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp114 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp113, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp115 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp114 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entry_state.opCatAssign@vtbl116" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp115, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entry_state.opCatAssign118 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entry_state.opCatAssign@vtbl116", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp120 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entry_state.opCatAssign118(%"tango.text.Regex.List!(TNFATransition).List"* %tmp113, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp123 = load %"tango.text.Regex.List!(TNFATransition).List"** %18 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp124 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp123, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp125 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp124 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp125, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp128 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp123, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i143) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp131 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp131, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp135 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp135, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp138 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc75) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA17constructZeroMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 %prioClass_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=3] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %frags.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %frags.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp5 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp5, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp11 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp11 ; [#uses=1] + %tmp13 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp14 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp14 ; [#uses=1] + %tmp15 = load i32* %tmp13 ; [#uses=2] + %tmp16 = getelementptr i32* %.ptr, i32 %tmp15 ; [#uses=1] + %tmp17 = sub i32 %.len, %tmp15 ; [#uses=1] + %tmp18 = insertvalue %"Act[]" undef, i32 %tmp17, 0 ; <%"Act[]"> [#uses=1] + %tmp19 = insertvalue %"Act[]" %tmp18, i32* %tmp16, 1 ; <%"Act[]"> [#uses=1] + %tmp20 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp19, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len21 = extractvalue %"byte[]" %tmp20, 0 ; [#uses=4] + %tmp22 = add i32 %.len21, 28 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp22, align 1 ; [#uses=3] + %.ptr23 = extractvalue %"byte[]" %tmp20, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([29 x i8]* @.str233, i32 0, i32 0), i32 28, i32 1) + %tmp24 = getelementptr i8* %.nongc_mem, i32 28 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* %.ptr23, i32 %.len21, i32 1) + %tmp26 = add i32 %.len21, 29 ; [#uses=2] + %.nongc_mem204 = alloca i8, i32 %tmp26, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem204, i8* %.nongc_mem, i32 %tmp22, i32 1) + %tmp29 = getelementptr i8* %.nongc_mem204, i32 %tmp22 ; [#uses=1] + store i8 34, i8* %tmp29, align 1 + %tmp2.i = add i32 %.len21, 37 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem204, i32 %tmp26, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp33 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp33) + unreachable + +endif: ; preds = %entry + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=2] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp.i138 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp.i138, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 48 ; [#uses=1] + %2 = bitcast i8* %tmp1.i.i to i32* ; [#uses=1] + store i32 %prioClass_arg, i32* %2 + %tmp7.i139 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %tmp8.i140 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i139 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i140, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i140, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i141 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i142 = bitcast i8* %.newclass_gc_alloc.i141 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i143 = bitcast i8* %.newclass_gc_alloc.i141 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i143 + %monitor.i144 = getelementptr i8* %.newclass_gc_alloc.i141, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i144 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp.i145 = getelementptr i8* %.newclass_gc_alloc.i141, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i145, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i146 = getelementptr i8* %.newclass_gc_alloc.i141, i32 48 ; [#uses=1] + %4 = bitcast i8* %tmp1.i.i146 to i32* ; [#uses=1] + store i32 %prioClass_arg, i32* %4 + %tmp8.i148 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i139 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i149 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i148, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i150 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i149 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i151" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i150, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i152 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i151", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i153 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i152(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i148, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i142) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i154 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i155 = bitcast i8* %.newclass_gc_alloc.i154 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i156 = bitcast i8* %.newclass_gc_alloc.i154 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i156 + %monitor.i157 = getelementptr i8* %.newclass_gc_alloc.i154, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor.i157 to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp.i158 = getelementptr i8* %.newclass_gc_alloc.i154, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i158, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i159 = getelementptr i8* %.newclass_gc_alloc.i154, i32 48 ; [#uses=1] + %6 = bitcast i8* %tmp1.i.i159 to i32* ; [#uses=1] + store i32 1, i32* %6 + %tmp8.i161 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i139 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i162 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i161, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i163 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i162 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i164" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i163, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i165 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i164", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i166 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i165(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i161, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i155) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp44 = getelementptr i8* %.newclass_gc_alloc.i154, i32 20 ; [#uses=1] + %7 = bitcast i8* %tmp44 to i32* ; [#uses=1] + store i32 1, i32* %7 + %tmp47 = getelementptr i8* %.newclass_gc_alloc.i141, i32 20 ; [#uses=1] + %8 = bitcast i8* %tmp47 to i32* ; [#uses=1] + store i32 1, i32* %8 + %tmp50 = getelementptr i8* %.newclass_gc_alloc.i, i32 20 ; [#uses=1] + %9 = bitcast i8* %tmp50 to i32* ; [#uses=1] + store i32 1, i32* %9 + %.newclass_gc_alloc.i167 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i168 = bitcast i8* %.newclass_gc_alloc.i167 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i169 = bitcast i8* %.newclass_gc_alloc.i167 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i169 + %monitor.i170 = getelementptr i8* %.newclass_gc_alloc.i167, i32 4 ; [#uses=1] + %10 = bitcast i8* %monitor.i170 to i8** ; [#uses=1] + store i8* null, i8** %10 + %tmp.i171 = getelementptr i8* %.newclass_gc_alloc.i167, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i171, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i172 = getelementptr i8* %.newclass_gc_alloc.i167, i32 16 ; [#uses=1] + %11 = bitcast i8* %tmp1.i.i172 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %12 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %12 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %11 + %tmp6.i173 = getelementptr i8* %.newclass_gc_alloc.i167, i32 12 ; [#uses=1] + %13 = bitcast i8* %tmp6.i173 to i32* ; [#uses=1] + %tmp9.i174 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=4] + %.len.i = load i32* %tmp9.i174 ; [#uses=4] + store i32 %.len.i, i32* %13 + %tmp14.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp17.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=4] + %.ptr.i = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i175 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i175 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, i32 %.len.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i168, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i, i32* %tmp9.i174 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %.newclass_gc_alloc.i176 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i177 = bitcast i8* %.newclass_gc_alloc.i176 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=2] + %vtbl.i178 = bitcast i8* %.newclass_gc_alloc.i176 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i178 + %monitor.i179 = getelementptr i8* %.newclass_gc_alloc.i176, i32 4 ; [#uses=1] + %14 = bitcast i8* %monitor.i179 to i8** ; [#uses=1] + store i8* null, i8** %14 + %tmp.i180 = getelementptr i8* %.newclass_gc_alloc.i176, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i180, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i181 = getelementptr i8* %.newclass_gc_alloc.i176, i32 16 ; [#uses=1] + %15 = bitcast i8* %tmp1.i.i181 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc.i.i182 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i183 = bitcast i8* %.newclass_gc_alloc.i.i182 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i184 = bitcast i8* %.newclass_gc_alloc.i.i182 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i184 + %monitor.i.i185 = getelementptr i8* %.newclass_gc_alloc.i.i182, i32 4 ; [#uses=1] + %16 = bitcast i8* %monitor.i.i185 to i8** ; [#uses=1] + store i8* null, i8** %16 + %tmp2.i.i186 = getelementptr i8* %.newclass_gc_alloc.i.i182, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i186, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i183, %"tango.text.Regex.List!(TNFATransition).List"** %15 + %tmp6.i187 = getelementptr i8* %.newclass_gc_alloc.i176, i32 12 ; [#uses=1] + %17 = bitcast i8* %tmp6.i187 to i32* ; [#uses=1] + %.len.i189 = load i32* %tmp9.i174 ; [#uses=4] + store i32 %.len.i189, i32* %17 + %tmp14.i190 = add i32 %.len.i189, 1 ; [#uses=2] + %.ptr.i192 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i193 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i192 to i8* ; [#uses=1] + %.gc_mem.i194 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i190, i32 %.len.i189, i8* %tmp18.i193) ; [#uses=1] + %.gc_mem19.i195 = bitcast i8* %.gc_mem.i194 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i196 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i195, i32 %.len.i189 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i177, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i196 + store i32 %tmp14.i190, i32* %tmp9.i174 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i195, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %tmp57 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp58 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp57 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp59 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp58, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp60 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp59 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + %tmp61 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp60, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp62 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp61 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"frags.tail.value.setEntry@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp62, i32 0, i32 5 ; [#uses=1] + %frags.tail.value.setEntry = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"frags.tail.value.setEntry@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.tail.value.setEntry(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp60, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i168) + %tmp67 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp57 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp68 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp67, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp69 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp68 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + %tmp70 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp69, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp71 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp70 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"frags.tail.value.setExit@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp71, i32 0, i32 6 ; [#uses=1] + %frags.tail.value.setExit = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"frags.tail.value.setExit@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.tail.value.setExit(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp69, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i177) + %tmp76 = load %"tango.text.Regex.List!(TNFATransition).List"** %15 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp77 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp76, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp78 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp77 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"exit.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp78, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %exit.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"exit.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp81 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %exit.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp76, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i142) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %18 = bitcast i8* %tmp.i138 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i168, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %18 + %.newclass_gc_alloc85 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc86 = bitcast i8* %.newclass_gc_alloc85 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl87 = bitcast i8* %.newclass_gc_alloc85 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl87 + %monitor88 = getelementptr i8* %.newclass_gc_alloc85, i32 4 ; [#uses=1] + %19 = bitcast i8* %monitor88 to i8** ; [#uses=1] + store i8* null, i8** %19 + %tmp89 = getelementptr i8* %.newclass_gc_alloc85, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp89, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %20 = bitcast i8* %tmp89 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc.i197 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i198 = bitcast i8* %.newclass_gc_alloc.i197 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i199 = bitcast i8* %.newclass_gc_alloc.i197 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i199 + %monitor.i200 = getelementptr i8* %.newclass_gc_alloc.i197, i32 4 ; [#uses=1] + %21 = bitcast i8* %monitor.i200 to i8** ; [#uses=1] + store i8* null, i8** %21 + %tmp2.i201 = getelementptr i8* %.newclass_gc_alloc.i197, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i201, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i198, %"tango.text.Regex.List!(TNFATransition).List"** %20 + %tmp7.i202 = getelementptr i8* %.newclass_gc_alloc85, i32 12 ; [#uses=1] + %22 = bitcast i8* %tmp7.i202 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %23 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %23 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %22 + %tmp17.i203 = getelementptr i8* %.newclass_gc_alloc85, i32 16 ; [#uses=1] + %24 = bitcast i8* %tmp17.i203 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %25 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %25 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %24 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc85, i32 20 ; [#uses=1] + %26 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %27 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %27 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %26 + %tmp96 = load %"tango.text.Regex.List!(TNFATransition).List"** %20 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp97 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp96, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp98 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp97 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp98, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp101 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp96, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i155) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp104 = load %"tango.text.Regex.List!(TNFATransition).List"** %20 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp105 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp104, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp106 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp105 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl107" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp106, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign109 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl107", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp111 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign109(%"tango.text.Regex.List!(TNFATransition).List"* %tmp104, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp114 = load %"tango.text.Regex.List!(TNFATransition).List"** %26 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp115 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp114, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp116 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp115 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp116, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp119 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp114, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i155) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp122 = load %"tango.text.Regex.List!(TNFATransition).List"** %24 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp123 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp122, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp124 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp123 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entry_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp124, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entry_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entry_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp127 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entry_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp122, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i142) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp130 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp130, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp134 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp134, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp137 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc86) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructZeroOneMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 %prioClass_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=3] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %frags.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %frags.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp5 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp5, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp11 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp11 ; [#uses=1] + %tmp13 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp14 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp14 ; [#uses=1] + %tmp15 = load i32* %tmp13 ; [#uses=2] + %tmp16 = getelementptr i32* %.ptr, i32 %tmp15 ; [#uses=1] + %tmp17 = sub i32 %.len, %tmp15 ; [#uses=1] + %tmp18 = insertvalue %"Act[]" undef, i32 %tmp17, 0 ; <%"Act[]"> [#uses=1] + %tmp19 = insertvalue %"Act[]" %tmp18, i32* %tmp16, 1 ; <%"Act[]"> [#uses=1] + %tmp20 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp19, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len21 = extractvalue %"byte[]" %tmp20, 0 ; [#uses=4] + %tmp22 = add i32 %.len21, 28 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp22, align 1 ; [#uses=3] + %.ptr23 = extractvalue %"byte[]" %tmp20, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([29 x i8]* @.str235, i32 0, i32 0), i32 28, i32 1) + %tmp24 = getelementptr i8* %.nongc_mem, i32 28 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* %.ptr23, i32 %.len21, i32 1) + %tmp26 = add i32 %.len21, 29 ; [#uses=2] + %.nongc_mem166 = alloca i8, i32 %tmp26, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem166, i8* %.nongc_mem, i32 %tmp22, i32 1) + %tmp29 = getelementptr i8* %.nongc_mem166, i32 %tmp22 ; [#uses=1] + store i8 34, i8* %tmp29, align 1 + %tmp2.i = add i32 %.len21, 37 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem166, i32 %tmp26, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp33 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp33) + unreachable + +endif: ; preds = %entry + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=2] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp.i134 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp.i134, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 48 ; [#uses=1] + %2 = bitcast i8* %tmp1.i.i to i32* ; [#uses=1] + store i32 %prioClass_arg, i32* %2 + %tmp7.i135 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp8.i136 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i135 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i136, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i136, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i137 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i138 = bitcast i8* %.newclass_gc_alloc.i137 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i139 = bitcast i8* %.newclass_gc_alloc.i137 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i139 + %monitor.i140 = getelementptr i8* %.newclass_gc_alloc.i137, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i140 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp.i141 = getelementptr i8* %.newclass_gc_alloc.i137, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i141, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i142 = getelementptr i8* %.newclass_gc_alloc.i137, i32 48 ; [#uses=1] + %4 = bitcast i8* %tmp1.i.i142 to i32* ; [#uses=1] + store i32 1, i32* %4 + %tmp8.i144 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i135 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i145 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i144, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i146 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i145 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i147" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i146, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i148 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i147", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i149 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i148(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i144, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i138) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp41 = getelementptr i8* %.newclass_gc_alloc.i, i32 20 ; [#uses=1] + %5 = bitcast i8* %tmp41 to i32* ; [#uses=1] + store i32 1, i32* %5 + %tmp44 = getelementptr i8* %.newclass_gc_alloc.i137, i32 20 ; [#uses=1] + %6 = bitcast i8* %tmp44 to i32* ; [#uses=1] + store i32 1, i32* %6 + %.newclass_gc_alloc.i150 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i151 = bitcast i8* %.newclass_gc_alloc.i150 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i152 = bitcast i8* %.newclass_gc_alloc.i150 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i152 + %monitor.i153 = getelementptr i8* %.newclass_gc_alloc.i150, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor.i153 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp.i154 = getelementptr i8* %.newclass_gc_alloc.i150, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i154, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i155 = getelementptr i8* %.newclass_gc_alloc.i150, i32 16 ; [#uses=1] + %8 = bitcast i8* %tmp1.i.i155 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %8 + %tmp6.i156 = getelementptr i8* %.newclass_gc_alloc.i150, i32 12 ; [#uses=1] + %10 = bitcast i8* %tmp6.i156 to i32* ; [#uses=1] + %tmp9.i157 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp9.i157 ; [#uses=4] + store i32 %.len.i, i32* %10 + %tmp14.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp17.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr.i = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i158 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i158 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, i32 %.len.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i151, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i, i32* %tmp9.i157 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=3] + %tmp49 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp50 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp49, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp51 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp50 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + %tmp52 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp51, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp53 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp52 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"frags.tail.value.setEntry@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp53, i32 0, i32 5 ; [#uses=1] + %frags.tail.value.setEntry = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"frags.tail.value.setEntry@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.tail.value.setEntry(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp51, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i151) + %11 = bitcast i8* %tmp.i134 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i151, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %11 + %.newclass_gc_alloc59 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc60 = bitcast i8* %.newclass_gc_alloc59 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl61 = bitcast i8* %.newclass_gc_alloc59 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl61 + %monitor62 = getelementptr i8* %.newclass_gc_alloc59, i32 4 ; [#uses=1] + %12 = bitcast i8* %monitor62 to i8** ; [#uses=1] + store i8* null, i8** %12 + %tmp63 = getelementptr i8* %.newclass_gc_alloc59, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp63, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %13 = bitcast i8* %tmp63 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc.i159 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i160 = bitcast i8* %.newclass_gc_alloc.i159 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i161 = bitcast i8* %.newclass_gc_alloc.i159 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i161 + %monitor.i162 = getelementptr i8* %.newclass_gc_alloc.i159, i32 4 ; [#uses=1] + %14 = bitcast i8* %monitor.i162 to i8** ; [#uses=1] + store i8* null, i8** %14 + %tmp2.i163 = getelementptr i8* %.newclass_gc_alloc.i159, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i163, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i160, %"tango.text.Regex.List!(TNFATransition).List"** %13 + %tmp7.i164 = getelementptr i8* %.newclass_gc_alloc59, i32 12 ; [#uses=1] + %15 = bitcast i8* %tmp7.i164 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %16 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %16 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %15 + %tmp17.i165 = getelementptr i8* %.newclass_gc_alloc59, i32 16 ; [#uses=1] + %17 = bitcast i8* %tmp17.i165 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %18 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %18 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %17 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc59, i32 20 ; [#uses=1] + %19 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %20 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %20 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %19 + %tmp70 = load %"tango.text.Regex.List!(TNFATransition).List"** %13 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp71 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp70, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp72 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp71 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp72, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp75 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp70, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp78 = load %"tango.text.Regex.List!(TNFATransition).List"** %13 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp79 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp78, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp80 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp79 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl81" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp80, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.entries.opCatAssign83 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.entries.opCatAssign@vtbl81", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp85 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign83(%"tango.text.Regex.List!(TNFATransition).List"* %tmp78, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i138) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp88 = load %"tango.text.Regex.List!(TNFATransition).List"** %15 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp89 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp88, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp90 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp89 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exits.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp90, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exits.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exits.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp94 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp95 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp94, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp96 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp95 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp97 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp96, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp98 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp97 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp99 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exits.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp88, %"tango.text.Regex.List!(TNFATransition).List"* %tmp98) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp102 = load %"tango.text.Regex.List!(TNFATransition).List"** %19 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp103 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp102, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp104 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp103 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp104, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp108 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp109 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp108, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp110 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp109 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp111 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp110, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp112 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp111 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp113 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp102, %"tango.text.Regex.List!(TNFATransition).List"* %tmp112) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp116 = load %"tango.text.Regex.List!(TNFATransition).List"** %19 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp117 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp116, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp118 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp117 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl119" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp118, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %frag.exit_state.opCatAssign121 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"frag.exit_state.opCatAssign@vtbl119", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp123 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign121(%"tango.text.Regex.List!(TNFATransition).List"* %tmp116, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i138) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp126 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp126, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp130 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp130, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp133 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc60) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructOccurMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListkkE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 %minOccur_arg, i32 %maxOccur_arg, i32 %prioClass_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=3] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %frags.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %frags.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp5 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp5, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp11 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp11 ; [#uses=1] + %tmp13 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp14 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp14 ; [#uses=1] + %tmp15 = load i32* %tmp13 ; [#uses=2] + %tmp16 = getelementptr i32* %.ptr, i32 %tmp15 ; [#uses=1] + %tmp17 = sub i32 %.len, %tmp15 ; [#uses=1] + %tmp18 = insertvalue %"Act[]" undef, i32 %tmp17, 0 ; <%"Act[]"> [#uses=1] + %tmp19 = insertvalue %"Act[]" %tmp18, i32* %tmp16, 1 ; <%"Act[]"> [#uses=1] + %tmp20 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp19, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len21 = extractvalue %"byte[]" %tmp20, 0 ; [#uses=4] + %tmp22 = add i32 %.len21, 32 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp22, align 1 ; [#uses=3] + %.ptr23 = extractvalue %"byte[]" %tmp20, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([33 x i8]* @.str237, i32 0, i32 0), i32 32, i32 1) + %tmp24 = getelementptr i8* %.nongc_mem, i32 32 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* %.ptr23, i32 %.len21, i32 1) + %tmp26 = add i32 %.len21, 33 ; [#uses=2] + %.nongc_mem362 = alloca i8, i32 %tmp26, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem362, i8* %.nongc_mem, i32 %tmp22, i32 1) + %tmp29 = getelementptr i8* %.nongc_mem362, i32 %tmp22 ; [#uses=1] + store i8 34, i8* %tmp29, align 1 + %tmp2.i = add i32 %.len21, 41 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem362, i32 %tmp26, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp33 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp33) + unreachable + +endif: ; preds = %entry + %.newclass_gc_alloc34 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc35 = bitcast i8* %.newclass_gc_alloc34 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl36 = bitcast i8* %.newclass_gc_alloc34 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl36 + %monitor37 = getelementptr i8* %.newclass_gc_alloc34, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor37 to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp38 = getelementptr i8* %.newclass_gc_alloc34, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp38, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %2 = bitcast i8* %tmp38 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=4] + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp2.i275 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i275, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i, %"tango.text.Regex.List!(TNFATransition).List"** %2 + %tmp7.i276 = getelementptr i8* %.newclass_gc_alloc34, i32 12 ; [#uses=1] + %4 = bitcast i8* %tmp7.i276 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %4 + %tmp17.i = getelementptr i8* %.newclass_gc_alloc34, i32 16 ; [#uses=1] + %6 = bitcast i8* %tmp17.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=4] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %6 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc34, i32 20 ; [#uses=1] + %8 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %8 + br label %forcond + +forcond: ; preds = %endif56, %endif + %prev.0 = phi %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* [ null, %endif ], [ %tmp52, %endif56 ] ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=7] + %i.0 = phi i32 [ 0, %endif ], [ %tmp81, %endif56 ] ; [#uses=2] + %tmp45 = icmp ult i32 %i.0, %minOccur_arg ; [#uses=1] + br i1 %tmp45, label %forbody, label %endfor + +forbody: ; preds = %forcond + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp49 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp48 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp50 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp49, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp51 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp50 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp52 = tail call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp51) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=5] + %tmp54 = icmp eq %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.0, null ; [#uses=1] + br i1 %tmp54, label %else, label %if55 + +if55: ; preds = %forbody + %.newclass_gc_alloc.i277 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i278 = bitcast i8* %.newclass_gc_alloc.i277 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i279 = bitcast i8* %.newclass_gc_alloc.i277 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i279 + %monitor.i280 = getelementptr i8* %.newclass_gc_alloc.i277, i32 4 ; [#uses=1] + %10 = bitcast i8* %monitor.i280 to i8** ; [#uses=1] + store i8* null, i8** %10 + %tmp.i281 = getelementptr i8* %.newclass_gc_alloc.i277, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i281, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i277, i32 16 ; [#uses=1] + %11 = bitcast i8* %tmp1.i.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %12 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %12 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %11 + %tmp6.i282 = getelementptr i8* %.newclass_gc_alloc.i277, i32 12 ; [#uses=1] + %13 = bitcast i8* %tmp6.i282 to i32* ; [#uses=1] + %tmp9.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp9.i ; [#uses=4] + store i32 %.len.i, i32* %13 + %tmp14.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp17.i283 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr.i = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i283 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i284 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i284 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, i32 %.len.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i278, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i, i32* %tmp9.i + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i283 + %tmp60 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.0, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp61 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp60 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"prev.setExit@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp61, i32 0, i32 6 ; [#uses=1] + %prev.setExit = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"prev.setExit@vtbl", align 4 ; [#uses=1] + tail call fastcc void %prev.setExit(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.0, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i278) + %tmp65 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp66 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp65 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f.setEntry@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp66, i32 0, i32 5 ; [#uses=1] + %f.setEntry = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f.setEntry@vtbl", align 4 ; [#uses=1] + tail call fastcc void %f.setEntry(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i278) + br label %endif56 + +else: ; preds = %forbody + %tmp72 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp73 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp72 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp73, %"tango.text.Regex.List!(TNFATransition).List"** %2 + %tmp77 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp78 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp77 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp78, %"tango.text.Regex.List!(TNFATransition).List"** %6 + br label %endif56 + +endif56: ; preds = %else, %if55 + %tmp81 = add i32 %i.0, 1 ; [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + %tmp83 = icmp eq i32 %maxOccur_arg, 0 ; [#uses=1] + br i1 %tmp83, label %if84, label %forcond166 + +if84: ; preds = %endfor + %tmp88 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp89 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp88 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp90 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp89, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp91 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp90 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=8] + %.newclass_gc_alloc.i285 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i286 = bitcast i8* %.newclass_gc_alloc.i285 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i287 = bitcast i8* %.newclass_gc_alloc.i285 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i287 + %monitor.i288 = getelementptr i8* %.newclass_gc_alloc.i285, i32 4 ; [#uses=1] + %14 = bitcast i8* %monitor.i288 to i8** ; [#uses=1] + store i8* null, i8** %14 + %tmp.i289 = getelementptr i8* %.newclass_gc_alloc.i285, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i289, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i290 = getelementptr i8* %.newclass_gc_alloc.i285, i32 48 ; [#uses=1] + %15 = bitcast i8* %tmp1.i.i290 to i32* ; [#uses=1] + store i32 1, i32* %15 + %tmp7.i291 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp8.i292 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i291 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i293 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i292, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i293 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i292, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i286) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp96 = getelementptr i8* %.newclass_gc_alloc.i285, i32 20 ; [#uses=1] + %16 = bitcast i8* %tmp96 to i32* ; [#uses=1] + store i32 1, i32* %16 + %tmp98 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp91, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp99 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp98 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp100 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp99, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp101 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp100 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp101, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp104 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp99, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i286) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp106 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp91, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp107 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp106 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp108 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp107, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp109 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp108 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp109, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp112 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp107, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i286) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i294 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i295 = bitcast i8* %.newclass_gc_alloc.i294 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i296 = bitcast i8* %.newclass_gc_alloc.i294 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i296 + %monitor.i297 = getelementptr i8* %.newclass_gc_alloc.i294, i32 4 ; [#uses=1] + %17 = bitcast i8* %monitor.i297 to i8** ; [#uses=1] + store i8* null, i8** %17 + %tmp.i298 = getelementptr i8* %.newclass_gc_alloc.i294, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i298, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i299 = getelementptr i8* %.newclass_gc_alloc.i294, i32 48 ; [#uses=1] + %18 = bitcast i8* %tmp1.i.i299 to i32* ; [#uses=1] + store i32 1, i32* %18 + %tmp8.i301 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i291 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i302 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i301, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i303 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i302 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i304" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i303, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i305 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i304", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i306 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i305(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i301, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i295) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp117 = getelementptr i8* %.newclass_gc_alloc.i294, i32 20 ; [#uses=1] + %19 = bitcast i8* %tmp117 to i32* ; [#uses=1] + store i32 1, i32* %19 + %tmp119 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp91, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp120 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp119 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp121 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp120, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp122 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp121 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.exits.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp122, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f.exits.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f.exits.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp125 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f.exits.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp120, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i295) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp127 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp91, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp128 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp127 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp129 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp128, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp130 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp129 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.entry_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp130, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f.entry_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f.entry_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp133 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f.entry_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp128, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i295) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %.newclass_gc_alloc.i328 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i329 = bitcast i8* %.newclass_gc_alloc.i328 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i330 = bitcast i8* %.newclass_gc_alloc.i328 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i330 + %monitor.i331 = getelementptr i8* %.newclass_gc_alloc.i328, i32 4 ; [#uses=1] + %20 = bitcast i8* %monitor.i331 to i8** ; [#uses=1] + store i8* null, i8** %20 + %tmp.i332 = getelementptr i8* %.newclass_gc_alloc.i328, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i332, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i333 = getelementptr i8* %.newclass_gc_alloc.i328, i32 16 ; [#uses=1] + %21 = bitcast i8* %tmp1.i.i333 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i334 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i335 = bitcast i8* %.newclass_gc_alloc.i.i334 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i336 = bitcast i8* %.newclass_gc_alloc.i.i334 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i336 + %monitor.i.i337 = getelementptr i8* %.newclass_gc_alloc.i.i334, i32 4 ; [#uses=1] + %22 = bitcast i8* %monitor.i.i337 to i8** ; [#uses=1] + store i8* null, i8** %22 + %tmp2.i.i338 = getelementptr i8* %.newclass_gc_alloc.i.i334, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i338, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i335, %"tango.text.Regex.List!(TNFATransition).List"** %21 + %tmp6.i339 = getelementptr i8* %.newclass_gc_alloc.i328, i32 12 ; [#uses=1] + %23 = bitcast i8* %tmp6.i339 to i32* ; [#uses=1] + %tmp9.i340 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len.i341 = load i32* %tmp9.i340 ; [#uses=4] + store i32 %.len.i341, i32* %23 + %tmp14.i342 = add i32 %.len.i341, 1 ; [#uses=2] + %tmp17.i343 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr.i344 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i343 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i345 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i344 to i8* ; [#uses=1] + %.gc_mem.i346 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i342, i32 %.len.i341, i8* %tmp18.i345) ; [#uses=1] + %.gc_mem19.i347 = bitcast i8* %.gc_mem.i346 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i348 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i347, i32 %.len.i341 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i329, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i348 + store i32 %tmp14.i342, i32* %tmp9.i340 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i347, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i343 + %tmp137 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp91, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp138 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp137 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f.setEntry@vtbl139" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp138, i32 0, i32 5 ; [#uses=1] + %f.setEntry141 = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f.setEntry@vtbl139", align 4 ; [#uses=1] + tail call fastcc void %f.setEntry141(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp91, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i329) + %tmp144 = icmp eq %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.0, null ; [#uses=1] + br i1 %tmp144, label %else147, label %if145 + +if145: ; preds = %if84 + %tmp149 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.0, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp150 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp149 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"prev.setExit@vtbl151" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp150, i32 0, i32 6 ; [#uses=1] + %prev.setExit153 = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"prev.setExit@vtbl151", align 4 ; [#uses=1] + tail call fastcc void %prev.setExit153(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.0, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i329) + br label %forcond166 + +else147: ; preds = %if84 + %tmp159 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp98 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp159, %"tango.text.Regex.List!(TNFATransition).List"** %2 + %tmp164 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp127 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp164, %"tango.text.Regex.List!(TNFATransition).List"** %6 + br label %forcond166 + +forcond166: ; preds = %endif224, %else147, %if145, %endfor + %prev.2 = phi %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* [ %f175.0, %endif224 ], [ %prev.0, %endfor ], [ %tmp91, %else147 ], [ %tmp91, %if145 ] ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=5] + %i170.0 = phi i32 [ %tmp254, %endif224 ], [ %minOccur_arg, %if145 ], [ %minOccur_arg, %else147 ], [ %minOccur_arg, %endfor ] ; [#uses=3] + %tmp174 = icmp ult i32 %i170.0, %maxOccur_arg ; [#uses=1] + br i1 %tmp174, label %forbody167, label %endfor169 + +forbody167: ; preds = %forcond166 + %tmp178 = add i32 %maxOccur_arg, -1 ; [#uses=1] + %tmp179 = icmp ult i32 %i170.0, %tmp178 ; [#uses=1] + %tmp185 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp186 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp185 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp187 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp186, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp188 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp187 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=2] + br i1 %tmp179, label %if180, label %endif181 + +if180: ; preds = %forbody167 + %tmp189 = tail call fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp188) ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + br label %endif181 + +endif181: ; preds = %if180, %forbody167 + %f175.0 = phi %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* [ %tmp189, %if180 ], [ %tmp188, %forbody167 ] ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=6] + %.newclass_gc_alloc.i349 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition7__ClassZ) ; [#uses=6] + %.newclass_gc.i350 = bitcast i8* %.newclass_gc_alloc.i349 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=3] + %vtbl.i351 = bitcast i8* %.newclass_gc_alloc.i349 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i351 + %monitor.i352 = getelementptr i8* %.newclass_gc_alloc.i349, i32 4 ; [#uses=1] + %24 = bitcast i8* %monitor.i352 to i8** ; [#uses=1] + store i8* null, i8** %24 + %tmp.i353 = getelementptr i8* %.newclass_gc_alloc.i349, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i353, i8* bitcast (%"tango.text.Regex.TNFAState!(dchar).TNFAState"** getelementptr (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ, i32 0, i32 2) to i8*), i32 44, i32 1) + %tmp1.i.i354 = getelementptr i8* %.newclass_gc_alloc.i349, i32 48 ; [#uses=1] + %25 = bitcast i8* %tmp1.i.i354 to i32* ; [#uses=1] + store i32 1, i32* %25 + %tmp7.i355 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 9 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp8.i356 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp7.i355 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp9.i357 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i356, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp10.i358 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp9.i357 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.transitions.opCatAssign@vtbl.i359" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp10.i358, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.transitions.opCatAssign.i360 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.transitions.opCatAssign@vtbl.i359", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp13.i361 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.transitions.opCatAssign.i360(%"tango.text.Regex.List!(TNFATransition).List"* %tmp8.i356, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i350) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp200 = getelementptr i8* %.newclass_gc_alloc.i349, i32 20 ; [#uses=1] + %26 = bitcast i8* %tmp200 to i32* ; [#uses=1] + store i32 1, i32* %26 + %tmp202 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f175.0, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %tmp203 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp202 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp204 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp203, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp205 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp204 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.entries.opCatAssign@vtbl206" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp205, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f.entries.opCatAssign208 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f.entries.opCatAssign@vtbl206", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp210 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f.entries.opCatAssign208(%"tango.text.Regex.List!(TNFATransition).List"* %tmp203, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i350) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp212 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f175.0, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp213 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp212 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp214 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp213, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp215 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp214 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f.exit_state.opCatAssign@vtbl216" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp215, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f.exit_state.opCatAssign218 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f.exit_state.opCatAssign@vtbl216", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %tmp220 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f.exit_state.opCatAssign218(%"tango.text.Regex.List!(TNFATransition).List"* %tmp213, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.newclass_gc.i350) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp222 = icmp eq %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.2, null ; [#uses=1] + br i1 %tmp222, label %else225, label %if223 + +if223: ; preds = %endif181 + %.newclass_gc_alloc.i307 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i308 = bitcast i8* %.newclass_gc_alloc.i307 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i309 = bitcast i8* %.newclass_gc_alloc.i307 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i309 + %monitor.i310 = getelementptr i8* %.newclass_gc_alloc.i307, i32 4 ; [#uses=1] + %27 = bitcast i8* %monitor.i310 to i8** ; [#uses=1] + store i8* null, i8** %27 + %tmp.i311 = getelementptr i8* %.newclass_gc_alloc.i307, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i311, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i312 = getelementptr i8* %.newclass_gc_alloc.i307, i32 16 ; [#uses=1] + %28 = bitcast i8* %tmp1.i.i312 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i313 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i314 = bitcast i8* %.newclass_gc_alloc.i.i313 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i315 = bitcast i8* %.newclass_gc_alloc.i.i313 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i315 + %monitor.i.i316 = getelementptr i8* %.newclass_gc_alloc.i.i313, i32 4 ; [#uses=1] + %29 = bitcast i8* %monitor.i.i316 to i8** ; [#uses=1] + store i8* null, i8** %29 + %tmp2.i.i317 = getelementptr i8* %.newclass_gc_alloc.i.i313, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i317, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i314, %"tango.text.Regex.List!(TNFATransition).List"** %28 + %tmp6.i318 = getelementptr i8* %.newclass_gc_alloc.i307, i32 12 ; [#uses=1] + %30 = bitcast i8* %tmp6.i318 to i32* ; [#uses=1] + %tmp9.i319 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len.i320 = load i32* %tmp9.i319 ; [#uses=4] + store i32 %.len.i320, i32* %30 + %tmp14.i321 = add i32 %.len.i320, 1 ; [#uses=2] + %tmp17.i322 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr.i323 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i322 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i324 = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i323 to i8* ; [#uses=1] + %.gc_mem.i325 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i321, i32 %.len.i320, i8* %tmp18.i324) ; [#uses=1] + %.gc_mem19.i326 = bitcast i8* %.gc_mem.i325 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i327 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i326, i32 %.len.i320 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i308, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i327 + store i32 %tmp14.i321, i32* %tmp9.i319 + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i326, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i322 + %tmp229 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.2, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp230 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp229 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"prev.setExit@vtbl231" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp230, i32 0, i32 6 ; [#uses=1] + %prev.setExit233 = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"prev.setExit@vtbl231", align 4 ; [#uses=1] + tail call fastcc void %prev.setExit233(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.2, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i308) + %tmp236 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f175.0, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp237 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp236 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f.setEntry@vtbl238" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp237, i32 0, i32 5 ; [#uses=1] + %f.setEntry240 = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f.setEntry@vtbl238", align 4 ; [#uses=1] + tail call fastcc void %f.setEntry240(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f175.0, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i308) + br label %endif224 + +else225: ; preds = %endif181 + %tmp246 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp202 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp246, %"tango.text.Regex.List!(TNFATransition).List"** %2 + %tmp250 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %f175.0, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp251 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp250 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp251, %"tango.text.Regex.List!(TNFATransition).List"** %6 + br label %endif224 + +endif224: ; preds = %else225, %if223 + %tmp254 = add i32 %i170.0, 1 ; [#uses=1] + br label %forcond166 + +endfor169: ; preds = %forcond166 + %tmp258 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.2, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp259 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp258 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp259, %"tango.text.Regex.List!(TNFATransition).List"** %4 + %tmp263 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %prev.2, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp264 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp263 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp264, %"tango.text.Regex.List!(TNFATransition).List"** %8 + %tmp267 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp267, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp271 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp271, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp274 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc35) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA15constructAlternMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=4] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %frags.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %frags.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %oror + +oror: ; preds = %entry + %tmp6 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp8 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp9 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp6 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp10 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp8 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp11 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp9, %tmp10 ; [#uses=1] + br i1 %tmp11, label %if, label %endif + +if: ; preds = %oror, %entry + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp12 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp18 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp18 ; [#uses=1] + %tmp20 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp21 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp21 ; [#uses=1] + %tmp22 = load i32* %tmp20 ; [#uses=2] + %tmp23 = getelementptr i32* %.ptr, i32 %tmp22 ; [#uses=1] + %tmp24 = sub i32 %.len, %tmp22 ; [#uses=1] + %tmp25 = insertvalue %"Act[]" undef, i32 %tmp24, 0 ; <%"Act[]"> [#uses=1] + %tmp26 = insertvalue %"Act[]" %tmp25, i32* %tmp23, 1 ; <%"Act[]"> [#uses=1] + %tmp27 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp26, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len28 = extractvalue %"byte[]" %tmp27, 0 ; [#uses=4] + %tmp29 = add i32 %.len28, 28 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp29, align 1 ; [#uses=3] + %.ptr30 = extractvalue %"byte[]" %tmp27, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([29 x i8]* @.str239, i32 0, i32 0), i32 28, i32 1) + %tmp31 = getelementptr i8* %.nongc_mem, i32 28 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp31, i8* %.ptr30, i32 %.len28, i32 1) + %tmp33 = add i32 %.len28, 29 ; [#uses=2] + %.nongc_mem168 = alloca i8, i32 %tmp33, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem168, i8* %.nongc_mem, i32 %tmp29, i32 1) + %tmp36 = getelementptr i8* %.nongc_mem168, i32 %tmp29 ; [#uses=1] + store i8 34, i8* %tmp36, align 1 + %tmp2.i = add i32 %.len28, 37 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem168, i32 %tmp33, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp40 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp40) + unreachable + +endif: ; preds = %oror + %.newclass_gc_alloc41 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc42 = bitcast i8* %.newclass_gc_alloc41 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl43 = bitcast i8* %.newclass_gc_alloc41 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl43 + %monitor44 = getelementptr i8* %.newclass_gc_alloc41, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor44 to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp45 = getelementptr i8* %.newclass_gc_alloc41, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp45, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %2 = bitcast i8* %tmp45 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp2.i166 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i166, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i, %"tango.text.Regex.List!(TNFATransition).List"** %2 + %tmp7.i167 = getelementptr i8* %.newclass_gc_alloc41, i32 12 ; [#uses=1] + %4 = bitcast i8* %tmp7.i167 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %4 + %tmp17.i = getelementptr i8* %.newclass_gc_alloc41, i32 16 ; [#uses=1] + %6 = bitcast i8* %tmp17.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %6 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc41, i32 20 ; [#uses=1] + %8 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=3] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %8 + %tmp52 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp8 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp53 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp52, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp54 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp53 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=4] + %tmp58 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp52, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp59 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp58 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp60 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp59, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp61 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp60 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=4] + %tmp64 = load %"tango.text.Regex.List!(TNFATransition).List"** %6 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp65 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp64, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp66 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp65 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entry_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp66, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entry_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entry_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp69 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp61, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp70 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp69 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp71 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entry_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp64, %"tango.text.Regex.List!(TNFATransition).List"* %tmp70) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp74 = load %"tango.text.Regex.List!(TNFATransition).List"** %6 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp75 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp74, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp76 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp75 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entry_state.opCatAssign@vtbl77" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp76, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entry_state.opCatAssign79 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entry_state.opCatAssign@vtbl77", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp81 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp54, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp82 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp81 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp83 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entry_state.opCatAssign79(%"tango.text.Regex.List!(TNFATransition).List"* %tmp74, %"tango.text.Regex.List!(TNFATransition).List"* %tmp82) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp86 = load %"tango.text.Regex.List!(TNFATransition).List"** %8 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp87 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp86, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp88 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp87 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp88, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp91 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp61, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp92 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp91 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp93 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp86, %"tango.text.Regex.List!(TNFATransition).List"* %tmp92) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp96 = load %"tango.text.Regex.List!(TNFATransition).List"** %8 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp97 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp96, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp98 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp97 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl99" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp98, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exit_state.opCatAssign101 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exit_state.opCatAssign@vtbl99", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp103 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp54, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp104 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp103 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp105 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign101(%"tango.text.Regex.List!(TNFATransition).List"* %tmp96, %"tango.text.Regex.List!(TNFATransition).List"* %tmp104) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp108 = load %"tango.text.Regex.List!(TNFATransition).List"** %2 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp109 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp108, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp110 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp109 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp110, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp113 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp61, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp114 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp113 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp115 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp108, %"tango.text.Regex.List!(TNFATransition).List"* %tmp114) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp118 = load %"tango.text.Regex.List!(TNFATransition).List"** %2 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp119 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp118, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp120 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp119 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl121" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp120, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entries.opCatAssign123 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entries.opCatAssign@vtbl121", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp125 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp54, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp126 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp125 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp127 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign123(%"tango.text.Regex.List!(TNFATransition).List"* %tmp118, %"tango.text.Regex.List!(TNFATransition).List"* %tmp126) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp130 = load %"tango.text.Regex.List!(TNFATransition).List"** %4 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp131 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp130, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp132 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp131 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exits.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp132, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exits.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exits.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp135 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp61, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp136 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp135 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp137 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exits.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp130, %"tango.text.Regex.List!(TNFATransition).List"* %tmp136) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp140 = load %"tango.text.Regex.List!(TNFATransition).List"** %4 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp141 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp140, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp142 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp141 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exits.opCatAssign@vtbl143" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp142, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exits.opCatAssign145 = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exits.opCatAssign@vtbl143", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp147 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp54, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp148 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp147 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp149 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exits.opCatAssign145(%"tango.text.Regex.List!(TNFATransition).List"* %tmp140, %"tango.text.Regex.List!(TNFATransition).List"* %tmp148) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp152 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp152, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp156 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl157" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp156, i32 0, i32 16 ; [#uses=1] + %frags.pop159 = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl157", align 4 ; [#uses=1] + tail call fastcc void %frags.pop159(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp162 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp162, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp165 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc42) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA15constructConcatMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=4] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %frags.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %frags.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %oror + +oror: ; preds = %entry + %tmp6 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp8 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp6 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp10 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp8 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=3] + %tmp11 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp9, %tmp10 ; [#uses=1] + br i1 %tmp11, label %if, label %endif + +if: ; preds = %oror, %entry + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp12 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp18 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp18 ; [#uses=1] + %tmp20 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 7 ; [#uses=1] + %tmp21 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp21 ; [#uses=1] + %tmp22 = load i32* %tmp20 ; [#uses=2] + %tmp23 = getelementptr i32* %.ptr, i32 %tmp22 ; [#uses=1] + %tmp24 = sub i32 %.len, %tmp22 ; [#uses=1] + %tmp25 = insertvalue %"Act[]" undef, i32 %tmp24, 0 ; <%"Act[]"> [#uses=1] + %tmp26 = insertvalue %"Act[]" %tmp25, i32* %tmp23, 1 ; <%"Act[]"> [#uses=1] + %tmp27 = tail call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp26, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len28 = extractvalue %"byte[]" %tmp27, 0 ; [#uses=4] + %tmp29 = add i32 %.len28, 39 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp29, align 1 ; [#uses=3] + %.ptr30 = extractvalue %"byte[]" %tmp27, 1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([40 x i8]* @.str241, i32 0, i32 0), i32 39, i32 1) + %tmp31 = getelementptr i8* %.nongc_mem, i32 39 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp31, i8* %.ptr30, i32 %.len28, i32 1) + %tmp33 = add i32 %.len28, 40 ; [#uses=2] + %.nongc_mem140 = alloca i8, i32 %tmp33, align 1 ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.nongc_mem140, i8* %.nongc_mem, i32 %tmp29, i32 1) + %tmp36 = getelementptr i8* %.nongc_mem140, i32 %tmp29 ; [#uses=1] + store i8 34, i8* %tmp36, align 1 + %tmp2.i = add i32 %.len28, 48 ; [#uses=2] + %.gc_mem.i = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i to i64* ; [#uses=1] + %tmp.i = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i, i64* %.gc_mem12.i, align 1 + %tmp4.i = getelementptr i8* %.gc_mem.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp4.i, i8* %.nongc_mem140, i32 %tmp33, i32 1) + %tmp6.i = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i = insertvalue %"byte[]" %tmp6.i, i8* %.gc_mem.i, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i = tail call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp40 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + tail call void @_d_throw_exception(%object.Object* %tmp40) + unreachable + +endif: ; preds = %oror + %tmp44 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp10, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp45 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp44 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=4] + %tmp49 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp10, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp50 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp49 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp51 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp50, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp52 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp51 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=4] + %.newclass_gc_alloc.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState7__ClassZ) ; [#uses=6] + %.newclass_gc.i = bitcast i8* %.newclass_gc_alloc.i to %"tango.text.Regex.TNFAState!(dchar).TNFAState"* ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=3] + %vtbl.i = bitcast i8* %.newclass_gc_alloc.i to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl.i + %monitor.i = getelementptr i8* %.newclass_gc_alloc.i, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor.i to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp.i130 = getelementptr i8* %.newclass_gc_alloc.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp.i130, i8* bitcast (i1* getelementptr (%"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + %tmp1.i.i = getelementptr i8* %.newclass_gc_alloc.i, i32 16 ; [#uses=1] + %2 = bitcast i8* %tmp1.i.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc.i.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i.i = bitcast i8* %.newclass_gc_alloc.i.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i.i + %monitor.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor.i.i to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp2.i.i = getelementptr i8* %.newclass_gc_alloc.i.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i.i, %"tango.text.Regex.List!(TNFATransition).List"** %2 + %tmp6.i131 = getelementptr i8* %.newclass_gc_alloc.i, i32 12 ; [#uses=1] + %4 = bitcast i8* %tmp6.i131 to i32* ; [#uses=1] + %tmp9.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 0 ; [#uses=2] + %.len.i = load i32* %tmp9.i ; [#uses=4] + store i32 %.len.i, i32* %4 + %tmp14.i = add i32 %.len.i, 1 ; [#uses=2] + %tmp17.i = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %.this_arg, i32 0, i32 3, i32 1 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"***> [#uses=2] + %.ptr.i = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i132 = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D56TypeInfo_AC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState6__initZ to %object.TypeInfo*), i32 %tmp14.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i132 to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=2] + %tmp20.i = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, i32 %.len.i ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp20.i + store i32 %tmp14.i, i32* %tmp9.i + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %.gc_mem19.i, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*** %tmp17.i + %tmp56 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp57 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp56 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f2.setExit@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp57, i32 0, i32 6 ; [#uses=1] + %f2.setExit = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f2.setExit@vtbl", align 4 ; [#uses=1] + tail call fastcc void %f2.setExit(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i) + %tmp61 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp45, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + %tmp62 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp61 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f1.setEntry@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp62, i32 0, i32 5 ; [#uses=1] + %f1.setEntry = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f1.setEntry@vtbl", align 4 ; [#uses=1] + tail call fastcc void %f1.setEntry(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp45, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.newclass_gc.i) + %.newclass_gc_alloc65 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7__ClassZ) ; [#uses=7] + %.newclass_gc66 = bitcast i8* %.newclass_gc_alloc65 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %vtbl67 = bitcast i8* %.newclass_gc_alloc65 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__vtblZ, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %vtbl67 + %monitor68 = getelementptr i8* %.newclass_gc_alloc65, i32 4 ; [#uses=1] + %5 = bitcast i8* %monitor68 to i8** ; [#uses=1] + store i8* null, i8** %5 + %tmp69 = getelementptr i8* %.newclass_gc_alloc65, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp69, i8* bitcast (%"tango.text.Regex.List!(TNFATransition).List"** getelementptr (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment6__initZ, i32 0, i32 2) to i8*), i32 17, i32 1) + %6 = bitcast i8* %tmp69 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc.i133 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc.i134 = bitcast i8* %.newclass_gc_alloc.i133 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl.i135 = bitcast i8* %.newclass_gc_alloc.i133 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl.i135 + %monitor.i136 = getelementptr i8* %.newclass_gc_alloc.i133, i32 4 ; [#uses=1] + %7 = bitcast i8* %monitor.i136 to i8** ; [#uses=1] + store i8* null, i8** %7 + %tmp2.i137 = getelementptr i8* %.newclass_gc_alloc.i133, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2.i137, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc.i134, %"tango.text.Regex.List!(TNFATransition).List"** %6 + %tmp7.i138 = getelementptr i8* %.newclass_gc_alloc65, i32 12 ; [#uses=1] + %8 = bitcast i8* %tmp7.i138 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc8.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10.i = bitcast i8* %.newclass_gc_alloc8.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10.i + %monitor11.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 4 ; [#uses=1] + %9 = bitcast i8* %monitor11.i to i8** ; [#uses=1] + store i8* null, i8** %9 + %tmp12.i = getelementptr i8* %.newclass_gc_alloc8.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9.i, %"tango.text.Regex.List!(TNFATransition).List"** %8 + %tmp17.i139 = getelementptr i8* %.newclass_gc_alloc65, i32 16 ; [#uses=1] + %10 = bitcast i8* %tmp17.i139 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc18.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20.i = bitcast i8* %.newclass_gc_alloc18.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20.i + %monitor21.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 4 ; [#uses=1] + %11 = bitcast i8* %monitor21.i to i8** ; [#uses=1] + store i8* null, i8** %11 + %tmp22.i = getelementptr i8* %.newclass_gc_alloc18.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19.i, %"tango.text.Regex.List!(TNFATransition).List"** %10 + %tmp27.i = getelementptr i8* %.newclass_gc_alloc65, i32 20 ; [#uses=1] + %12 = bitcast i8* %tmp27.i to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=2] + %.newclass_gc_alloc28.i = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30.i = bitcast i8* %.newclass_gc_alloc28.i to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30.i + %monitor31.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 4 ; [#uses=1] + %13 = bitcast i8* %monitor31.i to i8** ; [#uses=1] + store i8* null, i8** %13 + %tmp32.i = getelementptr i8* %.newclass_gc_alloc28.i, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32.i, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29.i, %"tango.text.Regex.List!(TNFATransition).List"** %12 + %tmp76 = load %"tango.text.Regex.List!(TNFATransition).List"** %6 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp77 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp76, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp78 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp77 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp78, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp81 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp82 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp81 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp83 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp76, %"tango.text.Regex.List!(TNFATransition).List"* %tmp82) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp86 = load %"tango.text.Regex.List!(TNFATransition).List"** %8 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp87 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp86, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp88 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp87 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exits.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp88, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exits.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exits.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp91 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp45, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp92 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp91 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp93 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exits.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp86, %"tango.text.Regex.List!(TNFATransition).List"* %tmp92) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp96 = load %"tango.text.Regex.List!(TNFATransition).List"** %10 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp97 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp96, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp98 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp97 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.entry_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp98, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.entry_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.entry_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp101 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp52, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp102 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp101 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp103 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.entry_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp96, %"tango.text.Regex.List!(TNFATransition).List"* %tmp102) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp106 = load %"tango.text.Regex.List!(TNFATransition).List"** %12 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp107 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp106, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp108 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp107 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"frag.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp108, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %frag.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"frag.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp111 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp45, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp112 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp111 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp113 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %frag.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp106, %"tango.text.Regex.List!(TNFATransition).List"* %tmp112) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp116 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp116, i32 0, i32 16 ; [#uses=1] + %frags.pop = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl", align 4 ; [#uses=1] + tail call fastcc void %frags.pop(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp120 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.pop@vtbl121" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp120, i32 0, i32 16 ; [#uses=1] + %frags.pop123 = load void (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"frags.pop@vtbl121", align 4 ; [#uses=1] + tail call fastcc void %frags.pop123(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg) + %tmp126 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"frags.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp126, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %frags.opCatAssign = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"frags.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %tmp129 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %frags.opCatAssign(%"tango.text.Regex.List!(TNFAFragment).List"* %frags_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.newclass_gc66) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=0] + ret void +} + +declare fastcc %"byte[]" @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange8toStringMFZAa(%tango.net.Socket.timeval*) + +declare fastcc i32 @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange8opEqualsMFPS5tango4text5Regex16__T9CharRangeTwZ9CharRangeZi(%tango.net.Socket.timeval* nocapture, %tango.net.Socket.timeval* nocapture) nounwind readonly + +declare fastcc i32 @_D5tango4text5Regex16__T9CharRangeTwZ9CharRange5opCmpMFPS5tango4text5Regex16__T9CharRangeTwZ9CharRangeZi(%tango.net.Socket.timeval* nocapture, %tango.net.Socket.timeval* nocapture) nounwind readonly + +declare fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass6negateMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"*) + +declare fastcc void @_D5tango4text5Regex16__T9CharClassTwZ9CharClass8optimizeMFZv(%"tango.text.Regex.CharClass!(dchar).CharClass"*) + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition5_ctorMFE5tango4text5Regex13PriorityClassZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.this_arg, i32 %pc_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.this_arg, i32 0, i32 6 ; [#uses=1] + store i32 %pc_arg, i32* %tmp1 + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.TNFAState!(dchar).TNFAState"* @_D5tango4text5Regex16__T9TNFAStateTwZ9TNFAState5_ctorMFZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState(%"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.this_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.this_arg, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp2 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List"** %tmp1 + ret %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11opCatAssignMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=5] + %tmp2 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp3 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %if, label %else + +if: ; preds = %entry + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.Element"* ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp8 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp8, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** getelementptr (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp13 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %2 = bitcast i8* %tmp8 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %2 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp5 + br label %endif + +else: ; preds = %entry + %tmp19 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp2, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %.newclass_gc_alloc20 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc21 = bitcast i8* %.newclass_gc_alloc20 to %"tango.text.Regex.List!(TNFATransition).List.Element"* ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %vtbl22 = bitcast i8* %.newclass_gc_alloc20 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl22 + %monitor23 = getelementptr i8* %.newclass_gc_alloc20, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor23 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp24 = getelementptr i8* %.newclass_gc_alloc20, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** getelementptr (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp29 = getelementptr i8* %.newclass_gc_alloc20, i32 20 ; [#uses=1] + %4 = bitcast i8* %tmp29 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %4 + %5 = bitcast i8* %tmp24 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %5 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc21, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp19 + %tmp34 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp34, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp36 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp35 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp37 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp36, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp34, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp37 + %tmp45 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp46 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp45, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp47 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp46 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp47, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 + br label %endif + +endif: ; preds = %else, %if + %tmp49 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp52 = load i32* %tmp49 ; [#uses=1] + %tmp53 = add i32 %tmp52, 1 ; [#uses=1] + store i32 %tmp53, i32* %tmp49 + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11insertAfterMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %w_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %.frame = alloca %nest.insertAfter, align 8 ; <%nest.insertAfter*> [#uses=5] + %this = getelementptr %nest.insertAfter* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %this, align 8 + %w = getelementptr %nest.insertAfter* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %w_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %w + %v = getelementptr %nest.insertAfter* %.frame, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %v, align 8 + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp8 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.elements@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp8, i32 0, i32 18 ; [#uses=1] + %this.elements = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref Element)")** %"this.elements@vtbl", align 4 ; [#uses=1] + %tmp10 = bitcast %nest.insertAfter* %.frame to i8* ; [#uses=1] + %tmp11 = insertvalue %"int delegate(ref Element)" undef, i8* %tmp10, 0 ; <%"int delegate(ref Element)"> [#uses=1] + %.func = insertvalue %"int delegate(ref Element)" %tmp11, i32 (i8*, %"tango.text.Regex.List!(TNFATransition).List.Element"**)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11insertAfterMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List15__foreachbody52MFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZi, 1 ; <%"int delegate(ref Element)"> [#uses=1] + %tmp12 = call fastcc i32 %this.elements(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"int delegate(ref Element)" %.func) ; [#uses=1] + %cond = icmp eq i32 %tmp12, 2 ; [#uses=1] + br i1 %cond, label %case, label %switchend + +case: ; preds = %entry + %__result = getelementptr %nest.insertAfter* %.frame, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.List!(TNFATransition).List"** %__result ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + ret %"tango.text.Regex.List!(TNFATransition).List"* %tmp14 + +switchend: ; preds = %entry + ret %"tango.text.Regex.List!(TNFATransition).List"* null +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11insertAfterMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.Element"* ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp1 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp1, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** getelementptr (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp6 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %2 = bitcast i8* %tmp1 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %2 + %tmp10 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp10 to %"tango.text.Regex.List!(TNFATransition).List.Element"** ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"** %3 + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %4 = bitcast i8* %tmp13 to %"tango.text.Regex.List!(TNFATransition).List.Element"** ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=2] + %tmp16 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp15 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp16, %"tango.text.Regex.List!(TNFATransition).List.Element"** %4 + %tmp20 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp16, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp20 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp15 + %tmp26 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=2] + %tmp28 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp26 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp29 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp28, %e_arg ; [#uses=1] + br i1 %tmp29, label %if, label %endif + +if: ; preds = %entry + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp26 + br label %endif + +endif: ; preds = %if, %entry + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp37 = load i32* %tmp34 ; [#uses=1] + %tmp38 = add i32 %tmp37, 1 ; [#uses=1] + store i32 %tmp38, i32* %tmp34 + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11opCatAssignMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4ListZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"* %l_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"l.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %l.empty = load i1 (%"tango.text.Regex.List!(TNFATransition).List"*)** %"l.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %l.empty(%"tango.text.Regex.List!(TNFATransition).List"* %l_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg + +endif: ; preds = %entry + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=3] + %tmp8 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp9 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp8, null ; [#uses=1] + br i1 %tmp9, label %if10, label %else + +if10: ; preds = %endif + %tmp13 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp15 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp16, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp13 + br label %endif11 + +else: ; preds = %endif + %tmp25 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp8, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp27 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp28 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp27 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp28, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp25 + %tmp31 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp32 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp31, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp33 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp32 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp33, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp31, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp34 + br label %endif11 + +endif11: ; preds = %else, %if10 + %storemerge.in = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %storemerge = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %storemerge.in ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 + %tmp44 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 2 ; [#uses=1] + %tmp49 = load i32* %tmp44 ; [#uses=1] + %tmp50 = load i32* %tmp48 ; [#uses=1] + %tmp51 = add i32 %tmp49, %tmp50 ; [#uses=1] + store i32 %tmp51, i32* %tmp44 + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List9pushFrontMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=4] + %tmp2 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp3 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %if, label %else + +if: ; preds = %entry + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.Element"* ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp8 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp8, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** getelementptr (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp13 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %2 = bitcast i8* %tmp8 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %2 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 + br label %endif + +else: ; preds = %entry + %tmp19 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp2, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %.newclass_gc_alloc20 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc21 = bitcast i8* %.newclass_gc_alloc20 to %"tango.text.Regex.List!(TNFATransition).List.Element"* ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %vtbl22 = bitcast i8* %.newclass_gc_alloc20 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl22 + %monitor23 = getelementptr i8* %.newclass_gc_alloc20, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor23 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp24 = getelementptr i8* %.newclass_gc_alloc20, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** getelementptr (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp29 = getelementptr i8* %.newclass_gc_alloc20, i32 20 ; [#uses=1] + %4 = bitcast i8* %tmp29 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %4 + %5 = bitcast i8* %tmp24 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %5 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc21, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp19 + %tmp34 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp34, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp36 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp35 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp37 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp36, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp34, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp37 + %tmp45 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp46 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp45, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp47 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp46 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + br label %endif + +endif: ; preds = %else, %if + %storemerge = phi %"tango.text.Regex.List!(TNFATransition).List.Element"* [ %.newclass_gc, %if ], [ %tmp47, %else ] ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 + %tmp49 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp52 = load i32* %tmp49 ; [#uses=1] + %tmp53 = add i32 %tmp52, 1 ; [#uses=1] + store i32 %tmp53, i32* %tmp49 + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List12insertBeforeMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %w_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %.frame = alloca %nest.insertAfter, align 8 ; <%nest.insertAfter*> [#uses=5] + %this = getelementptr %nest.insertAfter* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %this, align 8 + %w = getelementptr %nest.insertAfter* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %w_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %w + %v = getelementptr %nest.insertAfter* %.frame, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %v, align 8 + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp8 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.elements@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp8, i32 0, i32 18 ; [#uses=1] + %this.elements = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref Element)")** %"this.elements@vtbl", align 4 ; [#uses=1] + %tmp10 = bitcast %nest.insertAfter* %.frame to i8* ; [#uses=1] + %tmp11 = insertvalue %"int delegate(ref Element)" undef, i8* %tmp10, 0 ; <%"int delegate(ref Element)"> [#uses=1] + %.func = insertvalue %"int delegate(ref Element)" %tmp11, i32 (i8*, %"tango.text.Regex.List!(TNFATransition).List.Element"**)* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List12insertBeforeMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List15__foreachbody53MFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZi, 1 ; <%"int delegate(ref Element)"> [#uses=1] + %tmp12 = call fastcc i32 %this.elements(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"int delegate(ref Element)" %.func) ; [#uses=1] + %cond = icmp eq i32 %tmp12, 2 ; [#uses=1] + br i1 %cond, label %case, label %switchend + +case: ; preds = %entry + %__result = getelementptr %nest.insertAfter* %.frame, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.List!(TNFATransition).List"** %__result ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + ret %"tango.text.Regex.List!(TNFATransition).List"* %tmp14 + +switchend: ; preds = %entry + ret %"tango.text.Regex.List!(TNFATransition).List"* null +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List12insertBeforeMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.Element"* ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp1 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp1, i8* bitcast (%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** getelementptr (%"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp6 to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"** %1 + %2 = bitcast i8* %tmp1 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %2 + %tmp10 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp10 to %"tango.text.Regex.List!(TNFATransition).List.Element"** ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp12 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=2] + %tmp13 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp12 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp13, %"tango.text.Regex.List!(TNFATransition).List.Element"** %3 + %tmp15 = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %4 = bitcast i8* %tmp15 to %"tango.text.Regex.List!(TNFATransition).List.Element"** ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"** %4 + %tmp20 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp13, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp20 + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp12 + %tmp26 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=2] + %tmp28 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp26 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp29 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp28, %e_arg ; [#uses=1] + br i1 %tmp29, label %if, label %endif + +if: ; preds = %entry + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp26 + br label %endif + +endif: ; preds = %if, %entry + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp37 = load i32* %tmp34 ; [#uses=1] + %tmp38 = add i32 %tmp37, 1 ; [#uses=1] + store i32 %tmp38, i32* %tmp34 + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List9pushFrontMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4ListZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List"* %l_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"l.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %l.empty = load i1 (%"tango.text.Regex.List!(TNFATransition).List"*)** %"l.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %l.empty(%"tango.text.Regex.List!(TNFATransition).List"* %l_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg + +endif: ; preds = %entry + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=4] + %tmp8 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp9 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp8, null ; [#uses=1] + br i1 %tmp9, label %if10, label %else + +if10: ; preds = %endif + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp15 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp16, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 + %tmp18 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp20 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp21 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp20 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp21, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp18 + br label %endif11 + +else: ; preds = %endif + %tmp25 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp8, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp27 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp28 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp27 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp28, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp25 + %tmp31 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp32 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp31, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp33 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp32 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp33, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp31, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp34 + %tmp41 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp42 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp41 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp42, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp7 + br label %endif11 + +endif11: ; preds = %else, %if10 + %tmp44 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %l_arg, i32 0, i32 2 ; [#uses=1] + %tmp49 = load i32* %tmp44 ; [#uses=1] + %tmp50 = load i32* %tmp48 ; [#uses=1] + %tmp51 = add i32 %tmp49, %tmp50 ; [#uses=1] + store i32 %tmp51, i32* %tmp44 + ret %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6lengthMFZk(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + ret i32 %tmp2 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List5emptyMFZb(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp3 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp2, null ; [#uses=1] + ret i1 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List5clearMFZv(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* null, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp1 + %tmp3 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* null, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp3 + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=1] + store i32 0, i32* %tmp5 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List3popMFZv(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.remove@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp2, i32 0, i32 17 ; [#uses=1] + %this.remove = load void (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*)** %"this.remove@vtbl", align 4 ; [#uses=1] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + tail call fastcc void %this.remove(%"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp6) + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6removeMFC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZv(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg) nounwind { +entry: + %tmp1 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, null ; [#uses=1] + br i1 %tmp1, label %if, label %endif + +if: ; preds = %entry + ret void + +endif: ; preds = %entry + %tmp3 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=3] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp5 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp4, null ; [#uses=1] + br i1 %tmp5, label %if6, label %else + +if6: ; preds = %endif + %tmp9 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp11 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp12 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp11 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp12, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp9 + br label %endif7 + +else: ; preds = %endif + %tmp16 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp4, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp18 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp19 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp18 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp19, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp16 + br label %endif7 + +endif7: ; preds = %else, %if6 + %tmp21 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp22 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp21 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp23 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp22, null ; [#uses=1] + br i1 %tmp23, label %if24, label %else26 + +if24: ; preds = %endif7 + %tmp28 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp31 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp31, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp28 + br label %endif25 + +else26: ; preds = %endif7 + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp22, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %tmp38 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp38, %"tango.text.Regex.List!(TNFATransition).List.Element"** %tmp35 + br label %endif25 + +endif25: ; preds = %else26, %if24 + %tmp40 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp43 = load i32* %tmp40 ; [#uses=1] + %tmp44 = add i32 %tmp43, -1 ; [#uses=1] + store i32 %tmp44, i32* %tmp40 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List8elementsMFDFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZiZi(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg, %"int delegate(ref Element)" %dg_arg) { +entry: + %e = alloca %"tango.text.Regex.List!(TNFATransition).List.Element"*, align 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=3] + %dg_arg18 = extractvalue %"int delegate(ref Element)" %dg_arg, 0 ; [#uses=1] + %dg_arg19 = extractvalue %"int delegate(ref Element)" %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %storemerge.in = phi %"tango.text.Regex.List!(TNFATransition).List.Element"** [ %tmp15, %forinc ], [ %tmp1, %entry ] ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %storemerge = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %storemerge.in ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFATransition).List.Element"** %e + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %storemerge, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp9 = call fastcc i32 %dg_arg19(i8* %dg_arg18, %"tango.text.Regex.List!(TNFATransition).List.Element"** %e) ; [#uses=2] + %tmp12 = icmp eq i32 %tmp9, 0 ; [#uses=1] + br i1 %tmp12, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp9 + +forinc: ; preds = %forbody + %tmp14 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %e ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp14, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List16elements_reverseMFDFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZiZi(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg, %"int delegate(ref Element)" %dg_arg) { +entry: + %e = alloca %"tango.text.Regex.List!(TNFATransition).List.Element"*, align 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=3] + %dg_arg18 = extractvalue %"int delegate(ref Element)" %dg_arg, 0 ; [#uses=1] + %dg_arg19 = extractvalue %"int delegate(ref Element)" %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %storemerge.in = phi %"tango.text.Regex.List!(TNFATransition).List.Element"** [ %tmp15, %forinc ], [ %tmp1, %entry ] ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %storemerge = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %storemerge.in ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFATransition).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFATransition).List.Element"** %e + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %storemerge, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp9 = call fastcc i32 %dg_arg19(i8* %dg_arg18, %"tango.text.Regex.List!(TNFATransition).List.Element"** %e) ; [#uses=2] + %tmp12 = icmp eq i32 %tmp9, 0 ; [#uses=1] + br i1 %tmp12, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp9 + +forinc: ; preds = %forbody + %tmp14 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %e ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp14, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7opApplyMFDFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZiZi(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg, %"int delegate(ref TNFATransition)" %dg_arg) { +entry: + %dg_arg20 = extractvalue %"int delegate(ref TNFATransition)" %dg_arg, 0 ; [#uses=1] + %dg_arg21 = extractvalue %"int delegate(ref TNFATransition)" %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %e.0.in = phi %"tango.text.Regex.List!(TNFATransition).List.Element"** [ %tmp1, %entry ], [ %tmp17, %forinc ] ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %e.0 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %e.0.in ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=3] + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %e.0, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e.0, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp11 = tail call fastcc i32 %dg_arg21(i8* %dg_arg20, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp10) ; [#uses=2] + %tmp14 = icmp eq i32 %tmp11, 0 ; [#uses=1] + br i1 %tmp14, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp11 + +forinc: ; preds = %forbody + %tmp17 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e.0, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List14opApplyReverseMFDFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZiZi(%"tango.text.Regex.List!(TNFATransition).List"* nocapture %.this_arg, %"int delegate(ref TNFATransition)" %dg_arg) { +entry: + %dg_arg20 = extractvalue %"int delegate(ref TNFATransition)" %dg_arg, 0 ; [#uses=1] + %dg_arg21 = extractvalue %"int delegate(ref TNFATransition)" %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %e.0.in = phi %"tango.text.Regex.List!(TNFATransition).List.Element"** [ %tmp1, %entry ], [ %tmp17, %forinc ] ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + %e.0 = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %e.0.in ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=3] + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFATransition).List.Element"* %e.0, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e.0, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp11 = tail call fastcc i32 %dg_arg21(i8* %dg_arg20, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp10) ; [#uses=2] + %tmp14 = icmp eq i32 %tmp11, 0 ; [#uses=1] + br i1 %tmp14, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp11 + +forinc: ; preds = %forbody + %tmp17 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %e.0, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFATransition).List.Element"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element5_ctorMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7Element(%"tango.text.Regex.List!(TNFATransition).List.Element"* %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %.this_arg, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp1 + ret %"tango.text.Regex.List!(TNFATransition).List.Element"* %.this_arg +} + +define weak_odr fastcc void @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment8setEntryMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* nocapture %.this_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state_arg) { +entry: + %.frame = alloca %nest.setEntry, align 8 ; <%nest.setEntry*> [#uses=2] + %state = getelementptr %nest.setEntry* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %state, align 8 + %tmp3 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state_arg, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"state.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %state.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"state.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp9 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp10 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp9 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp11 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %state.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.List!(TNFATransition).List"* %tmp10) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp13 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp13 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp14, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp15 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.entry_state.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp16, i32 0, i32 20 ; [#uses=1] + %this.entry_state.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"this.entry_state.opApply@vtbl", align 4 ; [#uses=1] + %tmp18 = bitcast %nest.setEntry* %.frame to i8* ; [#uses=1] + %tmp19 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp18, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func = insertvalue %"int delegate(ref TNFATransition)" %tmp19, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment8setEntryMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv15__foreachbody54MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp20 = call fastcc i32 %this.entry_state.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp14, %"int delegate(ref TNFATransition)" %.func) ; [#uses=0] + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7setExitMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* nocapture %.this_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state_arg) { +entry: + %.frame = alloca %nest.setEntry, align 8 ; <%nest.setEntry*> [#uses=2] + %state = getelementptr %nest.setEntry* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state_arg, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %state, align 8 + %tmp3 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %state_arg, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"state.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 8 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)**> [#uses=1] + %state.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)** %"state.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List"*)*> [#uses=1] + %tmp9 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp10 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp9 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %tmp11 = call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %state.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.List!(TNFATransition).List"* %tmp10) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + %tmp13 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp13 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp14, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp15 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.exit_state.opApply@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp16, i32 0, i32 20 ; [#uses=1] + %this.exit_state.opApply = load i32 (%"tango.text.Regex.List!(TNFATransition).List"*, %"int delegate(ref TNFATransition)")** %"this.exit_state.opApply@vtbl", align 4 ; [#uses=1] + %tmp18 = bitcast %nest.setEntry* %.frame to i8* ; [#uses=1] + %tmp19 = insertvalue %"int delegate(ref TNFATransition)" undef, i8* %tmp18, 0 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %.func = insertvalue %"int delegate(ref TNFATransition)" %tmp19, i32 (i8*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**)* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7setExitMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv15__foreachbody55MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi, 1 ; <%"int delegate(ref TNFATransition)"> [#uses=1] + %tmp20 = call fastcc i32 %this.exit_state.opApply(%"tango.text.Regex.List!(TNFATransition).List"* %tmp14, %"int delegate(ref TNFATransition)" %.func) ; [#uses=0] + ret void +} + +define weak_odr fastcc %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment5_ctorMFZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp2 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp2, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc, %"tango.text.Regex.List!(TNFATransition).List"** %tmp1 + %tmp7 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc8 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc9 = bitcast i8* %.newclass_gc_alloc8 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl10 = bitcast i8* %.newclass_gc_alloc8 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl10 + %monitor11 = getelementptr i8* %.newclass_gc_alloc8, i32 4 ; [#uses=1] + %1 = bitcast i8* %monitor11 to i8** ; [#uses=1] + store i8* null, i8** %1 + %tmp12 = getelementptr i8* %.newclass_gc_alloc8, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp12, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc9, %"tango.text.Regex.List!(TNFATransition).List"** %tmp7 + %tmp17 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc18 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc19 = bitcast i8* %.newclass_gc_alloc18 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl20 = bitcast i8* %.newclass_gc_alloc18 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl20 + %monitor21 = getelementptr i8* %.newclass_gc_alloc18, i32 4 ; [#uses=1] + %2 = bitcast i8* %monitor21 to i8** ; [#uses=1] + store i8* null, i8** %2 + %tmp22 = getelementptr i8* %.newclass_gc_alloc18, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp22, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc19, %"tango.text.Regex.List!(TNFATransition).List"** %tmp17 + %tmp27 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %.newclass_gc_alloc28 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7__ClassZ) ; [#uses=4] + %.newclass_gc29 = bitcast i8* %.newclass_gc_alloc28 to %"tango.text.Regex.List!(TNFATransition).List"* ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + %vtbl30 = bitcast i8* %.newclass_gc_alloc28 to %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__vtblZ, %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %vtbl30 + %monitor31 = getelementptr i8* %.newclass_gc_alloc28, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor31 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp32 = getelementptr i8* %.newclass_gc_alloc28, i32 8 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp32, i8* bitcast (i32* getelementptr (%"tango.text.Regex.List!(TNFATransition).List"* @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List6__initZ, i32 0, i32 2) to i8*), i32 12, i32 1) + store %"tango.text.Regex.List!(TNFATransition).List"* %.newclass_gc29, %"tango.text.Regex.List!(TNFATransition).List"** %tmp27 + ret %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11opCatAssignMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=5] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp3 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %if, label %else + +if: ; preds = %entry + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFAFragment).List.Element"* ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp8 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp8, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** getelementptr (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp13 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %1 + %2 = bitcast i8* %tmp8 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %2 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp5 + br label %endif + +else: ; preds = %entry + %tmp19 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp2, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %.newclass_gc_alloc20 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc21 = bitcast i8* %.newclass_gc_alloc20 to %"tango.text.Regex.List!(TNFAFragment).List.Element"* ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %vtbl22 = bitcast i8* %.newclass_gc_alloc20 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl22 + %monitor23 = getelementptr i8* %.newclass_gc_alloc20, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor23 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp24 = getelementptr i8* %.newclass_gc_alloc20, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** getelementptr (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp29 = getelementptr i8* %.newclass_gc_alloc20, i32 20 ; [#uses=1] + %4 = bitcast i8* %tmp29 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %4 + %5 = bitcast i8* %tmp24 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %5 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc21, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp19 + %tmp34 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp34, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp36 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp35 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp37 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp36, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp34, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp37 + %tmp45 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp46 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp45, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp47 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp46 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp47, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 + br label %endif + +endif: ; preds = %else, %if + %tmp49 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp52 = load i32* %tmp49 ; [#uses=1] + %tmp53 = add i32 %tmp52, 1 ; [#uses=1] + store i32 %tmp53, i32* %tmp49 + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11insertAfterMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %w_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) { +entry: + %.frame = alloca %34, align 8 ; <%34*> [#uses=5] + %this = getelementptr %34* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %this, align 8 + %w = getelementptr %34* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %w_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %w + %v = getelementptr %34* %.frame, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %v, align 8 + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp8 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp7 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"this.elements@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp8, i32 0, i32 18 ; [#uses=1] + %this.elements = load i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %1)** %"this.elements@vtbl", align 4 ; [#uses=1] + %tmp10 = bitcast %34* %.frame to i8* ; [#uses=1] + %tmp11 = insertvalue %1 undef, i8* %tmp10, 0 ; <%1> [#uses=1] + %.func = insertvalue %1 %tmp11, i32 (i8*, %"tango.text.Regex.List!(TNFAFragment).List.Element"**)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11insertAfterMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List15__foreachbody56MFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZi, 1 ; <%1> [#uses=1] + %tmp12 = call fastcc i32 %this.elements(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %1 %.func) ; [#uses=1] + %cond = icmp eq i32 %tmp12, 2 ; [#uses=1] + br i1 %cond, label %case, label %switchend + +case: ; preds = %entry + %__result = getelementptr %34* %.frame, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.List!(TNFAFragment).List"** %__result ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + ret %"tango.text.Regex.List!(TNFAFragment).List"* %tmp14 + +switchend: ; preds = %entry + ret %"tango.text.Regex.List!(TNFAFragment).List"* null +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11insertAfterMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFAFragment).List.Element"* ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp1 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp1, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** getelementptr (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp6 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %1 + %2 = bitcast i8* %tmp1 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %2 + %tmp10 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp10 to %"tango.text.Regex.List!(TNFAFragment).List.Element"** ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %3 + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %4 = bitcast i8* %tmp13 to %"tango.text.Regex.List!(TNFAFragment).List.Element"** ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp16 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp15 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp16, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %4 + %tmp20 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp16, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp20 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp15 + %tmp26 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp28 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp26 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp29 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp28, %e_arg ; [#uses=1] + br i1 %tmp29, label %if, label %endif + +if: ; preds = %entry + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp26 + br label %endif + +endif: ; preds = %if, %entry + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp37 = load i32* %tmp34 ; [#uses=1] + %tmp38 = add i32 %tmp37, 1 ; [#uses=1] + store i32 %tmp38, i32* %tmp34 + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11opCatAssignMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"l.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %l.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"l.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %l.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %l_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg + +endif: ; preds = %entry + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=3] + %tmp8 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp9 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp8, null ; [#uses=1] + br i1 %tmp9, label %if10, label %else + +if10: ; preds = %endif + %tmp13 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp15 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp16, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp13 + br label %endif11 + +else: ; preds = %endif + %tmp25 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp8, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp27 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp28 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp27 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp28, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp25 + %tmp31 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp32 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp31, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp33 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp32 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp33, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp31, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp34 + br label %endif11 + +endif11: ; preds = %else, %if10 + %storemerge.in = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %storemerge = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %storemerge.in ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 + %tmp44 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 2 ; [#uses=1] + %tmp49 = load i32* %tmp44 ; [#uses=1] + %tmp50 = load i32* %tmp48 ; [#uses=1] + %tmp51 = add i32 %tmp49, %tmp50 ; [#uses=1] + store i32 %tmp51, i32* %tmp44 + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List9pushFrontMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=4] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp3 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp2, null ; [#uses=1] + br i1 %tmp3, label %if, label %else + +if: ; preds = %entry + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFAFragment).List.Element"* ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp8 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp8, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** getelementptr (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp13 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp13 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %1 + %2 = bitcast i8* %tmp8 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %2 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 + br label %endif + +else: ; preds = %entry + %tmp19 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp2, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %.newclass_gc_alloc20 = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ) ; [#uses=5] + %.newclass_gc21 = bitcast i8* %.newclass_gc_alloc20 to %"tango.text.Regex.List!(TNFAFragment).List.Element"* ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %vtbl22 = bitcast i8* %.newclass_gc_alloc20 to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl22 + %monitor23 = getelementptr i8* %.newclass_gc_alloc20, i32 4 ; [#uses=1] + %3 = bitcast i8* %monitor23 to i8** ; [#uses=1] + store i8* null, i8** %3 + %tmp24 = getelementptr i8* %.newclass_gc_alloc20, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp24, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** getelementptr (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp29 = getelementptr i8* %.newclass_gc_alloc20, i32 20 ; [#uses=1] + %4 = bitcast i8* %tmp29 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %4 + %5 = bitcast i8* %tmp24 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %5 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc21, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp19 + %tmp34 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp34, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp36 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp35 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp37 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp36, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp34, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp37 + %tmp45 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp46 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp45, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp47 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp46 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + br label %endif + +endif: ; preds = %else, %if + %storemerge = phi %"tango.text.Regex.List!(TNFAFragment).List.Element"* [ %.newclass_gc, %if ], [ %tmp47, %else ] ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 + %tmp49 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp52 = load i32* %tmp49 ; [#uses=1] + %tmp53 = add i32 %tmp52, 1 ; [#uses=1] + store i32 %tmp53, i32* %tmp49 + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List12insertBeforeMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %w_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) { +entry: + %.frame = alloca %34, align 8 ; <%34*> [#uses=5] + %this = getelementptr %34* %.frame, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %this, align 8 + %w = getelementptr %34* %.frame, i32 0, i32 1 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %w_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %w + %v = getelementptr %34* %.frame, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %v, align 8 + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp8 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp7 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"this.elements@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp8, i32 0, i32 18 ; [#uses=1] + %this.elements = load i32 (%"tango.text.Regex.List!(TNFAFragment).List"*, %1)** %"this.elements@vtbl", align 4 ; [#uses=1] + %tmp10 = bitcast %34* %.frame to i8* ; [#uses=1] + %tmp11 = insertvalue %1 undef, i8* %tmp10, 0 ; <%1> [#uses=1] + %.func = insertvalue %1 %tmp11, i32 (i8*, %"tango.text.Regex.List!(TNFAFragment).List.Element"**)* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List12insertBeforeMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List15__foreachbody57MFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZi, 1 ; <%1> [#uses=1] + %tmp12 = call fastcc i32 %this.elements(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %1 %.func) ; [#uses=1] + %cond = icmp eq i32 %tmp12, 2 ; [#uses=1] + br i1 %cond, label %case, label %switchend + +case: ; preds = %entry + %__result = getelementptr %34* %.frame, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.List!(TNFAFragment).List"** %__result ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + ret %"tango.text.Regex.List!(TNFAFragment).List"* %tmp14 + +switchend: ; preds = %entry + ret %"tango.text.Regex.List!(TNFAFragment).List"* null +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List12insertBeforeMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) { +entry: + %.newclass_gc_alloc = tail call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element7__ClassZ) ; [#uses=7] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %"tango.text.Regex.List!(TNFAFragment).List.Element"* ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=3] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.ModuleInfo.__vtbl** ; <%object.ModuleInfo.__vtbl**> [#uses=1] + store %object.ModuleInfo.__vtbl* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__vtblZ, %object.ModuleInfo.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp1 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp1, i8* bitcast (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** getelementptr (%"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element6__initZ, i32 0, i32 2) to i8*), i32 16, i32 1) + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 20 ; [#uses=1] + %1 = bitcast i8* %tmp6 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"** %1 + %2 = bitcast i8* %tmp1 to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %2 + %tmp10 = getelementptr i8* %.newclass_gc_alloc, i32 12 ; [#uses=1] + %3 = bitcast i8* %tmp10 to %"tango.text.Regex.List!(TNFAFragment).List.Element"** ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp12 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp13 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp12 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp13, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %3 + %tmp15 = getelementptr i8* %.newclass_gc_alloc, i32 16 ; [#uses=1] + %4 = bitcast i8* %tmp15 to %"tango.text.Regex.List!(TNFAFragment).List.Element"** ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %4 + %tmp20 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp13, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp20 + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp12 + %tmp26 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=2] + %tmp28 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp26 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp29 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp28, %e_arg ; [#uses=1] + br i1 %tmp29, label %if, label %endif + +if: ; preds = %entry + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.newclass_gc, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp26 + br label %endif + +endif: ; preds = %if, %entry + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp37 = load i32* %tmp34 ; [#uses=1] + %tmp38 = add i32 %tmp37, 1 ; [#uses=1] + store i32 %tmp38, i32* %tmp34 + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List9pushFrontMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"l.empty@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 14 ; [#uses=1] + %l.empty = load i1 (%"tango.text.Regex.List!(TNFAFragment).List"*)** %"l.empty@vtbl", align 4 ; [#uses=1] + %tmp4 = tail call fastcc i1 %l.empty(%"tango.text.Regex.List!(TNFAFragment).List"* %l_arg) ; [#uses=1] + br i1 %tmp4, label %if, label %endif + +if: ; preds = %entry + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg + +endif: ; preds = %entry + %tmp7 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=4] + %tmp8 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp9 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp8, null ; [#uses=1] + br i1 %tmp9, label %if10, label %else + +if10: ; preds = %endif + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp16 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp15 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp16, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 + %tmp18 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp20 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp21 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp20 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp21, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp18 + br label %endif11 + +else: ; preds = %endif + %tmp25 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp8, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp27 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp28 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp27 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp28, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp25 + %tmp31 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp32 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp31, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp33 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp32 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp34 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp33, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp31, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp34 + %tmp41 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp42 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp41 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp42, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp7 + br label %endif11 + +endif11: ; preds = %else, %if10 + %tmp44 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp48 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %l_arg, i32 0, i32 2 ; [#uses=1] + %tmp49 = load i32* %tmp44 ; [#uses=1] + %tmp50 = load i32* %tmp48 ; [#uses=1] + %tmp51 = add i32 %tmp49, %tmp50 ; [#uses=1] + store i32 %tmp51, i32* %tmp44 + ret %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6lengthMFZk(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + ret i32 %tmp2 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List5emptyMFZb(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp3 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp2, null ; [#uses=1] + ret i1 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List5clearMFZv(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* null, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp1 + %tmp3 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* null, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp3 + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=1] + store i32 0, i32* %tmp5 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List3popMFZv(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp1 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"this.remove@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp2, i32 0, i32 17 ; [#uses=1] + %this.remove = load void (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*)** %"this.remove@vtbl", align 4 ; [#uses=1] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp5 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + tail call fastcc void %this.remove(%"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp6) + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List6removeMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZv(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg) nounwind { +entry: + %tmp1 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, null ; [#uses=1] + br i1 %tmp1, label %if, label %endif + +if: ; preds = %entry + ret void + +endif: ; preds = %entry + %tmp3 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=3] + %tmp4 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp5 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp4, null ; [#uses=1] + br i1 %tmp5, label %if6, label %else + +if6: ; preds = %endif + %tmp9 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp11 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp12 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp11 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp12, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp9 + br label %endif7 + +else: ; preds = %endif + %tmp16 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp4, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp18 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp19 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp18 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp19, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp16 + br label %endif7 + +endif7: ; preds = %else, %if6 + %tmp21 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp22 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp21 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp23 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp22, null ; [#uses=1] + br i1 %tmp23, label %if24, label %else26 + +if24: ; preds = %endif7 + %tmp28 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp31 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp31, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp28 + br label %endif25 + +else26: ; preds = %endif7 + %tmp35 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp22, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %tmp38 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp38, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %tmp35 + br label %endif25 + +endif25: ; preds = %else26, %if24 + %tmp40 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 2 ; [#uses=2] + %tmp43 = load i32* %tmp40 ; [#uses=1] + %tmp44 = add i32 %tmp43, -1 ; [#uses=1] + store i32 %tmp44, i32* %tmp40 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List8elementsMFDFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZiZi(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg, %1 %dg_arg) { +entry: + %e = alloca %"tango.text.Regex.List!(TNFAFragment).List.Element"*, align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=3] + %dg_arg18 = extractvalue %1 %dg_arg, 0 ; [#uses=1] + %dg_arg19 = extractvalue %1 %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %storemerge.in = phi %"tango.text.Regex.List!(TNFAFragment).List.Element"** [ %tmp15, %forinc ], [ %tmp1, %entry ] ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %storemerge = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %storemerge.in ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %storemerge, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp9 = call fastcc i32 %dg_arg19(i8* %dg_arg18, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e) ; [#uses=2] + %tmp12 = icmp eq i32 %tmp9, 0 ; [#uses=1] + br i1 %tmp12, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp9 + +forinc: ; preds = %forbody + %tmp14 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp14, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List16elements_reverseMFDFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZiZi(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg, %1 %dg_arg) { +entry: + %e = alloca %"tango.text.Regex.List!(TNFAFragment).List.Element"*, align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=3] + %dg_arg18 = extractvalue %1 %dg_arg, 0 ; [#uses=1] + %dg_arg19 = extractvalue %1 %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %storemerge.in = phi %"tango.text.Regex.List!(TNFAFragment).List.Element"** [ %tmp15, %forinc ], [ %tmp1, %entry ] ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %storemerge = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %storemerge.in ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + store %"tango.text.Regex.List!(TNFAFragment).List.Element"* %storemerge, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %storemerge, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp9 = call fastcc i32 %dg_arg19(i8* %dg_arg18, %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e) ; [#uses=2] + %tmp12 = icmp eq i32 %tmp9, 0 ; [#uses=1] + br i1 %tmp12, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp9 + +forinc: ; preds = %forbody + %tmp14 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=1] + %tmp15 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp14, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7opApplyMFDFKC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZiZi(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg, %"int delegate(ref TNFAFragment)" %dg_arg) { +entry: + %dg_arg20 = extractvalue %"int delegate(ref TNFAFragment)" %dg_arg, 0 ; [#uses=1] + %dg_arg21 = extractvalue %"int delegate(ref TNFAFragment)" %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %e.0.in = phi %"tango.text.Regex.List!(TNFAFragment).List.Element"** [ %tmp1, %entry ], [ %tmp17, %forinc ] ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %e.0 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e.0.in ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=3] + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e.0, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e.0, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp11 = tail call fastcc i32 %dg_arg21(i8* %dg_arg20, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp10) ; [#uses=2] + %tmp14 = icmp eq i32 %tmp11, 0 ; [#uses=1] + br i1 %tmp14, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp11 + +forinc: ; preds = %forbody + %tmp17 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e.0, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List14opApplyReverseMFDFKC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZiZi(%"tango.text.Regex.List!(TNFAFragment).List"* nocapture %.this_arg, %"int delegate(ref TNFAFragment)" %dg_arg) { +entry: + %dg_arg20 = extractvalue %"int delegate(ref TNFAFragment)" %dg_arg, 0 ; [#uses=1] + %dg_arg21 = extractvalue %"int delegate(ref TNFAFragment)" %dg_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %.this_arg, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %entry + %e.0.in = phi %"tango.text.Regex.List!(TNFAFragment).List.Element"** [ %tmp1, %entry ], [ %tmp17, %forinc ] ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + %e.0 = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %e.0.in ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=3] + %tmp4 = icmp eq %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e.0, null ; [#uses=1] + br i1 %tmp4, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e.0, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp11 = tail call fastcc i32 %dg_arg21(i8* %dg_arg20, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp10) ; [#uses=2] + %tmp14 = icmp eq i32 %tmp11, 0 ; [#uses=1] + br i1 %tmp14, label %forinc, label %if + +if: ; preds = %forbody + ret i32 %tmp11 + +forinc: ; preds = %forbody + %tmp17 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %e.0, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"**> [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 0 +} + +define weak_odr fastcc %"tango.text.Regex.List!(TNFAFragment).List.Element"* @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element5_ctorMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7Element(%"tango.text.Regex.List!(TNFAFragment).List.Element"* %.this_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.this_arg, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + store %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %v_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp1 + ret %"tango.text.Regex.List!(TNFAFragment).List.Element"* %.this_arg +} + +define weak_odr fastcc i32 @_D5tango4text4Util21__T13locatePatternTaZ13locatePatternFAaAakZk(%"byte[]" %source_arg, %"byte[]" %match_arg, i32 %start_arg) nounwind readonly { +entry: + %source_arg59 = extractvalue %"byte[]" %source_arg, 0 ; [#uses=3] + %source_arg60 = extractvalue %"byte[]" %source_arg, 1 ; [#uses=2] + %match_arg57 = extractvalue %"byte[]" %match_arg, 0 ; [#uses=5] + %match_arg58 = extractvalue %"byte[]" %match_arg, 1 ; [#uses=2] + %tmp5 = sub i32 %source_arg59, %start_arg ; [#uses=1] + %tmp8 = sub i32 %tmp5, %match_arg57 ; [#uses=1] + %tmp9 = add i32 %tmp8, 1 ; [#uses=2] + %tmp12 = icmp eq i32 %match_arg57, 0 ; [#uses=1] + %tmp16 = icmp ugt i32 %tmp9, %source_arg59 ; [#uses=1] + %or.cond = or i1 %tmp12, %tmp16 ; [#uses=1] + br i1 %or.cond, label %endif, label %whilecond + +whilecond: ; preds = %else40, %entry + %source_arg60.pn = phi i8* [ %p.0, %else40 ], [ %source_arg60, %entry ] ; [#uses=4] + %start_arg.pn = phi i32 [ %tmp49, %else40 ], [ %start_arg, %entry ] ; [#uses=3] + %extent.0 = phi i32 [ %tmp51, %else40 ], [ %tmp9, %entry ] ; [#uses=5] + %p.0 = getelementptr i8* %source_arg60.pn, i32 %start_arg.pn ; [#uses=2] + %tmp18 = icmp eq i32 %extent.0, 0 ; [#uses=1] + br i1 %tmp18, label %endif, label %whilebody + +whilebody: ; preds = %whilecond + %tmp23 = load i8* %match_arg58 ; [#uses=1] + %p.0.sum63 = add i32 %start_arg.pn, -1 ; [#uses=1] + %tmp2.i = getelementptr i8* %source_arg60.pn, i32 %p.0.sum63 ; [#uses=1] + br label %forcond.i + +forcond.i: ; preds = %forbody.i, %whilebody + %len.0.i = phi i32 [ %extent.0, %whilebody ], [ %tmp4.i, %forbody.i ] ; [#uses=2] + %p.0.i = phi i8* [ %tmp2.i, %whilebody ], [ %tmp7.i, %forbody.i ] ; [#uses=1] + %tmp4.i = add i32 %len.0.i, -1 ; [#uses=1] + %tmp5.i = icmp eq i32 %len.0.i, 0 ; [#uses=1] + br i1 %tmp5.i, label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit, label %forbody.i + +forbody.i: ; preds = %forcond.i + %tmp7.i = getelementptr i8* %p.0.i, i32 1 ; [#uses=3] + %tmp8.i = load i8* %tmp7.i ; [#uses=1] + %tmp12.i = icmp eq i8 %tmp8.i, %tmp23 ; [#uses=1] + br i1 %tmp12.i, label %if.i, label %forcond.i + +if.i: ; preds = %forbody.i + %tmp15.i = ptrtoint i8* %tmp7.i to i32 ; [#uses=1] + %tmp16.i = ptrtoint i8* %p.0 to i32 ; [#uses=1] + %tmp17.i = sub i32 %tmp15.i, %tmp16.i ; [#uses=1] + br label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit + +_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit: ; preds = %if.i, %forcond.i + %tmp2561 = phi i32 [ %tmp17.i, %if.i ], [ %extent.0, %forcond.i ] ; [#uses=3] + %tmp27 = icmp eq i32 %tmp2561, %extent.0 ; [#uses=1] + br i1 %tmp27, label %endif, label %else + +else: ; preds = %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit + %p.0.sum = add i32 %start_arg.pn, %tmp2561 ; [#uses=2] + %tmp32 = getelementptr i8* %source_arg60.pn, i32 %p.0.sum ; [#uses=2] + %tmp32.sum = add i32 %p.0.sum, -1 ; [#uses=1] + %tmp2.i.i = getelementptr i8* %source_arg60.pn, i32 %tmp32.sum ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %else + %len.0.i.i = phi i32 [ %match_arg57, %else ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %s2.0.i.i = phi i8* [ %match_arg58, %else ], [ %tmp11.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %else ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util15__T8matchingTaZ8matchingFPaPakZb.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp11.i.i = getelementptr i8* %s2.0.i.i, i32 1 ; [#uses=1] + %tmp12.i.i = load i8* %s2.0.i.i ; [#uses=1] + %tmp14.i.i = icmp eq i8 %tmp8.i.i, %tmp12.i.i ; [#uses=1] + br i1 %tmp14.i.i, label %forcond.i.i, label %if.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp17.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp18.i.i = ptrtoint i8* %tmp32 to i32 ; [#uses=1] + %tmp19.i.i = sub i32 %tmp17.i.i, %tmp18.i.i ; [#uses=1] + br label %_D5tango4text4Util15__T8matchingTaZ8matchingFPaPakZb.exit + +_D5tango4text4Util15__T8matchingTaZ8matchingFPaPakZb.exit: ; preds = %if.i.i, %forcond.i.i + %tmp36.i = phi i32 [ %tmp19.i.i, %if.i.i ], [ %match_arg57, %forcond.i.i ] ; [#uses=1] + %tmp5.i62 = icmp eq i32 %tmp36.i, %match_arg57 ; [#uses=1] + br i1 %tmp5.i62, label %if38, label %else40 + +if38: ; preds = %_D5tango4text4Util15__T8matchingTaZ8matchingFPaPakZb.exit + %tmp44 = ptrtoint i8* %tmp32 to i32 ; [#uses=1] + %tmp45 = ptrtoint i8* %source_arg60 to i32 ; [#uses=1] + %tmp46 = sub i32 %tmp44, %tmp45 ; [#uses=1] + ret i32 %tmp46 + +else40: ; preds = %_D5tango4text4Util15__T8matchingTaZ8matchingFPaPakZb.exit + %tmp49 = add i32 %tmp2561, 1 ; [#uses=2] + %tmp51 = sub i32 %extent.0, %tmp49 ; [#uses=1] + br label %whilecond + +endif: ; preds = %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit, %whilecond, %entry + ret i32 %source_arg59 +} + +define weak_odr fastcc i32 @_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk(i8* %str_arg, i8 %match_arg, i32 %length_arg) nounwind readonly { +entry: + %tmp2 = getelementptr i8* %str_arg, i32 -1 ; [#uses=1] + br label %forcond + +forcond: ; preds = %forbody, %entry + %len.0 = phi i32 [ %length_arg, %entry ], [ %tmp4, %forbody ] ; [#uses=2] + %p.0 = phi i8* [ %tmp2, %entry ], [ %tmp7, %forbody ] ; [#uses=1] + %tmp4 = add i32 %len.0, -1 ; [#uses=1] + %tmp5 = icmp eq i32 %len.0, 0 ; [#uses=1] + br i1 %tmp5, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp7 = getelementptr i8* %p.0, i32 1 ; [#uses=3] + %tmp8 = load i8* %tmp7 ; [#uses=1] + %tmp12 = icmp eq i8 %tmp8, %match_arg ; [#uses=1] + br i1 %tmp12, label %if, label %forcond + +if: ; preds = %forbody + %tmp15 = ptrtoint i8* %tmp7 to i32 ; [#uses=1] + %tmp16 = ptrtoint i8* %str_arg to i32 ; [#uses=1] + %tmp17 = sub i32 %tmp15, %tmp16 ; [#uses=1] + ret i32 %tmp17 + +endfor: ; preds = %forcond + ret i32 %length_arg +} + +define weak_odr fastcc i1 @_D5tango4text4Util15__T8matchingTaZ8matchingFPaPakZb(i8* %s1_arg, i8* nocapture %s2_arg, i32 %length_arg) nounwind readonly { +entry: + %tmp2.i = getelementptr i8* %s1_arg, i32 -1 ; [#uses=1] + br label %forcond.i + +forcond.i: ; preds = %forbody.i, %entry + %len.0.i = phi i32 [ %length_arg, %entry ], [ %tmp4.i, %forbody.i ] ; [#uses=2] + %s2.0.i = phi i8* [ %s2_arg, %entry ], [ %tmp11.i, %forbody.i ] ; [#uses=2] + %p.0.i = phi i8* [ %tmp2.i, %entry ], [ %tmp7.i, %forbody.i ] ; [#uses=1] + %tmp4.i = add i32 %len.0.i, -1 ; [#uses=1] + %tmp5.i = icmp eq i32 %len.0.i, 0 ; [#uses=1] + br i1 %tmp5.i, label %_D5tango4text4Util15__T8mismatchTaZ8mismatchFPaPakZk.exit, label %forbody.i + +forbody.i: ; preds = %forcond.i + %tmp7.i = getelementptr i8* %p.0.i, i32 1 ; [#uses=3] + %tmp8.i = load i8* %tmp7.i ; [#uses=1] + %tmp11.i = getelementptr i8* %s2.0.i, i32 1 ; [#uses=1] + %tmp12.i = load i8* %s2.0.i ; [#uses=1] + %tmp14.i = icmp eq i8 %tmp8.i, %tmp12.i ; [#uses=1] + br i1 %tmp14.i, label %forcond.i, label %if.i + +if.i: ; preds = %forbody.i + %tmp17.i = ptrtoint i8* %tmp7.i to i32 ; [#uses=1] + %tmp18.i = ptrtoint i8* %s1_arg to i32 ; [#uses=1] + %tmp19.i = sub i32 %tmp17.i, %tmp18.i ; [#uses=1] + br label %_D5tango4text4Util15__T8mismatchTaZ8mismatchFPaPakZk.exit + +_D5tango4text4Util15__T8mismatchTaZ8mismatchFPaPakZk.exit: ; preds = %if.i, %forcond.i + %tmp36 = phi i32 [ %tmp19.i, %if.i ], [ %length_arg, %forcond.i ] ; [#uses=1] + %tmp5 = icmp eq i32 %tmp36, %length_arg ; [#uses=1] + ret i1 %tmp5 +} + +define weak_odr fastcc i32 @_D5tango4text4Util15__T8mismatchTaZ8mismatchFPaPakZk(i8* %s1_arg, i8* nocapture %s2_arg, i32 %length_arg) nounwind readonly { +entry: + %tmp2 = getelementptr i8* %s1_arg, i32 -1 ; [#uses=1] + br label %forcond + +forcond: ; preds = %forbody, %entry + %len.0 = phi i32 [ %length_arg, %entry ], [ %tmp4, %forbody ] ; [#uses=2] + %s2.0 = phi i8* [ %s2_arg, %entry ], [ %tmp11, %forbody ] ; [#uses=2] + %p.0 = phi i8* [ %tmp2, %entry ], [ %tmp7, %forbody ] ; [#uses=1] + %tmp4 = add i32 %len.0, -1 ; [#uses=1] + %tmp5 = icmp eq i32 %len.0, 0 ; [#uses=1] + br i1 %tmp5, label %endfor, label %forbody + +forbody: ; preds = %forcond + %tmp7 = getelementptr i8* %p.0, i32 1 ; [#uses=3] + %tmp8 = load i8* %tmp7 ; [#uses=1] + %tmp11 = getelementptr i8* %s2.0, i32 1 ; [#uses=1] + %tmp12 = load i8* %s2.0 ; [#uses=1] + %tmp14 = icmp eq i8 %tmp8, %tmp12 ; [#uses=1] + br i1 %tmp14, label %forcond, label %if + +if: ; preds = %forbody + %tmp17 = ptrtoint i8* %tmp7 to i32 ; [#uses=1] + %tmp18 = ptrtoint i8* %s1_arg to i32 ; [#uses=1] + %tmp19 = sub i32 %tmp17, %tmp18 ; [#uses=1] + ret i32 %tmp19 + +endfor: ; preds = %forcond + ret i32 %length_arg +} + +define weak_odr fastcc i32 @_D5tango4text4Util19__T11locatePriorTaZ11locatePriorFAaakZk(%"byte[]" %source_arg, i8 %match_arg, i32 %start_arg) nounwind readonly { +entry: + %source_arg22 = extractvalue %"byte[]" %source_arg, 0 ; [#uses=3] + %source_arg23 = extractvalue %"byte[]" %source_arg, 1 ; [#uses=1] + %tmp2 = icmp ult i32 %source_arg22, %start_arg ; [#uses=1] + br i1 %tmp2, label %if, label %whilecond + +if: ; preds = %entry + br label %whilecond + +whilecond: ; preds = %whilebody, %if, %entry + %start.0 = phi i32 [ %source_arg22, %if ], [ %tmp8, %whilebody ], [ %start_arg, %entry ] ; [#uses=2] + %tmp6 = icmp eq i32 %start.0, 0 ; [#uses=1] + br i1 %tmp6, label %endwhile, label %whilebody + +whilebody: ; preds = %whilecond + %tmp8 = add i32 %start.0, -1 ; [#uses=3] + %tmp10 = getelementptr i8* %source_arg23, i32 %tmp8 ; [#uses=1] + %tmp11 = load i8* %tmp10 ; [#uses=1] + %tmp15 = icmp eq i8 %tmp11, %match_arg ; [#uses=1] + br i1 %tmp15, label %if16, label %whilecond + +if16: ; preds = %whilebody + ret i32 %tmp8 + +endwhile: ; preds = %whilecond + ret i32 %source_arg22 +} + +define weak_odr fastcc i32 @_D5tango4text4Util13__T6locateTaZ6locateFAaakZk(%"byte[]" %source_arg, i8 %match_arg, i32 %start_arg) nounwind readonly { +entry: + %source_arg16 = extractvalue %"byte[]" %source_arg, 0 ; [#uses=3] + %source_arg17 = extractvalue %"byte[]" %source_arg, 1 ; [#uses=2] + %tmp2 = icmp ult i32 %source_arg16, %start_arg ; [#uses=1] + %start.0 = select i1 %tmp2, i32 %source_arg16, i32 %start_arg ; [#uses=4] + %tmp7 = getelementptr i8* %source_arg17, i32 %start.0 ; [#uses=1] + %tmp12 = sub i32 %source_arg16, %start.0 ; [#uses=2] + %tmp7.sum = add i32 %start.0, -1 ; [#uses=1] + %tmp2.i = getelementptr i8* %source_arg17, i32 %tmp7.sum ; [#uses=1] + br label %forcond.i + +forcond.i: ; preds = %forbody.i, %entry + %len.0.i = phi i32 [ %tmp12, %entry ], [ %tmp4.i, %forbody.i ] ; [#uses=2] + %p.0.i = phi i8* [ %tmp2.i, %entry ], [ %tmp7.i, %forbody.i ] ; [#uses=1] + %tmp4.i = add i32 %len.0.i, -1 ; [#uses=1] + %tmp5.i = icmp eq i32 %len.0.i, 0 ; [#uses=1] + br i1 %tmp5.i, label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit, label %forbody.i + +forbody.i: ; preds = %forcond.i + %tmp7.i = getelementptr i8* %p.0.i, i32 1 ; [#uses=3] + %tmp8.i = load i8* %tmp7.i ; [#uses=1] + %tmp12.i = icmp eq i8 %tmp8.i, %match_arg ; [#uses=1] + br i1 %tmp12.i, label %if.i, label %forcond.i + +if.i: ; preds = %forbody.i + %tmp15.i = ptrtoint i8* %tmp7.i to i32 ; [#uses=1] + %tmp16.i = ptrtoint i8* %tmp7 to i32 ; [#uses=1] + %tmp17.i = sub i32 %tmp15.i, %tmp16.i ; [#uses=1] + br label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit + +_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit: ; preds = %if.i, %forcond.i + %tmp1318 = phi i32 [ %tmp17.i, %if.i ], [ %tmp12, %forcond.i ] ; [#uses=1] + %tmp15 = add i32 %tmp1318, %start.0 ; [#uses=1] + ret i32 %tmp15 +} + +define weak_odr fastcc i64 @_D5tango4text7convert7Integer13__T6toLongTaZ6toLongFAakZl(%"byte[]" %digits_arg, i32 %radix_arg) { +entry: + %len = alloca i32, align 4 ; [#uses=3] + %digits_arg15 = extractvalue %"byte[]" %digits_arg, 0 ; [#uses=2] + %digits_arg16 = extractvalue %"byte[]" %digits_arg, 1 ; [#uses=1] + store i32 0, i32* %len + %insert = insertvalue %"byte[]" undef, i32 %digits_arg15, 0 ; <%"byte[]"> [#uses=1] + %insert14 = insertvalue %"byte[]" %insert, i8* %digits_arg16, 1 ; <%"byte[]"> [#uses=1] + %tmp2 = call fastcc i64 @_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl(%"byte[]" %insert14, i32 %radix_arg, i32* %len) ; [#uses=1] + %tmp4 = load i32* %len ; [#uses=1] + %tmp5 = icmp ult i32 %tmp4, %digits_arg15 ; [#uses=1] + br i1 %tmp5, label %if, label %endif + +if: ; preds = %entry + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4core9Exception24IllegalArgumentException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4core9Exception24IllegalArgumentException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %0 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %0 + %tmp6 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp6, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%29* @_D5tango4core9Exception24IllegalArgumentException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %tmp2.i = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" { i32 33, i8* getelementptr ([34 x i8]* @.str244, i32 0, i32 0) }, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp11 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp11) + unreachable + +endif: ; preds = %entry + ret i64 %tmp2 +} + +define weak_odr fastcc i64 @_D5tango4text7convert7Integer12__T5parseTaZ5parseFAakPkZl(%"byte[]" %digits_arg, i32 %radix_arg, i32* %ate_arg) nounwind { +entry: + %digits_arg26 = extractvalue %"byte[]" %digits_arg, 0 ; [#uses=3] + %digits_arg27 = extractvalue %"byte[]" %digits_arg, 1 ; [#uses=5] + %tmp4.i = icmp eq i32 %digits_arg26, 0 ; [#uses=1] + br i1 %tmp4.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit, label %forcond.i + +forcond.i: ; preds = %forinc.i, %entry + %sign.1 = phi i1 [ false, %entry ], [ %sign.0, %forinc.i ] ; [#uses=6] + %len.0.i = phi i32 [ %tmp33.i, %forinc.i ], [ %digits_arg26, %entry ] ; [#uses=3] + %p.0.i = phi i8* [ %tmp30.i, %forinc.i ], [ %digits_arg27, %entry ] ; [#uses=6] + %c.0.in.i = phi i8* [ %tmp30.i, %forinc.i ], [ %digits_arg27, %entry ] ; [#uses=1] + %c.0.i = load i8* %c.0.in.i ; [#uses=2] + %tmp8.i = icmp eq i32 %len.0.i, 0 ; [#uses=1] + br i1 %tmp8.i, label %endfor.i, label %forbody.i + +forbody.i: ; preds = %forcond.i + switch i8 %c.0.i, label %endfor.i [ + i8 32, label %forinc.i + i8 9, label %forinc.i + i8 45, label %if20.i + i8 43, label %if26.i + ] + +if20.i: ; preds = %forbody.i + br label %forinc.i + +if26.i: ; preds = %forbody.i + br label %forinc.i + +forinc.i: ; preds = %if26.i, %if20.i, %forbody.i, %forbody.i + %sign.0 = phi i1 [ false, %if26.i ], [ true, %if20.i ], [ %sign.1, %forbody.i ], [ %sign.1, %forbody.i ] ; [#uses=1] + %tmp30.i = getelementptr i8* %p.0.i, i32 1 ; [#uses=2] + %tmp33.i = add i32 %len.0.i, -1 ; [#uses=1] + br label %forcond.i + +endfor.i: ; preds = %forbody.i, %forcond.i + %tmp37.i = icmp eq i8 %c.0.i, 48 ; [#uses=1] + %tmp39.i = icmp sgt i32 %len.0.i, 1 ; [#uses=1] + %or.cond.i = and i1 %tmp37.i, %tmp39.i ; [#uses=1] + br i1 %or.cond.i, label %if40.i, label %endif41.i + +if40.i: ; preds = %endfor.i + %tmp43.i = getelementptr i8* %p.0.i, i32 1 ; [#uses=2] + %tmp44.i = load i8* %tmp43.i ; [#uses=1] + %tmp45.i = zext i8 %tmp44.i to i32 ; [#uses=1] + switch i32 %tmp45.i, label %endif41.i [ + i32 120, label %case46.i + i32 88, label %case46.i + i32 98, label %case51.i + i32 66, label %case51.i + i32 111, label %case56.i + i32 79, label %case56.i + ] + +case46.i: ; preds = %if40.i, %if40.i + %tmp48.i = getelementptr i8* %p.0.i, i32 2 ; [#uses=1] + br label %endif41.i + +case51.i: ; preds = %if40.i, %if40.i + %tmp53.i = getelementptr i8* %p.0.i, i32 2 ; [#uses=1] + br label %endif41.i + +case56.i: ; preds = %if40.i, %if40.i + %tmp58.i = getelementptr i8* %p.0.i, i32 2 ; [#uses=1] + br label %endif41.i + +endif41.i: ; preds = %case56.i, %case51.i, %case46.i, %if40.i, %endfor.i + %r.0.i = phi i32 [ %radix_arg, %if40.i ], [ 8, %case56.i ], [ 2, %case51.i ], [ 16, %case46.i ], [ %radix_arg, %endfor.i ] ; [#uses=3] + %p.2.i = phi i8* [ %tmp43.i, %if40.i ], [ %tmp58.i, %case56.i ], [ %tmp53.i, %case51.i ], [ %tmp48.i, %case46.i ], [ %p.0.i, %endfor.i ] ; [#uses=4] + %tmp63.i = icmp eq i32 %r.0.i, 0 ; [#uses=1] + br i1 %tmp63.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit, label %else66.i + +else66.i: ; preds = %endif41.i + %tmp69.i = icmp eq i32 %r.0.i, %radix_arg ; [#uses=1] + br i1 %tmp69.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit, label %if70.i + +if70.i: ; preds = %else66.i + %tmp77.i = icmp eq i32 %radix_arg, 0 ; [#uses=1] + br i1 %tmp77.i, label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit, label %if73.i + +if73.i: ; preds = %if70.i + %tmp79.i = getelementptr i8* %p.2.i, i32 -1 ; [#uses=1] + br label %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit + +_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit: ; preds = %if73.i, %if70.i, %else66.i, %endif41.i, %entry + %sign.2 = phi i1 [ false, %entry ], [ %sign.1, %else66.i ], [ %sign.1, %if73.i ], [ %sign.1, %endif41.i ], [ %sign.1, %if70.i ] ; [#uses=1] + %radix.0 = phi i32 [ %radix_arg, %entry ], [ %radix_arg, %else66.i ], [ %radix_arg, %if73.i ], [ 10, %endif41.i ], [ %r.0.i, %if70.i ] ; [#uses=2] + %p.1.i = phi i8* [ %tmp79.i, %if73.i ], [ %p.2.i, %else66.i ], [ %digits_arg27, %entry ], [ %p.2.i, %endif41.i ], [ %p.2.i, %if70.i ] ; [#uses=1] + %tmp84.i = ptrtoint i8* %p.1.i to i32 ; [#uses=1] + %tmp85.i = ptrtoint i8* %digits_arg27 to i32 ; [#uses=1] + %tmp86.i = sub i32 %tmp84.i, %tmp85.i ; [#uses=3] + %tmp6 = sub i32 %digits_arg26, %tmp86.i ; [#uses=1] + br label %foreachcond.i + +foreachcond.i: ; preds = %if55.i, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit + %value.0.i = phi i64 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit ], [ %tmp65.i, %if55.i ] ; [#uses=3] + %eaten.0.i = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit ], [ %tmp67.i, %if55.i ] ; [#uses=2] + %foreachkey.0.i = phi i32 [ 0, %_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk.exit ], [ %tmp70.i, %if55.i ] ; [#uses=3] + %tmp3.i = icmp ult i32 %foreachkey.0.i, %tmp6 ; [#uses=1] + br i1 %tmp3.i, label %foreachbody.i, label %foreachend.i + +foreachbody.i: ; preds = %foreachcond.i + %tmp5.sum = add i32 %tmp86.i, %foreachkey.0.i ; [#uses=1] + %tmp5.i = getelementptr i8* %digits_arg27, i32 %tmp5.sum ; [#uses=1] + %tmp6.i = load i8* %tmp5.i ; [#uses=6] + %tmp6.off84.i = add i8 %tmp6.i, -48 ; [#uses=1] + %or.cond.i28 = icmp ugt i8 %tmp6.off84.i, 9 ; [#uses=1] + br i1 %or.cond.i28, label %else.i, label %endif.i + +else.i: ; preds = %foreachbody.i + %tmp6.off83.i = add i8 %tmp6.i, -97 ; [#uses=1] + %or.cond81.i = icmp ugt i8 %tmp6.off83.i, 25 ; [#uses=1] + br i1 %or.cond81.i, label %else24.i, label %if22.i + +if22.i: ; preds = %else.i + %tmp27.i = add i8 %tmp6.i, -39 ; [#uses=1] + br label %endif.i + +else24.i: ; preds = %else.i + %tmp6.off.i = add i8 %tmp6.i, -65 ; [#uses=1] + %or.cond82.i = icmp ugt i8 %tmp6.off.i, 25 ; [#uses=1] + br i1 %or.cond82.i, label %foreachend.i, label %if39.i + +if39.i: ; preds = %else24.i + %tmp44.i29 = add i8 %tmp6.i, -7 ; [#uses=1] + br label %endif.i + +endif.i: ; preds = %if39.i, %if22.i, %foreachbody.i + %c.0.i30 = phi i8 [ %tmp27.i, %if22.i ], [ %tmp44.i29, %if39.i ], [ %tmp6.i, %foreachbody.i ] ; [#uses=1] + %tmp48.i31 = zext i8 %c.0.i30 to i32 ; [#uses=1] + %tmp49.i = add i32 %tmp48.i31, 208 ; [#uses=1] + %tmp52.i = and i32 %tmp49.i, 255 ; [#uses=2] + %tmp54.i = icmp ult i32 %tmp52.i, %radix.0 ; [#uses=1] + br i1 %tmp54.i, label %if55.i, label %foreachend.i + +if55.i: ; preds = %endif.i + %tmp59.i = zext i32 %radix.0 to i64 ; [#uses=1] + %tmp61.i = mul i64 %value.0.i, %tmp59.i ; [#uses=1] + %tmp64.i = zext i32 %tmp52.i to i64 ; [#uses=1] + %tmp65.i = add i64 %tmp61.i, %tmp64.i ; [#uses=1] + %tmp67.i = add i32 %eaten.0.i, 1 ; [#uses=1] + %tmp70.i = add i32 %foreachkey.0.i, 1 ; [#uses=1] + br label %foreachcond.i + +foreachend.i: ; preds = %endif.i, %else24.i, %foreachcond.i + %tmp75.i = icmp eq i32* %ate_arg, null ; [#uses=1] + br i1 %tmp75.i, label %endif, label %if72.i + +if72.i: ; preds = %foreachend.i + %tmp19 = add i32 %eaten.0.i, %tmp86.i ; [#uses=1] + store i32 %tmp19, i32* %ate_arg + br label %endif + +endif: ; preds = %if72.i, %foreachend.i + %negval = sub i64 0, %value.0.i ; [#uses=1] + %condtmp.0 = select i1 %sign.2, i64 %negval, i64 %value.0.i ; [#uses=1] + ret i64 %condtmp.0 +} + +define weak_odr fastcc i32 @_D5tango4text7convert7Integer11__T4trimTaZ4trimFAaKbKkZk(%"byte[]" %digits_arg, i1* nocapture %sign_arg, i32* nocapture %radix_arg) nounwind { +entry: + %digits_arg88 = extractvalue %"byte[]" %digits_arg, 0 ; [#uses=2] + %digits_arg89 = extractvalue %"byte[]" %digits_arg, 1 ; [#uses=4] + %tmp4 = icmp eq i32 %digits_arg88, 0 ; [#uses=1] + br i1 %tmp4, label %endif, label %forcond + +forcond: ; preds = %forinc, %entry + %len.0 = phi i32 [ %tmp33, %forinc ], [ %digits_arg88, %entry ] ; [#uses=3] + %p.0 = phi i8* [ %tmp30, %forinc ], [ %digits_arg89, %entry ] ; [#uses=6] + %c.0.in = phi i8* [ %tmp30, %forinc ], [ %digits_arg89, %entry ] ; [#uses=1] + %c.0 = load i8* %c.0.in ; [#uses=2] + %tmp8 = icmp eq i32 %len.0, 0 ; [#uses=1] + br i1 %tmp8, label %endfor, label %forbody + +forbody: ; preds = %forcond + switch i8 %c.0, label %endfor [ + i8 32, label %forinc + i8 9, label %forinc + i8 45, label %if20 + i8 43, label %if26 + ] + +if20: ; preds = %forbody + store i1 true, i1* %sign_arg + br label %forinc + +if26: ; preds = %forbody + store i1 false, i1* %sign_arg + br label %forinc + +forinc: ; preds = %if26, %if20, %forbody, %forbody + %tmp30 = getelementptr i8* %p.0, i32 1 ; [#uses=2] + %tmp33 = add i32 %len.0, -1 ; [#uses=1] + br label %forcond + +endfor: ; preds = %forbody, %forcond + %tmp34 = load i32* %radix_arg ; [#uses=4] + %tmp37 = icmp eq i8 %c.0, 48 ; [#uses=1] + %tmp39 = icmp sgt i32 %len.0, 1 ; [#uses=1] + %or.cond = and i1 %tmp37, %tmp39 ; [#uses=1] + br i1 %or.cond, label %if40, label %endif41 + +if40: ; preds = %endfor + %tmp43 = getelementptr i8* %p.0, i32 1 ; [#uses=2] + %tmp44 = load i8* %tmp43 ; [#uses=1] + %tmp45 = zext i8 %tmp44 to i32 ; [#uses=1] + switch i32 %tmp45, label %endif41 [ + i32 120, label %case46 + i32 88, label %case46 + i32 98, label %case51 + i32 66, label %case51 + i32 111, label %case56 + i32 79, label %case56 + ] + +case46: ; preds = %if40, %if40 + %tmp48 = getelementptr i8* %p.0, i32 2 ; [#uses=1] + br label %endif41 + +case51: ; preds = %if40, %if40 + %tmp53 = getelementptr i8* %p.0, i32 2 ; [#uses=1] + br label %endif41 + +case56: ; preds = %if40, %if40 + %tmp58 = getelementptr i8* %p.0, i32 2 ; [#uses=1] + br label %endif41 + +endif41: ; preds = %case56, %case51, %case46, %if40, %endfor + %r.0 = phi i32 [ %tmp34, %if40 ], [ 8, %case56 ], [ 2, %case51 ], [ 16, %case46 ], [ %tmp34, %endfor ] ; [#uses=3] + %p.2 = phi i8* [ %tmp43, %if40 ], [ %tmp58, %case56 ], [ %tmp53, %case51 ], [ %tmp48, %case46 ], [ %p.0, %endfor ] ; [#uses=4] + %tmp63 = icmp eq i32 %r.0, 0 ; [#uses=1] + br i1 %tmp63, label %if64, label %else66 + +if64: ; preds = %endif41 + store i32 10, i32* %radix_arg + br label %endif + +else66: ; preds = %endif41 + %tmp69 = icmp eq i32 %tmp34, %r.0 ; [#uses=1] + br i1 %tmp69, label %endif, label %if70 + +if70: ; preds = %else66 + %tmp77 = icmp eq i32 %tmp34, 0 ; [#uses=1] + br i1 %tmp77, label %else75, label %if73 + +if73: ; preds = %if70 + %tmp79 = getelementptr i8* %p.2, i32 -1 ; [#uses=1] + br label %endif + +else75: ; preds = %if70 + store i32 %r.0, i32* %radix_arg + br label %endif + +endif: ; preds = %else75, %if73, %else66, %if64, %entry + %p.1 = phi i8* [ %p.2, %if64 ], [ %tmp79, %if73 ], [ %p.2, %else75 ], [ %p.2, %else66 ], [ %digits_arg89, %entry ] ; [#uses=1] + %tmp84 = ptrtoint i8* %p.1 to i32 ; [#uses=1] + %tmp85 = ptrtoint i8* %digits_arg89 to i32 ; [#uses=1] + %tmp86 = sub i32 %tmp84, %tmp85 ; [#uses=1] + ret i32 %tmp86 +} + +define weak_odr fastcc i64 @_D5tango4text7convert7Integer14__T7convertTaZ7convertFAakPkZm(%"byte[]" %digits_arg, i32 %radix_arg, i32* %ate_arg) nounwind { +entry: + %digits_arg79 = extractvalue %"byte[]" %digits_arg, 0 ; [#uses=1] + %digits_arg80 = extractvalue %"byte[]" %digits_arg, 1 ; [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %if55, %entry + %value.0 = phi i64 [ 0, %entry ], [ %tmp65, %if55 ] ; [#uses=3] + %eaten.0 = phi i32 [ 0, %entry ], [ %tmp67, %if55 ] ; [#uses=2] + %foreachkey.0 = phi i32 [ 0, %entry ], [ %tmp70, %if55 ] ; [#uses=3] + %tmp3 = icmp ult i32 %foreachkey.0, %digits_arg79 ; [#uses=1] + br i1 %tmp3, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp5 = getelementptr i8* %digits_arg80, i32 %foreachkey.0 ; [#uses=1] + %tmp6 = load i8* %tmp5 ; [#uses=6] + %tmp6.off84 = add i8 %tmp6, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp6.off84, 9 ; [#uses=1] + br i1 %or.cond, label %else, label %endif + +else: ; preds = %foreachbody + %tmp6.off83 = add i8 %tmp6, -97 ; [#uses=1] + %or.cond81 = icmp ugt i8 %tmp6.off83, 25 ; [#uses=1] + br i1 %or.cond81, label %else24, label %if22 + +if22: ; preds = %else + %tmp27 = add i8 %tmp6, -39 ; [#uses=1] + br label %endif + +else24: ; preds = %else + %tmp6.off = add i8 %tmp6, -65 ; [#uses=1] + %or.cond82 = icmp ugt i8 %tmp6.off, 25 ; [#uses=1] + br i1 %or.cond82, label %foreachend, label %if39 + +if39: ; preds = %else24 + %tmp44 = add i8 %tmp6, -7 ; [#uses=1] + br label %endif + +endif: ; preds = %if39, %if22, %foreachbody + %c.0 = phi i8 [ %tmp27, %if22 ], [ %tmp44, %if39 ], [ %tmp6, %foreachbody ] ; [#uses=1] + %tmp48 = zext i8 %c.0 to i32 ; [#uses=1] + %tmp49 = add i32 %tmp48, 208 ; [#uses=1] + %tmp52 = and i32 %tmp49, 255 ; [#uses=2] + %tmp54 = icmp ult i32 %tmp52, %radix_arg ; [#uses=1] + br i1 %tmp54, label %if55, label %foreachend + +if55: ; preds = %endif + %tmp59 = zext i32 %radix_arg to i64 ; [#uses=1] + %tmp61 = mul i64 %value.0, %tmp59 ; [#uses=1] + %tmp64 = zext i32 %tmp52 to i64 ; [#uses=1] + %tmp65 = add i64 %tmp61, %tmp64 ; [#uses=1] + %tmp67 = add i32 %eaten.0, 1 ; [#uses=1] + %tmp70 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %endif, %else24, %foreachcond + %tmp75 = icmp eq i32* %ate_arg, null ; [#uses=1] + br i1 %tmp75, label %endif73, label %if72 + +if72: ; preds = %foreachend + store i32 %eaten.0, i32* %ate_arg + ret i64 %value.0 + +endif73: ; preds = %foreachend + ret i64 %value.0 +} + +define weak_odr fastcc %"byte[]" @_D5tango4text7convert7Integer13__T6formatTaZ6formatFAalAaZAa(%"byte[]" %dst_arg, i64 %i_arg, %"byte[]" %fmt_arg) { +entry: + %fmt_arg41.i = extractvalue %"byte[]" %fmt_arg, 0 ; [#uses=3] + %fmt_arg42.i = extractvalue %"byte[]" %fmt_arg, 1 ; [#uses=2] + %tmp1.i = icmp eq i32 %fmt_arg41.i, 0 ; [#uses=1] + br i1 %tmp1.i, label %_D5tango4text7convert7Integer13__T6decodeTaZ6decodeFAaKaJaJiZv.exit, label %else.i + +else.i: ; preds = %entry + %tmp4.i = load i8* %fmt_arg42.i ; [#uses=2] + %tmp7.i = icmp ugt i32 %fmt_arg41.i, 1 ; [#uses=1] + br i1 %tmp7.i, label %forcond.i, label %_D5tango4text7convert7Integer13__T6decodeTaZ6decodeFAaKaJaJiZv.exit + +forcond.i: ; preds = %forinc.i, %else.i + %width.1 = phi i32 [ 0, %else.i ], [ %width.0, %forinc.i ] ; [#uses=3] + %pre.1 = phi i8 [ -1, %else.i ], [ %pre.0, %forinc.i ] ; [#uses=2] + %j.0.i = phi i32 [ %tmp38.i, %forinc.i ], [ 1, %else.i ] ; [#uses=2] + %fmt_arg42.pn.i = phi i8* [ %p.0.i, %forinc.i ], [ %fmt_arg42.i, %else.i ] ; [#uses=1] + %p.0.i = getelementptr i8* %fmt_arg42.pn.i, i32 1 ; [#uses=2] + %tmp16.i = icmp ult i32 %j.0.i, %fmt_arg41.i ; [#uses=1] + br i1 %tmp16.i, label %forbody.i, label %_D5tango4text7convert7Integer13__T6decodeTaZ6decodeFAaKaJaJiZv.exit + +forbody.i: ; preds = %forcond.i + %tmp18.i = load i8* %p.0.i ; [#uses=3] + %tmp18.i.off = add i8 %tmp18.i, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp18.i.off, 9 ; [#uses=1] + br i1 %or.cond, label %forinc.i, label %if25.i + +if25.i: ; preds = %forbody.i + %tmp29.i = mul i32 %width.1, 10 ; [#uses=1] + %tmp32.i = zext i8 %tmp18.i to i32 ; [#uses=1] + %tmp33.i = add i32 %tmp32.i, -48 ; [#uses=1] + %tmp34.i = add i32 %tmp29.i, %tmp33.i ; [#uses=1] + br label %forinc.i + +forinc.i: ; preds = %if25.i, %forbody.i + %width.0 = phi i32 [ %tmp34.i, %if25.i ], [ %width.1, %forbody.i ] ; [#uses=1] + %pre.0 = phi i8 [ %pre.1, %if25.i ], [ %tmp18.i, %forbody.i ] ; [#uses=1] + %tmp38.i = add i32 %j.0.i, 1 ; [#uses=1] + br label %forcond.i + +_D5tango4text7convert7Integer13__T6decodeTaZ6decodeFAaKaJaJiZv.exit: ; preds = %forcond.i, %else.i, %entry + %width.3 = phi i32 [ 0, %entry ], [ %width.1, %forcond.i ], [ 0, %else.i ] ; [#uses=1] + %type.0 = phi i8 [ 100, %entry ], [ %tmp4.i, %forcond.i ], [ %tmp4.i, %else.i ] ; [#uses=1] + %pre.3 = phi i8 [ -1, %entry ], [ %pre.1, %forcond.i ], [ -1, %else.i ] ; [#uses=1] + %tmp6 = call fastcc %"byte[]" @_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa(%"byte[]" %dst_arg, i64 %i_arg, i8 %type.0, i8 %pre.3, i32 %width.3) ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp6 +} + +define weak_odr fastcc void @_D5tango4text7convert7Integer13__T6decodeTaZ6decodeFAaKaJaJiZv(%"byte[]" %fmt_arg, i8* nocapture %type_arg, i8* nocapture %pre_arg, i32* nocapture %width_arg) nounwind { +entry: + %fmt_arg41 = extractvalue %"byte[]" %fmt_arg, 0 ; [#uses=3] + %fmt_arg42 = extractvalue %"byte[]" %fmt_arg, 1 ; [#uses=2] + store i8 -1, i8* %pre_arg + store i32 0, i32* %width_arg + %tmp1 = icmp eq i32 %fmt_arg41, 0 ; [#uses=1] + br i1 %tmp1, label %if, label %else + +if: ; preds = %entry + store i8 100, i8* %type_arg + ret void + +else: ; preds = %entry + %tmp4 = load i8* %fmt_arg42 ; [#uses=1] + store i8 %tmp4, i8* %type_arg + %tmp7 = icmp ugt i32 %fmt_arg41, 1 ; [#uses=1] + br i1 %tmp7, label %forcond, label %endif + +forcond: ; preds = %forinc, %else + %j.0 = phi i32 [ %tmp38, %forinc ], [ 1, %else ] ; [#uses=2] + %fmt_arg42.pn = phi i8* [ %p.0, %forinc ], [ %fmt_arg42, %else ] ; [#uses=1] + %p.0 = getelementptr i8* %fmt_arg42.pn, i32 1 ; [#uses=2] + %tmp16 = icmp ult i32 %j.0, %fmt_arg41 ; [#uses=1] + br i1 %tmp16, label %forbody, label %endif + +forbody: ; preds = %forcond + %tmp18 = load i8* %p.0 ; [#uses=3] + %tmp18.off = add i8 %tmp18, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp18.off, 9 ; [#uses=1] + br i1 %or.cond, label %else27, label %if25 + +if25: ; preds = %forbody + %tmp28 = load i32* %width_arg ; [#uses=1] + %tmp29 = mul i32 %tmp28, 10 ; [#uses=1] + %tmp32 = zext i8 %tmp18 to i32 ; [#uses=1] + %tmp33 = add i32 %tmp32, -48 ; [#uses=1] + %tmp34 = add i32 %tmp29, %tmp33 ; [#uses=1] + store i32 %tmp34, i32* %width_arg + br label %forinc + +else27: ; preds = %forbody + store i8 %tmp18, i8* %pre_arg + br label %forinc + +forinc: ; preds = %else27, %if25 + %tmp38 = add i32 %j.0, 1 ; [#uses=1] + br label %forcond + +endif: ; preds = %forcond, %else + ret void +} + +define weak_odr fastcc %"byte[]" @_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa(%"byte[]" %dst_arg, i64 %i_arg, i8 %type_arg, i8 %pre_arg, i32 %width_arg) { +entry: + %.nongc_mem182 = alloca [18 x i8], align 1 ; <[18 x i8]*> [#uses=2] + %.nongc_mem182.sub = getelementptr [18 x i8]* %.nongc_mem182, i32 0, i32 0 ; [#uses=2] + %dst_arg179 = extractvalue %"byte[]" %dst_arg, 0 ; [#uses=6] + %dst_arg180 = extractvalue %"byte[]" %dst_arg, 1 ; [#uses=2] + %tmp3 = icmp eq i32 %dst_arg179, 0 ; [#uses=1] + br i1 %tmp3, label %endif, label %if + +if: ; preds = %entry + %tmp5 = zext i8 %type_arg to i32 ; [#uses=1] + switch i32 %tmp5, label %default37 [ + i32 100, label %case8 + i32 68, label %case8 + i32 103, label %case8 + i32 71, label %case8 + i32 117, label %switchend + i32 85, label %switchend + i32 98, label %case28 + i32 66, label %case28 + i32 111, label %case31 + i32 79, label %case31 + i32 120, label %case33 + i32 88, label %case35 + ] + +case8: ; preds = %if, %if, %if, %if + %tmp10 = icmp slt i64 %i_arg, 0 ; [#uses=1] + br i1 %tmp10, label %if11, label %else + +if11: ; preds = %case8 + %negval = sub i64 0, %i_arg ; [#uses=1] + br label %switchend + +else: ; preds = %case8 + %tmp16 = icmp eq i8 %pre_arg, 32 ; [#uses=1] + br i1 %tmp16, label %switchend, label %else19 + +else19: ; preds = %else + %tmp22 = icmp eq i8 %pre_arg, 43 ; [#uses=1] + br i1 %tmp22, label %if23, label %switchend + +if23: ; preds = %else19 + br label %switchend + +case28: ; preds = %if, %if + br label %switchend + +case31: ; preds = %if, %if + br label %switchend + +case33: ; preds = %if + br label %switchend + +case35: ; preds = %if + br label %switchend + +default37: ; preds = %if + tail call void @llvm.memcpy.i32(i8* %.nongc_mem182.sub, i8* getelementptr ([18 x i8]* @.str263, i32 0, i32 0), i32 17, i32 1) + %tmp38 = getelementptr [18 x i8]* %.nongc_mem182, i32 0, i32 17 ; [#uses=1] + store i8 %type_arg, i8* %tmp38 + %.gc_mem40 = tail call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 20) ; [#uses=3] + tail call void @llvm.memcpy.i32(i8* %.gc_mem40, i8* %.nongc_mem182.sub, i32 18, i32 1) + %tmp41 = getelementptr i8* %.gc_mem40, i32 18 ; [#uses=1] + %tmp41181 = bitcast i8* %tmp41 to i16* ; [#uses=1] + %tmp = load i16* bitcast ([3 x i8]* @.str264 to i16*), align 2 ; [#uses=1] + store i16 %tmp, i16* %tmp41181, align 1 + %tmp42 = insertvalue %"byte[]" { i32 20, i8* undef }, i8* %.gc_mem40, 1 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp42 + +switchend: ; preds = %case35, %case33, %case31, %case28, %if23, %else19, %else, %if11, %if, %if + %index.1 = phi i32 [ 7, %case35 ], [ 6, %case33 ], [ 5, %case31 ], [ 4, %case28 ], [ 0, %if ], [ 0, %if ], [ 1, %if11 ], [ 3, %if23 ], [ 0, %else19 ], [ 2, %else ] ; [#uses=3] + %pre.0 = phi i8 [ %pre_arg, %case35 ], [ %pre_arg, %case33 ], [ %pre_arg, %case31 ], [ %pre_arg, %case28 ], [ 35, %else ], [ 35, %if ], [ 35, %if23 ], [ 35, %else19 ], [ 35, %if11 ], [ 35, %if ] ; [#uses=1] + %i.1 = phi i64 [ %i_arg, %case35 ], [ %i_arg, %case33 ], [ %i_arg, %case31 ], [ %i_arg, %case28 ], [ %i_arg, %if ], [ %i_arg, %if ], [ %negval, %if11 ], [ %i_arg, %if23 ], [ %i_arg, %else19 ], [ %i_arg, %else ] ; [#uses=3] + %tmp48 = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %index.1, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp49 = load %"byte[]"* %tmp48 ; <%"byte[]"> [#uses=1] + %tmp49178 = extractvalue %"byte[]" %tmp49, 1 ; [#uses=2] + %tmp51 = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %index.1, i32 0 ; [#uses=1] + %tmp52 = load i32* %tmp51 ; [#uses=3] + %tmp56 = getelementptr i8* %dst_arg180, i32 %dst_arg179 ; [#uses=2] + %tmp58 = icmp ugt i64 %i.1, 4294967295 ; [#uses=1] + br i1 %tmp58, label %dowhile82, label %if59 + +if59: ; preds = %switchend + %tmp63 = trunc i64 %i.1 to i32 ; [#uses=1] + br label %dowhile + +dowhile: ; preds = %andand, %if59 + %p.0 = phi i8* [ %tmp56, %if59 ], [ %tmp65, %andand ] ; [#uses=1] + %v.0 = phi i32 [ %tmp63, %if59 ], [ %tmp75, %andand ] ; [#uses=2] + %len.0 = phi i32 [ %dst_arg179, %if59 ], [ %tmp78, %andand ] ; [#uses=3] + %tmp65 = getelementptr i8* %p.0, i32 -1 ; [#uses=4] + %tmp68 = urem i32 %v.0, %tmp52 ; [#uses=1] + %tmp71 = getelementptr i8* %tmp49178, i32 %tmp68 ; [#uses=1] + %tmp72 = load i8* %tmp71 ; [#uses=1] + store i8 %tmp72, i8* %tmp65 + %tmp75 = udiv i32 %v.0, %tmp52 ; [#uses=2] + %tmp76 = icmp eq i32 %tmp75, 0 ; [#uses=1] + br i1 %tmp76, label %endif60, label %andand + +andand: ; preds = %dowhile + %tmp78 = add i32 %len.0, -1 ; [#uses=2] + %tmp79 = icmp eq i32 %len.0, 1 ; [#uses=1] + br i1 %tmp79, label %endif60, label %dowhile + +dowhile82: ; preds = %andand100, %switchend + %p.2 = phi i8* [ %tmp86, %andand100 ], [ %tmp56, %switchend ] ; [#uses=1] + %v80.0 = phi i64 [ %tmp99, %andand100 ], [ %i.1, %switchend ] ; [#uses=2] + %len.2 = phi i32 [ %tmp104, %andand100 ], [ %dst_arg179, %switchend ] ; [#uses=3] + %tmp86 = getelementptr i8* %p.2, i32 -1 ; [#uses=4] + %tmp88 = zext i32 %tmp52 to i64 ; [#uses=2] + %tmp90 = urem i64 %v80.0, %tmp88 ; [#uses=1] + %tmp91 = trunc i64 %tmp90 to i32 ; [#uses=1] + %tmp94 = getelementptr i8* %tmp49178, i32 %tmp91 ; [#uses=1] + %tmp95 = load i8* %tmp94 ; [#uses=1] + store i8 %tmp95, i8* %tmp86 + %tmp99 = udiv i64 %v80.0, %tmp88 ; [#uses=2] + %tmp102 = icmp eq i64 %tmp99, 0 ; [#uses=1] + br i1 %tmp102, label %endif60, label %andand100 + +andand100: ; preds = %dowhile82 + %tmp104 = add i32 %len.2, -1 ; [#uses=2] + %tmp105 = icmp eq i32 %len.2, 1 ; [#uses=1] + br i1 %tmp105, label %endif60, label %dowhile82 + +endif60: ; preds = %andand100, %dowhile82, %andand, %dowhile + %p.1 = phi i8* [ %tmp65, %andand ], [ %tmp65, %dowhile ], [ %tmp86, %andand100 ], [ %tmp86, %dowhile82 ] ; [#uses=1] + %len.1 = phi i32 [ %tmp78, %andand ], [ %len.0, %dowhile ], [ %tmp104, %andand100 ], [ %len.2, %dowhile82 ] ; [#uses=2] + %tmp109 = icmp eq i8 %pre.0, 35 ; [#uses=1] + br i1 %tmp109, label %condtrue, label %condend + +condtrue: ; preds = %endif60 + %tmp111 = getelementptr [8 x %nest.parseListLine]* @.constarray262, i32 0, i32 %index.1, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp112 = load %"byte[]"* %tmp111 ; <%"byte[]"> [#uses=1] + br label %condend + +condend: ; preds = %condtrue, %endif60 + %condtmp.0 = phi %"byte[]" [ %tmp112, %condtrue ], [ zeroinitializer, %endif60 ] ; <%"byte[]"> [#uses=2] + %condtmp.0175 = extractvalue %"byte[]" %condtmp.0, 0 ; [#uses=4] + %condtmp.0176 = extractvalue %"byte[]" %condtmp.0, 1 ; [#uses=1] + %tmp117 = icmp ugt i32 %len.1, %condtmp.0175 ; [#uses=1] + br i1 %tmp117, label %if118, label %endif + +if118: ; preds = %condend + %tmp123 = add i32 %condtmp.0175, 1 ; [#uses=1] + %tmp124 = sub i32 %len.1, %tmp123 ; [#uses=2] + %tmp129 = icmp eq i32 %width_arg, 0 ; [#uses=1] + br i1 %tmp129, label %endif127, label %if126 + +if126: ; preds = %if118 + %tmp133 = sub i32 %dst_arg179, %width_arg ; [#uses=1] + %tmp136 = sub i32 %tmp133, %condtmp.0175 ; [#uses=1] + br label %whilecond + +whilecond: ; preds = %whilebody, %if126 + %p.3 = phi i8* [ %p.1, %if126 ], [ %tmp146, %whilebody ] ; [#uses=1] + %len.3 = phi i32 [ %tmp124, %if126 ], [ %tmp148, %whilebody ] ; [#uses=4] + %tmp139 = icmp sgt i32 %len.3, %tmp136 ; [#uses=1] + %tmp143 = icmp sgt i32 %len.3, 0 ; [#uses=1] + %or.cond = and i1 %tmp139, %tmp143 ; [#uses=1] + br i1 %or.cond, label %whilebody, label %endif127 + +whilebody: ; preds = %whilecond + %tmp146 = getelementptr i8* %p.3, i32 -1 ; [#uses=2] + store i8 48, i8* %tmp146 + %tmp148 = add i32 %len.3, -1 ; [#uses=1] + br label %whilecond + +endif127: ; preds = %whilecond, %if118 + %len.4 = phi i32 [ %len.3, %whilecond ], [ %tmp124, %if118 ] ; [#uses=2] + %tmp156 = getelementptr i8* %dst_arg180, i32 %len.4 ; [#uses=2] + tail call void @llvm.memcpy.i32(i8* %tmp156, i8* %condtmp.0176, i32 %condtmp.0175, i32 1) + %tmp170 = sub i32 %dst_arg179, %len.4 ; [#uses=1] + %tmp171 = insertvalue %"byte[]" undef, i32 %tmp170, 0 ; <%"byte[]"> [#uses=1] + %tmp172 = insertvalue %"byte[]" %tmp171, i8* %tmp156, 1 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp172 + +endif: ; preds = %condend, %entry + ret %"byte[]" { i32 24, i8* getelementptr ([25 x i8]* @.str265, i32 0, i32 0) } +} + +define weak_odr fastcc i32 @_D5tango4text7convert7Integer11__T4atoiTaZ4atoiFAaiZk(%"byte[]" %s_arg, i32 %radix_arg) nounwind readonly { +entry: + %s_arg23 = extractvalue %"byte[]" %s_arg, 0 ; [#uses=1] + %s_arg24 = extractvalue %"byte[]" %s_arg, 1 ; [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %if, %entry + %value.0 = phi i32 [ 0, %entry ], [ %tmp19, %if ] ; [#uses=2] + %foreachkey.0 = phi i32 [ 0, %entry ], [ %tmp21, %if ] ; [#uses=3] + %tmp3 = icmp ult i32 %foreachkey.0, %s_arg23 ; [#uses=1] + br i1 %tmp3, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp5 = getelementptr i8* %s_arg24, i32 %foreachkey.0 ; [#uses=1] + %tmp6 = load i8* %tmp5 ; [#uses=2] + %tmp6.off = add i8 %tmp6, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp6.off, 9 ; [#uses=1] + br i1 %or.cond, label %foreachend, label %if + +if: ; preds = %foreachbody + %tmp15 = mul i32 %value.0, %radix_arg ; [#uses=1] + %tmp17 = zext i8 %tmp6 to i32 ; [#uses=1] + %tmp18 = add i32 %tmp17, -48 ; [#uses=1] + %tmp19 = add i32 %tmp15, %tmp18 ; [#uses=1] + %tmp21 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachbody, %foreachcond + ret i32 %value.0 +} + +define weak_odr fastcc %"char[][]" @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa(%"byte[]" %src_arg) { +entry: + %.frame = alloca %nest.splitLines, align 8 ; <%nest.splitLines*> [#uses=5] + %.rettmp = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %.rettmp8 = alloca %"tango.text.Util.LineFruct!(char).LineFruct", align 8 ; <%"tango.text.Util.LineFruct!(char).LineFruct"*> [#uses=3] + %count = getelementptr %nest.splitLines* %.frame, i32 0, i32 0 ; [#uses=3] + %result = getelementptr %nest.splitLines* %.frame, i32 0, i32 1 ; <%"char[][]"*> [#uses=1] + store i32 0, i32* %count, align 8 + %src_arg8.i = extractvalue %"byte[]" %src_arg, 0 ; [#uses=1] + %src_arg9.i = extractvalue %"byte[]" %src_arg, 1 ; [#uses=1] + %0 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg8.i, i32* %0, align 8 + %.sret_arg10.1.i = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg9.i, i8** %.sret_arg10.1.i, align 4 + %tmp1 = bitcast %nest.splitLines* %.frame to i8* ; [#uses=2] + %tmp2 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func = insertvalue %"int delegate(ref char[])" %tmp2, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody41MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp3 = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp, %"int delegate(ref char[])" %.func) ; [#uses=0] + %tmp4 = load i32* %count, align 8 ; [#uses=2] + %.gc_mem = call noalias i8* @_d_newarrayT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D12TypeInfo_AAa6__initZ to %object.TypeInfo*), i32 %tmp4) ; [#uses=1] + %.gc_mem5 = bitcast i8* %.gc_mem to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp6 = getelementptr %nest.splitLines* %.frame, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp4, i32* %tmp6 + %tmp7 = getelementptr %nest.splitLines* %.frame, i32 0, i32 1, i32 1 ; <%"byte[]"**> [#uses=1] + store %"byte[]"* %.gc_mem5, %"byte[]"** %tmp7 + store i32 0, i32* %count, align 8 + %src_arg8.i15 = extractvalue %"byte[]" %src_arg, 0 ; [#uses=1] + %src_arg9.i16 = extractvalue %"byte[]" %src_arg, 1 ; [#uses=1] + %1 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg8.i15, i32* %1, align 8 + %.sret_arg10.1.i17 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg9.i16, i8** %.sret_arg10.1.i17, align 4 + %tmp11 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp1, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func12 = insertvalue %"int delegate(ref char[])" %tmp11, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody42MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp13 = call fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* %.rettmp8, %"int delegate(ref char[])" %.func12) ; [#uses=0] + %tmp14 = load %"char[][]"* %result ; <%"char[][]"> [#uses=1] + ret %"char[][]" %tmp14 +} + +define weak_odr fastcc void @_D5tango4text4Util12__T5linesTaZ5linesFAaZS5tango4text4Util16__T9LineFructTaZ9LineFruct(%"tango.text.Util.LineFruct!(char).LineFruct"* noalias nocapture sret %.sret_arg, %"byte[]" %src_arg) nounwind { +entry: + %src_arg8 = extractvalue %"byte[]" %src_arg, 0 ; [#uses=1] + %src_arg9 = extractvalue %"byte[]" %src_arg, 1 ; [#uses=1] + %0 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.sret_arg, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg8, i32* %0 + %.sret_arg10.1 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.sret_arg, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg9, i8** %.sret_arg10.1, align 4 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text4Util16__T9LineFructTaZ9LineFruct7opApplyMFDFKAaZiZi(%"tango.text.Util.LineFruct!(char).LineFruct"* nocapture %.this_arg, %"int delegate(ref char[])" %dg_arg) { +entry: + %line = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=7] + %dg_arg70 = extractvalue %"int delegate(ref char[])" %dg_arg, 0 ; [#uses=2] + %dg_arg71 = extractvalue %"int delegate(ref char[])" %dg_arg, 1 ; [#uses=2] + store %"byte[]" zeroinitializer, %"byte[]"* %line, align 8 + br label %whilecond + +whilecond: ; preds = %endif40, %entry + %mark.0 = phi i32 [ 0, %entry ], [ %tmp43, %endif40 ] ; [#uses=7] + %ret.0 = phi i32 [ 0, %entry ], [ %tmp37, %endif40 ] ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.this_arg, i32 0, i32 0 ; <%"byte[]"*> [#uses=1] + %tmp2 = load %"byte[]"* %tmp1 ; <%"byte[]"> [#uses=2] + %source_arg16.i = extractvalue %"byte[]" %tmp2, 0 ; [#uses=3] + %source_arg17.i = extractvalue %"byte[]" %tmp2, 1 ; [#uses=2] + %tmp2.i = icmp ult i32 %source_arg16.i, %mark.0 ; [#uses=1] + %start.0.i = select i1 %tmp2.i, i32 %source_arg16.i, i32 %mark.0 ; [#uses=4] + %tmp7.i = getelementptr i8* %source_arg17.i, i32 %start.0.i ; [#uses=1] + %tmp12.i = sub i32 %source_arg16.i, %start.0.i ; [#uses=2] + %tmp7.sum.i = add i32 %start.0.i, -1 ; [#uses=1] + %tmp2.i.i = getelementptr i8* %source_arg17.i, i32 %tmp7.sum.i ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %whilecond + %len.0.i.i = phi i32 [ %tmp12.i, %whilecond ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %whilecond ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, 10 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp16.i.i = ptrtoint i8* %tmp7.i to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, %tmp16.i.i ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit: ; preds = %if.i.i, %forcond.i.i + %tmp1318.i = phi i32 [ %tmp17.i.i, %if.i.i ], [ %tmp12.i, %forcond.i.i ] ; [#uses=1] + %tmp15.i = add i32 %tmp1318.i, %start.0.i ; [#uses=6] + %tmp7 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.this_arg, i32 0, i32 0, i32 0 ; [#uses=1] + %.len = load i32* %tmp7 ; [#uses=3] + %tmp8 = icmp ult i32 %tmp15.i, %.len ; [#uses=1] + br i1 %tmp8, label %whilebody, label %endwhile + +whilebody: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp11 = icmp eq i32 %tmp15.i, 0 ; [#uses=1] + br i1 %tmp11, label %whilebody.endif_crit_edge, label %andand + +whilebody.endif_crit_edge: ; preds = %whilebody + %tmp25.pre = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.this_arg, i32 0, i32 0, i32 1 ; [#uses=1] + br label %endif + +andand: ; preds = %whilebody + %tmp15 = add i32 %tmp15.i, -1 ; [#uses=2] + %tmp16 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.this_arg, i32 0, i32 0, i32 1 ; [#uses=2] + %.ptr = load i8** %tmp16 ; [#uses=1] + %tmp17 = getelementptr i8* %.ptr, i32 %tmp15 ; [#uses=1] + %tmp18 = load i8* %tmp17 ; [#uses=1] + %tmp20 = icmp eq i8 %tmp18, 13 ; [#uses=1] + %tmp22.tmp4 = select i1 %tmp20, i32 %tmp15, i32 %tmp15.i ; [#uses=1] + br label %endif + +endif: ; preds = %andand, %whilebody.endif_crit_edge + %tmp25.pre-phi = phi i8** [ %tmp25.pre, %whilebody.endif_crit_edge ], [ %tmp16, %andand ] ; [#uses=1] + %end.0 = phi i32 [ %tmp15.i, %whilebody.endif_crit_edge ], [ %tmp22.tmp4, %andand ] ; [#uses=1] + %.ptr26 = load i8** %tmp25.pre-phi ; [#uses=1] + %tmp29 = getelementptr i8* %.ptr26, i32 %mark.0 ; [#uses=1] + %tmp30 = sub i32 %end.0, %mark.0 ; [#uses=1] + %tmp31 = getelementptr %"byte[]"* %line, i32 0, i32 0 ; [#uses=1] + store i32 %tmp30, i32* %tmp31, align 8 + %tmp32 = getelementptr %"byte[]"* %line, i32 0, i32 1 ; [#uses=1] + store i8* %tmp29, i8** %tmp32 + %tmp37 = call fastcc i32 %dg_arg71(i8* %dg_arg70, %"byte[]"* %line) ; [#uses=3] + %tmp38 = icmp eq i32 %tmp37, 0 ; [#uses=1] + br i1 %tmp38, label %endif40, label %if39 + +if39: ; preds = %endif + ret i32 %tmp37 + +endif40: ; preds = %endif + %tmp43 = add i32 %tmp15.i, 1 ; [#uses=1] + br label %whilecond + +endwhile: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp46 = getelementptr %"tango.text.Util.LineFruct!(char).LineFruct"* %.this_arg, i32 0, i32 0, i32 1 ; [#uses=1] + %.ptr47 = load i8** %tmp46 ; [#uses=1] + %tmp51 = getelementptr i8* %.ptr47, i32 %mark.0 ; [#uses=1] + %tmp52 = sub i32 %.len, %mark.0 ; [#uses=1] + %tmp53 = getelementptr %"byte[]"* %line, i32 0, i32 0 ; [#uses=1] + store i32 %tmp52, i32* %tmp53, align 8 + %tmp54 = getelementptr %"byte[]"* %line, i32 0, i32 1 ; [#uses=1] + store i8* %tmp51, i8** %tmp54 + %tmp60 = icmp ugt i32 %mark.0, %.len ; [#uses=1] + br i1 %tmp60, label %endif62, label %if61 + +if61: ; preds = %endwhile + %tmp67 = call fastcc i32 %dg_arg71(i8* %dg_arg70, %"byte[]"* %line) ; [#uses=1] + ret i32 %tmp67 + +endif62: ; preds = %endwhile + ret i32 %ret.0 +} + +define weak_odr fastcc %"byte[]" @_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa(%"byte[]" %output_arg, %"char[][]" %layout_arg) nounwind { +entry: + %output_arg100 = extractvalue %"byte[]" %output_arg, 0 ; [#uses=2] + %output_arg101 = extractvalue %"byte[]" %output_arg, 1 ; [#uses=3] + %layout_arg98 = extractvalue %"char[][]" %layout_arg, 0 ; [#uses=1] + %layout_arg99 = extractvalue %"char[][]" %layout_arg, 1 ; <%"byte[]"*> [#uses=3] + %tmp1 = add i32 %layout_arg98, -1 ; [#uses=1] + %tmp4 = getelementptr %"byte[]"* %layout_arg99, i32 0, i32 0 ; [#uses=1] + %.len5 = load i32* %tmp4 ; [#uses=1] + %tmp6 = getelementptr %"byte[]"* %layout_arg99, i32 0, i32 1 ; [#uses=1] + %.ptr7 = load i8** %tmp6 ; [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %foreachnext, %entry + %foreachkey.0 = phi i32 [ 0, %entry ], [ %tmp87, %foreachnext ] ; [#uses=3] + %state.2 = phi i1 [ false, %entry ], [ %state.1, %foreachnext ] ; [#uses=2] + %pos.1 = phi i32 [ 0, %entry ], [ %pos.0, %foreachnext ] ; [#uses=7] + %tmp9 = icmp ult i32 %foreachkey.0, %.len5 ; [#uses=1] + br i1 %tmp9, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp11 = getelementptr i8* %.ptr7, i32 %foreachkey.0 ; [#uses=1] + %tmp12 = load i8* %tmp11 ; [#uses=4] + br i1 %state.2, label %if, label %else + +if: ; preds = %foreachbody + %tmp12.off = add i8 %tmp12, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp12.off, 9 ; [#uses=1] + br i1 %or.cond, label %endif, label %if20 + +if20: ; preds = %if + %tmp23 = zext i8 %tmp12 to i32 ; [#uses=2] + %tmp24 = add i32 %tmp23, -48 ; [#uses=1] + %tmp27 = icmp ult i32 %tmp24, %tmp1 ; [#uses=1] + br i1 %tmp27, label %if28, label %else30 + +if28: ; preds = %if20 + %tmp32 = add i32 %tmp23, -47 ; [#uses=1] + %tmp35 = getelementptr %"byte[]"* %layout_arg99, i32 %tmp32 ; <%"byte[]"*> [#uses=1] + %tmp36 = load %"byte[]"* %tmp35 ; <%"byte[]"> [#uses=2] + %tmp3696 = extractvalue %"byte[]" %tmp36, 0 ; [#uses=2] + %tmp40 = add i32 %pos.1, %tmp3696 ; [#uses=2] + %tmp44 = icmp ult i32 %tmp40, %output_arg100 ; [#uses=1] + br i1 %tmp44, label %if45, label %else47 + +if45: ; preds = %if28 + %tmp3697 = extractvalue %"byte[]" %tmp36, 1 ; [#uses=1] + %tmp52 = getelementptr i8* %output_arg101, i32 %pos.1 ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp52, i8* %tmp3697, i32 %tmp3696, i32 1) + br label %foreachnext + +else47: ; preds = %if28 + %tmp61 = load %"byte[]"* @_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa8toosmallAa, align 8 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp61 + +else30: ; preds = %if20 + %tmp62 = load %"byte[]"* @_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa6badargAa, align 8 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp62 + +else: ; preds = %foreachbody + %tmp66 = icmp eq i8 %tmp12, 37 ; [#uses=1] + br i1 %tmp66, label %foreachnext, label %endif + +endif: ; preds = %else, %if + %state.0 = phi i1 [ false, %if ], [ %state.2, %else ] ; [#uses=1] + %tmp73 = icmp ult i32 %pos.1, %output_arg100 ; [#uses=1] + br i1 %tmp73, label %if74, label %else76 + +if74: ; preds = %endif + %tmp80 = getelementptr i8* %output_arg101, i32 %pos.1 ; [#uses=1] + store i8 %tmp12, i8* %tmp80 + %tmp83 = add i32 %pos.1, 1 ; [#uses=1] + br label %foreachnext + +else76: ; preds = %endif + %tmp84 = load %"byte[]"* @_D5tango4text4Util13__T6layoutTaZ6layoutFAaAAaXAa8toosmallAa, align 8 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp84 + +foreachnext: ; preds = %if74, %else, %if45 + %state.1 = phi i1 [ false, %if45 ], [ %state.0, %if74 ], [ true, %else ] ; [#uses=1] + %pos.0 = phi i32 [ %tmp40, %if45 ], [ %tmp83, %if74 ], [ %pos.1, %else ] ; [#uses=1] + %tmp87 = add i32 %foreachkey.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + %tmp93 = insertvalue %"byte[]" undef, i32 %pos.1, 0 ; <%"byte[]"> [#uses=1] + %tmp94 = insertvalue %"byte[]" %tmp93, i8* %output_arg101, 1 ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp94 +} + +define weak_odr fastcc %"byte[]" @_D5tango4text7convert7Integer15__T6formatTaTiZ6formatFAaiAaZAa(%"byte[]" %dst_arg, i32 %i_arg, %"byte[]" %fmt_arg) { +entry: + %tmp2 = sext i32 %i_arg to i64 ; [#uses=1] + %fmt_arg41.i.i = extractvalue %"byte[]" %fmt_arg, 0 ; [#uses=3] + %fmt_arg42.i.i = extractvalue %"byte[]" %fmt_arg, 1 ; [#uses=2] + %tmp1.i.i = icmp eq i32 %fmt_arg41.i.i, 0 ; [#uses=1] + br i1 %tmp1.i.i, label %_D5tango4text7convert7Integer13__T6formatTaZ6formatFAalAaZAa.exit, label %else.i.i + +else.i.i: ; preds = %entry + %tmp4.i.i = load i8* %fmt_arg42.i.i ; [#uses=2] + %tmp7.i.i = icmp ugt i32 %fmt_arg41.i.i, 1 ; [#uses=1] + br i1 %tmp7.i.i, label %forcond.i.i, label %_D5tango4text7convert7Integer13__T6formatTaZ6formatFAalAaZAa.exit + +forcond.i.i: ; preds = %forinc.i.i, %else.i.i + %width.1.i = phi i32 [ 0, %else.i.i ], [ %width.0.i, %forinc.i.i ] ; [#uses=3] + %pre.1.i = phi i8 [ -1, %else.i.i ], [ %pre.0.i, %forinc.i.i ] ; [#uses=2] + %j.0.i.i = phi i32 [ %tmp38.i.i, %forinc.i.i ], [ 1, %else.i.i ] ; [#uses=2] + %fmt_arg42.pn.i.i = phi i8* [ %p.0.i.i, %forinc.i.i ], [ %fmt_arg42.i.i, %else.i.i ] ; [#uses=1] + %p.0.i.i = getelementptr i8* %fmt_arg42.pn.i.i, i32 1 ; [#uses=2] + %tmp16.i.i = icmp ult i32 %j.0.i.i, %fmt_arg41.i.i ; [#uses=1] + br i1 %tmp16.i.i, label %forbody.i.i, label %_D5tango4text7convert7Integer13__T6formatTaZ6formatFAalAaZAa.exit + +forbody.i.i: ; preds = %forcond.i.i + %tmp18.i.i = load i8* %p.0.i.i ; [#uses=3] + %tmp18.i.i.off = add i8 %tmp18.i.i, -48 ; [#uses=1] + %or.cond = icmp ugt i8 %tmp18.i.i.off, 9 ; [#uses=1] + br i1 %or.cond, label %forinc.i.i, label %if25.i.i + +if25.i.i: ; preds = %forbody.i.i + %tmp29.i.i = mul i32 %width.1.i, 10 ; [#uses=1] + %tmp32.i.i = zext i8 %tmp18.i.i to i32 ; [#uses=1] + %tmp33.i.i = add i32 %tmp32.i.i, -48 ; [#uses=1] + %tmp34.i.i = add i32 %tmp29.i.i, %tmp33.i.i ; [#uses=1] + br label %forinc.i.i + +forinc.i.i: ; preds = %if25.i.i, %forbody.i.i + %width.0.i = phi i32 [ %tmp34.i.i, %if25.i.i ], [ %width.1.i, %forbody.i.i ] ; [#uses=1] + %pre.0.i = phi i8 [ %pre.1.i, %if25.i.i ], [ %tmp18.i.i, %forbody.i.i ] ; [#uses=1] + %tmp38.i.i = add i32 %j.0.i.i, 1 ; [#uses=1] + br label %forcond.i.i + +_D5tango4text7convert7Integer13__T6formatTaZ6formatFAalAaZAa.exit: ; preds = %forcond.i.i, %else.i.i, %entry + %width.3.i = phi i32 [ 0, %entry ], [ %width.1.i, %forcond.i.i ], [ 0, %else.i.i ] ; [#uses=1] + %type.0.i = phi i8 [ 100, %entry ], [ %tmp4.i.i, %forcond.i.i ], [ %tmp4.i.i, %else.i.i ] ; [#uses=1] + %pre.3.i = phi i8 [ -1, %entry ], [ %pre.1.i, %forcond.i.i ], [ -1, %else.i.i ] ; [#uses=1] + %tmp6.i = call fastcc %"byte[]" @_D5tango4text7convert7Integer16__T9formatterTaZ9formatterFAalaaiZAa(%"byte[]" %dst_arg, i64 %tmp2, i8 %type.0.i, i8 %pre.3.i, i32 %width.3.i) ; <%"byte[]"> [#uses=1] + ret %"byte[]" %tmp6.i +} + +define weak_odr fastcc i32 @_D5tango4core5Array14__T4findTAaTaZ4findFAaaZk(%"byte[]" %buf_arg, i8 %pat_arg) nounwind readonly { +entry: + %buf_arg16.i = extractvalue %"byte[]" %buf_arg, 0 ; [#uses=2] + %buf_arg17.i = extractvalue %"byte[]" %buf_arg, 1 ; [#uses=1] + br label %foreachcond.i + +foreachcond.i: ; preds = %foreachnext.i, %entry + %pos.0.i = phi i32 [ 0, %entry ], [ %tmp12.i, %foreachnext.i ] ; [#uses=4] + %tmp3.i = icmp ult i32 %pos.0.i, %buf_arg16.i ; [#uses=1] + br i1 %tmp3.i, label %foreachbody.i, label %_D5tango4core5Array12__T5find_TaZ2fnFAaaS5tango4core5Array14__T7IsEqualTaZ7IsEqualZk.exit + +foreachbody.i: ; preds = %foreachcond.i + %tmp5.i = getelementptr i8* %buf_arg17.i, i32 %pos.0.i ; [#uses=1] + %tmp6.i = load i8* %tmp5.i ; [#uses=1] + %tmp4.i.i = icmp eq i8 %tmp6.i, %pat_arg ; [#uses=1] + br i1 %tmp4.i.i, label %_D5tango4core5Array12__T5find_TaZ2fnFAaaS5tango4core5Array14__T7IsEqualTaZ7IsEqualZk.exit, label %foreachnext.i + +foreachnext.i: ; preds = %foreachbody.i + %tmp12.i = add i32 %pos.0.i, 1 ; [#uses=1] + br label %foreachcond.i + +_D5tango4core5Array12__T5find_TaZ2fnFAaaS5tango4core5Array14__T7IsEqualTaZ7IsEqualZk.exit: ; preds = %foreachbody.i, %foreachcond.i + %tmp23 = phi i32 [ %pos.0.i, %foreachbody.i ], [ %buf_arg16.i, %foreachcond.i ] ; [#uses=1] + ret i32 %tmp23 +} + +define weak_odr fastcc i1 @_D5tango4core5Array14__T7IsEqualTaZ7IsEqual6opCallFaaZb(i8 %p1_arg, i8 %p2_arg) nounwind readnone { +entry: + %tmp4 = icmp eq i8 %p1_arg, %p2_arg ; [#uses=1] + ret i1 %tmp4 +} + +define weak_odr fastcc i32 @_D5tango4core5Array12__T5find_TaZ2fnFAaaS5tango4core5Array14__T7IsEqualTaZ7IsEqualZk(%"byte[]" %buf_arg, i8 %pat_arg, %"tango.core.Array.IsEqual!(char).IsEqual"* nocapture byval %pred_arg) nounwind readonly { +entry: + %buf_arg16 = extractvalue %"byte[]" %buf_arg, 0 ; [#uses=2] + %buf_arg17 = extractvalue %"byte[]" %buf_arg, 1 ; [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %foreachnext, %entry + %pos.0 = phi i32 [ 0, %entry ], [ %tmp12, %foreachnext ] ; [#uses=4] + %tmp3 = icmp ult i32 %pos.0, %buf_arg16 ; [#uses=1] + br i1 %tmp3, label %foreachbody, label %foreachend + +foreachbody: ; preds = %foreachcond + %tmp5 = getelementptr i8* %buf_arg17, i32 %pos.0 ; [#uses=1] + %tmp6 = load i8* %tmp5 ; [#uses=1] + %tmp4.i = icmp eq i8 %tmp6, %pat_arg ; [#uses=1] + br i1 %tmp4.i, label %if, label %foreachnext + +if: ; preds = %foreachbody + ret i32 %pos.0 + +foreachnext: ; preds = %foreachbody + %tmp12 = add i32 %pos.0, 1 ; [#uses=1] + br label %foreachcond + +foreachend: ; preds = %foreachcond + ret i32 %buf_arg16 +} + +define weak_odr fastcc i32 @_D5tango4core5Array12__T5find_TaZ2fnFAaAaS5tango4core5Array14__T7IsEqualTaZ7IsEqualZk(%"byte[]" %buf_arg, %"byte[]" %pat_arg, %"tango.core.Array.IsEqual!(char).IsEqual"* nocapture byval %pred_arg) nounwind readonly { +entry: + %buf_arg80 = extractvalue %"byte[]" %buf_arg, 0 ; [#uses=7] + %buf_arg81 = extractvalue %"byte[]" %buf_arg, 1 ; [#uses=2] + %pat_arg78 = extractvalue %"byte[]" %pat_arg, 0 ; [#uses=5] + %pat_arg79 = extractvalue %"byte[]" %pat_arg, 1 ; [#uses=2] + %tmp1 = icmp eq i32 %buf_arg80, 0 ; [#uses=1] + %tmp4 = icmp eq i32 %pat_arg78, 0 ; [#uses=1] + %or.cond = or i1 %tmp1, %tmp4 ; [#uses=1] + %tmp11 = icmp ult i32 %buf_arg80, %pat_arg78 ; [#uses=1] + %or.cond82 = or i1 %or.cond, %tmp11 ; [#uses=1] + br i1 %or.cond82, label %if, label %endif + +if: ; preds = %entry + ret i32 %buf_arg80 + +endif: ; preds = %entry + %tmp19 = sub i32 %buf_arg80, %pat_arg78 ; [#uses=1] + %tmp20 = add i32 %tmp19, 1 ; [#uses=1] + br label %forcond + +forcond: ; preds = %forinc, %endif + %pos.2 = phi i32 [ 0, %endif ], [ %tmp73, %forinc ] ; [#uses=4] + %tmp23 = icmp ult i32 %pos.2, %tmp20 ; [#uses=1] + br i1 %tmp23, label %forbody, label %endfor + +forbody: ; preds = %forcond + %tmp26 = getelementptr i8* %buf_arg81, i32 %pos.2 ; [#uses=1] + %tmp27 = load i8* %tmp26 ; [#uses=1] + %tmp31 = load i8* %pat_arg79 ; [#uses=1] + %tmp4.i = icmp eq i8 %tmp27, %tmp31 ; [#uses=1] + br i1 %tmp4.i, label %dowhile, label %forinc + +dowhile: ; preds = %dowhilecond, %forbody + %pos.0 = phi i32 [ %tmp49, %dowhilecond ], [ %pos.2, %forbody ] ; [#uses=2] + %mat.0 = phi i32 [ %tmp36, %dowhilecond ], [ 0, %forbody ] ; [#uses=1] + %tmp36 = add i32 %mat.0, 1 ; [#uses=4] + %tmp39 = icmp ult i32 %tmp36, %pat_arg78 ; [#uses=1] + br i1 %tmp39, label %endif41, label %if40 + +if40: ; preds = %dowhile + %tmp45 = sub i32 %pos.0, %pat_arg78 ; [#uses=1] + %tmp46 = add i32 %tmp45, 1 ; [#uses=1] + ret i32 %tmp46 + +endif41: ; preds = %dowhile + %tmp49 = add i32 %pos.0, 1 ; [#uses=4] + %tmp52 = icmp ult i32 %tmp49, %buf_arg80 ; [#uses=1] + br i1 %tmp52, label %dowhilecond, label %if53 + +if53: ; preds = %endif41 + ret i32 %buf_arg80 + +dowhilecond: ; preds = %endif41 + %tmp61 = getelementptr i8* %buf_arg81, i32 %tmp49 ; [#uses=1] + %tmp62 = load i8* %tmp61 ; [#uses=1] + %tmp66 = getelementptr i8* %pat_arg79, i32 %tmp36 ; [#uses=1] + %tmp67 = load i8* %tmp66 ; [#uses=1] + %tmp4.i83 = icmp eq i8 %tmp62, %tmp67 ; [#uses=1] + br i1 %tmp4.i83, label %dowhile, label %enddowhile + +enddowhile: ; preds = %dowhilecond + %tmp71 = sub i32 %tmp49, %tmp36 ; [#uses=1] + br label %forinc + +forinc: ; preds = %enddowhile, %forbody + %pos.1 = phi i32 [ %tmp71, %enddowhile ], [ %pos.2, %forbody ] ; [#uses=1] + %tmp73 = add i32 %pos.1, 1 ; [#uses=1] + br label %forcond + +endfor: ; preds = %forcond + ret i32 %buf_arg80 +} + +define weak_odr fastcc i1 @_D5tango4text4Util15__T8containsTaZ8containsFAaaZb(%"byte[]" %source_arg, i8 %match_arg) nounwind readonly { +entry: + %source_arg7 = extractvalue %"byte[]" %source_arg, 0 ; [#uses=3] + %source_arg8 = extractvalue %"byte[]" %source_arg, 1 ; [#uses=2] + %tmp2.i = getelementptr i8* %source_arg8, i32 -1 ; [#uses=1] + br label %forcond.i + +forcond.i: ; preds = %forbody.i, %entry + %len.0.i = phi i32 [ %source_arg7, %entry ], [ %tmp4.i, %forbody.i ] ; [#uses=2] + %p.0.i = phi i8* [ %tmp2.i, %entry ], [ %tmp7.i, %forbody.i ] ; [#uses=1] + %tmp4.i = add i32 %len.0.i, -1 ; [#uses=1] + %tmp5.i = icmp eq i32 %len.0.i, 0 ; [#uses=1] + br i1 %tmp5.i, label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit, label %forbody.i + +forbody.i: ; preds = %forcond.i + %tmp7.i = getelementptr i8* %p.0.i, i32 1 ; [#uses=3] + %tmp8.i = load i8* %tmp7.i ; [#uses=1] + %tmp12.i = icmp eq i8 %tmp8.i, %match_arg ; [#uses=1] + br i1 %tmp12.i, label %if.i, label %forcond.i + +if.i: ; preds = %forbody.i + %tmp15.i = ptrtoint i8* %tmp7.i to i32 ; [#uses=1] + %tmp16.i = ptrtoint i8* %source_arg8 to i32 ; [#uses=1] + %tmp17.i = sub i32 %tmp15.i, %tmp16.i ; [#uses=1] + br label %_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit + +_D5tango4text4Util14__T7indexOfTaZ7indexOfFPaakZk.exit: ; preds = %if.i, %forcond.i + %tmp39 = phi i32 [ %tmp17.i, %if.i ], [ %source_arg7, %forcond.i ] ; [#uses=1] + %tmp6 = icmp ne i32 %tmp39, %source_arg7 ; [#uses=1] + ret i1 %tmp6 +} + +define weak_odr fastcc i32 @_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi(%"byte[]" %src_arg, %tango.time.Time.Time* nocapture %value_arg) { +entry: + %.frame = alloca %nest.dostime, align 8 ; <%nest.dostime*> [#uses=6] + %tod = alloca %tango.time.Time.TimeOfDay, align 4 ; <%tango.time.Time.TimeOfDay*> [#uses=4] + %.rettmp = alloca %tango.time.Time.Time, align 8 ; <%tango.time.Time.Time*> [#uses=2] + %src_arg97 = extractvalue %"byte[]" %src_arg, 1 ; [#uses=3] + %date = getelementptr %nest.dostime* %.frame, i32 0, i32 0 ; <%tango.time.Time.Date*> [#uses=1] + %tmp = bitcast %tango.time.Time.TimeOfDay* %tod to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp, i8 0, i32 16, i32 4) + %tmp1 = bitcast %nest.dostime* %.frame to i8* ; [#uses=1] + call void @llvm.memset.i32(i8* %tmp1, i8 0, i32 24, i32 8) + %tmp1.i125 = getelementptr %nest.dostime* %.frame, i32 0, i32 0, i32 3 ; [#uses=1] + br label %whilecond.i.i + +whilecond.i.i: ; preds = %whilebody.i.i, %entry + %p.1 = phi i8* [ %src_arg97, %entry ], [ %tmp11.i.i, %whilebody.i.i ] ; [#uses=3] + %tmp10.i.i = phi i8* [ %tmp11.i.i, %whilebody.i.i ], [ %src_arg97, %entry ] ; [#uses=3] + %value.0.i.i = phi i32 [ 0, %entry ], [ %tmp15.i.i, %whilebody.i.i ] ; [#uses=3] + %tmp1.i.i = load i8* %tmp10.i.i ; [#uses=1] + %tmp1.i.off.i = add i8 %tmp1.i.i, -48 ; [#uses=1] + %or.cond.i = icmp ult i8 %tmp1.i.off.i, 10 ; [#uses=1] + br i1 %or.cond.i, label %whilebody.i.i, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit.i + +whilebody.i.i: ; preds = %whilecond.i.i + %tmp9.i.i = mul i32 %value.0.i.i, 10 ; [#uses=1] + %tmp11.i.i = getelementptr i8* %tmp10.i.i, i32 1 ; [#uses=2] + %tmp12.i.i = load i8* %tmp10.i.i ; [#uses=1] + %tmp13.i.i = zext i8 %tmp12.i.i to i32 ; [#uses=1] + %tmp14.i.i = add i32 %tmp9.i.i, %tmp13.i.i ; [#uses=1] + %tmp15.i.i = add i32 %tmp14.i.i, -48 ; [#uses=1] + br label %whilecond.i.i + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit.i: ; preds = %whilecond.i.i + store i32 %value.0.i.i, i32* %tmp1.i125 + %tmp3.i126 = icmp eq i32 %value.0.i.i, 0 ; [#uses=1] + br i1 %tmp3.i126, label %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit, label %andand.i127 + +andand.i127: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit.i + %tmp5.i = getelementptr i8* %p.1, i32 1 ; [#uses=3] + %tmp6.i = load i8* %p.1 ; [#uses=1] + %tmp8.i = icmp eq i8 %tmp6.i, 45 ; [#uses=1] + br i1 %tmp8.i, label %andand9.i, label %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit + +andand9.i: ; preds = %andand.i127 + %tmp13.i128 = getelementptr %nest.dostime* %.frame, i32 0, i32 0, i32 1 ; [#uses=1] + br label %whilecond.i58.i + +whilecond.i58.i: ; preds = %whilebody.i65.i, %andand9.i + %p.4 = phi i8* [ %tmp5.i, %andand9.i ], [ %tmp11.i60.i, %whilebody.i65.i ] ; [#uses=3] + %tmp10.i54.i = phi i8* [ %tmp11.i60.i, %whilebody.i65.i ], [ %tmp5.i, %andand9.i ] ; [#uses=3] + %value.0.i55.i = phi i32 [ 0, %andand9.i ], [ %tmp15.i64.i, %whilebody.i65.i ] ; [#uses=3] + %tmp1.i56.i = load i8* %tmp10.i54.i ; [#uses=1] + %tmp1.i56.off.i = add i8 %tmp1.i56.i, -48 ; [#uses=1] + %or.cond72.i = icmp ult i8 %tmp1.i56.off.i, 10 ; [#uses=1] + br i1 %or.cond72.i, label %whilebody.i65.i, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70.i + +whilebody.i65.i: ; preds = %whilecond.i58.i + %tmp9.i59.i = mul i32 %value.0.i55.i, 10 ; [#uses=1] + %tmp11.i60.i = getelementptr i8* %tmp10.i54.i, i32 1 ; [#uses=2] + %tmp12.i61.i = load i8* %tmp10.i54.i ; [#uses=1] + %tmp13.i62.i = zext i8 %tmp12.i61.i to i32 ; [#uses=1] + %tmp14.i63.i = add i32 %tmp9.i59.i, %tmp13.i62.i ; [#uses=1] + %tmp15.i64.i = add i32 %tmp14.i63.i, -48 ; [#uses=1] + br label %whilecond.i58.i + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70.i: ; preds = %whilecond.i58.i + store i32 %value.0.i55.i, i32* %tmp13.i128 + %tmp15.i129 = icmp eq i32 %value.0.i55.i, 0 ; [#uses=1] + br i1 %tmp15.i129, label %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit, label %andand16.i + +andand16.i: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70.i + %tmp19.i = getelementptr i8* %p.4, i32 1 ; [#uses=3] + %tmp20.i = load i8* %p.4 ; [#uses=1] + %tmp22.i = icmp eq i8 %tmp20.i, 45 ; [#uses=1] + br i1 %tmp22.i, label %andand23.i, label %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit + +andand23.i: ; preds = %andand16.i + %tmp27.i = getelementptr %nest.dostime* %.frame, i32 0, i32 0, i32 2 ; [#uses=1] + br label %whilecond.i39.i + +whilecond.i39.i: ; preds = %whilebody.i46.i, %andand23.i + %p.5 = phi i8* [ %tmp19.i, %andand23.i ], [ %tmp11.i41.i, %whilebody.i46.i ] ; [#uses=1] + %tmp10.i35.i = phi i8* [ %tmp11.i41.i, %whilebody.i46.i ], [ %tmp19.i, %andand23.i ] ; [#uses=3] + %value.0.i36.i = phi i32 [ 0, %andand23.i ], [ %tmp15.i45.i, %whilebody.i46.i ] ; [#uses=2] + %tmp1.i37.i = load i8* %tmp10.i35.i ; [#uses=1] + %tmp1.i37.off.i = add i8 %tmp1.i37.i, -48 ; [#uses=1] + %or.cond73.i = icmp ult i8 %tmp1.i37.off.i, 10 ; [#uses=1] + br i1 %or.cond73.i, label %whilebody.i46.i, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit51.i + +whilebody.i46.i: ; preds = %whilecond.i39.i + %tmp9.i40.i = mul i32 %value.0.i36.i, 10 ; [#uses=1] + %tmp11.i41.i = getelementptr i8* %tmp10.i35.i, i32 1 ; [#uses=2] + %tmp12.i42.i = load i8* %tmp10.i35.i ; [#uses=1] + %tmp13.i43.i = zext i8 %tmp12.i42.i to i32 ; [#uses=1] + %tmp14.i44.i = add i32 %tmp9.i40.i, %tmp13.i43.i ; [#uses=1] + %tmp15.i45.i = add i32 %tmp14.i44.i, -48 ; [#uses=1] + br label %whilecond.i39.i + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit51.i: ; preds = %whilecond.i39.i + store i32 %value.0.i36.i, i32* %tmp27.i, align 8 + br label %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit + +_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit51.i, %andand16.i, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70.i, %andand.i127, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit.i + %p.3 = phi i8* [ %p.5, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit51.i ], [ %p.1, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit.i ], [ %p.4, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70.i ], [ %tmp19.i, %andand16.i ], [ %tmp5.i, %andand.i127 ] ; [#uses=2] + %tmp8 = getelementptr i8* %p.3, i32 1 ; [#uses=2] + %tmp9 = load i8* %p.3 ; [#uses=1] + %tmp11 = icmp eq i8 %tmp9, 32 ; [#uses=1] + br i1 %tmp11, label %andand12, label %endif + +andand12: ; preds = %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit + %tmp14 = getelementptr %tango.time.Time.TimeOfDay* %tod, i32 0, i32 0 ; [#uses=2] + br label %whilecond.i + +whilecond.i: ; preds = %whilebody.i, %andand12 + %tmp20 = phi i8* [ %tmp11.i, %whilebody.i ], [ %tmp8, %andand12 ] ; [#uses=2] + %tmp10.i = phi i8* [ %tmp11.i, %whilebody.i ], [ %tmp8, %andand12 ] ; [#uses=3] + %tmp51 = phi i32 [ 0, %andand12 ], [ %tmp15.i, %whilebody.i ] ; [#uses=4] + %tmp1.i = load i8* %tmp10.i ; [#uses=1] + %tmp1.i.off = add i8 %tmp1.i, -48 ; [#uses=1] + %or.cond = icmp ult i8 %tmp1.i.off, 10 ; [#uses=1] + br i1 %or.cond, label %whilebody.i, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit + +whilebody.i: ; preds = %whilecond.i + %tmp9.i = mul i32 %tmp51, 10 ; [#uses=1] + %tmp11.i = getelementptr i8* %tmp10.i, i32 1 ; [#uses=2] + %tmp12.i = load i8* %tmp10.i ; [#uses=1] + %tmp13.i = zext i8 %tmp12.i to i32 ; [#uses=1] + %tmp14.i = add i32 %tmp9.i, %tmp13.i ; [#uses=1] + %tmp15.i = add i32 %tmp14.i, -48 ; [#uses=1] + br label %whilecond.i + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit: ; preds = %whilecond.i + store i32 %tmp51, i32* %tmp14 + %tmp16 = icmp eq i32 %tmp51, 0 ; [#uses=1] + br i1 %tmp16, label %endif, label %andand18 + +andand18: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit + %tmp21 = getelementptr i8* %tmp20, i32 1 ; [#uses=3] + %tmp22 = load i8* %tmp20 ; [#uses=1] + %tmp24 = icmp eq i8 %tmp22, 58 ; [#uses=1] + br i1 %tmp24, label %andand26, label %endif + +andand26: ; preds = %andand18 + %tmp28 = getelementptr %tango.time.Time.TimeOfDay* %tod, i32 0, i32 1 ; [#uses=1] + br label %whilecond.i107 + +whilecond.i107: ; preds = %whilebody.i114, %andand26 + %p.0 = phi i8* [ %tmp21, %andand26 ], [ %tmp11.i109, %whilebody.i114 ] ; [#uses=1] + %tmp34 = phi i8* [ %tmp11.i109, %whilebody.i114 ], [ %tmp21, %andand26 ] ; [#uses=1] + %tmp10.i103 = phi i8* [ %tmp11.i109, %whilebody.i114 ], [ %tmp21, %andand26 ] ; [#uses=3] + %value.0.i104 = phi i32 [ 0, %andand26 ], [ %tmp15.i113, %whilebody.i114 ] ; [#uses=3] + %tmp1.i105 = load i8* %tmp10.i103 ; [#uses=1] + %tmp1.i105.off = add i8 %tmp1.i105, -48 ; [#uses=1] + %or.cond130 = icmp ult i8 %tmp1.i105.off, 10 ; [#uses=1] + br i1 %or.cond130, label %whilebody.i114, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit119 + +whilebody.i114: ; preds = %whilecond.i107 + %tmp9.i108 = mul i32 %value.0.i104, 10 ; [#uses=1] + %tmp11.i109 = getelementptr i8* %tmp10.i103, i32 1 ; [#uses=3] + %tmp12.i110 = load i8* %tmp10.i103 ; [#uses=1] + %tmp13.i111 = zext i8 %tmp12.i110 to i32 ; [#uses=1] + %tmp14.i112 = add i32 %tmp9.i108, %tmp13.i111 ; [#uses=1] + %tmp15.i113 = add i32 %tmp14.i112, -48 ; [#uses=1] + br label %whilecond.i107 + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit119: ; preds = %whilecond.i107 + store i32 %value.0.i104, i32* %tmp28 + %tmp30 = icmp eq i32 %value.0.i104, 0 ; [#uses=1] + br i1 %tmp30, label %endif, label %andand32 + +andand32: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit119 + %tmp35 = load i8* %tmp34 ; [#uses=1] + switch i8 %tmp35, label %endif [ + i8 80, label %if47 + i8 65, label %endif48 + ] + +if47: ; preds = %andand32 + %tmp52 = add i32 %tmp51, 12 ; [#uses=1] + store i32 %tmp52, i32* %tmp14 + br label %endif48 + +endif48: ; preds = %if47, %andand32 + %tmp53 = getelementptr %nest.dostime* %.frame, i32 0, i32 0, i32 2 ; [#uses=3] + %tmp54 = load i32* %tmp53, align 8 ; [#uses=4] + %tmp55 = icmp ult i32 %tmp54, 70 ; [#uses=1] + br i1 %tmp55, label %if56, label %else + +if56: ; preds = %endif48 + %tmp61 = add i32 %tmp54, 2000 ; [#uses=1] + store i32 %tmp61, i32* %tmp53, align 8 + br label %endif57 + +else: ; preds = %endif48 + %tmp64 = icmp ult i32 %tmp54, 100 ; [#uses=1] + br i1 %tmp64, label %if65, label %endif57 + +if65: ; preds = %else + %tmp70 = add i32 %tmp54, 1900 ; [#uses=1] + store i32 %tmp70, i32* %tmp53, align 8 + br label %endif57 + +endif57: ; preds = %if65, %else, %if56 + %0 = load %tango.time.chrono.Gregorian.Gregorian** @_D5tango4time6chrono9Gregorian9Gregorian7genericC5tango4time6chrono9Gregorian9Gregorian ; <%tango.time.chrono.Gregorian.Gregorian*> [#uses=2] + %tmp71 = bitcast %tango.time.chrono.Gregorian.Gregorian* %0 to %tango.time.chrono.Calendar.Calendar* ; <%tango.time.chrono.Calendar.Calendar*> [#uses=1] + %tmp72 = bitcast %tango.time.chrono.Gregorian.Gregorian* %0 to %tango.time.chrono.Calendar.Calendar.__vtbl** ; <%tango.time.chrono.Calendar.Calendar.__vtbl**> [#uses=1] + %tmp73 = load %tango.time.chrono.Calendar.Calendar.__vtbl** %tmp72 ; <%tango.time.chrono.Calendar.Calendar.__vtbl*> [#uses=1] + %"generic.toTime@vtbl" = getelementptr %tango.time.chrono.Calendar.Calendar.__vtbl* %tmp73, i32 0, i32 10 ; [#uses=1] + %generic.toTime = load void (%tango.time.Time.Time*, %tango.time.chrono.Calendar.Calendar*, %tango.time.Time.Date*, %tango.time.Time.TimeOfDay*)** %"generic.toTime@vtbl", align 4 ; [#uses=1] + call fastcc void %generic.toTime(%tango.time.Time.Time* noalias nocapture sret %.rettmp, %tango.time.chrono.Calendar.Calendar* %tmp71, %tango.time.Time.Date* byval %date, %tango.time.Time.TimeOfDay* byval %tod) + %tmp7698 = getelementptr %tango.time.Time.Time* %.rettmp, i32 0, i32 0 ; [#uses=1] + %tmp100 = load i64* %tmp7698, align 8 ; [#uses=1] + %1 = getelementptr %tango.time.Time.Time* %value_arg, i32 0, i32 0 ; [#uses=1] + store i64 %tmp100, i64* %1 + %tmp78 = getelementptr i8* %p.0, i32 2 ; [#uses=1] + %tmp81 = ptrtoint i8* %tmp78 to i32 ; [#uses=1] + %tmp82 = ptrtoint i8* %src_arg97 to i32 ; [#uses=1] + %tmp83 = sub i32 %tmp81, %tmp82 ; [#uses=1] + ret i32 %tmp83 + +endif: ; preds = %andand32, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit119, %andand18, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit, %_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb.exit + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi(i8** nocapture %p_arg) nounwind { +entry: + %tmp.pre = load i8** %p_arg ; [#uses=1] + br label %whilecond + +whilecond: ; preds = %whilebody, %entry + %tmp10 = phi i8* [ %tmp11, %whilebody ], [ %tmp.pre, %entry ] ; [#uses=3] + %value.0 = phi i32 [ 0, %entry ], [ %tmp15, %whilebody ] ; [#uses=3] + %tmp1 = load i8* %tmp10 ; [#uses=2] + %tmp3 = icmp ult i8 %tmp1, 48 ; [#uses=1] + br i1 %tmp3, label %endwhile.critedge, label %andand + +whilebody: ; preds = %andand + %tmp9 = mul i32 %value.0, 10 ; [#uses=1] + %tmp11 = getelementptr i8* %tmp10, i32 1 ; [#uses=2] + store i8* %tmp11, i8** %p_arg + %tmp12 = load i8* %tmp10 ; [#uses=1] + %tmp13 = zext i8 %tmp12 to i32 ; [#uses=1] + %tmp14 = add i32 %tmp9, %tmp13 ; [#uses=1] + %tmp15 = add i32 %tmp14, -48 ; [#uses=1] + br label %whilecond + +andand: ; preds = %whilecond + %tmp7 = icmp ult i8 %tmp1, 58 ; [#uses=1] + br i1 %tmp7, label %whilebody, label %endwhile + +endwhile.critedge: ; preds = %whilecond + ret i32 %value.0 + +endwhile: ; preds = %andand + ret i32 %value.0 +} + +define weak_odr fastcc %"char[][]" @_D5tango4text4Util14__T7delimitTaZ7delimitFAaAaZAAa(%"byte[]" %src_arg, %"byte[]" %set_arg) { +entry: + %.frame = alloca %nest.delimit, align 8 ; <%nest.delimit*> [#uses=2] + %.rettmp = alloca %tango.net.ftp.FtpClient.FtpFeature, align 8 ; <%tango.net.ftp.FtpClient.FtpFeature*> [#uses=5] + %result = getelementptr %nest.delimit* %.frame, i32 0, i32 0 ; <%"char[][]"*> [#uses=2] + store %"char[][]" zeroinitializer, %"char[][]"* %result, align 8 + %set_arg13.i = extractvalue %"byte[]" %set_arg, 0 ; [#uses=1] + %set_arg14.i = extractvalue %"byte[]" %set_arg, 1 ; [#uses=1] + %src_arg16.i = extractvalue %"byte[]" %src_arg, 0 ; [#uses=1] + %src_arg17.i = extractvalue %"byte[]" %src_arg, 1 ; [#uses=1] + %0 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg16.i, i32* %0, align 8 + %.sret_arg18.1.i = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg17.i, i8** %.sret_arg18.1.i, align 4 + %.sret_arg.1.0.i = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %set_arg13.i, i32* %.sret_arg.1.0.i, align 8 + %.sret_arg.1.1.i = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.rettmp, i32 0, i32 1, i32 1 ; [#uses=1] + store i8* %set_arg14.i, i8** %.sret_arg.1.1.i, align 4 + %tmp2 = bitcast %nest.delimit* %.frame to i8* ; [#uses=1] + %tmp3 = insertvalue %"int delegate(ref char[])" undef, i8* %tmp2, 0 ; <%"int delegate(ref char[])"> [#uses=1] + %.func = insertvalue %"int delegate(ref char[])" %tmp3, i32 (i8*, %"byte[]"*)* @_D5tango4text4Util14__T7delimitTaZ7delimitFAaAaZAAa15__foreachbody43MFKAaZi, 1 ; <%"int delegate(ref char[])"> [#uses=1] + %tmp4 = call fastcc i32 @_D5tango4text4Util18__T10DelimFructTaZ10DelimFruct7opApplyMFDFKAaZiZi(%tango.net.ftp.FtpClient.FtpFeature* %.rettmp, %"int delegate(ref char[])" %.func) ; [#uses=0] + %tmp5 = load %"char[][]"* %result, align 8 ; <%"char[][]"> [#uses=1] + ret %"char[][]" %tmp5 +} + +define weak_odr fastcc void @_D5tango4text4Util18__T10delimitersTaZ10delimitersFAaAaZS5tango4text4Util18__T10DelimFructTaZ10DelimFruct(%tango.net.ftp.FtpClient.FtpFeature* noalias nocapture sret %.sret_arg, %"byte[]" %src_arg, %"byte[]" %set_arg) nounwind { +entry: + %set_arg13 = extractvalue %"byte[]" %set_arg, 0 ; [#uses=1] + %set_arg14 = extractvalue %"byte[]" %set_arg, 1 ; [#uses=1] + %src_arg16 = extractvalue %"byte[]" %src_arg, 0 ; [#uses=1] + %src_arg17 = extractvalue %"byte[]" %src_arg, 1 ; [#uses=1] + %0 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.sret_arg, i32 0, i32 0, i32 0 ; [#uses=1] + store i32 %src_arg16, i32* %0 + %.sret_arg18.1 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.sret_arg, i32 0, i32 0, i32 1 ; [#uses=1] + store i8* %src_arg17, i8** %.sret_arg18.1, align 4 + %.sret_arg.1.0 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.sret_arg, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %set_arg13, i32* %.sret_arg.1.0, align 8 + %.sret_arg.1.1 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.sret_arg, i32 0, i32 1, i32 1 ; [#uses=1] + store i8* %set_arg14, i8** %.sret_arg.1.1, align 4 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text4Util18__T10DelimFructTaZ10DelimFruct7opApplyMFDFKAaZiZi(%tango.net.ftp.FtpClient.FtpFeature* nocapture %.this_arg, %"int delegate(ref char[])" %dg_arg) { +entry: + %token = alloca %"byte[]", align 8 ; <%"byte[]"*> [#uses=10] + %dg_arg115 = extractvalue %"int delegate(ref char[])" %dg_arg, 0 ; [#uses=3] + %dg_arg116 = extractvalue %"int delegate(ref char[])" %dg_arg, 1 ; [#uses=3] + store %"byte[]" zeroinitializer, %"byte[]"* %token, align 8 + %tmp2 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=1] + %.len = load i32* %tmp2 ; [#uses=2] + %tmp3 = icmp eq i32 %.len, 1 ; [#uses=1] + br i1 %tmp3, label %whilecond, label %else + +whilecond: ; preds = %endif36, %entry + %mark.0 = phi i32 [ 0, %entry ], [ %tmp39, %endif36 ] ; [#uses=5] + %ret.0 = phi i32 [ 0, %entry ], [ %tmp33, %endif36 ] ; [#uses=1] + %tmp5 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0 ; <%"byte[]"*> [#uses=1] + %tmp6 = load %"byte[]"* %tmp5 ; <%"byte[]"> [#uses=2] + %tmp9 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i8** %tmp9 ; [#uses=1] + %tmp11 = load i8* %.ptr ; [#uses=1] + %source_arg16.i = extractvalue %"byte[]" %tmp6, 0 ; [#uses=3] + %source_arg17.i = extractvalue %"byte[]" %tmp6, 1 ; [#uses=2] + %tmp2.i = icmp ult i32 %source_arg16.i, %mark.0 ; [#uses=1] + %start.0.i = select i1 %tmp2.i, i32 %source_arg16.i, i32 %mark.0 ; [#uses=4] + %tmp7.i = getelementptr i8* %source_arg17.i, i32 %start.0.i ; [#uses=1] + %tmp12.i = sub i32 %source_arg16.i, %start.0.i ; [#uses=2] + %tmp7.sum.i = add i32 %start.0.i, -1 ; [#uses=1] + %tmp2.i.i = getelementptr i8* %source_arg17.i, i32 %tmp7.sum.i ; [#uses=1] + br label %forcond.i.i + +forcond.i.i: ; preds = %forbody.i.i, %whilecond + %len.0.i.i = phi i32 [ %tmp12.i, %whilecond ], [ %tmp4.i.i, %forbody.i.i ] ; [#uses=2] + %p.0.i.i = phi i8* [ %tmp2.i.i, %whilecond ], [ %tmp7.i.i, %forbody.i.i ] ; [#uses=1] + %tmp4.i.i = add i32 %len.0.i.i, -1 ; [#uses=1] + %tmp5.i.i = icmp eq i32 %len.0.i.i, 0 ; [#uses=1] + br i1 %tmp5.i.i, label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit, label %forbody.i.i + +forbody.i.i: ; preds = %forcond.i.i + %tmp7.i.i = getelementptr i8* %p.0.i.i, i32 1 ; [#uses=3] + %tmp8.i.i = load i8* %tmp7.i.i ; [#uses=1] + %tmp12.i.i = icmp eq i8 %tmp8.i.i, %tmp11 ; [#uses=1] + br i1 %tmp12.i.i, label %if.i.i, label %forcond.i.i + +if.i.i: ; preds = %forbody.i.i + %tmp15.i.i = ptrtoint i8* %tmp7.i.i to i32 ; [#uses=1] + %tmp16.i.i = ptrtoint i8* %tmp7.i to i32 ; [#uses=1] + %tmp17.i.i = sub i32 %tmp15.i.i, %tmp16.i.i ; [#uses=1] + br label %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + +_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit: ; preds = %if.i.i, %forcond.i.i + %tmp1318.i = phi i32 [ %tmp17.i.i, %if.i.i ], [ %tmp12.i, %forcond.i.i ] ; [#uses=1] + %tmp15.i = add i32 %tmp1318.i, %start.0.i ; [#uses=3] + %tmp16 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0, i32 0 ; [#uses=1] + %.len17 = load i32* %tmp16 ; [#uses=1] + %tmp18 = icmp ult i32 %tmp15.i, %.len17 ; [#uses=1] + br i1 %tmp18, label %whilebody, label %endif + +whilebody: ; preds = %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %tmp21 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0, i32 1 ; [#uses=1] + %.ptr22 = load i8** %tmp21 ; [#uses=1] + %tmp25 = getelementptr i8* %.ptr22, i32 %mark.0 ; [#uses=1] + %tmp26 = sub i32 %tmp15.i, %mark.0 ; [#uses=1] + %tmp27 = getelementptr %"byte[]"* %token, i32 0, i32 0 ; [#uses=1] + store i32 %tmp26, i32* %tmp27, align 8 + %tmp28 = getelementptr %"byte[]"* %token, i32 0, i32 1 ; [#uses=1] + store i8* %tmp25, i8** %tmp28 + %tmp33 = call fastcc i32 %dg_arg116(i8* %dg_arg115, %"byte[]"* %token) ; [#uses=3] + %tmp34 = icmp eq i32 %tmp33, 0 ; [#uses=1] + br i1 %tmp34, label %endif36, label %if35 + +if35: ; preds = %whilebody + ret i32 %tmp33 + +endif36: ; preds = %whilebody + %tmp39 = add i32 %tmp15.i, 1 ; [#uses=1] + br label %whilecond + +else: ; preds = %entry + %tmp44 = icmp ugt i32 %.len, 1 ; [#uses=1] + br i1 %tmp44, label %if45, label %endif + +if45: ; preds = %else + %tmp49 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0, i32 0 ; [#uses=1] + %.len50 = load i32* %tmp49 ; [#uses=1] + %tmp51 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0, i32 1 ; [#uses=2] + %.ptr52 = load i8** %tmp51 ; [#uses=1] + br label %foreachcond + +foreachcond: ; preds = %endif82, %foreachbody.foreachnext_crit_edge, %if45 + %mark.3 = phi i32 [ 0, %if45 ], [ %tmp86, %endif82 ], [ %mark.3, %foreachbody.foreachnext_crit_edge ] ; [#uses=4] + %ret.3 = phi i32 [ 0, %if45 ], [ %tmp79, %endif82 ], [ %ret.3, %foreachbody.foreachnext_crit_edge ] ; [#uses=2] + %i.0 = phi i32 [ 0, %if45 ], [ %tmp88.pre, %foreachbody.foreachnext_crit_edge ], [ %tmp86, %endif82 ] ; [#uses=5] + %tmp54 = icmp ult i32 %i.0, %.len50 ; [#uses=1] + br i1 %tmp54, label %foreachbody, label %endif + +foreachbody: ; preds = %foreachcond + %tmp56 = getelementptr i8* %.ptr52, i32 %i.0 ; [#uses=1] + %tmp57 = load i8* %tmp56 ; [#uses=1] + %tmp59 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp60 = load %"byte[]"* %tmp59 ; <%"byte[]"> [#uses=2] + %source_arg7.i = extractvalue %"byte[]" %tmp60, 0 ; [#uses=3] + %source_arg8.i = extractvalue %"byte[]" %tmp60, 1 ; [#uses=2] + %tmp2.i.i117 = getelementptr i8* %source_arg8.i, i32 -1 ; [#uses=1] + br label %forcond.i.i122 + +forcond.i.i122: ; preds = %forbody.i.i126, %foreachbody + %len.0.i.i118 = phi i32 [ %source_arg7.i, %foreachbody ], [ %tmp4.i.i120, %forbody.i.i126 ] ; [#uses=2] + %p.0.i.i119 = phi i8* [ %tmp2.i.i117, %foreachbody ], [ %tmp7.i.i123, %forbody.i.i126 ] ; [#uses=1] + %tmp4.i.i120 = add i32 %len.0.i.i118, -1 ; [#uses=1] + %tmp5.i.i121 = icmp eq i32 %len.0.i.i118, 0 ; [#uses=1] + br i1 %tmp5.i.i121, label %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit, label %forbody.i.i126 + +forbody.i.i126: ; preds = %forcond.i.i122 + %tmp7.i.i123 = getelementptr i8* %p.0.i.i119, i32 1 ; [#uses=3] + %tmp8.i.i124 = load i8* %tmp7.i.i123 ; [#uses=1] + %tmp12.i.i125 = icmp eq i8 %tmp8.i.i124, %tmp57 ; [#uses=1] + br i1 %tmp12.i.i125, label %if.i.i130, label %forcond.i.i122 + +if.i.i130: ; preds = %forbody.i.i126 + %tmp15.i.i127 = ptrtoint i8* %tmp7.i.i123 to i32 ; [#uses=1] + %tmp16.i.i128 = ptrtoint i8* %source_arg8.i to i32 ; [#uses=1] + %tmp17.i.i129 = sub i32 %tmp15.i.i127, %tmp16.i.i128 ; [#uses=1] + br label %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + +_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit: ; preds = %if.i.i130, %forcond.i.i122 + %tmp39.i = phi i32 [ %tmp17.i.i129, %if.i.i130 ], [ %source_arg7.i, %forcond.i.i122 ] ; [#uses=1] + %tmp6.i = icmp eq i32 %tmp39.i, %source_arg7.i ; [#uses=1] + br i1 %tmp6.i, label %foreachbody.foreachnext_crit_edge, label %if63 + +foreachbody.foreachnext_crit_edge: ; preds = %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + %tmp88.pre = add i32 %i.0, 1 ; [#uses=1] + br label %foreachcond + +if63: ; preds = %_D5tango4text4Util15__T8containsTaZ8containsFAaaZb.exit + %.ptr68 = load i8** %tmp51 ; [#uses=1] + %tmp71 = getelementptr i8* %.ptr68, i32 %mark.3 ; [#uses=1] + %tmp72 = sub i32 %i.0, %mark.3 ; [#uses=1] + %tmp73 = getelementptr %"byte[]"* %token, i32 0, i32 0 ; [#uses=1] + store i32 %tmp72, i32* %tmp73, align 8 + %tmp74 = getelementptr %"byte[]"* %token, i32 0, i32 1 ; [#uses=1] + store i8* %tmp71, i8** %tmp74 + %tmp79 = call fastcc i32 %dg_arg116(i8* %dg_arg115, %"byte[]"* %token) ; [#uses=3] + %tmp80 = icmp eq i32 %tmp79, 0 ; [#uses=1] + br i1 %tmp80, label %endif82, label %if81 + +if81: ; preds = %if63 + ret i32 %tmp79 + +endif82: ; preds = %if63 + %tmp86 = add i32 %i.0, 1 ; [#uses=2] + br label %foreachcond + +endif: ; preds = %foreachcond, %else, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit + %mark.1 = phi i32 [ %mark.0, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit ], [ %mark.3, %foreachcond ], [ 0, %else ] ; [#uses=3] + %ret.1 = phi i32 [ %ret.0, %_D5tango4text4Util13__T6locateTaZ6locateFAaakZk.exit ], [ %ret.3, %foreachcond ], [ 0, %else ] ; [#uses=1] + %tmp91 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0, i32 1 ; [#uses=1] + %.ptr92 = load i8** %tmp91 ; [#uses=1] + %tmp93 = getelementptr %tango.net.ftp.FtpClient.FtpFeature* %.this_arg, i32 0, i32 0, i32 0 ; [#uses=1] + %.len94 = load i32* %tmp93 ; [#uses=2] + %tmp96 = getelementptr i8* %.ptr92, i32 %mark.1 ; [#uses=1] + %tmp97 = sub i32 %.len94, %mark.1 ; [#uses=1] + %tmp98 = getelementptr %"byte[]"* %token, i32 0, i32 0 ; [#uses=1] + store i32 %tmp97, i32* %tmp98, align 8 + %tmp99 = getelementptr %"byte[]"* %token, i32 0, i32 1 ; [#uses=1] + store i8* %tmp96, i8** %tmp99 + %tmp105 = icmp ugt i32 %mark.1, %.len94 ; [#uses=1] + br i1 %tmp105, label %endif107, label %if106 + +if106: ; preds = %endif + %tmp112 = call fastcc i32 %dg_arg116(i8* %dg_arg115, %"byte[]"* %token) ; [#uses=1] + ret i32 %tmp112 + +endif107: ; preds = %endif + ret i32 %ret.1 +} + +define weak_odr fastcc void @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, i32 %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=4] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len = load i32* %tmp4 ; [#uses=3] + %tmp5 = load i32* %tmp1 ; [#uses=2] + %tmp6 = icmp ult i32 %tmp5, %.len ; [#uses=1] + br i1 %tmp6, label %entry.endif_crit_edge, label %if + +entry.endif_crit_edge: ; preds = %entry + %tmp26.pre = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp13 = shl i32 %.len, 1 ; [#uses=1] + %tmp1437 = or i32 %tmp13, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=3] + %.ptr = load i32** %tmp17 ; [#uses=1] + %tmp18 = bitcast i32* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D55TypeInfo_AE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ to %object.TypeInfo*), i32 %tmp1437, i32 %.len, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to i32* ; [#uses=1] + store i32 %tmp1437, i32* %tmp4 + store i32* %.gc_mem19, i32** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp26.pre-phi = phi i32** [ %tmp26.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; [#uses=1] + %tmp28 = phi i32 [ %tmp5, %entry.endif_crit_edge ], [ %tmp28.pre, %if ] ; [#uses=1] + %.ptr27 = load i32** %tmp26.pre-phi ; [#uses=1] + %tmp29 = getelementptr i32* %.ptr27, i32 %tmp28 ; [#uses=1] + store i32 %v_arg, i32* %tmp29 + %tmp35 = load i32* %tmp1 ; [#uses=1] + %tmp36 = add i32 %tmp35, 1 ; [#uses=1] + store i32 %tmp36, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack11opCatAssignMFAE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, %"Act[]" %vs_arg) { +entry: + %vs_arg43 = extractvalue %"Act[]" %vs_arg, 0 ; [#uses=1] + %vs_arg44 = extractvalue %"Act[]" %vs_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=3] + %tmp3 = load i32* %tmp1 ; [#uses=2] + %tmp4 = add i32 %tmp3, %vs_arg43 ; [#uses=4] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len8 = load i32* %tmp7 ; [#uses=2] + %tmp10 = icmp ugt i32 %tmp4, %.len8 ; [#uses=1] + br i1 %tmp10, label %if, label %entry.endif_crit_edge + +entry.endif_crit_edge: ; preds = %entry + %tmp24.pre = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp14 = shl i32 %tmp4, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=3] + %.ptr = load i32** %tmp17 ; [#uses=1] + %tmp18 = bitcast i32* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D55TypeInfo_AE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ to %object.TypeInfo*), i32 %tmp14, i32 %.len8, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to i32* ; [#uses=1] + store i32 %tmp14, i32* %tmp7 + store i32* %.gc_mem19, i32** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp24.pre-phi = phi i32** [ %tmp24.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; [#uses=1] + %tmp28 = phi i32 [ %tmp28.pre, %if ], [ %tmp3, %entry.endif_crit_edge ] ; [#uses=2] + %.ptr25 = load i32** %tmp24.pre-phi ; [#uses=1] + %tmp30 = getelementptr i32* %.ptr25, i32 %tmp28 ; [#uses=1] + %tmp31 = sub i32 %tmp4, %tmp28 ; [#uses=1] + %tmp32 = shl i32 %tmp31, 2 ; [#uses=1] + %tmp33 = bitcast i32* %tmp30 to i8* ; [#uses=1] + %tmp36 = bitcast i32* %vs_arg44 to i8* ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp33, i8* %tmp36, i32 %tmp32, i32 1) + store i32 %tmp4, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack3popMFkZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, i32 %num_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp4 = load i32* %tmp1 ; [#uses=1] + %tmp6 = sub i32 %tmp4, %num_arg ; [#uses=1] + store i32 %tmp6, i32* %tmp1 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack3popMFZE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp6 = load i32* %tmp3 ; [#uses=1] + %tmp7 = add i32 %tmp6, -1 ; [#uses=2] + store i32 %tmp7, i32* %tmp3 + %tmp8 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp8 ; [#uses=1] + %tmp9 = getelementptr i32* %.ptr, i32 %tmp7 ; [#uses=1] + %tmp10 = load i32* %tmp9 ; [#uses=1] + ret i32 %tmp10 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack3topMFZE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp6 ; [#uses=1] + %tmp7 = getelementptr i32* %.ptr, i32 %tmp5 ; [#uses=1] + %tmp8 = load i32* %tmp7 ; [#uses=1] + ret i32 %tmp8 +} + +define weak_odr fastcc i32* @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack6topPtrMFZPE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp6 ; [#uses=1] + %tmp7 = getelementptr i32* %.ptr, i32 %tmp5 ; [#uses=1] + ret i32* %tmp7 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack5emptyMFZb(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp3 = icmp eq i32 %tmp2, 0 ; [#uses=1] + ret i1 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack5clearMFZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + store i32 0, i32* %tmp1 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack6lengthMFZk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + ret i32 %tmp2 +} + +define weak_odr fastcc %"Act[]" @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack5arrayMFZAE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp2 ; [#uses=1] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp5 = load i32* %tmp4 ; [#uses=1] + %tmp8 = insertvalue %"Act[]" undef, i32 %tmp5, 0 ; <%"Act[]"> [#uses=1] + %tmp9 = insertvalue %"Act[]" %tmp8, i32* %.ptr, 1 ; <%"Act[]"> [#uses=1] + ret %"Act[]" %tmp9 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack7opIndexMFkZE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, i32 %i_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp2 ; [#uses=1] + %tmp4 = getelementptr i32* %.ptr, i32 %i_arg ; [#uses=1] + %tmp5 = load i32* %tmp4 ; [#uses=1] + ret i32 %tmp5 +} + +define weak_odr fastcc void @_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack3dupMFZS5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack(%"tango.text.Regex.Stack!(Operator).Stack"* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp8 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=1] + %.len = load i32* %tmp8 ; [#uses=1] + %tmp9 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp9 ; [#uses=1] + %tmp10 = bitcast i32* %.ptr to i8* ; [#uses=1] + %tmp11 = insertvalue %"byte[]" undef, i32 %.len, 0 ; <%"byte[]"> [#uses=1] + %tmp12 = insertvalue %"byte[]" %tmp11, i8* %tmp10, 1 ; <%"byte[]"> [#uses=1] + %tmp13 = tail call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D55TypeInfo_AE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ to %object.TypeInfo*), %"byte[]" %tmp12) ; <%"byte[]"> [#uses=2] + %tmp14 = extractvalue %"byte[]" %tmp13, 0 ; [#uses=1] + %tmp16 = extractvalue %"byte[]" %tmp13, 1 ; [#uses=1] + %tmp17 = bitcast i8* %tmp16 to i32* ; [#uses=1] + %.sret_arg.0 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i32 %tmp4, i32* %.sret_arg.0 + %.sret_arg.1.0 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.sret_arg, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp14, i32* %.sret_arg.1.0, align 4 + %.sret_arg.1.1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.sret_arg, i32 0, i32 1, i32 1 ; [#uses=1] + store i32* %tmp17, i32** %.sret_arg.1.1, align 4 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex12__T5StackTkZ5Stack4pushMFkZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, i32 %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=4] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len = load i32* %tmp4 ; [#uses=3] + %tmp5 = load i32* %tmp1 ; [#uses=2] + %tmp6 = icmp ult i32 %tmp5, %.len ; [#uses=1] + br i1 %tmp6, label %entry.endif_crit_edge, label %if + +entry.endif_crit_edge: ; preds = %entry + %tmp26.pre = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp13 = shl i32 %.len, 1 ; [#uses=1] + %tmp1437 = or i32 %tmp13, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=3] + %.ptr = load i32** %tmp17 ; [#uses=1] + %tmp18 = bitcast i32* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* @_D11TypeInfo_Ak6__initZ, i32 %tmp1437, i32 %.len, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to i32* ; [#uses=1] + store i32 %tmp1437, i32* %tmp4 + store i32* %.gc_mem19, i32** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp26.pre-phi = phi i32** [ %tmp26.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; [#uses=1] + %tmp28 = phi i32 [ %tmp5, %entry.endif_crit_edge ], [ %tmp28.pre, %if ] ; [#uses=1] + %.ptr27 = load i32** %tmp26.pre-phi ; [#uses=1] + %tmp29 = getelementptr i32* %.ptr27, i32 %tmp28 ; [#uses=1] + store i32 %v_arg, i32* %tmp29 + %tmp35 = load i32* %tmp1 ; [#uses=1] + %tmp36 = add i32 %tmp35, 1 ; [#uses=1] + store i32 %tmp36, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex12__T5StackTkZ5Stack11opCatAssignMFAkZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, %"Act[]" %vs_arg) { +entry: + %vs_arg43 = extractvalue %"Act[]" %vs_arg, 0 ; [#uses=1] + %vs_arg44 = extractvalue %"Act[]" %vs_arg, 1 ; [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=3] + %tmp3 = load i32* %tmp1 ; [#uses=2] + %tmp4 = add i32 %tmp3, %vs_arg43 ; [#uses=4] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len8 = load i32* %tmp7 ; [#uses=2] + %tmp10 = icmp ugt i32 %tmp4, %.len8 ; [#uses=1] + br i1 %tmp10, label %if, label %entry.endif_crit_edge + +entry.endif_crit_edge: ; preds = %entry + %tmp24.pre = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp14 = shl i32 %tmp4, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=3] + %.ptr = load i32** %tmp17 ; [#uses=1] + %tmp18 = bitcast i32* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* @_D11TypeInfo_Ak6__initZ, i32 %tmp14, i32 %.len8, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to i32* ; [#uses=1] + store i32 %tmp14, i32* %tmp7 + store i32* %.gc_mem19, i32** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp24.pre-phi = phi i32** [ %tmp24.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; [#uses=1] + %tmp28 = phi i32 [ %tmp28.pre, %if ], [ %tmp3, %entry.endif_crit_edge ] ; [#uses=2] + %.ptr25 = load i32** %tmp24.pre-phi ; [#uses=1] + %tmp30 = getelementptr i32* %.ptr25, i32 %tmp28 ; [#uses=1] + %tmp31 = sub i32 %tmp4, %tmp28 ; [#uses=1] + %tmp32 = shl i32 %tmp31, 2 ; [#uses=1] + %tmp33 = bitcast i32* %tmp30 to i8* ; [#uses=1] + %tmp36 = bitcast i32* %vs_arg44 to i8* ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp33, i8* %tmp36, i32 %tmp32, i32 1) + store i32 %tmp4, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex12__T5StackTkZ5Stack3popMFkZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, i32 %num_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp4 = load i32* %tmp1 ; [#uses=1] + %tmp6 = sub i32 %tmp4, %num_arg ; [#uses=1] + store i32 %tmp6, i32* %tmp1 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex12__T5StackTkZ5Stack3popMFZk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp6 = load i32* %tmp3 ; [#uses=1] + %tmp7 = add i32 %tmp6, -1 ; [#uses=2] + store i32 %tmp7, i32* %tmp3 + %tmp8 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp8 ; [#uses=1] + %tmp9 = getelementptr i32* %.ptr, i32 %tmp7 ; [#uses=1] + %tmp10 = load i32* %tmp9 ; [#uses=1] + ret i32 %tmp10 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex12__T5StackTkZ5Stack3topMFZk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp6 ; [#uses=1] + %tmp7 = getelementptr i32* %.ptr, i32 %tmp5 ; [#uses=1] + %tmp8 = load i32* %tmp7 ; [#uses=1] + ret i32 %tmp8 +} + +define weak_odr fastcc i32* @_D5tango4text5Regex12__T5StackTkZ5Stack6topPtrMFZPk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp6 ; [#uses=1] + %tmp7 = getelementptr i32* %.ptr, i32 %tmp5 ; [#uses=1] + ret i32* %tmp7 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex12__T5StackTkZ5Stack5emptyMFZb(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp3 = icmp eq i32 %tmp2, 0 ; [#uses=1] + ret i1 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex12__T5StackTkZ5Stack5clearMFZv(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + store i32 0, i32* %tmp1 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex12__T5StackTkZ5Stack6lengthMFZk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + ret i32 %tmp2 +} + +define weak_odr fastcc %"Act[]" @_D5tango4text5Regex12__T5StackTkZ5Stack5arrayMFZAk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp2 ; [#uses=1] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp5 = load i32* %tmp4 ; [#uses=1] + %tmp8 = insertvalue %"Act[]" undef, i32 %tmp5, 0 ; <%"Act[]"> [#uses=1] + %tmp9 = insertvalue %"Act[]" %tmp8, i32* %.ptr, 1 ; <%"Act[]"> [#uses=1] + ret %"Act[]" %tmp9 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex12__T5StackTkZ5Stack7opIndexMFkZk(%"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg, i32 %i_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; [#uses=1] + %.ptr = load i32** %tmp2 ; [#uses=1] + %tmp4 = getelementptr i32* %.ptr, i32 %i_arg ; [#uses=1] + %tmp5 = load i32* %tmp4 ; [#uses=1] + ret i32 %tmp5 +} + +define weak_odr fastcc void @_D5tango4text5Regex12__T5StackTkZ5Stack3dupMFZS5tango4text5Regex12__T5StackTkZ5Stack(%"tango.text.Regex.Stack!(Operator).Stack"* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(Operator).Stack"* nocapture %.this_arg) { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.this_arg, i32 0, i32 1 ; <%"Act[]"*> [#uses=1] + %tmp8 = bitcast %"Act[]"* %tmp7 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp9 = load %"byte[]"* %tmp8 ; <%"byte[]"> [#uses=1] + %tmp10 = tail call %"byte[]" @_adDupT(%object.TypeInfo* @_D11TypeInfo_Ak6__initZ, %"byte[]" %tmp9) ; <%"byte[]"> [#uses=2] + %tmp11 = extractvalue %"byte[]" %tmp10, 0 ; [#uses=1] + %tmp13 = extractvalue %"byte[]" %tmp10, 1 ; [#uses=1] + %tmp14 = bitcast i8* %tmp13 to i32* ; [#uses=1] + %.sret_arg.0 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i32 %tmp4, i32* %.sret_arg.0 + %.sret_arg.1.0 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.sret_arg, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp11, i32* %.sret_arg.1.0, align 4 + %.sret_arg.1.1 = getelementptr %"tango.text.Regex.Stack!(Operator).Stack"* %.sret_arg, i32 0, i32 1, i32 1 ; [#uses=1] + store i32* %tmp14, i32** %.sret_arg.1.1, align 4 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex11__T4PairTkZ4Pair6opCallFkkZS5tango4text5Regex11__T4PairTkZ4Pair(%tango.net.Socket.timeval* noalias nocapture sret %.sret_arg, i32 %a_arg, i32 %b_arg) nounwind { +entry: + %tmp12 = zext i32 %a_arg to i64 ; [#uses=1] + %tmp13 = shl i64 %tmp12, 32 ; [#uses=1] + %tmp10 = zext i32 %b_arg to i64 ; [#uses=1] + %ins = or i64 %tmp13, %tmp10 ; [#uses=1] + %0 = bitcast %tango.net.Socket.timeval* %.sret_arg to i64* ; [#uses=1] + store i64 %ins, i64* %0 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack4pushMFS5tango4text5Regex11__T4PairTkZ4PairZv(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg, %tango.net.Socket.timeval* nocapture byval %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=4] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len = load i32* %tmp4 ; [#uses=3] + %tmp5 = load i32* %tmp1 ; [#uses=2] + %tmp6 = icmp ult i32 %tmp5, %.len ; [#uses=1] + br i1 %tmp6, label %entry.endif_crit_edge, label %if + +entry.endif_crit_edge: ; preds = %entry + %tmp26.pre = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp13 = shl i32 %.len, 1 ; [#uses=1] + %tmp1438 = or i32 %tmp13, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=3] + %.ptr = load %tango.net.Socket.timeval** %tmp17 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp18 = bitcast %tango.net.Socket.timeval* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D46TypeInfo_AS5tango4text5Regex11__T4PairTkZ4Pair6__initZ to %object.TypeInfo*), i32 %tmp1438, i32 %.len, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=1] + store i32 %tmp1438, i32* %tmp4 + store %tango.net.Socket.timeval* %.gc_mem19, %tango.net.Socket.timeval** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp26.pre-phi = phi %tango.net.Socket.timeval** [ %tmp26.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; <%tango.net.Socket.timeval**> [#uses=1] + %tmp28 = phi i32 [ %tmp5, %entry.endif_crit_edge ], [ %tmp28.pre, %if ] ; [#uses=1] + %.ptr27 = load %tango.net.Socket.timeval** %tmp26.pre-phi ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp29 = getelementptr %tango.net.Socket.timeval* %.ptr27, i32 %tmp28 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp3139 = bitcast %tango.net.Socket.timeval* %v_arg to i64* ; [#uses=1] + %tmp3040 = bitcast %tango.net.Socket.timeval* %tmp29 to i64* ; [#uses=1] + %tmp = load i64* %tmp3139, align 1 ; [#uses=1] + store i64 %tmp, i64* %tmp3040, align 1 + %tmp36 = load i32* %tmp1 ; [#uses=1] + %tmp37 = add i32 %tmp36, 1 ; [#uses=1] + store i32 %tmp37, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack11opCatAssignMFAS5tango4text5Regex11__T4PairTkZ4PairZv(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg, %"CharRange!(dchar)[]" %vs_arg) { +entry: + %vs_arg43 = extractvalue %"CharRange!(dchar)[]" %vs_arg, 0 ; [#uses=1] + %vs_arg44 = extractvalue %"CharRange!(dchar)[]" %vs_arg, 1 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=3] + %tmp3 = load i32* %tmp1 ; [#uses=2] + %tmp4 = add i32 %tmp3, %vs_arg43 ; [#uses=4] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len8 = load i32* %tmp7 ; [#uses=2] + %tmp10 = icmp ugt i32 %tmp4, %.len8 ; [#uses=1] + br i1 %tmp10, label %if, label %entry.endif_crit_edge + +entry.endif_crit_edge: ; preds = %entry + %tmp24.pre = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp14 = shl i32 %tmp4, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=3] + %.ptr = load %tango.net.Socket.timeval** %tmp17 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp18 = bitcast %tango.net.Socket.timeval* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D46TypeInfo_AS5tango4text5Regex11__T4PairTkZ4Pair6__initZ to %object.TypeInfo*), i32 %tmp14, i32 %.len8, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=1] + store i32 %tmp14, i32* %tmp7 + store %tango.net.Socket.timeval* %.gc_mem19, %tango.net.Socket.timeval** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp24.pre-phi = phi %tango.net.Socket.timeval** [ %tmp24.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; <%tango.net.Socket.timeval**> [#uses=1] + %tmp28 = phi i32 [ %tmp28.pre, %if ], [ %tmp3, %entry.endif_crit_edge ] ; [#uses=2] + %.ptr25 = load %tango.net.Socket.timeval** %tmp24.pre-phi ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp30 = getelementptr %tango.net.Socket.timeval* %.ptr25, i32 %tmp28 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp31 = sub i32 %tmp4, %tmp28 ; [#uses=1] + %tmp32 = shl i32 %tmp31, 3 ; [#uses=1] + %tmp33 = bitcast %tango.net.Socket.timeval* %tmp30 to i8* ; [#uses=1] + %tmp36 = bitcast %tango.net.Socket.timeval* %vs_arg44 to i8* ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp33, i8* %tmp36, i32 %tmp32, i32 1) + store i32 %tmp4, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack3popMFkZv(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg, i32 %num_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp4 = load i32* %tmp1 ; [#uses=1] + %tmp6 = sub i32 %tmp4, %num_arg ; [#uses=1] + store i32 %tmp6, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack3popMFZS5tango4text5Regex11__T4PairTkZ4Pair(%tango.net.Socket.timeval* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp6 = load i32* %tmp3 ; [#uses=1] + %tmp7 = add i32 %tmp6, -1 ; [#uses=2] + store i32 %tmp7, i32* %tmp3 + %tmp8 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr = load %tango.net.Socket.timeval** %tmp8 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp9 = getelementptr %tango.net.Socket.timeval* %.ptr, i32 %tmp7 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1112 = bitcast %tango.net.Socket.timeval* %tmp9 to i64* ; [#uses=1] + %tmp1013 = bitcast %tango.net.Socket.timeval* %.sret_arg to i64* ; [#uses=1] + %tmp = load i64* %tmp1112, align 1 ; [#uses=1] + store i64 %tmp, i64* %tmp1013, align 1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack3topMFZS5tango4text5Regex11__T4PairTkZ4Pair(%tango.net.Socket.timeval* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr = load %tango.net.Socket.timeval** %tmp6 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7 = getelementptr %tango.net.Socket.timeval* %.ptr, i32 %tmp5 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp910 = bitcast %tango.net.Socket.timeval* %tmp7 to i64* ; [#uses=1] + %tmp811 = bitcast %tango.net.Socket.timeval* %.sret_arg to i64* ; [#uses=1] + %tmp = load i64* %tmp910, align 1 ; [#uses=1] + store i64 %tmp, i64* %tmp811, align 1 + ret void +} + +define weak_odr fastcc %tango.net.Socket.timeval* @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack6topPtrMFZPS5tango4text5Regex11__T4PairTkZ4Pair(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr = load %tango.net.Socket.timeval** %tmp6 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp7 = getelementptr %tango.net.Socket.timeval* %.ptr, i32 %tmp5 ; <%tango.net.Socket.timeval*> [#uses=1] + ret %tango.net.Socket.timeval* %tmp7 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack5emptyMFZb(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp3 = icmp eq i32 %tmp2, 0 ; [#uses=1] + ret i1 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack5clearMFZv(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + store i32 0, i32* %tmp1 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack6lengthMFZk(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + ret i32 %tmp2 +} + +define weak_odr fastcc %"CharRange!(dchar)[]" @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack5arrayMFZAS5tango4text5Regex11__T4PairTkZ4Pair(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr = load %tango.net.Socket.timeval** %tmp2 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp5 = load i32* %tmp4 ; [#uses=1] + %tmp8 = insertvalue %"CharRange!(dchar)[]" undef, i32 %tmp5, 0 ; <%"CharRange!(dchar)[]"> [#uses=1] + %tmp9 = insertvalue %"CharRange!(dchar)[]" %tmp8, %tango.net.Socket.timeval* %.ptr, 1 ; <%"CharRange!(dchar)[]"> [#uses=1] + ret %"CharRange!(dchar)[]" %tmp9 +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack7opIndexMFkZS5tango4text5Regex11__T4PairTkZ4Pair(%tango.net.Socket.timeval* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg, i32 %i_arg) nounwind { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr = load %tango.net.Socket.timeval** %tmp2 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp4 = getelementptr %tango.net.Socket.timeval* %.ptr, i32 %i_arg ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp67 = bitcast %tango.net.Socket.timeval* %tmp4 to i64* ; [#uses=1] + %tmp58 = bitcast %tango.net.Socket.timeval* %.sret_arg to i64* ; [#uses=1] + %tmp = load i64* %tmp67, align 1 ; [#uses=1] + store i64 %tmp, i64* %tmp58, align 1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack3dupMFZS5tango4text5Regex47__T5StackTS5tango4text5Regex11__T4PairTkZ4PairZ5Stack(%"tango.text.Regex.Stack!(Pair!(uint)).Stack"* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* nocapture %.this_arg) { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.this_arg, i32 0, i32 1 ; <%"CharRange!(dchar)[]"*> [#uses=1] + %tmp8 = bitcast %"CharRange!(dchar)[]"* %tmp7 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp9 = load %"byte[]"* %tmp8 ; <%"byte[]"> [#uses=1] + %tmp10 = tail call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D46TypeInfo_AS5tango4text5Regex11__T4PairTkZ4Pair6__initZ to %object.TypeInfo*), %"byte[]" %tmp9) ; <%"byte[]"> [#uses=2] + %tmp11 = extractvalue %"byte[]" %tmp10, 0 ; [#uses=1] + %tmp13 = extractvalue %"byte[]" %tmp10, 1 ; [#uses=1] + %tmp14 = bitcast i8* %tmp13 to %tango.net.Socket.timeval* ; <%tango.net.Socket.timeval*> [#uses=1] + %.sret_arg.0 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i32 %tmp4, i32* %.sret_arg.0 + %.sret_arg.1.0 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.sret_arg, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp11, i32* %.sret_arg.1.0, align 4 + %.sret_arg.1.1 = getelementptr %"tango.text.Regex.Stack!(Pair!(uint)).Stack"* %.sret_arg, i32 0, i32 1, i32 1 ; <%tango.net.Socket.timeval**> [#uses=1] + store %tango.net.Socket.timeval* %tmp14, %tango.net.Socket.timeval** %.sret_arg.1.1, align 4 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack4pushMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZv(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg) { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=4] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len = load i32* %tmp4 ; [#uses=3] + %tmp5 = load i32* %tmp1 ; [#uses=2] + %tmp6 = icmp ult i32 %tmp5, %.len ; [#uses=1] + br i1 %tmp6, label %entry.endif_crit_edge, label %if + +entry.endif_crit_edge: ; preds = %entry + %tmp26.pre = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp13 = shl i32 %.len, 1 ; [#uses=1] + %tmp1437 = or i32 %tmp13, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=3] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp17 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp18 = bitcast %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D68TypeInfo_AC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*), i32 %tmp1437, i32 %.len, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store i32 %tmp1437, i32* %tmp4 + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.gc_mem19, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp26.pre-phi = phi %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** [ %tmp26.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %tmp28 = phi i32 [ %tmp5, %entry.endif_crit_edge ], [ %tmp28.pre, %if ] ; [#uses=1] + %.ptr27 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp26.pre-phi ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp29 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr27, i32 %tmp28 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %v_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp29 + %tmp35 = load i32* %tmp1 ; [#uses=1] + %tmp36 = add i32 %tmp35, 1 ; [#uses=1] + store i32 %tmp36, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack11opCatAssignMFAC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZv(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg, %"TNFATransition[]" %vs_arg) { +entry: + %vs_arg43 = extractvalue %"TNFATransition[]" %vs_arg, 0 ; [#uses=1] + %vs_arg44 = extractvalue %"TNFATransition[]" %vs_arg, 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=3] + %tmp3 = load i32* %tmp1 ; [#uses=2] + %tmp4 = add i32 %tmp3, %vs_arg43 ; [#uses=4] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 0 ; [#uses=2] + %.len8 = load i32* %tmp7 ; [#uses=2] + %tmp10 = icmp ugt i32 %tmp4, %.len8 ; [#uses=1] + br i1 %tmp10, label %if, label %entry.endif_crit_edge + +entry.endif_crit_edge: ; preds = %entry + %tmp24.pre = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + br label %endif + +if: ; preds = %entry + %tmp14 = shl i32 %tmp4, 1 ; [#uses=2] + %tmp17 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=3] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp17 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp18 = bitcast %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D68TypeInfo_AC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*), i32 %tmp14, i32 %.len8, i8* %tmp18) ; [#uses=1] + %.gc_mem19 = bitcast i8* %.gc_mem to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store i32 %tmp14, i32* %tmp7 + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.gc_mem19, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp17 + %tmp28.pre = load i32* %tmp1 ; [#uses=1] + br label %endif + +endif: ; preds = %if, %entry.endif_crit_edge + %tmp24.pre-phi = phi %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** [ %tmp24.pre, %entry.endif_crit_edge ], [ %tmp17, %if ] ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %tmp28 = phi i32 [ %tmp28.pre, %if ], [ %tmp3, %entry.endif_crit_edge ] ; [#uses=2] + %.ptr25 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp24.pre-phi ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp30 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr25, i32 %tmp28 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp31 = sub i32 %tmp4, %tmp28 ; [#uses=1] + %tmp32 = shl i32 %tmp31, 2 ; [#uses=1] + %tmp33 = bitcast %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp30 to i8* ; [#uses=1] + %tmp36 = bitcast %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %vs_arg44 to i8* ; [#uses=1] + tail call void @llvm.memcpy.i32(i8* %tmp33, i8* %tmp36, i32 %tmp32, i32 1) + store i32 %tmp4, i32* %tmp1 + ret void +} + +define weak_odr fastcc void @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack3popMFkZv(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg, i32 %num_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp4 = load i32* %tmp1 ; [#uses=1] + %tmp6 = sub i32 %tmp4, %num_arg ; [#uses=1] + store i32 %tmp6, i32* %tmp1 + ret void +} + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack3popMFZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=2] + %tmp6 = load i32* %tmp3 ; [#uses=1] + %tmp7 = add i32 %tmp6, -1 ; [#uses=2] + store i32 %tmp7, i32* %tmp3 + %tmp8 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp8 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp9 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr, i32 %tmp7 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp10 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp9 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp10 +} + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack3topMFZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp6 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp7 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr, i32 %tmp5 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp8 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp7 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp8 +} + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack6topPtrMFZPC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp5 = add i32 %tmp4, -1 ; [#uses=1] + %tmp6 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp6 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp7 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr, i32 %tmp5 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp7 +} + +define weak_odr fastcc i1 @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack5emptyMFZb(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + %tmp3 = icmp eq i32 %tmp2, 0 ; [#uses=1] + ret i1 %tmp3 +} + +define weak_odr fastcc void @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack5clearMFZv(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + store i32 0, i32* %tmp1 + ret void +} + +define weak_odr fastcc i32 @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack6lengthMFZk(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp2 = load i32* %tmp1 ; [#uses=1] + ret i32 %tmp2 +} + +define weak_odr fastcc %"TNFATransition[]" @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack5arrayMFZAC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp4 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp5 = load i32* %tmp4 ; [#uses=1] + %tmp8 = insertvalue %"TNFATransition[]" undef, i32 %tmp5, 0 ; <%"TNFATransition[]"> [#uses=1] + %tmp9 = insertvalue %"TNFATransition[]" %tmp8, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr, 1 ; <%"TNFATransition[]"> [#uses=1] + ret %"TNFATransition[]" %tmp9 +} + +define weak_odr fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack7opIndexMFkZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg, i32 %i_arg) nounwind readonly { +entry: + %tmp2 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %tmp2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp4 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr, i32 %i_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp5 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp4 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + ret %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp5 +} + +define weak_odr fastcc void @_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack3dupMFZS5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack(%"tango.text.Regex.Stack!(TNFATransition).Stack"* noalias nocapture sret %.sret_arg, %"tango.text.Regex.Stack!(TNFATransition).Stack"* nocapture %.this_arg) { +entry: + %tmp3 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 0 ; [#uses=1] + %tmp4 = load i32* %tmp3 ; [#uses=1] + %tmp7 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.this_arg, i32 0, i32 1 ; <%"TNFATransition[]"*> [#uses=1] + %tmp8 = bitcast %"TNFATransition[]"* %tmp7 to %"byte[]"* ; <%"byte[]"*> [#uses=1] + %tmp9 = load %"byte[]"* %tmp8 ; <%"byte[]"> [#uses=1] + %tmp10 = tail call %"byte[]" @_adDupT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D68TypeInfo_AC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*), %"byte[]" %tmp9) ; <%"byte[]"> [#uses=2] + %tmp11 = extractvalue %"byte[]" %tmp10, 0 ; [#uses=1] + %tmp13 = extractvalue %"byte[]" %tmp10, 1 ; [#uses=1] + %tmp14 = bitcast i8* %tmp13 to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %.sret_arg.0 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.sret_arg, i32 0, i32 0 ; [#uses=1] + store i32 %tmp4, i32* %.sret_arg.0 + %.sret_arg.1.0 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.sret_arg, i32 0, i32 1, i32 0 ; [#uses=1] + store i32 %tmp11, i32* %.sret_arg.1.0, align 4 + %.sret_arg.1.1 = getelementptr %"tango.text.Regex.Stack!(TNFATransition).Stack"* %.sret_arg, i32 0, i32 1, i32 1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp14, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %.sret_arg.1.1, align 4 + ret void +} + +declare i8* @llvm.eh.exception() nounwind + +declare i32 @_d_eh_personality(i32, i32, i64, i8*, i8*) + +declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind + +declare void @_d_eh_resume_unwind(i8*) + +declare noalias i8* @_d_allocmemoryT(%object.TypeInfo*) + +declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind + +declare noalias i8* @_d_newarrayiT(%object.TypeInfo*, i32) + +declare noalias i8* @_d_allocclass(%object.ClassInfo*) + +declare void @_d_throw_exception(%object.Object*) + +declare i32 @_adEq(%"byte[]", %"byte[]", %object.TypeInfo*) readonly + +declare void @_d_delarray(i32, i8*) + +declare void @_d_delclass(%object.Object*) + +declare fastcc %tango.net.Socket.IPv4Address* @_D5tango3net6Socket11IPv4Address5_ctorMFAaiZC5tango3net6Socket11IPv4Address(%tango.net.Socket.IPv4Address*, %"byte[]", i32) + +declare noalias i8* @_d_newarrayvT(%object.TypeInfo*, i32) + +declare i8* @_d_arraysetlengthiT(%object.TypeInfo*, i32, i32, i8*) + +declare fastcc void @_D5tango4time5Clock5Clock3nowFZS5tango4time4Time4Time(%tango.time.Time.Time* noalias nocapture sret) + +declare %object.Object* @_d_dynamic_cast(%object.Object*, %object.ClassInfo*) nounwind readonly + +declare fastcc void @_D5tango3net6Socket6Socket10initializeMFT5tango3net6Socket8socket_tZv(%tango.net.Socket.Socket*, i32) + +declare fastcc i32 @_D5tango3net6Socket6Socket6selectFC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetC5tango3net6Socket9SocketSetPS5tango3net6Socket7timevalZi(%tango.net.Socket.SocketSet*, %tango.net.Socket.SocketSet*, %tango.net.Socket.SocketSet*, %tango.net.Socket.timeval*) + +declare void @llvm.memset.i32(i8* nocapture, i8, i32, i32) nounwind + +declare %object.Object* @_d_toObject(i8*) nounwind readonly + +declare %"byte[]" @_adDupT(%object.TypeInfo*, %"byte[]") + +declare i8* @_aaGet(%32* nocapture, %object.TypeInfo*, i32, i8* nocapture) + +declare fastcc %"byte[]" @_D5tango4text5Ascii7toLowerFAaAaZAa(%"byte[]", %"byte[]") + +declare i8* @_aaIn(%32* nocapture, %object.TypeInfo*, i8* nocapture) readonly + +declare i32 @_d_switch_string(%"char[][]", %"byte[]") readonly + +declare fastcc %"tango.text.convert.Layout.Layout!(char).Layout"* @_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout8instanceFZC5tango4text7convert6Layout13__T6LayoutTaZ6Layout() + +define weak_odr fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %.nest_arg, i32 %next_op_arg, i1 %explicit_operator_arg) { +entry: + %_argptr_storage = alloca %35, align 8 ; <%35*> [#uses=3] + %_argptr_storage298 = alloca %nest.parseListLine, align 8 ; <%nest.parseListLine*> [#uses=4] + %opStack = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %tmp3.i = bitcast i8* %opStack to i32* ; [#uses=9] + %tmp4.i = load i32* %tmp3.i ; [#uses=3] + %tmp5.i = add i32 %tmp4.i, -1 ; [#uses=2] + %tmp6.i = getelementptr i8* %.nest_arg, i32 16 ; [#uses=1] + %0 = bitcast i8* %tmp6.i to i32** ; [#uses=2] + %.ptr.i = load i32** %0 ; [#uses=3] + %tmp7.i = getelementptr i32* %.ptr.i, i32 %tmp5.i ; [#uses=1] + %tmp8.i = load i32* %tmp7.i ; [#uses=3] + %tmp2 = mul i32 %tmp8.i, 17 ; [#uses=1] + %tmp5 = add i32 %tmp2, %next_op_arg ; [#uses=1] + %tmp8 = getelementptr [289 x i32]* @.constarray34, i32 0, i32 %tmp5 ; [#uses=1] + %tmp9 = load i32* %tmp8 ; [#uses=1] + switch i32 %tmp9, label %default286 [ + i32 0, label %case + i32 1, label %case30 + i32 2, label %case204 + i32 3, label %case209 + i32 4, label %case284 + ] + +case: ; preds = %entry + %tmp4.i350 = getelementptr i8* %.nest_arg, i32 12 ; [#uses=1] + %1 = bitcast i8* %tmp4.i350 to i32* ; [#uses=2] + %.len.i = load i32* %1 ; [#uses=3] + %tmp6.i352 = icmp ult i32 %tmp4.i, %.len.i ; [#uses=1] + br i1 %tmp6.i352, label %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit, label %if.i + +if.i: ; preds = %case + %tmp13.i = shl i32 %.len.i, 1 ; [#uses=1] + %tmp1437.i = or i32 %tmp13.i, 1 ; [#uses=2] + %tmp18.i = bitcast i32* %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i = call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D55TypeInfo_AE5tango4text5Regex11__T4TNFATwZ4TNFA8Operator6__initZ to %object.TypeInfo*), i32 %tmp1437.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i to i32* ; [#uses=2] + store i32 %tmp1437.i, i32* %1 + store i32* %.gc_mem19.i, i32** %0 + %tmp28.pre.i = load i32* %tmp3.i ; [#uses=1] + br label %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + +_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit: ; preds = %if.i, %case + %.ptr27.i = phi i32* [ %.gc_mem19.i, %if.i ], [ %.ptr.i, %case ] ; [#uses=1] + %tmp28.i = phi i32 [ %tmp28.pre.i, %if.i ], [ %tmp4.i, %case ] ; [#uses=1] + %tmp29.i = getelementptr i32* %.ptr27.i, i32 %tmp28.i ; [#uses=1] + store i32 %next_op_arg, i32* %tmp29.i + %tmp35.i = load i32* %tmp3.i ; [#uses=1] + %tmp36.i = add i32 %tmp35.i, 1 ; [#uses=1] + store i32 %tmp36.i, i32* %tmp3.i + %tmp14 = icmp eq i32 %next_op_arg, 3 ; [#uses=1] + br i1 %tmp14, label %if, label %switchend + +if: ; preds = %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + %tagStack = getelementptr i8* %.nest_arg, i32 20 ; [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %2 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=2] + %tmp17 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %2 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp18 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp17, i32 0, i32 6 ; [#uses=1] + %tmp19 = load i32* %tmp18 ; [#uses=1] + %tmp1.i360 = bitcast i8* %tagStack to i32* ; [#uses=4] + %tmp4.i361 = getelementptr i8* %.nest_arg, i32 24 ; [#uses=1] + %3 = bitcast i8* %tmp4.i361 to i32* ; [#uses=2] + %.len.i362 = load i32* %3 ; [#uses=3] + %tmp5.i363 = load i32* %tmp1.i360 ; [#uses=2] + %tmp6.i364 = icmp ult i32 %tmp5.i363, %.len.i362 ; [#uses=1] + br i1 %tmp6.i364, label %entry.endif_crit_edge.i366, label %if.i375 + +entry.endif_crit_edge.i366: ; preds = %if + %tmp26.pre.i365 = getelementptr i8* %.nest_arg, i32 28 ; [#uses=1] + %4 = bitcast i8* %tmp26.pre.i365 to i32** ; [#uses=1] + %.ptr27.i378.pre = load i32** %4 ; [#uses=1] + br label %_D5tango4text5Regex12__T5StackTkZ5Stack4pushMFkZv.exit + +if.i375: ; preds = %if + %tmp13.i367 = shl i32 %.len.i362, 1 ; [#uses=1] + %tmp1437.i368 = or i32 %tmp13.i367, 1 ; [#uses=2] + %tmp17.i369 = getelementptr i8* %.nest_arg, i32 28 ; [#uses=1] + %5 = bitcast i8* %tmp17.i369 to i32** ; [#uses=2] + %.ptr.i370 = load i32** %5 ; [#uses=1] + %tmp18.i371 = bitcast i32* %.ptr.i370 to i8* ; [#uses=1] + %.gc_mem.i372 = call i8* @_d_arraysetlengthT(%object.TypeInfo* @_D11TypeInfo_Ak6__initZ, i32 %tmp1437.i368, i32 %.len.i362, i8* %tmp18.i371) ; [#uses=1] + %.gc_mem19.i373 = bitcast i8* %.gc_mem.i372 to i32* ; [#uses=2] + store i32 %tmp1437.i368, i32* %3 + store i32* %.gc_mem19.i373, i32** %5 + %tmp28.pre.i374 = load i32* %tmp1.i360 ; [#uses=1] + br label %_D5tango4text5Regex12__T5StackTkZ5Stack4pushMFkZv.exit + +_D5tango4text5Regex12__T5StackTkZ5Stack4pushMFkZv.exit: ; preds = %if.i375, %entry.endif_crit_edge.i366 + %.ptr27.i378 = phi i32* [ %.ptr27.i378.pre, %entry.endif_crit_edge.i366 ], [ %.gc_mem19.i373, %if.i375 ] ; [#uses=1] + %tmp28.i377 = phi i32 [ %tmp5.i363, %entry.endif_crit_edge.i366 ], [ %tmp28.pre.i374, %if.i375 ] ; [#uses=1] + %tmp29.i379 = getelementptr i32* %.ptr27.i378, i32 %tmp28.i377 ; [#uses=1] + store i32 %tmp19, i32* %tmp29.i379 + %tmp35.i380 = load i32* %tmp1.i360 ; [#uses=1] + %tmp36.i381 = add i32 %tmp35.i380, 1 ; [#uses=1] + store i32 %tmp36.i381, i32* %tmp1.i360 + %tmp22 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %2 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp23 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp22, i32 0, i32 6 ; [#uses=2] + %tmp28 = load i32* %tmp23 ; [#uses=1] + %tmp29 = add i32 %tmp28, 2 ; [#uses=1] + store i32 %tmp29, i32* %tmp23 + ret i1 false + +case30: ; preds = %entry + switch i32 %tmp8.i, label %default163 [ + i32 1, label %case37 + i32 2, label %case44 + i32 5, label %case52 + i32 8, label %case60 + i32 11, label %case68 + i32 6, label %case76 + i32 9, label %case84 + i32 12, label %case92 + i32 7, label %case100 + i32 10, label %case108 + i32 13, label %case116 + i32 15, label %case124 + i32 16, label %case142 + ] + +case37: ; preds = %case30 + %this39 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %6 = bitcast i8* %this39 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp40 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %6 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %7 = bitcast i8* %frags to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp42 = load %"tango.text.Regex.List!(TNFAFragment).List"** %7 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA15constructConcatMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp40, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp42) + br label %switchend33 + +case44: ; preds = %case30 + %this46 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %8 = bitcast i8* %this46 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp47 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %8 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags49 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %9 = bitcast i8* %frags49 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp50 = load %"tango.text.Regex.List!(TNFAFragment).List"** %9 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA15constructAlternMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp47, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp50) + br label %switchend33 + +case52: ; preds = %case30 + %this54 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %10 = bitcast i8* %this54 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp55 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %10 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags57 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %11 = bitcast i8* %frags57 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp58 = load %"tango.text.Regex.List!(TNFAFragment).List"** %11 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructZeroOneMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp55, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp58, i32 0) + br label %switchend33 + +case60: ; preds = %case30 + %this62 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %12 = bitcast i8* %this62 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp63 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %12 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags65 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %13 = bitcast i8* %frags65 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp66 = load %"tango.text.Regex.List!(TNFAFragment).List"** %13 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructZeroOneMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp63, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp66, i32 2) + br label %switchend33 + +case68: ; preds = %case30 + %this70 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %14 = bitcast i8* %this70 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp71 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %14 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags73 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %15 = bitcast i8* %frags73 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp74 = load %"tango.text.Regex.List!(TNFAFragment).List"** %15 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructZeroOneMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp71, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp74, i32 3) + br label %switchend33 + +case76: ; preds = %case30 + %this78 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %16 = bitcast i8* %this78 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp79 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %16 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags81 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %17 = bitcast i8* %frags81 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp82 = load %"tango.text.Regex.List!(TNFAFragment).List"** %17 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA17constructZeroMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp79, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp82, i32 0) + br label %switchend33 + +case84: ; preds = %case30 + %this86 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %18 = bitcast i8* %this86 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp87 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %18 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags89 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %19 = bitcast i8* %frags89 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp90 = load %"tango.text.Regex.List!(TNFAFragment).List"** %19 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA17constructZeroMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp87, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp90, i32 2) + br label %switchend33 + +case92: ; preds = %case30 + %this94 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %20 = bitcast i8* %this94 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp95 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %20 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags97 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %21 = bitcast i8* %frags97 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp98 = load %"tango.text.Regex.List!(TNFAFragment).List"** %21 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA17constructZeroMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp95, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp98, i32 3) + br label %switchend33 + +case100: ; preds = %case30 + %this102 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %22 = bitcast i8* %this102 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp103 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %22 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags105 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %23 = bitcast i8* %frags105 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp106 = load %"tango.text.Regex.List!(TNFAFragment).List"** %23 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructOneMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp103, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp106, i32 0) + br label %switchend33 + +case108: ; preds = %case30 + %this110 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %24 = bitcast i8* %this110 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp111 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %24 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags113 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %25 = bitcast i8* %frags113 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp114 = load %"tango.text.Regex.List!(TNFAFragment).List"** %25 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructOneMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp111, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp114, i32 2) + br label %switchend33 + +case116: ; preds = %case30 + %this118 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %26 = bitcast i8* %this118 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp119 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %26 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags121 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %27 = bitcast i8* %frags121 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp122 = load %"tango.text.Regex.List!(TNFAFragment).List"** %27 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructOneMoreMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp119, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp122, i32 3) + br label %switchend33 + +case124: ; preds = %case30 + %occurStack = getelementptr i8* %.nest_arg, i32 32 ; [#uses=1] + %tmp3.i389 = bitcast i8* %occurStack to i32* ; [#uses=2] + %tmp6.i390 = load i32* %tmp3.i389 ; [#uses=1] + %tmp7.i391 = add i32 %tmp6.i390, -1 ; [#uses=2] + store i32 %tmp7.i391, i32* %tmp3.i389 + %tmp8.i392 = getelementptr i8* %.nest_arg, i32 40 ; [#uses=1] + %28 = bitcast i8* %tmp8.i392 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr.i393 = load %tango.net.Socket.timeval** %28 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp9.i394 = getelementptr %tango.net.Socket.timeval* %.ptr.i393, i32 %tmp7.i391 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1112.i = bitcast %tango.net.Socket.timeval* %tmp9.i394 to i64* ; [#uses=1] + %tmp.i = load i64* %tmp1112.i, align 1 ; [#uses=2] + %sroa.store.elt456 = lshr i64 %tmp.i, 32 ; [#uses=1] + %this129 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %29 = bitcast i8* %this129 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp130 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %29 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags132 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %30 = bitcast i8* %frags132 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp133 = load %"tango.text.Regex.List!(TNFAFragment).List"** %30 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + %tmp347 = trunc i64 %sroa.store.elt456 to i32 ; [#uses=1] + %tmp344 = trunc i64 %tmp.i to i32 ; [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructOccurMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListkkE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp130, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp133, i32 %tmp347, i32 %tmp344, i32 0) + br label %switchend33 + +case142: ; preds = %case30 + %occurStack145 = getelementptr i8* %.nest_arg, i32 32 ; [#uses=1] + %tmp3.i446 = bitcast i8* %occurStack145 to i32* ; [#uses=2] + %tmp6.i447 = load i32* %tmp3.i446 ; [#uses=1] + %tmp7.i448 = add i32 %tmp6.i447, -1 ; [#uses=2] + store i32 %tmp7.i448, i32* %tmp3.i446 + %tmp8.i449 = getelementptr i8* %.nest_arg, i32 40 ; [#uses=1] + %31 = bitcast i8* %tmp8.i449 to %tango.net.Socket.timeval** ; <%tango.net.Socket.timeval**> [#uses=1] + %.ptr.i450 = load %tango.net.Socket.timeval** %31 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp9.i451 = getelementptr %tango.net.Socket.timeval* %.ptr.i450, i32 %tmp7.i448 ; <%tango.net.Socket.timeval*> [#uses=1] + %tmp1112.i452 = bitcast %tango.net.Socket.timeval* %tmp9.i451 to i64* ; [#uses=1] + %tmp.i454 = load i64* %tmp1112.i452, align 1 ; [#uses=2] + %sroa.store.elt = lshr i64 %tmp.i454, 32 ; [#uses=1] + %this150 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %32 = bitcast i8* %this150 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp151 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %32 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags153 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %33 = bitcast i8* %frags153 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp154 = load %"tango.text.Regex.List!(TNFAFragment).List"** %33 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + %tmp342 = trunc i64 %sroa.store.elt to i32 ; [#uses=1] + %tmp339 = trunc i64 %tmp.i454 to i32 ; [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA14constructOccurMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListkkE5tango4text5Regex13PriorityClassZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp151, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp154, i32 %tmp342, i32 %tmp339, i32 2) + br label %switchend33 + +default163: ; preds = %case30 + %.newclass_gc_alloc = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc = bitcast i8* %.newclass_gc_alloc to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl = bitcast i8* %.newclass_gc_alloc to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl + %monitor = getelementptr i8* %.newclass_gc_alloc, i32 4 ; [#uses=1] + %34 = bitcast i8* %monitor to i8** ; [#uses=1] + store i8* null, i8** %34 + %tmp164 = getelementptr i8* %.newclass_gc_alloc, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp164, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %this169 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %35 = bitcast i8* %this169 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp170 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %35 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=3] + %tmp172 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp170, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr173 = load i32** %tmp172 ; [#uses=1] + %tmp177 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp170, i32 0, i32 7 ; [#uses=1] + %tmp178 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp170, i32 0, i32 2, i32 0 ; [#uses=1] + %.len = load i32* %tmp178 ; [#uses=1] + %tmp179 = load i32* %tmp177 ; [#uses=2] + %tmp180 = getelementptr i32* %.ptr173, i32 %tmp179 ; [#uses=1] + %tmp181 = sub i32 %.len, %tmp179 ; [#uses=1] + %tmp182 = insertvalue %"Act[]" undef, i32 %tmp181, 0 ; <%"Act[]"> [#uses=1] + %tmp183 = insertvalue %"Act[]" %tmp182, i32* %tmp180, 1 ; <%"Act[]"> [#uses=1] + %tmp184 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp183, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=2] + %.len185 = extractvalue %"byte[]" %tmp184, 0 ; [#uses=4] + %tmp186 = add i32 %.len185, 27 ; [#uses=3] + %.nongc_mem = alloca i8, i32 %tmp186, align 1 ; [#uses=3] + %.ptr187 = extractvalue %"byte[]" %tmp184, 1 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %.nongc_mem, i8* getelementptr ([28 x i8]* @.str211, i32 0, i32 0), i32 27, i32 1) + %tmp188 = getelementptr i8* %.nongc_mem, i32 27 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp188, i8* %.ptr187, i32 %.len185, i32 1) + %tmp190 = add i32 %.len185, 28 ; [#uses=2] + %.nongc_mem459 = alloca i8, i32 %tmp190, align 1 ; [#uses=3] + call void @llvm.memcpy.i32(i8* %.nongc_mem459, i8* %.nongc_mem, i32 %tmp186, i32 1) + %tmp193 = getelementptr i8* %.nongc_mem459, i32 %tmp186 ; [#uses=1] + store i8 34, i8* %tmp193, align 1 + %tmp2.i438 = add i32 %.len185, 36 ; [#uses=2] + %.gc_mem.i439 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i438) ; [#uses=3] + %.gc_mem12.i440 = bitcast i8* %.gc_mem.i439 to i64* ; [#uses=1] + %tmp.i441 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i441, i64* %.gc_mem12.i440, align 1 + %tmp4.i442 = getelementptr i8* %.gc_mem.i439, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i442, i8* %.nongc_mem459, i32 %tmp190, i32 1) + %tmp6.i443 = insertvalue %"byte[]" undef, i32 %tmp2.i438, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i444 = insertvalue %"byte[]" %tmp6.i443, i8* %.gc_mem.i439, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i445 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc, %"byte[]" %tmp7.i444, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp197 = bitcast i8* %.newclass_gc_alloc to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp197) + unreachable + +switchend33: ; preds = %case142, %case124, %case116, %case108, %case100, %case92, %case84, %case76, %case68, %case60, %case52, %case44, %case37 + %tmp6.i430 = load i32* %tmp3.i ; [#uses=1] + %tmp7.i431 = add i32 %tmp6.i430, -1 ; [#uses=1] + store i32 %tmp7.i431, i32* %tmp3.i + %tmp202 = call fastcc i1 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv7performMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorbZb(i8* %.nest_arg, i32 %next_op_arg, i1 false) ; [#uses=0] + ret i1 false + +case204: ; preds = %entry + store i32 %tmp5.i, i32* %tmp3.i + ret i1 false + +case209: ; preds = %entry + %tmp213 = icmp eq i32 %tmp8.i, 3 ; [#uses=1] + br i1 %tmp213, label %if214, label %else + +if214: ; preds = %case209 + %tagStack217 = getelementptr i8* %.nest_arg, i32 20 ; [#uses=1] + %tmp1.i409 = bitcast i8* %tagStack217 to i32* ; [#uses=3] + %tmp2.i410 = load i32* %tmp1.i409 ; [#uses=2] + %tmp3.i411 = icmp eq i32 %tmp2.i410, 0 ; [#uses=1] + br i1 %tmp3.i411, label %if219, label %endif220 + +if219: ; preds = %if214 + %.newclass_gc_alloc221 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc222 = bitcast i8* %.newclass_gc_alloc221 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl223 = bitcast i8* %.newclass_gc_alloc221 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl223 + %monitor224 = getelementptr i8* %.newclass_gc_alloc221, i32 4 ; [#uses=1] + %36 = bitcast i8* %monitor224 to i8** ; [#uses=1] + store i8* null, i8** %36 + %tmp225 = getelementptr i8* %.newclass_gc_alloc221, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp225, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %layout = bitcast i8* %.nest_arg to %"tango.text.convert.Layout.Layout!(char).Layout"** ; <%"tango.text.convert.Layout.Layout!(char).Layout"**> [#uses=1] + %tmp230 = load %"tango.text.convert.Layout.Layout!(char).Layout"** %layout ; <%"tango.text.convert.Layout.Layout!(char).Layout"*> [#uses=1] + %tmp231 = getelementptr %35* %_argptr_storage, i32 0, i32 0 ; [#uses=1] + %this233 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %37 = bitcast i8* %this233 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp234 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %37 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=3] + %tmp235 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp234, i32 0, i32 7 ; [#uses=2] + %tmp236 = load i32* %tmp235 ; [#uses=1] + store i32 %tmp236, i32* %tmp231, align 8 + %tmp237 = getelementptr %35* %_argptr_storage, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp242 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp234, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr243 = load i32** %tmp242 ; [#uses=1] + %tmp248 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp234, i32 0, i32 2, i32 0 ; [#uses=1] + %.len249 = load i32* %tmp248 ; [#uses=1] + %tmp250 = load i32* %tmp235 ; [#uses=2] + %tmp251 = getelementptr i32* %.ptr243, i32 %tmp250 ; [#uses=1] + %tmp252 = sub i32 %.len249, %tmp250 ; [#uses=1] + %tmp253 = insertvalue %"Act[]" undef, i32 %tmp252, 0 ; <%"Act[]"> [#uses=1] + %tmp254 = insertvalue %"Act[]" %tmp253, i32* %tmp251, 1 ; <%"Act[]"> [#uses=1] + %tmp255 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp254, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp255, %"byte[]"* %tmp237 + %tmp257 = bitcast %35* %_argptr_storage to i8* ; [#uses=1] + %tmp4.i408 = call fastcc %"byte[]" @_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFAC8TypeInfoPvAaZAa(%"tango.text.convert.Layout.Layout!(char).Layout"* %tmp230, %"TypeInfo[]" { i32 2, %object.TypeInfo** getelementptr ([2 x %object.TypeInfo*]* @._arguments.storage, i32 0, i32 0) }, i8* %tmp257, %"byte[]" { i32 67, i8* getelementptr ([68 x i8]* @.str213, i32 0, i32 0) }) ; <%"byte[]"> [#uses=2] + %msg_arg10.i = extractvalue %"byte[]" %tmp4.i408, 0 ; [#uses=2] + %msg_arg11.i = extractvalue %"byte[]" %tmp4.i408, 1 ; [#uses=1] + %tmp2.i = add i32 %msg_arg10.i, 8 ; [#uses=2] + %.gc_mem.i402 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i) ; [#uses=3] + %.gc_mem12.i = bitcast i8* %.gc_mem.i402 to i64* ; [#uses=1] + %tmp.i403 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i403, i64* %.gc_mem12.i, align 1 + %tmp4.i404 = getelementptr i8* %.gc_mem.i402, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i404, i8* %msg_arg11.i, i32 %msg_arg10.i, i32 1) + %tmp6.i405 = insertvalue %"byte[]" undef, i32 %tmp2.i, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i406 = insertvalue %"byte[]" %tmp6.i405, i8* %.gc_mem.i402, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i407 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc222, %"byte[]" %tmp7.i406, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp260 = bitcast i8* %.newclass_gc_alloc221 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp260) + unreachable + +endif220: ; preds = %if214 + %this263 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %38 = bitcast i8* %this263 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp264 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %38 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags266 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %39 = bitcast i8* %frags266 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp267 = load %"tango.text.Regex.List!(TNFAFragment).List"** %39 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + %tmp5.i397 = add i32 %tmp2.i410, -1 ; [#uses=1] + %tmp6.i398 = getelementptr i8* %.nest_arg, i32 28 ; [#uses=1] + %40 = bitcast i8* %tmp6.i398 to i32** ; [#uses=1] + %.ptr.i399 = load i32** %40 ; [#uses=1] + %tmp7.i400 = getelementptr i32* %.ptr.i399, i32 %tmp5.i397 ; [#uses=1] + %tmp8.i401 = load i32* %tmp7.i400 ; [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructBracketMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListkZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp264, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp267, i32 %tmp8.i401) + %tmp6.i383 = load i32* %tmp1.i409 ; [#uses=1] + %tmp7.i384 = add i32 %tmp6.i383, -1 ; [#uses=1] + store i32 %tmp7.i384, i32* %tmp1.i409 + br label %endif215 + +else: ; preds = %case209 + %this275 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %41 = bitcast i8* %this275 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp276 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %41 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %frags278 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %42 = bitcast i8* %frags278 to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp279 = load %"tango.text.Regex.List!(TNFAFragment).List"** %42 ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + call fastcc void @_D5tango4text5Regex11__T4TNFATwZ4TNFA16constructBracketMFC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4ListkZv(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp276, %"tango.text.Regex.List!(TNFAFragment).List"* %tmp279, i32 0) + br label %endif215 + +endif215: ; preds = %else, %endif220 + %tmp6.i356 = load i32* %tmp3.i ; [#uses=1] + %tmp7.i357 = add i32 %tmp6.i356, -1 ; [#uses=1] + store i32 %tmp7.i357, i32* %tmp3.i + ret i1 false + +case284: ; preds = %entry + ret i1 true + +default286: ; preds = %entry + %.newclass_gc_alloc287 = call noalias i8* @_d_allocclass(%object.ClassInfo* @_D5tango4text5Regex15RegExpException7__ClassZ) ; [#uses=5] + %.newclass_gc288 = bitcast i8* %.newclass_gc_alloc287 to %object.Exception* ; <%object.Exception*> [#uses=1] + %vtbl289 = bitcast i8* %.newclass_gc_alloc287 to %object.Exception.__vtbl** ; <%object.Exception.__vtbl**> [#uses=1] + store %object.Exception.__vtbl* @_D5tango4text5Regex15RegExpException6__vtblZ, %object.Exception.__vtbl** %vtbl289 + %monitor290 = getelementptr i8* %.newclass_gc_alloc287, i32 4 ; [#uses=1] + %43 = bitcast i8* %monitor290 to i8** ; [#uses=1] + store i8* null, i8** %43 + %tmp291 = getelementptr i8* %.newclass_gc_alloc287, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp291, i8* bitcast (%"byte[]"* getelementptr (%object.Exception* bitcast (%28* @_D5tango4text5Regex15RegExpException6__initZ to %object.Exception*), i32 0, i32 2) to i8*), i32 28, i32 1) + %layout296 = bitcast i8* %.nest_arg to %"tango.text.convert.Layout.Layout!(char).Layout"** ; <%"tango.text.convert.Layout.Layout!(char).Layout"**> [#uses=1] + %tmp297 = load %"tango.text.convert.Layout.Layout!(char).Layout"** %layout296 ; <%"tango.text.convert.Layout.Layout!(char).Layout"*> [#uses=1] + %tmp299 = getelementptr %nest.parseListLine* %_argptr_storage298, i32 0, i32 0 ; [#uses=1] + %this301 = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %44 = bitcast i8* %this301 to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=2] + %tmp302 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %44 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=3] + %tmp303 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp302, i32 0, i32 7 ; [#uses=2] + %tmp304 = load i32* %tmp303 ; [#uses=1] + store i32 %tmp304, i32* %tmp299, align 8 + %tmp305 = getelementptr %nest.parseListLine* %_argptr_storage298, i32 0, i32 1 ; <%"byte[]"*> [#uses=1] + %tmp310 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp302, i32 0, i32 2, i32 1 ; [#uses=1] + %.ptr311 = load i32** %tmp310 ; [#uses=1] + %tmp316 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp302, i32 0, i32 2, i32 0 ; [#uses=1] + %.len317 = load i32* %tmp316 ; [#uses=1] + %tmp318 = load i32* %tmp303 ; [#uses=2] + %tmp319 = getelementptr i32* %.ptr311, i32 %tmp318 ; [#uses=1] + %tmp320 = sub i32 %.len317, %tmp318 ; [#uses=1] + %tmp321 = insertvalue %"Act[]" undef, i32 %tmp320, 0 ; <%"Act[]"> [#uses=1] + %tmp322 = insertvalue %"Act[]" %tmp321, i32* %tmp319, 1 ; <%"Act[]"> [#uses=1] + %tmp323 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp322, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp323, %"byte[]"* %tmp305 + %tmp324 = getelementptr %nest.parseListLine* %_argptr_storage298, i32 0, i32 2 ; <%"byte[]"*> [#uses=1] + %tmp327 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %44 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp328 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp327, i32 0, i32 2 ; <%"Act[]"*> [#uses=1] + %tmp329 = load %"Act[]"* %tmp328 ; <%"Act[]"> [#uses=1] + %tmp330 = call fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]" %tmp329, %"byte[]" zeroinitializer, i32* null) ; <%"byte[]"> [#uses=1] + store %"byte[]" %tmp330, %"byte[]"* %tmp324 + %tmp332 = bitcast %nest.parseListLine* %_argptr_storage298 to i8* ; [#uses=1] + %tmp4.i354 = call fastcc %"byte[]" @_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFAC8TypeInfoPvAaZAa(%"tango.text.convert.Layout.Layout!(char).Layout"* %tmp297, %"TypeInfo[]" { i32 3, %object.TypeInfo** getelementptr ([3 x %object.TypeInfo*]* @._arguments.storage214, i32 0, i32 0) }, i8* %tmp332, %"byte[]" { i32 42, i8* getelementptr ([43 x i8]* @.str216, i32 0, i32 0) }) ; <%"byte[]"> [#uses=2] + %msg_arg10.i419 = extractvalue %"byte[]" %tmp4.i354, 0 ; [#uses=2] + %msg_arg11.i420 = extractvalue %"byte[]" %tmp4.i354, 1 ; [#uses=1] + %tmp2.i421 = add i32 %msg_arg10.i419, 8 ; [#uses=2] + %.gc_mem.i422 = call noalias i8* @_d_newarrayvT(%object.TypeInfo* @_D11TypeInfo_Aa6__initZ, i32 %tmp2.i421) ; [#uses=3] + %.gc_mem12.i423 = bitcast i8* %.gc_mem.i422 to i64* ; [#uses=1] + %tmp.i424 = load i64* bitcast ([9 x i8]* @.str280 to i64*), align 8 ; [#uses=1] + store i64 %tmp.i424, i64* %.gc_mem12.i423, align 1 + %tmp4.i425 = getelementptr i8* %.gc_mem.i422, i32 8 ; [#uses=1] + call void @llvm.memcpy.i32(i8* %tmp4.i425, i8* %msg_arg11.i420, i32 %msg_arg10.i419, i32 1) + %tmp6.i426 = insertvalue %"byte[]" undef, i32 %tmp2.i421, 0 ; <%"byte[]"> [#uses=1] + %tmp7.i427 = insertvalue %"byte[]" %tmp6.i426, i8* %.gc_mem.i422, 1 ; <%"byte[]"> [#uses=1] + %tmp8.i428 = call fastcc %object.Exception* @_D6object9Exception5_ctorMFAaC9ExceptionZC9Exception(%object.Exception* %.newclass_gc288, %"byte[]" %tmp7.i427, %object.Exception* null) ; <%object.Exception*> [#uses=0] + %tmp335 = bitcast i8* %.newclass_gc_alloc287 to %object.Object* ; <%object.Object*> [#uses=1] + call void @_d_throw_exception(%object.Object* %tmp335) + unreachable + +switchend: ; preds = %_D5tango4text5Regex56__T5StackTE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZ5Stack4pushMFE5tango4text5Regex11__T4TNFATwZ4TNFA8OperatorZv.exit + ret i1 false +} + +declare fastcc %"byte[]" @_D5tango4text7convert3Utf8toStringFAwAaPkZAa(%"Act[]", %"byte[]", i32*) + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv15__foreachbody44MFKC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %__applyArg0_arg ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=3] + %tmp2 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp, i32 0, i32 0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"**> [#uses=2] + %tmp3 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f.setExit@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp3, i32 0, i32 6 ; [#uses=1] + %f.setExit = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f.setExit@vtbl", align 4 ; [#uses=1] + %finish = getelementptr i8* %.nest_arg, i32 44 ; [#uses=1] + %0 = bitcast i8* %finish to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %0 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + tail call fastcc void %f.setExit(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp6) + %tmp9 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"** %tmp2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"*> [#uses=1] + %"f.setEntry@vtbl" = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment.__vtbl"* %tmp9, i32 0, i32 5 ; [#uses=1] + %f.setEntry = load void (%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*, %"tango.text.Regex.TNFAState!(dchar).TNFAState"*)** %"f.setEntry@vtbl", align 4 ; [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 64 ; [#uses=1] + %1 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp12 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %1 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp13 = getelementptr %"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp12, i32 0, i32 4 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp14 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp13 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + tail call fastcc void %f.setEntry(%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp, %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp14) + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv15__foreachbody45MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %todo = getelementptr i8* %.nest_arg, i32 48 ; [#uses=1] + %tmp1.i = bitcast i8* %todo to i32* ; [#uses=4] + %tmp4.i = getelementptr i8* %.nest_arg, i32 52 ; [#uses=1] + %0 = bitcast i8* %tmp4.i to i32* ; [#uses=2] + %.len.i = load i32* %0 ; [#uses=3] + %tmp5.i = load i32* %tmp1.i ; [#uses=2] + %tmp6.i = icmp ult i32 %tmp5.i, %.len.i ; [#uses=1] + br i1 %tmp6.i, label %entry.endif_crit_edge.i, label %if.i + +entry.endif_crit_edge.i: ; preds = %entry + %tmp26.pre.i = getelementptr i8* %.nest_arg, i32 56 ; [#uses=1] + %1 = bitcast i8* %tmp26.pre.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=1] + %.ptr27.i.pre = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %1 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + br label %_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack4pushMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZv.exit + +if.i: ; preds = %entry + %tmp13.i = shl i32 %.len.i, 1 ; [#uses=1] + %tmp1437.i = or i32 %tmp13.i, 1 ; [#uses=2] + %tmp17.i = getelementptr i8* %.nest_arg, i32 56 ; [#uses=1] + %2 = bitcast i8* %tmp17.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"***> [#uses=2] + %.ptr.i = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp18.i = bitcast %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr.i to i8* ; [#uses=1] + %.gc_mem.i = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D68TypeInfo_AC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition6__initZ to %object.TypeInfo*), i32 %tmp1437.i, i32 %.len.i, i8* %tmp18.i) ; [#uses=1] + %.gc_mem19.i = bitcast i8* %.gc_mem.i to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=2] + store i32 %tmp1437.i, i32* %0 + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.gc_mem19.i, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*** %2 + %tmp28.pre.i = load i32* %tmp1.i ; [#uses=1] + br label %_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack4pushMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZv.exit + +_D5tango4text5Regex69__T5StackTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ5Stack4pushMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZv.exit: ; preds = %if.i, %entry.endif_crit_edge.i + %.ptr27.i = phi %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** [ %.ptr27.i.pre, %entry.endif_crit_edge.i ], [ %.gc_mem19.i, %if.i ] ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp28.i = phi i32 [ %tmp5.i, %entry.endif_crit_edge.i ], [ %tmp28.pre.i, %if.i ] ; [#uses=1] + %tmp29.i = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %.ptr27.i, i32 %tmp28.i ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + store %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp29.i + %tmp35.i = load i32* %tmp1.i ; [#uses=1] + %tmp36.i = add i32 %tmp35.i, 1 ; [#uses=1] + store i32 %tmp36.i, i32* %tmp1.i + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5parseMFbZv15__foreachbody46MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) nounwind { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp2 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp, i32 0, i32 4 ; [#uses=1] + %nextPrio = getelementptr i8* %.nest_arg, i32 60 ; [#uses=1] + %0 = bitcast i8* %nextPrio to i32* ; [#uses=2] + %tmp4 = load i32* %0 ; [#uses=2] + %tmp5 = add i32 %tmp4, 1 ; [#uses=1] + store i32 %tmp5, i32* %0 + store i32 %tmp4, i32* %tmp2 + ret i32 0 +} + +declare fastcc i32 @_D5tango4text5Regex6decodeFAwKkZw(%"Act[]", i32*) + +declare i8* @_d_arraysetlengthT(%object.TypeInfo*, i32, i32, i8*) + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZC5tango4text5Regex16__T9TNFAStateTwZ9TNFAState15__foreachbody47MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %s2 = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %s2 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + %tmp3 = getelementptr %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp2, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"s2.transitions.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %s2.transitions.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"s2.transitions.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %0 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp11 = tail call fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp9, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp) ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp12 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %s2.transitions.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp11) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody48MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %f2 = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %f2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp3 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp2, i32 0, i32 2 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f2.entries.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f2.entries.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f2.entries.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %0 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp11 = tail call fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp9, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp) ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp12 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f2.entries.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp11) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody49MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %f2 = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %f2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp3 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp2, i32 0, i32 3 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f2.exits.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f2.exits.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f2.exits.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %0 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp11 = tail call fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp9, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp) ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp12 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f2.exits.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp11) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody50MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %f2 = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %f2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp3 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp2, i32 0, i32 4 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f2.entry_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f2.entry_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f2.entry_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %0 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp11 = tail call fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp9, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp) ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp12 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f2.entry_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp11) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment15__foreachbody51MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %f2 = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp2 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %f2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp3 = getelementptr %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp2, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.List!(TNFATransition).List"** %tmp3 ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp5 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp4, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp6 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp5 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"f2.exit_state.opCatAssign@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp6, i32 0, i32 5 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %f2.exit_state.opCatAssign = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"f2.exit_state.opCatAssign@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %this = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %this to %"tango.text.Regex.TNFA!(dchar).TNFA"** ; <%"tango.text.Regex.TNFA!(dchar).TNFA"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.TNFA!(dchar).TNFA"** %0 ; <%"tango.text.Regex.TNFA!(dchar).TNFA"*> [#uses=1] + %tmp11 = tail call fastcc %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* @_D5tango4text5Regex11__T4TNFATwZ4TNFA5cloneMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransition(%"tango.text.Regex.TNFA!(dchar).TNFA"* %tmp9, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp) ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp12 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %f2.exit_state.opCatAssign(%"tango.text.Regex.List!(TNFATransition).List"* %tmp4, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp11) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=0] + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List11insertAfterMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List15__foreachbody52MFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZi(i8* nocapture %.nest_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %__applyArg0_arg ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp2 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %w = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %w to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp5 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %0 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp6 = icmp eq %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp4, %tmp5 ; [#uses=1] + br i1 %tmp6, label %if, label %endif + +if: ; preds = %entry + %__result = getelementptr i8* %.nest_arg, i32 12 ; [#uses=1] + %1 = bitcast i8* %__result to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %this = bitcast i8* %.nest_arg to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.List!(TNFATransition).List"** %this ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp9, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp11 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp10 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.insertAfter@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp11, i32 0, i32 7 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.insertAfter = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.insertAfter@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %v = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %2 = bitcast i8* %v to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp15 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp16 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.insertAfter(%"tango.text.Regex.List!(TNFATransition).List"* %tmp9, %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp15) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp16, %"tango.text.Regex.List!(TNFATransition).List"** %1 + ret i32 2 + +endif: ; preds = %entry + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List12insertBeforeMFC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List15__foreachbody53MFKC5tango4text5Regex68__T4ListTC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZ4List7ElementZi(i8* nocapture %.nest_arg, %"tango.text.Regex.List!(TNFATransition).List.Element"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.List!(TNFATransition).List.Element"** %__applyArg0_arg ; <%"tango.text.Regex.List!(TNFATransition).List.Element"*> [#uses=2] + %tmp2 = getelementptr %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp, i32 0, i32 2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %w = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %w to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %tmp2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp5 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %0 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp6 = icmp eq %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp4, %tmp5 ; [#uses=1] + br i1 %tmp6, label %if, label %endif + +if: ; preds = %entry + %__result = getelementptr i8* %.nest_arg, i32 12 ; [#uses=1] + %1 = bitcast i8* %__result to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %this = bitcast i8* %.nest_arg to %"tango.text.Regex.List!(TNFATransition).List"** ; <%"tango.text.Regex.List!(TNFATransition).List"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.List!(TNFATransition).List"** %this ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=2] + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFATransition).List"* %tmp9, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"**> [#uses=1] + %tmp11 = load %"tango.text.Regex.List!(TNFATransition).List.__vtbl"** %tmp10 ; <%"tango.text.Regex.List!(TNFATransition).List.__vtbl"*> [#uses=1] + %"this.insertBefore@vtbl" = getelementptr %"tango.text.Regex.List!(TNFATransition).List.__vtbl"* %tmp11, i32 0, i32 11 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)**> [#uses=1] + %this.insertBefore = load %"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)** %"this.insertBefore@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFATransition).List"* (%"tango.text.Regex.List!(TNFATransition).List"*, %"tango.text.Regex.List!(TNFATransition).List.Element"*, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*)*> [#uses=1] + %v = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %2 = bitcast i8* %v to %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"**> [#uses=1] + %tmp15 = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %2 ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp16 = tail call fastcc %"tango.text.Regex.List!(TNFATransition).List"* %this.insertBefore(%"tango.text.Regex.List!(TNFATransition).List"* %tmp9, %"tango.text.Regex.List!(TNFATransition).List.Element"* %tmp, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp15) ; <%"tango.text.Regex.List!(TNFATransition).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFATransition).List"* %tmp16, %"tango.text.Regex.List!(TNFATransition).List"** %1 + ret i32 2 + +endif: ; preds = %entry + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment8setEntryMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv15__foreachbody54MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) nounwind { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp2 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp, i32 0, i32 2 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %state = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %state ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp4, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp2 + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragment7setExitMFC5tango4text5Regex16__T9TNFAStateTwZ9TNFAStateZv15__foreachbody55MFKC5tango4text5Regex22__T14TNFATransitionTwZ14TNFATransitionZi(i8* nocapture %.nest_arg, %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** nocapture %__applyArg0_arg) nounwind { +entry: + %tmp = load %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"** %__applyArg0_arg ; <%"tango.text.Regex.TNFATransition!(dchar).TNFATransition"*> [#uses=1] + %tmp2 = getelementptr %"tango.text.Regex.TNFATransition!(dchar).TNFATransition"* %tmp, i32 0, i32 2 ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %state = bitcast i8* %.nest_arg to %"tango.text.Regex.TNFAState!(dchar).TNFAState"** ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %state ; <%"tango.text.Regex.TNFAState!(dchar).TNFAState"*> [#uses=1] + store %"tango.text.Regex.TNFAState!(dchar).TNFAState"* %tmp4, %"tango.text.Regex.TNFAState!(dchar).TNFAState"** %tmp2 + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List11insertAfterMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List15__foreachbody56MFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZi(i8* nocapture %.nest_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %__applyArg0_arg ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp2 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %w = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %w to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp5 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp6 = icmp eq %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp4, %tmp5 ; [#uses=1] + br i1 %tmp6, label %if, label %endif + +if: ; preds = %entry + %__result = getelementptr i8* %.nest_arg, i32 12 ; [#uses=1] + %1 = bitcast i8* %__result to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %this = bitcast i8* %.nest_arg to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.List!(TNFAFragment).List"** %this ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp9, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp11 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp10 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"this.insertAfter@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp11, i32 0, i32 7 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %this.insertAfter = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"this.insertAfter@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %v = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %2 = bitcast i8* %v to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp15 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp16 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %this.insertAfter(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp9, %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp15) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %tmp16, %"tango.text.Regex.List!(TNFAFragment).List"** %1 + ret i32 2 + +endif: ; preds = %entry + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List12insertBeforeMFC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List15__foreachbody57MFKC5tango4text5Regex64__T4ListTC5tango4text5Regex20__T12TNFAFragmentTwZ12TNFAFragmentZ4List7ElementZi(i8* nocapture %.nest_arg, %"tango.text.Regex.List!(TNFAFragment).List.Element"** nocapture %__applyArg0_arg) { +entry: + %tmp = load %"tango.text.Regex.List!(TNFAFragment).List.Element"** %__applyArg0_arg ; <%"tango.text.Regex.List!(TNFAFragment).List.Element"*> [#uses=2] + %tmp2 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp, i32 0, i32 2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %w = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %w to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp4 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %tmp2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp5 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %0 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp6 = icmp eq %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp4, %tmp5 ; [#uses=1] + br i1 %tmp6, label %if, label %endif + +if: ; preds = %entry + %__result = getelementptr i8* %.nest_arg, i32 12 ; [#uses=1] + %1 = bitcast i8* %__result to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %this = bitcast i8* %.nest_arg to %"tango.text.Regex.List!(TNFAFragment).List"** ; <%"tango.text.Regex.List!(TNFAFragment).List"**> [#uses=1] + %tmp9 = load %"tango.text.Regex.List!(TNFAFragment).List"** %this ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=2] + %tmp10 = getelementptr %"tango.text.Regex.List!(TNFAFragment).List"* %tmp9, i32 0, i32 0 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"**> [#uses=1] + %tmp11 = load %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"** %tmp10 ; <%"tango.text.Regex.List!(TNFAFragment).List.__vtbl"*> [#uses=1] + %"this.insertBefore@vtbl" = getelementptr %"tango.text.Regex.List!(TNFAFragment).List.__vtbl"* %tmp11, i32 0, i32 11 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)**> [#uses=1] + %this.insertBefore = load %"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)** %"this.insertBefore@vtbl", align 4 ; <%"tango.text.Regex.List!(TNFAFragment).List"* (%"tango.text.Regex.List!(TNFAFragment).List"*, %"tango.text.Regex.List!(TNFAFragment).List.Element"*, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*)*> [#uses=1] + %v = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %2 = bitcast i8* %v to %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"**> [#uses=1] + %tmp15 = load %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"** %2 ; <%"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"*> [#uses=1] + %tmp16 = tail call fastcc %"tango.text.Regex.List!(TNFAFragment).List"* %this.insertBefore(%"tango.text.Regex.List!(TNFAFragment).List"* %tmp9, %"tango.text.Regex.List!(TNFAFragment).List.Element"* %tmp, %"tango.text.Regex.TNFAFragment!(dchar).TNFAFragment"* %tmp15) ; <%"tango.text.Regex.List!(TNFAFragment).List"*> [#uses=1] + store %"tango.text.Regex.List!(TNFAFragment).List"* %tmp16, %"tango.text.Regex.List!(TNFAFragment).List"** %1 + ret i32 2 + +endif: ; preds = %entry + ret i32 0 +} + +define weak_odr fastcc i32 @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody41MFKAaZi(i8* nocapture %.nest_arg, %"byte[]"* nocapture %__applyArg0_arg) nounwind { +entry: + %count = bitcast i8* %.nest_arg to i32* ; [#uses=2] + %tmp4 = load i32* %count ; [#uses=1] + %tmp5 = add i32 %tmp4, 1 ; [#uses=1] + store i32 %tmp5, i32* %count + ret i32 0 +} + +declare noalias i8* @_d_newarrayT(%object.TypeInfo*, i32) + +define weak_odr fastcc i32 @_D5tango4text4Util18__T10splitLinesTaZ10splitLinesFAaZAAa15__foreachbody42MFKAaZi(i8* nocapture %.nest_arg, %"byte[]"* nocapture %__applyArg0_arg) nounwind { +entry: + %tmp = load %"byte[]"* %__applyArg0_arg ; <%"byte[]"> [#uses=1] + %count = bitcast i8* %.nest_arg to i32* ; [#uses=2] + %tmp3 = load i32* %count ; [#uses=2] + %tmp4 = add i32 %tmp3, 1 ; [#uses=1] + store i32 %tmp4, i32* %count + %tmp5 = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %0 = bitcast i8* %tmp5 to %"byte[]"** ; <%"byte[]"**> [#uses=1] + %.ptr = load %"byte[]"** %0 ; <%"byte[]"*> [#uses=1] + %tmp6 = getelementptr %"byte[]"* %.ptr, i32 %tmp3 ; <%"byte[]"*> [#uses=1] + store %"byte[]" %tmp, %"byte[]"* %tmp6 + ret i32 0 +} + +define weak_odr fastcc i1 @_D5tango4text7convert9TimeStamp14__T7dostimeTaZ7dostimeFAaKS5tango4time4Time4TimeZi2dtMFKPaZb(i8* nocapture %.nest_arg, i8** nocapture %p_arg) nounwind { +entry: + %tmp1 = getelementptr i8* %.nest_arg, i32 12 ; [#uses=1] + %0 = bitcast i8* %tmp1 to i32* ; [#uses=1] + %tmp.pre.i = load i8** %p_arg ; [#uses=1] + br label %whilecond.i + +whilecond.i: ; preds = %whilebody.i, %entry + %tmp10.i = phi i8* [ %tmp11.i, %whilebody.i ], [ %tmp.pre.i, %entry ] ; [#uses=3] + %value.0.i = phi i32 [ 0, %entry ], [ %tmp15.i, %whilebody.i ] ; [#uses=3] + %tmp1.i = load i8* %tmp10.i ; [#uses=1] + %tmp1.i.off = add i8 %tmp1.i, -48 ; [#uses=1] + %or.cond = icmp ult i8 %tmp1.i.off, 10 ; [#uses=1] + br i1 %or.cond, label %whilebody.i, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit + +whilebody.i: ; preds = %whilecond.i + %tmp9.i = mul i32 %value.0.i, 10 ; [#uses=1] + %tmp11.i = getelementptr i8* %tmp10.i, i32 1 ; [#uses=2] + store i8* %tmp11.i, i8** %p_arg + %tmp12.i = load i8* %tmp10.i ; [#uses=1] + %tmp13.i = zext i8 %tmp12.i to i32 ; [#uses=1] + %tmp14.i = add i32 %tmp9.i, %tmp13.i ; [#uses=1] + %tmp15.i = add i32 %tmp14.i, -48 ; [#uses=1] + br label %whilecond.i + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit: ; preds = %whilecond.i + store i32 %value.0.i, i32* %0 + %tmp3 = icmp eq i32 %value.0.i, 0 ; [#uses=1] + br i1 %tmp3, label %andandend10, label %andand + +andand: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit + %tmp4 = load i8** %p_arg ; [#uses=2] + %tmp5 = getelementptr i8* %tmp4, i32 1 ; [#uses=2] + store i8* %tmp5, i8** %p_arg + %tmp6 = load i8* %tmp4 ; [#uses=1] + %tmp8 = icmp eq i8 %tmp6, 45 ; [#uses=1] + br i1 %tmp8, label %andand9, label %andandend10 + +andand9: ; preds = %andand + %tmp13 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %1 = bitcast i8* %tmp13 to i32* ; [#uses=1] + br label %whilecond.i58 + +whilecond.i58: ; preds = %whilebody.i65, %andand9 + %tmp10.i54 = phi i8* [ %tmp11.i60, %whilebody.i65 ], [ %tmp5, %andand9 ] ; [#uses=3] + %value.0.i55 = phi i32 [ 0, %andand9 ], [ %tmp15.i64, %whilebody.i65 ] ; [#uses=3] + %tmp1.i56 = load i8* %tmp10.i54 ; [#uses=1] + %tmp1.i56.off = add i8 %tmp1.i56, -48 ; [#uses=1] + %or.cond72 = icmp ult i8 %tmp1.i56.off, 10 ; [#uses=1] + br i1 %or.cond72, label %whilebody.i65, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70 + +whilebody.i65: ; preds = %whilecond.i58 + %tmp9.i59 = mul i32 %value.0.i55, 10 ; [#uses=1] + %tmp11.i60 = getelementptr i8* %tmp10.i54, i32 1 ; [#uses=2] + store i8* %tmp11.i60, i8** %p_arg + %tmp12.i61 = load i8* %tmp10.i54 ; [#uses=1] + %tmp13.i62 = zext i8 %tmp12.i61 to i32 ; [#uses=1] + %tmp14.i63 = add i32 %tmp9.i59, %tmp13.i62 ; [#uses=1] + %tmp15.i64 = add i32 %tmp14.i63, -48 ; [#uses=1] + br label %whilecond.i58 + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70: ; preds = %whilecond.i58 + store i32 %value.0.i55, i32* %1 + %tmp15 = icmp eq i32 %value.0.i55, 0 ; [#uses=1] + br i1 %tmp15, label %andandend10, label %andand16 + +andand16: ; preds = %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70 + %tmp18 = load i8** %p_arg ; [#uses=2] + %tmp19 = getelementptr i8* %tmp18, i32 1 ; [#uses=2] + store i8* %tmp19, i8** %p_arg + %tmp20 = load i8* %tmp18 ; [#uses=1] + %tmp22 = icmp eq i8 %tmp20, 45 ; [#uses=1] + br i1 %tmp22, label %andand23, label %andandend10 + +andand23: ; preds = %andand16 + %tmp27 = getelementptr i8* %.nest_arg, i32 8 ; [#uses=1] + %2 = bitcast i8* %tmp27 to i32* ; [#uses=1] + br label %whilecond.i39 + +whilecond.i39: ; preds = %whilebody.i46, %andand23 + %tmp10.i35 = phi i8* [ %tmp11.i41, %whilebody.i46 ], [ %tmp19, %andand23 ] ; [#uses=3] + %value.0.i36 = phi i32 [ 0, %andand23 ], [ %tmp15.i45, %whilebody.i46 ] ; [#uses=3] + %tmp1.i37 = load i8* %tmp10.i35 ; [#uses=1] + %tmp1.i37.off = add i8 %tmp1.i37, -48 ; [#uses=1] + %or.cond73 = icmp ult i8 %tmp1.i37.off, 10 ; [#uses=1] + br i1 %or.cond73, label %whilebody.i46, label %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit51 + +whilebody.i46: ; preds = %whilecond.i39 + %tmp9.i40 = mul i32 %value.0.i36, 10 ; [#uses=1] + %tmp11.i41 = getelementptr i8* %tmp10.i35, i32 1 ; [#uses=2] + store i8* %tmp11.i41, i8** %p_arg + %tmp12.i42 = load i8* %tmp10.i35 ; [#uses=1] + %tmp13.i43 = zext i8 %tmp12.i42 to i32 ; [#uses=1] + %tmp14.i44 = add i32 %tmp9.i40, %tmp13.i43 ; [#uses=1] + %tmp15.i45 = add i32 %tmp14.i44, -48 ; [#uses=1] + br label %whilecond.i39 + +_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit51: ; preds = %whilecond.i39 + store i32 %value.0.i36, i32* %2 + %tmp29 = icmp ne i32 %value.0.i36, 0 ; [#uses=1] + ret i1 %tmp29 + +andandend10: ; preds = %andand16, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit70, %andand, %_D5tango4text7convert9TimeStamp15__T8parseIntTaZ8parseIntFKPaZi.exit + ret i1 false +} + +define weak_odr fastcc i32 @_D5tango4text4Util14__T7delimitTaZ7delimitFAaAaZAAa15__foreachbody43MFKAaZi(i8* nocapture %.nest_arg, %"byte[]"* nocapture %__applyArg0_arg) { +entry: + %tmp = load %"byte[]"* %__applyArg0_arg ; <%"byte[]"> [#uses=1] + %tmp2 = bitcast i8* %.nest_arg to i32* ; [#uses=2] + %.len = load i32* %tmp2 ; [#uses=3] + %tmp3 = add i32 %.len, 1 ; [#uses=2] + %tmp6 = getelementptr i8* %.nest_arg, i32 4 ; [#uses=1] + %0 = bitcast i8* %tmp6 to %"byte[]"** ; <%"byte[]"**> [#uses=2] + %.ptr = load %"byte[]"** %0 ; <%"byte[]"*> [#uses=1] + %tmp7 = bitcast %"byte[]"* %.ptr to i8* ; [#uses=1] + %.gc_mem = tail call i8* @_d_arraysetlengthT(%object.TypeInfo* bitcast (%object.TypeInfo_Array* @_D12TypeInfo_AAa6__initZ to %object.TypeInfo*), i32 %tmp3, i32 %.len, i8* %tmp7) ; [#uses=1] + %.gc_mem8 = bitcast i8* %.gc_mem to %"byte[]"* ; <%"byte[]"*> [#uses=2] + %tmp9 = getelementptr %"byte[]"* %.gc_mem8, i32 %.len ; <%"byte[]"*> [#uses=1] + store %"byte[]" %tmp, %"byte[]"* %tmp9 + store i32 %tmp3, i32* %tmp2 + store %"byte[]"* %.gc_mem8, %"byte[]"** %0 + ret i32 0 +} + +declare fastcc %"tango.text.Regex.RegExpT!(char).RegExpT"* @_D5tango4text5Regex14__T7RegExpTTaZ7RegExpT5_ctorMFAabbbZC5tango4text5Regex14__T7RegExpTTaZ7RegExpT(%"tango.text.Regex.RegExpT!(char).RegExpT"*, %"byte[]", i1, i1, i1) + +declare fastcc %"byte[]" @_D5tango4text7convert6Layout13__T6LayoutTaZ6Layout7convertMFAC8TypeInfoPvAaZAa(%"tango.text.convert.Layout.Layout!(char).Layout"*, %"TypeInfo[]", i8*, %"byte[]") + +declare i32 @strncasecmp(i8*, i8*, i32) + +define internal void @_D5tango3net3ftp9FtpClient16__moduleinfoCtorZ() nounwind { +moduleinfoCtorEntry: + %current = load %ModuleReference** @_Dmodule_ref ; <%ModuleReference*> [#uses=1] + store %ModuleReference* %current, %ModuleReference** getelementptr (%ModuleReference* @_D5tango3net3ftp9FtpClient11__moduleRefZ, i32 0, i32 0), align 8 + store %ModuleReference* @_D5tango3net3ftp9FtpClient11__moduleRefZ, %ModuleReference** @_Dmodule_ref + ret void +}