[llvm-commits] [poolalloc] r108576 - in /poolalloc/trunk/test/dsa/regression: 2010-07-16.CBU_MissingGraph.ll 2010-07-16.MissingIndirectCallee.ll 2010-07-16.SimpleLoop.ll

Will Dietz wdietz2 at illinois.edu
Fri Jul 16 16:53:05 PDT 2010


Author: wdietz2
Date: Fri Jul 16 18:53:04 2010
New Revision: 108576

URL: http://llvm.org/viewvc/llvm-project?rev=108576&view=rev
Log:
Added test for EQ that demonstrates the 'Simple loop in callgraph' error.
Added 'MissingIndirectCallee' test, passes presently but important case.
Added 'disble-output' to CBU_MissingGraph test.  One day I'll remember.

Added:
    poolalloc/trunk/test/dsa/regression/2010-07-16.MissingIndirectCallee.ll
    poolalloc/trunk/test/dsa/regression/2010-07-16.SimpleLoop.ll
Modified:
    poolalloc/trunk/test/dsa/regression/2010-07-16.CBU_MissingGraph.ll

Modified: poolalloc/trunk/test/dsa/regression/2010-07-16.CBU_MissingGraph.ll
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/test/dsa/regression/2010-07-16.CBU_MissingGraph.ll?rev=108576&r1=108575&r2=108576&view=diff
==============================================================================
--- poolalloc/trunk/test/dsa/regression/2010-07-16.CBU_MissingGraph.ll (original)
+++ poolalloc/trunk/test/dsa/regression/2010-07-16.CBU_MissingGraph.ll Fri Jul 16 18:53:04 2010
@@ -1,7 +1,7 @@
 ;This test presently fails because cbu isn't robust to callee's not being in
 ; the globals graph... which happens all the time--direct call's callees
 ; don't get entries, for example.
-;RUN: dsaopt %s -dsa-cbu
+;RUN: dsaopt %s -dsa-cbu -disable-output
 ; ModuleID = 'bugpoint-reduced-simplified.bc'
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-apple-darwin10.4"

Added: poolalloc/trunk/test/dsa/regression/2010-07-16.MissingIndirectCallee.ll
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/test/dsa/regression/2010-07-16.MissingIndirectCallee.ll?rev=108576&view=auto
==============================================================================
--- poolalloc/trunk/test/dsa/regression/2010-07-16.MissingIndirectCallee.ll (added)
+++ poolalloc/trunk/test/dsa/regression/2010-07-16.MissingIndirectCallee.ll Fri Jul 16 18:53:04 2010
@@ -0,0 +1,347 @@
+;RUN: dsaopt %s -dsa-cbu -disable-output
+; ModuleID = 'bugpoint-reduced-simplified.bc'
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
+target triple = "x86_64-apple-darwin10.4"
+
+%0 = type { %struct.block }
+%struct.AV = type { %struct.XPVAV*, i32, i32 }
+%struct.COP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8, i8*, %struct.HV*, %struct.GV*, i32, i32, i16 }
+%struct.CV = type { %struct.XPVCV*, i32, i32 }
+%struct.DIR = type { i32, i64, i64, i8*, i32, i64, i64, i32, %struct.__darwin_pthread_mutex_t, %struct._telldir* }
+%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
+%struct.GP = type { %struct.SV*, i32, %struct.io*, %struct.CV*, %struct.AV*, %struct.HV*, %struct.GV*, %struct.CV*, i32, i32, i16, %struct.GV* }
+%struct.GV = type { %struct.XPVGV*, i32, i32 }
+%struct.HE = type { %struct.HE*, %struct.HEK*, %struct.SV* }
+%struct.HEK = type { i32, i32, [1 x i8] }
+%struct.HV = type { %struct.XPVHV*, i32, i32 }
+%struct.MAGIC = type { %struct.MAGIC*, %struct.MGVTBL*, i16, i8, i8, %struct.SV*, i8*, i32 }
+%struct.MGVTBL = type { i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)* }
+%struct.OP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8 }
+%struct.PERL_CONTEXT = type { i32, %0 }
+%struct.PMOP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8, %struct.OP*, %struct.OP*, i32, %struct.OP*, %struct.OP*, %struct.PMOP*, %struct.REGEXP*, i16, i16, i8 }
+%struct.REGEXP = type { i32, i8**, i8**, %struct.regnode*, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i16, i16, %struct.reg_substr_data*, %struct.reg_data*, [1 x %struct.regnode] }
+%struct.SV = type { i8*, i32, i32 }
+%struct.XPVAV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.SV**, %struct.SV*, i8 }
+%struct.XPVCV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.HV*, %struct.OP*, %struct.OP*, void (%struct.CV*)*, %union.ANY, %struct.GV*, %struct.GV*, i64, %struct.AV*, %struct.CV*, i16 }
+%struct.XPVGV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.GP*, i8*, i64, %struct.HV*, i8 }
+%struct.XPVHV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, i32, %struct.HE*, %struct.PMOP*, i8* }
+%struct.XPVIO = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.FILE*, %struct.FILE*, %struct.DIR*, i64, i64, i64, i64, i8*, %struct.GV*, i8*, %struct.GV*, i8*, %struct.GV*, i16, i8, i8 }
+%struct.__darwin_pthread_mutex_t = type { i64, [56 x i8] }
+%struct.__sFILEX = type opaque
+%struct.__sbuf = type { i8*, i32 }
+%struct._telldir = type opaque
+%struct.block = type { i32, %struct.COP*, i32, i32, i32, %struct.PMOP*, i8, %union.anon }
+%struct.block_loop = type { i8*, i32, %struct.OP*, %struct.OP*, %struct.OP*, %struct.SV**, %struct.SV*, %struct.SV*, %struct.AV*, i64, i64 }
+%struct.io = type { %struct.XPVIO*, i32, i32 }
+%struct.reg_data = type { i32, i8*, [1 x i8*] }
+%struct.reg_substr_data = type { [3 x %struct.reg_substr_datum] }
+%struct.reg_substr_datum = type { i32, i32, %struct.SV* }
+%struct.regnode = type { i8, i8, i16 }
+%union.ANY = type { i8* }
+%union.anon = type { %struct.block_loop }
+
+ at PL_sv_root = external global %struct.SV*         ; <%struct.SV**> [#uses=3]
+ at PL_stack_sp = external global %struct.SV**       ; <%struct.SV***> [#uses=2]
+ at PL_curpad = external global %struct.SV**         ; <%struct.SV***> [#uses=3]
+ at PL_savestack = external global %union.ANY*       ; <%union.ANY**> [#uses=1]
+
+declare void @XS_MD5_digest(%struct.CV* nocapture) nounwind ssp
+
+define %struct.OP* @Perl_pp_require_DIRECT() nounwind ssp {
+entry:
+  %tmp = load %struct.SV*** @PL_stack_sp, align 8 ; <%struct.SV**> [#uses=1]
+  %tmp1 = load %struct.SV** %tmp, align 8         ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb12, label %bb11
+
+bb11:                                             ; preds = %entry
+  %tmp38 = getelementptr inbounds %struct.SV* %tmp1, i64 0, i32 0 ; <i8**> [#uses=1]
+  %tmp43 = load i8** %tmp38, align 8              ; <i8*> [#uses=1]
+  %tmp44 = bitcast i8* %tmp43 to i8**             ; <i8**> [#uses=1]
+  %tmp45 = load i8** %tmp44, align 8              ; <i8*> [#uses=1]
+  br i1 undef, label %bb16, label %bb14
+
+bb12:                                             ; preds = %entry
+  unreachable
+
+bb14:                                             ; preds = %bb11
+  br i1 undef, label %bb16, label %bb15
+
+bb15:                                             ; preds = %bb14
+  br i1 undef, label %bb16, label %bb17
+
+bb16:                                             ; preds = %bb15, %bb14, %bb11
+  ret %struct.OP* undef
+
+bb17:                                             ; preds = %bb15
+  br i1 undef, label %bb31, label %bb32
+
+bb31:                                             ; preds = %bb17
+  unreachable
+
+bb32:                                             ; preds = %bb17
+  br i1 undef, label %bb34, label %bb35
+
+bb34:                                             ; preds = %bb32
+  unreachable
+
+bb35:                                             ; preds = %bb32
+  %tmp107 = load %struct.SV** @PL_sv_root, align 8 ; <%struct.SV*> [#uses=2]
+  br i1 undef, label %bb1.i, label %bb.i4
+
+bb.i4:                                            ; preds = %bb35
+  %tmp109 = getelementptr inbounds %struct.SV* %tmp107, i64 0, i32 0 ; <i8**> [#uses=1]
+  %tmp110 = load i8** %tmp109, align 8            ; <i8*> [#uses=1]
+  %tmp111 = bitcast i8* %tmp110 to %struct.SV*    ; <%struct.SV*> [#uses=1]
+  store %struct.SV* %tmp111, %struct.SV** @PL_sv_root, align 8
+  %tmp115 = getelementptr inbounds %struct.SV* %tmp107, i64 0, i32 0 ; <i8**> [#uses=1]
+  br label %bb46
+
+bb1.i:                                            ; preds = %bb35
+  unreachable
+
+bb36:                                             ; preds = %bb48
+  %tmp148 = load i8** %tmp115, align 8            ; <i8*> [#uses=1]
+  %tmp149 = bitcast i8* %tmp148 to i8**           ; <i8**> [#uses=1]
+  %tmp150 = load i8** %tmp149, align 8            ; <i8*> [#uses=1]
+  br label %bb46
+
+bb46:                                             ; preds = %bb36, %bb.i4
+  %tryname.1 = phi i8* [ %tmp150, %bb36 ], [ null, %bb.i4 ] ; <i8*> [#uses=1]
+  br i1 undef, label %bb48, label %bb47
+
+bb47:                                             ; preds = %bb46
+  unreachable
+
+bb48:                                             ; preds = %bb46
+  br i1 undef, label %bb50, label %bb36
+
+bb50:                                             ; preds = %bb48
+  %storemerge4 = select i1 undef, i8* %tmp45, i8* %tryname.1 ; <i8*> [#uses=0]
+  unreachable
+}
+
+define %struct.OP* @Perl_pp_goto_DIRECT() nounwind ssp {
+entry:
+  %tmp1 = load %struct.SV*** @PL_stack_sp, align 8 ; <%struct.SV**> [#uses=1]
+  %tmp11 = load %struct.SV** %tmp1, align 8       ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb117, label %bb1
+
+bb1:                                              ; preds = %entry
+  %tmp17 = getelementptr inbounds %struct.SV* %tmp11, i64 0, i32 0 ; <i8**> [#uses=1]
+  %tmp18 = load i8** %tmp17, align 8              ; <i8*> [#uses=1]
+  %tmp19 = bitcast i8* %tmp18 to %struct.SV**     ; <%struct.SV**> [#uses=1]
+  %tmp20 = load %struct.SV** %tmp19, align 8      ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb2, label %bb117
+
+bb2:                                              ; preds = %bb1
+  %tmp25 = bitcast %struct.SV* %tmp20 to %struct.CV* ; <%struct.CV*> [#uses=3]
+  %tmp26 = getelementptr inbounds %struct.CV* %tmp25, i64 0, i32 0 ; <%struct.XPVCV**> [#uses=1]
+  %tmp90 = load %struct.PERL_CONTEXT** undef, align 8 ; <%struct.PERL_CONTEXT*> [#uses=2]
+  br i1 undef, label %bb.i.i, label %dopoptosub.exit
+
+bb.i.i:                                           ; preds = %bb2
+  br label %dopoptosub.exit
+
+dopoptosub.exit:                                  ; preds = %bb.i.i, %bb2
+  br i1 undef, label %bb13, label %bb14
+
+bb13:                                             ; preds = %dopoptosub.exit
+  ret %struct.OP* undef
+
+bb14:                                             ; preds = %dopoptosub.exit
+  br i1 undef, label %bb15, label %bb16
+
+bb15:                                             ; preds = %bb14
+  unreachable
+
+bb16:                                             ; preds = %bb14
+  switch i32 undef, label %bb37 [
+    i32 2, label %bb18
+    i32 1, label %bb20
+  ]
+
+bb18:                                             ; preds = %bb16
+  ret %struct.OP* undef
+
+bb20:                                             ; preds = %bb16
+  br i1 undef, label %bb37, label %bb21
+
+bb21:                                             ; preds = %bb20
+  br i1 undef, label %bb22, label %bb23
+
+bb22:                                             ; preds = %bb21
+  br label %bb23
+
+bb23:                                             ; preds = %bb22, %bb21
+  br i1 undef, label %bb28, label %bb27
+
+bb27:                                             ; preds = %bb23
+  br label %bb28
+
+bb28:                                             ; preds = %bb27, %bb23
+  unreachable
+
+bb37:                                             ; preds = %bb20, %bb16
+  br i1 undef, label %bb41, label %bb42
+
+bb41:                                             ; preds = %bb37
+  unreachable
+
+bb42:                                             ; preds = %bb37
+  br i1 undef, label %bb.i1, label %entry.bb1_crit_edge.i
+
+entry.bb1_crit_edge.i:                            ; preds = %bb42
+  br i1 undef, label %bb51, label %bb43
+
+bb.i1:                                            ; preds = %bb42
+  unreachable
+
+bb43:                                             ; preds = %entry.bb1_crit_edge.i
+  br i1 undef, label %bb47, label %bb45.preheader
+
+bb45.preheader:                                   ; preds = %bb43
+  unreachable
+
+bb47:                                             ; preds = %bb43
+  br i1 undef, label %bb48, label %bb49
+
+bb48:                                             ; preds = %bb47
+  unreachable
+
+bb49:                                             ; preds = %bb47
+  %tmp336 = load %struct.XPVCV** %tmp26, align 8  ; <%struct.XPVCV*> [#uses=1]
+  %tmp337 = getelementptr inbounds %struct.XPVCV* %tmp336, i64 0, i32 10 ; <void (%struct.CV*)**> [#uses=1]
+  %tmp338 = load void (%struct.CV*)** %tmp337, align 8 ; <void (%struct.CV*)*> [#uses=1]
+  call void %tmp338(%struct.CV* %tmp25) nounwind
+  unreachable
+
+bb51:                                             ; preds = %entry.bb1_crit_edge.i
+  %tmp380 = bitcast i8* undef to %struct.SV**     ; <%struct.SV**> [#uses=2]
+  br i1 undef, label %bb52, label %bb53
+
+bb52:                                             ; preds = %bb51
+  br label %bb53
+
+bb53:                                             ; preds = %bb52, %bb51
+  %tmp391 = getelementptr inbounds %struct.PERL_CONTEXT* %tmp90, i64 undef, i32 1, i32 0, i32 7, i32 0, i32 0 ; <i8**> [#uses=1]
+  %.c = bitcast %struct.CV* %tmp25 to i8*         ; <i8*> [#uses=1]
+  store i8* %.c, i8** %tmp391
+  br i1 undef, label %bb83, label %bb57
+
+bb57:                                             ; preds = %bb53
+  br i1 undef, label %bb61, label %bb83
+
+bb61:                                             ; preds = %bb57
+  %tmp446 = getelementptr inbounds %struct.SV** %tmp380, i64 undef ; <%struct.SV**> [#uses=1]
+  %tmp447 = load %struct.SV** %tmp446, align 8    ; <%struct.SV*> [#uses=1]
+  %tmp448 = getelementptr inbounds %struct.SV* %tmp447, i64 0, i32 0 ; <i8**> [#uses=1]
+  %tmp449 = load i8** %tmp448, align 8            ; <i8*> [#uses=1]
+  %tmp450 = bitcast i8* %tmp449 to i8**           ; <i8**> [#uses=1]
+  %tmp451 = load i8** %tmp450, align 8            ; <i8*> [#uses=1]
+  br i1 undef, label %bb.nph28, label %bb79
+
+bb.nph28:                                         ; preds = %bb61
+  %scevgep66 = getelementptr i8* %tmp451, i64 undef ; <i8*> [#uses=0]
+  unreachable
+
+bb79:                                             ; preds = %bb61
+  unreachable
+
+bb83:                                             ; preds = %bb57, %bb53
+  br i1 undef, label %bb.i25, label %entry.bb1_crit_edge.i23
+
+entry.bb1_crit_edge.i23:                          ; preds = %bb83
+  %.pre1.i22 = load %union.ANY** @PL_savestack, align 8 ; <%union.ANY*> [#uses=2]
+  %tmp620 = load %struct.SV*** @PL_curpad, align 8 ; <%struct.SV**> [#uses=1]
+  %tmp621 = getelementptr inbounds %union.ANY* %.pre1.i22, i64 undef, i32 0 ; <i8**> [#uses=1]
+  %tmp622 = bitcast %struct.SV** %tmp620 to i8*   ; <i8*> [#uses=1]
+  store i8* %tmp622, i8** %tmp621, align 8
+  %tmp625 = getelementptr inbounds %union.ANY* %.pre1.i22, i64 undef, i32 0 ; <i8**> [#uses=1]
+  store i8* bitcast (%struct.SV*** @PL_curpad to i8*), i8** %tmp625, align 8
+  %tmp634 = getelementptr inbounds %struct.SV** %tmp380, i64 undef ; <%struct.SV**> [#uses=1]
+  %tmp635 = load %struct.SV** %tmp634, align 8    ; <%struct.SV*> [#uses=1]
+  %tmp636 = bitcast %struct.SV* %tmp635 to %struct.XPVAV** ; <%struct.XPVAV**> [#uses=1]
+  %tmp637 = load %struct.XPVAV** %tmp636, align 8 ; <%struct.XPVAV*> [#uses=1]
+  %tmp638 = getelementptr inbounds %struct.XPVAV* %tmp637, i64 0, i32 0 ; <i8**> [#uses=1]
+  %tmp639 = load i8** %tmp638, align 8            ; <i8*> [#uses=1]
+  %tmp640 = bitcast i8* %tmp639 to %struct.SV**   ; <%struct.SV**> [#uses=2]
+  store %struct.SV** %tmp640, %struct.SV*** @PL_curpad, align 8
+  %tmp646 = load %struct.SV** %tmp640, align 8    ; <%struct.SV*> [#uses=1]
+  %tmp664 = getelementptr inbounds %struct.PERL_CONTEXT* %tmp90, i64 undef, i32 1, i32 0, i32 7, i32 0, i32 4 ; <%struct.OP**> [#uses=1]
+  %.c4 = bitcast %struct.SV* %tmp646 to %struct.OP* ; <%struct.OP*> [#uses=1]
+  store %struct.OP* %.c4, %struct.OP** %tmp664
+  unreachable
+
+bb.i25:                                           ; preds = %bb83
+  unreachable
+
+bb117:                                            ; preds = %bb1, %entry
+  br i1 undef, label %bb119, label %bb118
+
+bb118:                                            ; preds = %bb117
+  br i1 undef, label %bb163, label %bb164
+
+bb119:                                            ; preds = %bb117
+  unreachable
+
+bb163:                                            ; preds = %bb118
+  br label %bb164
+
+bb164:                                            ; preds = %bb163, %bb118
+  ret %struct.OP* null
+}
+
+define fastcc void @Perl_newXS_SPEC3() nounwind ssp {
+entry:
+  br i1 undef, label %bb22, label %bb7
+
+bb7:                                              ; preds = %entry
+  br label %bb22
+
+bb22:                                             ; preds = %bb7, %entry
+  br i1 undef, label %bb1.i, label %bb.i
+
+bb.i:                                             ; preds = %bb22
+  br label %Perl_newSV.exit
+
+bb1.i:                                            ; preds = %bb22
+  br label %Perl_newSV.exit
+
+Perl_newSV.exit:                                  ; preds = %bb1.i, %bb.i
+  br i1 undef, label %bb31, label %bb34
+
+bb31:                                             ; preds = %Perl_newSV.exit
+  ret void
+
+bb34:                                             ; preds = %Perl_newSV.exit
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC4() nounwind ssp {
+entry:
+  %tmp53 = load %struct.SV** @PL_sv_root, align 8 ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb1.i, label %bb.i
+
+bb.i:                                             ; preds = %entry
+  %tmp64 = bitcast %struct.SV* %tmp53 to %struct.CV* ; <%struct.CV*> [#uses=1]
+  %tmp76 = getelementptr inbounds %struct.CV* %tmp64, i64 0, i32 0 ; <%struct.XPVCV**> [#uses=1]
+  br i1 undef, label %bb26, label %bb25
+
+bb1.i:                                            ; preds = %entry
+  unreachable
+
+bb25:                                             ; preds = %bb.i
+  br label %bb26
+
+bb26:                                             ; preds = %bb25, %bb.i
+  %tmp86 = load %struct.XPVCV** %tmp76, align 8   ; <%struct.XPVCV*> [#uses=1]
+  %tmp87 = getelementptr inbounds %struct.XPVCV* %tmp86, i64 0, i32 10 ; <void (%struct.CV*)**> [#uses=1]
+  store void (%struct.CV*)* @XS_MD5_digest, void (%struct.CV*)** %tmp87, align 8
+  br i1 undef, label %bb30, label %bb28
+
+bb28:                                             ; preds = %bb26
+  br label %bb30
+
+bb30:                                             ; preds = %bb28, %bb26
+  unreachable
+}

Added: poolalloc/trunk/test/dsa/regression/2010-07-16.SimpleLoop.ll
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/test/dsa/regression/2010-07-16.SimpleLoop.ll?rev=108576&view=auto
==============================================================================
--- poolalloc/trunk/test/dsa/regression/2010-07-16.SimpleLoop.ll (added)
+++ poolalloc/trunk/test/dsa/regression/2010-07-16.SimpleLoop.ll Fri Jul 16 18:53:04 2010
@@ -0,0 +1,680 @@
+;dsaopt %s -dsa-eq -disable-output
+; I have no idea, but as formulated above dsa works.  But compile it into
+; .bc and then things happen.  Not going to investigate now.
+;RUN: llvm-as %s -o - | dsaopt -dsa-eq -disable-output
+; ModuleID = 'bugpoint-reduced-simplified.bc'
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
+target triple = "x86_64-apple-darwin10.4"
+
+%struct.AV = type { %struct.XPVAV*, i32, i32 }
+%struct.COP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8, i8*, %struct.HV*, %struct.GV*, i32, i32, i16 }
+%struct.CV = type { %struct.XPVCV*, i32, i32 }
+%struct.DIR = type { i32, i64, i64, i8*, i32, i64, i64, i32, %struct.__darwin_pthread_mutex_t, %struct._telldir* }
+%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
+%struct.GP = type { %struct.SV*, i32, %struct.io*, %struct.CV*, %struct.AV*, %struct.HV*, %struct.GV*, %struct.CV*, i32, i32, i16, %struct.GV* }
+%struct.GV = type { %struct.XPVGV*, i32, i32 }
+%struct.HE = type { %struct.HE*, %struct.HEK*, %struct.SV* }
+%struct.HEK = type { i32, i32, [1 x i8] }
+%struct.HV = type { %struct.XPVHV*, i32, i32 }
+%struct.MAGIC = type { %struct.MAGIC*, %struct.MGVTBL*, i16, i8, i8, %struct.SV*, i8*, i32 }
+%struct.MGVTBL = type { i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)*, i32 (%struct.SV*, %struct.MAGIC*)* }
+%struct.OP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8 }
+%struct.PMOP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, i8, %struct.OP*, %struct.OP*, i32, %struct.OP*, %struct.OP*, %struct.PMOP*, %struct.REGEXP*, i16, i16, i8 }
+%struct.REGEXP = type { i32, i8**, i8**, %struct.regnode*, i32, i32, i32, i32, i8*, i8*, i8*, i8*, i16, i16, %struct.reg_substr_data*, %struct.reg_data*, [1 x %struct.regnode] }
+%struct.SV = type { i8*, i32, i32 }
+%struct.XPVAV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.SV**, %struct.SV*, i8 }
+%struct.XPVCV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.HV*, %struct.OP*, %struct.OP*, void (%struct.CV*)*, %union.ANY, %struct.GV*, %struct.GV*, i64, %struct.AV*, %struct.CV*, i16 }
+%struct.XPVGV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.GP*, i8*, i64, %struct.HV*, i8 }
+%struct.XPVHV = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, i32, %struct.HE*, %struct.PMOP*, i8* }
+%struct.XPVIO = type { i8*, i64, i64, i64, double, %struct.MAGIC*, %struct.HV*, %struct.FILE*, %struct.FILE*, %struct.DIR*, i64, i64, i64, i64, i8*, %struct.GV*, i8*, %struct.GV*, i8*, %struct.GV*, i16, i8, i8 }
+%struct.__darwin_pthread_mutex_t = type { i64, [56 x i8] }
+%struct.__sFILEX = type opaque
+%struct.__sbuf = type { i8*, i32 }
+%struct.__va_list_tag = type { i32, i32, i8*, i8* }
+%struct._telldir = type opaque
+%struct.io = type { %struct.XPVIO*, i32, i32 }
+%struct.reg_data = type { i32, i8*, [1 x i8*] }
+%struct.reg_substr_data = type { [3 x %struct.reg_substr_datum] }
+%struct.reg_substr_datum = type { i32, i32, %struct.SV* }
+%struct.regnode = type { i8, i8, i16 }
+%union.ANY = type { i8* }
+
+ at PL_sv_undef = external global %struct.SV, align 16 ; <%struct.SV*> [#uses=1]
+ at PL_sv_no = external global %struct.SV, align 16  ; <%struct.SV*> [#uses=1]
+ at PL_sv_yes = external global %struct.SV, align 16 ; <%struct.SV*> [#uses=2]
+ at PL_lex_casestack = external global i8*           ; <i8**> [#uses=2]
+ at PL_sv_root = external global %struct.SV*         ; <%struct.SV**> [#uses=3]
+ at PL_savestack = external global %union.ANY*       ; <%union.ANY**> [#uses=2]
+
+define fastcc i8* @Perl_scan_word(i8* %s, i8* %dest, i64 %destlen, i32 %allow_package, i64* nocapture %slp) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_yyerror(i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @Perl_start_subparse(i32 %is_format, i32 %flags) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_check_uni() nounwind ssp {
+entry:
+  ret void
+}
+
+define fastcc %struct.SV* @new_constant(i8* %s, i64 %len, i8* %key, %struct.SV* %sv, %struct.SV* %pv, i8* %type) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_scan_num(i8* %start) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @Perl_keyword(i8* %d, i32 %len) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_force_ident(i8* %s, i32 %kind) nounwind ssp {
+entry:
+  ret void
+}
+
+define fastcc void @Perl_no_op(i8* %what, i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define void @restore_rsfp(i8* %f) nounwind ssp {
+entry:
+  ret void
+}
+
+define fastcc void @Perl_checkcomma(i8* %s, i8* %what) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc %struct.SV* @tokeq(%struct.SV* %sv) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @sublex_start() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @incline(i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @missingterm(i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @Perl_filter_read(i32 %idx, %struct.SV* %buf_sv) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @filter_gets(%struct.SV* %sv, %struct.FILE* nocapture %fp) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_skipspace(i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_scan_ident(i8* %s, i8* %send, i8* %dest, i64 %destlen, i32 %ck_uni) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @Perl_intuit_more(i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @intuit_method(i8* %start, %struct.GV* %gv) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_scan_str(i8* %start) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_scan_pat(i8* %start, i32 %type) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_scan_trans(i8* %start) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_force_word(i8* %start, i32 %token, i32 %check_keyword, i32 %allow_pack, i32 %allow_initial_tick) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @force_version(i8* %s) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @lop(i32 %f, i32 %x, i8* %s) nounwind ssp {
+entry:
+  br i1 undef, label %bb, label %bb2
+
+bb:                                               ; preds = %entry
+  unreachable
+
+bb2:                                              ; preds = %entry
+  ret i32 286
+}
+
+define fastcc i32 @Perl_yylex() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @sublex_done() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_lex_start(%struct.SV* %line) nounwind ssp {
+entry:
+  br i1 undef, label %bb.i, label %entry.Perl_save_I32.exit_crit_edge
+
+entry.Perl_save_I32.exit_crit_edge:               ; preds = %entry
+  br i1 undef, label %bb.i2, label %Perl_save_I32.exit3
+
+bb.i:                                             ; preds = %entry
+  unreachable
+
+bb.i2:                                            ; preds = %entry.Perl_save_I32.exit_crit_edge
+  unreachable
+
+Perl_save_I32.exit3:                              ; preds = %entry.Perl_save_I32.exit_crit_edge
+  br i1 undef, label %bb.i5, label %Perl_save_I32.exit6
+
+bb.i5:                                            ; preds = %Perl_save_I32.exit3
+  unreachable
+
+Perl_save_I32.exit6:                              ; preds = %Perl_save_I32.exit3
+  br i1 undef, label %bb.i8, label %Perl_save_I32.exit9
+
+bb.i8:                                            ; preds = %Perl_save_I32.exit6
+  unreachable
+
+Perl_save_I32.exit9:                              ; preds = %Perl_save_I32.exit6
+  br i1 undef, label %bb.i11, label %Perl_save_I32.exit12
+
+bb.i11:                                           ; preds = %Perl_save_I32.exit9
+  br label %Perl_save_I32.exit12
+
+Perl_save_I32.exit12:                             ; preds = %bb.i11, %Perl_save_I32.exit9
+  br i1 undef, label %bb.i14, label %Perl_save_I32.exit15
+
+bb.i14:                                           ; preds = %Perl_save_I32.exit12
+  %tmp137 = bitcast i8* undef to %union.ANY*      ; <%union.ANY*> [#uses=2]
+  store %union.ANY* %tmp137, %union.ANY** @PL_savestack, align 8
+  br label %Perl_save_I32.exit15
+
+Perl_save_I32.exit15:                             ; preds = %bb.i14, %Perl_save_I32.exit12
+  %tmp139 = phi %union.ANY* [ undef, %Perl_save_I32.exit12 ], [ %tmp137, %bb.i14 ] ; <%union.ANY*> [#uses=2]
+  br i1 undef, label %bb.i16, label %Perl_save_sptr.exit
+
+bb.i16:                                           ; preds = %Perl_save_I32.exit15
+  unreachable
+
+Perl_save_sptr.exit:                              ; preds = %Perl_save_I32.exit15
+  br i1 undef, label %bb.i18, label %Perl_save_I32.exit19
+
+bb.i18:                                           ; preds = %Perl_save_sptr.exit
+  unreachable
+
+Perl_save_I32.exit19:                             ; preds = %Perl_save_sptr.exit
+  %tmp203 = getelementptr inbounds %struct.COP* undef, i64 0, i32 13 ; <i16*> [#uses=1]
+  br i1 undef, label %bb.i1, label %Perl_save_I16.exit
+
+bb.i1:                                            ; preds = %Perl_save_I32.exit19
+  unreachable
+
+Perl_save_I16.exit:                               ; preds = %Perl_save_I32.exit19
+  %tmp223 = getelementptr inbounds %union.ANY* %tmp139, i64 undef, i32 0 ; <i8**> [#uses=1]
+  %tmp224 = bitcast i16* %tmp203 to i8*           ; <i8*> [#uses=1]
+  store i8* %tmp224, i8** %tmp223, align 8
+  br i1 undef, label %bb.i6, label %Perl_save_pptr.exit
+
+bb.i6:                                            ; preds = %Perl_save_I16.exit
+  unreachable
+
+Perl_save_pptr.exit:                              ; preds = %Perl_save_I16.exit
+  br i1 undef, label %bb.i10, label %Perl_save_pptr.exit11
+
+bb.i10:                                           ; preds = %Perl_save_pptr.exit
+  unreachable
+
+Perl_save_pptr.exit11:                            ; preds = %Perl_save_pptr.exit
+  br i1 false, label %bb.i15, label %Perl_save_pptr.exit16
+
+bb.i15:                                           ; preds = %Perl_save_pptr.exit11
+  unreachable
+
+Perl_save_pptr.exit16:                            ; preds = %Perl_save_pptr.exit11
+  br i1 undef, label %bb.i20, label %Perl_save_pptr.exit21
+
+bb.i20:                                           ; preds = %Perl_save_pptr.exit16
+  unreachable
+
+Perl_save_pptr.exit21:                            ; preds = %Perl_save_pptr.exit16
+  br i1 undef, label %bb.i26, label %Perl_save_pptr.exit27
+
+bb.i26:                                           ; preds = %Perl_save_pptr.exit21
+  unreachable
+
+Perl_save_pptr.exit27:                            ; preds = %Perl_save_pptr.exit21
+  br i1 undef, label %bb.i21, label %Perl_save_sptr.exit22
+
+bb.i21:                                           ; preds = %Perl_save_pptr.exit27
+  unreachable
+
+Perl_save_sptr.exit22:                            ; preds = %Perl_save_pptr.exit27
+  br i1 undef, label %bb.i32, label %Perl_save_pptr.exit33
+
+bb.i32:                                           ; preds = %Perl_save_sptr.exit22
+  unreachable
+
+Perl_save_pptr.exit33:                            ; preds = %Perl_save_sptr.exit22
+  br i1 undef, label %bb.i37, label %Perl_save_pptr.exit38
+
+bb.i37:                                           ; preds = %Perl_save_pptr.exit33
+  br label %Perl_save_pptr.exit38
+
+Perl_save_pptr.exit38:                            ; preds = %bb.i37, %Perl_save_pptr.exit33
+  %tmp404 = phi %union.ANY* [ undef, %bb.i37 ], [ %tmp139, %Perl_save_pptr.exit33 ] ; <%union.ANY*> [#uses=3]
+  %tmp407 = load i8** @PL_lex_casestack, align 8  ; <i8*> [#uses=1]
+  %tmp408 = getelementptr inbounds %union.ANY* %tmp404, i64 undef, i32 0 ; <i8**> [#uses=1]
+  store i8* %tmp407, i8** %tmp408, align 8
+  %tmp411 = getelementptr inbounds %union.ANY* %tmp404, i64 undef, i32 0 ; <i8**> [#uses=1]
+  store i8* bitcast (i8** @PL_lex_casestack to i8*), i8** %tmp411, align 8
+  br i1 undef, label %bb.i23, label %Perl_save_destructor.exit
+
+bb.i23:                                           ; preds = %Perl_save_pptr.exit38
+  unreachable
+
+Perl_save_destructor.exit:                        ; preds = %Perl_save_pptr.exit38
+  %tmp433 = getelementptr inbounds %union.ANY* %tmp404, i64 undef, i32 0 ; <i8**> [#uses=1]
+  store i8* bitcast (void (i8*)* @restore_rsfp to i8*), i8** %tmp433
+  br i1 undef, label %bb.i25, label %Perl_save_sptr.exit26
+
+bb.i25:                                           ; preds = %Perl_save_destructor.exit
+  unreachable
+
+Perl_save_sptr.exit26:                            ; preds = %Perl_save_destructor.exit
+  unreachable
+}
+
+define fastcc signext i8 @Perl_sv_derived_from(%struct.SV* %sv, i8* %name) nounwind ssp {
+entry:
+  br i1 undef, label %bb1, label %bb
+
+bb:                                               ; preds = %entry
+  unreachable
+
+bb1:                                              ; preds = %entry
+  br i1 undef, label %bb10, label %bb8
+
+bb8:                                              ; preds = %bb1
+  %tmp41 = call fastcc %struct.SV* @isa_lookup(%struct.HV* undef, i8* %name, i32 undef, i32 0) nounwind ssp ; <%struct.SV*> [#uses=0]
+  ret i8 undef
+
+bb10:                                             ; preds = %bb1
+  ret i8 0
+}
+
+define void @XS_UNIVERSAL_isa(%struct.CV* nocapture %cv) nounwind ssp {
+entry:
+  br i1 undef, label %bb1, label %bb
+
+bb:                                               ; preds = %entry
+  unreachable
+
+bb1:                                              ; preds = %entry
+  br i1 undef, label %bb3, label %bb2
+
+bb2:                                              ; preds = %bb1
+  %tmp38 = call fastcc signext i8 @Perl_sv_derived_from(%struct.SV* undef, i8* undef) nounwind ; <i8> [#uses=0]
+  %storemerge1 = select i1 undef, %struct.SV* @PL_sv_no, %struct.SV* @PL_sv_yes ; <%struct.SV*> [#uses=0]
+  ret void
+
+bb3:                                              ; preds = %bb1
+  unreachable
+}
+
+define void @XS_UNIVERSAL_can(%struct.CV* nocapture %cv) nounwind ssp {
+entry:
+  unreachable
+}
+
+define void @XS_UNIVERSAL_VERSION(%struct.CV* nocapture %cv) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc %struct.SV* @isa_lookup(%struct.HV* %stash, i8* %name, i32 %len, i32 %level) nounwind ssp {
+entry:
+  br i1 undef, label %bb36, label %bb1
+
+bb1:                                              ; preds = %entry
+  br i1 undef, label %bb36, label %bb3
+
+bb3:                                              ; preds = %bb1
+  br i1 undef, label %bb4, label %bb5
+
+bb4:                                              ; preds = %bb3
+  unreachable
+
+bb5:                                              ; preds = %bb3
+  br i1 undef, label %bb32, label %bb12
+
+bb12:                                             ; preds = %bb5
+  br i1 undef, label %bb32, label %bb13
+
+bb13:                                             ; preds = %bb12
+  br i1 undef, label %bb32, label %bb14
+
+bb14:                                             ; preds = %bb13
+  br i1 undef, label %bb15, label %bb21
+
+bb15:                                             ; preds = %bb14
+  unreachable
+
+bb21:                                             ; preds = %bb14
+  br i1 undef, label %bb32, label %bb22
+
+bb22:                                             ; preds = %bb21
+  br i1 undef, label %bb31, label %bb24
+
+bb24:                                             ; preds = %bb22
+  br i1 false, label %bb27, label %bb28
+
+bb27:                                             ; preds = %bb24
+  unreachable
+
+bb28:                                             ; preds = %bb24
+  %tmp87 = call fastcc %struct.SV* @isa_lookup(%struct.HV* undef, i8* %name, i32 %len, i32 undef) nounwind ssp ; <%struct.SV*> [#uses=0]
+  unreachable
+
+bb31:                                             ; preds = %bb22
+  unreachable
+
+bb32:                                             ; preds = %bb21, %bb13, %bb12, %bb5
+  ret %struct.SV* undef
+
+bb36:                                             ; preds = %bb1, %entry
+  %.0 = phi %struct.SV* [ @PL_sv_undef, %entry ], [ @PL_sv_yes, %bb1 ] ; <%struct.SV*> [#uses=1]
+  ret %struct.SV* %.0
+}
+
+define fastcc i8* @Perl_screaminstr(%struct.SV* nocapture %bigstr, %struct.SV* nocapture %littlestr, i32 %start_shift, i32 %end_shift, i32* nocapture %old_posp, i32 %last) nounwind ssp {
+entry:
+  unreachable
+}
+
+define void @sig_trap(i32 %signo) nounwind ssp {
+entry:
+  ret void
+}
+
+define fastcc i8* @Perl_fbm_instr(i8* %big, i8* %bigend, %struct.SV* %littlestr) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_fbm_compile(%struct.SV* %sv) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_mess(i8* %pat, [1 x %struct.__va_list_tag]* %args) nounwind ssp {
+entry:
+  unreachable
+}
+
+define void @Perl_warn(i8* %pat, ...) nounwind ssp {
+entry:
+  br i1 undef, label %bb17, label %bb
+
+bb:                                               ; preds = %entry
+  br i1 undef, label %bb.i1, label %Perl_pop_scope.exit
+
+bb.i1:                                            ; preds = %bb
+  unreachable
+
+Perl_pop_scope.exit:                              ; preds = %bb
+  br i1 undef, label %bb17, label %bb5
+
+bb5:                                              ; preds = %Perl_pop_scope.exit
+  br i1 undef, label %bb6, label %bb17
+
+bb6:                                              ; preds = %bb5
+  br i1 undef, label %bb.i2, label %bb8.Perl_push_scope.exit3_crit_edge
+
+bb8.Perl_push_scope.exit3_crit_edge:              ; preds = %bb6
+  %tmp86 = load %struct.SV** @PL_sv_root, align 8 ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb1.i, label %bb.i5
+
+bb.i2:                                            ; preds = %bb6
+  unreachable
+
+bb.i5:                                            ; preds = %bb8.Perl_push_scope.exit3_crit_edge
+  br label %Perl_newSVpv.exit
+
+bb1.i:                                            ; preds = %bb8.Perl_push_scope.exit3_crit_edge
+  br label %Perl_newSVpv.exit
+
+Perl_newSVpv.exit:                                ; preds = %bb1.i, %bb.i5
+  %sv.0.i = phi %struct.SV* [ undef, %bb1.i ], [ %tmp86, %bb.i5 ] ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb.i4, label %Perl_push_scope.exit3.Perl_save_freesv.exit_crit_edge
+
+Perl_push_scope.exit3.Perl_save_freesv.exit_crit_edge: ; preds = %Perl_newSVpv.exit
+  %.pre14 = load %union.ANY** @PL_savestack, align 8 ; <%union.ANY*> [#uses=1]
+  %tmp116 = getelementptr inbounds %union.ANY* %.pre14, i64 undef, i32 0 ; <i8**> [#uses=1]
+  %tmp117 = bitcast %struct.SV* %sv.0.i to i8*    ; <i8*> [#uses=1]
+  store i8* %tmp117, i8** %tmp116, align 8
+  br i1 undef, label %bb9, label %bb10
+
+bb.i4:                                            ; preds = %Perl_newSVpv.exit
+  unreachable
+
+bb9:                                              ; preds = %Perl_push_scope.exit3.Perl_save_freesv.exit_crit_edge
+  unreachable
+
+bb10:                                             ; preds = %Perl_push_scope.exit3.Perl_save_freesv.exit_crit_edge
+  unreachable
+
+bb17:                                             ; preds = %bb5, %Perl_pop_scope.exit, %entry
+  ret void
+}
+
+define fastcc i64 @Perl_scan_hex(i8* %start, i32 %len, i32* nocapture %retlen) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i64 @Perl_scan_oct(i8* nocapture %start, i32 %len, i32* nocapture %retlen) nounwind ssp {
+entry:
+  unreachable
+}
+
+define void @Perl_croak(i8* %pat, ...) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @Perl_wait4pid(i32 %pid, i32* %statusp, i32 %flags) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i32 @Perl_my_pclose(%struct.FILE* nocapture %ptr) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc %struct.FILE* @Perl_my_popen(i8* %cmd, i8* %mode) nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_die(i8* %pat, ...) nounwind ssp {
+entry:
+  unreachable
+}
+
+define i8* @Perl_form(i8* %pat, ...) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_savepvn(i8* %sv, i32 %len) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc i8* @Perl_savepv(i8* %sv) nounwind ssp {
+entry:
+  ret i8* undef
+}
+
+define fastcc i8* @Perl_saferealloc(i8* %where, i64 %size) nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_my_setenv(i8* %nam, i8* %val) nounwind ssp {
+entry:
+  br i1 undef, label %Perl_setenv_getix.exit, label %bb.i5
+
+bb.i5:                                            ; preds = %entry
+  unreachable
+
+Perl_setenv_getix.exit:                           ; preds = %entry
+  unreachable
+}
+
+define void @Perl_magic_get_DIRECT(%struct.SV* %sv, %struct.MAGIC* nocapture %mg) nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_ck_sort_DIRECT(%struct.OP* %o) nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_ck_subr_DIRECT(%struct.OP* %o) nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_ck_fun_DIRECT(%struct.OP* %o) nounwind ssp {
+entry:
+  ret %struct.OP* %o
+}
+
+define void @Perl_pp_anonlist_DIRECT() nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_pp_entereval_DIRECT() nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_pp_require_DIRECT() nounwind ssp {
+entry:
+  unreachable
+}
+
+define %struct.OP* @Perl_pp_goto_DIRECT() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC1() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC2() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC3() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC4() nounwind ssp {
+entry:
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC5() nounwind ssp {
+entry:
+  %tmp53 = load %struct.SV** @PL_sv_root, align 8 ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb1.i, label %bb.i
+
+bb.i:                                             ; preds = %entry
+  %tmp64 = bitcast %struct.SV* %tmp53 to %struct.CV* ; <%struct.CV*> [#uses=1]
+  %tmp76 = getelementptr inbounds %struct.CV* %tmp64, i64 0, i32 0 ; <%struct.XPVCV**> [#uses=1]
+  %tmp86 = load %struct.XPVCV** %tmp76, align 8   ; <%struct.XPVCV*> [#uses=1]
+  %tmp87 = getelementptr inbounds %struct.XPVCV* %tmp86, i64 0, i32 10 ; <void (%struct.CV*)**> [#uses=1]
+  store void (%struct.CV*)* @XS_UNIVERSAL_isa, void (%struct.CV*)** %tmp87, align 8
+  unreachable
+
+bb1.i:                                            ; preds = %entry
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC7() nounwind ssp {
+entry:
+  %tmp53 = load %struct.SV** @PL_sv_root, align 8 ; <%struct.SV*> [#uses=1]
+  br i1 undef, label %bb1.i, label %bb.i
+
+bb.i:                                             ; preds = %entry
+  %tmp64 = bitcast %struct.SV* %tmp53 to %struct.CV* ; <%struct.CV*> [#uses=1]
+  %tmp76 = getelementptr inbounds %struct.CV* %tmp64, i64 0, i32 0 ; <%struct.XPVCV**> [#uses=1]
+  %tmp86 = load %struct.XPVCV** %tmp76, align 8   ; <%struct.XPVCV*> [#uses=1]
+  %tmp87 = getelementptr inbounds %struct.XPVCV* %tmp86, i64 0, i32 10 ; <void (%struct.CV*)**> [#uses=1]
+  store void (%struct.CV*)* @XS_UNIVERSAL_VERSION, void (%struct.CV*)** %tmp87, align 8
+  unreachable
+
+bb1.i:                                            ; preds = %entry
+  unreachable
+}
+
+define fastcc void @Perl_newXS_SPEC9() nounwind ssp {
+entry:
+  unreachable
+}





More information about the llvm-commits mailing list