reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
; RUN: llc < %s -mtriple=x86_64-apple-darwin10
; PR4587
; rdar://7072590

	%struct.re_pattern_buffer = type <{ i8*, i64, i64, i64, i8*, i64, i64, i8, i8, i8, i8, i8, i8, i8, i8 }>

define fastcc i32 @regex_compile(i8* %pattern, i64 %size, i64 %syntax, %struct.re_pattern_buffer* nocapture %bufp) nounwind ssp {
entry:
	br i1 undef, label %return, label %if.end

if.end:		; preds = %entry
	%tmp35 = getelementptr %struct.re_pattern_buffer, %struct.re_pattern_buffer* %bufp, i64 0, i32 3		; <i64*> [#uses=1]
	store i64 %syntax, i64* %tmp35
	store i32 undef, i32* undef
	br i1 undef, label %if.then66, label %if.end102

if.then66:		; preds = %if.end
	br i1 false, label %if.else, label %if.then70

if.then70:		; preds = %if.then66
	%call74 = call i8* @xrealloc(i8* undef, i64 32) nounwind ssp		; <i8*> [#uses=0]
	unreachable

if.else:		; preds = %if.then66
	br i1 false, label %do.body86, label %if.end99

do.body86:		; preds = %if.else
	br i1 false, label %do.end, label %if.then90

if.then90:		; preds = %do.body86
	unreachable

do.end:		; preds = %do.body86
	ret i32 12

if.end99:		; preds = %if.else
	br label %if.end102

if.end102:		; preds = %if.end99, %if.end
	br label %while.body

while.body:		; preds = %if.end1126, %sw.bb532, %while.body, %if.end102
	%laststart.2 = phi i8* [ null, %if.end102 ], [ %laststart.7.ph, %if.end1126 ], [ %laststart.2, %sw.bb532 ], [ %laststart.2, %while.body ]		; <i8*> [#uses=6]
	%b.1 = phi i8* [ undef, %if.end102 ], [ %ctg29688, %if.end1126 ], [ %b.1, %sw.bb532 ], [ %b.1, %while.body ]		; <i8*> [#uses=5]
	br i1 undef, label %while.body, label %if.end127

if.end127:		; preds = %while.body
	switch i32 undef, label %sw.bb532 [
		i32 123, label %handle_interval
		i32 92, label %do.body3527
	]

sw.bb532:		; preds = %if.end127
	br i1 undef, label %while.body, label %if.end808

if.end808:		; preds = %sw.bb532
	br i1 undef, label %while.cond1267.preheader, label %if.then811

while.cond1267.preheader:		; preds = %if.end808
	br i1 false, label %return, label %if.end1294

if.then811:		; preds = %if.end808
	%call817 = call fastcc i8* @skip_one_char(i8* %laststart.2) ssp		; <i8*> [#uses=0]
	br i1 undef, label %cond.end834, label %lor.lhs.false827

lor.lhs.false827:		; preds = %if.then811
	br label %cond.end834

cond.end834:		; preds = %lor.lhs.false827, %if.then811
	br i1 undef, label %land.lhs.true838, label %while.cond979.preheader

land.lhs.true838:		; preds = %cond.end834
	br i1 undef, label %if.then842, label %while.cond979.preheader

if.then842:		; preds = %land.lhs.true838
	%conv851 = trunc i64 undef to i32		; <i32> [#uses=1]
	br label %while.cond979.preheader

while.cond979.preheader:		; preds = %if.then842, %land.lhs.true838, %cond.end834
	%startoffset.0.ph = phi i32 [ 0, %cond.end834 ], [ 0, %land.lhs.true838 ], [ %conv851, %if.then842 ]		; <i32> [#uses=2]
	%laststart.7.ph = phi i8* [ %laststart.2, %cond.end834 ], [ %laststart.2, %land.lhs.true838 ], [ %laststart.2, %if.then842 ]		; <i8*> [#uses=3]
	%b.4.ph = phi i8* [ %b.1, %cond.end834 ], [ %b.1, %land.lhs.true838 ], [ %b.1, %if.then842 ]		; <i8*> [#uses=3]
	%ctg29688 = getelementptr i8, i8* %b.4.ph, i64 6		; <i8*> [#uses=1]
	br label %while.cond979

while.cond979:		; preds = %if.end1006, %while.cond979.preheader
	%cmp991 = icmp ugt i64 undef, 0		; <i1> [#uses=1]
	br i1 %cmp991, label %do.body994, label %while.end1088

do.body994:		; preds = %while.cond979
	br i1 undef, label %return, label %if.end1006

if.end1006:		; preds = %do.body994
	%cmp1014 = icmp ugt i64 undef, 32768		; <i1> [#uses=1]
	%storemerge10953 = select i1 %cmp1014, i64 32768, i64 undef		; <i64> [#uses=1]
	store i64 %storemerge10953, i64* undef
	br i1 false, label %return, label %while.cond979

while.end1088:		; preds = %while.cond979
	br i1 undef, label %if.then1091, label %if.else1101

if.then1091:		; preds = %while.end1088
	store i8 undef, i8* undef
	%idx.ext1132.pre = zext i32 %startoffset.0.ph to i64		; <i64> [#uses=1]
	%add.ptr1133.pre = getelementptr i8, i8* %laststart.7.ph, i64 %idx.ext1132.pre		; <i8*> [#uses=1]
	%sub.ptr.lhs.cast1135.pre = ptrtoint i8* %add.ptr1133.pre to i64		; <i64> [#uses=1]
	br label %if.end1126

if.else1101:		; preds = %while.end1088
	%cond1109 = select i1 undef, i32 18, i32 14		; <i32> [#uses=1]
	%idx.ext1112 = zext i32 %startoffset.0.ph to i64		; <i64> [#uses=1]
	%add.ptr1113 = getelementptr i8, i8* %laststart.7.ph, i64 %idx.ext1112		; <i8*> [#uses=2]
	%sub.ptr.rhs.cast1121 = ptrtoint i8* %add.ptr1113 to i64		; <i64> [#uses=1]
	call fastcc void @insert_op1(i32 %cond1109, i8* %add.ptr1113, i32 undef, i8* %b.4.ph) ssp
	br label %if.end1126

if.end1126:		; preds = %if.else1101, %if.then1091
	%sub.ptr.lhs.cast1135.pre-phi = phi i64 [ %sub.ptr.rhs.cast1121, %if.else1101 ], [ %sub.ptr.lhs.cast1135.pre, %if.then1091 ]		; <i64> [#uses=1]
	%add.ptr1128 = getelementptr i8, i8* %b.4.ph, i64 3		; <i8*> [#uses=1]
	%sub.ptr.rhs.cast1136 = ptrtoint i8* %add.ptr1128 to i64		; <i64> [#uses=1]
	%sub.ptr.sub1137 = sub i64 %sub.ptr.lhs.cast1135.pre-phi, %sub.ptr.rhs.cast1136		; <i64> [#uses=1]
	%sub.ptr.sub11378527 = trunc i64 %sub.ptr.sub1137 to i32		; <i32> [#uses=1]
	%conv1139 = add i32 %sub.ptr.sub11378527, -3		; <i32> [#uses=1]
	store i8 undef, i8* undef
	%shr10.i8599 = lshr i32 %conv1139, 8		; <i32> [#uses=1]
	%conv6.i8600 = trunc i32 %shr10.i8599 to i8		; <i8> [#uses=1]
	store i8 %conv6.i8600, i8* undef
	br label %while.body

if.end1294:		; preds = %while.cond1267.preheader
	ret i32 12

do.body3527:		; preds = %if.end127
	br i1 undef, label %do.end3536, label %if.then3531

if.then3531:		; preds = %do.body3527
	unreachable

do.end3536:		; preds = %do.body3527
	ret i32 5

handle_interval:		; preds = %if.end127
	br i1 undef, label %do.body4547, label %cond.false4583

do.body4547:		; preds = %handle_interval
	br i1 undef, label %do.end4556, label %if.then4551

if.then4551:		; preds = %do.body4547
	unreachable

do.end4556:		; preds = %do.body4547
	ret i32 9

cond.false4583:		; preds = %handle_interval
	unreachable

return:		; preds = %if.end1006, %do.body994, %while.cond1267.preheader, %entry
	ret i32 undef
}

declare i8* @xrealloc(i8*, i64) ssp

declare fastcc i8* @skip_one_char(i8*) nounwind readonly ssp

declare fastcc void @insert_op1(i32, i8*, i32, i8*) nounwind ssp