Skip to content

Instantly share code, notes, and snippets.

@indutny

indutny/test.ll Secret

Created February 17, 2018 09:34
Show Gist options
  • Save indutny/ac9eedc036a43098b2ad0bf7b63e9f65 to your computer and use it in GitHub Desktop.
Save indutny/ac9eedc036a43098b2ad0bf7b63e9f65 to your computer and use it in GitHub Desktop.
@.data0 = private unnamed_addr constant [6 x i8] c"ONNECT"
@.cstr1 = private unnamed_addr constant [19 x i8] c"`on_request` error\00"
@.cstr2 = private unnamed_addr constant [13 x i8] c"Invalid word\00"
@.data3 = private unnamed_addr constant [5 x i8] c"ELETE"
@.data4 = private unnamed_addr constant [2 x i8] c"ET"
@.data5 = private unnamed_addr constant [2 x i8] c"AD"
@.data6 = private unnamed_addr constant [2 x i8] c"TP"
@.cstr7 = private unnamed_addr constant [20 x i8] c"`on_response` error\00"
@.data8 = private unnamed_addr constant [6 x i8] c"PTIONS"
@.data9 = private unnamed_addr constant [3 x i8] c"TCH"
@.data10 = private unnamed_addr constant [2 x i8] c"ST"
@.data11 = private unnamed_addr constant [4 x i8] c"RACE"
%llparse_state = type {
i8* (%llparse_state*, i8*, i8*)*, ; 0 => "current"
i32, ; 1 => "error"
i8*, ; 2 => "reason"
i32, ; 3 => "index"
i32 ; 4 => "match"
}
declare i32 @on_request(%llparse_state*, i8*, i8*) alwaysinline
declare i32 @on_response(%llparse_state*, i8*, i8*) alwaysinline
define internal fastcc i8* @llparse__start(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = load i8, i8* %p
switch i8 %i2, label %b2_otherwise [ i8 67 , label %b3_case_0 i8 68 , label %b4_case_1 i8 71 , label %b5_case_2 i8 72 , label %b6_case_3 i8 79 , label %b7_case_4 i8 80 , label %b8_case_5 i8 84 , label %b9_case_6 ]
b1_false:
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start to i8*
ret i8* %i3
b2_otherwise:
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i4
b3_case_0:
%i5 = tail call fastcc i8* @llparse__start_1 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i5
b4_case_1:
%i6 = tail call fastcc i8* @llparse__start_2 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i6
b5_case_2:
%i7 = tail call fastcc i8* @llparse__start_3 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i7
b6_case_3:
%i8 = tail call fastcc i8* @llparse__start_4 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i8
b7_case_4:
%i9 = tail call fastcc i8* @llparse__start_7 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i9
b8_case_5:
%i10 = tail call fastcc i8* @llparse__start_8 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i10
b9_case_6:
%i11 = tail call fastcc i8* @llparse__start_12 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i11
}
define internal fastcc i8* @llparse__start_1(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_1 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [6 x i8], [6 x i8]* @.data0, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 6
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 6, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_1 to i8*
ret i8* %i18
}
define internal fastcc i8* @llparse__invoke_on_request(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = call i32 @on_request ( %llparse_state* %s , i8* %p , i8* %endp )
switch i32 %i0, label %b0_otherwise [ i32 0 , label %b1_case_0 ]
b0_otherwise:
%i1 = tail call fastcc i8* @llparse__error ( %llparse_state* %s , i8* %p , i8* %endp )
ret i8* %i1
b1_case_0:
%i2 = tail call fastcc i8* @llparse__start ( %llparse_state* %s , i8* %p , i8* %endp )
ret i8* %i2
}
define internal fastcc i8* @llparse__error(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2
%i2 = bitcast [19 x i8]* @.cstr1 to i8*
store i32 2, i32* %i0
store i8* %i2, i8** %i1
ret i8* null
}
define internal fastcc i8* @llparse__error_1(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2
%i2 = bitcast [13 x i8]* @.cstr2 to i8*
store i32 3, i32* %i0
store i8* %i2, i8** %i1
ret i8* null
}
define internal fastcc i8* @llparse__start_2(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_2 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [5 x i8], [5 x i8]* @.data3, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 5
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 4, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_2 to i8*
ret i8* %i18
}
define internal fastcc i8* @llparse__start_3(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_3 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data4, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 2
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 1, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_3 to i8*
ret i8* %i18
}
define internal fastcc i8* @llparse__start_4(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = load i8, i8* %p
switch i8 %i2, label %b2_otherwise [ i8 69 , label %b3_case_0 i8 84 , label %b4_case_1 ]
b1_false:
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_4 to i8*
ret i8* %i3
b2_otherwise:
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i4
b3_case_0:
%i5 = tail call fastcc i8* @llparse__start_5 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i5
b4_case_1:
%i6 = tail call fastcc i8* @llparse__start_6 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i6
}
define internal fastcc i8* @llparse__start_5(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_5 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data5, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 2
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i15
b7_false:
%i16 = icmp ne i8* %i5, %endp
br i1 %i16, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i17 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_5 to i8*
ret i8* %i17
}
define internal fastcc i8* @llparse__start_6(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_6 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data6, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 2
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = tail call fastcc i8* @llparse__invoke_on_response ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i15
b7_false:
%i16 = icmp ne i8* %i5, %endp
br i1 %i16, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i17 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_6 to i8*
ret i8* %i17
}
define internal fastcc i8* @llparse__invoke_on_response(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = call i32 @on_response ( %llparse_state* %s , i8* %p , i8* %endp )
switch i32 %i0, label %b0_otherwise [ i32 0 , label %b1_case_0 ]
b0_otherwise:
%i1 = tail call fastcc i8* @llparse__error_2 ( %llparse_state* %s , i8* %p , i8* %endp )
ret i8* %i1
b1_case_0:
%i2 = tail call fastcc i8* @llparse__start ( %llparse_state* %s , i8* %p , i8* %endp )
ret i8* %i2
}
define internal fastcc i8* @llparse__error_2(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2
%i2 = bitcast [20 x i8]* @.cstr7 to i8*
store i32 1, i32* %i0
store i8* %i2, i8** %i1
ret i8* null
}
define internal fastcc i8* @llparse__start_7(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_7 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [6 x i8], [6 x i8]* @.data8, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 6
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 5, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_7 to i8*
ret i8* %i18
}
define internal fastcc i8* @llparse__start_8(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = load i8, i8* %p
switch i8 %i2, label %b2_otherwise [ i8 65 , label %b3_case_0 i8 79 , label %b4_case_1 i8 85 , label %b5_case_2 ]
b1_false:
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_8 to i8*
ret i8* %i3
b2_otherwise:
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i4
b3_case_0:
%i5 = tail call fastcc i8* @llparse__start_9 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i5
b4_case_1:
%i6 = tail call fastcc i8* @llparse__start_10 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i6
b5_case_2:
%i7 = tail call fastcc i8* @llparse__start_11 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i7
}
define internal fastcc i8* @llparse__start_9(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_9 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [3 x i8], [3 x i8]* @.data9, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 3
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 8, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_9 to i8*
ret i8* %i18
}
define internal fastcc i8* @llparse__start_10(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_10 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [2 x i8], [2 x i8]* @.data10, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 2
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 2, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_10 to i8*
ret i8* %i18
}
define internal fastcc i8* @llparse__start_11(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = load i8, i8* %p
switch i8 %i2, label %b2_otherwise [ i8 84 , label %b3_case_0 ]
b1_false:
%i3 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_11 to i8*
ret i8* %i3
b2_otherwise:
%i4 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i4
b3_case_0:
%i5 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 3, i32* %i5
%i6 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i1 , i8* %endp )
ret i8* %i6
}
define internal fastcc i8* @llparse__start_12(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = icmp ne i8* %p, %endp
br i1 %i0, label %b0_true, label %b1_false
b0_true:
%i1 = getelementptr i8, i8* %p, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i3 = load i32, i32* %i2
br label %b2_target
b1_false:
%i4 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_12 to i8*
ret i8* %i4
b2_target:
%i5 = phi i8* [ %p , %b0_true ], [ %i6 , %b3_true ]
%i7 = phi i32 [ %i3 , %b0_true ], [ %i8 , %b3_true ]
%i9 = load i8, i8* %i5
%i10 = getelementptr inbounds [4 x i8], [4 x i8]* @.data11, i32 0, i32 %i7
%i11 = load i8, i8* %i10
%i12 = icmp eq i8 %i9, %i11
br i1 %i12, label %b4_true, label %b5_false
b4_true:
%i6 = getelementptr i8, i8* %i5, i32 1
%i8 = add i32 %i7, 1
%i13 = icmp eq i32 %i8, 4
br i1 %i13, label %b6_true, label %b7_false
b5_false:
store i32 0, i32* %i2
%i14 = tail call fastcc i8* @llparse__error_1 ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i14
b6_true:
store i32 0, i32* %i2
%i15 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i32 7, i32* %i15
%i16 = tail call fastcc i8* @llparse__invoke_on_request ( %llparse_state* %s , i8* %i6 , i8* %endp )
ret i8* %i16
b7_false:
%i17 = icmp ne i8* %i5, %endp
br i1 %i17, label %b3_true, label %b8_false
b3_true:
br label %b2_target
b8_false:
store i32 %i8, i32* %i2
%i18 = bitcast i8* (%llparse_state*, i8*, i8*)* @llparse__start_12 to i8*
ret i8* %i18
}
define void @llparse_init(%llparse_state* %s) {
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 0
%i1 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1
%i2 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 2
%i3 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 3
%i4 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 4
store i8* (%llparse_state*, i8*, i8*)* @llparse__start, i8* (%llparse_state*, i8*, i8*)** %i0
store i32 0, i32* %i1
store i8* null, i8** %i2
store i32 0, i32* %i3
store i32 0, i32* %i4
ret void
}
define i32 @llparse_execute(%llparse_state* %s, i8* %p, i8* %endp) {
%i0 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 0
%i1 = load i8* (%llparse_state*, i8*, i8*)*, i8* (%llparse_state*, i8*, i8*)** %i0
%i2 = call fastcc i8* %i1 ( %llparse_state* %s , i8* %p , i8* %endp )
%i3 = getelementptr %llparse_state, %llparse_state* %s, i32 0, i32 1
%i4 = load i32, i32* %i3
%i5 = bitcast i8* %i2 to i8* (%llparse_state*, i8*, i8*)*
store i8* (%llparse_state*, i8*, i8*)* %i5, i8* (%llparse_state*, i8*, i8*)** %i0
ret i32 %i4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment