blob: 42b4fe2a4d805e44d34475d36839118afbeea7e1 [file] [log] [blame]
;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.
;--verify this works without filtering
;RUN: dsaopt %s -dsa-cbu -disable-output \
;RUN: -dsa-no-filter-callcc=true \
;RUN: -dsa-no-filter-vararg=true \
;RUN: -dsa-no-filter-intfp=true
;--verify this works with filtering
;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"
%struct.OP = type { %struct.OP*, %struct.OP*, %struct.OP* ()*, i32, i16, i16, i8, 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.__va_list_tag = type { i32, i32, i8*, i8* }
%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 }
@.str1239 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=1]
@PL_sv_undef = external global %struct.SV, align 16 ; <%struct.SV*> [#uses=1]
define %struct.SV* @Perl_amagic_call(%struct.SV* %left, %struct.SV* %right, i32 %method, i32 %flags) nounwind ssp {
entry:
call void @Perl_sv_setsv(%struct.SV* %left, %struct.SV* undef) nounwind
ret %struct.SV* %left
}
define %struct.OP* @Perl_pp_sort() nounwind ssp {
entry:
%storemerge1 = select i1 undef, i32 (%struct.SV*, %struct.SV*)* @Perl_sv_cmp, i32 (%struct.SV*, %struct.SV*)* @amagic_cmp ; <i32 (%struct.SV*, %struct.SV*)*> [#uses=1]
%0 = call i32 %storemerge1(%struct.SV* undef, %struct.SV* undef) nounwind ; <i32> [#uses=0]
unreachable
}
declare i32 @amagic_cmp(%struct.SV*, %struct.SV*) nounwind ssp
define i8* @Perl_sv_2pv(%struct.SV* %sv, i64* %lp) nounwind ssp {
entry:
%0 = call %struct.SV* @Perl_amagic_call(%struct.SV* %sv, %struct.SV* @PL_sv_undef, i32 4, i32 9) nounwind ; <%struct.SV*> [#uses=0]
unreachable
}
define i32 @Perl_sv_cmp(%struct.SV* %str1, %struct.SV* %str2) nounwind ssp {
entry:
%0 = call i8* @Perl_sv_2pv(%struct.SV* %str1, i64* undef) nounwind ssp ; <i8*> [#uses=0]
unreachable
}
define void @Perl_sv_setsv(%struct.SV* %dstr, %struct.SV* %sstr) nounwind ssp {
entry:
%0 = tail call i32 @Perl_sv_cmp(%struct.SV* undef, %struct.SV* undef) nounwind ssp ; <i32> [#uses=0]
unreachable
}