[llvm-commits] CVS: reopt/test/TTFTestCases/ary3.ll ary3.main.trace1.txt ary3.main.trace2.txt fib2.ll fib2.main.trace3.txt fib2.main.trace4.txt hash.ll hash.main.trace5.txt hash.main.trace6.txt hash.main.trace7.txt heapsort.ll heapsort.main.trace8.txt lists.list_equal.trace1.txt lists.ll lists.main.trace9.txt methcall.ll methcall.main.trace10.txt methcall.main.trace11.txt nestedloop.ll nestedloop.main.trace12.txt objinst.ll objinst.main.trace13.txt objinst.main.trace14.txt random.ll random.main.trace15.txt sieve.ll sieve.main.trace16.txt sieve.main.trace17.txt strcat.ll strcat.main.trace18.txt strcat.main.trace19.txt strcat.main.trace20.txt strcat.strcat.trace1.txt

Brian Gaeke gaeke at cs.uiuc.edu
Wed Sep 8 14:34:39 PDT 2004



Changes in directory reopt/test/TTFTestCases:

ary3.ll added (r1.1)
ary3.main.trace1.txt added (r1.1)
ary3.main.trace2.txt added (r1.1)
fib2.ll added (r1.1)
fib2.main.trace3.txt added (r1.1)
fib2.main.trace4.txt added (r1.1)
hash.ll added (r1.1)
hash.main.trace5.txt added (r1.1)
hash.main.trace6.txt added (r1.1)
hash.main.trace7.txt added (r1.1)
heapsort.ll added (r1.1)
heapsort.main.trace8.txt added (r1.1)
lists.list_equal.trace1.txt added (r1.1)
lists.ll added (r1.1)
lists.main.trace9.txt added (r1.1)
methcall.ll added (r1.1)
methcall.main.trace10.txt added (r1.1)
methcall.main.trace11.txt added (r1.1)
nestedloop.ll added (r1.1)
nestedloop.main.trace12.txt added (r1.1)
objinst.ll added (r1.1)
objinst.main.trace13.txt added (r1.1)
objinst.main.trace14.txt added (r1.1)
random.ll added (r1.1)
random.main.trace15.txt added (r1.1)
sieve.ll added (r1.1)
sieve.main.trace16.txt added (r1.1)
sieve.main.trace17.txt added (r1.1)
strcat.ll added (r1.1)
strcat.main.trace18.txt added (r1.1)
strcat.main.trace19.txt added (r1.1)
strcat.main.trace20.txt added (r1.1)
strcat.strcat.trace1.txt added (r1.1)
---
Log message:

Canned traces used for TraceToFunction testing.


---
Diffs of the changes:  (+3639 -0)

Index: reopt/test/TTFTestCases/ary3.ll
diff -c /dev/null reopt/test/TTFTestCases/ary3.ll:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/ary3.ll	Wed Sep  8 16:34:19 2004
***************
*** 0 ****
--- 1,158 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_1 = internal constant [7 x sbyte] c"%d %d\0A\00"		; <[7 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (int, sbyte**)* } { int (int, sbyte**)* %main }		; <{ int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [1 x sbyte] zeroinitializer		; <[1 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 1		; <int*> [#uses=0]
+ %main.regAllocState = internal constant { uint, [86 x { int, int, uint, int }] } { uint 86, [86 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 3 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 1 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 0 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int -1!
 , uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 1, int 8 }, { int, int, uint, int } { int 14, int -2, uint 1, int 0 }, { int, int, uint, int } { int 15, int -1, uint 1, int 10 }, { int, int, uint, int } { int 16, int -1, uint 1, int 10 }, { int, int, uint, int } { int 17, int -1, uint 1, int 9 }, { int, int, uint, int } { int 18, int -1, uint 1, int 0 }, { int, int, uint, int } { int 19, int -1, uint 1, int 7 }, { int, int, uint, int } { int 20, int -1, uint 1, int 0 }, { int, int, uint, int } { int 21, int -1, uint 1, int 12 }, { int, int, uint, int } { int 22, int -1, uint 1, int 0 }, { int, int, uint, int } { int 23, int -1, uint 1, int 9 }, { int, int, uint, int } { int 24, int -1, uint 1, int 0 }, { int, int, uint, int } { int 25, int -1, uint 1, int 13 }, { int, int, uint, int } { int 26, int -1, uint 0, int -1 }, { int, int, uint, int } { int 27, int -1, uint 0, int -1 }, { int, int, uint, !
 int } { int 28, int -1, uint 0, int -1 }, { int, int, uint, int } { in
t 29, int -1, uint 1, int 10 }, { int, int, uint, int } { int 29, int -2, uint 1, int 10 }, { int, int, uint, int } { int 30, int -1, uint 1, int 1 }, { int, int, uint, int } { int 31, int -1, uint 1, int 0 }, { int, int, uint, int } { int 32, int -1, uint 0, int -1 }, { int, int, uint, int } { int 33, int -1, uint 1, int 1 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 1, int 10 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 0, int -1 }, { int, int, uint, int } { int 39, int -1, uint 1, int 2 }, { int, int, uint, int } { int 40, int -1, uint 1, int 10 }, { int, int, uint, int } { int 41, int -1, uint 0, int -1 }, { int, int, uint, int } { int 42, int -1, uint 1, int 11 }, { int, int, uint, int } { int 42, int -2, uint 1, int 8 }, { int, int, uint, int } { int 43, int -1, uint 0, int -1 }, { !
 int, int, uint, int } { int 44, int -1, uint 0, int -1 }, { int, int, uint, int } { int 45, int -1, uint 1, int 8 }, { int, int, uint, int } { int 45, int -2, uint 1, int 8 }, { int, int, uint, int } { int 46, int -1, uint 1, int 4 }, { int, int, uint, int } { int 47, int -1, uint 1, int 4 }, { int, int, uint, int } { int 48, int -1, uint 1, int 4 }, { int, int, uint, int } { int 49, int -1, uint 1, int 3 }, { int, int, uint, int } { int 50, int -1, uint 1, int 1 }, { int, int, uint, int } { int 51, int -1, uint 1, int 0 }, { int, int, uint, int } { int 52, int -1, uint 0, int -1 }, { int, int, uint, int } { int 53, int -1, uint 1, int 3 }, { int, int, uint, int } { int 54, int -1, uint 1, int 0 }, { int, int, uint, int } { int 55, int -1, uint 0, int -1 }, { int, int, uint, int } { int 56, int -1, uint 1, int 4 }, { int, int, uint, int } { int 57, int -1, uint 0, int -1 }, { int, int, uint, int } { int 58, int -1, uint 1, int 8 }, { int, int, uint, int } { int 59, int -1, !
 uint 0, int -1 }, { int, int, uint, int } { int 60, int -1, uint 0, in
t -1 }, { int, int, uint, int } { int 61, int -1, uint 1, int 8 }, { int, int, uint, int } { int 62, int -1, uint 0, int -1 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 1, int 1 }, { int, int, uint, int } { int 65, int -1, uint 1, int 2 }, { int, int, uint, int } { int 66, int -1, uint 0, int -1 }, { int, int, uint, int } { int 67, int -1, uint 1, int 2 }, { int, int, uint, int } { int 68, int -1, uint 0, int -1 }, { int, int, uint, int } { int 69, int -1, uint 1, int 0 }, { int, int, uint, int } { int 70, int -1, uint 1, int 0 }, { int, int, uint, int } { int 71, int -1, uint 0, int -1 }, { int, int, uint, int } { int 72, int -1, uint 0, int -1 }, { int, int, uint, int } { int 73, int -1, uint 0, int -1 }, { int, int, uint, int } { int 74, int -1, uint 0, int -1 }, { int, int, uint, int } { int 75, int -1, uint 0, int -1 }, { int, int, uint, int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { i!
 nt 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int 78, int -1, uint 0, int -1 }, { int, int, uint, int } { int 79, int -1, uint 0, int -1 } ] }		; <{ uint, [86 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [1 x { uint, [0 x { int, int, uint, int }] }*] } { uint 1, [1 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [86 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [1 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [22 x sbyte*] } { uint 22, [22 x sbyte*] [ sbyte* cast ([7 x sbyte]* %.str_1 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [86 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [22 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	%copyConst = cast int 1500000 to int		; <int> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %cond_continue
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=1]
+ 	br label %cond_continue
+ 
+ cond_continue:		; preds = %__main.entry, %cond_true
+ 	%mem_tmp.0 = phi int [ %tmp.3, %cond_true ], [ %copyConst, %__main.entry ]		; <int> [#uses=4]
+ 	%tmp.10 = cast int %mem_tmp.0 to ulong		; <ulong> [#uses=1]
+ 	%tmp.3.i1 = shl ulong %tmp.10, ubyte 2		; <ulong> [#uses=3]
+ 	%MallocAmtCast.i2 = cast ulong %tmp.3.i1 to uint		; <uint> [#uses=2]
+ 	call sbyte* %malloc( uint %MallocAmtCast.i2 )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to sbyte*		; <sbyte*>:1 [#uses=3]
+ 	call sbyte* %memset( sbyte* %1, ubyte 0, ulong %tmp.3.i1 )		; <sbyte*>:2 [#uses=0]
+ 	%tmp.11 = cast sbyte* %1 to int*		; <int*> [#uses=2]
+ 	call sbyte* %malloc( uint %MallocAmtCast.i2 )		; <sbyte*>:3 [#uses=1]
+ 	cast sbyte* %3 to sbyte*		; <sbyte*>:4 [#uses=3]
+ 	call sbyte* %memset( sbyte* %4, ubyte 0, ulong %tmp.3.i1 )		; <sbyte*>:5 [#uses=0]
+ 	%tmp.15 = cast sbyte* %4 to int*		; <int*> [#uses=3]
+ 	%tmp.185 = setgt int %mem_tmp.0, 0		; <bool> [#uses=1]
+ 	br bool %tmp.185, label %no_exit.0.preheader, label %no_exit.1.preheader
+ 
+ no_exit.0.preheader:		; preds = %cond_continue
+ 	br label %no_exit.0
+ 
+ no_exit.0:		; preds = %no_exit.0.preheader, %backEdgeInst
+ 	%indvar = phi uint [ %indvar.next, %backEdgeInst ], [ 0, %no_exit.0.preheader ]		; <uint> [#uses=2]
+ 	%i.2.0 = cast uint %indvar to int		; <int> [#uses=2]
+ 	%v9 = cast int %i.2.0 to long		; <long> [#uses=1]
+ 	%tmp.23 = getelementptr int* %tmp.11, long %v9		; <int*> [#uses=1]
+ 	%tmp.25 = add int %i.2.0, 1		; <int> [#uses=2]
+ 	store int %tmp.25, int* %tmp.23
+ 	%tmp.18 = setlt int %tmp.25, %mem_tmp.0		; <bool> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=1]
+ 	br bool %tmp.18, label %backEdgeInst, label %no_exit.1.preheader.loopexit
+ 
+ no_exit.1.preheader.loopexit:		; preds = %no_exit.0
+ 	br label %no_exit.1.preheader
+ 
+ no_exit.1.preheader:		; preds = %cond_continue, %no_exit.1.preheader.loopexit
+ 	%tmp.31 = add int %mem_tmp.0, -1		; <int> [#uses=3]
+ 	%tmp.3311 = setgt int %tmp.31, -1		; <bool> [#uses=1]
+ 	br label %no_exit.1
+ 
+ no_exit.1:		; preds = %no_exit.1.preheader, %backEdgeInst1
+ 	%indvar19 = phi uint [ 0, %no_exit.1.preheader ], [ %indvar.next20, %backEdgeInst1 ]		; <uint> [#uses=2]
+ 	br bool %tmp.3311, label %no_exit.2.preheader, label %loopexit.2
+ 
+ no_exit.2.preheader:		; preds = %no_exit.1
+ 	br label %no_exit.2
+ 
+ no_exit.2:		; preds = %no_exit.2.preheader, %backEdgeInst2
+ 	%indvar15 = phi uint [ %indvar.next16, %backEdgeInst2 ], [ 0, %no_exit.2.preheader ]		; <uint> [#uses=2]
+ 	%tmp.17 = sub uint 0, %indvar15		; <uint> [#uses=1]
+ 	%tmp.17 = cast uint %tmp.17 to int		; <int> [#uses=1]
+ 	%i.0.2 = add int %tmp.17, %tmp.31		; <int> [#uses=2]
+ 	%v92 = cast int %i.0.2 to long		; <long> [#uses=2]
+ 	%tmp.38 = getelementptr int* %tmp.15, long %v92		; <int*> [#uses=2]
+ 	%tmp.43 = load int* %tmp.38		; <int> [#uses=1]
+ 	%tmp.47 = getelementptr int* %tmp.11, long %v92		; <int*> [#uses=1]
+ 	%tmp.48 = load int* %tmp.47		; <int> [#uses=1]
+ 	%tmp.49 = add int %tmp.43, %tmp.48		; <int> [#uses=1]
+ 	store int %tmp.49, int* %tmp.38
+ 	%dec = add int %i.0.2, -1		; <int> [#uses=1]
+ 	%tmp.33 = setgt int %dec, -1		; <bool> [#uses=1]
+ 	%indvar.next16 = add uint %indvar15, 1		; <uint> [#uses=1]
+ 	br bool %tmp.33, label %backEdgeInst2, label %loopexit.2.loopexit
+ 
+ loopexit.2.loopexit:		; preds = %no_exit.2
+ 	br label %loopexit.2
+ 
+ loopexit.2:		; preds = %no_exit.1, %loopexit.2.loopexit
+ 	%indvar.next20 = add uint %indvar19, 1		; <uint> [#uses=1]
+ 	%exitcond = seteq uint %indvar19, 999		; <bool> [#uses=1]
+ 	br bool %exitcond, label %loopexit.1, label %backEdgeInst1
+ 
+ loopexit.1:		; preds = %loopexit.2
+ 	%tmp.56 = load int* %tmp.15		; <int> [#uses=1]
+ 	%v94 = cast int %tmp.31 to long		; <long> [#uses=1]
+ 	%tmp.61 = getelementptr int* %tmp.15, long %v94		; <int*> [#uses=1]
+ 	%tmp.62 = load int* %tmp.61		; <int> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [7 x sbyte]* %.str_1, long 0		; <[7 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [7 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.52 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_1", int %tmp.56, int %tmp.62 )		; <int> [#uses=0]
+ 	call void %free( sbyte* %1 )
+ 	call void %free( sbyte* %4 )
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %no_exit.0
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.0
+ 
+ backEdgeInst1:		; preds = %loopexit.2
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.1
+ 
+ backEdgeInst2:		; preds = %no_exit.2
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.2
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare void %llvm.memset(sbyte*, ubyte, ulong, uint)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)
+ 
+ declare sbyte* %memset(sbyte*, ubyte, ulong)


Index: reopt/test/TTFTestCases/ary3.main.trace1.txt
diff -c /dev/null reopt/test/TTFTestCases/ary3.main.trace1.txt:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/ary3.main.trace1.txt	Wed Sep  8 16:34:19 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 6 15 


Index: reopt/test/TTFTestCases/ary3.main.trace2.txt
diff -c /dev/null reopt/test/TTFTestCases/ary3.main.trace2.txt:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/ary3.main.trace2.txt	Wed Sep  8 16:34:19 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 11 17 


Index: reopt/test/TTFTestCases/fib2.ll
diff -c /dev/null reopt/test/TTFTestCases/fib2.ll:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/fib2.ll	Wed Sep  8 16:34:19 2004
***************
*** 0 ****
--- 1,191 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_1 = internal constant [5 x sbyte] c"%ld\0A\00"		; <[5 x sbyte]*> [#uses=3]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { ulong (ulong)*, int (int, sbyte**)* } { ulong (ulong)* %fib, int (int, sbyte**)* %main }		; <{ ulong (ulong)*, int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [2 x sbyte] zeroinitializer		; <[2 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 2		; <int*> [#uses=0]
+ %fib.regAllocState = internal constant { uint, [18 x { int, int, uint, int }] } { uint 18, [18 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 7 }, { int, int, uint, int } { int 0, int -1, uint 0, int -1 }, { int, int, uint, int } { int 1, int -1, uint 1, int 8 }, { int, int, uint, int } { int 1, int -2, uint 1, int 8 }, { int, int, uint, int } { int 2, int -1, uint 1, int 15 }, { int, int, uint, int } { int 2, int -2, uint 1, int 15 }, { int, int, uint, int } { int 3, int -1, uint 1, int 0 }, { int, int, uint, int } { int 4, int -1, uint 1, int 0 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 1, int 0 }, { int, int, uint, int } { int 8, int -1, uint 1, int 0 }, { int, int, uint, int } { int 9, int -1, uint 1, int 0 }, { int, int, uint, int } { int 10, int -1, uint 1, int 8 }, { int, int, uint, int } { int 11, int -1, uin!
 t 0, int -1 }, { int, int, uint, int } { int 12, int -1, uint 0, int -1 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 } ] }		; <{ uint, [18 x { int, int, uint, int }] }*> [#uses=2]
+ %main.regAllocState = internal constant { uint, [92 x { int, int, uint, int }] } { uint 92, [92 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 2 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 3 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 1, int 0 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int -1!
 , uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 1, int 13 }, { int, int, uint, int } { int 15, int -2, uint 1, int 0 }, { int, int, uint, int } { int 16, int -1, uint 1, int 10 }, { int, int, uint, int } { int 17, int -1, uint 0, int -1 }, { int, int, uint, int } { int 18, int -1, uint 1, int 9 }, { int, int, uint, int } { int 18, int -2, uint 1, int 9 }, { int, int, uint, int } { int 19, int -1, uint 1, int 8 }, { int, int, uint, int } { int 19, int -2, uint 1, int 12 }, { int, int, uint, int } { int 20, int -1, uint 1, int 7 }, { int, int, uint, int } { int 21, int -1, uint 1, int 7 }, { int, int, uint, int } { int 22, int -1, uint 0, int -1 }, { int, int, uint, int } { int 23, int -1, uint 0, int -1 }, { int, int, uint, int } { int 24, int -1, uint 1, int 7 }, { int, int, uint, int } { int 25, int -1, uint 0, int -1 }, { int, int, uint!
 , int } { int 26, int -1, uint 1, int 11 }, { int, int, uint, int } { 
int 26, int -2, uint 1, int 11 }, { int, int, uint, int } { int 27, int -1, uint 1, int 12 }, { int, int, uint, int } { int 27, int -2, uint 1, int 12 }, { int, int, uint, int } { int 28, int -1, uint 1, int 0 }, { int, int, uint, int } { int 29, int -1, uint 1, int 0 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 1, int 0 }, { int, int, uint, int } { int 33, int -1, uint 1, int 0 }, { int, int, uint, int } { int 34, int -1, uint 1, int 0 }, { int, int, uint, int } { int 35, int -1, uint 1, int 11 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 }, { int, int, uint, int } { int 37, int -1, uint 1, int 12 }, { int, int, uint, int } { int 38, int -1, uint 1, int 9 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 1, int 10 }, { int, int, uint, int } { int 41, int -1, uint 0, int -1 }, {!
  int, int, uint, int } { int 42, int -1, uint 1, int 12 }, { int, int, uint, int } { int 42, int -2, uint 1, int 12 }, { int, int, uint, int } { int 43, int -1, uint 1, int 1 }, { int, int, uint, int } { int 43, int -2, uint 1, int 7 }, { int, int, uint, int } { int 44, int -1, uint 1, int 9 }, { int, int, uint, int } { int 45, int -1, uint 1, int 9 }, { int, int, uint, int } { int 46, int -1, uint 0, int -1 }, { int, int, uint, int } { int 47, int -1, uint 0, int -1 }, { int, int, uint, int } { int 48, int -1, uint 1, int 9 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 1, int 11 }, { int, int, uint, int } { int 50, int -2, uint 1, int 11 }, { int, int, uint, int } { int 51, int -1, uint 1, int 7 }, { int, int, uint, int } { int 51, int -2, uint 1, int 7 }, { int, int, uint, int } { int 52, int -1, uint 1, int 0 }, { int, int, uint, int } { int 53, int -1, uint 1, int 0 }, { int, int, uint, int } { int 54, int !
 -1, uint 0, int -1 }, { int, int, uint, int } { int 55, int -1, uint 0
, int -1 }, { int, int, uint, int } { int 56, int -1, uint 1, int 0 }, { int, int, uint, int } { int 57, int -1, uint 1, int 0 }, { int, int, uint, int } { int 58, int -1, uint 1, int 0 }, { int, int, uint, int } { int 59, int -1, uint 1, int 11 }, { int, int, uint, int } { int 60, int -1, uint 0, int -1 }, { int, int, uint, int } { int 61, int -1, uint 1, int 7 }, { int, int, uint, int } { int 62, int -1, uint 1, int 12 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 1, int 1 }, { int, int, uint, int } { int 65, int -1, uint 0, int -1 }, { int, int, uint, int } { int 66, int -1, uint 1, int 0 }, { int, int, uint, int } { int 67, int -1, uint 0, int -1 }, { int, int, uint, int } { int 68, int -1, uint 0, int -1 }, { int, int, uint, int } { int 69, int -1, uint 0, int -1 }, { int, int, uint, int } { int 70, int -1, uint 1, int 0 }, { int, int, uint, int } { int 71, int -1, uint 0, int -1 }, { int, int, uint, int } !
 { int 72, int -1, uint 0, int -1 }, { int, int, uint, int } { int 73, int -1, uint 0, int -1 }, { int, int, uint, int } { int 74, int -1, uint 0, int -1 }, { int, int, uint, int } { int 75, int -1, uint 0, int -1 }, { int, int, uint, int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int 78, int -1, uint 0, int -1 }, { int, int, uint, int } { int 79, int -1, uint 0, int -1 }, { int, int, uint, int } { int 80, int -1, uint 0, int -1 } ] }		; <{ uint, [92 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [2 x { uint, [0 x { int, int, uint, int }] }*] } { uint 2, [2 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [18 x { int, int, uint, int }] }* %fib.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [92 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [2 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [22 x sbyte*] } { uint 22, [22 x sbyte*] [ sbyte* cast ([5 x sbyte]* %.str_1 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [18 x { int, int, uint, int }] }* %fib.regAllocState to sbyte*), sbyte* cast ({ uint, [92 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* cast (ulong (ulong)* %fib to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [22 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ internal ulong %fib(ulong %n) {
+ entry:
+ 	br label %tailrecurse
+ 
+ tailrecurse:		; preds = %entry, %backEdgeInst
+ 	%indvar = phi ulong [ 0, %entry ], [ %indvar.next, %backEdgeInst ]		; <ulong> [#uses=2]
+ 	%accumulator.tr = phi ulong [ 1, %entry ], [ %tmp.9, %backEdgeInst ]		; <ulong> [#uses=2]
+ 	%indvar.neg = sub ulong 0, %indvar		; <ulong> [#uses=1]
+ 	%n.tr = add ulong %indvar.neg, %n		; <ulong> [#uses=2]
+ 	%tmp.1 = setlt ulong %n.tr, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1, label %return, label %else
+ 
+ else:		; preds = %tailrecurse
+ 	%tmp.5 = add ulong %n.tr, 18446744073709551614		; <ulong> [#uses=1]
+ 	%tmp.3 = call ulong %fib( ulong %tmp.5 )		; <ulong> [#uses=1]
+ 	%tmp.9 = add ulong %tmp.3, %accumulator.tr		; <ulong> [#uses=1]
+ 	%indvar.next = add ulong %indvar, 1		; <ulong> [#uses=1]
+ 	br label %backEdgeInst
+ 
+ return:		; preds = %tailrecurse
+ 	ret ulong %accumulator.tr
+ 
+ backEdgeInst:		; preds = %else
+ 	call void %llvm_first_trigger( )
+ 	br label %tailrecurse
+ }
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %else.i
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=1]
+ 	%tmp.114 = cast int %tmp.3 to ulong		; <ulong> [#uses=2]
+ 	%tmp.1.i6 = setlt ulong %tmp.114, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1.i6, label %fib.entry, label %else.i
+ 
+ else.i:		; preds = %__main.entry, %cond_true
+ 	%tmp.11.0 = phi ulong [ %tmp.114, %cond_true ], [ 43, %__main.entry ]		; <ulong> [#uses=2]
+ 	%tmp.5.i = add ulong %tmp.11.0, 18446744073709551614		; <ulong> [#uses=1]
+ 	br label %tailrecurse.i9
+ 
+ tailrecurse.i9:		; preds = %else.i, %backEdgeInst21
+ 	%indvar.i10 = phi ulong [ 0, %else.i ], [ %indvar.next.i18, %backEdgeInst21 ]		; <ulong> [#uses=2]
+ 	%accumulator.tr.i11 = phi ulong [ 1, %else.i ], [ %tmp.9.i17, %backEdgeInst21 ]		; <ulong> [#uses=2]
+ 	%indvar.i10.neg = sub ulong 0, %indvar.i10		; <ulong> [#uses=1]
+ 	%n.tr.i12 = add ulong %indvar.i10.neg, %tmp.5.i		; <ulong> [#uses=2]
+ 	%tmp.1.i13 = setlt ulong %n.tr.i12, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1.i13, label %fib.entry19, label %else.i14
+ 
+ else.i14:		; preds = %tailrecurse.i9
+ 	%tmp.5.i15 = add ulong %n.tr.i12, 18446744073709551614		; <ulong> [#uses=1]
+ 	br label %tailrecurse.i1
+ 
+ tailrecurse.i1:		; preds = %else.i14, %backEdgeInst
+ 	%indvar.i = phi ulong [ 0, %else.i14 ], [ %indvar.next.i, %backEdgeInst ]		; <ulong> [#uses=2]
+ 	%accumulator.tr.i2 = phi ulong [ 1, %else.i14 ], [ %tmp.9.i7, %backEdgeInst ]		; <ulong> [#uses=2]
+ 	%indvar.i.neg = sub ulong 0, %indvar.i		; <ulong> [#uses=1]
+ 	%n.tr.i3 = add ulong %indvar.i.neg, %tmp.5.i15		; <ulong> [#uses=2]
+ 	%tmp.1.i4 = setlt ulong %n.tr.i3, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1.i4, label %fib.entry9, label %else.i5
+ 
+ else.i5:		; preds = %tailrecurse.i1
+ 	%tmp.5.i6 = add ulong %n.tr.i3, 18446744073709551614		; <ulong> [#uses=1]
+ 	%tmp.3.i = call ulong %fib( ulong %tmp.5.i6 )		; <ulong> [#uses=1]
+ 	%tmp.9.i7 = add ulong %tmp.3.i, %accumulator.tr.i2		; <ulong> [#uses=1]
+ 	%indvar.next.i = add ulong %indvar.i, 1		; <ulong> [#uses=1]
+ 	br label %backEdgeInst
+ 
+ fib.entry9:		; preds = %tailrecurse.i1
+ 	%tmp.9.i17 = add ulong %accumulator.tr.i2, %accumulator.tr.i11		; <ulong> [#uses=1]
+ 	%indvar.next.i18 = add ulong %indvar.i10, 1		; <ulong> [#uses=1]
+ 	br label %backEdgeInst21
+ 
+ fib.entry19:		; preds = %tailrecurse.i9
+ 	%tmp.8.i = add ulong %tmp.11.0, 18446744073709551615		; <ulong> [#uses=1]
+ 	br label %tailrecurse.i
+ 
+ tailrecurse.i:		; preds = %fib.entry19, %backEdgeInst23
+ 	%indvar.i1 = phi ulong [ 0, %fib.entry19 ], [ %indvar.next.i7, %backEdgeInst23 ]		; <ulong> [#uses=2]
+ 	%accumulator.tr.i = phi ulong [ 1, %fib.entry19 ], [ %tmp.9.i6, %backEdgeInst23 ]		; <ulong> [#uses=2]
+ 	%indvar.i1.neg = sub ulong 0, %indvar.i1		; <ulong> [#uses=1]
+ 	%n.tr.i = add ulong %indvar.i1.neg, %tmp.8.i		; <ulong> [#uses=2]
+ 	%tmp.1.i2 = setlt ulong %n.tr.i, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1.i2, label %fib.entry8, label %else.i3
+ 
+ else.i3:		; preds = %tailrecurse.i
+ 	%tmp.5.i4 = add ulong %n.tr.i, 18446744073709551614		; <ulong> [#uses=1]
+ 	br label %tailrecurse.i10
+ 
+ tailrecurse.i10:		; preds = %else.i3, %backEdgeInst22
+ 	%indvar.i11 = phi ulong [ 0, %else.i3 ], [ %indvar.next.i19, %backEdgeInst22 ]		; <ulong> [#uses=2]
+ 	%accumulator.tr.i12 = phi ulong [ 1, %else.i3 ], [ %tmp.9.i18, %backEdgeInst22 ]		; <ulong> [#uses=2]
+ 	%indvar.i11.neg = sub ulong 0, %indvar.i11		; <ulong> [#uses=1]
+ 	%n.tr.i13 = add ulong %indvar.i11.neg, %tmp.5.i4		; <ulong> [#uses=2]
+ 	%tmp.1.i14 = setlt ulong %n.tr.i13, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1.i14, label %fib.entry20, label %else.i15
+ 
+ else.i15:		; preds = %tailrecurse.i10
+ 	%tmp.5.i16 = add ulong %n.tr.i13, 18446744073709551614		; <ulong> [#uses=1]
+ 	%tmp.3.i17 = call ulong %fib( ulong %tmp.5.i16 )		; <ulong> [#uses=1]
+ 	%tmp.9.i18 = add ulong %tmp.3.i17, %accumulator.tr.i12		; <ulong> [#uses=1]
+ 	%indvar.next.i19 = add ulong %indvar.i11, 1		; <ulong> [#uses=1]
+ 	br label %backEdgeInst22
+ 
+ fib.entry20:		; preds = %tailrecurse.i10
+ 	%tmp.9.i6 = add ulong %accumulator.tr.i12, %accumulator.tr.i		; <ulong> [#uses=1]
+ 	%indvar.next.i7 = add ulong %indvar.i1, 1		; <ulong> [#uses=1]
+ 	br label %backEdgeInst23
+ 
+ fib.entry8:		; preds = %tailrecurse.i
+ 	%tmp.9.i = add ulong %accumulator.tr.i, %accumulator.tr.i11		; <ulong> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [5 x sbyte]* %.str_1, long 0		; <[5 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [5 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	call void %printf( sbyte* "constantGEP:addrOfGlobal:.str_1", ulong %tmp.9.i )
+ 	ret int 0
+ 
+ fib.entry:		; preds = %cond_true
+ 	"addrOfGlobal:.str_12" = getelementptr [5 x sbyte]* %.str_1, long 0		; <[5 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_12" = getelementptr [5 x sbyte]* "addrOfGlobal:.str_12", long 0, long 0		; <sbyte*> [#uses=1]
+ 	call void %printf( sbyte* "constantGEP:addrOfGlobal:.str_12", ulong 1 )
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %else.i5
+ 	call void %llvm_first_trigger( )
+ 	br label %tailrecurse.i1
+ 
+ backEdgeInst21:		; preds = %fib.entry9
+ 	call void %llvm_first_trigger( )
+ 	br label %tailrecurse.i9
+ 
+ backEdgeInst22:		; preds = %else.i15
+ 	call void %llvm_first_trigger( )
+ 	br label %tailrecurse.i10
+ 
+ backEdgeInst23:		; preds = %fib.entry20
+ 	call void %llvm_first_trigger( )
+ 	br label %tailrecurse.i
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare void %printf(sbyte*, ulong)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/fib2.main.trace3.txt
diff -c /dev/null reopt/test/TTFTestCases/fib2.main.trace3.txt:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/fib2.main.trace3.txt	Wed Sep  8 16:34:20 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 7 8 18 


Index: reopt/test/TTFTestCases/fib2.main.trace4.txt
diff -c /dev/null reopt/test/TTFTestCases/fib2.main.trace4.txt:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/fib2.main.trace4.txt	Wed Sep  8 16:34:20 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 13 14 20 


Index: reopt/test/TTFTestCases/hash.ll
diff -c /dev/null reopt/test/TTFTestCases/hash.ll:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/hash.ll	Wed Sep  8 16:34:20 2004
***************
*** 0 ****
--- 1,669 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ 	%struct.ht_ht = type { int, %struct.ht_node**, int, %struct.ht_node*, int }
+ 	%struct.ht_node = type { sbyte*, int, %struct.ht_node* }
+ %.ht_prime_list_1 = internal constant [28 x ulong] [ ulong 53, ulong 97, ulong 193, ulong 389, ulong 769, ulong 1543, ulong 3079, ulong 6151, ulong 12289, ulong 24593, ulong 49157, ulong 98317, ulong 196613, ulong 393241, ulong 786433, ulong 1572869, ulong 3145739, ulong 6291469, ulong 12582917, ulong 25165843, ulong 50331653, ulong 100663319, ulong 201326611, ulong 402653189, ulong 805306457, ulong 1610612741, ulong 3221225473, ulong 4294967291 ]		; <[28 x ulong]*> [#uses=4]
+ %.str_1 = internal constant [15 x sbyte] c"malloc ht_node\00"		; <[15 x sbyte]*> [#uses=2]
+ %.str_2 = internal constant [14 x sbyte] c"strdup newkey\00"		; <[14 x sbyte]*> [#uses=2]
+ %.str_3 = internal constant [3 x sbyte] c"%x\00"		; <[3 x sbyte]*> [#uses=2]
+ %.str_4 = internal constant [3 x sbyte] c"%d\00"		; <[3 x sbyte]*> [#uses=2]
+ %.str_5 = internal constant [4 x sbyte] c"%d\0A\00"		; <[4 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (sbyte*, sbyte*)*, int (int, sbyte**)* } { int (sbyte*, sbyte*)* %strcmp, int (int, sbyte**)* %main }		; <{ int (sbyte*, sbyte*)*, int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [2 x sbyte] zeroinitializer		; <[2 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 2		; <int*> [#uses=0]
+ %strcmp.regAllocState = internal constant { uint, [44 x { int, int, uint, int }] } { uint 44, [44 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 8 }, { int, int, uint, int } { int 1, int -1, uint 1, int 10 }, { int, int, uint, int } { int 2, int -1, uint 1, int 15 }, { int, int, uint, int } { int 3, int -1, uint 1, int 0 }, { int, int, uint, int } { int 4, int -1, uint 1, int 16 }, { int, int, uint, int } { int 5, int -1, uint 1, int 16 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 7 }, { int, int, uint, int } { int 9, int -1, uint 1, int 9 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 0, int -1 }, { int, int, uint, int } { int 12, in!
 t -1, uint 0, int -1 }, { int, int, uint, int } { int 13, int -1, uint 1, int 7 }, { int, int, uint, int } { int 13, int -2, uint 1, int 7 }, { int, int, uint, int } { int 14, int -1, uint 1, int 9 }, { int, int, uint, int } { int 14, int -2, uint 1, int 9 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 0, int -1 }, { int, int, uint, int } { int 17, int -1, uint 1, int 9 }, { int, int, uint, int } { int 18, int -1, uint 1, int 9 }, { int, int, uint, int } { int 19, int -1, uint 0, int -1 }, { int, int, uint, int } { int 20, int -1, uint 0, int -1 }, { int, int, uint, int } { int 21, int -1, uint 1, int 11 }, { int, int, uint, int } { int 21, int -2, uint 1, int 11 }, { int, int, uint, int } { int 22, int -1, uint 1, int 0 }, { int, int, uint, int } { int 22, int -2, uint 1, int 0 }, { int, int, uint, int } { int 23, int -1, uint 1, int 16 }, { int, int, uint, int } { int 23, int -2, uint 1, int 16 }, { int, int, !
 uint, int } { int 24, int -1, uint 1, int 11 }, { int, int, uint, int 
} { int 25, int -1, uint 1, int 7 }, { int, int, uint, int } { int 26, int -1, uint 1, int 9 }, { int, int, uint, int } { int 27, int -1, uint 1, int 7 }, { int, int, uint, int } { int 28, int -1, uint 0, int -1 }, { int, int, uint, int } { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 1, int 16 }, { int, int, uint, int } { int 33, int -1, uint 1, int 0 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 } ] }		; <{ uint, [44 x { int, int, uint, int }] }*> [#uses=2]
+ %main.regAllocState = internal constant { uint, [430 x { int, int, uint, int }] } { uint 430, [430 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 17 }, { int, int, uint, int } { int 1, int -1, uint 1, int 0 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 1, int 2 }, { int, int, uint, int } { int 4, int -1, uint 0, int -1 }, { int, int, uint, int } { int 5, int -1, uint 1, int 2 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, in!
 t -1, uint 1, int 10 }, { int, int, uint, int } { int 13, int -1, uint 1, int 0 }, { int, int, uint, int } { int 14, int -1, uint 1, int 0 }, { int, int, uint, int } { int 15, int -1, uint 1, int 0 }, { int, int, uint, int } { int 16, int -1, uint 1, int 8 }, { int, int, uint, int } { int 17, int -1, uint 1, int 7 }, { int, int, uint, int } { int 18, int -1, uint 0, int -1 }, { int, int, uint, int } { int 19, int -1, uint 0, int -1 }, { int, int, uint, int } { int 20, int -1, uint 1, int 11 }, { int, int, uint, int } { int 21, int -1, uint 0, int -1 }, { int, int, uint, int } { int 22, int -1, uint 1, int 9 }, { int, int, uint, int } { int 22, int -2, uint 1, int 9 }, { int, int, uint, int } { int 23, int -1, uint 1, int 1 }, { int, int, uint, int } { int 24, int -1, uint 1, int 1 }, { int, int, uint, int } { int 25, int -1, uint 1, int 0 }, { int, int, uint, int } { int 26, int -1, uint 0, int -1 }, { int, int, uint, int } { int 27, int -1, uint 1, int 0 }, { int, int, uin!
 t, int } { int 28, int -1, uint 0, int -1 }, { int, int, uint, int } {
 int 29, int -1, uint 1, int 9 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 1, int 1 }, { int, int, uint, int } { int 32, int -2, uint 1, int 1 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 1, int 1 }, { int, int, uint, int } { int 35, int -1, uint 1, int 2 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 }, { int, int, uint, int } { int 37, int -1, uint 1, int 2 }, { int, int, uint, int } { int 38, int -1, uint 1, int 2 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 0, int -1 }, { int, int, uint, int } { int 41, int -1, uint 1, int 2 }, { int, int, uint, int } { int 42, int -1, uint 1, int 2 }, { int, int, uint, int } { int 43, int -1, uint 1, int 0 }, { int, int, uint, int } { int 44, int -1, uint 1, int 0 }, { int!
 , int, uint, int } { int 45, int -1, uint 1, int 7 }, { int, int, uint, int } { int 46, int -1, uint 1, int 0 }, { int, int, uint, int } { int 47, int -1, uint 0, int -1 }, { int, int, uint, int } { int 48, int -1, uint 0, int -1 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 0, int -1 }, { int, int, uint, int } { int 51, int -1, uint 0, int -1 }, { int, int, uint, int } { int 52, int -1, uint 0, int -1 }, { int, int, uint, int } { int 53, int -1, uint 0, int -1 }, { int, int, uint, int } { int 54, int -1, uint 0, int -1 }, { int, int, uint, int } { int 55, int -1, uint 0, int -1 }, { int, int, uint, int } { int 56, int -1, uint 0, int -1 }, { int, int, uint, int } { int 57, int -1, uint 1, int 0 }, { int, int, uint, int } { int 58, int -1, uint 1, int 0 }, { int, int, uint, int } { int 59, int -1, uint 1, int 0 }, { int, int, uint, int } { int 60, int -1, uint 1, int 9 }, { int, int, uint, int } { int 61, int -!
 1, uint 1, int 10 }, { int, int, uint, int } { int 62, int -1, uint 1,
 int 7 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 1, int 8 }, { int, int, uint, int } { int 64, int -2, uint 1, int 8 }, { int, int, uint, int } { int 65, int -1, uint 1, int 2 }, { int, int, uint, int } { int 66, int -1, uint 1, int 2 }, { int, int, uint, int } { int 67, int -1, uint 1, int 2 }, { int, int, uint, int } { int 68, int -1, uint 1, int 2 }, { int, int, uint, int } { int 69, int -1, uint 1, int 0 }, { int, int, uint, int } { int 70, int -1, uint 0, int -1 }, { int, int, uint, int } { int 71, int -1, uint 1, int 8 }, { int, int, uint, int } { int 72, int -1, uint 0, int -1 }, { int, int, uint, int } { int 73, int -1, uint 0, int -1 }, { int, int, uint, int } { int 74, int -1, uint 1, int 2 }, { int, int, uint, int } { int 75, int -1, uint 1, int 2 }, { int, int, uint, int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int!
  78, int -1, uint 1, int 2 }, { int, int, uint, int } { int 79, int -1, uint 1, int 2 }, { int, int, uint, int } { int 80, int -1, uint 1, int 0 }, { int, int, uint, int } { int 81, int -1, uint 1, int 0 }, { int, int, uint, int } { int 82, int -1, uint 1, int 7 }, { int, int, uint, int } { int 83, int -1, uint 1, int 0 }, { int, int, uint, int } { int 84, int -1, uint 0, int -1 }, { int, int, uint, int } { int 85, int -1, uint 0, int -1 }, { int, int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uint, int } { int 87, int -1, uint 0, int -1 }, { int, int, uint, int } { int 88, int -1, uint 0, int -1 }, { int, int, uint, int } { int 89, int -1, uint 0, int -1 }, { int, int, uint, int } { int 90, int -1, uint 0, int -1 }, { int, int, uint, int } { int 91, int -1, uint 0, int -1 }, { int, int, uint, int } { int 92, int -1, uint 1, int 3 }, { int, int, uint, int } { int 93, int -1, uint 0, int -1 }, { int, int, uint, int } { int 94, int -1, uint 1, int 10 }, { in!
 t, int, uint, int } { int 94, int -2, uint 1, int 10 }, { int, int, ui
nt, int } { int 95, int -1, uint 0, int -1 }, { int, int, uint, int } { int 96, int -1, uint 0, int -1 }, { int, int, uint, int } { int 97, int -1, uint 1, int 15 }, { int, int, uint, int } { int 97, int -2, uint 1, int 3 }, { int, int, uint, int } { int 98, int -1, uint 1, int 20 }, { int, int, uint, int } { int 98, int -2, uint 1, int 1 }, { int, int, uint, int } { int 99, int -1, uint 1, int 11 }, { int, int, uint, int } { int 100, int -1, uint 1, int 9 }, { int, int, uint, int } { int 101, int -1, uint 1, int 8 }, { int, int, uint, int } { int 102, int -1, uint 1, int 19 }, { int, int, uint, int } { int 103, int -1, uint 0, int -1 }, { int, int, uint, int } { int 104, int -1, uint 1, int 3 }, { int, int, uint, int } { int 105, int -1, uint 1, int 0 }, { int, int, uint, int } { int 106, int -1, uint 1, int 16 }, { int, int, uint, int } { int 107, int -1, uint 1, int 14 }, { int, int, uint, int } { int 108, int -1, uint 0, int -1 }, { int, int, uint, int } { int 109, int -!
 1, uint 1, int 7 }, { int, int, uint, int } { int 110, int -1, uint 1, int 18 }, { int, int, uint, int } { int 111, int -1, uint 0, int -1 }, { int, int, uint, int } { int 112, int -1, uint 1, int 13 }, { int, int, uint, int } { int 113, int -1, uint 0, int -1 }, { int, int, uint, int } { int 114, int -1, uint 1, int 10 }, { int, int, uint, int } { int 114, int -2, uint 1, int 10 }, { int, int, uint, int } { int 115, int -1, uint 1, int 0 }, { int, int, uint, int } { int 116, int -1, uint 1, int 0 }, { int, int, uint, int } { int 117, int -1, uint 0, int -1 }, { int, int, uint, int } { int 118, int -1, uint 0, int -1 }, { int, int, uint, int } { int 119, int -1, uint 0, int -1 }, { int, int, uint, int } { int 120, int -1, uint 1, int 12 }, { int, int, uint, int } { int 120, int -2, uint 1, int 12 }, { int, int, uint, int } { int 121, int -1, uint 1, int 1 }, { int, int, uint, int } { int 121, int -2, uint 1, int 1 }, { int, int, uint, int } { int 122, int -1, uint 1, int 2 !
 }, { int, int, uint, int } { int 123, int -1, uint 0, int -1 }, { int,
 int, uint, int } { int 124, int -1, uint 1, int 1 }, { int, int, uint, int } { int 125, int -1, uint 1, int 0 }, { int, int, uint, int } { int 126, int -1, uint 1, int 0 }, { int, int, uint, int } { int 127, int -1, uint 1, int 1 }, { int, int, uint, int } { int 128, int -1, uint 1, int 2 }, { int, int, uint, int } { int 129, int -1, uint 0, int -1 }, { int, int, uint, int } { int 130, int -1, uint 1, int 2 }, { int, int, uint, int } { int 131, int -1, uint 0, int -1 }, { int, int, uint, int } { int 132, int -1, uint 1, int 12 }, { int, int, uint, int } { int 133, int -1, uint 0, int -1 }, { int, int, uint, int } { int 134, int -1, uint 0, int -1 }, { int, int, uint, int } { int 135, int -1, uint 1, int 2 }, { int, int, uint, int } { int 135, int -2, uint 1, int 1 }, { int, int, uint, int } { int 136, int -1, uint 1, int 1 }, { int, int, uint, int } { int 137, int -1, uint 1, int 1 }, { int, int, uint, int } { int 138, int -1, uint 1, int 2 }, { int, int, uint, int } { int !
 139, int -1, uint 1, int 2 }, { int, int, uint, int } { int 140, int -1, uint 1, int 0 }, { int, int, uint, int } { int 141, int -1, uint 1, int 2 }, { int, int, uint, int } { int 142, int -1, uint 1, int 12 }, { int, int, uint, int } { int 143, int -1, uint 1, int 0 }, { int, int, uint, int } { int 144, int -1, uint 0, int -1 }, { int, int, uint, int } { int 145, int -1, uint 0, int -1 }, { int, int, uint, int } { int 146, int -1, uint 0, int -1 }, { int, int, uint, int } { int 147, int -1, uint 1, int 2 }, { int, int, uint, int } { int 147, int -2, uint 1, int 0 }, { int, int, uint, int } { int 148, int -1, uint 0, int -1 }, { int, int, uint, int } { int 149, int -1, uint 1, int 1 }, { int, int, uint, int } { int 150, int -1, uint 1, int 0 }, { int, int, uint, int } { int 151, int -1, uint 0, int -1 }, { int, int, uint, int } { int 152, int -1, uint 0, int -1 }, { int, int, uint, int } { int 153, int -1, uint 0, int -1 }, { int, int, uint, int } { int 154, int -1, uint 1,!
  int 0 }, { int, int, uint, int } { int 155, int -1, uint 0, int -1 },
 { int, int, uint, int } { int 156, int -1, uint 0, int -1 }, { int, int, uint, int } { int 157, int -1, uint 0, int -1 }, { int, int, uint, int } { int 158, int -1, uint 1, int 1 }, { int, int, uint, int } { int 158, int -2, uint 1, int 1 }, { int, int, uint, int } { int 159, int -1, uint 1, int 0 }, { int, int, uint, int } { int 160, int -1, uint 1, int 0 }, { int, int, uint, int } { int 161, int -1, uint 0, int -1 }, { int, int, uint, int } { int 162, int -1, uint 0, int -1 }, { int, int, uint, int } { int 163, int -1, uint 0, int -1 }, { int, int, uint, int } { int 164, int -1, uint 1, int 12 }, { int, int, uint, int } { int 165, int -1, uint 1, int 0 }, { int, int, uint, int } { int 166, int -1, uint 1, int 0 }, { int, int, uint, int } { int 167, int -1, uint 1, int 1 }, { int, int, uint, int } { int 168, int -1, uint 1, int 1 }, { int, int, uint, int } { int 169, int -1, uint 1, int 4 }, { int, int, uint, int } { int 170, int -1, uint 0, int -1 }, { int, int, uint, int!
  } { int 171, int -1, uint 0, int -1 }, { int, int, uint, int } { int 172, int -1, uint 0, int -1 }, { int, int, uint, int } { int 173, int -1, uint 0, int -1 }, { int, int, uint, int } { int 174, int -1, uint 0, int -1 }, { int, int, uint, int } { int 175, int -1, uint 0, int -1 }, { int, int, uint, int } { int 176, int -1, uint 1, int 10 }, { int, int, uint, int } { int 177, int -1, uint 0, int -1 }, { int, int, uint, int } { int 178, int -1, uint 1, int 0 }, { int, int, uint, int } { int 179, int -1, uint 0, int -1 }, { int, int, uint, int } { int 180, int -1, uint 0, int -1 }, { int, int, uint, int } { int 181, int -1, uint 0, int -1 }, { int, int, uint, int } { int 182, int -1, uint 1, int 0 }, { int, int, uint, int } { int 182, int -2, uint 1, int 0 }, { int, int, uint, int } { int 183, int -1, uint 0, int -1 }, { int, int, uint, int } { int 184, int -1, uint 1, int 1 }, { int, int, uint, int } { int 185, int -1, uint 1, int 0 }, { int, int, uint, int } { int 186, int!
  -1, uint 0, int -1 }, { int, int, uint, int } { int 187, int -1, uint
 1, int 0 }, { int, int, uint, int } { int 188, int -1, uint 0, int -1 }, { int, int, uint, int } { int 189, int -1, uint 0, int -1 }, { int, int, uint, int } { int 190, int -1, uint 0, int -1 }, { int, int, uint, int } { int 191, int -1, uint 1, int 1 }, { int, int, uint, int } { int 191, int -2, uint 1, int 1 }, { int, int, uint, int } { int 192, int -1, uint 1, int 0 }, { int, int, uint, int } { int 193, int -1, uint 1, int 0 }, { int, int, uint, int } { int 194, int -1, uint 1, int 0 }, { int, int, uint, int } { int 195, int -1, uint 1, int 5 }, { int, int, uint, int } { int 196, int -1, uint 1, int 2 }, { int, int, uint, int } { int 197, int -1, uint 1, int 0 }, { int, int, uint, int } { int 198, int -1, uint 0, int -1 }, { int, int, uint, int } { int 199, int -1, uint 0, int -1 }, { int, int, uint, int } { int 200, int -1, uint 0, int -1 }, { int, int, uint, int } { int 201, int -1, uint 0, int -1 }, { int, int, uint, int } { int 202, int -1, uint 0, int -1 }, { int, i!
 nt, uint, int } { int 203, int -1, uint 0, int -1 }, { int, int, uint, int } { int 204, int -1, uint 0, int -1 }, { int, int, uint, int } { int 205, int -1, uint 0, int -1 }, { int, int, uint, int } { int 206, int -1, uint 0, int -1 }, { int, int, uint, int } { int 207, int -1, uint 0, int -1 }, { int, int, uint, int } { int 208, int -1, uint 0, int -1 }, { int, int, uint, int } { int 209, int -1, uint 0, int -1 }, { int, int, uint, int } { int 210, int -1, uint 0, int -1 }, { int, int, uint, int } { int 211, int -1, uint 0, int -1 }, { int, int, uint, int } { int 212, int -1, uint 1, int 0 }, { int, int, uint, int } { int 213, int -1, uint 1, int 0 }, { int, int, uint, int } { int 214, int -1, uint 1, int 2 }, { int, int, uint, int } { int 215, int -1, uint 1, int 2 }, { int, int, uint, int } { int 216, int -1, uint 1, int 5 }, { int, int, uint, int } { int 217, int -1, uint 0, int -1 }, { int, int, uint, int } { int 218, int -1, uint 0, int -1 }, { int, int, uint, int } {!
  int 219, int -1, uint 0, int -1 }, { int, int, uint, int } { int 220,
 int -1, uint 0, int -1 }, { int, int, uint, int } { int 221, int -1, uint 0, int -1 }, { int, int, uint, int } { int 222, int -1, uint 0, int -1 }, { int, int, uint, int } { int 223, int -1, uint 1, int 0 }, { int, int, uint, int } { int 224, int -1, uint 0, int -1 }, { int, int, uint, int } { int 225, int -1, uint 0, int -1 }, { int, int, uint, int } { int 226, int -1, uint 0, int -1 }, { int, int, uint, int } { int 227, int -1, uint 1, int 0 }, { int, int, uint, int } { int 227, int -2, uint 1, int 0 }, { int, int, uint, int } { int 228, int -1, uint 0, int -1 }, { int, int, uint, int } { int 229, int -1, uint 1, int 1 }, { int, int, uint, int } { int 230, int -1, uint 1, int 0 }, { int, int, uint, int } { int 231, int -1, uint 0, int -1 }, { int, int, uint, int } { int 232, int -1, uint 1, int 0 }, { int, int, uint, int } { int 233, int -1, uint 0, int -1 }, { int, int, uint, int } { int 234, int -1, uint 0, int -1 }, { int, int, uint, int } { int 235, int -1, uint 0, in!
 t -1 }, { int, int, uint, int } { int 236, int -1, uint 1, int 1 }, { int, int, uint, int } { int 236, int -2, uint 1, int 1 }, { int, int, uint, int } { int 237, int -1, uint 1, int 0 }, { int, int, uint, int } { int 238, int -1, uint 1, int 0 }, { int, int, uint, int } { int 239, int -1, uint 1, int 0 }, { int, int, uint, int } { int 240, int -1, uint 1, int 4 }, { int, int, uint, int } { int 241, int -1, uint 1, int 2 }, { int, int, uint, int } { int 242, int -1, uint 1, int 0 }, { int, int, uint, int } { int 243, int -1, uint 0, int -1 }, { int, int, uint, int } { int 244, int -1, uint 0, int -1 }, { int, int, uint, int } { int 245, int -1, uint 0, int -1 }, { int, int, uint, int } { int 246, int -1, uint 0, int -1 }, { int, int, uint, int } { int 247, int -1, uint 0, int -1 }, { int, int, uint, int } { int 248, int -1, uint 0, int -1 }, { int, int, uint, int } { int 249, int -1, uint 0, int -1 }, { int, int, uint, int } { int 250, int -1, uint 0, int -1 }, { int, int, !
 uint, int } { int 251, int -1, uint 0, int -1 }, { int, int, uint, int
 } { int 252, int -1, uint 0, int -1 }, { int, int, uint, int } { int 253, int -1, uint 0, int -1 }, { int, int, uint, int } { int 254, int -1, uint 0, int -1 }, { int, int, uint, int } { int 255, int -1, uint 0, int -1 }, { int, int, uint, int } { int 256, int -1, uint 0, int -1 }, { int, int, uint, int } { int 257, int -1, uint 0, int -1 }, { int, int, uint, int } { int 258, int -1, uint 1, int 0 }, { int, int, uint, int } { int 258, int -2, uint 1, int 0 }, { int, int, uint, int } { int 259, int -1, uint 0, int -1 }, { int, int, uint, int } { int 260, int -1, uint 0, int -1 }, { int, int, uint, int } { int 261, int -1, uint 1, int 10 }, { int, int, uint, int } { int 262, int -1, uint 0, int -1 }, { int, int, uint, int } { int 263, int -1, uint 0, int -1 }, { int, int, uint, int } { int 264, int -1, uint 1, int 12 }, { int, int, uint, int } { int 264, int -2, uint 1, int 2 }, { int, int, uint, int } { int 265, int -1, uint 1, int 10 }, { int, int, uint, int } { int 265, in!
 t -2, uint 1, int 0 }, { int, int, uint, int } { int 266, int -1, uint 0, int -1 }, { int, int, uint, int } { int 267, int -1, uint 0, int -1 }, { int, int, uint, int } { int 268, int -1, uint 1, int 11 }, { int, int, uint, int } { int 269, int -1, uint 1, int 9 }, { int, int, uint, int } { int 270, int -1, uint 1, int 8 }, { int, int, uint, int } { int 271, int -1, uint 0, int -1 }, { int, int, uint, int } { int 272, int -1, uint 1, int 13 }, { int, int, uint, int } { int 273, int -1, uint 0, int -1 }, { int, int, uint, int } { int 274, int -1, uint 1, int 14 }, { int, int, uint, int } { int 274, int -2, uint 1, int 14 }, { int, int, uint, int } { int 275, int -1, uint 1, int 7 }, { int, int, uint, int } { int 275, int -2, uint 1, int 16 }, { int, int, uint, int } { int 276, int -1, uint 1, int 0 }, { int, int, uint, int } { int 277, int -1, uint 1, int 0 }, { int, int, uint, int } { int 278, int -1, uint 1, int 15 }, { int, int, uint, int } { int 279, int -1, uint 1, int !
 0 }, { int, int, uint, int } { int 280, int -1, uint 1, int 0 }, { int
, int, uint, int } { int 281, int -1, uint 0, int -1 }, { int, int, uint, int } { int 282, int -1, uint 0, int -1 }, { int, int, uint, int } { int 283, int -1, uint 0, int -1 }, { int, int, uint, int } { int 284, int -1, uint 1, int 18 }, { int, int, uint, int } { int 284, int -2, uint 1, int 18 }, { int, int, uint, int } { int 285, int -1, uint 1, int 1 }, { int, int, uint, int } { int 285, int -2, uint 1, int 1 }, { int, int, uint, int } { int 286, int -1, uint 1, int 0 }, { int, int, uint, int } { int 287, int -1, uint 0, int -1 }, { int, int, uint, int } { int 288, int -1, uint 1, int 1 }, { int, int, uint, int } { int 289, int -1, uint 1, int 16 }, { int, int, uint, int } { int 290, int -1, uint 1, int 16 }, { int, int, uint, int } { int 291, int -1, uint 1, int 16 }, { int, int, uint, int } { int 292, int -1, uint 1, int 0 }, { int, int, uint, int } { int 293, int -1, uint 0, int -1 }, { int, int, uint, int } { int 294, int -1, uint 1, int 0 }, { int, int, uint, int } !
 { int 295, int -1, uint 0, int -1 }, { int, int, uint, int } { int 296, int -1, uint 1, int 18 }, { int, int, uint, int } { int 297, int -1, uint 0, int -1 }, { int, int, uint, int } { int 298, int -1, uint 0, int -1 }, { int, int, uint, int } { int 299, int -1, uint 1, int 16 }, { int, int, uint, int } { int 299, int -2, uint 1, int 16 }, { int, int, uint, int } { int 300, int -1, uint 1, int 0 }, { int, int, uint, int } { int 301, int -1, uint 1, int 0 }, { int, int, uint, int } { int 302, int -1, uint 1, int 16 }, { int, int, uint, int } { int 303, int -1, uint 1, int 16 }, { int, int, uint, int } { int 304, int -1, uint 1, int 18 }, { int, int, uint, int } { int 305, int -1, uint 1, int 16 }, { int, int, uint, int } { int 306, int -1, uint 0, int -1 }, { int, int, uint, int } { int 307, int -1, uint 1, int 18 }, { int, int, uint, int } { int 308, int -1, uint 0, int -1 }, { int, int, uint, int } { int 309, int -1, uint 0, int -1 }, { int, int, uint, int } { int 310, int!
  -1, uint 0, int -1 }, { int, int, uint, int } { int 311, int -1, uint
 1, int 18 }, { int, int, uint, int } { int 311, int -2, uint 1, int 18 }, { int, int, uint, int } { int 312, int -1, uint 0, int -1 }, { int, int, uint, int } { int 313, int -1, uint 1, int 1 }, { int, int, uint, int } { int 314, int -1, uint 1, int 0 }, { int, int, uint, int } { int 315, int -1, uint 0, int -1 }, { int, int, uint, int } { int 316, int -1, uint 0, int -1 }, { int, int, uint, int } { int 317, int -1, uint 0, int -1 }, { int, int, uint, int } { int 318, int -1, uint 1, int 18 }, { int, int, uint, int } { int 319, int -1, uint 0, int -1 }, { int, int, uint, int } { int 320, int -1, uint 0, int -1 }, { int, int, uint, int } { int 321, int -1, uint 1, int 1 }, { int, int, uint, int } { int 321, int -2, uint 1, int 1 }, { int, int, uint, int } { int 322, int -1, uint 0, int -1 }, { int, int, uint, int } { int 323, int -1, uint 1, int 1 }, { int, int, uint, int } { int 323, int -2, uint 1, int 1 }, { int, int, uint, int } { int 324, int -1, uint 1, int 16 }, { int!
 , int, uint, int } { int 325, int -1, uint 0, int -1 }, { int, int, uint, int } { int 326, int -1, uint 1, int 16 }, { int, int, uint, int } { int 327, int -1, uint 1, int 0 }, { int, int, uint, int } { int 328, int -1, uint 0, int -1 }, { int, int, uint, int } { int 329, int -1, uint 1, int 14 }, { int, int, uint, int } { int 330, int -1, uint 0, int -1 }, { int, int, uint, int } { int 331, int -1, uint 0, int -1 }, { int, int, uint, int } { int 332, int -1, uint 1, int 1 }, { int, int, uint, int } { int 332, int -2, uint 1, int 16 }, { int, int, uint, int } { int 333, int -1, uint 0, int -1 }, { int, int, uint, int } { int 334, int -1, uint 1, int 13 }, { int, int, uint, int } { int 335, int -1, uint 0, int -1 }, { int, int, uint, int } { int 336, int -1, uint 0, int -1 }, { int, int, uint, int } { int 337, int -1, uint 1, int 9 }, { int, int, uint, int } { int 338, int -1, uint 0, int -1 }, { int, int, uint, int } { int 339, int -1, uint 1, int 10 }, { int, int, uint, in!
 t } { int 339, int -2, uint 1, int 10 }, { int, int, uint, int } { int
 340, int -1, uint 1, int 11 }, { int, int, uint, int } { int 341, int -1, uint 1, int 7 }, { int, int, uint, int } { int 342, int -1, uint 1, int 0 }, { int, int, uint, int } { int 343, int -1, uint 0, int -1 }, { int, int, uint, int } { int 344, int -1, uint 1, int 7 }, { int, int, uint, int } { int 345, int -1, uint 0, int -1 }, { int, int, uint, int } { int 346, int -1, uint 0, int -1 }, { int, int, uint, int } { int 347, int -1, uint 0, int -1 }, { int, int, uint, int } { int 348, int -1, uint 1, int 7 }, { int, int, uint, int } { int 348, int -2, uint 1, int 7 }, { int, int, uint, int } { int 349, int -1, uint 0, int -1 }, { int, int, uint, int } { int 350, int -1, uint 1, int 8 }, { int, int, uint, int } { int 351, int -1, uint 0, int -1 }, { int, int, uint, int } { int 352, int -1, uint 1, int 0 }, { int, int, uint, int } { int 353, int -1, uint 0, int -1 }, { int, int, uint, int } { int 354, int -1, uint 1, int 7 }, { int, int, uint, int } { int 355, int -1, uint 0,!
  int -1 }, { int, int, uint, int } { int 356, int -1, uint 0, int -1 }, { int, int, uint, int } { int 357, int -1, uint 0, int -1 }, { int, int, uint, int } { int 358, int -1, uint 0, int -1 }, { int, int, uint, int } { int 359, int -1, uint 1, int 11 }, { int, int, uint, int } { int 360, int -1, uint 0, int -1 }, { int, int, uint, int } { int 361, int -1, uint 1, int 10 }, { int, int, uint, int } { int 362, int -1, uint 0, int -1 }, { int, int, uint, int } { int 363, int -1, uint 0, int -1 }, { int, int, uint, int } { int 364, int -1, uint 0, int -1 }, { int, int, uint, int } { int 365, int -1, uint 1, int 0 }, { int, int, uint, int } { int 366, int -1, uint 1, int 0 }, { int, int, uint, int } { int 367, int -1, uint 0, int -1 }, { int, int, uint, int } { int 368, int -1, uint 1, int 0 }, { int, int, uint, int } { int 369, int -1, uint 0, int -1 }, { int, int, uint, int } { int 370, int -1, uint 0, int -1 }, { int, int, uint, int } { int 371, int -1, uint 1, int 0 }, { int!
 , int, uint, int } { int 372, int -1, uint 1, int 0 }, { int, int, uin
t, int } { int 373, int -1, uint 0, int -1 }, { int, int, uint, int } { int 374, int -1, uint 0, int -1 }, { int, int, uint, int } { int 375, int -1, uint 0, int -1 }, { int, int, uint, int } { int 376, int -1, uint 0, int -1 }, { int, int, uint, int } { int 377, int -1, uint 0, int -1 }, { int, int, uint, int } { int 378, int -1, uint 0, int -1 }, { int, int, uint, int } { int 379, int -1, uint 0, int -1 }, { int, int, uint, int } { int 380, int -1, uint 0, int -1 }, { int, int, uint, int } { int 381, int -1, uint 0, int -1 }, { int, int, uint, int } { int 382, int -1, uint 0, int -1 }, { int, int, uint, int } { int 383, int -1, uint 0, int -1 }, { int, int, uint, int } { int 384, int -1, uint 0, int -1 }, { int, int, uint, int } { int 385, int -1, uint 0, int -1 }, { int, int, uint, int } { int 386, int -1, uint 0, int -1 }, { int, int, uint, int } { int 387, int -1, uint 0, int -1 }, { int, int, uint, int } { int 388, int -1, uint 0, int -1 }, { int, int, uint, int } { in!
 t 389, int -1, uint 0, int -1 }, { int, int, uint, int } { int 390, int -1, uint 0, int -1 }, { int, int, uint, int } { int 391, int -1, uint 0, int -1 }, { int, int, uint, int } { int 392, int -1, uint 0, int -1 }, { int, int, uint, int } { int 393, int -1, uint 0, int -1 }, { int, int, uint, int } { int 394, int -1, uint 0, int -1 }, { int, int, uint, int } { int 395, int -1, uint 0, int -1 }, { int, int, uint, int } { int 396, int -1, uint 0, int -1 }, { int, int, uint, int } { int 397, int -1, uint 0, int -1 } ] }		; <{ uint, [430 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [2 x { uint, [0 x { int, int, uint, int }] }*] } { uint 2, [2 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [44 x { int, int, uint, int }] }* %strcmp.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [430 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [2 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [34 x sbyte*] } { uint 34, [34 x sbyte*] [ sbyte* cast ([28 x ulong]* %.ht_prime_list_1 to sbyte*), sbyte* cast ([15 x sbyte]* %.str_1 to sbyte*), sbyte* cast ([14 x sbyte]* %.str_2 to sbyte*), sbyte* cast ([3 x sbyte]* %.str_3 to sbyte*), sbyte* cast ([3 x sbyte]* %.str_4 to sbyte*), sbyte* cast ([4 x sbyte]* %.str_5 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [44 x { int, int, uint, int }] }* %strcmp.regAllocState to sbyte*), sbyte* cast ({ uint, [430 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* cast (int (sbyte*, sbyte*)* %strcmp to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [34 x !
 sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ internal int %strcmp(sbyte* %p1, sbyte* %p2) {
+ entry:
+ 	%tmp.1 = cast sbyte* %p1 to ubyte*		; <ubyte*> [#uses=1]
+ 	%tmp.3 = cast sbyte* %p2 to ubyte*		; <ubyte*> [#uses=1]
+ 	%tmp.1 = load sbyte* %p1		; <sbyte> [#uses=2]
+ 	%tmp.57 = cast sbyte %tmp.1 to ubyte		; <ubyte> [#uses=2]
+ 	%tmp.3 = load sbyte* %p2		; <sbyte> [#uses=1]
+ 	%tmp.79 = cast sbyte %tmp.3 to ubyte		; <ubyte> [#uses=2]
+ 	%tmp.911 = seteq sbyte %tmp.1, 0		; <bool> [#uses=1]
+ 	br bool %tmp.911, label %then, label %endif.preheader
+ 
+ loopentry:		; preds = %endif
+ 	%tmp.5 = load ubyte* %inc.0.1		; <ubyte> [#uses=3]
+ 	%tmp.7 = load ubyte* %inc.1.1		; <ubyte> [#uses=2]
+ 	%tmp.9 = seteq ubyte %tmp.5, 0		; <bool> [#uses=1]
+ 	br bool %tmp.9, label %then.loopexit, label %backEdgeInst
+ 
+ then.loopexit:		; preds = %loopentry
+ 	br label %then
+ 
+ then:		; preds = %entry, %then.loopexit
+ 	%tmp.5.0 = phi ubyte [ %tmp.57, %entry ], [ %tmp.5, %then.loopexit ]		; <ubyte> [#uses=1]
+ 	%tmp.7.0 = phi ubyte [ %tmp.79, %entry ], [ %tmp.7, %then.loopexit ]		; <ubyte> [#uses=1]
+ 	%tmp.12 = cast ubyte %tmp.5.0 to int		; <int> [#uses=1]
+ 	%tmp.14 = cast ubyte %tmp.7.0 to int		; <int> [#uses=1]
+ 	%tmp.14.neg = sub int 0, %tmp.14		; <int> [#uses=1]
+ 	%tmp.15 = add int %tmp.14.neg, %tmp.12		; <int> [#uses=1]
+ 	ret int %tmp.15
+ 
+ endif.preheader:		; preds = %entry
+ 	br label %endif
+ 
+ endif:		; preds = %endif.preheader, %backEdgeInst
+ 	%indvar = phi ulong [ %inc.18.sum, %backEdgeInst ], [ 0, %endif.preheader ]		; <ulong> [#uses=1]
+ 	%tmp.5.1 = phi ubyte [ %tmp.5, %backEdgeInst ], [ %tmp.57, %endif.preheader ]		; <ubyte> [#uses=2]
+ 	%tmp.7.1 = phi ubyte [ %tmp.7, %backEdgeInst ], [ %tmp.79, %endif.preheader ]		; <ubyte> [#uses=2]
+ 	%inc.18.sum = add ulong %indvar, 1		; <ulong> [#uses=2]
+ 	%v9 = cast ulong %inc.18.sum to long		; <long> [#uses=2]
+ 	%inc.1.1 = getelementptr ubyte* %tmp.3, long %v9		; <ubyte*> [#uses=1]
+ 	%inc.0.1 = getelementptr ubyte* %tmp.1, long %v9		; <ubyte*> [#uses=1]
+ 	%tmp.18 = seteq ubyte %tmp.5.1, %tmp.7.1		; <bool> [#uses=1]
+ 	br bool %tmp.18, label %loopentry, label %loopexit
+ 
+ loopexit:		; preds = %endif
+ 	%tmp.21 = cast ubyte %tmp.5.1 to int		; <int> [#uses=1]
+ 	%tmp.23 = cast ubyte %tmp.7.1 to int		; <int> [#uses=1]
+ 	%tmp.23.neg = sub int 0, %tmp.23		; <int> [#uses=1]
+ 	%tmp.24 = add int %tmp.23.neg, %tmp.21		; <int> [#uses=1]
+ 	ret int %tmp.24
+ 
+ backEdgeInst:		; preds = %loopentry
+ 	call void %llvm_first_trigger( )
+ 	br label %endif
+ }
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ declare int %sprintf(sbyte*, sbyte*, ...)
+ 
+ declare void %exit(int)
+ 
+ declare void %perror(sbyte*)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%buf = alloca [32 x sbyte]		; <[32 x sbyte]*> [#uses=8]
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i1
+ 
+ endif.0.i1:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i1
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %cond_continue
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=4]
+ 	"constantGEP:" = getelementptr %struct.ht_ht* null, uint 1		; <%struct.ht_ht*> [#uses=1]
+ 	%constantCast = cast %struct.ht_ht* "constantGEP:" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to %struct.ht_ht*		; <%struct.ht_ht*>:0 [#uses=7]
+ 	%tmp.76.i35 = cast int %tmp.3 to ulong		; <ulong> [#uses=2]
+ 	%tmp.87.i36 = setgt ulong %tmp.76.i35, 53		; <bool> [#uses=1]
+ 	br bool %tmp.87.i36, label %no_exit.i37.preheader, label %ht_create.entry60
+ 
+ no_exit.i37.preheader:		; preds = %cond_true
+ 	"addrOfGlobal:.ht_prime_list_1" = getelementptr [28 x ulong]* %.ht_prime_list_1, long 0		; <[28 x ulong]*> [#uses=1]
+ 	br label %no_exit.i37
+ 
+ no_exit.i37:		; preds = %no_exit.i37.preheader, %backEdgeInst
+ 	%indvar.i38 = phi uint [ %indvar.next.i44, %backEdgeInst ], [ 0, %no_exit.i37.preheader ]		; <uint> [#uses=2]
+ 	%i.0.0.i39 = cast uint %indvar.i38 to int		; <int> [#uses=1]
+ 	%inc.i40 = add int %i.0.0.i39, 1		; <int> [#uses=2]
+ 	%v9 = cast int %inc.i40 to long		; <long> [#uses=1]
+ 	%tmp.4.i41 = getelementptr [28 x ulong]* "addrOfGlobal:.ht_prime_list_1", long 0, long %v9		; <ulong*> [#uses=1]
+ 	%tmp.5.i42 = load ulong* %tmp.4.i41		; <ulong> [#uses=1]
+ 	%tmp.8.i43 = setlt ulong %tmp.5.i42, %tmp.76.i35		; <bool> [#uses=1]
+ 	%indvar.next.i44 = add uint %indvar.i38, 1		; <uint> [#uses=1]
+ 	br bool %tmp.8.i43, label %backEdgeInst, label %ht_create.entry60.loopexit
+ 
+ ht_create.entry60.loopexit:		; preds = %no_exit.i37
+ 	br label %ht_create.entry60
+ 
+ ht_create.entry60:		; preds = %cond_true, %ht_create.entry60.loopexit
+ 	%i.0.1.i46 = phi int [ 0, %cond_true ], [ %inc.i40, %ht_create.entry60.loopexit ]		; <int> [#uses=1]
+ 	%tmp.12.i47 = getelementptr %struct.ht_ht* %0, long 0, uint 0		; <int*> [#uses=1]
+ 	%v92 = cast int %i.0.1.i46 to long		; <long> [#uses=1]
+ 	"addrOfGlobal:.ht_prime_list_13" = getelementptr [28 x ulong]* %.ht_prime_list_1, long 0		; <[28 x ulong]*> [#uses=1]
+ 	%tmp.15.i48 = getelementptr [28 x ulong]* "addrOfGlobal:.ht_prime_list_13", long 0, long %v92		; <ulong*> [#uses=1]
+ 	%tmp.16.i49 = load ulong* %tmp.15.i48		; <ulong> [#uses=1]
+ 	%tmp.17.i50 = cast ulong %tmp.16.i49 to int		; <int> [#uses=2]
+ 	store int %tmp.17.i50, int* %tmp.12.i47
+ 	%tmp.19.i51 = getelementptr %struct.ht_ht* %0, long 0, uint 1		; <%struct.ht_node***> [#uses=1]
+ 	%tmp.24.i52 = cast int %tmp.17.i50 to ulong		; <ulong> [#uses=1]
+ 	%tmp.3.i.i53 = shl ulong %tmp.24.i52, ubyte 3		; <ulong> [#uses=2]
+ 	%MallocAmtCast.i.i54 = cast ulong %tmp.3.i.i53 to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %MallocAmtCast.i.i54 )		; <sbyte*>:1 [#uses=1]
+ 	cast sbyte* %1 to sbyte*		; <sbyte*>:2 [#uses=2]
+ 	call sbyte* %memset( sbyte* %2, ubyte 0, ulong %tmp.3.i.i53 )		; <sbyte*>:3 [#uses=0]
+ 	%tmp.25.i56 = cast sbyte* %2 to %struct.ht_node**		; <%struct.ht_node**> [#uses=1]
+ 	store %struct.ht_node** %tmp.25.i56, %struct.ht_node*** %tmp.19.i51
+ 	%tmp.27.i57 = getelementptr %struct.ht_ht* %0, long 0, uint 2		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.27.i57
+ 	%tmp.29.i58 = getelementptr %struct.ht_ht* %0, long 0, uint 3		; <%struct.ht_node**> [#uses=1]
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.29.i58
+ 	%tmp.32.i59 = getelementptr %struct.ht_ht* %0, long 0, uint 4		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.32.i59
+ 	%tmp.1238 = setlt int %tmp.3, 1		; <bool> [#uses=1]
+ 	br bool %tmp.1238, label %loopentry.1, label %no_exit.0.preheader
+ 
+ cond_continue:		; preds = %__main.entry
+ 	"constantGEP:4" = getelementptr %struct.ht_ht* null, uint 1		; <%struct.ht_ht*> [#uses=1]
+ 	%constantCast5 = cast %struct.ht_ht* "constantGEP:4" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast5 )		; <sbyte*>:4 [#uses=1]
+ 	cast sbyte* %4 to %struct.ht_ht*		; <%struct.ht_ht*>:1 [#uses=6]
+ 	"addrOfGlobal:.ht_prime_list_17" = getelementptr [28 x ulong]* %.ht_prime_list_1, long 0		; <[28 x ulong]*> [#uses=1]
+ 	%copyConst = cast ulong 3500000 to ulong		; <ulong> [#uses=1]
+ 	br label %no_exit.i7
+ 
+ no_exit.i7:		; preds = %cond_continue, %backEdgeInst1
+ 	%indvar.i8 = phi uint [ %indvar.next.i11, %backEdgeInst1 ], [ 0, %cond_continue ]		; <uint> [#uses=2]
+ 	%i.0.0.i9 = cast uint %indvar.i8 to int		; <int> [#uses=1]
+ 	%inc.i10 = add int %i.0.0.i9, 1		; <int> [#uses=1]
+ 	%v96 = cast int %inc.i10 to long		; <long> [#uses=1]
+ 	%tmp.4.i = getelementptr [28 x ulong]* "addrOfGlobal:.ht_prime_list_17", long 0, long %v96		; <ulong*> [#uses=2]
+ 	%tmp.5.i = load ulong* %tmp.4.i		; <ulong> [#uses=1]
+ 	%tmp.8.i = setlt ulong %tmp.5.i, %copyConst		; <bool> [#uses=1]
+ 	%indvar.next.i11 = add uint %indvar.i8, 1		; <uint> [#uses=1]
+ 	br bool %tmp.8.i, label %backEdgeInst1, label %ht_create.entry
+ 
+ ht_create.entry:		; preds = %no_exit.i7
+ 	%tmp.12.i = getelementptr %struct.ht_ht* %1, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.16.i = load ulong* %tmp.4.i		; <ulong> [#uses=1]
+ 	%tmp.17.i = cast ulong %tmp.16.i to int		; <int> [#uses=2]
+ 	store int %tmp.17.i, int* %tmp.12.i
+ 	%tmp.19.i = getelementptr %struct.ht_ht* %1, long 0, uint 1		; <%struct.ht_node***> [#uses=1]
+ 	%tmp.24.i = cast int %tmp.17.i to ulong		; <ulong> [#uses=1]
+ 	%tmp.3.i.i = shl ulong %tmp.24.i, ubyte 3		; <ulong> [#uses=2]
+ 	%MallocAmtCast.i.i = cast ulong %tmp.3.i.i to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %MallocAmtCast.i.i )		; <sbyte*>:5 [#uses=1]
+ 	cast sbyte* %5 to sbyte*		; <sbyte*>:6 [#uses=2]
+ 	call sbyte* %memset( sbyte* %6, ubyte 0, ulong %tmp.3.i.i )		; <sbyte*>:7 [#uses=0]
+ 	%tmp.25.i = cast sbyte* %6 to %struct.ht_node**		; <%struct.ht_node**> [#uses=1]
+ 	store %struct.ht_node** %tmp.25.i, %struct.ht_node*** %tmp.19.i
+ 	%tmp.27.i13 = getelementptr %struct.ht_ht* %1, long 0, uint 2		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.27.i13
+ 	%tmp.29.i = getelementptr %struct.ht_ht* %1, long 0, uint 3		; <%struct.ht_node**> [#uses=1]
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.29.i
+ 	%tmp.32.i = getelementptr %struct.ht_ht* %1, long 0, uint 4		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.32.i
+ 	%copyConst = cast int 3500000 to int		; <int> [#uses=1]
+ 	br label %no_exit.0.preheader
+ 
+ loopentry.0:		; preds = %then.0.i7.i, %.ht_find_new_6.entry
+ 	%inc.0.0 = phi int [ %inc.0, %.ht_find_new_6.entry ], [ %inc.060, %then.0.i7.i ]		; <int> [#uses=2]
+ 	%tmp.12 = setgt int %inc.0.0, %mem_tmp.0.0.ph		; <bool> [#uses=1]
+ 	br bool %tmp.12, label %loopentry.1.loopexit, label %backEdgeInst2
+ 
+ no_exit.0.preheader:		; preds = %ht_create.entry60, %ht_create.entry
+ 	%mem_tmp.0.0.ph = phi int [ %tmp.3, %ht_create.entry60 ], [ %copyConst, %ht_create.entry ]		; <int> [#uses=2]
+ 	%tmp.8.0.ph = phi %struct.ht_ht* [ %0, %ht_create.entry60 ], [ %1, %ht_create.entry ]		; <%struct.ht_ht*> [#uses=4]
+ 	%tmp.15 = getelementptr [32 x sbyte]* %buf, long 0, long 0		; <sbyte*> [#uses=7]
+ 	%tmp.13.i.i = getelementptr %struct.ht_ht* %tmp.8.0.ph, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.5.i = getelementptr %struct.ht_ht* %tmp.8.0.ph, long 0, uint 1		; <%struct.ht_node***> [#uses=1]
+ 	%tmp.27.i = getelementptr %struct.ht_ht* %tmp.8.0.ph, long 0, uint 4		; <int*> [#uses=2]
+ 	"addrOfGlobal:.str_3" = getelementptr [3 x sbyte]* %.str_3, long 0		; <[3 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_3" = getelementptr [3 x sbyte]* "addrOfGlobal:.str_3", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"constantGEP:" = getelementptr [24 x sbyte]* null, uint 1		; <[24 x sbyte]*> [#uses=1]
+ 	%constantCast12 = cast [24 x sbyte]* "constantGEP:" to uint		; <uint> [#uses=2]
+ 	%v913 = cast int 0 to long		; <long> [#uses=4]
+ 	"addrOfGlobal:.str_1" = getelementptr [15 x sbyte]* %.str_1, long 0		; <[15 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [15 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=2]
+ 	"constantGEP:" = getelementptr %struct.ht_node* null, long 0, uint 1		; <int*> [#uses=1]
+ 	"addrOfGlobal:.str_2" = getelementptr [14 x sbyte]* %.str_2, long 0		; <[14 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_2" = getelementptr [14 x sbyte]* "addrOfGlobal:.str_2", long 0, long 0		; <sbyte*> [#uses=2]
+ 	br label %no_exit.0
+ 
+ no_exit.0:		; preds = %no_exit.0.preheader, %backEdgeInst2
+ 	%i.1.0 = phi int [ %inc.0.0, %backEdgeInst2 ], [ 1, %no_exit.0.preheader ]		; <int> [#uses=5]
+ 	%tmp.14 = call int (sbyte*, sbyte*, ...)* %sprintf( sbyte* %tmp.15, sbyte* "constantGEP:addrOfGlobal:.str_3", int %i.1.0 )		; <int> [#uses=0]
+ 	%tmp.1.i.i48 = load sbyte* %tmp.15		; <sbyte> [#uses=1]
+ 	%tmp.2.i.i49 = seteq sbyte %tmp.1.i.i48, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i49, label %.ht_hashcode_4.entry.i, label %no_exit.i.i.preheader
+ 
+ no_exit.i.i.preheader:		; preds = %no_exit.0
+ 	br label %no_exit.i.i
+ 
+ no_exit.i.i:		; preds = %no_exit.i.i.preheader, %backEdgeInst3
+ 	%indvar79 = phi ulong [ %indvar.next80, %backEdgeInst3 ], [ 0, %no_exit.i.i.preheader ]		; <ulong> [#uses=2]
+ 	%val.0.i.i.2 = phi ulong [ %tmp.9.i.i, %backEdgeInst3 ], [ 0, %no_exit.i.i.preheader ]		; <ulong> [#uses=1]
+ 	%key_addr.0.i.i.2.rec = cast ulong %indvar79 to long		; <long> [#uses=2]
+ 	%key_addr.0.i.i.2 = getelementptr [32 x sbyte]* %buf, long 0, long %key_addr.0.i.i.2.rec		; <sbyte*> [#uses=1]
+ 	%tmp.5.i.i = mul ulong %val.0.i.i.2, 5		; <ulong> [#uses=1]
+ 	%tmp.7.i.i = load sbyte* %key_addr.0.i.i.2		; <sbyte> [#uses=1]
+ 	%tmp.8.i.i = cast sbyte %tmp.7.i.i to ulong		; <ulong> [#uses=1]
+ 	%tmp.9.i.i = add ulong %tmp.8.i.i, %tmp.5.i.i		; <ulong> [#uses=2]
+ 	%inc.i.i.rec = add long %key_addr.0.i.i.2.rec, 1		; <long> [#uses=1]
+ 	%inc.i.i = getelementptr [32 x sbyte]* %buf, long 0, long %inc.i.i.rec		; <sbyte*> [#uses=1]
+ 	%tmp.1.i.i = load sbyte* %inc.i.i		; <sbyte> [#uses=1]
+ 	%tmp.2.i.i = seteq sbyte %tmp.1.i.i, 0		; <bool> [#uses=1]
+ 	%indvar.next80 = add ulong %indvar79, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.2.i.i, label %.ht_hashcode_4.entry.i.loopexit, label %backEdgeInst3
+ 
+ .ht_hashcode_4.entry.i.loopexit:		; preds = %no_exit.i.i
+ 	br label %.ht_hashcode_4.entry.i
+ 
+ .ht_hashcode_4.entry.i:		; preds = %no_exit.0, %.ht_hashcode_4.entry.i.loopexit
+ 	%val.0.i.i.3 = phi ulong [ 0, %no_exit.0 ], [ %tmp.9.i.i, %.ht_hashcode_4.entry.i.loopexit ]		; <ulong> [#uses=1]
+ 	%tmp.14.i.i = load int* %tmp.13.i.i		; <int> [#uses=1]
+ 	%tmp.15.i.i = cast int %tmp.14.i.i to ulong		; <ulong> [#uses=1]
+ 	%tmp.16.i.i = rem ulong %val.0.i.i.3, %tmp.15.i.i		; <ulong> [#uses=1]
+ 	%tmp.17.i.i = cast ulong %tmp.16.i.i to int		; <int> [#uses=1]
+ 	%tmp.6.i = load %struct.ht_node*** %tmp.5.i		; <%struct.ht_node**> [#uses=1]
+ 	%v911 = cast int %tmp.17.i.i to long		; <long> [#uses=1]
+ 	%tmp.9.i = getelementptr %struct.ht_node** %tmp.6.i, long %v911		; <%struct.ht_node**> [#uses=4]
+ 	%tmp.10.i = load %struct.ht_node** %tmp.9.i		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.12.i56 = seteq %struct.ht_node* %tmp.10.i, null		; <bool> [#uses=1]
+ 	br bool %tmp.12.i56, label %loopexit.i, label %no_exit.i.preheader
+ 
+ no_exit.i.preheader:		; preds = %.ht_hashcode_4.entry.i
+ 	br label %no_exit.i
+ 
+ no_exit.i:		; preds = %no_exit.i.preheader, %backEdgeInst4
+ 	%node.0.i.2 = phi %struct.ht_node* [ %tmp.25.i, %backEdgeInst4 ], [ %tmp.10.i, %no_exit.i.preheader ]		; <%struct.ht_node*> [#uses=4]
+ 	%tmp.17.i = getelementptr %struct.ht_node* %node.0.i.2, long 0, uint 0		; <sbyte**> [#uses=1]
+ 	%tmp.18.i = load sbyte** %tmp.17.i		; <sbyte*> [#uses=1]
+ 	%tmp.14.i = call int %strcmp( sbyte* %tmp.15, sbyte* %tmp.18.i )		; <int> [#uses=1]
+ 	%tmp.19.i = seteq int %tmp.14.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.19.i, label %.ht_find_new_6.entry.loopexit, label %endif.0.i
+ 
+ endif.0.i:		; preds = %no_exit.i
+ 	%tmp.24.i = getelementptr %struct.ht_node* %node.0.i.2, long 0, uint 2		; <%struct.ht_node**> [#uses=1]
+ 	%tmp.25.i = load %struct.ht_node** %tmp.24.i		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.12.i = seteq %struct.ht_node* %tmp.25.i, null		; <bool> [#uses=1]
+ 	br bool %tmp.12.i, label %loopexit.i.loopexit, label %backEdgeInst4
+ 
+ loopexit.i.loopexit:		; preds = %endif.0.i
+ 	br label %loopexit.i
+ 
+ loopexit.i:		; preds = %.ht_hashcode_4.entry.i, %loopexit.i.loopexit
+ 	%prev.0.i.3 = phi %struct.ht_node* [ null, %.ht_hashcode_4.entry.i ], [ %node.0.i.2, %loopexit.i.loopexit ]		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.28.i = load int* %tmp.27.i		; <int> [#uses=1]
+ 	%inc.i = add int %tmp.28.i, 1		; <int> [#uses=1]
+ 	store int %inc.i, int* %tmp.27.i
+ 	%tmp.30.i = seteq %struct.ht_node* %prev.0.i.3, null		; <bool> [#uses=1]
+ 	br bool %tmp.30.i, label %else.i, label %then.1.i
+ 
+ then.1.i:		; preds = %loopexit.i
+ 	%tmp.33.i = getelementptr %struct.ht_node* %prev.0.i.3, long 0, uint 2		; <%struct.ht_node**> [#uses=3]
+ 	call sbyte* %malloc( uint %constantCast12 )		; <sbyte*>:8 [#uses=1]
+ 	cast sbyte* %8 to [24 x sbyte]*		; <[24 x sbyte]*>:0 [#uses=2]
+ 	%ptr1 = getelementptr [24 x sbyte]* %0, long %v913		; <[24 x sbyte]*> [#uses=1]
+ 	%tmp.0.sub.i4.i15 = getelementptr [24 x sbyte]* %ptr1, long 0, long %v913		; <sbyte*> [#uses=1]
+ 	%tmp.1.i5.i = cast [24 x sbyte]* %0 to %struct.ht_node*		; <%struct.ht_node*> [#uses=5]
+ 	%tmp.2.i6.i = seteq sbyte* %tmp.0.sub.i4.i15, null		; <bool> [#uses=1]
+ 	br bool %tmp.2.i6.i, label %then.0.i7.i, label %endif.0.i8.i
+ 
+ then.0.i7.i:		; preds = %then.1.i
+ 	call void %perror( sbyte* "constantGEP:addrOfGlobal:.str_1" )
+ 	call void %exit( int 1 )
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.33.i
+ 	store int %i.1.0, int* "constantGEP:"
+ 	%inc.060 = add int %i.1.0, 1		; <int> [#uses=1]
+ 	br label %loopentry.0
+ 
+ endif.0.i8.i:		; preds = %then.1.i
+ 	%tmp.1.i5.i18 = load sbyte* %tmp.15		; <sbyte> [#uses=1]
+ 	%tmp.2.i6.i19 = seteq sbyte %tmp.1.i5.i18, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i6.i19, label %strdup.entry33, label %no_exit.i.i20.preheader
+ 
+ no_exit.i.i20.preheader:		; preds = %endif.0.i8.i
+ 	br label %no_exit.i.i20
+ 
+ no_exit.i.i20:		; preds = %no_exit.i.i20.preheader, %backEdgeInst5
+ 	%Count.0.i.0.i21 = phi ulong [ %inc.0.i.i23, %backEdgeInst5 ], [ 0, %no_exit.i.i20.preheader ]		; <ulong> [#uses=2]
+ 	%Str_addr.0.i.0.rec.i22 = cast ulong %Count.0.i.0.i21 to long		; <long> [#uses=1]
+ 	%inc.0.i.i23 = add ulong %Count.0.i.0.i21, 1		; <ulong> [#uses=2]
+ 	%inc.1.i.rec.i24 = add long %Str_addr.0.i.0.rec.i22, 1		; <long> [#uses=1]
+ 	%inc.1.i.i25 = getelementptr [32 x sbyte]* %buf, long 0, long %inc.1.i.rec.i24		; <sbyte*> [#uses=1]
+ 	%tmp.1.i.i26 = load sbyte* %inc.1.i.i25		; <sbyte> [#uses=1]
+ 	%tmp.2.i.i27 = seteq sbyte %tmp.1.i.i26, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i27, label %strdup.entry33.loopexit, label %backEdgeInst5
+ 
+ strdup.entry33.loopexit:		; preds = %no_exit.i.i20
+ 	br label %strdup.entry33
+ 
+ strdup.entry33:		; preds = %endif.0.i8.i, %strdup.entry33.loopexit
+ 	%Count.0.i.1.i28 = phi ulong [ 0, %endif.0.i8.i ], [ %inc.0.i.i23, %strdup.entry33.loopexit ]		; <ulong> [#uses=2]
+ 	%tmp.0.i29 = cast ulong %Count.0.i.1.i28 to uint		; <uint> [#uses=1]
+ 	%MallocAmtCast.i30 = add uint %tmp.0.i29, 1		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %MallocAmtCast.i30 )		; <sbyte*>:9 [#uses=1]
+ 	cast sbyte* %9 to sbyte*		; <sbyte*>:10 [#uses=3]
+ 	%tmp.8.i32 = add ulong %Count.0.i.1.i28, 1		; <ulong> [#uses=1]
+ 	call sbyte* %memcpy( sbyte* %10, sbyte* %tmp.15, ulong %tmp.8.i32 )		; <sbyte*>:11 [#uses=0]
+ 	%tmp.7.i10.i = seteq sbyte* %10, null		; <bool> [#uses=1]
+ 	br bool %tmp.7.i10.i, label %then.1.i11.i, label %endif.1.i12.i
+ 
+ then.1.i11.i:		; preds = %strdup.entry33
+ 	call void %perror( sbyte* "constantGEP:addrOfGlobal:.str_2" )
+ 	call void %exit( int 1 )
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.33.i
+ 	br label %.ht_find_new_6.entry
+ 
+ endif.1.i12.i:		; preds = %strdup.entry33
+ 	%tmp.11.i13.i = getelementptr %struct.ht_node* %tmp.1.i5.i, long 0, uint 0		; <sbyte**> [#uses=1]
+ 	store sbyte* %10, sbyte** %tmp.11.i13.i
+ 	%tmp.14.i14.i = getelementptr %struct.ht_node* %tmp.1.i5.i, long 0, uint 1		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.14.i14.i
+ 	%tmp.16.i15.i = getelementptr %struct.ht_node* %tmp.1.i5.i, long 0, uint 2		; <%struct.ht_node**> [#uses=1]
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.16.i15.i
+ 	store %struct.ht_node* %tmp.1.i5.i, %struct.ht_node** %tmp.33.i
+ 	br label %.ht_find_new_6.entry
+ 
+ else.i:		; preds = %loopexit.i
+ 	call sbyte* %malloc( uint %constantCast12 )		; <sbyte*>:12 [#uses=1]
+ 	cast sbyte* %12 to [24 x sbyte]*		; <[24 x sbyte]*>:1 [#uses=2]
+ 	%ptr120 = getelementptr [24 x sbyte]* %1, long %v913		; <[24 x sbyte]*> [#uses=1]
+ 	%tmp.0.sub.i.i21 = getelementptr [24 x sbyte]* %ptr120, long 0, long %v913		; <sbyte*> [#uses=1]
+ 	%tmp.1.i.i = cast [24 x sbyte]* %1 to %struct.ht_node*		; <%struct.ht_node*> [#uses=5]
+ 	%tmp.2.i1.i = seteq sbyte* %tmp.0.sub.i.i21, null		; <bool> [#uses=1]
+ 	br bool %tmp.2.i1.i, label %then.0.i.i, label %endif.0.i.i
+ 
+ then.0.i.i:		; preds = %else.i
+ 	call void %perror( sbyte* "constantGEP:addrOfGlobal:.str_1" )
+ 	call void %exit( int 1 )
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.9.i
+ 	br label %.ht_find_new_6.entry
+ 
+ endif.0.i.i:		; preds = %else.i
+ 	%tmp.1.i5.i = load sbyte* %tmp.15		; <sbyte> [#uses=1]
+ 	%tmp.2.i6.i14 = seteq sbyte %tmp.1.i5.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i6.i14, label %strdup.entry, label %no_exit.i.i15.preheader
+ 
+ no_exit.i.i15.preheader:		; preds = %endif.0.i.i
+ 	br label %no_exit.i.i15
+ 
+ no_exit.i.i15:		; preds = %no_exit.i.i15.preheader, %backEdgeInst6
+ 	%Count.0.i.0.i = phi ulong [ %inc.0.i.i, %backEdgeInst6 ], [ 0, %no_exit.i.i15.preheader ]		; <ulong> [#uses=2]
+ 	%Str_addr.0.i.0.rec.i = cast ulong %Count.0.i.0.i to long		; <long> [#uses=1]
+ 	%inc.0.i.i = add ulong %Count.0.i.0.i, 1		; <ulong> [#uses=2]
+ 	%inc.1.i.rec.i = add long %Str_addr.0.i.0.rec.i, 1		; <long> [#uses=1]
+ 	%inc.1.i.i = getelementptr [32 x sbyte]* %buf, long 0, long %inc.1.i.rec.i		; <sbyte*> [#uses=1]
+ 	%tmp.1.i.i16 = load sbyte* %inc.1.i.i		; <sbyte> [#uses=1]
+ 	%tmp.2.i.i17 = seteq sbyte %tmp.1.i.i16, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i17, label %strdup.entry.loopexit, label %backEdgeInst6
+ 
+ strdup.entry.loopexit:		; preds = %no_exit.i.i15
+ 	br label %strdup.entry
+ 
+ strdup.entry:		; preds = %endif.0.i.i, %strdup.entry.loopexit
+ 	%Count.0.i.1.i = phi ulong [ 0, %endif.0.i.i ], [ %inc.0.i.i, %strdup.entry.loopexit ]		; <ulong> [#uses=2]
+ 	%tmp.0.i = cast ulong %Count.0.i.1.i to uint		; <uint> [#uses=1]
+ 	%MallocAmtCast.i = add uint %tmp.0.i, 1		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %MallocAmtCast.i )		; <sbyte*>:13 [#uses=1]
+ 	cast sbyte* %13 to sbyte*		; <sbyte*>:14 [#uses=3]
+ 	%tmp.8.i = add ulong %Count.0.i.1.i, 1		; <ulong> [#uses=1]
+ 	call sbyte* %memcpy( sbyte* %14, sbyte* %tmp.15, ulong %tmp.8.i )		; <sbyte*>:15 [#uses=0]
+ 	%tmp.7.i.i = seteq sbyte* %14, null		; <bool> [#uses=1]
+ 	br bool %tmp.7.i.i, label %then.1.i.i, label %endif.1.i.i
+ 
+ then.1.i.i:		; preds = %strdup.entry
+ 	call void %perror( sbyte* "constantGEP:addrOfGlobal:.str_2" )
+ 	call void %exit( int 1 )
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.9.i
+ 	br label %.ht_find_new_6.entry
+ 
+ endif.1.i.i:		; preds = %strdup.entry
+ 	%tmp.11.i.i = getelementptr %struct.ht_node* %tmp.1.i.i, long 0, uint 0		; <sbyte**> [#uses=1]
+ 	store sbyte* %14, sbyte** %tmp.11.i.i
+ 	%tmp.14.i.i = getelementptr %struct.ht_node* %tmp.1.i.i, long 0, uint 1		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.14.i.i
+ 	%tmp.16.i.i = getelementptr %struct.ht_node* %tmp.1.i.i, long 0, uint 2		; <%struct.ht_node**> [#uses=1]
+ 	store %struct.ht_node* null, %struct.ht_node** %tmp.16.i.i
+ 	store %struct.ht_node* %tmp.1.i.i, %struct.ht_node** %tmp.9.i
+ 	br label %.ht_find_new_6.entry
+ 
+ .ht_find_new_6.entry.loopexit:		; preds = %no_exit.i
+ 	br label %.ht_find_new_6.entry
+ 
+ .ht_find_new_6.entry:		; preds = %then.1.i11.i, %endif.1.i12.i, %then.0.i.i, %then.1.i.i, %endif.1.i.i, %.ht_find_new_6.entry.loopexit
+ 	%tmp.181 = phi %struct.ht_node* [ %tmp.1.i5.i, %endif.1.i12.i ], [ %tmp.1.i.i, %endif.1.i.i ], [ null, %then.1.i11.i ], [ null, %then.0.i.i ], [ null, %then.1.i.i ], [ %node.0.i.2, %.ht_find_new_6.entry.loopexit ]		; <%struct.ht_node*> [#uses=1]
+ 	%tmp.21 = getelementptr %struct.ht_node* %tmp.181, long 0, uint 1		; <int*> [#uses=1]
+ 	store int %i.1.0, int* %tmp.21
+ 	%inc.0 = add int %i.1.0, 1		; <int> [#uses=1]
+ 	br label %loopentry.0
+ 
+ loopentry.1.loopexit:		; preds = %loopentry.0
+ 	br label %loopentry.1
+ 
+ loopentry.1:		; preds = %ht_create.entry60, %loopentry.1.loopexit
+ 	%tmp.8.1 = phi %struct.ht_ht* [ %0, %ht_create.entry60 ], [ %tmp.8.0.ph, %loopentry.1.loopexit ]		; <%struct.ht_ht*> [#uses=6]
+ 	%i.0 = phi int [ %tmp.3, %ht_create.entry60 ], [ %mem_tmp.0.0.ph, %loopentry.1.loopexit ]		; <int> [#uses=2]
+ 	%tmp.26 = setgt int %i.0, 0		; <bool> [#uses=1]
+ 	br bool %tmp.26, label %no_exit.1.preheader, label %loopexit.1
+ 
+ no_exit.1.preheader:		; preds = %loopentry.1
+ 	%tmp.29 = getelementptr [32 x sbyte]* %buf, long 0, long 0		; <sbyte*> [#uses=3]
+ 	%tmp.13.i.i14 = getelementptr %struct.ht_ht* %tmp.8.1, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.4.i = getelementptr %struct.ht_ht* %tmp.8.1, long 0, uint 1		; <%struct.ht_node***> [#uses=1]
+ 	"addrOfGlobal:.str_4" = getelementptr [3 x sbyte]* %.str_4, long 0		; <[3 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_4" = getelementptr [3 x sbyte]* "addrOfGlobal:.str_4", long 0, long 0		; <sbyte*> [#uses=1]
+ 	br label %no_exit.1
+ 
+ no_exit.1:		; preds = %no_exit.1.preheader, %backEdgeInst7
+ 	%indvar = phi uint [ 0, %no_exit.1.preheader ], [ %indvar.next, %backEdgeInst7 ]		; <uint> [#uses=2]
+ 	%c.1.0 = phi int [ %c.0, %backEdgeInst7 ], [ 0, %no_exit.1.preheader ]		; <int> [#uses=1]
+ 	%indvar = cast uint %indvar to int		; <int> [#uses=1]
+ 	%indvar.neg = sub int 0, %indvar		; <int> [#uses=1]
+ 	%i.0.0 = add int %indvar.neg, %i.0		; <int> [#uses=2]
+ 	%tmp.28 = call int (sbyte*, sbyte*, ...)* %sprintf( sbyte* %tmp.29, sbyte* "constantGEP:addrOfGlobal:.str_4", int %i.0.0 )		; <int> [#uses=0]
+ 	%tmp.1.i.i565 = load sbyte* %tmp.29		; <sbyte> [#uses=1]
+ 	%tmp.2.i.i666 = seteq sbyte %tmp.1.i.i565, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i666, label %.ht_hashcode_4.entry.i13, label %no_exit.i.i7.preheader
+ 
+ no_exit.i.i7.preheader:		; preds = %no_exit.1
+ 	br label %no_exit.i.i7
+ 
+ no_exit.i.i7:		; preds = %no_exit.i.i7.preheader, %backEdgeInst8
+ 	%indvar = phi ulong [ %indvar.next, %backEdgeInst8 ], [ 0, %no_exit.i.i7.preheader ]		; <ulong> [#uses=2]
+ 	%val.0.i.i3.2 = phi ulong [ %tmp.9.i.i11, %backEdgeInst8 ], [ 0, %no_exit.i.i7.preheader ]		; <ulong> [#uses=1]
+ 	%key_addr.0.i.i4.2.rec = cast ulong %indvar to long		; <long> [#uses=2]
+ 	%key_addr.0.i.i4.2 = getelementptr [32 x sbyte]* %buf, long 0, long %key_addr.0.i.i4.2.rec		; <sbyte*> [#uses=1]
+ 	%tmp.5.i.i8 = mul ulong %val.0.i.i3.2, 5		; <ulong> [#uses=1]
+ 	%tmp.7.i.i9 = load sbyte* %key_addr.0.i.i4.2		; <sbyte> [#uses=1]
+ 	%tmp.8.i.i10 = cast sbyte %tmp.7.i.i9 to ulong		; <ulong> [#uses=1]
+ 	%tmp.9.i.i11 = add ulong %tmp.8.i.i10, %tmp.5.i.i8		; <ulong> [#uses=2]
+ 	%inc.i.i12.rec = add long %key_addr.0.i.i4.2.rec, 1		; <long> [#uses=1]
+ 	%inc.i.i12 = getelementptr [32 x sbyte]* %buf, long 0, long %inc.i.i12.rec		; <sbyte*> [#uses=1]
+ 	%tmp.1.i.i5 = load sbyte* %inc.i.i12		; <sbyte> [#uses=1]
+ 	%tmp.2.i.i6 = seteq sbyte %tmp.1.i.i5, 0		; <bool> [#uses=1]
+ 	%indvar.next = add ulong %indvar, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.2.i.i6, label %.ht_hashcode_4.entry.i13.loopexit, label %backEdgeInst8
+ 
+ .ht_hashcode_4.entry.i13.loopexit:		; preds = %no_exit.i.i7
+ 	br label %.ht_hashcode_4.entry.i13
+ 
+ .ht_hashcode_4.entry.i13:		; preds = %no_exit.1, %.ht_hashcode_4.entry.i13.loopexit
+ 	%val.0.i.i3.3 = phi ulong [ 0, %no_exit.1 ], [ %tmp.9.i.i11, %.ht_hashcode_4.entry.i13.loopexit ]		; <ulong> [#uses=1]
+ 	%tmp.14.i.i15 = load int* %tmp.13.i.i14		; <int> [#uses=1]
+ 	%tmp.15.i.i16 = cast int %tmp.14.i.i15 to ulong		; <ulong> [#uses=1]
+ 	%tmp.16.i.i17 = rem ulong %val.0.i.i3.3, %tmp.15.i.i16		; <ulong> [#uses=1]
+ 	%tmp.17.i.i18 = cast ulong %tmp.16.i.i17 to int		; <int> [#uses=1]
+ 	%tmp.5.i = load %struct.ht_node*** %tmp.4.i		; <%struct.ht_node**> [#uses=1]
+ 	%v925 = cast int %tmp.17.i.i18 to long		; <long> [#uses=1]
+ 	%tmp.8.i = getelementptr %struct.ht_node** %tmp.5.i, long %v925		; <%struct.ht_node**> [#uses=1]
+ 	%tmp.9.i = load %struct.ht_node** %tmp.8.i		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.11.i71 = seteq %struct.ht_node* %tmp.9.i, null		; <bool> [#uses=1]
+ 	br bool %tmp.11.i71, label %.ht_find_5.entry, label %no_exit.i21.preheader
+ 
+ no_exit.i21.preheader:		; preds = %.ht_hashcode_4.entry.i13
+ 	br label %no_exit.i21
+ 
+ no_exit.i21:		; preds = %no_exit.i21.preheader, %backEdgeInst9
+ 	%node.0.i20.2 = phi %struct.ht_node* [ %tmp.23.i, %backEdgeInst9 ], [ %tmp.9.i, %no_exit.i21.preheader ]		; <%struct.ht_node*> [#uses=3]
+ 	%tmp.16.i = getelementptr %struct.ht_node* %node.0.i20.2, long 0, uint 0		; <sbyte**> [#uses=1]
+ 	%tmp.17.i = load sbyte** %tmp.16.i		; <sbyte*> [#uses=1]
+ 	%tmp.13.i = call int %strcmp( sbyte* %tmp.29, sbyte* %tmp.17.i )		; <int> [#uses=1]
+ 	%tmp.18.i = seteq int %tmp.13.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.18.i, label %.ht_find_5.entry.loopexit, label %endif.i
+ 
+ endif.i:		; preds = %no_exit.i21
+ 	%tmp.22.i = getelementptr %struct.ht_node* %node.0.i20.2, long 0, uint 2		; <%struct.ht_node**> [#uses=1]
+ 	%tmp.23.i = load %struct.ht_node** %tmp.22.i		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.11.i = seteq %struct.ht_node* %tmp.23.i, null		; <bool> [#uses=1]
+ 	br bool %tmp.11.i, label %.ht_find_5.entry.loopexit, label %backEdgeInst9
+ 
+ .ht_find_5.entry.loopexit:		; preds = %no_exit.i21, %endif.i
+ 	%result.0.i.ph = phi %struct.ht_node* [ %node.0.i20.2, %no_exit.i21 ], [ null, %endif.i ]		; <%struct.ht_node*> [#uses=1]
+ 	br label %.ht_find_5.entry
+ 
+ .ht_find_5.entry:		; preds = %.ht_hashcode_4.entry.i13, %.ht_find_5.entry.loopexit
+ 	%result.0.i = phi %struct.ht_node* [ null, %.ht_hashcode_4.entry.i13 ], [ %result.0.i.ph, %.ht_find_5.entry.loopexit ]		; <%struct.ht_node*> [#uses=1]
+ 	%tmp.35 = setne %struct.ht_node* %result.0.i, null		; <bool> [#uses=1]
+ 	%inc.1 = cast bool %tmp.35 to int		; <int> [#uses=1]
+ 	%c.0 = add int %inc.1, %c.1.0		; <int> [#uses=2]
+ 	%dec = add int %i.0.0, -1		; <int> [#uses=1]
+ 	%tmp.2677 = setgt int %dec, 0		; <bool> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=1]
+ 	br bool %tmp.2677, label %backEdgeInst7, label %loopexit.1.loopexit
+ 
+ loopexit.1.loopexit:		; preds = %.ht_find_5.entry
+ 	br label %loopexit.1
+ 
+ loopexit.1:		; preds = %loopentry.1, %loopexit.1.loopexit
+ 	%c.1.1 = phi int [ 0, %loopentry.1 ], [ %c.0, %loopexit.1.loopexit ]		; <int> [#uses=1]
+ 	%tmp.13.i = getelementptr %struct.ht_ht* %tmp.8.1, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.24.i = load int* %tmp.13.i		; <int> [#uses=2]
+ 	%tmp.46.i = setgt int %tmp.24.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.46.i, label %no_exit.0.preheader.i, label %ht_destroy.entry
+ 
+ no_exit.0.preheader.i:		; preds = %loopexit.1
+ 	%tmp.7.i = getelementptr %struct.ht_ht* %tmp.8.1, long 0, uint 1		; <%struct.ht_node***> [#uses=1]
+ 	br label %no_exit.0.i
+ 
+ no_exit.0.i:		; preds = %no_exit.0.preheader.i, %backEdgeInst10
+ 	%indvar.i = phi uint [ 0, %no_exit.0.preheader.i ], [ %indvar.next.i, %backEdgeInst10 ]		; <uint> [#uses=2]
+ 	%i.0.0.i = cast uint %indvar.i to int		; <int> [#uses=2]
+ 	%tmp.8.i5 = load %struct.ht_node*** %tmp.7.i		; <%struct.ht_node**> [#uses=1]
+ 	%v926 = cast int %i.0.0.i to long		; <long> [#uses=1]
+ 	%tmp.11.i = getelementptr %struct.ht_node** %tmp.8.i5, long %v926		; <%struct.ht_node**> [#uses=1]
+ 	%tmp.12.i = load %struct.ht_node** %tmp.11.i		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.1411.i = seteq %struct.ht_node* %tmp.12.i, null		; <bool> [#uses=1]
+ 	br bool %tmp.1411.i, label %loopexit.1.i, label %no_exit.1.i.preheader
+ 
+ no_exit.1.i.preheader:		; preds = %no_exit.0.i
+ 	br label %no_exit.1.i
+ 
+ no_exit.1.i:		; preds = %no_exit.1.i.preheader, %backEdgeInst11
+ 	%next.0.2.i = phi %struct.ht_node* [ %tmp.19.i, %backEdgeInst11 ], [ %tmp.12.i, %no_exit.1.i.preheader ]		; <%struct.ht_node*> [#uses=3]
+ 	%tmp.18.i = getelementptr %struct.ht_node* %next.0.2.i, long 0, uint 2		; <%struct.ht_node**> [#uses=1]
+ 	%tmp.19.i = load %struct.ht_node** %tmp.18.i		; <%struct.ht_node*> [#uses=2]
+ 	%tmp.21.i = getelementptr %struct.ht_node* %next.0.2.i, long 0, uint 0		; <sbyte**> [#uses=1]
+ 	%tmp.22.i = load sbyte** %tmp.21.i		; <sbyte*> [#uses=1]
+ 	call void %free( sbyte* %tmp.22.i )
+ 	cast %struct.ht_node* %next.0.2.i to sbyte*		; <sbyte*>:16 [#uses=1]
+ 	call void %free( sbyte* %16 )
+ 	%tmp.14.i = seteq %struct.ht_node* %tmp.19.i, null		; <bool> [#uses=1]
+ 	br bool %tmp.14.i, label %loopexit.1.i.loopexit, label %backEdgeInst11
+ 
+ loopexit.1.i.loopexit:		; preds = %no_exit.1.i
+ 	br label %loopexit.1.i
+ 
+ loopexit.1.i:		; preds = %no_exit.0.i, %loopexit.1.i.loopexit
+ 	%inc.i6 = add int %i.0.0.i, 1		; <int> [#uses=1]
+ 	%tmp.4.i = setgt int %tmp.24.i, %inc.i6		; <bool> [#uses=1]
+ 	%indvar.next.i = add uint %indvar.i, 1		; <uint> [#uses=1]
+ 	br bool %tmp.4.i, label %backEdgeInst10, label %ht_destroy.entry.loopexit
+ 
+ ht_destroy.entry.loopexit:		; preds = %loopexit.1.i
+ 	br label %ht_destroy.entry
+ 
+ ht_destroy.entry:		; preds = %loopexit.1, %ht_destroy.entry.loopexit
+ 	%tmp.27.i = getelementptr %struct.ht_ht* %tmp.8.1, long 0, uint 1		; <%struct.ht_node***> [#uses=1]
+ 	%tmp.28.i = load %struct.ht_node*** %tmp.27.i		; <%struct.ht_node**> [#uses=1]
+ 	cast %struct.ht_node** %tmp.28.i to sbyte*		; <sbyte*>:17 [#uses=1]
+ 	call void %free( sbyte* %17 )
+ 	cast %struct.ht_ht* %tmp.8.1 to sbyte*		; <sbyte*>:18 [#uses=1]
+ 	call void %free( sbyte* %18 )
+ 	"addrOfGlobal:.str_5" = getelementptr [4 x sbyte]* %.str_5, long 0		; <[4 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_5" = getelementptr [4 x sbyte]* "addrOfGlobal:.str_5", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.40 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_5", int %c.1.1 )		; <int> [#uses=0]
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %no_exit.i37
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i37
+ 
+ backEdgeInst1:		; preds = %no_exit.i7
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i7
+ 
+ backEdgeInst2:		; preds = %loopentry.0
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.0
+ 
+ backEdgeInst3:		; preds = %no_exit.i.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i.i
+ 
+ backEdgeInst4:		; preds = %endif.0.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i
+ 
+ backEdgeInst5:		; preds = %no_exit.i.i20
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i.i20
+ 
+ backEdgeInst6:		; preds = %no_exit.i.i15
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i.i15
+ 
+ backEdgeInst7:		; preds = %.ht_find_5.entry
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.1
+ 
+ backEdgeInst8:		; preds = %no_exit.i.i7
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i.i7
+ 
+ backEdgeInst9:		; preds = %endif.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i21
+ 
+ backEdgeInst10:		; preds = %loopexit.1.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.0.i
+ 
+ backEdgeInst11:		; preds = %no_exit.1.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.1.i
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare void %llvm.memset(sbyte*, ubyte, ulong, uint)
+ 
+ declare void %llvm.memcpy(sbyte*, sbyte*, ulong, uint)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)
+ 
+ declare sbyte* %memset(sbyte*, ubyte, ulong)
+ 
+ declare sbyte* %memcpy(sbyte*, sbyte*, ulong)


Index: reopt/test/TTFTestCases/hash.main.trace5.txt
diff -c /dev/null reopt/test/TTFTestCases/hash.main.trace5.txt:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/hash.main.trace5.txt	Wed Sep  8 16:34:20 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 48 74 


Index: reopt/test/TTFTestCases/hash.main.trace6.txt
diff -c /dev/null reopt/test/TTFTestCases/hash.main.trace6.txt:1.1
*** /dev/null	Wed Sep  8 16:34:36 2004
--- reopt/test/TTFTestCases/hash.main.trace6.txt	Wed Sep  8 16:34:20 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 52 53 75 


Index: reopt/test/TTFTestCases/hash.main.trace7.txt
diff -c /dev/null reopt/test/TTFTestCases/hash.main.trace7.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/hash.main.trace7.txt	Wed Sep  8 16:34:20 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 59 63 76 


Index: reopt/test/TTFTestCases/heapsort.ll
diff -c /dev/null reopt/test/TTFTestCases/heapsort.ll:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/heapsort.ll	Wed Sep  8 16:34:21 2004
***************
*** 0 ****
--- 1,245 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %last.0__ = internal global long 42		; <long*> [#uses=2]
+ %.str_1 = internal constant [4 x sbyte] c"%f\0A\00"		; <[4 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (int, sbyte**)* } { int (int, sbyte**)* %main }		; <{ int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [1 x sbyte] zeroinitializer		; <[1 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 1		; <int*> [#uses=0]
+ %main.regAllocState = internal constant { uint, [178 x { int, int, uint, int }] } { uint 178, [178 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 2 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 1 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 1, int 0 }, { int, int, uint, int } { int 11, int -1, uint 1, int 8 }, { int, int, uint, int } { int 12, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 1, int 0 }, { int, int, uint, int } { int 14, int -1, uint 1, int 0 }, { int, int, uint, int } { int 15, int -1, uint 1, int 9 }, { int, int, uint, int } { int 16, int -1, uint 1, int 9 }, { int, int, uint, int } { int 17, int -1, uint 0, int -1 }, { int, int, uint, int } { int 18, int -1, uint 0, int -1 }, { int, int, uint, int } { int 19, int -1, uint 1, int 0 }, { int, int, uint, int } { int 20, int -1, uint 1, int 0 }, { int, int, uint, int } { int 21, int -1, uint 1, int 0 }, { int, int, uint, int } { int 22, int -1, uint 0, int -1 }, { int, int, uint, int } { int 23, int -1, uint 1, int 1 }, { int, int, uint, int } { int 24, int -1, uint 1, int 0 }, { int, int, uint, int } { int 25, int -1, uint 1, int 0 }, { int, int, uint, int } { int 26, int -1, uint 1, int 1 }, { int, int, uint, int } { int 27, int -1, uint 0, int -1 }, { int, int, uint, int } { int 28, int -1, uint 1, int 9 }, { int, int, uint, !
 int } { int 28, int -2, uint 1, int 0 }, { int, int, uint, int } { int
 29, int -1, uint 1, int 10 }, { int, int, uint, int } { int 29, int -2, uint 1, int 1 }, { int, int, uint, int } { int 30, int -1, uint 1, int 13 }, { int, int, uint, int } { int 31, int -1, uint 1, int 12 }, { int, int, uint, int } { int 32, int -1, uint 1, int 8 }, { int, int, uint, int } { int 33, int -1, uint 1, int 7 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 1, int 12 }, { int, int, uint, int } { int 35, int -2, uint 1, int 12 }, { int, int, uint, int } { int 36, int -1, uint 1, int 11 }, { int, int, uint, int } { int 36, int -2, uint 1, int 11 }, { int, int, uint, int } { int 37, int -1, uint 1, int 0 }, { int, int, uint, int } { int 38, int -1, uint 1, int 2 }, { int, int, uint, int } { int 39, int -1, uint 1, int 2 }, { int, int, uint, int } { int 40, int -1, uint 0, int -1 }, { int, int, uint, int } { int 41, int -1, uint 1, int 12 }, { int, int, uint, int } { int 42, int -1, uint 1, int 12 }, { in!
 t, int, uint, int } { int 43, int -1, uint 1, int 12 }, { int, int, uint, int } { int 44, int -1, uint 1, int 64 }, { int, int, uint, int } { int 45, int -1, uint 1, int 64 }, { int, int, uint, int } { int 46, int -1, uint 0, int -1 }, { int, int, uint, int } { int 47, int -1, uint 1, int 0 }, { int, int, uint, int } { int 48, int -1, uint 0, int -1 }, { int, int, uint, int } { int 49, int -1, uint 1, int 11 }, { int, int, uint, int } { int 50, int -1, uint 0, int -1 }, { int, int, uint, int } { int 51, int -1, uint 0, int -1 }, { int, int, uint, int } { int 52, int -1, uint 0, int -1 }, { int, int, uint, int } { int 53, int -1, uint 1, int 9 }, { int, int, uint, int } { int 53, int -2, uint 1, int 8 }, { int, int, uint, int } { int 54, int -1, uint 1, int 7 }, { int, int, uint, int } { int 54, int -2, uint 1, int 9 }, { int, int, uint, int } { int 55, int -1, uint 1, int 12 }, { int, int, uint, int } { int 56, int -1, uint 1, int 12 }, { int, int, uint, int } { int 57, int!
  -1, uint 0, int -1 }, { int, int, uint, int } { int 58, int -1, uint 
0, int -1 }, { int, int, uint, int } { int 59, int -1, uint 1, int 8 }, { int, int, uint, int } { int 59, int -2, uint 1, int 8 }, { int, int, uint, int } { int 60, int -1, uint 1, int 10 }, { int, int, uint, int } { int 60, int -2, uint 1, int 10 }, { int, int, uint, int } { int 61, int -1, uint 1, int 8 }, { int, int, uint, int } { int 62, int -1, uint 1, int 0 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 1, int 64 }, { int, int, uint, int } { int 65, int -1, uint 1, int 11 }, { int, int, uint, int } { int 66, int -1, uint 0, int -1 }, { int, int, uint, int } { int 67, int -1, uint 0, int -1 }, { int, int, uint, int } { int 68, int -1, uint 1, int 12 }, { int, int, uint, int } { int 68, int -2, uint 1, int 12 }, { int, int, uint, int } { int 69, int -1, uint 1, int 1 }, { int, int, uint, int } { int 69, int -2, uint 1, int 1 }, { int, int, uint, int } { int 70, int -1, uint 1, int 0 }, { int, int, uint, int }!
  { int 71, int -1, uint 1, int 0 }, { int, int, uint, int } { int 72, int -1, uint 1, int 64 }, { int, int, uint, int } { int 73, int -1, uint 1, int 2 }, { int, int, uint, int } { int 74, int -1, uint 1, int 66 }, { int, int, uint, int } { int 75, int -1, uint 0, int -1 }, { int, int, uint, int } { int 76, int -1, uint 1, int 10 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int 78, int -1, uint 0, int -1 }, { int, int, uint, int } { int 79, int -1, uint 1, int 11 }, { int, int, uint, int } { int 80, int -1, uint 0, int -1 }, { int, int, uint, int } { int 81, int -1, uint 0, int -1 }, { int, int, uint, int } { int 82, int -1, uint 1, int 15 }, { int, int, uint, int } { int 82, int -2, uint 1, int 0 }, { int, int, uint, int } { int 83, int -1, uint 1, int 12 }, { int, int, uint, int } { int 83, int -2, uint 1, int 1 }, { int, int, uint, int } { int 84, int -1, uint 1, int 66 }, { int, int, uint, int } { int 84, int -2, uint 1, int 6!
 6 }, { int, int, uint, int } { int 85, int -1, uint 1, int 11 }, { int
, int, uint, int } { int 85, int -2, uint 1, int 11 }, { int, int, uint, int } { int 86, int -1, uint 1, int 13 }, { int, int, uint, int } { int 86, int -2, uint 1, int 13 }, { int, int, uint, int } { int 87, int -1, uint 1, int 10 }, { int, int, uint, int } { int 88, int -1, uint 1, int 14 }, { int, int, uint, int } { int 89, int -1, uint 0, int -1 }, { int, int, uint, int } { int 90, int -1, uint 1, int 16 }, { int, int, uint, int } { int 90, int -2, uint 1, int 13 }, { int, int, uint, int } { int 91, int -1, uint 1, int 1 }, { int, int, uint, int } { int 91, int -2, uint 1, int 11 }, { int, int, uint, int } { int 92, int -1, uint 0, int -1 }, { int, int, uint, int } { int 93, int -1, uint 0, int -1 }, { int, int, uint, int } { int 94, int -1, uint 1, int 0 }, { int, int, uint, int } { int 95, int -1, uint 0, int -1 }, { int, int, uint, int } { int 96, int -1, uint 1, int 64 }, { int, int, uint, int } { int 97, int -1, uint 1, int 0 }, { int, int, uint, int } { int 98, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 99, int -1, uint 0, int -1 }, { int, int, uint, int } { int 100, int -1, uint 1, int 68 }, { int, int, uint, int } { int 101, int -1, uint 1, int 8 }, { int, int, uint, int } { int 102, int -1, uint 0, int -1 }, { int, int, uint, int } { int 103, int -1, uint 1, int 8 }, { int, int, uint, int } { int 103, int -2, uint 1, int 8 }, { int, int, uint, int } { int 104, int -1, uint 0, int -1 }, { int, int, uint, int } { int 105, int -1, uint 1, int 8 }, { int, int, uint, int } { int 106, int -1, uint 1, int 0 }, { int, int, uint, int } { int 107, int -1, uint 0, int -1 }, { int, int, uint, int } { int 108, int -1, uint 1, int 64 }, { int, int, uint, int } { int 109, int -1, uint 0, int -1 }, { int, int, uint, int } { int 110, int -1, uint 0, int -1 }, { int, int, uint, int } { int 111, int -1, uint 1, int 16 }, { int, int, uint, int } { int 112, int -1, uint 0, int -1 }, { int, int, uint, int } { int 113, int -1, uint 0, int -1!
  }, { int, int, uint, int } { int 114, int -1, uint 1, int 11 }, { int
, int, uint, int } { int 115, int -1, uint 0, int -1 }, { int, int, uint, int } { int 116, int -1, uint 0, int -1 }, { int, int, uint, int } { int 117, int -1, uint 0, int -1 }, { int, int, uint, int } { int 118, int -1, uint 1, int 14 }, { int, int, uint, int } { int 118, int -2, uint 1, int 14 }, { int, int, uint, int } { int 119, int -1, uint 1, int 10 }, { int, int, uint, int } { int 119, int -2, uint 1, int 10 }, { int, int, uint, int } { int 120, int -1, uint 1, int 64 }, { int, int, uint, int } { int 120, int -2, uint 1, int 64 }, { int, int, uint, int } { int 121, int -1, uint 1, int 8 }, { int, int, uint, int } { int 121, int -2, uint 1, int 8 }, { int, int, uint, int } { int 122, int -1, uint 1, int 8 }, { int, int, uint, int } { int 123, int -1, uint 0, int -1 }, { int, int, uint, int } { int 124, int -1, uint 0, int -1 }, { int, int, uint, int } { int 125, int -1, uint 0, int -1 }, { int, int, uint, int } { int 126, int -1, uint 0, int -1 }, { int, int, uint, int!
  } { int 127, int -1, uint 0, int -1 }, { int, int, uint, int } { int 128, int -1, uint 1, int 0 }, { int, int, uint, int } { int 129, int -1, uint 0, int -1 }, { int, int, uint, int } { int 130, int -1, uint 1, int 34 }, { int, int, uint, int } { int 131, int -1, uint 0, int -1 }, { int, int, uint, int } { int 132, int -1, uint 1, int 0 }, { int, int, uint, int } { int 133, int -1, uint 1, int 0 }, { int, int, uint, int } { int 134, int -1, uint 1, int 0 }, { int, int, uint, int } { int 135, int -1, uint 0, int -1 }, { int, int, uint, int } { int 136, int -1, uint 0, int -1 }, { int, int, uint, int } { int 137, int -1, uint 1, int 13 }, { int, int, uint, int } { int 137, int -2, uint 1, int 13 }, { int, int, uint, int } { int 138, int -1, uint 1, int 11 }, { int, int, uint, int } { int 138, int -2, uint 1, int 11 }, { int, int, uint, int } { int 139, int -1, uint 0, int -1 }, { int, int, uint, int } { int 140, int -1, uint 0, int -1 }, { int, int, uint, int } { int 141, in!
 t -1, uint 0, int -1 }, { int, int, uint, int } { int 142, int -1, uin
t 0, int -1 }, { int, int, uint, int } { int 143, int -1, uint 0, int -1 }, { int, int, uint, int } { int 144, int -1, uint 0, int -1 }, { int, int, uint, int } { int 145, int -1, uint 0, int -1 }, { int, int, uint, int } { int 146, int -1, uint 0, int -1 }, { int, int, uint, int } { int 147, int -1, uint 0, int -1 }, { int, int, uint, int } { int 148, int -1, uint 0, int -1 }, { int, int, uint, int } { int 149, int -1, uint 0, int -1 }, { int, int, uint, int } { int 150, int -1, uint 0, int -1 }, { int, int, uint, int } { int 151, int -1, uint 0, int -1 } ] }		; <{ uint, [178 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [1 x { uint, [0 x { int, int, uint, int }] }*] } { uint 1, [1 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [178 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [1 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [21 x sbyte*] } { uint 21, [21 x sbyte*] [ sbyte* cast (long* %last.0__ to sbyte*), sbyte* cast ([4 x sbyte]* %.str_1 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [178 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [21 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %cond_continue
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=4]
+ 	%mem_tmp.0-uint8 = cast int %tmp.3 to uint		; <uint> [#uses=1]
+ 	%mem_tmp.0-uint-off9 = add uint %mem_tmp.0-uint8, 1		; <uint> [#uses=1]
+ 	mul uint %mem_tmp.0-uint-off9, 8		; <uint>:0 [#uses=1]
+ 	call sbyte* %malloc( uint %0 )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to double*		; <double*>:0 [#uses=2]
+ 	%tmp.1615 = setlt int %tmp.3, 1		; <bool> [#uses=1]
+ 	br bool %tmp.1615, label %loopexit, label %no_exit.preheader
+ 
+ cond_continue:		; preds = %__main.entry
+ 	"constantGEP:" = getelementptr [8000001 x double]* null, uint 1		; <[8000001 x double]*> [#uses=1]
+ 	%constantCast = cast [8000001 x double]* "constantGEP:" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:1 [#uses=1]
+ 	cast sbyte* %1 to [8000001 x double]*		; <[8000001 x double]*>:0 [#uses=1]
+ 	%v9 = cast int 0 to long		; <long> [#uses=2]
+ 	%ptr1 = getelementptr [8000001 x double]* %0, long %v9		; <[8000001 x double]*> [#uses=1]
+ 	%tmp.8.sub3 = getelementptr [8000001 x double]* %ptr1, long 0, long %v9		; <double*> [#uses=1]
+ 	%copyConst = cast int 8000000 to int		; <int> [#uses=1]
+ 	br label %no_exit.preheader
+ 
+ no_exit.preheader:		; preds = %cond_true, %cond_continue
+ 	%tmp.8.0.ph.ph = phi double* [ %0, %cond_true ], [ %tmp.8.sub3, %cond_continue ]		; <double*> [#uses=2]
+ 	%mem_tmp.0.0.ph.ph = phi int [ %tmp.3, %cond_true ], [ %copyConst, %cond_continue ]		; <int> [#uses=2]
+ 	"addrOfGlobal:last.0__" = getelementptr long* %last.0__, long 0		; <long*> [#uses=2]
+ 	%last.0__.promoted = load long* "addrOfGlobal:last.0__"		; <long> [#uses=1]
+ 	%copyConst = cast long 29573 to long		; <long> [#uses=1]
+ 	%copyConst5 = cast long 139968 to long		; <long> [#uses=1]
+ 	br label %no_exit
+ 
+ no_exit:		; preds = %no_exit.preheader, %backEdgeInst
+ 	%last.0__.tmp.0 = phi long [ %last.0__.promoted, %no_exit.preheader ], [ %tmp.3.i, %backEdgeInst ]		; <long> [#uses=1]
+ 	%indvar = phi uint [ %indvar.next, %backEdgeInst ], [ 0, %no_exit.preheader ]		; <uint> [#uses=2]
+ 	%indvar = cast uint %indvar to int		; <int> [#uses=2]
+ 	%i.0.0 = add int %indvar, 1		; <int> [#uses=1]
+ 	%v94 = cast int %i.0.0 to long		; <long> [#uses=1]
+ 	%tmp.21 = getelementptr double* %tmp.8.0.ph.ph, long %v94		; <double*> [#uses=1]
+ 	%tmp.1.i = mul long %last.0__.tmp.0, 3877		; <long> [#uses=1]
+ 	%tmp.2.i = add long %tmp.1.i, %copyConst		; <long> [#uses=1]
+ 	%tmp.3.i = rem long %tmp.2.i, %copyConst5		; <long> [#uses=3]
+ 	%tmp.4.i = cast long %tmp.3.i to double		; <double> [#uses=1]
+ 	%tmp.7.i = div double %tmp.4.i, 0x4101160000000000		; <double> [#uses=1]
+ 	store double %tmp.7.i, double* %tmp.21
+ 	%inc = add int %indvar, 2		; <int> [#uses=1]
+ 	%tmp.16 = setgt int %inc, %mem_tmp.0.0.ph.ph		; <bool> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=1]
+ 	br bool %tmp.16, label %loopexit.loopexit, label %backEdgeInst
+ 
+ loopexit.loopexit:		; preds = %no_exit
+ 	store long %tmp.3.i, long* "addrOfGlobal:last.0__"
+ 	br label %loopexit
+ 
+ loopexit:		; preds = %cond_true, %loopexit.loopexit
+ 	%mem_tmp.0.1 = phi int [ %tmp.3, %cond_true ], [ %mem_tmp.0.0.ph.ph, %loopexit.loopexit ]		; <int> [#uses=4]
+ 	%tmp.8.1 = phi double* [ %0, %cond_true ], [ %tmp.8.0.ph.ph, %loopexit.loopexit ]		; <double*> [#uses=10]
+ 	%tmp.3.i = shr int %mem_tmp.0.1, ubyte 1		; <int> [#uses=1]
+ 	%tmp.4.i = add int %tmp.3.i, 1		; <int> [#uses=3]
+ 	%tmp.68.i = setgt int %tmp.4.i, 1		; <bool> [#uses=1]
+ 	br bool %tmp.68.i, label %then.0.i, label %else.0.i
+ 
+ then.0.i:		; preds = %loopexit, %backEdgeInst2
+ 	%l.1.0.i = phi int [ %tmp.4.i, %loopexit ], [ %l.0.1.i, %backEdgeInst2 ]		; <int> [#uses=1]
+ 	%ir.1.0.i = phi int [ %mem_tmp.0.1, %loopexit ], [ %ir.0.1.i, %backEdgeInst2 ]		; <int> [#uses=3]
+ 	%dec.0.i = add int %l.1.0.i, -1		; <int> [#uses=6]
+ 	%v97 = cast int %dec.0.i to long		; <long> [#uses=1]
+ 	%tmp.11.i = getelementptr double* %tmp.8.1, long %v97		; <double*> [#uses=1]
+ 	%tmp.12.i = load double* %tmp.11.i		; <double> [#uses=2]
+ 	%tmp.3416.i = shl int %dec.0.i, ubyte 1		; <int> [#uses=2]
+ 	%tmp.3727.i = setgt int %tmp.3416.i, %ir.1.0.i		; <bool> [#uses=1]
+ 	br bool %tmp.3727.i, label %loopexit.1.i, label %no_exit.preheader.i
+ 
+ else.0.i:		; preds = %loopexit, %loopexit.1.i
+ 	%l.1.1.i = phi int [ %l.0.1.i, %loopexit.1.i ], [ %tmp.4.i, %loopexit ]		; <int> [#uses=5]
+ 	%ir.1.1.i = phi int [ %ir.0.1.i, %loopexit.1.i ], [ %mem_tmp.0.1, %loopexit ]		; <int> [#uses=3]
+ 	%v98 = cast int %ir.1.1.i to long		; <long> [#uses=1]
+ 	%tmp.16.i = getelementptr double* %tmp.8.1, long %v98		; <double*> [#uses=2]
+ 	%tmp.17.i = load double* %tmp.16.i		; <double> [#uses=3]
+ 	%tmp.23.i = getelementptr double* %tmp.8.1, long 1		; <double*> [#uses=2]
+ 	%tmp.24.i = load double* %tmp.23.i		; <double> [#uses=1]
+ 	store double %tmp.24.i, double* %tmp.16.i
+ 	%dec.1.i = add int %ir.1.1.i, -1		; <int> [#uses=3]
+ 	%tmp.26.i = seteq int %ir.1.1.i, 2		; <bool> [#uses=1]
+ 	br bool %tmp.26.i, label %benchmark_heapsort.entry, label %endif.0.i2
+ 
+ endif.0.i2:		; preds = %else.0.i
+ 	%tmp.34.i = shl int %l.1.1.i, ubyte 1		; <int> [#uses=2]
+ 	%tmp.3730.i = setgt int %tmp.34.i, %dec.1.i		; <bool> [#uses=1]
+ 	br bool %tmp.3730.i, label %backEdgeInst3, label %no_exit.preheader.i
+ 
+ no_exit.preheader.i:		; preds = %then.0.i, %endif.0.i2
+ 	%l.0.0.ph.i = phi int [ %l.1.1.i, %endif.0.i2 ], [ %dec.0.i, %then.0.i ]		; <int> [#uses=2]
+ 	%ir.0.0.ph.i = phi int [ %dec.1.i, %endif.0.i2 ], [ %ir.1.0.i, %then.0.i ]		; <int> [#uses=6]
+ 	%rra.0.0.ph.i = phi double [ %tmp.17.i, %endif.0.i2 ], [ %tmp.12.i, %then.0.i ]		; <double> [#uses=3]
+ 	%j.0.0.ph.i = phi int [ %tmp.34.i, %endif.0.i2 ], [ %tmp.3416.i, %then.0.i ]		; <int> [#uses=1]
+ 	%i.0.0.ph.i = phi int [ %l.1.1.i, %endif.0.i2 ], [ %dec.0.i, %then.0.i ]		; <int> [#uses=1]
+ 	%tmp.79.i = add int %ir.0.0.ph.i, 1		; <int> [#uses=2]
+ 	%tmp.37.i = setgt int %tmp.79.i, %ir.0.0.ph.i		; <bool> [#uses=1]
+ 	br label %no_exit.i3
+ 
+ no_exit.i3:		; preds = %no_exit.preheader.i, %backEdgeInst6
+ 	%i.0.0.ph35.i.ph = phi int [ %i.0.0.ph.i, %no_exit.preheader.i ], [ %phi, %backEdgeInst6 ]		; <int> [#uses=3]
+ 	%j.0.0.i = phi int [ %j.0.0.ph.i, %no_exit.preheader.i ], [ %phi1, %backEdgeInst6 ]		; <int> [#uses=4]
+ 	%tmp.41.i = setlt int %j.0.0.i, %ir.0.0.ph.i		; <bool> [#uses=1]
+ 	br bool %tmp.41.i, label %shortcirc_next.i, label %shortcirc_done.i
+ 
+ shortcirc_next.i:		; preds = %no_exit.i3
+ 	%v99 = cast int %j.0.0.i to long		; <long> [#uses=1]
+ 	%tmp.46.i = getelementptr double* %tmp.8.1, long %v99		; <double*> [#uses=1]
+ 	%tmp.47.i = load double* %tmp.46.i		; <double> [#uses=1]
+ 	%tmp.50.i = add int %j.0.0.i, 1		; <int> [#uses=1]
+ 	%v910 = cast int %tmp.50.i to long		; <long> [#uses=1]
+ 	%tmp.52.i = getelementptr double* %tmp.8.1, long %v910		; <double*> [#uses=1]
+ 	%tmp.53.i = load double* %tmp.52.i		; <double> [#uses=1]
+ 	%tmp.54.i = setlt double %tmp.47.i, %tmp.53.i		; <bool> [#uses=1]
+ 	br label %shortcirc_done.i
+ 
+ shortcirc_done.i:		; preds = %no_exit.i3, %shortcirc_next.i
+ 	%shortcirc_val.i = phi bool [ false, %no_exit.i3 ], [ %tmp.54.i, %shortcirc_next.i ]		; <bool> [#uses=1]
+ 	%inc.i = cast bool %shortcirc_val.i to int		; <int> [#uses=1]
+ 	%j.2.i = add int %inc.i, %j.0.0.i		; <int> [#uses=4]
+ 	%v911 = cast int %j.2.i to long		; <long> [#uses=1]
+ 	%tmp.61.i = getelementptr double* %tmp.8.1, long %v911		; <double*> [#uses=1]
+ 	%tmp.62.i = load double* %tmp.61.i		; <double> [#uses=2]
+ 	%tmp.64.i = setgt double %tmp.62.i, %rra.0.0.ph.i		; <bool> [#uses=1]
+ 	br bool %tmp.64.i, label %then.3.i, label %else.1.i
+ 
+ then.3.i:		; preds = %shortcirc_done.i
+ 	%v912 = cast int %i.0.0.ph35.i.ph to long		; <long> [#uses=1]
+ 	%tmp.69.i = getelementptr double* %tmp.8.1, long %v912		; <double*> [#uses=1]
+ 	store double %tmp.62.i, double* %tmp.69.i
+ 	%tmp.77.i = shl int %j.2.i, ubyte 1		; <int> [#uses=2]
+ 	%tmp.3733.i = setgt int %tmp.77.i, %ir.0.0.ph.i		; <bool> [#uses=1]
+ 	br bool %tmp.3733.i, label %backEdgeInst4, label %newCommon
+ 
+ else.1.i:		; preds = %shortcirc_done.i
+ 	br bool %tmp.37.i, label %backEdgeInst5, label %newCommon
+ 
+ loopexit.1.i:		; preds = %then.0.i, %backEdgeInst3, %backEdgeInst4, %backEdgeInst5
+ 	%l.0.1.i = phi int [ %l.1.1.i, %backEdgeInst3 ], [ %dec.0.i, %then.0.i ], [ %l.0.0.ph.i, %backEdgeInst4 ], [ %l.0.0.ph.i, %backEdgeInst5 ]		; <int> [#uses=3]
+ 	%ir.0.1.i = phi int [ %dec.1.i, %backEdgeInst3 ], [ %ir.1.0.i, %then.0.i ], [ %ir.0.0.ph.i, %backEdgeInst4 ], [ %ir.0.0.ph.i, %backEdgeInst5 ]		; <int> [#uses=2]
+ 	%rra.0.1.i = phi double [ %tmp.17.i, %backEdgeInst3 ], [ %tmp.12.i, %then.0.i ], [ %rra.0.0.ph.i, %backEdgeInst4 ], [ %rra.0.0.ph.i, %backEdgeInst5 ]		; <double> [#uses=1]
+ 	%i.0.1.i = phi int [ %l.1.1.i, %backEdgeInst3 ], [ %dec.0.i, %then.0.i ], [ %j.2.i, %backEdgeInst4 ], [ %i.0.0.ph35.i.ph, %backEdgeInst5 ]		; <int> [#uses=1]
+ 	%v913 = cast int %i.0.1.i to long		; <long> [#uses=1]
+ 	%tmp.83.i = getelementptr double* %tmp.8.1, long %v913		; <double*> [#uses=1]
+ 	store double %rra.0.1.i, double* %tmp.83.i
+ 	%tmp.6.i = setgt int %l.0.1.i, 1		; <bool> [#uses=1]
+ 	br bool %tmp.6.i, label %backEdgeInst2, label %else.0.i
+ 
+ benchmark_heapsort.entry:		; preds = %else.0.i
+ 	store double %tmp.17.i, double* %tmp.23.i
+ 	%v914 = cast int %mem_tmp.0.1 to long		; <long> [#uses=1]
+ 	%tmp.31 = getelementptr double* %tmp.8.1, long %v914		; <double*> [#uses=1]
+ 	%tmp.32 = load double* %tmp.31		; <double> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [4 x sbyte]* %.str_1, long 0		; <[4 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [4 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.26 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_1", double %tmp.32 )		; <int> [#uses=0]
+ 	cast double* %tmp.8.1 to sbyte*		; <sbyte*>:2 [#uses=1]
+ 	call void %free( sbyte* %2 )
+ 	ret int 0
+ 
+ newCommon:		; preds = %then.3.i, %else.1.i
+ 	%phi = phi int [ %i.0.0.ph35.i.ph, %else.1.i ], [ %j.2.i, %then.3.i ]		; <int> [#uses=1]
+ 	%phi1 = phi int [ %tmp.79.i, %else.1.i ], [ %tmp.77.i, %then.3.i ]		; <int> [#uses=1]
+ 	br label %backEdgeInst6
+ 
+ backEdgeInst:		; preds = %no_exit
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit
+ 
+ backEdgeInst2:		; preds = %loopexit.1.i
+ 	call void %llvm_first_trigger( )
+ 	br label %then.0.i
+ 
+ backEdgeInst3:		; preds = %endif.0.i2
+ 	call void %llvm_first_trigger( )
+ 	br label %loopexit.1.i
+ 
+ backEdgeInst4:		; preds = %then.3.i
+ 	call void %llvm_first_trigger( )
+ 	br label %loopexit.1.i
+ 
+ backEdgeInst5:		; preds = %else.1.i
+ 	call void %llvm_first_trigger( )
+ 	br label %loopexit.1.i
+ 
+ backEdgeInst6:		; preds = %newCommon
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i3
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/heapsort.main.trace8.txt
diff -c /dev/null reopt/test/TTFTestCases/heapsort.main.trace8.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/heapsort.main.trace8.txt	Wed Sep  8 16:34:21 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 6 21 


Index: reopt/test/TTFTestCases/lists.list_equal.trace1.txt
diff -c /dev/null reopt/test/TTFTestCases/lists.list_equal.trace1.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/lists.list_equal.trace1.txt	Wed Sep  8 16:34:21 2004
***************
*** 0 ****
--- 1,2 ----
+ list_equal
+ 2 3 9 


Index: reopt/test/TTFTestCases/lists.ll
diff -c /dev/null reopt/test/TTFTestCases/lists.ll:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/lists.ll	Wed Sep  8 16:34:21 2004
***************
*** 0 ****
--- 1,493 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.DLL = type { int, %struct.DLL*, %struct.DLL* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_5 = internal constant [27 x sbyte] c"li2 and li1 are not equal\0A\00"		; <[27 x sbyte]*> [#uses=2]
+ %.str_6 = internal constant [25 x sbyte] c"li2 should be empty now\0A\00"		; <[25 x sbyte]*> [#uses=2]
+ %.str_7 = internal constant [25 x sbyte] c"li3 should be empty now\0A\00"		; <[25 x sbyte]*> [#uses=2]
+ %.str_8 = internal constant [42 x sbyte] c"li1 first value wrong, wanted %d, got %d\0A\00"		; <[42 x sbyte]*> [#uses=2]
+ %.str_9 = internal constant [37 x sbyte] c"last value wrong, wanted %d, got %d\0A\00"		; <[37 x sbyte]*> [#uses=2]
+ %.str_10 = internal constant [42 x sbyte] c"li2 first value wrong, wanted %d, got %d\0A\00"		; <[42 x sbyte]*> [#uses=2]
+ %.str_12 = internal constant [35 x sbyte] c"li1 size wrong, wanted %d, got %d\0A\00"		; <[35 x sbyte]*> [#uses=2]
+ %.str_13 = internal constant [27 x sbyte] c"li1 and li2 are not equal\0A\00"		; <[27 x sbyte]*> [#uses=2]
+ %.str_14 = internal constant [4 x sbyte] c"%d\0A\00"		; <[4 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (%struct.DLL*, %struct.DLL*)*, int (int, sbyte**)* } { int (%struct.DLL*, %struct.DLL*)* %list_equal, int (int, sbyte**)* %main }		; <{ int (%struct.DLL*, %struct.DLL*)*, int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [2 x sbyte] zeroinitializer		; <[2 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 2		; <int*> [#uses=0]
+ %list_equal.regAllocState = internal constant { uint, [45 x { int, int, uint, int }] } { uint 45, [45 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 0, int -1 }, { int, int, uint, int } { int 1, int -1, uint 1, int 0 }, { int, int, uint, int } { int 2, int -1, uint 0, int -1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 0, int -1 }, { int, int, uint, int } { int 5, int -1, uint 1, int 7 }, { int, int, uint, int } { int 5, int -2, uint 1, int 7 }, { int, int, uint, int } { int 6, int -1, uint 1, int 8 }, { int, int, uint, int } { int 6, int -2, uint 1, int 8 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 1 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, in!
 t -1, uint 1, int 0 }, { int, int, uint, int } { int 11, int -1, uint 0, int -1 }, { int, int, uint, int } { int 12, int -1, uint 0, int -1 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 1, int 8 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 1, int 7 }, { int, int, uint, int } { int 17, int -1, uint 0, int -1 }, { int, int, uint, int } { int 18, int -1, uint 1, int 0 }, { int, int, uint, int } { int 19, int -1, uint 0, int -1 }, { int, int, uint, int } { int 20, int -1, uint 0, int -1 }, { int, int, uint, int } { int 21, int -1, uint 0, int -1 }, { int, int, uint, int } { int 22, int -1, uint 1, int 7 }, { int, int, uint, int } { int 22, int -2, uint 1, int 7 }, { int, int, uint, int } { int 23, int -1, uint 1, int 8 }, { int, int, uint, int } { int 23, int -2, uint 1, int 8 }, { int, int, uint, int } { int 24, int -1, uint 0, int -1 }, { int, int, !
 uint, int } { int 25, int -1, uint 1, int 8 }, { int, int, uint, int }
 { int 26, int -1, uint 0, int -1 }, { int, int, uint, int } { int 27, int -1, uint 1, int 0 }, { int, int, uint, int } { int 28, int -1, uint 0, int -1 }, { int, int, uint, int } { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 1, int 7 }, { int, int, uint, int } { int 32, int -1, uint 1, int 15 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 0, int -1 } ] }		; <{ uint, [45 x { int, int, uint, int }] }*> [#uses=2]
+ %main.regAllocState = internal constant { uint, [302 x { int, int, uint, int }] } { uint 302, [302 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 1 }, { int, int, uint, int } { int 2, int -1, uint 1, int 2 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 3 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 2 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 1, int 2 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 1, int 2 }, { int, int, uint, int } { int 16, int -2, uint 1, int 2 }, { int, int, uint, int } { int 17, int -1, uint 1, int 2 }, { int, int, uint, int } { int 18, int -1, uint 2, int 1951 }, { int, int, uint, int } { int 19, int -1, uint 1, int 0 }, { int, int, uint, int } { int 20, int -1, uint 1, int 17 }, { int, int, uint, int } { int 21, int -1, uint 1, int 9 }, { int, int, uint, int } { int 22, int -1, uint 1, int 14 }, { int, int, uint, int } { int 23, int -1, uint 1, int 18 }, { int, int, uint, int } { int 24, int -1, uint 2, int 1943 }, { int, int, uint, int } { int 25, int -1, uint 1, int 0 }, { int, int, uint, int } { int 26, int -1, uint 2, int 2023 }, { int, int, uint, int } { int 27, int -1, uint 0, int -1 }, { int, !
 int, uint, int } { int 28, int -1, uint 2, int 1975 }, { int, int, uin
t, int } { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 2, int 2007 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 2, int 1959 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 2, int 1991 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 1, int 20 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 2, int 1983 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 2, int 1967 }, { int, int, uint, int } { int 41, int -1, uint 0, int -1 }, { int, int, uint, int } { int 42, int -1, uint 2, int 1999 }, { int, int, uint, int } { int 43, int -1, uint 0, int -1 }, { int, int, uint, int } { int 44, int -1, uint 1, int 19 }, { int, int, uint, int } { int 44!
 , int -2, uint 1, int 0 }, { int, int, uint, int } { int 45, int -1, uint 1, int 0 }, { int, int, uint, int } { int 46, int -1, uint 1, int 12 }, { int, int, uint, int } { int 47, int -1, uint 1, int 7 }, { int, int, uint, int } { int 48, int -1, uint 1, int 11 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 1, int 1 }, { int, int, uint, int } { int 50, int -2, uint 1, int 8 }, { int, int, uint, int } { int 51, int -1, uint 1, int 3 }, { int, int, uint, int } { int 52, int -1, uint 1, int 0 }, { int, int, uint, int } { int 53, int -1, uint 1, int 4 }, { int, int, uint, int } { int 54, int -1, uint 1, int 6 }, { int, int, uint, int } { int 55, int -1, uint 0, int -1 }, { int, int, uint, int } { int 56, int -1, uint 1, int 2 }, { int, int, uint, int } { int 57, int -1, uint 1, int 5 }, { int, int, uint, int } { int 58, int -1, uint 0, int -1 }, { int, int, uint, int } { int 59, int -1, uint 1, int 2 }, { int, int, !
 uint, int } { int 60, int -1, uint 0, int -1 }, { int, int, uint, int 
} { int 61, int -1, uint 1, int 4 }, { int, int, uint, int } { int 62, int -1, uint 0, int -1 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 0, int -1 }, { int, int, uint, int } { int 65, int -1, uint 0, int -1 }, { int, int, uint, int } { int 66, int -1, uint 1, int 8 }, { int, int, uint, int } { int 67, int -1, uint 0, int -1 }, { int, int, uint, int } { int 68, int -1, uint 1, int 8 }, { int, int, uint, int } { int 69, int -1, uint 1, int 10 }, { int, int, uint, int } { int 70, int -1, uint 1, int 1 }, { int, int, uint, int } { int 71, int -1, uint 0, int -1 }, { int, int, uint, int } { int 72, int -1, uint 1, int 2 }, { int, int, uint, int } { int 73, int -1, uint 0, int -1 }, { int, int, uint, int } { int 74, int -1, uint 0, int -1 }, { int, int, uint, int } { int 75, int -1, uint 0, int -1 }, { int, int, uint, int } { int 76, int -1, uint 1, int 1 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 !
 }, { int, int, uint, int } { int 78, int -1, uint 1, int 12 }, { int, int, uint, int } { int 79, int -1, uint 0, int -1 }, { int, int, uint, int } { int 80, int -1, uint 1, int 7 }, { int, int, uint, int } { int 81, int -1, uint 0, int -1 }, { int, int, uint, int } { int 82, int -1, uint 1, int 0 }, { int, int, uint, int } { int 83, int -1, uint 1, int 2 }, { int, int, uint, int } { int 84, int -1, uint 1, int 3 }, { int, int, uint, int } { int 85, int -1, uint 1, int 13 }, { int, int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uint, int } { int 87, int -1, uint 1, int 16 }, { int, int, uint, int } { int 87, int -2, uint 1, int 0 }, { int, int, uint, int } { int 88, int -1, uint 1, int 5 }, { int, int, uint, int } { int 88, int -2, uint 1, int 1 }, { int, int, uint, int } { int 89, int -1, uint 1, int 1 }, { int, int, uint, int } { int 90, int -1, uint 1, int 0 }, { int, int, uint, int } { int 91, int -1, uint 1, int 1 }, { int, int, uint, int } { int 92, i!
 nt -1, uint 1, int 6 }, { int, int, uint, int } { int 93, int -1, uint
 0, int -1 }, { int, int, uint, int } { int 94, int -1, uint 1, int 4 }, { int, int, uint, int } { int 95, int -1, uint 1, int 15 }, { int, int, uint, int } { int 96, int -1, uint 0, int -1 }, { int, int, uint, int } { int 97, int -1, uint 1, int 4 }, { int, int, uint, int } { int 98, int -1, uint 0, int -1 }, { int, int, uint, int } { int 99, int -1, uint 1, int 1 }, { int, int, uint, int } { int 100, int -1, uint 0, int -1 }, { int, int, uint, int } { int 101, int -1, uint 0, int -1 }, { int, int, uint, int } { int 102, int -1, uint 0, int -1 }, { int, int, uint, int } { int 103, int -1, uint 1, int 1 }, { int, int, uint, int } { int 104, int -1, uint 0, int -1 }, { int, int, uint, int } { int 105, int -1, uint 0, int -1 }, { int, int, uint, int } { int 106, int -1, uint 1, int 1 }, { int, int, uint, int } { int 107, int -1, uint 0, int -1 }, { int, int, uint, int } { int 108, int -1, uint 1, int 0 }, { int, int, uint, int } { int 109, int -1, uint 0, int -1 }, { int, int,!
  uint, int } { int 110, int -1, uint 1, int 15 }, { int, int, uint, int } { int 111, int -1, uint 1, int 16 }, { int, int, uint, int } { int 112, int -1, uint 1, int 0 }, { int, int, uint, int } { int 113, int -1, uint 0, int -1 }, { int, int, uint, int } { int 114, int -1, uint 1, int 0 }, { int, int, uint, int } { int 115, int -1, uint 0, int -1 }, { int, int, uint, int } { int 116, int -1, uint 0, int -1 }, { int, int, uint, int } { int 117, int -1, uint 0, int -1 }, { int, int, uint, int } { int 118, int -1, uint 1, int 1 }, { int, int, uint, int } { int 119, int -1, uint 0, int -1 }, { int, int, uint, int } { int 120, int -1, uint 1, int 0 }, { int, int, uint, int } { int 121, int -1, uint 1, int 12 }, { int, int, uint, int } { int 122, int -1, uint 0, int -1 }, { int, int, uint, int } { int 123, int -1, uint 0, int -1 }, { int, int, uint, int } { int 124, int -1, uint 2, int 2015 }, { int, int, uint, int } { int 125, int -1, uint 0, int -1 }, { int, int, uint, int } {!
  int 126, int -1, uint 1, int 4 }, { int, int, uint, int } { int 127, 
int -1, uint 0, int -1 }, { int, int, uint, int } { int 128, int -1, uint 1, int 0 }, { int, int, uint, int } { int 129, int -1, uint 0, int -1 }, { int, int, uint, int } { int 130, int -1, uint 0, int -1 }, { int, int, uint, int } { int 131, int -1, uint 1, int 0 }, { int, int, uint, int } { int 132, int -1, uint 0, int -1 }, { int, int, uint, int } { int 133, int -1, uint 0, int -1 }, { int, int, uint, int } { int 134, int -1, uint 1, int 5 }, { int, int, uint, int } { int 135, int -1, uint 1, int 0 }, { int, int, uint, int } { int 136, int -1, uint 0, int -1 }, { int, int, uint, int } { int 137, int -1, uint 0, int -1 }, { int, int, uint, int } { int 138, int -1, uint 1, int 3 }, { int, int, uint, int } { int 139, int -1, uint 0, int -1 }, { int, int, uint, int } { int 140, int -1, uint 1, int 1 }, { int, int, uint, int } { int 141, int -1, uint 0, int -1 }, { int, int, uint, int } { int 142, int -1, uint 0, int -1 }, { int, int, uint, int } { int 143, int -1, uint 1, int!
  1 }, { int, int, uint, int } { int 144, int -1, uint 1, int 2 }, { int, int, uint, int } { int 145, int -1, uint 1, int 0 }, { int, int, uint, int } { int 146, int -1, uint 0, int -1 }, { int, int, uint, int } { int 147, int -1, uint 1, int 0 }, { int, int, uint, int } { int 148, int -1, uint 0, int -1 }, { int, int, uint, int } { int 149, int -1, uint 0, int -1 }, { int, int, uint, int } { int 150, int -1, uint 1, int 0 }, { int, int, uint, int } { int 151, int -1, uint 1, int 0 }, { int, int, uint, int } { int 152, int -1, uint 0, int -1 }, { int, int, uint, int } { int 153, int -1, uint 0, int -1 }, { int, int, uint, int } { int 154, int -1, uint 1, int 1 }, { int, int, uint, int } { int 154, int -2, uint 1, int 0 }, { int, int, uint, int } { int 155, int -1, uint 1, int 0 }, { int, int, uint, int } { int 156, int -1, uint 0, int -1 }, { int, int, uint, int } { int 157, int -1, uint 0, int -1 }, { int, int, uint, int } { int 158, int -1, uint 0, int -1 }, { int, int, ui!
 nt, int } { int 159, int -1, uint 0, int -1 }, { int, int, uint, int }
 { int 160, int -1, uint 0, int -1 }, { int, int, uint, int } { int 161, int -1, uint 0, int -1 }, { int, int, uint, int } { int 162, int -1, uint 0, int -1 }, { int, int, uint, int } { int 163, int -1, uint 1, int 0 }, { int, int, uint, int } { int 164, int -1, uint 1, int 0 }, { int, int, uint, int } { int 165, int -1, uint 0, int -1 }, { int, int, uint, int } { int 166, int -1, uint 1, int 0 }, { int, int, uint, int } { int 167, int -1, uint 0, int -1 }, { int, int, uint, int } { int 168, int -1, uint 0, int -1 }, { int, int, uint, int } { int 169, int -1, uint 0, int -1 }, { int, int, uint, int } { int 170, int -1, uint 1, int 0 }, { int, int, uint, int } { int 171, int -1, uint 0, int -1 }, { int, int, uint, int } { int 172, int -1, uint 0, int -1 }, { int, int, uint, int } { int 173, int -1, uint 1, int 0 }, { int, int, uint, int } { int 174, int -1, uint 0, int -1 }, { int, int, uint, int } { int 175, int -1, uint 0, int -1 }, { int, int, uint, int } { int 176, int -1!
 , uint 1, int 0 }, { int, int, uint, int } { int 177, int -1, uint 0, int -1 }, { int, int, uint, int } { int 178, int -1, uint 0, int -1 }, { int, int, uint, int } { int 179, int -1, uint 0, int -1 }, { int, int, uint, int } { int 180, int -1, uint 1, int 0 }, { int, int, uint, int } { int 181, int -1, uint 0, int -1 }, { int, int, uint, int } { int 182, int -1, uint 0, int -1 }, { int, int, uint, int } { int 183, int -1, uint 1, int 0 }, { int, int, uint, int } { int 184, int -1, uint 0, int -1 }, { int, int, uint, int } { int 185, int -1, uint 1, int 1 }, { int, int, uint, int } { int 186, int -1, uint 0, int -1 }, { int, int, uint, int } { int 187, int -1, uint 0, int -1 }, { int, int, uint, int } { int 188, int -1, uint 0, int -1 }, { int, int, uint, int } { int 189, int -1, uint 1, int 1 }, { int, int, uint, int } { int 190, int -1, uint 1, int 1 }, { int, int, uint, int } { int 191, int -1, uint 0, int -1 }, { int, int, uint, int } { int 192, int -1, uint 0, int -1 }!
 , { int, int, uint, int } { int 193, int -1, uint 1, int 0 }, { int, i
nt, uint, int } { int 193, int -2, uint 1, int 1 }, { int, int, uint, int } { int 194, int -1, uint 1, int 1 }, { int, int, uint, int } { int 195, int -1, uint 0, int -1 }, { int, int, uint, int } { int 196, int -1, uint 0, int -1 }, { int, int, uint, int } { int 197, int -1, uint 0, int -1 }, { int, int, uint, int } { int 198, int -1, uint 0, int -1 }, { int, int, uint, int } { int 199, int -1, uint 0, int -1 }, { int, int, uint, int } { int 200, int -1, uint 0, int -1 }, { int, int, uint, int } { int 201, int -1, uint 0, int -1 }, { int, int, uint, int } { int 202, int -1, uint 1, int 0 }, { int, int, uint, int } { int 203, int -1, uint 1, int 0 }, { int, int, uint, int } { int 204, int -1, uint 0, int -1 }, { int, int, uint, int } { int 205, int -1, uint 1, int 0 }, { int, int, uint, int } { int 206, int -1, uint 0, int -1 }, { int, int, uint, int } { int 207, int -1, uint 0, int -1 }, { int, int, uint, int } { int 208, int -1, uint 0, int -1 }, { int, int, uint, int } { !
 int 209, int -1, uint 1, int 0 }, { int, int, uint, int } { int 210, int -1, uint 0, int -1 }, { int, int, uint, int } { int 211, int -1, uint 0, int -1 }, { int, int, uint, int } { int 212, int -1, uint 1, int 0 }, { int, int, uint, int } { int 213, int -1, uint 0, int -1 }, { int, int, uint, int } { int 214, int -1, uint 0, int -1 }, { int, int, uint, int } { int 215, int -1, uint 0, int -1 }, { int, int, uint, int } { int 216, int -1, uint 1, int 0 }, { int, int, uint, int } { int 216, int -2, uint 1, int 0 }, { int, int, uint, int } { int 217, int -1, uint 1, int 1 }, { int, int, uint, int } { int 218, int -1, uint 1, int 2 }, { int, int, uint, int } { int 219, int -1, uint 1, int 3 }, { int, int, uint, int } { int 220, int -1, uint 1, int 0 }, { int, int, uint, int } { int 221, int -1, uint 0, int -1 }, { int, int, uint, int } { int 222, int -1, uint 0, int -1 }, { int, int, uint, int } { int 223, int -1, uint 0, int -1 }, { int, int, uint, int } { int 224, int -1, uin!
 t 0, int -1 }, { int, int, uint, int } { int 225, int -1, uint 0, int 
-1 }, { int, int, uint, int } { int 226, int -1, uint 1, int 0 }, { int, int, uint, int } { int 227, int -1, uint 0, int -1 }, { int, int, uint, int } { int 228, int -1, uint 1, int 0 }, { int, int, uint, int } { int 229, int -1, uint 0, int -1 }, { int, int, uint, int } { int 230, int -1, uint 0, int -1 }, { int, int, uint, int } { int 231, int -1, uint 1, int 0 }, { int, int, uint, int } { int 232, int -1, uint 0, int -1 }, { int, int, uint, int } { int 233, int -1, uint 0, int -1 }, { int, int, uint, int } { int 234, int -1, uint 1, int 0 }, { int, int, uint, int } { int 235, int -1, uint 0, int -1 }, { int, int, uint, int } { int 236, int -1, uint 1, int 0 }, { int, int, uint, int } { int 237, int -1, uint 0, int -1 }, { int, int, uint, int } { int 238, int -1, uint 0, int -1 }, { int, int, uint, int } { int 239, int -1, uint 1, int 0 }, { int, int, uint, int } { int 240, int -1, uint 0, int -1 }, { int, int, uint, int } { int 241, int -1, uint 0, int -1 }, { int, int, u!
 int, int } { int 242, int -1, uint 0, int -1 }, { int, int, uint, int } { int 243, int -1, uint 1, int 0 }, { int, int, uint, int } { int 244, int -1, uint 0, int -1 }, { int, int, uint, int } { int 245, int -1, uint 1, int 0 }, { int, int, uint, int } { int 246, int -1, uint 0, int -1 }, { int, int, uint, int } { int 247, int -1, uint 0, int -1 }, { int, int, uint, int } { int 248, int -1, uint 1, int 0 }, { int, int, uint, int } { int 249, int -1, uint 0, int -1 }, { int, int, uint, int } { int 250, int -1, uint 0, int -1 }, { int, int, uint, int } { int 251, int -1, uint 1, int 0 }, { int, int, uint, int } { int 252, int -1, uint 0, int -1 }, { int, int, uint, int } { int 253, int -1, uint 1, int 0 }, { int, int, uint, int } { int 254, int -1, uint 0, int -1 }, { int, int, uint, int } { int 255, int -1, uint 0, int -1 }, { int, int, uint, int } { int 256, int -1, uint 1, int 0 }, { int, int, uint, int } { int 257, int -1, uint 0, int -1 }, { int, int, uint, int } { int 2!
 58, int -1, uint 0, int -1 }, { int, int, uint, int } { int 259, int -
1, uint 1, int 7 }, { int, int, uint, int } { int 260, int -1, uint 0, int -1 }, { int, int, uint, int } { int 261, int -1, uint 0, int -1 }, { int, int, uint, int } { int 262, int -1, uint 1, int 0 }, { int, int, uint, int } { int 263, int -1, uint 0, int -1 }, { int, int, uint, int } { int 264, int -1, uint 0, int -1 }, { int, int, uint, int } { int 265, int -1, uint 1, int 0 }, { int, int, uint, int } { int 266, int -1, uint 0, int -1 }, { int, int, uint, int } { int 267, int -1, uint 0, int -1 }, { int, int, uint, int } { int 268, int -1, uint 1, int 0 }, { int, int, uint, int } { int 269, int -1, uint 0, int -1 }, { int, int, uint, int } { int 270, int -1, uint 0, int -1 }, { int, int, uint, int } { int 271, int -1, uint 1, int 0 }, { int, int, uint, int } { int 272, int -1, uint 0, int -1 }, { int, int, uint, int } { int 273, int -1, uint 1, int 0 }, { int, int, uint, int } { int 274, int -1, uint 0, int -1 }, { int, int, uint, int } { int 275, int -1, uint 1, int 0 },!
  { int, int, uint, int } { int 276, int -1, uint 0, int -1 }, { int, int, uint, int } { int 277, int -1, uint 0, int -1 }, { int, int, uint, int } { int 278, int -1, uint 1, int 1 }, { int, int, uint, int } { int 278, int -2, uint 1, int 1 }, { int, int, uint, int } { int 279, int -1, uint 1, int 0 }, { int, int, uint, int } { int 280, int -1, uint 0, int -1 }, { int, int, uint, int } { int 281, int -1, uint 0, int -1 }, { int, int, uint, int } { int 282, int -1, uint 0, int -1 }, { int, int, uint, int } { int 283, int -1, uint 1, int 1 }, { int, int, uint, int } { int 283, int -2, uint 1, int 1 }, { int, int, uint, int } { int 284, int -1, uint 0, int -1 }, { int, int, uint, int } { int 285, int -1, uint 1, int 0 }, { int, int, uint, int } { int 286, int -1, uint 1, int 0 }, { int, int, uint, int } { int 287, int -1, uint 0, int -1 }, { int, int, uint, int } { int 288, int -1, uint 0, int -1 }, { int, int, uint, int } { int 289, int -1, uint 0, int -1 } ] }		; <{ uint, [30!
 2 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [2 x { uint, [0 x { int, int, uint, int }] }*] } { uint 2, [2 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [45 x { int, int, uint, int }] }* %list_equal.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [302 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [2 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [31 x sbyte*] } { uint 31, [31 x sbyte*] [ sbyte* cast ([27 x sbyte]* %.str_5 to sbyte*), sbyte* cast ([25 x sbyte]* %.str_6 to sbyte*), sbyte* cast ([25 x sbyte]* %.str_7 to sbyte*), sbyte* cast ([42 x sbyte]* %.str_8 to sbyte*), sbyte* cast ([37 x sbyte]* %.str_9 to sbyte*), sbyte* cast ([42 x sbyte]* %.str_10 to sbyte*), sbyte* cast ([35 x sbyte]* %.str_12 to sbyte*), sbyte* cast ([27 x sbyte]* %.str_13 to sbyte*), sbyte* cast ([4 x sbyte]* %.str_14 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [45 x { int, int, uint, int }] }* %list_equal.regAllocState to sbyte*), sbyte* cast ({ uint, [302 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast (int (%struct.DLL*, %struct.DLL*)* %list_equal to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* !
 null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [31 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ declare void %exit(int)
+ 
+ internal int %list_equal(%struct.DLL* %x, %struct.DLL* %y) {
+ entry:
+ 	%tmp.38 = getelementptr %struct.DLL* %x, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.49 = load %struct.DLL** %tmp.38		; <%struct.DLL*> [#uses=1]
+ 	%tmp.610 = seteq %struct.DLL* %tmp.49, %x		; <bool> [#uses=1]
+ 	br bool %tmp.610, label %loopexit, label %no_exit.preheader
+ 
+ no_exit.preheader:		; preds = %entry
+ 	br label %no_exit
+ 
+ no_exit:		; preds = %no_exit.preheader, %backEdgeInst
+ 	%yp.0.0 = phi %struct.DLL* [ %tmp.21, %backEdgeInst ], [ %y, %no_exit.preheader ]		; <%struct.DLL*> [#uses=2]
+ 	%xp.0.0 = phi %struct.DLL* [ %tmp.18, %backEdgeInst ], [ %x, %no_exit.preheader ]		; <%struct.DLL*> [#uses=2]
+ 	%tmp.9 = getelementptr %struct.DLL* %xp.0.0, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.10 = load int* %tmp.9		; <int> [#uses=1]
+ 	%tmp.12 = getelementptr %struct.DLL* %yp.0.0, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.13 = load int* %tmp.12		; <int> [#uses=1]
+ 	%tmp.14 = seteq int %tmp.10, %tmp.13		; <bool> [#uses=1]
+ 	br bool %tmp.14, label %endif.0, label %UnifiedReturnBlock.loopexit
+ 
+ endif.0:		; preds = %no_exit
+ 	%tmp.17 = getelementptr %struct.DLL* %xp.0.0, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.18 = load %struct.DLL** %tmp.17		; <%struct.DLL*> [#uses=3]
+ 	%tmp.20 = getelementptr %struct.DLL* %yp.0.0, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.21 = load %struct.DLL** %tmp.20		; <%struct.DLL*> [#uses=2]
+ 	%tmp.3 = getelementptr %struct.DLL* %tmp.18, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.4 = load %struct.DLL** %tmp.3		; <%struct.DLL*> [#uses=1]
+ 	%tmp.6 = seteq %struct.DLL* %tmp.4, %x		; <bool> [#uses=1]
+ 	br bool %tmp.6, label %loopexit.loopexit, label %backEdgeInst
+ 
+ loopexit.loopexit:		; preds = %endif.0
+ 	br label %loopexit
+ 
+ loopexit:		; preds = %entry, %loopexit.loopexit
+ 	%yp.0.1 = phi %struct.DLL* [ %y, %entry ], [ %tmp.21, %loopexit.loopexit ]		; <%struct.DLL*> [#uses=2]
+ 	%xp.0.1 = phi %struct.DLL* [ %x, %entry ], [ %tmp.18, %loopexit.loopexit ]		; <%struct.DLL*> [#uses=1]
+ 	%tmp.23 = getelementptr %struct.DLL* %xp.0.1, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.24 = load int* %tmp.23		; <int> [#uses=1]
+ 	%tmp.26 = getelementptr %struct.DLL* %yp.0.1, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.27 = load int* %tmp.26		; <int> [#uses=1]
+ 	%tmp.28 = seteq int %tmp.24, %tmp.27		; <bool> [#uses=1]
+ 	br bool %tmp.28, label %endif.1, label %UnifiedReturnBlock
+ 
+ endif.1:		; preds = %loopexit
+ 	%tmp.31 = getelementptr %struct.DLL* %yp.0.1, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.32 = load %struct.DLL** %tmp.31		; <%struct.DLL*> [#uses=1]
+ 	%tmp.34 = seteq %struct.DLL* %tmp.32, %y		; <bool> [#uses=1]
+ 	%tmp.35 = cast bool %tmp.34 to int		; <int> [#uses=1]
+ 	ret int %tmp.35
+ 
+ UnifiedReturnBlock.loopexit:		; preds = %no_exit
+ 	br label %UnifiedReturnBlock
+ 
+ UnifiedReturnBlock:		; preds = %loopexit, %UnifiedReturnBlock.loopexit
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %endif.0
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit
+ }
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	%copyConst = cast int 2999999 to int		; <int> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %no_exit.preheader
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=2]
+ 	%dec2 = add int %tmp.3, -1		; <int> [#uses=1]
+ 	%tmp.93 = seteq int %tmp.3, 0		; <bool> [#uses=1]
+ 	br bool %tmp.93, label %loopexit, label %no_exit.preheader
+ 
+ no_exit.preheader:		; preds = %__main.entry, %cond_true
+ 	%dec.0.ph = phi int [ %dec2, %cond_true ], [ %copyConst, %__main.entry ]		; <int> [#uses=1]
+ 	%dec.0.ph = cast int %dec.0.ph to uint		; <uint> [#uses=1]
+ 	%tmp. = add uint %dec.0.ph, 1		; <uint> [#uses=1]
+ 	"constantGEP:" = getelementptr [101 x %struct.DLL]* null, uint 1		; <[101 x %struct.DLL]*> [#uses=1]
+ 	%constantCast = cast [101 x %struct.DLL]* "constantGEP:" to uint		; <uint> [#uses=2]
+ 	%v9 = cast int 0 to long		; <long> [#uses=4]
+ 	%v953 = cast int 100 to long		; <long> [#uses=4]
+ 	%v959 = cast int 99 to long		; <long> [#uses=1]
+ 	%copyConst63 = cast int 100 to int		; <int> [#uses=1]
+ 	"constantGEP:" = getelementptr %struct.DLL* null, uint 1		; <%struct.DLL*> [#uses=1]
+ 	%constantCast88 = cast %struct.DLL* "constantGEP:" to uint		; <uint> [#uses=1]
+ 	"addrOfGlobal:.str_5" = getelementptr [27 x sbyte]* %.str_5, long 0		; <[27 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_5" = getelementptr [27 x sbyte]* "addrOfGlobal:.str_5", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"addrOfGlobal:.str_6" = getelementptr [25 x sbyte]* %.str_6, long 0		; <[25 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_6" = getelementptr [25 x sbyte]* "addrOfGlobal:.str_6", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"addrOfGlobal:.str_7" = getelementptr [25 x sbyte]* %.str_7, long 0		; <[25 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_7" = getelementptr [25 x sbyte]* "addrOfGlobal:.str_7", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"addrOfGlobal:.str_8" = getelementptr [42 x sbyte]* %.str_8, long 0		; <[42 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_8" = getelementptr [42 x sbyte]* "addrOfGlobal:.str_8", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"addrOfGlobal:.str_9" = getelementptr [37 x sbyte]* %.str_9, long 0		; <[37 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_9" = getelementptr [37 x sbyte]* "addrOfGlobal:.str_9", long 0, long 0		; <sbyte*> [#uses=2]
+ 	"addrOfGlobal:.str_10" = getelementptr [42 x sbyte]* %.str_10, long 0		; <[42 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_10" = getelementptr [42 x sbyte]* "addrOfGlobal:.str_10", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"addrOfGlobal:.str_12" = getelementptr [35 x sbyte]* %.str_12, long 0		; <[35 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_12" = getelementptr [35 x sbyte]* "addrOfGlobal:.str_12", long 0, long 0		; <sbyte*> [#uses=1]
+ 	"addrOfGlobal:.str_13" = getelementptr [27 x sbyte]* %.str_13, long 0		; <[27 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_13" = getelementptr [27 x sbyte]* "addrOfGlobal:.str_13", long 0, long 0		; <sbyte*> [#uses=1]
+ 	br label %no_exit
+ 
+ no_exit:		; preds = %no_exit.preheader, %test_lists.entry
+ 	%indvar = phi uint [ 0, %no_exit.preheader ], [ %indvar.next, %test_lists.entry ]		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to [101 x %struct.DLL]*		; <[101 x %struct.DLL]*>:0 [#uses=5]
+ 	%ptr1 = getelementptr [101 x %struct.DLL]* %0, long %v9		; <[101 x %struct.DLL]*> [#uses=5]
+ 	%tmp.12.i.i.sub40 = getelementptr [101 x %struct.DLL]* %ptr1, long 0, long %v9		; <%struct.DLL*> [#uses=7]
+ 	br label %no_exit.i.i
+ 
+ no_exit.i.i:		; preds = %no_exit, %backEdgeInst
+ 	%indvar.i.i = phi uint [ %indvar.next.i.i, %backEdgeInst ], [ 0, %no_exit ]		; <uint> [#uses=2]
+ 	%i.0.0.i.i = cast uint %indvar.i.i to int		; <int> [#uses=3]
+ 	%j.0.0.i.i = add int %i.0.0.i.i, 1		; <int> [#uses=3]
+ 	%v941 = cast int %i.0.0.i.i to long		; <long> [#uses=2]
+ 	%ptr1 = getelementptr [101 x %struct.DLL]* %0, long 0, long %v941		; <%struct.DLL*> [#uses=2]
+ 	%tmp.27.i.i1 = getelementptr %struct.DLL* %ptr1, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%v943 = cast int %j.0.0.i.i to long		; <long> [#uses=2]
+ 	%tmp.32.i.i45 = getelementptr [101 x %struct.DLL]* %ptr1, long 0, long %v943		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.32.i.i45, %struct.DLL** %tmp.27.i.i1
+ 	%ptr12 = getelementptr [101 x %struct.DLL]* %0, long 0, long %v943		; <%struct.DLL*> [#uses=1]
+ 	%tmp.37.i.i3 = getelementptr %struct.DLL* %ptr12, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	%tmp.42.i.i50 = getelementptr [101 x %struct.DLL]* %ptr1, long 0, long %v941		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.42.i.i50, %struct.DLL** %tmp.37.i.i3
+ 	%tmp.47.i.i5 = getelementptr %struct.DLL* %ptr1, long 0, uint 0		; <int*> [#uses=1]
+ 	store int %i.0.0.i.i, int* %tmp.47.i.i5
+ 	%tmp.21.i.i = setlt int %j.0.0.i.i, 100		; <bool> [#uses=1]
+ 	%indvar.next.i.i = add uint %indvar.i.i, 1		; <uint> [#uses=1]
+ 	br bool %tmp.21.i.i, label %backEdgeInst, label %list_sequence.entry.i
+ 
+ list_sequence.entry.i:		; preds = %no_exit.i.i
+ 	%ptr16 = getelementptr [101 x %struct.DLL]* %0, long 0, long 0		; <%struct.DLL*> [#uses=3]
+ 	%tmp.53.i.i7 = getelementptr %struct.DLL* %ptr16, long 0, uint 2		; <%struct.DLL**> [#uses=2]
+ 	%tmp.57.i.i55 = getelementptr [101 x %struct.DLL]* %ptr1, long 0, long %v953		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.57.i.i55, %struct.DLL** %tmp.53.i.i7
+ 	%ptr18 = getelementptr [101 x %struct.DLL]* %0, long 0, long %v953		; <%struct.DLL*> [#uses=3]
+ 	%tmp.62.i.i9 = getelementptr %struct.DLL* %ptr18, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.12.i.i.sub40, %struct.DLL** %tmp.62.i.i9
+ 	%tmp.69.i.i11 = getelementptr %struct.DLL* %ptr18, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	%tmp.74.i.i61 = getelementptr [101 x %struct.DLL]* %ptr1, long 0, long %v959		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.74.i.i61, %struct.DLL** %tmp.69.i.i11
+ 	%tmp.79.i.i13 = getelementptr %struct.DLL* %ptr18, long 0, uint 0		; <int*> [#uses=2]
+ 	store int %j.0.0.i.i, int* %tmp.79.i.i13
+ 	%tmp.83.i.i15 = getelementptr %struct.DLL* %ptr16, long 0, uint 0		; <int*> [#uses=2]
+ 	store int %copyConst63, int* %tmp.83.i.i15
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:1 [#uses=1]
+ 	cast sbyte* %1 to [101 x %struct.DLL]*		; <[101 x %struct.DLL]*>:1 [#uses=5]
+ 	%ptr168 = getelementptr [101 x %struct.DLL]* %1, long %v9		; <[101 x %struct.DLL]*> [#uses=4]
+ 	%tmp.2.i.i.sub69 = getelementptr [101 x %struct.DLL]* %ptr168, long 0, long %v9		; <%struct.DLL*> [#uses=6]
+ 	br label %no_exit.i4.i
+ 
+ no_exit.i4.i:		; preds = %list_sequence.entry.i, %no_exit.i4.i
+ 	%indvar.i5.i = phi uint [ %indvar.next.i8.i, %no_exit.i4.i ], [ 0, %list_sequence.entry.i ]		; <uint> [#uses=2]
+ 	%xp.0.0.i.i = phi %struct.DLL* [ %tmp.43.i.i, %no_exit.i4.i ], [ %tmp.12.i.i.sub40, %list_sequence.entry.i ]		; <%struct.DLL*> [#uses=2]
+ 	%i.0.0.i6.i = cast uint %indvar.i5.i to int		; <int> [#uses=2]
+ 	%j.0.0.i7.i = add int %i.0.0.i6.i, 1		; <int> [#uses=2]
+ 	%v970 = cast int %i.0.0.i6.i to long		; <long> [#uses=2]
+ 	%ptr116 = getelementptr [101 x %struct.DLL]* %1, long 0, long %v970		; <%struct.DLL*> [#uses=2]
+ 	%tmp.17.i.i17 = getelementptr %struct.DLL* %ptr116, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%v972 = cast int %j.0.0.i7.i to long		; <long> [#uses=2]
+ 	%tmp.21.i.i74 = getelementptr [101 x %struct.DLL]* %ptr168, long 0, long %v972		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.21.i.i74, %struct.DLL** %tmp.17.i.i17
+ 	%ptr118 = getelementptr [101 x %struct.DLL]* %1, long 0, long %v972		; <%struct.DLL*> [#uses=1]
+ 	%tmp.26.i.i19 = getelementptr %struct.DLL* %ptr118, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	%tmp.30.i.i79 = getelementptr [101 x %struct.DLL]* %ptr168, long 0, long %v970		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.30.i.i79, %struct.DLL** %tmp.26.i.i19
+ 	%tmp.35.i.i21 = getelementptr %struct.DLL* %ptr116, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.37.i.i = getelementptr %struct.DLL* %xp.0.0.i.i, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.38.i.i = load int* %tmp.37.i.i		; <int> [#uses=1]
+ 	store int %tmp.38.i.i, int* %tmp.35.i.i21
+ 	%tmp.42.i.i = getelementptr %struct.DLL* %xp.0.0.i.i, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.43.i.i = load %struct.DLL** %tmp.42.i.i		; <%struct.DLL*> [#uses=1]
+ 	%tmp.11.i.i = setlt int %j.0.0.i7.i, 100		; <bool> [#uses=1]
+ 	%indvar.next.i8.i = add uint %indvar.i5.i, 1		; <uint> [#uses=1]
+ 	br bool %tmp.11.i.i, label %no_exit.i4.i, label %list_copy.entry.i
+ 
+ list_copy.entry.i:		; preds = %no_exit.i4.i
+ 	%ptr122 = getelementptr [101 x %struct.DLL]* %1, long 0, long 0		; <%struct.DLL*> [#uses=4]
+ 	%tmp.46.i.i23 = getelementptr %struct.DLL* %ptr122, long 0, uint 2		; <%struct.DLL**> [#uses=4]
+ 	%tmp.50.i.i84 = getelementptr [101 x %struct.DLL]* %ptr168, long 0, long %v953		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.50.i.i84, %struct.DLL** %tmp.46.i.i23
+ 	%ptr124 = getelementptr [101 x %struct.DLL]* %1, long 0, long %v953		; <%struct.DLL*> [#uses=2]
+ 	%tmp.55.i.i25 = getelementptr %struct.DLL* %ptr124, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.2.i.i.sub69, %struct.DLL** %tmp.55.i.i25
+ 	%tmp.62.i.i27 = getelementptr %struct.DLL* %ptr124, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.66.i.i = load int* %tmp.79.i.i13		; <int> [#uses=1]
+ 	store int %tmp.66.i.i, int* %tmp.62.i.i27
+ 	call sbyte* %malloc( uint %constantCast88 )		; <sbyte*>:2 [#uses=1]
+ 	cast sbyte* %2 to %struct.DLL*		; <%struct.DLL*>:0 [#uses=8]
+ 	%tmp.3.i.i = getelementptr %struct.DLL* %0, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %0, %struct.DLL** %tmp.3.i.i
+ 	%tmp.6.i.i = getelementptr %struct.DLL* %0, long 0, uint 2		; <%struct.DLL**> [#uses=5]
+ 	store %struct.DLL* %0, %struct.DLL** %tmp.6.i.i
+ 	%tmp.9.i.i = getelementptr %struct.DLL* %0, long 0, uint 0		; <int*> [#uses=9]
+ 	store int 0, int* %tmp.9.i.i
+ 	%tmp.5.i = call int %list_equal( %struct.DLL* %tmp.2.i.i.sub69, %struct.DLL* %tmp.12.i.i.sub40 )		; <int> [#uses=1]
+ 	%tmp.8.i = seteq int %tmp.5.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.8.i, label %then.0.i, label %loopentry.0.i
+ 
+ then.0.i:		; preds = %list_copy.entry.i
+ 	%tmp.10.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_5" )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ loopentry.0.i:		; preds = %list_copy.entry.i
+ 	%tmp.1.i.i.i31 = getelementptr %struct.DLL* %ptr122, long 0, uint 0		; <int*> [#uses=8]
+ 	%tmp.2.i.i.i = load int* %tmp.1.i.i.i31		; <int> [#uses=1]
+ 	%tmp.2.i.i = seteq int %tmp.2.i.i.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i, label %loopexit.0.i, label %no_exit.0.preheader.i
+ 
+ no_exit.0.preheader.i:		; preds = %loopentry.0.i
+ 	%tmp.5.i56.i33 = getelementptr %struct.DLL* %ptr122, long 0, uint 1		; <%struct.DLL**> [#uses=2]
+ 	br label %no_exit.0.i
+ 
+ no_exit.0.i:		; preds = %no_exit.0.preheader.i, %list_pop_head.entry.i
+ 	%tmp.2.i.i.i51.i = load int* %tmp.1.i.i.i31		; <int> [#uses=1]
+ 	%tmp.2.i.i52.i = seteq int %tmp.2.i.i.i51.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i52.i, label %list_pop_head.entry.i, label %endif.i55.i
+ 
+ endif.i55.i:		; preds = %no_exit.0.i
+ 	%tmp.6.i57.i = load %struct.DLL** %tmp.5.i56.i33		; <%struct.DLL*> [#uses=2]
+ 	%tmp.10.i59.i = getelementptr %struct.DLL* %tmp.6.i57.i, long 0, uint 1		; <%struct.DLL**> [#uses=2]
+ 	%tmp.11.i.i = load %struct.DLL** %tmp.10.i59.i		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.11.i.i, %struct.DLL** %tmp.5.i56.i33
+ 	%tmp.14.i.i = load %struct.DLL** %tmp.10.i59.i		; <%struct.DLL*> [#uses=1]
+ 	%tmp.15.i.i = getelementptr %struct.DLL* %tmp.14.i.i, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.2.i.i.sub69, %struct.DLL** %tmp.15.i.i
+ 	%tmp.19.i.i = load int* %tmp.1.i.i.i31		; <int> [#uses=1]
+ 	%dec.i61.i = add int %tmp.19.i.i, -1		; <int> [#uses=1]
+ 	store int %dec.i61.i, int* %tmp.1.i.i.i31
+ 	br label %list_pop_head.entry.i
+ 
+ list_pop_head.entry.i:		; preds = %no_exit.0.i, %endif.i55.i
+ 	%tmp.1763.i = phi %struct.DLL* [ %tmp.6.i57.i, %endif.i55.i ], [ null, %no_exit.0.i ]		; <%struct.DLL*> [#uses=4]
+ 	%tmp.2.i42.i = load %struct.DLL** %tmp.6.i.i		; <%struct.DLL*> [#uses=2]
+ 	%tmp.4.i43.i = getelementptr %struct.DLL* %tmp.2.i42.i, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.1763.i, %struct.DLL** %tmp.4.i43.i
+ 	%tmp.7.i44.i = getelementptr %struct.DLL* %tmp.1763.i, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %0, %struct.DLL** %tmp.7.i44.i
+ 	store %struct.DLL* %tmp.1763.i, %struct.DLL** %tmp.6.i.i
+ 	%tmp.13.i46.i = getelementptr %struct.DLL* %tmp.1763.i, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.2.i42.i, %struct.DLL** %tmp.13.i46.i
+ 	%tmp.17.i48.i = load int* %tmp.9.i.i		; <int> [#uses=1]
+ 	%inc.i49.i = add int %tmp.17.i48.i, 1		; <int> [#uses=1]
+ 	store int %inc.i49.i, int* %tmp.9.i.i
+ 	%tmp.2.i.i65.i = load int* %tmp.1.i.i.i31		; <int> [#uses=1]
+ 	%tmp.2.i66.i = seteq int %tmp.2.i.i65.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i66.i, label %loopexit.0.i.loopexit, label %no_exit.0.i
+ 
+ loopexit.0.i.loopexit:		; preds = %list_pop_head.entry.i
+ 	br label %loopexit.0.i
+ 
+ loopexit.0.i:		; preds = %loopentry.0.i, %loopexit.0.i.loopexit
+ 	%tmp.2.i.i38.i = load int* %tmp.1.i.i.i31		; <int> [#uses=1]
+ 	%tmp.2.i39.i = seteq int %tmp.2.i.i38.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i39.i, label %loopentry.1.i, label %then.1.i1
+ 
+ then.1.i1:		; preds = %loopexit.0.i
+ 	%tmp.23.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_6" )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ loopentry.1.i:		; preds = %loopexit.0.i
+ 	%tmp.2.i.i34.i = load int* %tmp.9.i.i		; <int> [#uses=1]
+ 	%tmp.2.i35.i = seteq int %tmp.2.i.i34.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i35.i, label %loopexit.1.i, label %no_exit.1.i.preheader
+ 
+ no_exit.1.i.preheader:		; preds = %loopentry.1.i
+ 	br label %no_exit.1.i
+ 
+ no_exit.1.i:		; preds = %no_exit.1.i.preheader, %list_pop_tail.entry.i
+ 	%tmp.2.i.i.i.i = load int* %tmp.9.i.i		; <int> [#uses=1]
+ 	%tmp.2.i.i.i = seteq int %tmp.2.i.i.i.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i.i.i, label %list_pop_tail.entry.i, label %endif.i.i
+ 
+ endif.i.i:		; preds = %no_exit.1.i
+ 	%tmp.6.i.i = load %struct.DLL** %tmp.6.i.i		; <%struct.DLL*> [#uses=2]
+ 	%tmp.8.i29.i = getelementptr %struct.DLL* %tmp.6.i.i, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	%tmp.9.i30.i = load %struct.DLL** %tmp.8.i29.i		; <%struct.DLL*> [#uses=2]
+ 	%tmp.11.i31.i = getelementptr %struct.DLL* %tmp.9.i30.i, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %0, %struct.DLL** %tmp.11.i31.i
+ 	store %struct.DLL* %tmp.9.i30.i, %struct.DLL** %tmp.6.i.i
+ 	%tmp.18.i.i = load int* %tmp.9.i.i		; <int> [#uses=1]
+ 	%dec.i.i = add int %tmp.18.i.i, -1		; <int> [#uses=1]
+ 	store int %dec.i.i, int* %tmp.9.i.i
+ 	br label %list_pop_tail.entry.i
+ 
+ list_pop_tail.entry.i:		; preds = %no_exit.1.i, %endif.i.i
+ 	%tmp.3032.i = phi %struct.DLL* [ %tmp.6.i.i, %endif.i.i ], [ null, %no_exit.1.i ]		; <%struct.DLL*> [#uses=4]
+ 	%tmp.2.i27.i = load %struct.DLL** %tmp.46.i.i23		; <%struct.DLL*> [#uses=2]
+ 	%tmp.4.i.i = getelementptr %struct.DLL* %tmp.2.i27.i, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.3032.i, %struct.DLL** %tmp.4.i.i
+ 	%tmp.7.i.i = getelementptr %struct.DLL* %tmp.3032.i, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.2.i.i.sub69, %struct.DLL** %tmp.7.i.i
+ 	store %struct.DLL* %tmp.3032.i, %struct.DLL** %tmp.46.i.i23
+ 	%tmp.13.i.i = getelementptr %struct.DLL* %tmp.3032.i, long 0, uint 2		; <%struct.DLL**> [#uses=1]
+ 	store %struct.DLL* %tmp.2.i27.i, %struct.DLL** %tmp.13.i.i
+ 	%tmp.17.i.i = load int* %tmp.1.i.i.i31		; <int> [#uses=1]
+ 	%inc.i.i = add int %tmp.17.i.i, 1		; <int> [#uses=1]
+ 	store int %inc.i.i, int* %tmp.1.i.i.i31
+ 	%tmp.2.i.i3470.i = load int* %tmp.9.i.i		; <int> [#uses=1]
+ 	%tmp.2.i3571.i = seteq int %tmp.2.i.i3470.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i3571.i, label %loopexit.1.i.loopexit, label %no_exit.1.i
+ 
+ loopexit.1.i.loopexit:		; preds = %list_pop_tail.entry.i
+ 	br label %loopexit.1.i
+ 
+ loopexit.1.i:		; preds = %loopentry.1.i, %loopexit.1.i.loopexit
+ 	%tmp.2.i.i23.i = load int* %tmp.9.i.i		; <int> [#uses=1]
+ 	%tmp.2.i24.i = seteq int %tmp.2.i.i23.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i24.i, label %loopentry.i.i.preheader, label %then.2.i2
+ 
+ then.2.i2:		; preds = %loopexit.1.i
+ 	%tmp.36.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_7" )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ loopentry.i.i.preheader:		; preds = %loopexit.1.i
+ 	br label %loopentry.i.i
+ 
+ loopentry.i.i:		; preds = %loopentry.i.i.preheader, %loopentry.i.i
+ 	%p.0.i.i = phi %struct.DLL* [ %tmp.4.i.i, %loopentry.i.i ], [ %tmp.12.i.i.sub40, %loopentry.i.i.preheader ]		; <%struct.DLL*> [#uses=2]
+ 	%tmp.3.i20.i = getelementptr %struct.DLL* %p.0.i.i, long 0, uint 1		; <%struct.DLL**> [#uses=2]
+ 	%tmp.4.i.i = load %struct.DLL** %tmp.3.i20.i		; <%struct.DLL*> [#uses=3]
+ 	%tmp.8.i.i = getelementptr %struct.DLL* %p.0.i.i, long 0, uint 2		; <%struct.DLL**> [#uses=2]
+ 	%tmp.9.i.i = load %struct.DLL** %tmp.8.i.i		; <%struct.DLL*> [#uses=1]
+ 	store %struct.DLL* %tmp.9.i.i, %struct.DLL** %tmp.3.i20.i
+ 	store %struct.DLL* %tmp.4.i.i, %struct.DLL** %tmp.8.i.i
+ 	%tmp.16.i.i = seteq %struct.DLL* %tmp.4.i.i, %tmp.12.i.i.sub40		; <bool> [#uses=1]
+ 	br bool %tmp.16.i.i, label %list_reverse.entry.i, label %loopentry.i.i
+ 
+ list_reverse.entry.i:		; preds = %loopentry.i.i
+ 	%tmp.1.i18.i35 = getelementptr %struct.DLL* %ptr16, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.2.i19.i = load %struct.DLL** %tmp.1.i18.i35		; <%struct.DLL*> [#uses=1]
+ 	%tmp.41.i = getelementptr %struct.DLL* %tmp.2.i19.i, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.42.i = load int* %tmp.41.i		; <int> [#uses=2]
+ 	%tmp.43.i = seteq int %tmp.42.i, 100		; <bool> [#uses=1]
+ 	br bool %tmp.43.i, label %endif.3.i, label %then.3.i
+ 
+ then.3.i:		; preds = %list_reverse.entry.i
+ 	%tmp.45.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_8", int 100, int %tmp.42.i )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ endif.3.i:		; preds = %list_reverse.entry.i
+ 	%tmp.2.i15.i = load %struct.DLL** %tmp.53.i.i7		; <%struct.DLL*> [#uses=1]
+ 	%tmp.53.i = getelementptr %struct.DLL* %tmp.2.i15.i, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.54.i = load int* %tmp.53.i		; <int> [#uses=2]
+ 	%tmp.55.i = seteq int %tmp.54.i, 1		; <bool> [#uses=1]
+ 	br bool %tmp.55.i, label %endif.4.i, label %then.4.i
+ 
+ then.4.i:		; preds = %endif.3.i
+ 	%tmp.57.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_9", int 100, int %tmp.54.i )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ endif.4.i:		; preds = %endif.3.i
+ 	%tmp.1.i10.i37 = getelementptr %struct.DLL* %ptr122, long 0, uint 1		; <%struct.DLL**> [#uses=1]
+ 	%tmp.2.i11.i = load %struct.DLL** %tmp.1.i10.i37		; <%struct.DLL*> [#uses=1]
+ 	%tmp.65.i = getelementptr %struct.DLL* %tmp.2.i11.i, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.66.i = load int* %tmp.65.i		; <int> [#uses=2]
+ 	%tmp.67.i = seteq int %tmp.66.i, 100		; <bool> [#uses=1]
+ 	br bool %tmp.67.i, label %endif.5.i, label %then.5.i
+ 
+ then.5.i:		; preds = %endif.4.i
+ 	%tmp.69.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_10", int 100, int %tmp.66.i )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ endif.5.i:		; preds = %endif.4.i
+ 	%tmp.2.i7.i = load %struct.DLL** %tmp.46.i.i23		; <%struct.DLL*> [#uses=1]
+ 	%tmp.77.i = getelementptr %struct.DLL* %tmp.2.i7.i, long 0, uint 0		; <int*> [#uses=1]
+ 	%tmp.78.i = load int* %tmp.77.i		; <int> [#uses=2]
+ 	%tmp.79.i = seteq int %tmp.78.i, 1		; <bool> [#uses=1]
+ 	br bool %tmp.79.i, label %endif.6.i, label %then.6.i
+ 
+ then.6.i:		; preds = %endif.5.i
+ 	%tmp.81.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_9", int 100, int %tmp.78.i )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ endif.6.i:		; preds = %endif.5.i
+ 	%tmp.2.i5.i = load int* %tmp.83.i.i15		; <int> [#uses=3]
+ 	%tmp.89.i = seteq int %tmp.2.i5.i, 100		; <bool> [#uses=1]
+ 	br bool %tmp.89.i, label %endif.7.i, label %then.7.i
+ 
+ then.7.i:		; preds = %endif.6.i
+ 	%tmp.91.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_12", int 100, int %tmp.2.i5.i )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ endif.7.i:		; preds = %endif.6.i
+ 	%tmp.95.i = call int %list_equal( %struct.DLL* %tmp.12.i.i.sub40, %struct.DLL* %tmp.2.i.i.sub69 )		; <int> [#uses=1]
+ 	%tmp.98.i = seteq int %tmp.95.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.98.i, label %then.8.i, label %endif.8.i
+ 
+ then.8.i:		; preds = %endif.7.i
+ 	%tmp.100.i = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_13" )		; <int> [#uses=0]
+ 	call void %exit( int 1 )
+ 	br label %test_lists.entry
+ 
+ endif.8.i:		; preds = %endif.7.i
+ 	cast %struct.DLL* %tmp.12.i.i.sub40 to sbyte*		; <sbyte*>:3 [#uses=1]
+ 	call void %free( sbyte* %3 )
+ 	cast %struct.DLL* %tmp.2.i.i.sub69 to sbyte*		; <sbyte*>:4 [#uses=1]
+ 	call void %free( sbyte* %4 )
+ 	cast %struct.DLL* %0 to sbyte*		; <sbyte*>:5 [#uses=1]
+ 	call void %free( sbyte* %5 )
+ 	br label %test_lists.entry
+ 
+ test_lists.entry:		; preds = %then.0.i, %then.1.i1, %then.2.i2, %then.3.i, %then.4.i, %then.5.i, %then.6.i, %then.7.i, %then.8.i, %endif.8.i
+ 	%tmp.1213 = phi int [ 0, %then.0.i ], [ 0, %then.1.i1 ], [ 0, %then.2.i2 ], [ 0, %then.3.i ], [ 0, %then.4.i ], [ 0, %then.5.i ], [ 0, %then.6.i ], [ 0, %then.7.i ], [ 0, %then.8.i ], [ %tmp.2.i5.i, %endif.8.i ]		; <int> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=2]
+ 	%exitcond = seteq uint %indvar.next, %tmp.		; <bool> [#uses=1]
+ 	br bool %exitcond, label %loopexit.loopexit, label %no_exit
+ 
+ loopexit.loopexit:		; preds = %test_lists.entry
+ 	br label %loopexit
+ 
+ loopexit:		; preds = %cond_true, %loopexit.loopexit
+ 	%result.1.0.1 = phi int [ 0, %cond_true ], [ %tmp.1213, %loopexit.loopexit ]		; <int> [#uses=1]
+ 	"addrOfGlobal:.str_14" = getelementptr [4 x sbyte]* %.str_14, long 0		; <[4 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_14" = getelementptr [4 x sbyte]* "addrOfGlobal:.str_14", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.13 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_14", int %result.1.0.1 )		; <int> [#uses=0]
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %no_exit.i.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i.i
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/lists.main.trace9.txt
diff -c /dev/null reopt/test/TTFTestCases/lists.main.trace9.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/lists.main.trace9.txt	Wed Sep  8 16:34:21 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 6 45 


Index: reopt/test/TTFTestCases/methcall.ll
diff -c /dev/null reopt/test/TTFTestCases/methcall.ll:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/methcall.ll	Wed Sep  8 16:34:22 2004
***************
*** 0 ****
--- 1,282 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.NthToggle = type { sbyte, sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)*, int, int }
+ 	%struct.Toggle = type { sbyte, sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_1 = internal constant [6 x sbyte] c"true\0A\00"		; <[6 x sbyte]*> [#uses=2]
+ %.str_2 = internal constant [7 x sbyte] c"false\0A\00"		; <[7 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)*, %struct.NthToggle* (%struct.NthToggle*)*, int (int, sbyte**)* } { sbyte (%struct.Toggle*)* %toggle_value, %struct.Toggle* (%struct.Toggle*)* %toggle_activate, %struct.NthToggle* (%struct.NthToggle*)* %nth_toggle_activate, int (int, sbyte**)* %main }		; <{ sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)*, %struct.NthToggle* (%struct.NthToggle*)*, int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [4 x sbyte] c"\01\01\01\00"		; <[4 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 4		; <int*> [#uses=0]
+ %toggle_value.regAllocState = internal constant { uint, [4 x { int, int, uint, int }] } { uint 4, [4 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 0, int -1 }, { int, int, uint, int } { int 1, int -1, uint 1, int 15 }, { int, int, uint, int } { int 2, int -1, uint 0, int -1 } ] }		; <{ uint, [4 x { int, int, uint, int }] }*> [#uses=2]
+ %toggle_activate.regAllocState = internal constant { uint, [7 x { int, int, uint, int }] } { uint 7, [7 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 1, int 2 }, { int, int, uint, int } { int 1, int -1, uint 1, int 0 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 0, int -1 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 } ] }		; <{ uint, [7 x { int, int, uint, int }] }*> [#uses=2]
+ %nth_toggle_activate.regAllocState = internal constant { uint, [17 x { int, int, uint, int }] } { uint 17, [17 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 1, int 3 }, { int, int, uint, int } { int 1, int -1, uint 1, int 1 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 0, int -1 }, { int, int, uint, int } { int 5, int -1, uint 1, int 0 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 1 }, { int, int, uint, int } { int 9, int -1, uint 1, int 2 }, { int, int, uint, int } { int 10, int -1, uint 1, int 0 }, { int, int, uint, int } { int 11, int -1, uint 0, int -1 }, { int, int, uint, int } { int 12, int -1, uint 0, int -1 }, { int, int, uint, int } {!
  int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 } ] }		; <{ uint, [17 x { int, int, uint, int }] }*> [#uses=2]
+ %main.regAllocState = internal constant { uint, [150 x { int, int, uint, int }] } { uint 150, [150 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 3 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 1 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 0 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 1, int 14 }, { int, int, uint, int } { int 14, int -2, uint 1, int 0 }, { int, int, uint, int } { int 15, int -1, uint 1, int 0 }, { int, int, uint, int } { int 16, int -1, uint 1, int 0 }, { int, int, uint, int } { int 17, int -1, uint 1, int 0 }, { int, int, uint, int } { int 18, int -1, uint 1, int 13 }, { int, int, uint, int } { int 19, int -1, uint 1, int 11 }, { int, int, uint, int } { int 20, int -1, uint 1, int 7 }, { int, int, uint, int } { int 21, int -1, uint 0, int -1 }, { int, int, uint, int } { int 22, int -1, uint 0, int -1 }, { int, int, uint, int } { int 23, int -1, uint 1, int 9 }, { int, int, uint, int } { int 24, int -1, uint 0, int -1 }, { int, int, uint, int } { int 25, int -1, uint 1, int 15 }, { int, int, uint, int } { int 26, int -1, uint 1, int 16 }, { int, int, uint, int } { int 27, int -1, uint 0, int -1 }, { int, int, !
 uint, int } { int 28, int -1, uint 1, int 12 }, { int, int, uint, int 
} { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 1, int 8 }, { int, int, uint, int } { int 31, int -2, uint 1, int 8 }, { int, int, uint, int } { int 32, int -1, uint 1, int 10 }, { int, int, uint, int } { int 33, int -1, uint 1, int 6 }, { int, int, uint, int } { int 34, int -1, uint 1, int 6 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 1, int 6 }, { int, int, uint, int } { int 37, int -1, uint 1, int 0 }, { int, int, uint, int } { int 38, int -1, uint 1, int 10 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 1, int 8 }, { int, int, uint, int } { int 41, int -1, uint 0, int -1 }, { int, int, uint, int } { int 42, int -1, uint 0, int -1 }, { int, int, uint, int } { int 43, int -1, uint 1, int 0 }, { int, int, uint, int } { int 43, int -2, uint 1, int 0 }, !
 { int, int, uint, int } { int 44, int -1, uint 0, int -1 }, { int, int, uint, int } { int 45, int -1, uint 0, int -1 }, { int, int, uint, int } { int 46, int -1, uint 1, int 10 }, { int, int, uint, int } { int 47, int -1, uint 0, int -1 }, { int, int, uint, int } { int 48, int -1, uint 1, int 8 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 0, int -1 }, { int, int, uint, int } { int 51, int -1, uint 1, int 15 }, { int, int, uint, int } { int 51, int -2, uint 1, int 1 }, { int, int, uint, int } { int 52, int -1, uint 1, int 0 }, { int, int, uint, int } { int 53, int -1, uint 0, int -1 }, { int, int, uint, int } { int 54, int -1, uint 0, int -1 }, { int, int, uint, int } { int 55, int -1, uint 0, int -1 }, { int, int, uint, int } { int 56, int -1, uint 1, int 13 }, { int, int, uint, int } { int 56, int -2, uint 1, int 13 }, { int, int, uint, int } { int 57, int -1, uint 1, int 0 }, { int, int, uint, int } { int 58!
 , int -1, uint 0, int -1 }, { int, int, uint, int } { int 59, int -1, 
uint 1, int 17 }, { int, int, uint, int } { int 60, int -1, uint 0, int -1 }, { int, int, uint, int } { int 61, int -1, uint 1, int 0 }, { int, int, uint, int } { int 62, int -1, uint 1, int 0 }, { int, int, uint, int } { int 63, int -1, uint 1, int 0 }, { int, int, uint, int } { int 64, int -1, uint 1, int 17 }, { int, int, uint, int } { int 65, int -1, uint 0, int -1 }, { int, int, uint, int } { int 66, int -1, uint 1, int 13 }, { int, int, uint, int } { int 67, int -1, uint 0, int -1 }, { int, int, uint, int } { int 68, int -1, uint 0, int -1 }, { int, int, uint, int } { int 69, int -1, uint 1, int 0 }, { int, int, uint, int } { int 70, int -1, uint 0, int -1 }, { int, int, uint, int } { int 71, int -1, uint 1, int 0 }, { int, int, uint, int } { int 72, int -1, uint 1, int 0 }, { int, int, uint, int } { int 73, int -1, uint 1, int 0 }, { int, int, uint, int } { int 74, int -1, uint 1, int 0 }, { int, int, uint, int } { int 75, int -1, uint 1, int 15 }, { int, int, uint, i!
 nt } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int 78, int -1, uint 0, int -1 }, { int, int, uint, int } { int 79, int -1, uint 0, int -1 }, { int, int, uint, int } { int 80, int -1, uint 0, int -1 }, { int, int, uint, int } { int 81, int -1, uint 0, int -1 }, { int, int, uint, int } { int 82, int -1, uint 1, int 9 }, { int, int, uint, int } { int 83, int -1, uint 0, int -1 }, { int, int, uint, int } { int 84, int -1, uint 0, int -1 }, { int, int, uint, int } { int 85, int -1, uint 0, int -1 }, { int, int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uint, int } { int 87, int -1, uint 0, int -1 }, { int, int, uint, int } { int 88, int -1, uint 1, int 13 }, { int, int, uint, int } { int 89, int -1, uint 0, int -1 }, { int, int, uint, int } { int 90, int -1, uint 0, int -1 }, { int, int, uint, int } { int 91, int -1, uint 0, int -1 }, { int, int, uint, int } { int 92, int -1, uint 0!
 , int -1 }, { int, int, uint, int } { int 93, int -1, uint 1, int 11 }
, { int, int, uint, int } { int 93, int -2, uint 1, int 11 }, { int, int, uint, int } { int 94, int -1, uint 1, int 7 }, { int, int, uint, int } { int 95, int -1, uint 1, int 6 }, { int, int, uint, int } { int 96, int -1, uint 1, int 6 }, { int, int, uint, int } { int 97, int -1, uint 0, int -1 }, { int, int, uint, int } { int 98, int -1, uint 1, int 6 }, { int, int, uint, int } { int 99, int -1, uint 1, int 0 }, { int, int, uint, int } { int 100, int -1, uint 1, int 7 }, { int, int, uint, int } { int 101, int -1, uint 0, int -1 }, { int, int, uint, int } { int 102, int -1, uint 1, int 11 }, { int, int, uint, int } { int 103, int -1, uint 0, int -1 }, { int, int, uint, int } { int 104, int -1, uint 0, int -1 }, { int, int, uint, int } { int 105, int -1, uint 1, int 0 }, { int, int, uint, int } { int 105, int -2, uint 1, int 0 }, { int, int, uint, int } { int 106, int -1, uint 0, int -1 }, { int, int, uint, int } { int 107, int -1, uint 0, int -1 }, { int, int, uint, int } { !
 int 108, int -1, uint 0, int -1 }, { int, int, uint, int } { int 109, int -1, uint 1, int 11 }, { int, int, uint, int } { int 109, int -2, uint 1, int 11 }, { int, int, uint, int } { int 110, int -1, uint 1, int 0 }, { int, int, uint, int } { int 111, int -1, uint 0, int -1 }, { int, int, uint, int } { int 112, int -1, uint 0, int -1 }, { int, int, uint, int } { int 113, int -1, uint 0, int -1 }, { int, int, uint, int } { int 114, int -1, uint 1, int 8 }, { int, int, uint, int } { int 114, int -2, uint 1, int 8 }, { int, int, uint, int } { int 115, int -1, uint 1, int 0 }, { int, int, uint, int } { int 116, int -1, uint 0, int -1 }, { int, int, uint, int } { int 117, int -1, uint 1, int 7 }, { int, int, uint, int } { int 118, int -1, uint 0, int -1 }, { int, int, uint, int } { int 119, int -1, uint 1, int 0 }, { int, int, uint, int } { int 120, int -1, uint 1, int 0 }, { int, int, uint, int } { int 121, int -1, uint 1, int 0 }, { int, int, uint, int } { int 122, int -1, uin!
 t 1, int 7 }, { int, int, uint, int } { int 123, int -1, uint 0, int -
1 }, { int, int, uint, int } { int 124, int -1, uint 1, int 8 }, { int, int, uint, int } { int 125, int -1, uint 0, int -1 }, { int, int, uint, int } { int 126, int -1, uint 0, int -1 }, { int, int, uint, int } { int 127, int -1, uint 1, int 0 }, { int, int, uint, int } { int 128, int -1, uint 1, int 0 }, { int, int, uint, int } { int 129, int -1, uint 0, int -1 }, { int, int, uint, int } { int 130, int -1, uint 0, int -1 }, { int, int, uint, int } { int 131, int -1, uint 0, int -1 }, { int, int, uint, int } { int 132, int -1, uint 0, int -1 }, { int, int, uint, int } { int 133, int -1, uint 0, int -1 }, { int, int, uint, int } { int 134, int -1, uint 0, int -1 }, { int, int, uint, int } { int 135, int -1, uint 0, int -1 }, { int, int, uint, int } { int 136, int -1, uint 0, int -1 }, { int, int, uint, int } { int 137, int -1, uint 0, int -1 }, { int, int, uint, int } { int 138, int -1, uint 0, int -1 } ] }		; <{ uint, [150 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [4 x { uint, [0 x { int, int, uint, int }] }*] } { uint 4, [4 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [4 x { int, int, uint, int }] }* %toggle_value.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [7 x { int, int, uint, int }] }* %toggle_activate.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [17 x { int, int, uint, int }] }* %nth_toggle_activate.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [150 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [4 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [27 x sbyte*] } { uint 27, [27 x sbyte*] [ sbyte* cast ([6 x sbyte]* %.str_1 to sbyte*), sbyte* cast ([7 x sbyte]* %.str_2 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [4 x { int, int, uint, int }] }* %toggle_value.regAllocState to sbyte*), sbyte* cast ({ uint, [7 x { int, int, uint, int }] }* %toggle_activate.regAllocState to sbyte*), sbyte* cast ({ uint, [17 x { int, int, uint, int }] }* %nth_toggle_activate.regAllocState to sbyte*), sbyte* cast ({ uint, [150 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* cast (sbyte (%struct.Toggle*)* %toggle_value to sbyte*), sbyte* cast (%struct.Toggle* (%struct.Toggle*)* %toggle_activate to sbyte*), sbyte* cast (%struct.NthToggle* (%struct.NthToggle*)* %nth_toggle_activate to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* nul!
 l, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [27 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ internal sbyte %toggle_value(%struct.Toggle* %this) {
+ entry:
+ 	%tmp.1 = getelementptr %struct.Toggle* %this, long 0, uint 0		; <sbyte*> [#uses=1]
+ 	%tmp.2 = load sbyte* %tmp.1		; <sbyte> [#uses=1]
+ 	ret sbyte %tmp.2
+ }
+ 
+ internal %struct.Toggle* %toggle_activate(%struct.Toggle* %this) {
+ entry:
+ 	%tmp.1 = getelementptr %struct.Toggle* %this, long 0, uint 0		; <sbyte*> [#uses=2]
+ 	%tmp.4 = load sbyte* %tmp.1		; <sbyte> [#uses=1]
+ 	%tmp.5 = seteq sbyte %tmp.4, 0		; <bool> [#uses=1]
+ 	%tmp.6 = cast bool %tmp.5 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %tmp.6, sbyte* %tmp.1
+ 	ret %struct.Toggle* %this
+ }
+ 
+ internal %struct.NthToggle* %nth_toggle_activate(%struct.NthToggle* %this) {
+ entry:
+ 	%tmp.1 = getelementptr %struct.NthToggle* %this, long 0, uint 4		; <int*> [#uses=3]
+ 	%tmp.2 = load int* %tmp.1		; <int> [#uses=1]
+ 	%inc = add int %tmp.2, 1		; <int> [#uses=2]
+ 	store int %inc, int* %tmp.1
+ 	%tmp.4 = getelementptr %struct.NthToggle* %this, long 0, uint 3		; <int*> [#uses=1]
+ 	%tmp.5 = load int* %tmp.4		; <int> [#uses=1]
+ 	%tmp.6 = setlt int %inc, %tmp.5		; <bool> [#uses=1]
+ 	br bool %tmp.6, label %UnifiedReturnBlock, label %then
+ 
+ then:		; preds = %entry
+ 	%tmp.9 = getelementptr %struct.NthToggle* %this, long 0, uint 0		; <sbyte*> [#uses=2]
+ 	%tmp.12 = load sbyte* %tmp.9		; <sbyte> [#uses=1]
+ 	%tmp.13 = seteq sbyte %tmp.12, 0		; <bool> [#uses=1]
+ 	%tmp.14 = cast bool %tmp.13 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %tmp.14, sbyte* %tmp.9
+ 	store int 0, int* %tmp.1
+ 	ret %struct.NthToggle* %this
+ 
+ UnifiedReturnBlock:		; preds = %entry
+ 	ret %struct.NthToggle* %this
+ }
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	%copyConst = cast int 500000000 to int		; <int> [#uses=1]
+ 	br bool %tmp.1, label %cond_true.0, label %cond_continue.0
+ 
+ cond_true.0:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=1]
+ 	br label %cond_continue.0
+ 
+ cond_continue.0:		; preds = %__main.entry, %cond_true.0
+ 	%mem_tmp.0.0 = phi int [ %tmp.3, %cond_true.0 ], [ %copyConst, %__main.entry ]		; <int> [#uses=3]
+ 	"constantGEP:" = getelementptr %struct.Toggle* null, uint 1		; <%struct.Toggle*> [#uses=1]
+ 	%constantCast = cast %struct.Toggle* "constantGEP:" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to %struct.Toggle*		; <%struct.Toggle*>:0 [#uses=5]
+ 	%tmp.1.i.i = getelementptr %struct.Toggle* %0, long 0, uint 0		; <sbyte*> [#uses=2]
+ 	%copyConst = cast sbyte 1 to sbyte		; <sbyte> [#uses=2]
+ 	store sbyte %copyConst, sbyte* %tmp.1.i.i
+ 	%tmp.4.i.i = getelementptr %struct.Toggle* %0, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%copyConst = cast sbyte (%struct.Toggle*)* %toggle_value to sbyte (%struct.Toggle*)*		; <sbyte (%struct.Toggle*)*> [#uses=2]
+ 	store sbyte (%struct.Toggle*)* %copyConst, sbyte (%struct.Toggle*)** %tmp.4.i.i
+ 	%tmp.6.i.i = getelementptr %struct.Toggle* %0, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=2]
+ 	%copyConst = cast %struct.Toggle* (%struct.Toggle*)* %toggle_activate to %struct.Toggle* (%struct.Toggle*)*		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=2]
+ 	store %struct.Toggle* (%struct.Toggle*)* %copyConst, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i
+ 	%tmp.117 = setgt int %mem_tmp.0.0, 0		; <bool> [#uses=2]
+ 	br bool %tmp.117, label %no_exit.0.preheader, label %loopexit.0
+ 
+ no_exit.0.preheader:		; preds = %cond_continue.0
+ 	br label %no_exit.0
+ 
+ no_exit.0:		; preds = %no_exit.0.preheader, %backEdgeInst
+ 	%indvar = phi uint [ %indvar.next, %backEdgeInst ], [ 0, %no_exit.0.preheader ]		; <uint> [#uses=2]
+ 	%i.1.0 = cast uint %indvar to int		; <int> [#uses=1]
+ 	%tmp.15 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.16 = call %struct.Toggle* %tmp.15( %struct.Toggle* %0 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.18 = getelementptr %struct.Toggle* %tmp.16, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.19 = load sbyte (%struct.Toggle*)** %tmp.18		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.20 = call sbyte %tmp.19( %struct.Toggle* %0 )		; <sbyte> [#uses=1]
+ 	%inc.0 = add int %i.1.0, 1		; <int> [#uses=1]
+ 	%tmp.11 = setlt int %inc.0, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=1]
+ 	br bool %tmp.11, label %backEdgeInst, label %loopexit.0.loopexit
+ 
+ loopexit.0.loopexit:		; preds = %no_exit.0
+ 	br label %loopexit.0
+ 
+ loopexit.0:		; preds = %cond_continue.0, %loopexit.0.loopexit
+ 	%val.1.1 = phi sbyte [ 1, %cond_continue.0 ], [ %tmp.20, %loopexit.0.loopexit ]		; <sbyte> [#uses=1]
+ 	%tmp.25 = setne sbyte %val.1.1, 0		; <bool> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [6 x sbyte]* %.str_1, long 0		; <[6 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [6 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=2]
+ 	"addrOfGlobal:.str_2" = getelementptr [7 x sbyte]* %.str_2, long 0		; <[7 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_2" = getelementptr [7 x sbyte]* "addrOfGlobal:.str_2", long 0, long 0		; <sbyte*> [#uses=2]
+ 	br bool %tmp.25, label %loopexit.0.selecttrue, label %loopexit.0.selectcont
+ 
+ loopexit.0.selecttrue:		; preds = %loopexit.0
+ 	br label %loopexit.0.selectcont
+ 
+ loopexit.0.selectcont:		; preds = %loopexit.0, %loopexit.0.selecttrue
+ 	%mem_tmp.1.0 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %loopexit.0.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %loopexit.0 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i4 = load sbyte* %mem_tmp.1.0		; <sbyte> [#uses=1]
+ 	%tmp.36.i5 = seteq sbyte %tmp.25.i4, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i5, label %puts.entry26, label %no_exit.i6.preheader
+ 
+ no_exit.i6.preheader:		; preds = %loopexit.0.selectcont
+ 	br label %no_exit.i6
+ 
+ no_exit.i6:		; preds = %no_exit.i6.preheader, %backEdgeInst1
+ 	%indvar.i7 = phi ulong [ %indvar.next.i17, %backEdgeInst1 ], [ 0, %no_exit.i6.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i8 = cast ulong %indvar.i7 to long		; <long> [#uses=2]
+ 	%Str.0.0.i9 = getelementptr sbyte* %mem_tmp.1.0, long %Str.0.0.rec.i8		; <sbyte*> [#uses=1]
+ 	%inc.rec.i10 = add long %Str.0.0.rec.i8, 1		; <long> [#uses=1]
+ 	%inc.i11 = getelementptr sbyte* %mem_tmp.1.0, long %inc.rec.i10		; <sbyte*> [#uses=1]
+ 	%tmp.7.i12 = load sbyte* %Str.0.0.i9		; <sbyte> [#uses=1]
+ 	%tmp.8.i13 = cast sbyte %tmp.7.i12 to int		; <int> [#uses=1]
+ 	%tmp.5.i14 = call int %putchar( int %tmp.8.i13 )		; <int> [#uses=0]
+ 	%tmp.2.i15 = load sbyte* %inc.i11		; <sbyte> [#uses=1]
+ 	%tmp.3.i16 = seteq sbyte %tmp.2.i15, 0		; <bool> [#uses=1]
+ 	%indvar.next.i17 = add ulong %indvar.i7, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i16, label %puts.entry26.loopexit, label %backEdgeInst1
+ 
+ puts.entry26.loopexit:		; preds = %no_exit.i6
+ 	br label %puts.entry26
+ 
+ puts.entry26:		; preds = %loopexit.0.selectcont, %puts.entry26.loopexit
+ 	%tmp.9.i19 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	call void %free( sbyte* %tmp.1.i.i )
+ 	"constantGEP:" = getelementptr [32 x sbyte]* null, uint 1		; <[32 x sbyte]*> [#uses=1]
+ 	%constantCast2 = cast [32 x sbyte]* "constantGEP:" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast2 )		; <sbyte*>:1 [#uses=1]
+ 	cast sbyte* %1 to [32 x sbyte]*		; <[32 x sbyte]*>:0 [#uses=2]
+ 	%tmp.4.i = cast [32 x sbyte]* %0 to %struct.Toggle*		; <%struct.Toggle*> [#uses=5]
+ 	%tmp.1.i.i2 = getelementptr %struct.Toggle* %tmp.4.i, long 0, uint 0		; <sbyte*> [#uses=1]
+ 	store sbyte %copyConst, sbyte* %tmp.1.i.i2
+ 	%tmp.4.i.i3 = getelementptr %struct.Toggle* %tmp.4.i, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	store sbyte (%struct.Toggle*)* %copyConst, sbyte (%struct.Toggle*)** %tmp.4.i.i3
+ 	%tmp.6.i.i4 = getelementptr %struct.Toggle* %tmp.4.i, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=1]
+ 	store %struct.Toggle* (%struct.Toggle*)* %copyConst, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i4
+ 	%tmp.6.i = cast [32 x sbyte]* %0 to %struct.NthToggle*		; <%struct.NthToggle*> [#uses=4]
+ 	%tmp.1.i.i = getelementptr %struct.NthToggle* %tmp.6.i, long 0, uint 3		; <int*> [#uses=1]
+ 	%copyConst6 = cast int 3 to int		; <int> [#uses=1]
+ 	store int %copyConst6, int* %tmp.1.i.i
+ 	%tmp.4.i.i = getelementptr %struct.NthToggle* %tmp.6.i, long 0, uint 4		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.4.i.i
+ 	%tmp.6.i1.i = getelementptr %struct.NthToggle* %tmp.6.i, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=2]
+ 	%constantCast = cast %struct.NthToggle* (%struct.NthToggle*)* %nth_toggle_activate to %struct.Toggle* (%struct.Toggle*)*		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	store %struct.Toggle* (%struct.Toggle*)* %constantCast, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i1.i
+ 	br bool %tmp.117, label %no_exit.1.preheader, label %loopexit.1
+ 
+ no_exit.1.preheader:		; preds = %puts.entry26
+ 	br label %no_exit.1
+ 
+ no_exit.1:		; preds = %no_exit.1.preheader, %backEdgeInst2
+ 	%indvar11 = phi uint [ %indvar.next12, %backEdgeInst2 ], [ 0, %no_exit.1.preheader ]		; <uint> [#uses=2]
+ 	%i.0.0 = cast uint %indvar11 to int		; <int> [#uses=1]
+ 	%tmp.40 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i1.i		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.41 = call %struct.Toggle* %tmp.40( %struct.Toggle* %tmp.4.i )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.44 = getelementptr %struct.Toggle* %tmp.41, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.45 = load sbyte (%struct.Toggle*)** %tmp.44		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.46 = call sbyte %tmp.45( %struct.Toggle* %tmp.4.i )		; <sbyte> [#uses=1]
+ 	%inc.1 = add int %i.0.0, 1		; <int> [#uses=1]
+ 	%tmp.36 = setlt int %inc.1, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next12 = add uint %indvar11, 1		; <uint> [#uses=1]
+ 	br bool %tmp.36, label %backEdgeInst2, label %loopexit.1.loopexit
+ 
+ loopexit.1.loopexit:		; preds = %no_exit.1
+ 	br label %loopexit.1
+ 
+ loopexit.1:		; preds = %puts.entry26, %loopexit.1.loopexit
+ 	%val.0.1 = phi sbyte [ 1, %puts.entry26 ], [ %tmp.46, %loopexit.1.loopexit ]		; <sbyte> [#uses=1]
+ 	%tmp.52 = setne sbyte %val.0.1, 0		; <bool> [#uses=1]
+ 	br bool %tmp.52, label %loopexit.1.selecttrue, label %loopexit.1.selectcont
+ 
+ loopexit.1.selecttrue:		; preds = %loopexit.1
+ 	br label %loopexit.1.selectcont
+ 
+ loopexit.1.selectcont:		; preds = %loopexit.1, %loopexit.1.selecttrue
+ 	%mem_tmp.2.0 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %loopexit.1.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %loopexit.1 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i = load sbyte* %mem_tmp.2.0		; <sbyte> [#uses=1]
+ 	%tmp.36.i = seteq sbyte %tmp.25.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i, label %puts.entry, label %no_exit.i1.preheader
+ 
+ no_exit.i1.preheader:		; preds = %loopexit.1.selectcont
+ 	br label %no_exit.i1
+ 
+ no_exit.i1:		; preds = %no_exit.i1.preheader, %backEdgeInst3
+ 	%indvar.i2 = phi ulong [ %indvar.next.i3, %backEdgeInst3 ], [ 0, %no_exit.i1.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i = cast ulong %indvar.i2 to long		; <long> [#uses=2]
+ 	%Str.0.0.i = getelementptr sbyte* %mem_tmp.2.0, long %Str.0.0.rec.i		; <sbyte*> [#uses=1]
+ 	%inc.rec.i = add long %Str.0.0.rec.i, 1		; <long> [#uses=1]
+ 	%inc.i = getelementptr sbyte* %mem_tmp.2.0, long %inc.rec.i		; <sbyte*> [#uses=1]
+ 	%tmp.7.i = load sbyte* %Str.0.0.i		; <sbyte> [#uses=1]
+ 	%tmp.8.i = cast sbyte %tmp.7.i to int		; <int> [#uses=1]
+ 	%tmp.5.i = call int %putchar( int %tmp.8.i )		; <int> [#uses=0]
+ 	%tmp.2.i = load sbyte* %inc.i		; <sbyte> [#uses=1]
+ 	%tmp.3.i = seteq sbyte %tmp.2.i, 0		; <bool> [#uses=1]
+ 	%indvar.next.i3 = add ulong %indvar.i2, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i, label %puts.entry.loopexit, label %backEdgeInst3
+ 
+ puts.entry.loopexit:		; preds = %no_exit.i1
+ 	br label %puts.entry
+ 
+ puts.entry:		; preds = %loopexit.1.selectcont, %puts.entry.loopexit
+ 	%tmp.9.i = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.58 = getelementptr %struct.NthToggle* %tmp.6.i, long 0, uint 0		; <sbyte*> [#uses=1]
+ 	call void %free( sbyte* %tmp.58 )
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %no_exit.0
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.0
+ 
+ backEdgeInst1:		; preds = %no_exit.i6
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i6
+ 
+ backEdgeInst2:		; preds = %no_exit.1
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.1
+ 
+ backEdgeInst3:		; preds = %no_exit.i1
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i1
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %putchar(int)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/methcall.main.trace10.txt
diff -c /dev/null reopt/test/TTFTestCases/methcall.main.trace10.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/methcall.main.trace10.txt	Wed Sep  8 16:34:22 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 6 25 


Index: reopt/test/TTFTestCases/methcall.main.trace11.txt
diff -c /dev/null reopt/test/TTFTestCases/methcall.main.trace11.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/methcall.main.trace11.txt	Wed Sep  8 16:34:22 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 16 27 


Index: reopt/test/TTFTestCases/nestedloop.ll
diff -c /dev/null reopt/test/TTFTestCases/nestedloop.ll:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/nestedloop.ll	Wed Sep  8 16:34:22 2004
***************
*** 0 ****
--- 1,202 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_1 = internal constant [4 x sbyte] c"%d\0A\00"		; <[4 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (int, sbyte**)* } { int (int, sbyte**)* %main }		; <{ int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [1 x sbyte] zeroinitializer		; <[1 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 1		; <int*> [#uses=0]
+ %main.regAllocState = internal constant { uint, [121 x { int, int, uint, int }] } { uint 121, [121 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 2 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 3 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 1, int 0 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int!
  -1, uint 0, int -1 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 1, int 7 }, { int, int, uint, int } { int 14, int -2, uint 1, int 7 }, { int, int, uint, int } { int 15, int -1, uint 1, int 8 }, { int, int, uint, int } { int 15, int -2, uint 1, int 8 }, { int, int, uint, int } { int 16, int -1, uint 1, int 14 }, { int, int, uint, int } { int 16, int -2, uint 1, int 14 }, { int, int, uint, int } { int 17, int -1, uint 0, int -1 }, { int, int, uint, int } { int 18, int -1, uint 0, int -1 }, { int, int, uint, int } { int 19, int -1, uint 1, int 13 }, { int, int, uint, int } { int 19, int -2, uint 1, int 7 }, { int, int, uint, int } { int 20, int -1, uint 1, int 9 }, { int, int, uint, int } { int 20, int -2, uint 1, int 8 }, { int, int, uint, int } { int 21, int -1, uint 1, int 14 }, { int, int, uint, int } { int 21, int -2, uint 1, int 14 }, { int, int, uint, int } { int 22, int -1, uint 1, int 7 }, { int, int, u!
 int, int } { int 23, int -1, uint 0, int -1 }, { int, int, uint, int }
 { int 24, int -1, uint 0, int -1 }, { int, int, uint, int } { int 25, int -1, uint 1, int 19 }, { int, int, uint, int } { int 25, int -2, uint 1, int 8 }, { int, int, uint, int } { int 26, int -1, uint 1, int 14 }, { int, int, uint, int } { int 26, int -2, uint 1, int 14 }, { int, int, uint, int } { int 27, int -1, uint 1, int 16 }, { int, int, uint, int } { int 28, int -1, uint 0, int -1 }, { int, int, uint, int } { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 1, int 8 }, { int, int, uint, int } { int 30, int -2, uint 1, int 8 }, { int, int, uint, int } { int 31, int -1, uint 1, int 14 }, { int, int, uint, int } { int 31, int -2, uint 1, int 14 }, { int, int, uint, int } { int 32, int -1, uint 1, int 18 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 1, int 15 }, { int, int, uint, int } { int 35, int -2, uint 1, int 1!
 5 }, { int, int, uint, int } { int 36, int -1, uint 1, int 14 }, { int, int, uint, int } { int 36, int -2, uint 1, int 14 }, { int, int, uint, int } { int 37, int -1, uint 1, int 12 }, { int, int, uint, int } { int 38, int -1, uint 0, int -1 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 1, int 11 }, { int, int, uint, int } { int 40, int -2, uint 1, int 11 }, { int, int, uint, int } { int 41, int -1, uint 1, int 14 }, { int, int, uint, int } { int 41, int -2, uint 1, int 14 }, { int, int, uint, int } { int 42, int -1, uint 1, int 17 }, { int, int, uint, int } { int 43, int -1, uint 0, int -1 }, { int, int, uint, int } { int 44, int -1, uint 0, int -1 }, { int, int, uint, int } { int 45, int -1, uint 1, int 10 }, { int, int, uint, int } { int 45, int -2, uint 1, int 10 }, { int, int, uint, int } { int 46, int -1, uint 1, int 0 }, { int, int, uint, int } { int 47, int -1, uint 1, int 1 }, { int, int, uint, int } {!
  int 48, int -1, uint 0, int -1 }, { int, int, uint, int } { int 49, i
nt -1, uint 1, int 10 }, { int, int, uint, int } { int 50, int -1, uint 0, int -1 }, { int, int, uint, int } { int 51, int -1, uint 1, int 14 }, { int, int, uint, int } { int 52, int -1, uint 1, int 14 }, { int, int, uint, int } { int 53, int -1, uint 0, int -1 }, { int, int, uint, int } { int 54, int -1, uint 1, int 10 }, { int, int, uint, int } { int 54, int -2, uint 1, int 10 }, { int, int, uint, int } { int 55, int -1, uint 1, int 17 }, { int, int, uint, int } { int 56, int -1, uint 0, int -1 }, { int, int, uint, int } { int 57, int -1, uint 1, int 11 }, { int, int, uint, int } { int 58, int -1, uint 0, int -1 }, { int, int, uint, int } { int 59, int -1, uint 0, int -1 }, { int, int, uint, int } { int 60, int -1, uint 1, int 10 }, { int, int, uint, int } { int 60, int -2, uint 1, int 10 }, { int, int, uint, int } { int 61, int -1, uint 1, int 12 }, { int, int, uint, int } { int 62, int -1, uint 0, int -1 }, { int, int, uint, int } { int 63, int -1, uint 1, int 15 }, { in!
 t, int, uint, int } { int 64, int -1, uint 0, int -1 }, { int, int, uint, int } { int 65, int -1, uint 0, int -1 }, { int, int, uint, int } { int 66, int -1, uint 1, int 10 }, { int, int, uint, int } { int 66, int -2, uint 1, int 10 }, { int, int, uint, int } { int 67, int -1, uint 1, int 0 }, { int, int, uint, int } { int 68, int -1, uint 0, int -1 }, { int, int, uint, int } { int 69, int -1, uint 1, int 8 }, { int, int, uint, int } { int 70, int -1, uint 0, int -1 }, { int, int, uint, int } { int 71, int -1, uint 0, int -1 }, { int, int, uint, int } { int 72, int -1, uint 1, int 10 }, { int, int, uint, int } { int 72, int -2, uint 1, int 10 }, { int, int, uint, int } { int 73, int -1, uint 1, int 0 }, { int, int, uint, int } { int 74, int -1, uint 0, int -1 }, { int, int, uint, int } { int 75, int -1, uint 1, int 8 }, { int, int, uint, int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int 78, in!
 t -1, uint 1, int 10 }, { int, int, uint, int } { int 78, int -2, uint
 1, int 10 }, { int, int, uint, int } { int 79, int -1, uint 1, int 8 }, { int, int, uint, int } { int 80, int -1, uint 0, int -1 }, { int, int, uint, int } { int 81, int -1, uint 1, int 1 }, { int, int, uint, int } { int 81, int -2, uint 1, int 1 }, { int, int, uint, int } { int 82, int -1, uint 0, int -1 }, { int, int, uint, int } { int 83, int -1, uint 1, int 0 }, { int, int, uint, int } { int 84, int -1, uint 1, int 0 }, { int, int, uint, int } { int 85, int -1, uint 0, int -1 }, { int, int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uint, int } { int 87, int -1, uint 0, int -1 }, { int, int, uint, int } { int 88, int -1, uint 0, int -1 }, { int, int, uint, int } { int 89, int -1, uint 0, int -1 }, { int, int, uint, int } { int 90, int -1, uint 0, int -1 }, { int, int, uint, int } { int 91, int -1, uint 0, int -1 }, { int, int, uint, int } { int 92, int -1, uint 0, int -1 }, { int, int, uint, int } { int 93, int -1, uint 0, int -1 }, { int, int, uint, in!
 t } { int 94, int -1, uint 0, int -1 }, { int, int, uint, int } { int 95, int -1, uint 0, int -1 }, { int, int, uint, int } { int 96, int -1, uint 0, int -1 }, { int, int, uint, int } { int 97, int -1, uint 0, int -1 } ] }		; <{ uint, [121 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [1 x { uint, [0 x { int, int, uint, int }] }*] } { uint 1, [1 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [121 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [1 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [20 x sbyte*] } { uint 20, [20 x sbyte*] [ sbyte* cast ([4 x sbyte]* %.str_1 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [121 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [20 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %loopentry.0
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=2]
+ 	%tmp.1011 = setgt int %tmp.3, 0		; <bool> [#uses=1]
+ 	br bool %tmp.1011, label %loopentry.1, label %loopexit.0
+ 
+ loopentry.0:		; preds = %__main.entry, %loopexit.1
+ 	%mem_tmp.0 = phi int [ 46, %__main.entry ], [ %mem_tmp.0.0, %loopexit.1 ]		; <int> [#uses=2]
+ 	%a.0 = phi int [ %inc.6, %loopexit.1 ], [ 0, %__main.entry ]		; <int> [#uses=2]
+ 	%x.5 = phi int [ %x.4.1, %loopexit.1 ], [ 0, %__main.entry ]		; <int> [#uses=2]
+ 	%tmp.10 = setlt int %a.0, %mem_tmp.0		; <bool> [#uses=1]
+ 	br bool %tmp.10, label %backEdgeInst, label %loopexit.0
+ 
+ loopentry.1:		; preds = %cond_true, %backEdgeInst
+ 	%mem_tmp.0.0 = phi int [ %tmp.3, %cond_true ], [ %mem_tmp.0, %backEdgeInst ]		; <int> [#uses=7]
+ 	%a.0.0 = phi int [ 0, %cond_true ], [ %a.0, %backEdgeInst ]		; <int> [#uses=1]
+ 	%x.4 = phi int [ %x.5, %backEdgeInst ], [ 0, %cond_true ]		; <int> [#uses=2]
+ 	%tmp.14 = setgt int %mem_tmp.0.0, 0		; <bool> [#uses=5]
+ 	br bool %tmp.14, label %loopentry.2.preheader, label %loopexit.1
+ 
+ loopentry.2.preheader:		; preds = %loopentry.1
+ 	br label %loopentry.2
+ 
+ loopentry.2:		; preds = %loopentry.2.preheader, %backEdgeInst1
+ 	%indvar54 = phi uint [ %indvar.next55, %backEdgeInst1 ], [ 0, %loopentry.2.preheader ]		; <uint> [#uses=2]
+ 	%x.4.0 = phi int [ %x.3.1, %backEdgeInst1 ], [ %x.4, %loopentry.2.preheader ]		; <int> [#uses=2]
+ 	%b.0.0 = cast uint %indvar54 to int		; <int> [#uses=1]
+ 	br bool %tmp.14, label %loopentry.3.preheader, label %loopexit.2
+ 
+ loopentry.3.preheader:		; preds = %loopentry.2
+ 	br label %loopentry.3
+ 
+ loopentry.3:		; preds = %loopentry.3.preheader, %backEdgeInst2
+ 	%indvar52 = phi uint [ %indvar.next53, %backEdgeInst2 ], [ 0, %loopentry.3.preheader ]		; <uint> [#uses=2]
+ 	%x.3.0 = phi int [ %x.2.1, %backEdgeInst2 ], [ %x.4.0, %loopentry.3.preheader ]		; <int> [#uses=2]
+ 	%c.0.0 = cast uint %indvar52 to int		; <int> [#uses=1]
+ 	br bool %tmp.14, label %loopentry.4.preheader, label %loopexit.3
+ 
+ loopentry.4.preheader:		; preds = %loopentry.3
+ 	br label %loopentry.4
+ 
+ loopentry.4:		; preds = %loopentry.4.preheader, %backEdgeInst3
+ 	%indvar50 = phi uint [ %indvar.next51, %backEdgeInst3 ], [ 0, %loopentry.4.preheader ]		; <uint> [#uses=2]
+ 	%x.2.0 = phi int [ %x.1.1, %backEdgeInst3 ], [ %x.3.0, %loopentry.4.preheader ]		; <int> [#uses=2]
+ 	%d.0.0 = cast uint %indvar50 to int		; <int> [#uses=1]
+ 	br bool %tmp.14, label %loopentry.5.preheader, label %loopexit.4
+ 
+ loopentry.5.preheader:		; preds = %loopentry.4
+ 	br label %loopentry.5
+ 
+ loopentry.5:		; preds = %loopentry.5.preheader, %backEdgeInst4
+ 	%indvar48 = phi uint [ %indvar.next49, %backEdgeInst4 ], [ 0, %loopentry.5.preheader ]		; <uint> [#uses=2]
+ 	%x.1.0 = phi int [ %x.0.1, %backEdgeInst4 ], [ %x.2.0, %loopentry.5.preheader ]		; <int> [#uses=2]
+ 	%e.0.0 = cast uint %indvar48 to int		; <int> [#uses=1]
+ 	br bool %tmp.14, label %no_exit.5.preheader, label %loopexit.5
+ 
+ no_exit.5.preheader:		; preds = %loopentry.5
+ 	br label %no_exit.5
+ 
+ no_exit.5:		; preds = %no_exit.5.preheader, %backEdgeInst5
+ 	%indvar = phi uint [ %indvar.next, %backEdgeInst5 ], [ 0, %no_exit.5.preheader ]		; <uint> [#uses=2]
+ 	%f.0.0 = cast uint %indvar to int		; <int> [#uses=2]
+ 	%inc.1 = add int %f.0.0, 1		; <int> [#uses=1]
+ 	%tmp.3018 = setlt int %inc.1, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=1]
+ 	br bool %tmp.3018, label %backEdgeInst5, label %loopexit.5.loopexit
+ 
+ loopexit.5.loopexit:		; preds = %no_exit.5
+ 	%x.0.0 = add int %x.1.0, 1		; <int> [#uses=1]
+ 	%inc.0 = add int %x.0.0, %f.0.0		; <int> [#uses=1]
+ 	br label %loopexit.5
+ 
+ loopexit.5:		; preds = %loopentry.5, %loopexit.5.loopexit
+ 	%x.0.1 = phi int [ %x.1.0, %loopentry.5 ], [ %inc.0, %loopexit.5.loopexit ]		; <int> [#uses=2]
+ 	%inc.2 = add int %e.0.0, 1		; <int> [#uses=1]
+ 	%tmp.2624 = setlt int %inc.2, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next49 = add uint %indvar48, 1		; <uint> [#uses=1]
+ 	br bool %tmp.2624, label %backEdgeInst4, label %loopexit.4.loopexit
+ 
+ loopexit.4.loopexit:		; preds = %loopexit.5
+ 	br label %loopexit.4
+ 
+ loopexit.4:		; preds = %loopentry.4, %loopexit.4.loopexit
+ 	%x.1.1 = phi int [ %x.2.0, %loopentry.4 ], [ %x.0.1, %loopexit.4.loopexit ]		; <int> [#uses=2]
+ 	%inc.3 = add int %d.0.0, 1		; <int> [#uses=1]
+ 	%tmp.2231 = setlt int %inc.3, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next51 = add uint %indvar50, 1		; <uint> [#uses=1]
+ 	br bool %tmp.2231, label %backEdgeInst3, label %loopexit.3.loopexit
+ 
+ loopexit.3.loopexit:		; preds = %loopexit.4
+ 	br label %loopexit.3
+ 
+ loopexit.3:		; preds = %loopentry.3, %loopexit.3.loopexit
+ 	%x.2.1 = phi int [ %x.3.0, %loopentry.3 ], [ %x.1.1, %loopexit.3.loopexit ]		; <int> [#uses=2]
+ 	%inc.4 = add int %c.0.0, 1		; <int> [#uses=1]
+ 	%tmp.1839 = setlt int %inc.4, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next53 = add uint %indvar52, 1		; <uint> [#uses=1]
+ 	br bool %tmp.1839, label %backEdgeInst2, label %loopexit.2.loopexit
+ 
+ loopexit.2.loopexit:		; preds = %loopexit.3
+ 	br label %loopexit.2
+ 
+ loopexit.2:		; preds = %loopentry.2, %loopexit.2.loopexit
+ 	%x.3.1 = phi int [ %x.4.0, %loopentry.2 ], [ %x.2.1, %loopexit.2.loopexit ]		; <int> [#uses=2]
+ 	%inc.5 = add int %b.0.0, 1		; <int> [#uses=1]
+ 	%tmp.1447 = setlt int %inc.5, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next55 = add uint %indvar54, 1		; <uint> [#uses=1]
+ 	br bool %tmp.1447, label %backEdgeInst1, label %loopexit.1.loopexit
+ 
+ loopexit.1.loopexit:		; preds = %loopexit.2
+ 	br label %loopexit.1
+ 
+ loopexit.1:		; preds = %loopentry.1, %loopexit.1.loopexit
+ 	%x.4.1 = phi int [ %x.4, %loopentry.1 ], [ %x.3.1, %loopexit.1.loopexit ]		; <int> [#uses=1]
+ 	%inc.6 = add int %a.0.0, 1		; <int> [#uses=1]
+ 	br label %loopentry.0
+ 
+ loopexit.0:		; preds = %cond_true, %loopentry.0
+ 	%x.5.1 = phi int [ %x.5, %loopentry.0 ], [ 0, %cond_true ]		; <int> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [4 x sbyte]* %.str_1, long 0		; <[4 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [4 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.39 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_1", int %x.5.1 )		; <int> [#uses=0]
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %loopentry.0
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.1
+ 
+ backEdgeInst1:		; preds = %loopexit.2
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.2
+ 
+ backEdgeInst2:		; preds = %loopexit.3
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.3
+ 
+ backEdgeInst3:		; preds = %loopexit.4
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.4
+ 
+ backEdgeInst4:		; preds = %loopexit.5
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.5
+ 
+ backEdgeInst5:		; preds = %no_exit.5
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.5
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/nestedloop.main.trace12.txt
diff -c /dev/null reopt/test/TTFTestCases/nestedloop.main.trace12.txt:1.1
*** /dev/null	Wed Sep  8 16:34:37 2004
--- reopt/test/TTFTestCases/nestedloop.main.trace12.txt	Wed Sep  8 16:34:23 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 15 32 


Index: reopt/test/TTFTestCases/objinst.ll
diff -c /dev/null reopt/test/TTFTestCases/objinst.ll:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/objinst.ll	Wed Sep  8 16:34:23 2004
***************
*** 0 ****
--- 1,768 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.NthToggle = type { %struct.Toggle, int, int }
+ 	%struct.Toggle = type { sbyte, sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_1 = internal constant [5 x sbyte] c"true\00"		; <[5 x sbyte]*> [#uses=2]
+ %.str_2 = internal constant [6 x sbyte] c"false\00"		; <[6 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)*, %struct.NthToggle* (%struct.NthToggle*)*, int (int, sbyte**)* } { sbyte (%struct.Toggle*)* %toggle_value, %struct.Toggle* (%struct.Toggle*)* %toggle_activate, %struct.NthToggle* (%struct.NthToggle*)* %nth_toggle_activate, int (int, sbyte**)* %main }		; <{ sbyte (%struct.Toggle*)*, %struct.Toggle* (%struct.Toggle*)*, %struct.NthToggle* (%struct.NthToggle*)*, int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [4 x sbyte] c"\01\01\01\00"		; <[4 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 4		; <int*> [#uses=0]
+ %toggle_value.regAllocState = internal constant { uint, [4 x { int, int, uint, int }] } { uint 4, [4 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 0, int -1 }, { int, int, uint, int } { int 1, int -1, uint 1, int 15 }, { int, int, uint, int } { int 2, int -1, uint 0, int -1 } ] }		; <{ uint, [4 x { int, int, uint, int }] }*> [#uses=2]
+ %toggle_activate.regAllocState = internal constant { uint, [7 x { int, int, uint, int }] } { uint 7, [7 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 1 }, { int, int, uint, int } { int 2, int -1, uint 1, int 2 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 0, int -1 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 } ] }		; <{ uint, [7 x { int, int, uint, int }] }*> [#uses=2]
+ %nth_toggle_activate.regAllocState = internal constant { uint, [18 x { int, int, uint, int }] } { uint 18, [18 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 2 }, { int, int, uint, int } { int 2, int -1, uint 1, int 2 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 0, int -1 }, { int, int, uint, int } { int 5, int -1, uint 1, int 1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 1, int 2 }, { int, int, uint, int } { int 10, int -1, uint 1, int 3 }, { int, int, uint, int } { int 11, int -1, uint 1, int 1 }, { int, int, uint, int } { int 12, int -1, uint 0, int -1 }, { int, int, uint, int } {!
  int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 0, int -1 } ] }		; <{ uint, [18 x { int, int, uint, int }] }*> [#uses=2]
+ %main.regAllocState = internal constant { uint, [501 x { int, int, uint, int }] } { uint 501, [501 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 1 }, { int, int, uint, int } { int 2, int -1, uint 1, int 2 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 2 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 0 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 0, int -1 }, { int, int, uint, int } { int 14, int -1, uint 1, int 12 }, { int, int, uint, int } { int 14, int -2, uint 1, int 0 }, { int, int, uint, int } { int 15, int -1, uint 1, int 0 }, { int, int, uint, int } { int 16, int -1, uint 1, int 11 }, { int, int, uint, int } { int 17, int -1, uint 1, int 0 }, { int, int, uint, int } { int 18, int -1, uint 1, int 13 }, { int, int, uint, int } { int 19, int -1, uint 1, int 9 }, { int, int, uint, int } { int 20, int -1, uint 0, int -1 }, { int, int, uint, int } { int 21, int -1, uint 1, int 10 }, { int, int, uint, int } { int 22, int -1, uint 0, int -1 }, { int, int, uint, int } { int 23, int -1, uint 1, int 15 }, { int, int, uint, int } { int 24, int -1, uint 1, int 8 }, { int, int, uint, int } { int 25, int -1, uint 0, int -1 }, { int, int, uint, int } { int 26, int -1, uint 0, int -1 }, { int, int, uint, int } { int 27, int -1, uint 1, int 2 }, { int, int, !
 uint, int } { int 28, int -1, uint 0, int -1 }, { int, int, uint, int 
} { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 1, int 7 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 1, int 14 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 1, int 17 }, { int, int, uint, int } { int 35, int -2, uint 1, int 0 }, { int, int, uint, int } { int 36, int -1, uint 1, int 0 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 0, int -1 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 1, int 18 }, { int, int, uint, int } { int 40, int -2, uint 1, int 18 }, { int, int, uint, int } { int 41, int -1, uint 1, int 0 }, { int, int, uint, int } { int 42, int -1, uint 0, int -1 }, { int, int, uint, int } { int 43, int -1, uint 1, int 1!
 6 }, { int, int, uint, int } { int 44, int -1, uint 0, int -1 }, { int, int, uint, int } { int 45, int -1, uint 1, int 0 }, { int, int, uint, int } { int 46, int -1, uint 1, int 0 }, { int, int, uint, int } { int 47, int -1, uint 1, int 0 }, { int, int, uint, int } { int 48, int -1, uint 1, int 16 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 1, int 18 }, { int, int, uint, int } { int 51, int -1, uint 0, int -1 }, { int, int, uint, int } { int 52, int -1, uint 0, int -1 }, { int, int, uint, int } { int 53, int -1, uint 1, int 0 }, { int, int, uint, int } { int 54, int -1, uint 1, int 6 }, { int, int, uint, int } { int 55, int -1, uint 1, int 6 }, { int, int, uint, int } { int 56, int -1, uint 0, int -1 }, { int, int, uint, int } { int 57, int -1, uint 1, int 6 }, { int, int, uint, int } { int 58, int -1, uint 1, int 0 }, { int, int, uint, int } { int 59, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6!
 0, int -1, uint 0, int -1 }, { int, int, uint, int } { int 61, int -1,
 uint 0, int -1 }, { int, int, uint, int } { int 62, int -1, uint 1, int 17 }, { int, int, uint, int } { int 62, int -2, uint 1, int 1 }, { int, int, uint, int } { int 63, int -1, uint 1, int 0 }, { int, int, uint, int } { int 64, int -1, uint 0, int -1 }, { int, int, uint, int } { int 65, int -1, uint 0, int -1 }, { int, int, uint, int } { int 66, int -1, uint 0, int -1 }, { int, int, uint, int } { int 67, int -1, uint 1, int 16 }, { int, int, uint, int } { int 67, int -2, uint 1, int 16 }, { int, int, uint, int } { int 68, int -1, uint 1, int 0 }, { int, int, uint, int } { int 69, int -1, uint 0, int -1 }, { int, int, uint, int } { int 70, int -1, uint 1, int 18 }, { int, int, uint, int } { int 71, int -1, uint 0, int -1 }, { int, int, uint, int } { int 72, int -1, uint 1, int 0 }, { int, int, uint, int } { int 73, int -1, uint 1, int 0 }, { int, int, uint, int } { int 74, int -1, uint 1, int 0 }, { int, int, uint, int } { int 75, int -1, uint 1, int 18 }, { int, int, uint!
 , int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 1, int 16 }, { int, int, uint, int } { int 78, int -1, uint 0, int -1 }, { int, int, uint, int } { int 79, int -1, uint 0, int -1 }, { int, int, uint, int } { int 80, int -1, uint 1, int 0 }, { int, int, uint, int } { int 81, int -1, uint 1, int 6 }, { int, int, uint, int } { int 82, int -1, uint 1, int 6 }, { int, int, uint, int } { int 83, int -1, uint 0, int -1 }, { int, int, uint, int } { int 84, int -1, uint 1, int 6 }, { int, int, uint, int } { int 85, int -1, uint 1, int 0 }, { int, int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uint, int } { int 87, int -1, uint 0, int -1 }, { int, int, uint, int } { int 88, int -1, uint 0, int -1 }, { int, int, uint, int } { int 89, int -1, uint 1, int 18 }, { int, int, uint, int } { int 89, int -2, uint 1, int 1 }, { int, int, uint, int } { int 90, int -1, uint 1, int 0 }, { int, int, uint, int } { int 91, int -1, uint 0, i!
 nt -1 }, { int, int, uint, int } { int 92, int -1, uint 0, int -1 }, {
 int, int, uint, int } { int 93, int -1, uint 0, int -1 }, { int, int, uint, int } { int 94, int -1, uint 1, int 16 }, { int, int, uint, int } { int 94, int -2, uint 1, int 16 }, { int, int, uint, int } { int 95, int -1, uint 1, int 0 }, { int, int, uint, int } { int 96, int -1, uint 0, int -1 }, { int, int, uint, int } { int 97, int -1, uint 1, int 17 }, { int, int, uint, int } { int 98, int -1, uint 0, int -1 }, { int, int, uint, int } { int 99, int -1, uint 1, int 0 }, { int, int, uint, int } { int 100, int -1, uint 1, int 0 }, { int, int, uint, int } { int 101, int -1, uint 1, int 0 }, { int, int, uint, int } { int 102, int -1, uint 1, int 17 }, { int, int, uint, int } { int 103, int -1, uint 0, int -1 }, { int, int, uint, int } { int 104, int -1, uint 1, int 16 }, { int, int, uint, int } { int 105, int -1, uint 0, int -1 }, { int, int, uint, int } { int 106, int -1, uint 0, int -1 }, { int, int, uint, int } { int 107, int -1, uint 1, int 0 }, { int, int, uint, int } { i!
 nt 108, int -1, uint 1, int 6 }, { int, int, uint, int } { int 109, int -1, uint 1, int 6 }, { int, int, uint, int } { int 110, int -1, uint 0, int -1 }, { int, int, uint, int } { int 111, int -1, uint 1, int 6 }, { int, int, uint, int } { int 112, int -1, uint 1, int 0 }, { int, int, uint, int } { int 113, int -1, uint 0, int -1 }, { int, int, uint, int } { int 114, int -1, uint 0, int -1 }, { int, int, uint, int } { int 115, int -1, uint 0, int -1 }, { int, int, uint, int } { int 116, int -1, uint 1, int 16 }, { int, int, uint, int } { int 116, int -2, uint 1, int 1 }, { int, int, uint, int } { int 117, int -1, uint 1, int 0 }, { int, int, uint, int } { int 118, int -1, uint 0, int -1 }, { int, int, uint, int } { int 119, int -1, uint 0, int -1 }, { int, int, uint, int } { int 120, int -1, uint 0, int -1 }, { int, int, uint, int } { int 121, int -1, uint 1, int 17 }, { int, int, uint, int } { int 121, int -2, uint 1, int 17 }, { int, int, uint, int } { int 122, int -1, ui!
 nt 1, int 0 }, { int, int, uint, int } { int 123, int -1, uint 0, int 
-1 }, { int, int, uint, int } { int 124, int -1, uint 1, int 18 }, { int, int, uint, int } { int 125, int -1, uint 0, int -1 }, { int, int, uint, int } { int 126, int -1, uint 1, int 0 }, { int, int, uint, int } { int 127, int -1, uint 1, int 0 }, { int, int, uint, int } { int 128, int -1, uint 1, int 0 }, { int, int, uint, int } { int 129, int -1, uint 1, int 18 }, { int, int, uint, int } { int 130, int -1, uint 0, int -1 }, { int, int, uint, int } { int 131, int -1, uint 1, int 17 }, { int, int, uint, int } { int 132, int -1, uint 0, int -1 }, { int, int, uint, int } { int 133, int -1, uint 0, int -1 }, { int, int, uint, int } { int 134, int -1, uint 1, int 0 }, { int, int, uint, int } { int 135, int -1, uint 1, int 6 }, { int, int, uint, int } { int 136, int -1, uint 1, int 6 }, { int, int, uint, int } { int 137, int -1, uint 0, int -1 }, { int, int, uint, int } { int 138, int -1, uint 1, int 6 }, { int, int, uint, int } { int 139, int -1, uint 1, int 0 }, { int, int, uin!
 t, int } { int 140, int -1, uint 0, int -1 }, { int, int, uint, int } { int 141, int -1, uint 0, int -1 }, { int, int, uint, int } { int 142, int -1, uint 0, int -1 }, { int, int, uint, int } { int 143, int -1, uint 1, int 13 }, { int, int, uint, int } { int 143, int -2, uint 1, int 1 }, { int, int, uint, int } { int 144, int -1, uint 1, int 0 }, { int, int, uint, int } { int 145, int -1, uint 0, int -1 }, { int, int, uint, int } { int 146, int -1, uint 0, int -1 }, { int, int, uint, int } { int 147, int -1, uint 0, int -1 }, { int, int, uint, int } { int 148, int -1, uint 1, int 16 }, { int, int, uint, int } { int 148, int -2, uint 1, int 16 }, { int, int, uint, int } { int 149, int -1, uint 1, int 0 }, { int, int, uint, int } { int 150, int -1, uint 0, int -1 }, { int, int, uint, int } { int 151, int -1, uint 1, int 15 }, { int, int, uint, int } { int 152, int -1, uint 0, int -1 }, { int, int, uint, int } { int 153, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1!
 54, int -1, uint 1, int 0 }, { int, int, uint, int } { int 155, int -1
, uint 1, int 0 }, { int, int, uint, int } { int 156, int -1, uint 1, int 15 }, { int, int, uint, int } { int 157, int -1, uint 0, int -1 }, { int, int, uint, int } { int 158, int -1, uint 1, int 16 }, { int, int, uint, int } { int 159, int -1, uint 0, int -1 }, { int, int, uint, int } { int 160, int -1, uint 0, int -1 }, { int, int, uint, int } { int 161, int -1, uint 1, int 0 }, { int, int, uint, int } { int 162, int -1, uint 0, int -1 }, { int, int, uint, int } { int 163, int -1, uint 1, int 16 }, { int, int, uint, int } { int 164, int -1, uint 0, int -1 }, { int, int, uint, int } { int 165, int -1, uint 0, int -1 }, { int, int, uint, int } { int 166, int -1, uint 1, int 9 }, { int, int, uint, int } { int 166, int -2, uint 1, int 9 }, { int, int, uint, int } { int 167, int -1, uint 1, int 13 }, { int, int, uint, int } { int 168, int -1, uint 1, int 1 }, { int, int, uint, int } { int 169, int -1, uint 1, int 1 }, { int, int, uint, int } { int 170, int -1, uint 1, int 0 }, !
 { int, int, uint, int } { int 171, int -1, uint 0, int -1 }, { int, int, uint, int } { int 172, int -1, uint 0, int -1 }, { int, int, uint, int } { int 173, int -1, uint 0, int -1 }, { int, int, uint, int } { int 174, int -1, uint 0, int -1 }, { int, int, uint, int } { int 175, int -1, uint 0, int -1 }, { int, int, uint, int } { int 176, int -1, uint 1, int 13 }, { int, int, uint, int } { int 177, int -1, uint 0, int -1 }, { int, int, uint, int } { int 178, int -1, uint 1, int 9 }, { int, int, uint, int } { int 179, int -1, uint 0, int -1 }, { int, int, uint, int } { int 180, int -1, uint 0, int -1 }, { int, int, uint, int } { int 181, int -1, uint 1, int 0 }, { int, int, uint, int } { int 182, int -1, uint 1, int 0 }, { int, int, uint, int } { int 183, int -1, uint 1, int 15 }, { int, int, uint, int } { int 184, int -1, uint 1, int 6 }, { int, int, uint, int } { int 185, int -1, uint 1, int 6 }, { int, int, uint, int } { int 186, int -1, uint 1, int 11 }, { int, int, uint,!
  int } { int 187, int -1, uint 1, int 17 }, { int, int, uint, int } { 
int 188, int -1, uint 0, int -1 }, { int, int, uint, int } { int 189, int -1, uint 0, int -1 }, { int, int, uint, int } { int 190, int -1, uint 0, int -1 }, { int, int, uint, int } { int 191, int -1, uint 0, int -1 }, { int, int, uint, int } { int 192, int -1, uint 1, int 13 }, { int, int, uint, int } { int 193, int -1, uint 0, int -1 }, { int, int, uint, int } { int 194, int -1, uint 1, int 9 }, { int, int, uint, int } { int 195, int -1, uint 0, int -1 }, { int, int, uint, int } { int 196, int -1, uint 0, int -1 }, { int, int, uint, int } { int 197, int -1, uint 1, int 8 }, { int, int, uint, int } { int 198, int -1, uint 0, int -1 }, { int, int, uint, int } { int 199, int -1, uint 0, int -1 }, { int, int, uint, int } { int 200, int -1, uint 0, int -1 }, { int, int, uint, int } { int 201, int -1, uint 0, int -1 }, { int, int, uint, int } { int 202, int -1, uint 0, int -1 }, { int, int, uint, int } { int 203, int -1, uint 1, int 6 }, { int, int, uint, int } { int 204, int -1,!
  uint 1, int 0 }, { int, int, uint, int } { int 205, int -1, uint 0, int -1 }, { int, int, uint, int } { int 206, int -1, uint 0, int -1 }, { int, int, uint, int } { int 207, int -1, uint 0, int -1 }, { int, int, uint, int } { int 208, int -1, uint 1, int 19 }, { int, int, uint, int } { int 208, int -2, uint 1, int 1 }, { int, int, uint, int } { int 209, int -1, uint 1, int 0 }, { int, int, uint, int } { int 210, int -1, uint 0, int -1 }, { int, int, uint, int } { int 211, int -1, uint 0, int -1 }, { int, int, uint, int } { int 212, int -1, uint 0, int -1 }, { int, int, uint, int } { int 213, int -1, uint 1, int 18 }, { int, int, uint, int } { int 213, int -2, uint 1, int 18 }, { int, int, uint, int } { int 214, int -1, uint 1, int 0 }, { int, int, uint, int } { int 215, int -1, uint 0, int -1 }, { int, int, uint, int } { int 216, int -1, uint 1, int 20 }, { int, int, uint, int } { int 217, int -1, uint 0, int -1 }, { int, int, uint, int } { int 218, int -1, uint 1, int 0 }!
 , { int, int, uint, int } { int 219, int -1, uint 1, int 0 }, { int, i
nt, uint, int } { int 220, int -1, uint 1, int 0 }, { int, int, uint, int } { int 221, int -1, uint 1, int 20 }, { int, int, uint, int } { int 222, int -1, uint 0, int -1 }, { int, int, uint, int } { int 223, int -1, uint 1, int 18 }, { int, int, uint, int } { int 224, int -1, uint 0, int -1 }, { int, int, uint, int } { int 225, int -1, uint 0, int -1 }, { int, int, uint, int } { int 226, int -1, uint 1, int 0 }, { int, int, uint, int } { int 227, int -1, uint 1, int 6 }, { int, int, uint, int } { int 228, int -1, uint 1, int 6 }, { int, int, uint, int } { int 229, int -1, uint 0, int -1 }, { int, int, uint, int } { int 230, int -1, uint 1, int 6 }, { int, int, uint, int } { int 231, int -1, uint 1, int 0 }, { int, int, uint, int } { int 232, int -1, uint 0, int -1 }, { int, int, uint, int } { int 233, int -1, uint 0, int -1 }, { int, int, uint, int } { int 234, int -1, uint 0, int -1 }, { int, int, uint, int } { int 235, int -1, uint 1, int 18 }, { int, int, uint, int } { i!
 nt 235, int -2, uint 1, int 1 }, { int, int, uint, int } { int 236, int -1, uint 1, int 0 }, { int, int, uint, int } { int 237, int -1, uint 0, int -1 }, { int, int, uint, int } { int 238, int -1, uint 0, int -1 }, { int, int, uint, int } { int 239, int -1, uint 0, int -1 }, { int, int, uint, int } { int 240, int -1, uint 1, int 20 }, { int, int, uint, int } { int 240, int -2, uint 1, int 20 }, { int, int, uint, int } { int 241, int -1, uint 1, int 0 }, { int, int, uint, int } { int 242, int -1, uint 0, int -1 }, { int, int, uint, int } { int 243, int -1, uint 1, int 19 }, { int, int, uint, int } { int 244, int -1, uint 0, int -1 }, { int, int, uint, int } { int 245, int -1, uint 1, int 0 }, { int, int, uint, int } { int 246, int -1, uint 1, int 0 }, { int, int, uint, int } { int 247, int -1, uint 1, int 0 }, { int, int, uint, int } { int 248, int -1, uint 1, int 19 }, { int, int, uint, int } { int 249, int -1, uint 0, int -1 }, { int, int, uint, int } { int 250, int -1, ui!
 nt 1, int 20 }, { int, int, uint, int } { int 251, int -1, uint 0, int
 -1 }, { int, int, uint, int } { int 252, int -1, uint 0, int -1 }, { int, int, uint, int } { int 253, int -1, uint 1, int 0 }, { int, int, uint, int } { int 254, int -1, uint 1, int 6 }, { int, int, uint, int } { int 255, int -1, uint 1, int 6 }, { int, int, uint, int } { int 256, int -1, uint 0, int -1 }, { int, int, uint, int } { int 257, int -1, uint 1, int 6 }, { int, int, uint, int } { int 258, int -1, uint 1, int 0 }, { int, int, uint, int } { int 259, int -1, uint 0, int -1 }, { int, int, uint, int } { int 260, int -1, uint 0, int -1 }, { int, int, uint, int } { int 261, int -1, uint 0, int -1 }, { int, int, uint, int } { int 262, int -1, uint 1, int 20 }, { int, int, uint, int } { int 262, int -2, uint 1, int 1 }, { int, int, uint, int } { int 263, int -1, uint 1, int 0 }, { int, int, uint, int } { int 264, int -1, uint 0, int -1 }, { int, int, uint, int } { int 265, int -1, uint 0, int -1 }, { int, int, uint, int } { int 266, int -1, uint 0, int -1 }, { int, int, u!
 int, int } { int 267, int -1, uint 1, int 19 }, { int, int, uint, int } { int 267, int -2, uint 1, int 19 }, { int, int, uint, int } { int 268, int -1, uint 1, int 0 }, { int, int, uint, int } { int 269, int -1, uint 0, int -1 }, { int, int, uint, int } { int 270, int -1, uint 1, int 18 }, { int, int, uint, int } { int 271, int -1, uint 0, int -1 }, { int, int, uint, int } { int 272, int -1, uint 1, int 0 }, { int, int, uint, int } { int 273, int -1, uint 1, int 0 }, { int, int, uint, int } { int 274, int -1, uint 1, int 0 }, { int, int, uint, int } { int 275, int -1, uint 1, int 18 }, { int, int, uint, int } { int 276, int -1, uint 0, int -1 }, { int, int, uint, int } { int 277, int -1, uint 1, int 19 }, { int, int, uint, int } { int 278, int -1, uint 0, int -1 }, { int, int, uint, int } { int 279, int -1, uint 0, int -1 }, { int, int, uint, int } { int 280, int -1, uint 1, int 0 }, { int, int, uint, int } { int 281, int -1, uint 1, int 6 }, { int, int, uint, int } { int 2!
 82, int -1, uint 1, int 6 }, { int, int, uint, int } { int 283, int -1
, uint 0, int -1 }, { int, int, uint, int } { int 284, int -1, uint 1, int 6 }, { int, int, uint, int } { int 285, int -1, uint 1, int 0 }, { int, int, uint, int } { int 286, int -1, uint 0, int -1 }, { int, int, uint, int } { int 287, int -1, uint 0, int -1 }, { int, int, uint, int } { int 288, int -1, uint 0, int -1 }, { int, int, uint, int } { int 289, int -1, uint 1, int 19 }, { int, int, uint, int } { int 289, int -2, uint 1, int 1 }, { int, int, uint, int } { int 290, int -1, uint 1, int 0 }, { int, int, uint, int } { int 291, int -1, uint 0, int -1 }, { int, int, uint, int } { int 292, int -1, uint 0, int -1 }, { int, int, uint, int } { int 293, int -1, uint 0, int -1 }, { int, int, uint, int } { int 294, int -1, uint 1, int 18 }, { int, int, uint, int } { int 294, int -2, uint 1, int 18 }, { int, int, uint, int } { int 295, int -1, uint 1, int 0 }, { int, int, uint, int } { int 296, int -1, uint 0, int -1 }, { int, int, uint, int } { int 297, int -1, uint 1, int 20 }!
 , { int, int, uint, int } { int 298, int -1, uint 0, int -1 }, { int, int, uint, int } { int 299, int -1, uint 1, int 0 }, { int, int, uint, int } { int 300, int -1, uint 1, int 0 }, { int, int, uint, int } { int 301, int -1, uint 1, int 0 }, { int, int, uint, int } { int 302, int -1, uint 1, int 20 }, { int, int, uint, int } { int 303, int -1, uint 0, int -1 }, { int, int, uint, int } { int 304, int -1, uint 1, int 18 }, { int, int, uint, int } { int 305, int -1, uint 0, int -1 }, { int, int, uint, int } { int 306, int -1, uint 0, int -1 }, { int, int, uint, int } { int 307, int -1, uint 1, int 0 }, { int, int, uint, int } { int 308, int -1, uint 1, int 6 }, { int, int, uint, int } { int 309, int -1, uint 1, int 6 }, { int, int, uint, int } { int 310, int -1, uint 0, int -1 }, { int, int, uint, int } { int 311, int -1, uint 1, int 6 }, { int, int, uint, int } { int 312, int -1, uint 1, int 0 }, { int, int, uint, int } { int 313, int -1, uint 0, int -1 }, { int, int, uint, !
 int } { int 314, int -1, uint 0, int -1 }, { int, int, uint, int } { i
nt 315, int -1, uint 0, int -1 }, { int, int, uint, int } { int 316, int -1, uint 1, int 18 }, { int, int, uint, int } { int 316, int -2, uint 1, int 1 }, { int, int, uint, int } { int 317, int -1, uint 1, int 0 }, { int, int, uint, int } { int 318, int -1, uint 0, int -1 }, { int, int, uint, int } { int 319, int -1, uint 0, int -1 }, { int, int, uint, int } { int 320, int -1, uint 0, int -1 }, { int, int, uint, int } { int 321, int -1, uint 1, int 19 }, { int, int, uint, int } { int 321, int -2, uint 1, int 19 }, { int, int, uint, int } { int 322, int -1, uint 1, int 0 }, { int, int, uint, int } { int 323, int -1, uint 0, int -1 }, { int, int, uint, int } { int 324, int -1, uint 1, int 20 }, { int, int, uint, int } { int 325, int -1, uint 0, int -1 }, { int, int, uint, int } { int 326, int -1, uint 1, int 0 }, { int, int, uint, int } { int 327, int -1, uint 1, int 0 }, { int, int, uint, int } { int 328, int -1, uint 1, int 0 }, { int, int, uint, int } { int 329, int -1, uin!
 t 1, int 20 }, { int, int, uint, int } { int 330, int -1, uint 0, int -1 }, { int, int, uint, int } { int 331, int -1, uint 1, int 19 }, { int, int, uint, int } { int 332, int -1, uint 0, int -1 }, { int, int, uint, int } { int 333, int -1, uint 0, int -1 }, { int, int, uint, int } { int 334, int -1, uint 1, int 0 }, { int, int, uint, int } { int 335, int -1, uint 1, int 6 }, { int, int, uint, int } { int 336, int -1, uint 1, int 6 }, { int, int, uint, int } { int 337, int -1, uint 0, int -1 }, { int, int, uint, int } { int 338, int -1, uint 1, int 6 }, { int, int, uint, int } { int 339, int -1, uint 1, int 0 }, { int, int, uint, int } { int 340, int -1, uint 0, int -1 }, { int, int, uint, int } { int 341, int -1, uint 0, int -1 }, { int, int, uint, int } { int 342, int -1, uint 0, int -1 }, { int, int, uint, int } { int 343, int -1, uint 1, int 20 }, { int, int, uint, int } { int 343, int -2, uint 1, int 1 }, { int, int, uint, int } { int 344, int -1, uint 1, int 0 }, { in!
 t, int, uint, int } { int 345, int -1, uint 0, int -1 }, { int, int, u
int, int } { int 346, int -1, uint 0, int -1 }, { int, int, uint, int } { int 347, int -1, uint 0, int -1 }, { int, int, uint, int } { int 348, int -1, uint 1, int 19 }, { int, int, uint, int } { int 348, int -2, uint 1, int 19 }, { int, int, uint, int } { int 349, int -1, uint 1, int 0 }, { int, int, uint, int } { int 350, int -1, uint 0, int -1 }, { int, int, uint, int } { int 351, int -1, uint 1, int 18 }, { int, int, uint, int } { int 352, int -1, uint 0, int -1 }, { int, int, uint, int } { int 353, int -1, uint 1, int 0 }, { int, int, uint, int } { int 354, int -1, uint 1, int 0 }, { int, int, uint, int } { int 355, int -1, uint 1, int 0 }, { int, int, uint, int } { int 356, int -1, uint 1, int 18 }, { int, int, uint, int } { int 357, int -1, uint 0, int -1 }, { int, int, uint, int } { int 358, int -1, uint 1, int 19 }, { int, int, uint, int } { int 359, int -1, uint 0, int -1 }, { int, int, uint, int } { int 360, int -1, uint 0, int -1 }, { int, int, uint, int } { int !
 361, int -1, uint 1, int 0 }, { int, int, uint, int } { int 362, int -1, uint 1, int 6 }, { int, int, uint, int } { int 363, int -1, uint 1, int 6 }, { int, int, uint, int } { int 364, int -1, uint 0, int -1 }, { int, int, uint, int } { int 365, int -1, uint 1, int 6 }, { int, int, uint, int } { int 366, int -1, uint 1, int 0 }, { int, int, uint, int } { int 367, int -1, uint 0, int -1 }, { int, int, uint, int } { int 368, int -1, uint 0, int -1 }, { int, int, uint, int } { int 369, int -1, uint 0, int -1 }, { int, int, uint, int } { int 370, int -1, uint 1, int 19 }, { int, int, uint, int } { int 370, int -2, uint 1, int 1 }, { int, int, uint, int } { int 371, int -1, uint 1, int 0 }, { int, int, uint, int } { int 372, int -1, uint 0, int -1 }, { int, int, uint, int } { int 373, int -1, uint 0, int -1 }, { int, int, uint, int } { int 374, int -1, uint 0, int -1 }, { int, int, uint, int } { int 375, int -1, uint 1, int 18 }, { int, int, uint, int } { int 375, int -2, uint 1!
 , int 18 }, { int, int, uint, int } { int 376, int -1, uint 1, int 0 }
, { int, int, uint, int } { int 377, int -1, uint 0, int -1 }, { int, int, uint, int } { int 378, int -1, uint 1, int 20 }, { int, int, uint, int } { int 379, int -1, uint 0, int -1 }, { int, int, uint, int } { int 380, int -1, uint 1, int 0 }, { int, int, uint, int } { int 381, int -1, uint 1, int 0 }, { int, int, uint, int } { int 382, int -1, uint 1, int 0 }, { int, int, uint, int } { int 383, int -1, uint 1, int 20 }, { int, int, uint, int } { int 384, int -1, uint 0, int -1 }, { int, int, uint, int } { int 385, int -1, uint 1, int 18 }, { int, int, uint, int } { int 386, int -1, uint 0, int -1 }, { int, int, uint, int } { int 387, int -1, uint 0, int -1 }, { int, int, uint, int } { int 388, int -1, uint 1, int 0 }, { int, int, uint, int } { int 389, int -1, uint 1, int 6 }, { int, int, uint, int } { int 390, int -1, uint 1, int 6 }, { int, int, uint, int } { int 391, int -1, uint 0, int -1 }, { int, int, uint, int } { int 392, int -1, uint 1, int 6 }, { int, int, uint, !
 int } { int 393, int -1, uint 1, int 0 }, { int, int, uint, int } { int 394, int -1, uint 0, int -1 }, { int, int, uint, int } { int 395, int -1, uint 0, int -1 }, { int, int, uint, int } { int 396, int -1, uint 0, int -1 }, { int, int, uint, int } { int 397, int -1, uint 1, int 13 }, { int, int, uint, int } { int 397, int -2, uint 1, int 1 }, { int, int, uint, int } { int 398, int -1, uint 1, int 0 }, { int, int, uint, int } { int 399, int -1, uint 0, int -1 }, { int, int, uint, int } { int 400, int -1, uint 0, int -1 }, { int, int, uint, int } { int 401, int -1, uint 0, int -1 }, { int, int, uint, int } { int 402, int -1, uint 1, int 7 }, { int, int, uint, int } { int 402, int -2, uint 1, int 7 }, { int, int, uint, int } { int 403, int -1, uint 1, int 0 }, { int, int, uint, int } { int 404, int -1, uint 0, int -1 }, { int, int, uint, int } { int 405, int -1, uint 1, int 11 }, { int, int, uint, int } { int 406, int -1, uint 0, int -1 }, { int, int, uint, int } { int 407, i!
 nt -1, uint 1, int 0 }, { int, int, uint, int } { int 408, int -1, uin
t 1, int 0 }, { int, int, uint, int } { int 409, int -1, uint 1, int 0 }, { int, int, uint, int } { int 410, int -1, uint 1, int 11 }, { int, int, uint, int } { int 411, int -1, uint 0, int -1 }, { int, int, uint, int } { int 412, int -1, uint 1, int 7 }, { int, int, uint, int } { int 413, int -1, uint 0, int -1 }, { int, int, uint, int } { int 414, int -1, uint 0, int -1 }, { int, int, uint, int } { int 415, int -1, uint 1, int 0 }, { int, int, uint, int } { int 416, int -1, uint 0, int -1 }, { int, int, uint, int } { int 417, int -1, uint 0, int -1 }, { int, int, uint, int } { int 418, int -1, uint 0, int -1 }, { int, int, uint, int } { int 419, int -1, uint 1, int 7 }, { int, int, uint, int } { int 419, int -2, uint 1, int 7 }, { int, int, uint, int } { int 420, int -1, uint 1, int 11 }, { int, int, uint, int } { int 421, int -1, uint 1, int 2 }, { int, int, uint, int } { int 422, int -1, uint 1, int 2 }, { int, int, uint, int } { int 423, int -1, uint 1, int 1 }, { int, !
 int, uint, int } { int 424, int -1, uint 1, int 0 }, { int, int, uint, int } { int 425, int -1, uint 0, int -1 }, { int, int, uint, int } { int 426, int -1, uint 0, int -1 }, { int, int, uint, int } { int 427, int -1, uint 0, int -1 }, { int, int, uint, int } { int 428, int -1, uint 0, int -1 }, { int, int, uint, int } { int 429, int -1, uint 0, int -1 }, { int, int, uint, int } { int 430, int -1, uint 0, int -1 }, { int, int, uint, int } { int 431, int -1, uint 0, int -1 }, { int, int, uint, int } { int 432, int -1, uint 0, int -1 }, { int, int, uint, int } { int 433, int -1, uint 0, int -1 }, { int, int, uint, int } { int 434, int -1, uint 1, int 11 }, { int, int, uint, int } { int 435, int -1, uint 0, int -1 }, { int, int, uint, int } { int 436, int -1, uint 1, int 7 }, { int, int, uint, int } { int 437, int -1, uint 0, int -1 }, { int, int, uint, int } { int 438, int -1, uint 0, int -1 }, { int, int, uint, int } { int 439, int -1, uint 0, int -1 }, { int, int, uint, int!
  } { int 440, int -1, uint 0, int -1 }, { int, int, uint, int } { int 
441, int -1, uint 0, int -1 }, { int, int, uint, int } { int 442, int -1, uint 0, int -1 }, { int, int, uint, int } { int 443, int -1, uint 0, int -1 }, { int, int, uint, int } { int 444, int -1, uint 0, int -1 }, { int, int, uint, int } { int 445, int -1, uint 0, int -1 }, { int, int, uint, int } { int 446, int -1, uint 0, int -1 }, { int, int, uint, int } { int 447, int -1, uint 0, int -1 }, { int, int, uint, int } { int 448, int -1, uint 0, int -1 }, { int, int, uint, int } { int 449, int -1, uint 0, int -1 }, { int, int, uint, int } { int 450, int -1, uint 0, int -1 }, { int, int, uint, int } { int 451, int -1, uint 0, int -1 }, { int, int, uint, int } { int 452, int -1, uint 0, int -1 }, { int, int, uint, int } { int 453, int -1, uint 0, int -1 }, { int, int, uint, int } { int 454, int -1, uint 0, int -1 }, { int, int, uint, int } { int 455, int -1, uint 0, int -1 }, { int, int, uint, int } { int 456, int -1, uint 0, int -1 }, { int, int, uint, int } { int 457, int -1, !
 uint 0, int -1 }, { int, int, uint, int } { int 458, int -1, uint 0, int -1 }, { int, int, uint, int } { int 459, int -1, uint 0, int -1 }, { int, int, uint, int } { int 460, int -1, uint 0, int -1 }, { int, int, uint, int } { int 461, int -1, uint 0, int -1 }, { int, int, uint, int } { int 462, int -1, uint 0, int -1 }, { int, int, uint, int } { int 463, int -1, uint 0, int -1 }, { int, int, uint, int } { int 464, int -1, uint 0, int -1 }, { int, int, uint, int } { int 465, int -1, uint 0, int -1 }, { int, int, uint, int } { int 466, int -1, uint 0, int -1 }, { int, int, uint, int } { int 467, int -1, uint 0, int -1 }, { int, int, uint, int } { int 468, int -1, uint 0, int -1 }, { int, int, uint, int } { int 469, int -1, uint 0, int -1 } ] }		; <{ uint, [501 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [4 x { uint, [0 x { int, int, uint, int }] }*] } { uint 4, [4 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [4 x { int, int, uint, int }] }* %toggle_value.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [7 x { int, int, uint, int }] }* %toggle_activate.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [18 x { int, int, uint, int }] }* %nth_toggle_activate.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [501 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [4 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [27 x sbyte*] } { uint 27, [27 x sbyte*] [ sbyte* cast ([5 x sbyte]* %.str_1 to sbyte*), sbyte* cast ([6 x sbyte]* %.str_2 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [4 x { int, int, uint, int }] }* %toggle_value.regAllocState to sbyte*), sbyte* cast ({ uint, [7 x { int, int, uint, int }] }* %toggle_activate.regAllocState to sbyte*), sbyte* cast ({ uint, [18 x { int, int, uint, int }] }* %nth_toggle_activate.regAllocState to sbyte*), sbyte* cast ({ uint, [501 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* cast (sbyte (%struct.Toggle*)* %toggle_value to sbyte*), sbyte* cast (%struct.Toggle* (%struct.Toggle*)* %toggle_activate to sbyte*), sbyte* cast (%struct.NthToggle* (%struct.NthToggle*)* %nth_toggle_activate to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* nul!
 l, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [27 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ internal sbyte %toggle_value(%struct.Toggle* %this) {
+ entry:
+ 	%tmp.1 = getelementptr %struct.Toggle* %this, long 0, uint 0		; <sbyte*> [#uses=1]
+ 	%tmp.2 = load sbyte* %tmp.1		; <sbyte> [#uses=1]
+ 	ret sbyte %tmp.2
+ }
+ 
+ internal %struct.Toggle* %toggle_activate(%struct.Toggle* %this) {
+ entry:
+ 	%tmp.1 = getelementptr %struct.Toggle* %this, long 0, uint 0		; <sbyte*> [#uses=2]
+ 	%tmp.4 = load sbyte* %tmp.1		; <sbyte> [#uses=1]
+ 	%tmp.5 = seteq sbyte %tmp.4, 0		; <bool> [#uses=1]
+ 	%tmp.6 = cast bool %tmp.5 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %tmp.6, sbyte* %tmp.1
+ 	ret %struct.Toggle* %this
+ }
+ 
+ internal %struct.NthToggle* %nth_toggle_activate(%struct.NthToggle* %this) {
+ entry:
+ 	%tmp.1 = getelementptr %struct.NthToggle* %this, long 0, uint 2		; <int*> [#uses=3]
+ 	%tmp.2 = load int* %tmp.1		; <int> [#uses=1]
+ 	%inc = add int %tmp.2, 1		; <int> [#uses=2]
+ 	store int %inc, int* %tmp.1
+ 	%tmp.4 = getelementptr %struct.NthToggle* %this, long 0, uint 1		; <int*> [#uses=1]
+ 	%tmp.5 = load int* %tmp.4		; <int> [#uses=1]
+ 	%tmp.6 = setlt int %inc, %tmp.5		; <bool> [#uses=1]
+ 	br bool %tmp.6, label %UnifiedReturnBlock, label %then
+ 
+ then:		; preds = %entry
+ 	%ptr1 = getelementptr %struct.NthToggle* %this, long 0, uint 0		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.101 = getelementptr %struct.Toggle* %ptr1, long 0, uint 0		; <sbyte*> [#uses=2]
+ 	%tmp.14 = load sbyte* %tmp.101		; <sbyte> [#uses=1]
+ 	%tmp.15 = seteq sbyte %tmp.14, 0		; <bool> [#uses=1]
+ 	%tmp.16 = cast bool %tmp.15 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %tmp.16, sbyte* %tmp.101
+ 	store int 0, int* %tmp.1
+ 	ret %struct.NthToggle* %this
+ 
+ UnifiedReturnBlock:		; preds = %entry
+ 	ret %struct.NthToggle* %this
+ }
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	%copyConst = cast int 70000000 to int		; <int> [#uses=1]
+ 	br bool %tmp.1, label %cond_true.0, label %loopexit.0
+ 
+ cond_true.0:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=1]
+ 	br label %loopexit.0
+ 
+ loopexit.0:		; preds = %__main.entry, %cond_true.0
+ 	%mem_tmp.0.0 = phi int [ %tmp.3, %cond_true.0 ], [ %copyConst, %__main.entry ]		; <int> [#uses=3]
+ 	"constantGEP:" = getelementptr %struct.Toggle* null, uint 1		; <%struct.Toggle*> [#uses=1]
+ 	%constantCast = cast %struct.Toggle* "constantGEP:" to uint		; <uint> [#uses=2]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to %struct.Toggle*		; <%struct.Toggle*>:0 [#uses=11]
+ 	%tmp.1.i.i = getelementptr %struct.Toggle* %0, long 0, uint 0		; <sbyte*> [#uses=3]
+ 	%tmp.4.i.i = getelementptr %struct.Toggle* %0, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%copyConst = cast sbyte (%struct.Toggle*)* %toggle_value to sbyte (%struct.Toggle*)*		; <sbyte (%struct.Toggle*)*> [#uses=4]
+ 	store sbyte (%struct.Toggle*)* %copyConst, sbyte (%struct.Toggle*)** %tmp.4.i.i
+ 	%tmp.6.i.i = getelementptr %struct.Toggle* %0, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=5]
+ 	%copyConst = cast %struct.Toggle* (%struct.Toggle*)* %toggle_activate to %struct.Toggle* (%struct.Toggle*)*		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=2]
+ 	store %struct.Toggle* (%struct.Toggle*)* %copyConst, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i
+ 	store sbyte 0, sbyte* %tmp.1.i.i
+ 	%tmp.2.i1 = load sbyte* %tmp.1.i.i		; <sbyte> [#uses=1]
+ 	%tmp.22 = setne sbyte %tmp.2.i1, 0		; <bool> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [5 x sbyte]* %.str_1, long 0		; <[5 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [5 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=13]
+ 	"addrOfGlobal:.str_2" = getelementptr [6 x sbyte]* %.str_2, long 0		; <[6 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_2" = getelementptr [6 x sbyte]* "addrOfGlobal:.str_2", long 0, long 0		; <sbyte*> [#uses=13]
+ 	br bool %tmp.22, label %loopexit.0.selecttrue, label %loopexit.0.selectcont
+ 
+ loopexit.0.selecttrue:		; preds = %loopexit.0
+ 	br label %loopexit.0.selectcont
+ 
+ loopexit.0.selectcont:		; preds = %loopexit.0, %loopexit.0.selecttrue
+ 	%mem_tmp.1.0 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %loopexit.0.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %loopexit.0 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i4 = load sbyte* %mem_tmp.1.0		; <sbyte> [#uses=1]
+ 	%tmp.36.i5 = seteq sbyte %tmp.25.i4, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i5, label %puts.entry26, label %no_exit.i6.preheader
+ 
+ no_exit.i6.preheader:		; preds = %loopexit.0.selectcont
+ 	br label %no_exit.i6
+ 
+ no_exit.i6:		; preds = %no_exit.i6.preheader, %backEdgeInst
+ 	%indvar.i7 = phi ulong [ %indvar.next.i17, %backEdgeInst ], [ 0, %no_exit.i6.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i8 = cast ulong %indvar.i7 to long		; <long> [#uses=2]
+ 	%Str.0.0.i9 = getelementptr sbyte* %mem_tmp.1.0, long %Str.0.0.rec.i8		; <sbyte*> [#uses=1]
+ 	%inc.rec.i10 = add long %Str.0.0.rec.i8, 1		; <long> [#uses=1]
+ 	%inc.i11 = getelementptr sbyte* %mem_tmp.1.0, long %inc.rec.i10		; <sbyte*> [#uses=1]
+ 	%tmp.7.i12 = load sbyte* %Str.0.0.i9		; <sbyte> [#uses=1]
+ 	%tmp.8.i13 = cast sbyte %tmp.7.i12 to int		; <int> [#uses=1]
+ 	%tmp.5.i14 = call int %putchar( int %tmp.8.i13 )		; <int> [#uses=0]
+ 	%tmp.2.i15 = load sbyte* %inc.i11		; <sbyte> [#uses=1]
+ 	%tmp.3.i16 = seteq sbyte %tmp.2.i15, 0		; <bool> [#uses=1]
+ 	%indvar.next.i17 = add ulong %indvar.i7, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i16, label %puts.entry26.loopexit, label %backEdgeInst
+ 
+ puts.entry26.loopexit:		; preds = %no_exit.i6
+ 	br label %puts.entry26
+ 
+ puts.entry26:		; preds = %loopexit.0.selectcont, %puts.entry26.loopexit
+ 	%tmp.9.i19 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.15.1 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.16.1 = call %struct.Toggle* %tmp.15.1( %struct.Toggle* %0 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.18.1 = getelementptr %struct.Toggle* %tmp.16.1, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.19.1 = load sbyte (%struct.Toggle*)** %tmp.18.1		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.20.1 = call sbyte %tmp.19.1( %struct.Toggle* %0 )		; <sbyte> [#uses=1]
+ 	%tmp.22.1 = setne sbyte %tmp.20.1, 0		; <bool> [#uses=1]
+ 	br bool %tmp.22.1, label %puts.entry26.selecttrue, label %puts.entry26.selectcont
+ 
+ puts.entry26.selecttrue:		; preds = %puts.entry26
+ 	br label %puts.entry26.selectcont
+ 
+ puts.entry26.selectcont:		; preds = %puts.entry26, %puts.entry26.selecttrue
+ 	%mem_tmp.1.0.1 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry26.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry26 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i50 = load sbyte* %mem_tmp.1.0.1		; <sbyte> [#uses=1]
+ 	%tmp.36.i51 = seteq sbyte %tmp.25.i50, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i51, label %puts.entry72, label %no_exit.i52.preheader
+ 
+ no_exit.i52.preheader:		; preds = %puts.entry26.selectcont
+ 	br label %no_exit.i52
+ 
+ no_exit.i52:		; preds = %no_exit.i52.preheader, %backEdgeInst2
+ 	%indvar.i53 = phi ulong [ %indvar.next.i63, %backEdgeInst2 ], [ 0, %no_exit.i52.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i54 = cast ulong %indvar.i53 to long		; <long> [#uses=2]
+ 	%Str.0.0.i55 = getelementptr sbyte* %mem_tmp.1.0.1, long %Str.0.0.rec.i54		; <sbyte*> [#uses=1]
+ 	%inc.rec.i56 = add long %Str.0.0.rec.i54, 1		; <long> [#uses=1]
+ 	%inc.i57 = getelementptr sbyte* %mem_tmp.1.0.1, long %inc.rec.i56		; <sbyte*> [#uses=1]
+ 	%tmp.7.i58 = load sbyte* %Str.0.0.i55		; <sbyte> [#uses=1]
+ 	%tmp.8.i59 = cast sbyte %tmp.7.i58 to int		; <int> [#uses=1]
+ 	%tmp.5.i60 = call int %putchar( int %tmp.8.i59 )		; <int> [#uses=0]
+ 	%tmp.2.i61 = load sbyte* %inc.i57		; <sbyte> [#uses=1]
+ 	%tmp.3.i62 = seteq sbyte %tmp.2.i61, 0		; <bool> [#uses=1]
+ 	%indvar.next.i63 = add ulong %indvar.i53, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i62, label %puts.entry72.loopexit, label %backEdgeInst2
+ 
+ puts.entry72.loopexit:		; preds = %no_exit.i52
+ 	br label %puts.entry72
+ 
+ puts.entry72:		; preds = %puts.entry26.selectcont, %puts.entry72.loopexit
+ 	%tmp.9.i65 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.15.2 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.16.2 = call %struct.Toggle* %tmp.15.2( %struct.Toggle* %0 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.18.2 = getelementptr %struct.Toggle* %tmp.16.2, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.19.2 = load sbyte (%struct.Toggle*)** %tmp.18.2		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.20.2 = call sbyte %tmp.19.2( %struct.Toggle* %0 )		; <sbyte> [#uses=1]
+ 	%tmp.22.2 = setne sbyte %tmp.20.2, 0		; <bool> [#uses=1]
+ 	br bool %tmp.22.2, label %puts.entry72.selecttrue, label %puts.entry72.selectcont
+ 
+ puts.entry72.selecttrue:		; preds = %puts.entry72
+ 	br label %puts.entry72.selectcont
+ 
+ puts.entry72.selectcont:		; preds = %puts.entry72, %puts.entry72.selecttrue
+ 	%mem_tmp.1.0.2 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry72.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry72 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i73 = load sbyte* %mem_tmp.1.0.2		; <sbyte> [#uses=1]
+ 	%tmp.36.i74 = seteq sbyte %tmp.25.i73, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i74, label %puts.entry95, label %no_exit.i75.preheader
+ 
+ no_exit.i75.preheader:		; preds = %puts.entry72.selectcont
+ 	br label %no_exit.i75
+ 
+ no_exit.i75:		; preds = %no_exit.i75.preheader, %backEdgeInst3
+ 	%indvar.i76 = phi ulong [ %indvar.next.i86, %backEdgeInst3 ], [ 0, %no_exit.i75.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i77 = cast ulong %indvar.i76 to long		; <long> [#uses=2]
+ 	%Str.0.0.i78 = getelementptr sbyte* %mem_tmp.1.0.2, long %Str.0.0.rec.i77		; <sbyte*> [#uses=1]
+ 	%inc.rec.i79 = add long %Str.0.0.rec.i77, 1		; <long> [#uses=1]
+ 	%inc.i80 = getelementptr sbyte* %mem_tmp.1.0.2, long %inc.rec.i79		; <sbyte*> [#uses=1]
+ 	%tmp.7.i81 = load sbyte* %Str.0.0.i78		; <sbyte> [#uses=1]
+ 	%tmp.8.i82 = cast sbyte %tmp.7.i81 to int		; <int> [#uses=1]
+ 	%tmp.5.i83 = call int %putchar( int %tmp.8.i82 )		; <int> [#uses=0]
+ 	%tmp.2.i84 = load sbyte* %inc.i80		; <sbyte> [#uses=1]
+ 	%tmp.3.i85 = seteq sbyte %tmp.2.i84, 0		; <bool> [#uses=1]
+ 	%indvar.next.i86 = add ulong %indvar.i76, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i85, label %puts.entry95.loopexit, label %backEdgeInst3
+ 
+ puts.entry95.loopexit:		; preds = %no_exit.i75
+ 	br label %puts.entry95
+ 
+ puts.entry95:		; preds = %puts.entry72.selectcont, %puts.entry95.loopexit
+ 	%tmp.9.i88 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.15.3 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.16.3 = call %struct.Toggle* %tmp.15.3( %struct.Toggle* %0 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.18.3 = getelementptr %struct.Toggle* %tmp.16.3, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.19.3 = load sbyte (%struct.Toggle*)** %tmp.18.3		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.20.3 = call sbyte %tmp.19.3( %struct.Toggle* %0 )		; <sbyte> [#uses=1]
+ 	%tmp.22.3 = setne sbyte %tmp.20.3, 0		; <bool> [#uses=1]
+ 	br bool %tmp.22.3, label %puts.entry95.selecttrue, label %puts.entry95.selectcont
+ 
+ puts.entry95.selecttrue:		; preds = %puts.entry95
+ 	br label %puts.entry95.selectcont
+ 
+ puts.entry95.selectcont:		; preds = %puts.entry95, %puts.entry95.selecttrue
+ 	%mem_tmp.1.0.3 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry95.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry95 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i119 = load sbyte* %mem_tmp.1.0.3		; <sbyte> [#uses=1]
+ 	%tmp.36.i120 = seteq sbyte %tmp.25.i119, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i120, label %puts.entry141, label %no_exit.i121.preheader
+ 
+ no_exit.i121.preheader:		; preds = %puts.entry95.selectcont
+ 	br label %no_exit.i121
+ 
+ no_exit.i121:		; preds = %no_exit.i121.preheader, %backEdgeInst4
+ 	%indvar.i122 = phi ulong [ %indvar.next.i132, %backEdgeInst4 ], [ 0, %no_exit.i121.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i123 = cast ulong %indvar.i122 to long		; <long> [#uses=2]
+ 	%Str.0.0.i124 = getelementptr sbyte* %mem_tmp.1.0.3, long %Str.0.0.rec.i123		; <sbyte*> [#uses=1]
+ 	%inc.rec.i125 = add long %Str.0.0.rec.i123, 1		; <long> [#uses=1]
+ 	%inc.i126 = getelementptr sbyte* %mem_tmp.1.0.3, long %inc.rec.i125		; <sbyte*> [#uses=1]
+ 	%tmp.7.i127 = load sbyte* %Str.0.0.i124		; <sbyte> [#uses=1]
+ 	%tmp.8.i128 = cast sbyte %tmp.7.i127 to int		; <int> [#uses=1]
+ 	%tmp.5.i129 = call int %putchar( int %tmp.8.i128 )		; <int> [#uses=0]
+ 	%tmp.2.i130 = load sbyte* %inc.i126		; <sbyte> [#uses=1]
+ 	%tmp.3.i131 = seteq sbyte %tmp.2.i130, 0		; <bool> [#uses=1]
+ 	%indvar.next.i132 = add ulong %indvar.i122, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i131, label %puts.entry141.loopexit, label %backEdgeInst4
+ 
+ puts.entry141.loopexit:		; preds = %no_exit.i121
+ 	br label %puts.entry141
+ 
+ puts.entry141:		; preds = %puts.entry95.selectcont, %puts.entry141.loopexit
+ 	%tmp.9.i134 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.15.4 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.16.4 = call %struct.Toggle* %tmp.15.4( %struct.Toggle* %0 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.18.4 = getelementptr %struct.Toggle* %tmp.16.4, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.19.4 = load sbyte (%struct.Toggle*)** %tmp.18.4		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.20.4 = call sbyte %tmp.19.4( %struct.Toggle* %0 )		; <sbyte> [#uses=1]
+ 	%tmp.22.4 = setne sbyte %tmp.20.4, 0		; <bool> [#uses=1]
+ 	br bool %tmp.22.4, label %puts.entry141.selecttrue, label %puts.entry141.selectcont
+ 
+ puts.entry141.selecttrue:		; preds = %puts.entry141
+ 	br label %puts.entry141.selectcont
+ 
+ puts.entry141.selectcont:		; preds = %puts.entry141, %puts.entry141.selecttrue
+ 	%mem_tmp.1.0.4 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry141.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry141 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i142 = load sbyte* %mem_tmp.1.0.4		; <sbyte> [#uses=1]
+ 	%tmp.36.i143 = seteq sbyte %tmp.25.i142, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i143, label %puts.entry164, label %no_exit.i144.preheader
+ 
+ no_exit.i144.preheader:		; preds = %puts.entry141.selectcont
+ 	br label %no_exit.i144
+ 
+ no_exit.i144:		; preds = %no_exit.i144.preheader, %backEdgeInst5
+ 	%indvar.i145 = phi ulong [ %indvar.next.i155, %backEdgeInst5 ], [ 0, %no_exit.i144.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i146 = cast ulong %indvar.i145 to long		; <long> [#uses=2]
+ 	%Str.0.0.i147 = getelementptr sbyte* %mem_tmp.1.0.4, long %Str.0.0.rec.i146		; <sbyte*> [#uses=1]
+ 	%inc.rec.i148 = add long %Str.0.0.rec.i146, 1		; <long> [#uses=1]
+ 	%inc.i149 = getelementptr sbyte* %mem_tmp.1.0.4, long %inc.rec.i148		; <sbyte*> [#uses=1]
+ 	%tmp.7.i150 = load sbyte* %Str.0.0.i147		; <sbyte> [#uses=1]
+ 	%tmp.8.i151 = cast sbyte %tmp.7.i150 to int		; <int> [#uses=1]
+ 	%tmp.5.i152 = call int %putchar( int %tmp.8.i151 )		; <int> [#uses=0]
+ 	%tmp.2.i153 = load sbyte* %inc.i149		; <sbyte> [#uses=1]
+ 	%tmp.3.i154 = seteq sbyte %tmp.2.i153, 0		; <bool> [#uses=1]
+ 	%indvar.next.i155 = add ulong %indvar.i145, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i154, label %puts.entry164.loopexit, label %backEdgeInst5
+ 
+ puts.entry164.loopexit:		; preds = %no_exit.i144
+ 	br label %puts.entry164
+ 
+ puts.entry164:		; preds = %puts.entry141.selectcont, %puts.entry164.loopexit
+ 	%tmp.9.i157 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	call void %free( sbyte* %tmp.1.i.i )
+ 	%tmp.3227 = setgt int %mem_tmp.0.0, 0		; <bool> [#uses=2]
+ 	br bool %tmp.3227, label %no_exit.1.preheader, label %puts.entry210
+ 
+ no_exit.1.preheader:		; preds = %puts.entry164
+ 	br label %no_exit.1
+ 
+ no_exit.1:		; preds = %no_exit.1.preheader, %backEdgeInst6
+ 	%indvar34 = phi uint [ %indvar.next35, %backEdgeInst6 ], [ 0, %no_exit.1.preheader ]		; <uint> [#uses=2]
+ 	%i.2.0 = cast uint %indvar34 to int		; <int> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:1 [#uses=1]
+ 	cast sbyte* %1 to %struct.Toggle*		; <%struct.Toggle*>:1 [#uses=3]
+ 	%tmp.1.i.i8 = getelementptr %struct.Toggle* %1, long 0, uint 0		; <sbyte*> [#uses=1]
+ 	%tmp.4.i.i9 = getelementptr %struct.Toggle* %1, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	store sbyte (%struct.Toggle*)* %copyConst, sbyte (%struct.Toggle*)** %tmp.4.i.i9
+ 	%tmp.6.i.i10 = getelementptr %struct.Toggle* %1, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=1]
+ 	store %struct.Toggle* (%struct.Toggle*)* %copyConst, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i10
+ 	call void %free( sbyte* %tmp.1.i.i8 )
+ 	%inc.1 = add int %i.2.0, 1		; <int> [#uses=1]
+ 	%tmp.32 = setlt int %inc.1, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next35 = add uint %indvar34, 1		; <uint> [#uses=1]
+ 	br bool %tmp.32, label %backEdgeInst6, label %puts.entry210.loopexit
+ 
+ puts.entry210.loopexit:		; preds = %no_exit.1
+ 	br label %puts.entry210
+ 
+ puts.entry210:		; preds = %puts.entry164, %puts.entry210.loopexit
+ 	%tmp.9.i203 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	"constantGEP:" = getelementptr %struct.NthToggle* null, uint 1		; <%struct.NthToggle*> [#uses=1]
+ 	%constantCast29 = cast %struct.NthToggle* "constantGEP:" to uint		; <uint> [#uses=2]
+ 	call sbyte* %malloc( uint %constantCast29 )		; <sbyte*>:2 [#uses=1]
+ 	cast sbyte* %2 to %struct.NthToggle*		; <%struct.NthToggle*>:0 [#uses=4]
+ 	%ptr1 = getelementptr %struct.NthToggle* %0, long 0, uint 0		; <%struct.Toggle*> [#uses=18]
+ 	%tmp.1.i.i151 = getelementptr %struct.Toggle* %ptr1, long 0, uint 0		; <sbyte*> [#uses=2]
+ 	%copyConst = cast sbyte 1 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %copyConst, sbyte* %tmp.1.i.i151
+ 	%tmp.4.i.i163 = getelementptr %struct.Toggle* %ptr1, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	store sbyte (%struct.Toggle*)* %copyConst, sbyte (%struct.Toggle*)** %tmp.4.i.i163
+ 	%tmp.6.i.i175 = getelementptr %struct.Toggle* %ptr1, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=8]
+ 	%tmp.1.i.i19 = getelementptr %struct.NthToggle* %0, long 0, uint 1		; <int*> [#uses=1]
+ 	%copyConst31 = cast int 3 to int		; <int> [#uses=2]
+ 	store int %copyConst31, int* %tmp.1.i.i19
+ 	%tmp.4.i.i20 = getelementptr %struct.NthToggle* %0, long 0, uint 2		; <int*> [#uses=1]
+ 	%constantCast = cast %struct.NthToggle* (%struct.NthToggle*)* %nth_toggle_activate to %struct.Toggle* (%struct.Toggle*)*		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=2]
+ 	store %struct.Toggle* (%struct.Toggle*)* %constantCast, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175
+ 	%copyConst32 = cast int 1 to int		; <int> [#uses=1]
+ 	store int %copyConst32, int* %tmp.4.i.i20
+ 	%tmp = cast %struct.NthToggle* %0 to %struct.Toggle*		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51 = getelementptr %struct.Toggle* %tmp, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52 = load sbyte (%struct.Toggle*)** %tmp.51		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53 = call sbyte %tmp.52( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56 = setne sbyte %tmp.53, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56, label %puts.entry210.selecttrue, label %puts.entry210.selectcont
+ 
+ puts.entry210.selecttrue:		; preds = %puts.entry210
+ 	br label %puts.entry210.selectcont
+ 
+ puts.entry210.selectcont:		; preds = %puts.entry210, %puts.entry210.selecttrue
+ 	%Msg.0 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry210.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry210 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i237 = load sbyte* %Msg.0		; <sbyte> [#uses=1]
+ 	%tmp.36.i238 = seteq sbyte %tmp.25.i237, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i238, label %puts.entry259, label %no_exit.i239.preheader
+ 
+ no_exit.i239.preheader:		; preds = %puts.entry210.selectcont
+ 	br label %no_exit.i239
+ 
+ no_exit.i239:		; preds = %no_exit.i239.preheader, %backEdgeInst7
+ 	%indvar.i240 = phi ulong [ %indvar.next.i250, %backEdgeInst7 ], [ 0, %no_exit.i239.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i241 = cast ulong %indvar.i240 to long		; <long> [#uses=2]
+ 	%Str.0.0.i242 = getelementptr sbyte* %Msg.0, long %Str.0.0.rec.i241		; <sbyte*> [#uses=1]
+ 	%inc.rec.i243 = add long %Str.0.0.rec.i241, 1		; <long> [#uses=1]
+ 	%inc.i244 = getelementptr sbyte* %Msg.0, long %inc.rec.i243		; <sbyte*> [#uses=1]
+ 	%tmp.7.i245 = load sbyte* %Str.0.0.i242		; <sbyte> [#uses=1]
+ 	%tmp.8.i246 = cast sbyte %tmp.7.i245 to int		; <int> [#uses=1]
+ 	%tmp.5.i247 = call int %putchar( int %tmp.8.i246 )		; <int> [#uses=0]
+ 	%tmp.2.i248 = load sbyte* %inc.i244		; <sbyte> [#uses=1]
+ 	%tmp.3.i249 = seteq sbyte %tmp.2.i248, 0		; <bool> [#uses=1]
+ 	%indvar.next.i250 = add ulong %indvar.i240, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i249, label %puts.entry259.loopexit, label %backEdgeInst7
+ 
+ puts.entry259.loopexit:		; preds = %no_exit.i239
+ 	br label %puts.entry259
+ 
+ puts.entry259:		; preds = %puts.entry210.selectcont, %puts.entry259.loopexit
+ 	%tmp.9.i252 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.1 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.1 = call %struct.Toggle* %tmp.47.1( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.1 = getelementptr %struct.Toggle* %tmp.48.1, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.1 = load sbyte (%struct.Toggle*)** %tmp.51.1		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.1 = call sbyte %tmp.52.1( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.1 = setne sbyte %tmp.53.1, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.1, label %puts.entry259.selecttrue, label %puts.entry259.selectcont
+ 
+ puts.entry259.selecttrue:		; preds = %puts.entry259
+ 	br label %puts.entry259.selectcont
+ 
+ puts.entry259.selectcont:		; preds = %puts.entry259, %puts.entry259.selecttrue
+ 	%Msg.0.1 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry259.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry259 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i260 = load sbyte* %Msg.0.1		; <sbyte> [#uses=1]
+ 	%tmp.36.i261 = seteq sbyte %tmp.25.i260, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i261, label %puts.entry282, label %no_exit.i262.preheader
+ 
+ no_exit.i262.preheader:		; preds = %puts.entry259.selectcont
+ 	br label %no_exit.i262
+ 
+ no_exit.i262:		; preds = %no_exit.i262.preheader, %backEdgeInst8
+ 	%indvar.i263 = phi ulong [ %indvar.next.i273, %backEdgeInst8 ], [ 0, %no_exit.i262.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i264 = cast ulong %indvar.i263 to long		; <long> [#uses=2]
+ 	%Str.0.0.i265 = getelementptr sbyte* %Msg.0.1, long %Str.0.0.rec.i264		; <sbyte*> [#uses=1]
+ 	%inc.rec.i266 = add long %Str.0.0.rec.i264, 1		; <long> [#uses=1]
+ 	%inc.i267 = getelementptr sbyte* %Msg.0.1, long %inc.rec.i266		; <sbyte*> [#uses=1]
+ 	%tmp.7.i268 = load sbyte* %Str.0.0.i265		; <sbyte> [#uses=1]
+ 	%tmp.8.i269 = cast sbyte %tmp.7.i268 to int		; <int> [#uses=1]
+ 	%tmp.5.i270 = call int %putchar( int %tmp.8.i269 )		; <int> [#uses=0]
+ 	%tmp.2.i271 = load sbyte* %inc.i267		; <sbyte> [#uses=1]
+ 	%tmp.3.i272 = seteq sbyte %tmp.2.i271, 0		; <bool> [#uses=1]
+ 	%indvar.next.i273 = add ulong %indvar.i263, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i272, label %puts.entry282.loopexit, label %backEdgeInst8
+ 
+ puts.entry282.loopexit:		; preds = %no_exit.i262
+ 	br label %puts.entry282
+ 
+ puts.entry282:		; preds = %puts.entry259.selectcont, %puts.entry282.loopexit
+ 	%tmp.9.i275 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.2 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.2 = call %struct.Toggle* %tmp.47.2( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.2 = getelementptr %struct.Toggle* %tmp.48.2, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.2 = load sbyte (%struct.Toggle*)** %tmp.51.2		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.2 = call sbyte %tmp.52.2( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.2 = setne sbyte %tmp.53.2, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.2, label %puts.entry282.selecttrue, label %puts.entry282.selectcont
+ 
+ puts.entry282.selecttrue:		; preds = %puts.entry282
+ 	br label %puts.entry282.selectcont
+ 
+ puts.entry282.selectcont:		; preds = %puts.entry282, %puts.entry282.selecttrue
+ 	%Msg.0.2 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry282.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry282 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i283 = load sbyte* %Msg.0.2		; <sbyte> [#uses=1]
+ 	%tmp.36.i284 = seteq sbyte %tmp.25.i283, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i284, label %puts.entry305, label %no_exit.i285.preheader
+ 
+ no_exit.i285.preheader:		; preds = %puts.entry282.selectcont
+ 	br label %no_exit.i285
+ 
+ no_exit.i285:		; preds = %no_exit.i285.preheader, %backEdgeInst9
+ 	%indvar.i286 = phi ulong [ %indvar.next.i296, %backEdgeInst9 ], [ 0, %no_exit.i285.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i287 = cast ulong %indvar.i286 to long		; <long> [#uses=2]
+ 	%Str.0.0.i288 = getelementptr sbyte* %Msg.0.2, long %Str.0.0.rec.i287		; <sbyte*> [#uses=1]
+ 	%inc.rec.i289 = add long %Str.0.0.rec.i287, 1		; <long> [#uses=1]
+ 	%inc.i290 = getelementptr sbyte* %Msg.0.2, long %inc.rec.i289		; <sbyte*> [#uses=1]
+ 	%tmp.7.i291 = load sbyte* %Str.0.0.i288		; <sbyte> [#uses=1]
+ 	%tmp.8.i292 = cast sbyte %tmp.7.i291 to int		; <int> [#uses=1]
+ 	%tmp.5.i293 = call int %putchar( int %tmp.8.i292 )		; <int> [#uses=0]
+ 	%tmp.2.i294 = load sbyte* %inc.i290		; <sbyte> [#uses=1]
+ 	%tmp.3.i295 = seteq sbyte %tmp.2.i294, 0		; <bool> [#uses=1]
+ 	%indvar.next.i296 = add ulong %indvar.i286, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i295, label %puts.entry305.loopexit, label %backEdgeInst9
+ 
+ puts.entry305.loopexit:		; preds = %no_exit.i285
+ 	br label %puts.entry305
+ 
+ puts.entry305:		; preds = %puts.entry282.selectcont, %puts.entry305.loopexit
+ 	%tmp.9.i298 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.3 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.3 = call %struct.Toggle* %tmp.47.3( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.3 = getelementptr %struct.Toggle* %tmp.48.3, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.3 = load sbyte (%struct.Toggle*)** %tmp.51.3		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.3 = call sbyte %tmp.52.3( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.3 = setne sbyte %tmp.53.3, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.3, label %puts.entry305.selecttrue, label %puts.entry305.selectcont
+ 
+ puts.entry305.selecttrue:		; preds = %puts.entry305
+ 	br label %puts.entry305.selectcont
+ 
+ puts.entry305.selectcont:		; preds = %puts.entry305, %puts.entry305.selecttrue
+ 	%Msg.0.3 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry305.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry305 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i214 = load sbyte* %Msg.0.3		; <sbyte> [#uses=1]
+ 	%tmp.36.i215 = seteq sbyte %tmp.25.i214, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i215, label %puts.entry236, label %no_exit.i216.preheader
+ 
+ no_exit.i216.preheader:		; preds = %puts.entry305.selectcont
+ 	br label %no_exit.i216
+ 
+ no_exit.i216:		; preds = %no_exit.i216.preheader, %backEdgeInst10
+ 	%indvar.i217 = phi ulong [ %indvar.next.i227, %backEdgeInst10 ], [ 0, %no_exit.i216.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i218 = cast ulong %indvar.i217 to long		; <long> [#uses=2]
+ 	%Str.0.0.i219 = getelementptr sbyte* %Msg.0.3, long %Str.0.0.rec.i218		; <sbyte*> [#uses=1]
+ 	%inc.rec.i220 = add long %Str.0.0.rec.i218, 1		; <long> [#uses=1]
+ 	%inc.i221 = getelementptr sbyte* %Msg.0.3, long %inc.rec.i220		; <sbyte*> [#uses=1]
+ 	%tmp.7.i222 = load sbyte* %Str.0.0.i219		; <sbyte> [#uses=1]
+ 	%tmp.8.i223 = cast sbyte %tmp.7.i222 to int		; <int> [#uses=1]
+ 	%tmp.5.i224 = call int %putchar( int %tmp.8.i223 )		; <int> [#uses=0]
+ 	%tmp.2.i225 = load sbyte* %inc.i221		; <sbyte> [#uses=1]
+ 	%tmp.3.i226 = seteq sbyte %tmp.2.i225, 0		; <bool> [#uses=1]
+ 	%indvar.next.i227 = add ulong %indvar.i217, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i226, label %puts.entry236.loopexit, label %backEdgeInst10
+ 
+ puts.entry236.loopexit:		; preds = %no_exit.i216
+ 	br label %puts.entry236
+ 
+ puts.entry236:		; preds = %puts.entry305.selectcont, %puts.entry236.loopexit
+ 	%tmp.9.i229 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.4 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.4 = call %struct.Toggle* %tmp.47.4( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.4 = getelementptr %struct.Toggle* %tmp.48.4, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.4 = load sbyte (%struct.Toggle*)** %tmp.51.4		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.4 = call sbyte %tmp.52.4( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.4 = setne sbyte %tmp.53.4, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.4, label %puts.entry236.selecttrue, label %puts.entry236.selectcont
+ 
+ puts.entry236.selecttrue:		; preds = %puts.entry236
+ 	br label %puts.entry236.selectcont
+ 
+ puts.entry236.selectcont:		; preds = %puts.entry236, %puts.entry236.selecttrue
+ 	%Msg.0.4 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry236.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry236 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i165 = load sbyte* %Msg.0.4		; <sbyte> [#uses=1]
+ 	%tmp.36.i166 = seteq sbyte %tmp.25.i165, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i166, label %puts.entry187, label %no_exit.i167.preheader
+ 
+ no_exit.i167.preheader:		; preds = %puts.entry236.selectcont
+ 	br label %no_exit.i167
+ 
+ no_exit.i167:		; preds = %no_exit.i167.preheader, %backEdgeInst11
+ 	%indvar.i168 = phi ulong [ %indvar.next.i178, %backEdgeInst11 ], [ 0, %no_exit.i167.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i169 = cast ulong %indvar.i168 to long		; <long> [#uses=2]
+ 	%Str.0.0.i170 = getelementptr sbyte* %Msg.0.4, long %Str.0.0.rec.i169		; <sbyte*> [#uses=1]
+ 	%inc.rec.i171 = add long %Str.0.0.rec.i169, 1		; <long> [#uses=1]
+ 	%inc.i172 = getelementptr sbyte* %Msg.0.4, long %inc.rec.i171		; <sbyte*> [#uses=1]
+ 	%tmp.7.i173 = load sbyte* %Str.0.0.i170		; <sbyte> [#uses=1]
+ 	%tmp.8.i174 = cast sbyte %tmp.7.i173 to int		; <int> [#uses=1]
+ 	%tmp.5.i175 = call int %putchar( int %tmp.8.i174 )		; <int> [#uses=0]
+ 	%tmp.2.i176 = load sbyte* %inc.i172		; <sbyte> [#uses=1]
+ 	%tmp.3.i177 = seteq sbyte %tmp.2.i176, 0		; <bool> [#uses=1]
+ 	%indvar.next.i178 = add ulong %indvar.i168, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i177, label %puts.entry187.loopexit, label %backEdgeInst11
+ 
+ puts.entry187.loopexit:		; preds = %no_exit.i167
+ 	br label %puts.entry187
+ 
+ puts.entry187:		; preds = %puts.entry236.selectcont, %puts.entry187.loopexit
+ 	%tmp.9.i180 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.5 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.5 = call %struct.Toggle* %tmp.47.5( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.5 = getelementptr %struct.Toggle* %tmp.48.5, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.5 = load sbyte (%struct.Toggle*)** %tmp.51.5		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.5 = call sbyte %tmp.52.5( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.5 = setne sbyte %tmp.53.5, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.5, label %puts.entry187.selecttrue, label %puts.entry187.selectcont
+ 
+ puts.entry187.selecttrue:		; preds = %puts.entry187
+ 	br label %puts.entry187.selectcont
+ 
+ puts.entry187.selectcont:		; preds = %puts.entry187, %puts.entry187.selecttrue
+ 	%Msg.0.5 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry187.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry187 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i96 = load sbyte* %Msg.0.5		; <sbyte> [#uses=1]
+ 	%tmp.36.i97 = seteq sbyte %tmp.25.i96, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i97, label %puts.entry118, label %no_exit.i98.preheader
+ 
+ no_exit.i98.preheader:		; preds = %puts.entry187.selectcont
+ 	br label %no_exit.i98
+ 
+ no_exit.i98:		; preds = %no_exit.i98.preheader, %backEdgeInst12
+ 	%indvar.i99 = phi ulong [ %indvar.next.i109, %backEdgeInst12 ], [ 0, %no_exit.i98.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i100 = cast ulong %indvar.i99 to long		; <long> [#uses=2]
+ 	%Str.0.0.i101 = getelementptr sbyte* %Msg.0.5, long %Str.0.0.rec.i100		; <sbyte*> [#uses=1]
+ 	%inc.rec.i102 = add long %Str.0.0.rec.i100, 1		; <long> [#uses=1]
+ 	%inc.i103 = getelementptr sbyte* %Msg.0.5, long %inc.rec.i102		; <sbyte*> [#uses=1]
+ 	%tmp.7.i104 = load sbyte* %Str.0.0.i101		; <sbyte> [#uses=1]
+ 	%tmp.8.i105 = cast sbyte %tmp.7.i104 to int		; <int> [#uses=1]
+ 	%tmp.5.i106 = call int %putchar( int %tmp.8.i105 )		; <int> [#uses=0]
+ 	%tmp.2.i107 = load sbyte* %inc.i103		; <sbyte> [#uses=1]
+ 	%tmp.3.i108 = seteq sbyte %tmp.2.i107, 0		; <bool> [#uses=1]
+ 	%indvar.next.i109 = add ulong %indvar.i99, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i108, label %puts.entry118.loopexit, label %backEdgeInst12
+ 
+ puts.entry118.loopexit:		; preds = %no_exit.i98
+ 	br label %puts.entry118
+ 
+ puts.entry118:		; preds = %puts.entry187.selectcont, %puts.entry118.loopexit
+ 	%tmp.9.i111 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.6 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.6 = call %struct.Toggle* %tmp.47.6( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.6 = getelementptr %struct.Toggle* %tmp.48.6, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.6 = load sbyte (%struct.Toggle*)** %tmp.51.6		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.6 = call sbyte %tmp.52.6( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.6 = setne sbyte %tmp.53.6, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.6, label %puts.entry118.selecttrue, label %puts.entry118.selectcont
+ 
+ puts.entry118.selecttrue:		; preds = %puts.entry118
+ 	br label %puts.entry118.selectcont
+ 
+ puts.entry118.selectcont:		; preds = %puts.entry118, %puts.entry118.selecttrue
+ 	%Msg.0.6 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry118.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry118 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i27 = load sbyte* %Msg.0.6		; <sbyte> [#uses=1]
+ 	%tmp.36.i28 = seteq sbyte %tmp.25.i27, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i28, label %puts.entry49, label %no_exit.i29.preheader
+ 
+ no_exit.i29.preheader:		; preds = %puts.entry118.selectcont
+ 	br label %no_exit.i29
+ 
+ no_exit.i29:		; preds = %no_exit.i29.preheader, %backEdgeInst13
+ 	%indvar.i30 = phi ulong [ %indvar.next.i40, %backEdgeInst13 ], [ 0, %no_exit.i29.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i31 = cast ulong %indvar.i30 to long		; <long> [#uses=2]
+ 	%Str.0.0.i32 = getelementptr sbyte* %Msg.0.6, long %Str.0.0.rec.i31		; <sbyte*> [#uses=1]
+ 	%inc.rec.i33 = add long %Str.0.0.rec.i31, 1		; <long> [#uses=1]
+ 	%inc.i34 = getelementptr sbyte* %Msg.0.6, long %inc.rec.i33		; <sbyte*> [#uses=1]
+ 	%tmp.7.i35 = load sbyte* %Str.0.0.i32		; <sbyte> [#uses=1]
+ 	%tmp.8.i36 = cast sbyte %tmp.7.i35 to int		; <int> [#uses=1]
+ 	%tmp.5.i37 = call int %putchar( int %tmp.8.i36 )		; <int> [#uses=0]
+ 	%tmp.2.i38 = load sbyte* %inc.i34		; <sbyte> [#uses=1]
+ 	%tmp.3.i39 = seteq sbyte %tmp.2.i38, 0		; <bool> [#uses=1]
+ 	%indvar.next.i40 = add ulong %indvar.i30, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i39, label %puts.entry49.loopexit, label %backEdgeInst13
+ 
+ puts.entry49.loopexit:		; preds = %no_exit.i29
+ 	br label %puts.entry49
+ 
+ puts.entry49:		; preds = %puts.entry118.selectcont, %puts.entry49.loopexit
+ 	%tmp.9.i42 = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	%tmp.47.7 = load %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i175		; <%struct.Toggle* (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.48.7 = call %struct.Toggle* %tmp.47.7( %struct.Toggle* %ptr1 )		; <%struct.Toggle*> [#uses=1]
+ 	%tmp.51.7 = getelementptr %struct.Toggle* %tmp.48.7, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.52.7 = load sbyte (%struct.Toggle*)** %tmp.51.7		; <sbyte (%struct.Toggle*)*> [#uses=1]
+ 	%tmp.53.7 = call sbyte %tmp.52.7( %struct.Toggle* %ptr1 )		; <sbyte> [#uses=1]
+ 	%tmp.56.7 = setne sbyte %tmp.53.7, 0		; <bool> [#uses=1]
+ 	br bool %tmp.56.7, label %puts.entry49.selecttrue, label %puts.entry49.selectcont
+ 
+ puts.entry49.selecttrue:		; preds = %puts.entry49
+ 	br label %puts.entry49.selectcont
+ 
+ puts.entry49.selectcont:		; preds = %puts.entry49, %puts.entry49.selecttrue
+ 	%Msg.0.7 = phi sbyte* [ "constantGEP:addrOfGlobal:.str_1", %puts.entry49.selecttrue ], [ "constantGEP:addrOfGlobal:.str_2", %puts.entry49 ]		; <sbyte*> [#uses=3]
+ 	%tmp.25.i = load sbyte* %Msg.0.7		; <sbyte> [#uses=1]
+ 	%tmp.36.i = seteq sbyte %tmp.25.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.36.i, label %puts.entry, label %no_exit.i1.preheader
+ 
+ no_exit.i1.preheader:		; preds = %puts.entry49.selectcont
+ 	br label %no_exit.i1
+ 
+ no_exit.i1:		; preds = %no_exit.i1.preheader, %backEdgeInst14
+ 	%indvar.i2 = phi ulong [ %indvar.next.i3, %backEdgeInst14 ], [ 0, %no_exit.i1.preheader ]		; <ulong> [#uses=2]
+ 	%Str.0.0.rec.i = cast ulong %indvar.i2 to long		; <long> [#uses=2]
+ 	%Str.0.0.i = getelementptr sbyte* %Msg.0.7, long %Str.0.0.rec.i		; <sbyte*> [#uses=1]
+ 	%inc.rec.i = add long %Str.0.0.rec.i, 1		; <long> [#uses=1]
+ 	%inc.i = getelementptr sbyte* %Msg.0.7, long %inc.rec.i		; <sbyte*> [#uses=1]
+ 	%tmp.7.i = load sbyte* %Str.0.0.i		; <sbyte> [#uses=1]
+ 	%tmp.8.i = cast sbyte %tmp.7.i to int		; <int> [#uses=1]
+ 	%tmp.5.i = call int %putchar( int %tmp.8.i )		; <int> [#uses=0]
+ 	%tmp.2.i = load sbyte* %inc.i		; <sbyte> [#uses=1]
+ 	%tmp.3.i = seteq sbyte %tmp.2.i, 0		; <bool> [#uses=1]
+ 	%indvar.next.i3 = add ulong %indvar.i2, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.3.i, label %puts.entry.loopexit, label %backEdgeInst14
+ 
+ puts.entry.loopexit:		; preds = %no_exit.i1
+ 	br label %puts.entry
+ 
+ puts.entry:		; preds = %puts.entry49.selectcont, %puts.entry.loopexit
+ 	%tmp.9.i = call int %putchar( int 10 )		; <int> [#uses=0]
+ 	call void %free( sbyte* %tmp.1.i.i151 )
+ 	br bool %tmp.3227, label %no_exit.3.preheader, label %loopexit.3
+ 
+ no_exit.3.preheader:		; preds = %puts.entry
+ 	br label %no_exit.3
+ 
+ no_exit.3:		; preds = %no_exit.3.preheader, %backEdgeInst15
+ 	%indvar39 = phi uint [ %indvar.next40, %backEdgeInst15 ], [ 0, %no_exit.3.preheader ]		; <uint> [#uses=2]
+ 	%i.0.0 = cast uint %indvar39 to int		; <int> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast29 )		; <sbyte*>:3 [#uses=1]
+ 	cast sbyte* %3 to %struct.NthToggle*		; <%struct.NthToggle*>:1 [#uses=3]
+ 	%ptr16 = getelementptr %struct.NthToggle* %1, long 0, uint 0		; <%struct.Toggle*> [#uses=3]
+ 	%tmp.1.i.i27 = getelementptr %struct.Toggle* %ptr16, long 0, uint 0		; <sbyte*> [#uses=1]
+ 	%tmp.4.i.i39 = getelementptr %struct.Toggle* %ptr16, long 0, uint 1		; <sbyte (%struct.Toggle*)**> [#uses=1]
+ 	store sbyte (%struct.Toggle*)* %copyConst, sbyte (%struct.Toggle*)** %tmp.4.i.i39
+ 	%tmp.6.i.i411 = getelementptr %struct.Toggle* %ptr16, long 0, uint 2		; <%struct.Toggle* (%struct.Toggle*)**> [#uses=1]
+ 	%tmp.1.i.i = getelementptr %struct.NthToggle* %1, long 0, uint 1		; <int*> [#uses=1]
+ 	store int %copyConst31, int* %tmp.1.i.i
+ 	%tmp.4.i.i = getelementptr %struct.NthToggle* %1, long 0, uint 2		; <int*> [#uses=1]
+ 	store int 0, int* %tmp.4.i.i
+ 	store %struct.Toggle* (%struct.Toggle*)* %constantCast, %struct.Toggle* (%struct.Toggle*)** %tmp.6.i.i411
+ 	call void %free( sbyte* %tmp.1.i.i27 )
+ 	%inc.3 = add int %i.0.0, 1		; <int> [#uses=1]
+ 	%tmp.67 = setlt int %inc.3, %mem_tmp.0.0		; <bool> [#uses=1]
+ 	%indvar.next40 = add uint %indvar39, 1		; <uint> [#uses=1]
+ 	br bool %tmp.67, label %backEdgeInst15, label %loopexit.3.loopexit
+ 
+ loopexit.3.loopexit:		; preds = %no_exit.3
+ 	br label %loopexit.3
+ 
+ loopexit.3:		; preds = %puts.entry, %loopexit.3.loopexit
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %no_exit.i6
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i6
+ 
+ backEdgeInst2:		; preds = %no_exit.i52
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i52
+ 
+ backEdgeInst3:		; preds = %no_exit.i75
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i75
+ 
+ backEdgeInst4:		; preds = %no_exit.i121
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i121
+ 
+ backEdgeInst5:		; preds = %no_exit.i144
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i144
+ 
+ backEdgeInst6:		; preds = %no_exit.1
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.1
+ 
+ backEdgeInst7:		; preds = %no_exit.i239
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i239
+ 
+ backEdgeInst8:		; preds = %no_exit.i262
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i262
+ 
+ backEdgeInst9:		; preds = %no_exit.i285
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i285
+ 
+ backEdgeInst10:		; preds = %no_exit.i216
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i216
+ 
+ backEdgeInst11:		; preds = %no_exit.i167
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i167
+ 
+ backEdgeInst12:		; preds = %no_exit.i98
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i98
+ 
+ backEdgeInst13:		; preds = %no_exit.i29
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i29
+ 
+ backEdgeInst14:		; preds = %no_exit.i1
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i1
+ 
+ backEdgeInst15:		; preds = %no_exit.3
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.3
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %putchar(int)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/objinst.main.trace13.txt
diff -c /dev/null reopt/test/TTFTestCases/objinst.main.trace13.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/objinst.main.trace13.txt	Wed Sep  8 16:34:23 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 36 96 


Index: reopt/test/TTFTestCases/objinst.main.trace14.txt
diff -c /dev/null reopt/test/TTFTestCases/objinst.main.trace14.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/objinst.main.trace14.txt	Wed Sep  8 16:34:23 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 88 105 


Index: reopt/test/TTFTestCases/random.ll
diff -c /dev/null reopt/test/TTFTestCases/random.ll:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/random.ll	Wed Sep  8 16:34:24 2004
***************
*** 0 ****
--- 1,108 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %last.0__ = internal global long 42		; <long*> [#uses=3]
+ %.str_1 = internal constant [6 x sbyte] c"%.9f\0A\00"		; <[6 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (int, sbyte**)* } { int (int, sbyte**)* %main }		; <{ int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [1 x sbyte] zeroinitializer		; <[1 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 1		; <int*> [#uses=0]
+ %main.regAllocState = internal constant { uint, [56 x { int, int, uint, int }] } { uint 56, [56 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 2 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 3 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 9 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int -1!
 , uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 1, int 9 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 1, int 9 }, { int, int, uint, int } { int 16, int -2, uint 1, int 9 }, { int, int, uint, int } { int 17, int -1, uint 1, int 9 }, { int, int, uint, int } { int 18, int -1, uint 1, int 8 }, { int, int, uint, int } { int 19, int -1, uint 1, int 11 }, { int, int, uint, int } { int 20, int -1, uint 1, int 9 }, { int, int, uint, int } { int 21, int -1, uint 1, int 10 }, { int, int, uint, int } { int 22, int -1, uint 1, int 12 }, { int, int, uint, int } { int 23, int -1, uint 0, int -1 }, { int, int, uint, int } { int 24, int -1, uint 1, int 7 }, { int, int, uint, int } { int 24, int -2, uint 1, int 7 }, { int, int, uint, int } { int 25, int -1, uint 1, int 11 }, { int, int, uint, int } { int 25, int -2, uint 1, int 11 }, { int, int, uint,!
  int } { int 26, int -1, uint 1, int 11 }, { int, int, uint, int } { i
nt 27, int -1, uint 1, int 11 }, { int, int, uint, int } { int 28, int -1, uint 1, int 11 }, { int, int, uint, int } { int 29, int -1, uint 1, int 7 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 0, int -1 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 1, int 2 }, { int, int, uint, int } { int 35, int -1, uint 1, int 3 }, { int, int, uint, int } { int 36, int -1, uint 1, int 3 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 1, int 3 }, { int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 1, int 3 }, { int, int, uint, int } { int 41, int -1, uint 0, int -1 }, { int, int, uint, int } { int 42, int -1, uint 1, int 34 }, { int, int, uint, int } { int 43, int -1, uint 1, int 34 }, { !
 int, int, uint, int } { int 44, int -1, uint 1, int 34 }, { int, int, uint, int } { int 45, int -1, uint 0, int -1 }, { int, int, uint, int } { int 46, int -1, uint 1, int 0 }, { int, int, uint, int } { int 47, int -1, uint 1, int 0 }, { int, int, uint, int } { int 48, int -1, uint 0, int -1 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 0, int -1 } ] }		; <{ uint, [56 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [1 x { uint, [0 x { int, int, uint, int }] }*] } { uint 1, [1 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [56 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [1 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [21 x sbyte*] } { uint 21, [21 x sbyte*] [ sbyte* cast (long* %last.0__ to sbyte*), sbyte* cast ([6 x sbyte]* %.str_1 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [56 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [21 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	%copyConst = cast int 399999998 to int		; <int> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %no_exit.preheader
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=2]
+ 	%dec9 = add int %tmp.3, -2		; <int> [#uses=1]
+ 	%tmp.1010 = seteq int %tmp.3, 1		; <bool> [#uses=1]
+ 	br bool %tmp.1010, label %loopexit, label %no_exit.preheader
+ 
+ no_exit.preheader:		; preds = %__main.entry, %cond_true
+ 	%dec.0.ph = phi int [ %dec9, %cond_true ], [ %copyConst, %__main.entry ]		; <int> [#uses=1]
+ 	%dec.0.ph = cast int %dec.0.ph to uint		; <uint> [#uses=1]
+ 	"addrOfGlobal:last.0__" = getelementptr long* %last.0__, long 0		; <long*> [#uses=2]
+ 	%last.0__.promoted = load long* "addrOfGlobal:last.0__"		; <long> [#uses=1]
+ 	%tmp. = add uint %dec.0.ph, 1		; <uint> [#uses=1]
+ 	%copyConst = cast long 29573 to long		; <long> [#uses=1]
+ 	%copyConst2 = cast long 139968 to long		; <long> [#uses=1]
+ 	br label %no_exit
+ 
+ no_exit:		; preds = %no_exit.preheader, %backEdgeInst
+ 	%indvar = phi uint [ 0, %no_exit.preheader ], [ %indvar.next, %backEdgeInst ]		; <uint> [#uses=1]
+ 	%last.0__.tmp.0 = phi long [ %last.0__.promoted, %no_exit.preheader ], [ %tmp.3.i, %backEdgeInst ]		; <long> [#uses=1]
+ 	%tmp.1.i = mul long %last.0__.tmp.0, 3877		; <long> [#uses=1]
+ 	%tmp.2.i = add long %tmp.1.i, %copyConst		; <long> [#uses=1]
+ 	%tmp.3.i = rem long %tmp.2.i, %copyConst2		; <long> [#uses=2]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=2]
+ 	%exitcond = seteq uint %indvar.next, %tmp.		; <bool> [#uses=1]
+ 	br bool %exitcond, label %loopexit.loopexit, label %backEdgeInst
+ 
+ loopexit.loopexit:		; preds = %no_exit
+ 	store long %tmp.3.i, long* "addrOfGlobal:last.0__"
+ 	br label %loopexit
+ 
+ loopexit:		; preds = %cond_true, %loopexit.loopexit
+ 	"addrOfGlobal:last.0__4" = getelementptr long* %last.0__, long 0		; <long*> [#uses=2]
+ 	%tmp.0.i1 = load long* "addrOfGlobal:last.0__4"		; <long> [#uses=1]
+ 	%tmp.1.i2 = mul long %tmp.0.i1, 3877		; <long> [#uses=1]
+ 	%copyConst5 = cast long 29573 to long		; <long> [#uses=1]
+ 	%tmp.2.i3 = add long %tmp.1.i2, %copyConst5		; <long> [#uses=1]
+ 	%copyConst6 = cast long 139968 to long		; <long> [#uses=1]
+ 	%tmp.3.i4 = rem long %tmp.2.i3, %copyConst6		; <long> [#uses=2]
+ 	store long %tmp.3.i4, long* "addrOfGlobal:last.0__4"
+ 	%tmp.5.i6 = cast long %tmp.3.i4 to double		; <double> [#uses=1]
+ 	%tmp.7.i7 = mul double %tmp.5.i6, 0x4059000000000000		; <double> [#uses=1]
+ 	%tmp.8.i8 = div double %tmp.7.i7, 0x4101160000000000		; <double> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [6 x sbyte]* %.str_1, long 0		; <[6 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [6 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.13 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_1", double %tmp.8.i8 )		; <int> [#uses=0]
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %no_exit
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/random.main.trace15.txt
diff -c /dev/null reopt/test/TTFTestCases/random.main.trace15.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/random.main.trace15.txt	Wed Sep  8 16:34:24 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 5 8 


Index: reopt/test/TTFTestCases/sieve.ll
diff -c /dev/null reopt/test/TTFTestCases/sieve.ll:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/sieve.ll	Wed Sep  8 16:34:24 2004
***************
*** 0 ****
--- 1,182 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %flags.0__ = internal global [8193 x sbyte] zeroinitializer		; <[8193 x sbyte]*> [#uses=2]
+ %.str_1 = internal constant [11 x sbyte] c"Count: %d\0A\00"		; <[11 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { int (int, sbyte**)* } { int (int, sbyte**)* %main }		; <{ int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [1 x sbyte] zeroinitializer		; <[1 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 1		; <int*> [#uses=0]
+ %main.regAllocState = internal constant { uint, [116 x { int, int, uint, int }] } { uint 116, [116 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 2 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 1 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 1, int 0 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 1, int 0 }, { int, int, uint, int } { int 12, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 1, int 8 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 1, int 10 }, { int, int, uint, int } { int 17, int -1, uint 1, int 13 }, { int, int, uint, int } { int 18, int -1, uint 1, int 1 }, { int, int, uint, int } { int 19, int -1, uint 0, int -1 }, { int, int, uint, int } { int 20, int -1, uint 0, int -1 }, { int, int, uint, int } { int 21, int -1, uint 1, int 9 }, { int, int, uint, int } { int 21, int -2, uint 1, int 9 }, { int, int, uint, int } { int 22, int -1, uint 1, int 13 }, { int, int, uint, int } { int 22, int -2, uint 1, int 13 }, { int, int, uint, int } { int 23, int -1, uint 1, int 0 }, { int, int, uint, int } { int 23, int -2, uint 1, int 0 }, { int, int, uint, int } { int 24, int -1, uint 1, int 1 }, { int, int, uint, int } { int 24, int -2, uint 1, int 1 }, { int, int, ui!
 nt, int } { int 25, int -1, uint 1, int 8 }, { int, int, uint, int } {
 int 26, int -1, uint 0, int -1 }, { int, int, uint, int } { int 27, int -1, uint 0, int -1 }, { int, int, uint, int } { int 28, int -1, uint 1, int 15 }, { int, int, uint, int } { int 28, int -2, uint 1, int 8 }, { int, int, uint, int } { int 29, int -1, uint 1, int 4 }, { int, int, uint, int } { int 29, int -2, uint 1, int 13 }, { int, int, uint, int } { int 30, int -1, uint 1, int 2 }, { int, int, uint, int } { int 30, int -2, uint 1, int 2 }, { int, int, uint, int } { int 31, int -1, uint 1, int 3 }, { int, int, uint, int } { int 31, int -2, uint 1, int 3 }, { int, int, uint, int } { int 32, int -1, uint 1, int 5 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 1, int 7 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 1, int 10 }, { !
 int, int, uint, int } { int 39, int -1, uint 0, int -1 }, { int, int, uint, int } { int 40, int -1, uint 0, int -1 }, { int, int, uint, int } { int 41, int -1, uint 0, int -1 }, { int, int, uint, int } { int 42, int -1, uint 1, int 8 }, { int, int, uint, int } { int 43, int -1, uint 0, int -1 }, { int, int, uint, int } { int 44, int -1, uint 1, int 9 }, { int, int, uint, int } { int 44, int -2, uint 1, int 9 }, { int, int, uint, int } { int 45, int -1, uint 1, int 13 }, { int, int, uint, int } { int 45, int -2, uint 1, int 13 }, { int, int, uint, int } { int 46, int -1, uint 1, int 12 }, { int, int, uint, int } { int 46, int -2, uint 1, int 14 }, { int, int, uint, int } { int 47, int -1, uint 1, int 11 }, { int, int, uint, int } { int 47, int -2, uint 1, int 11 }, { int, int, uint, int } { int 48, int -1, uint 0, int -1 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 0, int -1 }, { int, int, uint, int } { int 51,!
  int -1, uint 1, int 10 }, { int, int, uint, int } { int 51, int -2, u
int 1, int 10 }, { int, int, uint, int } { int 52, int -1, uint 0, int -1 }, { int, int, uint, int } { int 53, int -1, uint 1, int 14 }, { int, int, uint, int } { int 54, int -1, uint 0, int -1 }, { int, int, uint, int } { int 55, int -1, uint 1, int 0 }, { int, int, uint, int } { int 56, int -1, uint 0, int -1 }, { int, int, uint, int } { int 57, int -1, uint 0, int -1 }, { int, int, uint, int } { int 58, int -1, uint 1, int 9 }, { int, int, uint, int } { int 59, int -1, uint 0, int -1 }, { int, int, uint, int } { int 60, int -1, uint 0, int -1 }, { int, int, uint, int } { int 61, int -1, uint 0, int -1 }, { int, int, uint, int } { int 62, int -1, uint 1, int 9 }, { int, int, uint, int } { int 62, int -2, uint 1, int 9 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 0, int -1 }, { int, int, uint, int } { int 65, int -1, uint 1, int 9 }, { int, int, uint, int } { int 66, int -1, uint 0, int -1 }, { int, int, uint,!
  int } { int 67, int -1, uint 0, int -1 }, { int, int, uint, int } { int 68, int -1, uint 0, int -1 }, { int, int, uint, int } { int 69, int -1, uint 1, int 14 }, { int, int, uint, int } { int 70, int -1, uint 0, int -1 }, { int, int, uint, int } { int 71, int -1, uint 1, int 9 }, { int, int, uint, int } { int 72, int -1, uint 0, int -1 }, { int, int, uint, int } { int 73, int -1, uint 1, int 10 }, { int, int, uint, int } { int 74, int -1, uint 1, int 11 }, { int, int, uint, int } { int 75, int -1, uint 1, int 14 }, { int, int, uint, int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 1, int 1 }, { int, int, uint, int } { int 77, int -2, uint 1, int 1 }, { int, int, uint, int } { int 78, int -1, uint 0, int -1 }, { int, int, uint, int } { int 79, int -1, uint 1, int 0 }, { int, int, uint, int } { int 80, int -1, uint 1, int 0 }, { int, int, uint, int } { int 81, int -1, uint 0, int -1 }, { int, int, uint, int } { int 82, int -1, uint 1, !
 int 8 }, { int, int, uint, int } { int 82, int -2, uint 1, int 8 }, { 
int, int, uint, int } { int 83, int -1, uint 1, int 13 }, { int, int, uint, int } { int 83, int -2, uint 1, int 13 }, { int, int, uint, int } { int 84, int -1, uint 1, int 9 }, { int, int, uint, int } { int 84, int -2, uint 1, int 9 }, { int, int, uint, int } { int 85, int -1, uint 1, int 10 }, { int, int, uint, int } { int 85, int -2, uint 1, int 10 }, { int, int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uint, int } { int 87, int -1, uint 0, int -1 }, { int, int, uint, int } { int 88, int -1, uint 0, int -1 }, { int, int, uint, int } { int 89, int -1, uint 0, int -1 }, { int, int, uint, int } { int 90, int -1, uint 0, int -1 }, { int, int, uint, int } { int 91, int -1, uint 0, int -1 }, { int, int, uint, int } { int 92, int -1, uint 0, int -1 }, { int, int, uint, int } { int 93, int -1, uint 0, int -1 }, { int, int, uint, int } { int 94, int -1, uint 0, int -1 } ] }		; <{ uint, [116 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [1 x { uint, [0 x { int, int, uint, int }] }*] } { uint 1, [1 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [116 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [1 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [21 x sbyte*] } { uint 21, [21 x sbyte*] [ sbyte* cast ([8193 x sbyte]* %flags.0__ to sbyte*), sbyte* cast ([11 x sbyte]* %.str_1 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [116 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [21 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	%copyConst = cast int 170000 to int		; <int> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %loopentry.0
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=2]
+ 	%dec1 = add int %tmp.3, -1		; <int> [#uses=1]
+ 	%tmp.92 = seteq int %tmp.3, 0		; <bool> [#uses=1]
+ 	br bool %tmp.92, label %loopexit.0, label %no_exit.1
+ 
+ loopentry.0.loopexit.loopexit:		; preds = %loopexit.3
+ 	%indvar.le = cast ulong %indvar27 to int		; <int> [#uses=2]
+ 	%count.1.1.le = add int %indvar.le, %count.1		; <int> [#uses=2]
+ 	%inc.1 = add int %count.1.1.le, 1		; <int> [#uses=1]
+ 	br label %loopentry.0
+ 
+ loopentry.0.loopexit:		; preds = %loopentry.2
+ 	br label %loopentry.0
+ 
+ loopentry.0:		; preds = %__main.entry, %loopentry.0.loopexit.loopexit, %loopentry.0.loopexit
+ 	%indvar.1 = phi int [ 0, %__main.entry ], [ %indvar.le, %loopentry.0.loopexit.loopexit ], [ %indvar.4, %loopentry.0.loopexit ]		; <int> [#uses=1]
+ 	%count.1.1.1 = phi int [ 0, %__main.entry ], [ %count.1.1.le, %loopentry.0.loopexit.loopexit ], [ %count.1.1.4, %loopentry.0.loopexit ]		; <int> [#uses=1]
+ 	%NUM.0 = phi int [ %copyConst, %__main.entry ], [ %dec.0.ph.ph, %loopentry.0.loopexit.loopexit ], [ %dec.0.ph.ph, %loopentry.0.loopexit ]		; <int> [#uses=2]
+ 	%count.2 = phi int [ 0, %__main.entry ], [ %inc.1, %loopentry.0.loopexit.loopexit ], [ %count.1, %loopentry.0.loopexit ]		; <int> [#uses=1]
+ 	%dec = add int %NUM.0, -1		; <int> [#uses=1]
+ 	%tmp.9 = seteq int %NUM.0, 0		; <bool> [#uses=1]
+ 	br bool %tmp.9, label %loopexit.0, label %newCommon
+ 
+ no_exit.1:		; preds = %cond_true, %backEdgeInst5
+ 	%dec.0.ph.ph = phi int [ %dec1, %cond_true ], [ %phi, %backEdgeInst5 ]		; <int> [#uses=3]
+ 	%count.1.1.2 = phi int [ 0, %cond_true ], [ %phi1, %backEdgeInst5 ]		; <int> [#uses=2]
+ 	%indvar.2 = phi int [ 0, %cond_true ], [ %phi2, %backEdgeInst5 ]		; <int> [#uses=2]
+ 	%indvar = phi ulong [ 0, %cond_true ], [ %phi, %backEdgeInst5 ]		; <ulong> [#uses=3]
+ 	%tmp. = add ulong %indvar, 2		; <ulong> [#uses=1]
+ 	%v9 = cast ulong %tmp. to long		; <long> [#uses=1]
+ 	"addrOfGlobal:flags.0__" = getelementptr [8193 x sbyte]* %flags.0__, long 0		; <[8193 x sbyte]*> [#uses=3]
+ 	%tmp.15 = getelementptr [8193 x sbyte]* "addrOfGlobal:flags.0__", long 0, long %v9		; <sbyte*> [#uses=1]
+ 	%copyConst = cast sbyte 1 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %copyConst, sbyte* %tmp.15
+ 	%indvar.next = add ulong %indvar, 1		; <ulong> [#uses=1]
+ 	%copyConst = cast ulong 8190 to ulong		; <ulong> [#uses=1]
+ 	%exitcond = seteq ulong %indvar, %copyConst		; <bool> [#uses=1]
+ 	br bool %exitcond, label %loopentry.2.preheader, label %newCommon
+ 
+ loopentry.2.preheader:		; preds = %no_exit.1
+ 	%copyConst = cast long 8193 to long		; <long> [#uses=4]
+ 	br label %loopentry.2
+ 
+ loopentry.2:		; preds = %loopentry.2.preheader, %backEdgeInst
+ 	%indvar.4 = phi int [ %indvar, %backEdgeInst ], [ %indvar.2, %loopentry.2.preheader ]		; <int> [#uses=1]
+ 	%count.1.1.4 = phi int [ %count.1.1, %backEdgeInst ], [ %count.1.1.2, %loopentry.2.preheader ]		; <int> [#uses=1]
+ 	%i.0 = phi long [ %inc.2, %backEdgeInst ], [ 2, %loopentry.2.preheader ]		; <long> [#uses=2]
+ 	%count.1 = phi int [ %count.1.1, %backEdgeInst ], [ 0, %loopentry.2.preheader ]		; <int> [#uses=3]
+ 	%tmp.18 = setlt long %i.0, %copyConst		; <bool> [#uses=1]
+ 	br bool %tmp.18, label %no_exit.2.preheader, label %loopentry.0.loopexit
+ 
+ no_exit.2.preheader:		; preds = %loopentry.2
+ 	br label %no_exit.2
+ 
+ no_exit.2:		; preds = %no_exit.2.preheader, %backEdgeInst3
+ 	%indvar27 = phi ulong [ %indvar.next28, %backEdgeInst3 ], [ 0, %no_exit.2.preheader ]		; <ulong> [#uses=4]
+ 	%indvar27 = cast ulong %indvar27 to long		; <long> [#uses=1]
+ 	%i.0.1 = add long %indvar27, %i.0		; <long> [#uses=5]
+ 	%tmp.21 = getelementptr [8193 x sbyte]* "addrOfGlobal:flags.0__", long 0, long %i.0.1		; <sbyte*> [#uses=1]
+ 	%tmp.22 = load sbyte* %tmp.21		; <sbyte> [#uses=1]
+ 	%tmp.23 = seteq sbyte %tmp.22, 0		; <bool> [#uses=1]
+ 	br bool %tmp.23, label %endif, label %then
+ 
+ then:		; preds = %no_exit.2
+ 	%tmp.27 = shl long %i.0.1, ubyte 1		; <long> [#uses=2]
+ 	%tmp.2912 = setlt long %tmp.27, %copyConst		; <bool> [#uses=1]
+ 	br bool %tmp.2912, label %no_exit.3.preheader, label %loopexit.3
+ 
+ no_exit.3.preheader:		; preds = %then
+ 	br label %no_exit.3
+ 
+ no_exit.3:		; preds = %no_exit.3.preheader, %backEdgeInst4
+ 	%k.0.5 = phi long [ %tmp.35, %backEdgeInst4 ], [ %tmp.27, %no_exit.3.preheader ]		; <long> [#uses=2]
+ 	%tmp.32 = getelementptr [8193 x sbyte]* "addrOfGlobal:flags.0__", long 0, long %k.0.5		; <sbyte*> [#uses=1]
+ 	store sbyte 0, sbyte* %tmp.32
+ 	%tmp.35 = add long %k.0.5, %i.0.1		; <long> [#uses=2]
+ 	%tmp.29 = setlt long %tmp.35, %copyConst		; <bool> [#uses=1]
+ 	br bool %tmp.29, label %backEdgeInst4, label %loopexit.3.loopexit
+ 
+ loopexit.3.loopexit:		; preds = %no_exit.3
+ 	br label %loopexit.3
+ 
+ loopexit.3:		; preds = %then, %loopexit.3.loopexit
+ 	%inc.213 = add long %i.0.1, 1		; <long> [#uses=1]
+ 	%tmp.1823 = setlt long %inc.213, %copyConst		; <bool> [#uses=1]
+ 	%indvar.next28 = add ulong %indvar27, 1		; <ulong> [#uses=1]
+ 	br bool %tmp.1823, label %backEdgeInst3, label %loopentry.0.loopexit.loopexit
+ 
+ endif:		; preds = %no_exit.2
+ 	%indvar = cast ulong %indvar27 to int		; <int> [#uses=2]
+ 	%count.1.1 = add int %indvar, %count.1		; <int> [#uses=2]
+ 	%inc.2 = add long %i.0.1, 1		; <long> [#uses=1]
+ 	br label %backEdgeInst
+ 
+ loopexit.0:		; preds = %cond_true, %loopentry.0
+ 	%count.2.1 = phi int [ %count.2, %loopentry.0 ], [ 0, %cond_true ]		; <int> [#uses=1]
+ 	"addrOfGlobal:.str_1" = getelementptr [11 x sbyte]* %.str_1, long 0		; <[11 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [11 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.38 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_1", int %count.2.1 )		; <int> [#uses=0]
+ 	ret int 0
+ 
+ newCommon:		; preds = %loopentry.0, %no_exit.1
+ 	%phi = phi int [ %dec.0.ph.ph, %no_exit.1 ], [ %dec, %loopentry.0 ]		; <int> [#uses=1]
+ 	%phi1 = phi int [ %count.1.1.2, %no_exit.1 ], [ %count.1.1.1, %loopentry.0 ]		; <int> [#uses=1]
+ 	%phi2 = phi int [ %indvar.2, %no_exit.1 ], [ %indvar.1, %loopentry.0 ]		; <int> [#uses=1]
+ 	%phi = phi ulong [ %indvar.next, %no_exit.1 ], [ 0, %loopentry.0 ]		; <ulong> [#uses=1]
+ 	br label %backEdgeInst5
+ 
+ backEdgeInst:		; preds = %endif
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.2
+ 
+ backEdgeInst3:		; preds = %loopexit.3
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.2
+ 
+ backEdgeInst4:		; preds = %no_exit.3
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.3
+ 
+ backEdgeInst5:		; preds = %newCommon
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.1
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)


Index: reopt/test/TTFTestCases/sieve.main.trace16.txt
diff -c /dev/null reopt/test/TTFTestCases/sieve.main.trace16.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/sieve.main.trace16.txt	Wed Sep  8 16:34:24 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 7 19 23 


Index: reopt/test/TTFTestCases/sieve.main.trace17.txt
diff -c /dev/null reopt/test/TTFTestCases/sieve.main.trace17.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/sieve.main.trace17.txt	Wed Sep  8 16:34:24 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 14 22 


Index: reopt/test/TTFTestCases/strcat.ll
diff -c /dev/null reopt/test/TTFTestCases/strcat.ll:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/strcat.ll	Wed Sep  8 16:34:24 2004
***************
*** 0 ****
--- 1,297 ----
+ target endian = big
+ target pointersize = 64
+ 	%llvm.sjljeh.jmpbufty = type { %llvm.sjljeh.jmpbufty*, [200 x sbyte*] }
+ 	%struct..TorRec = type { int, void ()* }
+ 	%struct.TorRec = type { int, void ()* }
+ %.str_1 = internal constant [14 x sbyte] c"calloc strbuf\00"		; <[14 x sbyte]*> [#uses=2]
+ %.str_2 = internal constant [15 x sbyte] c"realloc strbuf\00"		; <[15 x sbyte]*> [#uses=2]
+ %.str_3 = internal constant [7 x sbyte] c"hello\0A\00"		; <[7 x sbyte]*> [#uses=2]
+ %.str_4 = internal constant [4 x sbyte] c"%d\0A\00"		; <[4 x sbyte]*> [#uses=2]
+ %Initialized.0__ = internal global bool false		; <bool*> [#uses=2]
+ %llvm.sjljeh.jblist = linkonce global %llvm.sjljeh.jmpbufty* null		; <%llvm.sjljeh.jmpbufty**> [#uses=0]
+ %llvmFunctionTable = constant { void (sbyte*)*, int (int, sbyte**)* } { void (sbyte*)* %strcat, int (int, sbyte**)* %main }		; <{ void (sbyte*)*, int (int, sbyte**)* }*> [#uses=0]
+ %llvmSimpleFunction = constant [2 x sbyte] zeroinitializer		; <[2 x sbyte]*> [#uses=0]
+ %llvmFunctionCount = constant int 2		; <int*> [#uses=0]
+ %strcat.regAllocState = internal constant { uint, [41 x { int, int, uint, int }] } { uint 41, [41 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 0, int -1 }, { int, int, uint, int } { int 2, int -1, uint 0, int -1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 0 }, { int, int, uint, int } { int 4, int -2, uint 1, int 0 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 1, int 7 }, { int, int, uint, int } { int 7, int -1, uint 1, int 0 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 1, int 0 }, { int, int, uint, int } { int 10, int -1, uint 0, int -1 }, { int, int, uint, int } { int 11, int -1, uint 0, int -1 }, { int, int, uint, int } { int 12, int !
 -1, uint 0, int -1 }, { int, int, uint, int } { int 13, int -1, uint 1, int 7 }, { int, int, uint, int } { int 13, int -2, uint 1, int 7 }, { int, int, uint, int } { int 14, int -1, uint 0, int -1 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 1, int 8 }, { int, int, uint, int } { int 17, int -1, uint 0, int -1 }, { int, int, uint, int } { int 18, int -1, uint 0, int -1 }, { int, int, uint, int } { int 19, int -1, uint 1, int 7 }, { int, int, uint, int } { int 20, int -1, uint 0, int -1 }, { int, int, uint, int } { int 21, int -1, uint 1, int 9 }, { int, int, uint, int } { int 21, int -2, uint 1, int 9 }, { int, int, uint, int } { int 22, int -1, uint 1, int 0 }, { int, int, uint, int } { int 23, int -1, uint 0, int -1 }, { int, int, uint, int } { int 24, int -1, uint 0, int -1 }, { int, int, uint, int } { int 25, int -1, uint 1, int 9 }, { int, int, uint, int } { int 26, int -1, uint 0, int -1 }, { int, int, ui!
 nt, int } { int 27, int -1, uint 0, int -1 }, { int, int, uint, int } 
{ int 28, int -1, uint 1, int 1 }, { int, int, uint, int } { int 29, int -1, uint 0, int -1 }, { int, int, uint, int } { int 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 0, int -1 }, { int, int, uint, int } { int 32, int -1, uint 0, int -1 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 0, int -1 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 } ] }		; <{ uint, [41 x { int, int, uint, int }] }*> [#uses=2]
+ %main.regAllocState = internal constant { uint, [150 x { int, int, uint, int }] } { uint 150, [150 x { int, int, uint, int }] [ { int, int, uint, int } { int -1, int 0, uint 1, int 15 }, { int, int, uint, int } { int -1, int 1, uint 1, int 16 }, { int, int, uint, int } { int 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 1, int -1, uint 1, int 3 }, { int, int, uint, int } { int 2, int -1, uint 1, int 1 }, { int, int, uint, int } { int 3, int -1, uint 0, int -1 }, { int, int, uint, int } { int 4, int -1, uint 1, int 2 }, { int, int, uint, int } { int 5, int -1, uint 0, int -1 }, { int, int, uint, int } { int 6, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7, int -1, uint 0, int -1 }, { int, int, uint, int } { int 8, int -1, uint 0, int -1 }, { int, int, uint, int } { int 9, int -1, uint 0, int -1 }, { int, int, uint, int } { int 10, int -1, uint 1, int 0 }, { int, int, uint, int } { int 11, int -1, uint 1, int 8 }, { int, int, uint, int } { int 12, int!
  -1, uint 1, int 0 }, { int, int, uint, int } { int 13, int -1, uint 1, int 0 }, { int, int, uint, int } { int 14, int -1, uint 1, int 0 }, { int, int, uint, int } { int 15, int -1, uint 0, int -1 }, { int, int, uint, int } { int 16, int -1, uint 1, int 7 }, { int, int, uint, int } { int 17, int -1, uint 1, int 0 }, { int, int, uint, int } { int 18, int -1, uint 1, int 7 }, { int, int, uint, int } { int 19, int -1, uint 1, int 0 }, { int, int, uint, int } { int 20, int -1, uint 0, int -1 }, { int, int, uint, int } { int 21, int -1, uint 0, int -1 }, { int, int, uint, int } { int 22, int -1, uint 1, int 0 }, { int, int, uint, int } { int 23, int -1, uint 1, int 0 }, { int, int, uint, int } { int 24, int -1, uint 1, int 0 }, { int, int, uint, int } { int 25, int -1, uint 0, int -1 }, { int, int, uint, int } { int 26, int -1, uint 1, int 7 }, { int, int, uint, int } { int 27, int -1, uint 1, int 0 }, { int, int, uint, int } { int 28, int -1, uint 1, int 7 }, { int, int, uint, !
 int } { int 29, int -1, uint 1, int 0 }, { int, int, uint, int } { int
 30, int -1, uint 0, int -1 }, { int, int, uint, int } { int 31, int -1, uint 1, int 8 }, { int, int, uint, int } { int 32, int -1, uint 0, int -1 }, { int, int, uint, int } { int 33, int -1, uint 0, int -1 }, { int, int, uint, int } { int 34, int -1, uint 1, int 0 }, { int, int, uint, int } { int 35, int -1, uint 0, int -1 }, { int, int, uint, int } { int 36, int -1, uint 0, int -1 }, { int, int, uint, int } { int 37, int -1, uint 0, int -1 }, { int, int, uint, int } { int 38, int -1, uint 1, int 7 }, { int, int, uint, int } { int 38, int -2, uint 1, int 8 }, { int, int, uint, int } { int 39, int -1, uint 1, int 2 }, { int, int, uint, int } { int 39, int -2, uint 1, int 2 }, { int, int, uint, int } { int 40, int -1, uint 1, int 1 }, { int, int, uint, int } { int 40, int -2, uint 1, int 1 }, { int, int, uint, int } { int 41, int -1, uint 1, int 8 }, { int, int, uint, int } { int 42, int -1, uint 0, int -1 }, { int, int, uint, int } { int 43, int -1, uint 1, int 2 }, { int, i!
 nt, uint, int } { int 43, int -2, uint 1, int 2 }, { int, int, uint, int } { int 44, int -1, uint 1, int 9 }, { int, int, uint, int } { int 44, int -2, uint 1, int 9 }, { int, int, uint, int } { int 45, int -1, uint 1, int 13 }, { int, int, uint, int } { int 45, int -2, uint 1, int 11 }, { int, int, uint, int } { int 46, int -1, uint 1, int 1 }, { int, int, uint, int } { int 46, int -2, uint 1, int 1 }, { int, int, uint, int } { int 47, int -1, uint 0, int -1 }, { int, int, uint, int } { int 48, int -1, uint 0, int -1 }, { int, int, uint, int } { int 49, int -1, uint 0, int -1 }, { int, int, uint, int } { int 50, int -1, uint 1, int 12 }, { int, int, uint, int } { int 50, int -2, uint 1, int 11 }, { int, int, uint, int } { int 51, int -1, uint 1, int 14 }, { int, int, uint, int } { int 51, int -2, uint 1, int 2 }, { int, int, uint, int } { int 52, int -1, uint 1, int 9 }, { int, int, uint, int } { int 52, int -2, uint 1, int 9 }, { int, int, uint, int } { int 53, int -1, ui!
 nt 1, int 10 }, { int, int, uint, int } { int 53, int -2, uint 1, int 
1 }, { int, int, uint, int } { int 54, int -1, uint 1, int 0 }, { int, int, uint, int } { int 55, int -1, uint 1, int 11 }, { int, int, uint, int } { int 56, int -1, uint 1, int 1 }, { int, int, uint, int } { int 57, int -1, uint 1, int 1 }, { int, int, uint, int } { int 58, int -1, uint 0, int -1 }, { int, int, uint, int } { int 59, int -1, uint 0, int -1 }, { int, int, uint, int } { int 60, int -1, uint 1, int 0 }, { int, int, uint, int } { int 61, int -1, uint 1, int 1 }, { int, int, uint, int } { int 62, int -1, uint 0, int -1 }, { int, int, uint, int } { int 63, int -1, uint 0, int -1 }, { int, int, uint, int } { int 64, int -1, uint 1, int 9 }, { int, int, uint, int } { int 65, int -1, uint 1, int 1 }, { int, int, uint, int } { int 66, int -1, uint 1, int 14 }, { int, int, uint, int } { int 67, int -1, uint 0, int -1 }, { int, int, uint, int } { int 68, int -1, uint 0, int -1 }, { int, int, uint, int } { int 69, int -1, uint 0, int -1 }, { int, int, uint, int } { int 7!
 0, int -1, uint 1, int 0 }, { int, int, uint, int } { int 71, int -1, uint 0, int -1 }, { int, int, uint, int } { int 72, int -1, uint 0, int -1 }, { int, int, uint, int } { int 73, int -1, uint 0, int -1 }, { int, int, uint, int } { int 74, int -1, uint 1, int 0 }, { int, int, uint, int } { int 75, int -1, uint 0, int -1 }, { int, int, uint, int } { int 76, int -1, uint 0, int -1 }, { int, int, uint, int } { int 77, int -1, uint 0, int -1 }, { int, int, uint, int } { int 78, int -1, uint 1, int 0 }, { int, int, uint, int } { int 78, int -2, uint 1, int 0 }, { int, int, uint, int } { int 79, int -1, uint 0, int -1 }, { int, int, uint, int } { int 80, int -1, uint 1, int 10 }, { int, int, uint, int } { int 81, int -1, uint 1, int 0 }, { int, int, uint, int } { int 82, int -1, uint 0, int -1 }, { int, int, uint, int } { int 83, int -1, uint 1, int 0 }, { int, int, uint, int } { int 84, int -1, uint 0, int -1 }, { int, int, uint, int } { int 85, int -1, uint 0, int -1 }, { int!
 , int, uint, int } { int 86, int -1, uint 0, int -1 }, { int, int, uin
t, int } { int 87, int -1, uint 1, int 10 }, { int, int, uint, int } { int 87, int -2, uint 1, int 10 }, { int, int, uint, int } { int 88, int -1, uint 0, int -1 }, { int, int, uint, int } { int 89, int -1, uint 1, int 0 }, { int, int, uint, int } { int 90, int -1, uint 0, int -1 }, { int, int, uint, int } { int 91, int -1, uint 1, int 10 }, { int, int, uint, int } { int 92, int -1, uint 0, int -1 }, { int, int, uint, int } { int 93, int -1, uint 1, int 10 }, { int, int, uint, int } { int 94, int -1, uint 1, int 0 }, { int, int, uint, int } { int 95, int -1, uint 0, int -1 }, { int, int, uint, int } { int 96, int -1, uint 1, int 11 }, { int, int, uint, int } { int 97, int -1, uint 0, int -1 }, { int, int, uint, int } { int 98, int -1, uint 0, int -1 }, { int, int, uint, int } { int 99, int -1, uint 1, int 10 }, { int, int, uint, int } { int 100, int -1, uint 1, int 11 }, { int, int, uint, int } { int 101, int -1, uint 0, int -1 }, { int, int, uint, int } { int 102, int -1, u!
 int 0, int -1 }, { int, int, uint, int } { int 103, int -1, uint 1, int 7 }, { int, int, uint, int } { int 103, int -2, uint 1, int 14 }, { int, int, uint, int } { int 104, int -1, uint 1, int 0 }, { int, int, uint, int } { int 105, int -1, uint 0, int -1 }, { int, int, uint, int } { int 106, int -1, uint 0, int -1 }, { int, int, uint, int } { int 107, int -1, uint 0, int -1 }, { int, int, uint, int } { int 108, int -1, uint 1, int 0 }, { int, int, uint, int } { int 108, int -2, uint 1, int 0 }, { int, int, uint, int } { int 109, int -1, uint 0, int -1 }, { int, int, uint, int } { int 110, int -1, uint 1, int 1 }, { int, int, uint, int } { int 111, int -1, uint 1, int 0 }, { int, int, uint, int } { int 112, int -1, uint 0, int -1 }, { int, int, uint, int } { int 113, int -1, uint 1, int 0 }, { int, int, uint, int } { int 114, int -1, uint 0, int -1 }, { int, int, uint, int } { int 115, int -1, uint 0, int -1 }, { int, int, uint, int } { int 116, int -1, uint 0, int -1 }, { !
 int, int, uint, int } { int 117, int -1, uint 1, int 1 }, { int, int, 
uint, int } { int 117, int -2, uint 1, int 1 }, { int, int, uint, int } { int 118, int -1, uint 1, int 1 }, { int, int, uint, int } { int 119, int -1, uint 0, int -1 }, { int, int, uint, int } { int 120, int -1, uint 1, int 0 }, { int, int, uint, int } { int 121, int -1, uint 1, int 0 }, { int, int, uint, int } { int 122, int -1, uint 0, int -1 }, { int, int, uint, int } { int 123, int -1, uint 0, int -1 }, { int, int, uint, int } { int 124, int -1, uint 0, int -1 }, { int, int, uint, int } { int 125, int -1, uint 0, int -1 }, { int, int, uint, int } { int 126, int -1, uint 0, int -1 }, { int, int, uint, int } { int 127, int -1, uint 0, int -1 }, { int, int, uint, int } { int 128, int -1, uint 0, int -1 }, { int, int, uint, int } { int 129, int -1, uint 0, int -1 }, { int, int, uint, int } { int 130, int -1, uint 0, int -1 }, { int, int, uint, int } { int 131, int -1, uint 0, int -1 } ] }		; <{ uint, [150 x { int, int, uint, int }] }*> [#uses=2]
+ %_llvm_regAllocState = constant { uint, [2 x { uint, [0 x { int, int, uint, int }] }*] } { uint 2, [2 x { uint, [0 x { int, int, uint, int }] }*] [ { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [41 x { int, int, uint, int }] }* %strcat.regAllocState to { uint, [0 x { int, int, uint, int }] }*), { uint, [0 x { int, int, uint, int }] }* cast ({ uint, [150 x { int, int, uint, int }] }* %main.regAllocState to { uint, [0 x { int, int, uint, int }] }*) ] }		; <{ uint, [2 x { uint, [0 x { int, int, uint, int }] }*] }*> [#uses=0]
+ %_llvm_internalGlobals = constant { uint, [30 x sbyte*] } { uint 30, [30 x sbyte*] [ sbyte* cast ([14 x sbyte]* %.str_1 to sbyte*), sbyte* cast ([15 x sbyte]* %.str_2 to sbyte*), sbyte* cast ([7 x sbyte]* %.str_3 to sbyte*), sbyte* cast ([4 x sbyte]* %.str_4 to sbyte*), sbyte* cast (bool* %Initialized.0__ to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* cast ({ uint, [41 x { int, int, uint, int }] }* %strcat.regAllocState to sbyte*), sbyte* cast ({ uint, [150 x { int, int, uint, int }] }* %main.regAllocState to sbyte*), sbyte* null, sbyte* null, sbyte* cast (void (sbyte*)* %strcat to sbyte*), sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null, sbyte* null ] }		; <{ uint, [30 x sbyte*] }*> [#uses=0]
+ 
+ implementation   ; Functions:
+ 
+ internal void %strcat(sbyte* %s1) {
+ entry:
+ 	%tmp.1.i7 = load sbyte* %s1		; <sbyte> [#uses=1]
+ 	%tmp.2.i8 = seteq sbyte %tmp.1.i7, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i8, label %loopexit.i, label %no_exit.i.preheader
+ 
+ no_exit.i.preheader:		; preds = %entry
+ 	br label %no_exit.i
+ 
+ no_exit.i:		; preds = %no_exit.i.preheader, %backEdgeInst
+ 	%Count.0.i.0 = phi ulong [ %inc.0.i, %backEdgeInst ], [ 0, %no_exit.i.preheader ]		; <ulong> [#uses=2]
+ 	%Str_addr.0.i.0.rec = cast ulong %Count.0.i.0 to long		; <long> [#uses=1]
+ 	%inc.0.i = add ulong %Count.0.i.0, 1		; <ulong> [#uses=2]
+ 	%inc.1.i.rec = add long %Str_addr.0.i.0.rec, 1		; <long> [#uses=1]
+ 	%inc.1.i = getelementptr sbyte* %s1, long %inc.1.i.rec		; <sbyte*> [#uses=1]
+ 	%tmp.1.i = load sbyte* %inc.1.i		; <sbyte> [#uses=1]
+ 	%tmp.2.i = seteq sbyte %tmp.1.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i, label %loopexit.i.loopexit, label %backEdgeInst
+ 
+ loopexit.i.loopexit:		; preds = %no_exit.i
+ 	br label %loopexit.i
+ 
+ loopexit.i:		; preds = %entry, %loopexit.i.loopexit
+ 	%Count.0.i.1 = phi ulong [ 0, %entry ], [ %inc.0.i, %loopexit.i.loopexit ]		; <ulong> [#uses=2]
+ 	%v9 = cast ulong %Count.0.i.1 to long		; <long> [#uses=1]
+ 	%tmp.5 = getelementptr sbyte* %s1, long %v9		; <sbyte*> [#uses=1]
+ 	%tmp.5.sum = add ulong %Count.0.i.1, 1		; <ulong> [#uses=1]
+ 	%copyConst = cast sbyte 104 to sbyte		; <sbyte> [#uses=1]
+ 	store sbyte %copyConst, sbyte* %tmp.5
+ 	"addrOfGlobal:.str_3" = getelementptr [7 x sbyte]* %.str_3, long 0		; <[7 x sbyte]*> [#uses=1]
+ 	br label %loopentry.i1
+ 
+ loopentry.i1:		; preds = %loopexit.i, %backEdgeInst1
+ 	%indvar = phi ulong [ %inc.1.i210.sum, %backEdgeInst1 ], [ 0, %loopexit.i ]		; <ulong> [#uses=2]
+ 	%inc.0.i9.sum = add ulong %indvar, %tmp.5.sum		; <ulong> [#uses=1]
+ 	%v91 = cast ulong %inc.0.i9.sum to long		; <long> [#uses=1]
+ 	%s1_addr.0.i = getelementptr sbyte* %s1, long %v91		; <sbyte*> [#uses=1]
+ 	%inc.1.i210.sum = add ulong %indvar, 1		; <ulong> [#uses=2]
+ 	%v92 = cast ulong %inc.1.i210.sum to long		; <long> [#uses=1]
+ 	%s2_addr.0.i = getelementptr [7 x sbyte]* "addrOfGlobal:.str_3", long 0, long %v92		; <sbyte*> [#uses=1]
+ 	%tmp.3.i = load sbyte* %s2_addr.0.i		; <sbyte> [#uses=2]
+ 	store sbyte %tmp.3.i, sbyte* %s1_addr.0.i
+ 	%tmp.4.i = seteq sbyte %tmp.3.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.4.i, label %loopexit.i3, label %backEdgeInst1
+ 
+ loopexit.i3:		; preds = %loopentry.i1
+ 	ret void
+ 
+ backEdgeInst:		; preds = %no_exit.i
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i
+ 
+ backEdgeInst1:		; preds = %loopentry.i1
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry.i1
+ }
+ 
+ declare int %printf(sbyte*, ...)
+ 
+ declare void %exit(int)
+ 
+ int %main(int %argc, sbyte** %argv) {
+ entry:
+ 	%newargc = call int %reoptimizerInitialize( int %argc, sbyte** %argv, uint* null, uint 0 )		; <int> [#uses=1]
+ 	"addrOfGlobal:Initialized.0__" = getelementptr bool* %Initialized.0__, long 0		; <bool*> [#uses=2]
+ 	%tmp.1.i = load bool* "addrOfGlobal:Initialized.0__"		; <bool> [#uses=1]
+ 	br bool %tmp.1.i, label %__main.entry, label %endif.0.i
+ 
+ endif.0.i:		; preds = %entry
+ 	%copyConst = cast bool true to bool		; <bool> [#uses=1]
+ 	store bool %copyConst, bool* "addrOfGlobal:Initialized.0__"
+ 	br label %__main.entry
+ 
+ __main.entry:		; preds = %entry, %endif.0.i
+ 	%tmp.1 = seteq int %newargc, 2		; <bool> [#uses=1]
+ 	br bool %tmp.1, label %cond_true, label %cond_continue
+ 
+ cond_true:		; preds = %__main.entry
+ 	%tmp.5 = getelementptr sbyte** %argv, long 1		; <sbyte**> [#uses=1]
+ 	%tmp.6 = load sbyte** %tmp.5		; <sbyte*> [#uses=1]
+ 	%tmp.3 = call int %atoi( sbyte* %tmp.6 )		; <int> [#uses=1]
+ 	"constantGEP:" = getelementptr [32 x sbyte]* null, uint 1		; <[32 x sbyte]*> [#uses=1]
+ 	%constantCast = cast [32 x sbyte]* "constantGEP:" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast )		; <sbyte*>:0 [#uses=1]
+ 	cast sbyte* %0 to [32 x sbyte]*		; <[32 x sbyte]*>:0 [#uses=1]
+ 	%v9 = cast int 0 to long		; <long> [#uses=2]
+ 	%ptr1 = getelementptr [32 x sbyte]* %0, long %v9		; <[32 x sbyte]*> [#uses=1]
+ 	%tmp.0.i.sub3 = getelementptr [32 x sbyte]* %ptr1, long 0, long %v9		; <sbyte*> [#uses=4]
+ 	call sbyte* %memset( sbyte* %tmp.0.i.sub3, ubyte 0, ulong 32 )		; <sbyte*>:1 [#uses=0]
+ 	%tmp.132 = seteq sbyte* %tmp.0.i.sub3, null		; <bool> [#uses=1]
+ 	br bool %tmp.132, label %then.0, label %loopentry.preheader
+ 
+ cond_continue:		; preds = %__main.entry
+ 	"constantGEP:4" = getelementptr [32 x sbyte]* null, uint 1		; <[32 x sbyte]*> [#uses=1]
+ 	%constantCast5 = cast [32 x sbyte]* "constantGEP:4" to uint		; <uint> [#uses=1]
+ 	call sbyte* %malloc( uint %constantCast5 )		; <sbyte*>:2 [#uses=1]
+ 	cast sbyte* %2 to [32 x sbyte]*		; <[32 x sbyte]*>:1 [#uses=1]
+ 	%v96 = cast int 0 to long		; <long> [#uses=2]
+ 	%ptr18 = getelementptr [32 x sbyte]* %1, long %v96		; <[32 x sbyte]*> [#uses=1]
+ 	%tmp.0.i4.sub9 = getelementptr [32 x sbyte]* %ptr18, long 0, long %v96		; <sbyte*> [#uses=4]
+ 	call sbyte* %memset( sbyte* %tmp.0.i4.sub9, ubyte 0, ulong 32 )		; <sbyte*>:3 [#uses=0]
+ 	%tmp.13 = seteq sbyte* %tmp.0.i4.sub9, null		; <bool> [#uses=1]
+ 	%copyConst = cast int 10000000 to int		; <int> [#uses=1]
+ 	br bool %tmp.13, label %then.0, label %loopentry.preheader
+ 
+ then.0:		; preds = %cond_true, %cond_continue
+ 	"addrOfGlobal:.str_1" = getelementptr [14 x sbyte]* %.str_1, long 0		; <[14 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_1" = getelementptr [14 x sbyte]* "addrOfGlobal:.str_1", long 0, long 0		; <sbyte*> [#uses=1]
+ 	call void %perror( sbyte* "constantGEP:addrOfGlobal:.str_1" )
+ 	call void %exit( int 1 )
+ 	ret int 0
+ 
+ loopentry.preheader:		; preds = %cond_true, %cond_continue
+ 	%mem_tmp.0.1.ph.ph.ph = phi int [ %tmp.3, %cond_true ], [ %copyConst, %cond_continue ]		; <int> [#uses=2]
+ 	%strbuf.1.ph = phi sbyte* [ %tmp.0.i.sub3, %cond_true ], [ %tmp.0.i4.sub9, %cond_continue ]		; <sbyte*> [#uses=1]
+ 	%strend.0.ph = phi sbyte* [ %tmp.0.i.sub3, %cond_true ], [ %tmp.0.i4.sub9, %cond_continue ]		; <sbyte*> [#uses=1]
+ 	%v913 = cast int 6 to long		; <long> [#uses=1]
+ 	br label %loopentry
+ 
+ loopentry:		; preds = %loopentry.preheader, %backEdgeInst
+ 	%strbuf.1 = phi sbyte* [ %strbuf.1.0, %backEdgeInst ], [ %strbuf.1.ph, %loopentry.preheader ]		; <sbyte*> [#uses=2]
+ 	%buflen.1 = phi int [ %buflen.1.0, %backEdgeInst ], [ 32, %loopentry.preheader ]		; <int> [#uses=1]
+ 	%i.0 = phi int [ %inc, %backEdgeInst ], [ 0, %loopentry.preheader ]		; <int> [#uses=2]
+ 	%strend.0 = phi sbyte* [ %tmp.56, %backEdgeInst ], [ %strend.0.ph, %loopentry.preheader ]		; <sbyte*> [#uses=1]
+ 	%tmp.18 = setlt int %i.0, %mem_tmp.0.1.ph.ph.ph		; <bool> [#uses=1]
+ 	br bool %tmp.18, label %no_exit.preheader, label %loopexit
+ 
+ no_exit.preheader:		; preds = %loopentry
+ 	br label %no_exit
+ 
+ no_exit:		; preds = %no_exit.preheader, %backEdgeInst1
+ 	%indvar = phi uint [ %indvar.next, %backEdgeInst1 ], [ 0, %no_exit.preheader ]		; <uint> [#uses=2]
+ 	%strbuf.1.0 = phi sbyte* [ %tmp.36, %backEdgeInst1 ], [ %strbuf.1, %no_exit.preheader ]		; <sbyte*> [#uses=3]
+ 	%buflen.1.0 = phi int [ %tmp.35, %backEdgeInst1 ], [ %buflen.1, %no_exit.preheader ]		; <int> [#uses=3]
+ 	%strend.0.0 = phi sbyte* [ %tmp.564, %backEdgeInst1 ], [ %strend.0, %no_exit.preheader ]		; <sbyte*> [#uses=3]
+ 	%indvar = cast uint %indvar to int		; <int> [#uses=1]
+ 	%i.0.0 = add int %indvar, %i.0		; <int> [#uses=2]
+ 	%v910 = cast int %buflen.1.0 to long		; <long> [#uses=1]
+ 	%tmp.24 = getelementptr sbyte* %strbuf.1.0, long %v910		; <sbyte*> [#uses=1]
+ 	%tmp.25 = cast sbyte* %tmp.24 to long		; <long> [#uses=1]
+ 	%tmp.27 = cast sbyte* %strend.0.0 to long		; <long> [#uses=1]
+ 	%tmp.27.neg = sub long 0, %tmp.27		; <long> [#uses=1]
+ 	%tmp.28 = add long %tmp.25, %tmp.27.neg		; <long> [#uses=1]
+ 	%tmp.32 = setlt long %tmp.28, 7		; <bool> [#uses=1]
+ 	br bool %tmp.32, label %then.1, label %endif.1
+ 
+ then.1:		; preds = %no_exit
+ 	%tmp.35 = shl int %buflen.1.0, ubyte 1		; <int> [#uses=2]
+ 	%tmp.39 = cast int %tmp.35 to ulong		; <ulong> [#uses=1]
+ 	%tmp.36 = call sbyte* %realloc( sbyte* %strbuf.1.0, ulong %tmp.39 )		; <sbyte*> [#uses=7]
+ 	%tmp.41 = seteq sbyte* %tmp.36, null		; <bool> [#uses=1]
+ 	br bool %tmp.41, label %then.2, label %endif.2
+ 
+ then.2:		; preds = %then.1
+ 	"addrOfGlobal:.str_2" = getelementptr [15 x sbyte]* %.str_2, long 0		; <[15 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_2" = getelementptr [15 x sbyte]* "addrOfGlobal:.str_2", long 0, long 0		; <sbyte*> [#uses=1]
+ 	call void %perror( sbyte* "constantGEP:addrOfGlobal:.str_2" )
+ 	call void %exit( int 1 )
+ 	ret int 0
+ 
+ endif.2:		; preds = %then.1
+ 	%tmp.14.i5 = load sbyte* %tmp.36		; <sbyte> [#uses=1]
+ 	%tmp.25.i6 = seteq sbyte %tmp.14.i5, 0		; <bool> [#uses=1]
+ 	br bool %tmp.25.i6, label %strlen.entry16, label %no_exit.i7.preheader
+ 
+ no_exit.i7.preheader:		; preds = %endif.2
+ 	br label %no_exit.i7
+ 
+ no_exit.i7:		; preds = %no_exit.i7.preheader, %backEdgeInst2
+ 	%Count.0.0.i8 = phi ulong [ %inc.0.i10, %backEdgeInst2 ], [ 0, %no_exit.i7.preheader ]		; <ulong> [#uses=2]
+ 	%Str_addr.0.0.rec.i9 = cast ulong %Count.0.0.i8 to long		; <long> [#uses=1]
+ 	%inc.0.i10 = add ulong %Count.0.0.i8, 1		; <ulong> [#uses=2]
+ 	%inc.1.rec.i11 = add long %Str_addr.0.0.rec.i9, 1		; <long> [#uses=1]
+ 	%inc.1.i12 = getelementptr sbyte* %tmp.36, long %inc.1.rec.i11		; <sbyte*> [#uses=1]
+ 	%tmp.1.i13 = load sbyte* %inc.1.i12		; <sbyte> [#uses=1]
+ 	%tmp.2.i14 = seteq sbyte %tmp.1.i13, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i14, label %strlen.entry16.loopexit, label %backEdgeInst2
+ 
+ strlen.entry16.loopexit:		; preds = %no_exit.i7
+ 	br label %strlen.entry16
+ 
+ strlen.entry16:		; preds = %endif.2, %strlen.entry16.loopexit
+ 	%Count.0.1.i15 = phi ulong [ 0, %endif.2 ], [ %inc.0.i10, %strlen.entry16.loopexit ]		; <ulong> [#uses=2]
+ 	%v911 = cast ulong %Count.0.1.i15 to long		; <long> [#uses=1]
+ 	%tmp.48 = getelementptr sbyte* %tmp.36, long %v911		; <sbyte*> [#uses=1]
+ 	call void %strcat( sbyte* %tmp.48 )
+ 	%tmp.48.sum = add ulong %Count.0.1.i15, 6		; <ulong> [#uses=1]
+ 	%v912 = cast ulong %tmp.48.sum to long		; <long> [#uses=1]
+ 	%tmp.564 = getelementptr sbyte* %tmp.36, long %v912		; <sbyte*> [#uses=1]
+ 	%inc5 = add int %i.0.0, 1		; <int> [#uses=1]
+ 	%tmp.1818 = setlt int %inc5, %mem_tmp.0.1.ph.ph.ph		; <bool> [#uses=1]
+ 	%indvar.next = add uint %indvar, 1		; <uint> [#uses=1]
+ 	br bool %tmp.1818, label %backEdgeInst1, label %loopexit.loopexit
+ 
+ endif.1:		; preds = %no_exit
+ 	call void %strcat( sbyte* %strend.0.0 )
+ 	%tmp.56 = getelementptr sbyte* %strend.0.0, long %v913		; <sbyte*> [#uses=1]
+ 	%inc = add int %i.0.0, 1		; <int> [#uses=1]
+ 	br label %backEdgeInst
+ 
+ loopexit.loopexit:		; preds = %strlen.entry16
+ 	br label %loopexit
+ 
+ loopexit:		; preds = %loopentry, %loopexit.loopexit
+ 	%strbuf.1.1 = phi sbyte* [ %strbuf.1, %loopentry ], [ %tmp.36, %loopexit.loopexit ]		; <sbyte*> [#uses=3]
+ 	%tmp.14.i = load sbyte* %strbuf.1.1		; <sbyte> [#uses=1]
+ 	%tmp.25.i = seteq sbyte %tmp.14.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.25.i, label %strlen.entry, label %no_exit.i1.preheader
+ 
+ no_exit.i1.preheader:		; preds = %loopexit
+ 	br label %no_exit.i1
+ 
+ no_exit.i1:		; preds = %no_exit.i1.preheader, %backEdgeInst3
+ 	%Count.0.0.i = phi ulong [ %inc.0.i, %backEdgeInst3 ], [ 0, %no_exit.i1.preheader ]		; <ulong> [#uses=2]
+ 	%Str_addr.0.0.rec.i = cast ulong %Count.0.0.i to long		; <long> [#uses=1]
+ 	%inc.0.i = add ulong %Count.0.0.i, 1		; <ulong> [#uses=2]
+ 	%inc.1.rec.i = add long %Str_addr.0.0.rec.i, 1		; <long> [#uses=1]
+ 	%inc.1.i = getelementptr sbyte* %strbuf.1.1, long %inc.1.rec.i		; <sbyte*> [#uses=1]
+ 	%tmp.1.i = load sbyte* %inc.1.i		; <sbyte> [#uses=1]
+ 	%tmp.2.i = seteq sbyte %tmp.1.i, 0		; <bool> [#uses=1]
+ 	br bool %tmp.2.i, label %strlen.entry.loopexit, label %backEdgeInst3
+ 
+ strlen.entry.loopexit:		; preds = %no_exit.i1
+ 	br label %strlen.entry
+ 
+ strlen.entry:		; preds = %loopexit, %strlen.entry.loopexit
+ 	%Count.0.1.i = phi ulong [ 0, %loopexit ], [ %inc.0.i, %strlen.entry.loopexit ]		; <ulong> [#uses=1]
+ 	%tmp.62 = cast ulong %Count.0.1.i to int		; <int> [#uses=1]
+ 	"addrOfGlobal:.str_4" = getelementptr [4 x sbyte]* %.str_4, long 0		; <[4 x sbyte]*> [#uses=1]
+ 	"constantGEP:addrOfGlobal:.str_4" = getelementptr [4 x sbyte]* "addrOfGlobal:.str_4", long 0, long 0		; <sbyte*> [#uses=1]
+ 	%tmp.58 = call int (sbyte*, ...)* %printf( sbyte* "constantGEP:addrOfGlobal:.str_4", int %tmp.62 )		; <int> [#uses=0]
+ 	call void %free( sbyte* %strbuf.1.1 )
+ 	ret int 0
+ 
+ backEdgeInst:		; preds = %endif.1
+ 	call void %llvm_first_trigger( )
+ 	br label %loopentry
+ 
+ backEdgeInst1:		; preds = %strlen.entry16
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit
+ 
+ backEdgeInst2:		; preds = %no_exit.i7
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i7
+ 
+ backEdgeInst3:		; preds = %no_exit.i1
+ 	call void %llvm_first_trigger( )
+ 	br label %no_exit.i1
+ }
+ 
+ declare int %atoi(sbyte*)
+ 
+ declare void %perror(sbyte*)
+ 
+ declare sbyte* %realloc(sbyte*, ulong)
+ 
+ declare void %llvm.memset(sbyte*, ubyte, ulong, uint)
+ 
+ declare int %llvm.setjmp([200 x sbyte*]*)
+ 
+ declare void %llvm.longjmp([200 x sbyte*]*, int)
+ 
+ declare void %abort()
+ 
+ declare void %write(int, sbyte*, int)
+ 
+ declare void %llvm_first_trigger()
+ 
+ declare int %reoptimizerInitialize(int, sbyte**, uint*, uint)
+ 
+ declare sbyte* %malloc(uint)
+ 
+ declare void %free(sbyte*)
+ 
+ declare sbyte* %memset(sbyte*, ubyte, ulong)


Index: reopt/test/TTFTestCases/strcat.main.trace18.txt
diff -c /dev/null reopt/test/TTFTestCases/strcat.main.trace18.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/strcat.main.trace18.txt	Wed Sep  8 16:34:25 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 14 26 


Index: reopt/test/TTFTestCases/strcat.main.trace19.txt
diff -c /dev/null reopt/test/TTFTestCases/strcat.main.trace19.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/strcat.main.trace19.txt	Wed Sep  8 16:34:25 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 7 8 9 17 24 


Index: reopt/test/TTFTestCases/strcat.main.trace20.txt
diff -c /dev/null reopt/test/TTFTestCases/strcat.main.trace20.txt:1.1
*** /dev/null	Wed Sep  8 16:34:38 2004
--- reopt/test/TTFTestCases/strcat.main.trace20.txt	Wed Sep  8 16:34:25 2004
***************
*** 0 ****
--- 1,2 ----
+ main
+ 21 27 


Index: reopt/test/TTFTestCases/strcat.strcat.trace1.txt
diff -c /dev/null reopt/test/TTFTestCases/strcat.strcat.trace1.txt:1.1
*** /dev/null	Wed Sep  8 16:34:39 2004
--- reopt/test/TTFTestCases/strcat.strcat.trace1.txt	Wed Sep  8 16:34:25 2004
***************
*** 0 ****
--- 1,2 ----
+ strcat
+ 5 8 






More information about the llvm-commits mailing list