2004-03-18-InvokeHandling.ll 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. ; RUN: opt < %s -loop-extract -disable-output
  2. declare i32 @_IO_getc()
  3. declare void @__errno_location()
  4. define void @yylex() personality i32 (...)* @__gcc_personality_v0 {
  5. entry:
  6. switch i32 0, label %label.126 [
  7. i32 0, label %return
  8. i32 61, label %combine
  9. i32 33, label %combine
  10. i32 94, label %combine
  11. i32 37, label %combine
  12. i32 47, label %combine
  13. i32 42, label %combine
  14. i32 62, label %combine
  15. i32 60, label %combine
  16. i32 58, label %combine
  17. i32 124, label %combine
  18. i32 38, label %combine
  19. i32 45, label %combine
  20. i32 43, label %combine
  21. i32 34, label %string_constant
  22. i32 39, label %char_constant
  23. i32 46, label %loopexit.2
  24. i32 57, label %loopexit.2
  25. i32 56, label %loopexit.2
  26. i32 55, label %loopexit.2
  27. i32 54, label %loopexit.2
  28. i32 53, label %loopexit.2
  29. i32 52, label %loopexit.2
  30. i32 51, label %loopexit.2
  31. i32 50, label %loopexit.2
  32. i32 49, label %loopexit.2
  33. i32 48, label %loopexit.2
  34. i32 95, label %letter
  35. i32 122, label %letter
  36. i32 121, label %letter
  37. i32 120, label %letter
  38. i32 119, label %letter
  39. i32 118, label %letter
  40. i32 117, label %letter
  41. i32 116, label %letter
  42. i32 115, label %letter
  43. i32 114, label %letter
  44. i32 113, label %letter
  45. i32 112, label %letter
  46. i32 111, label %letter
  47. i32 110, label %letter
  48. i32 109, label %letter
  49. i32 108, label %letter
  50. i32 107, label %letter
  51. i32 106, label %letter
  52. i32 105, label %letter
  53. i32 104, label %letter
  54. i32 103, label %letter
  55. i32 102, label %letter
  56. i32 101, label %letter
  57. i32 100, label %letter
  58. i32 99, label %letter
  59. i32 98, label %letter
  60. i32 97, label %letter
  61. i32 90, label %letter
  62. i32 89, label %letter
  63. i32 88, label %letter
  64. i32 87, label %letter
  65. i32 86, label %letter
  66. i32 85, label %letter
  67. i32 84, label %letter
  68. i32 83, label %letter
  69. i32 82, label %letter
  70. i32 81, label %letter
  71. i32 80, label %letter
  72. i32 79, label %letter
  73. i32 78, label %letter
  74. i32 77, label %letter
  75. i32 75, label %letter
  76. i32 74, label %letter
  77. i32 73, label %letter
  78. i32 72, label %letter
  79. i32 71, label %letter
  80. i32 70, label %letter
  81. i32 69, label %letter
  82. i32 68, label %letter
  83. i32 67, label %letter
  84. i32 66, label %letter
  85. i32 65, label %letter
  86. i32 64, label %label.13
  87. i32 76, label %label.12
  88. i32 36, label %label.11
  89. i32 -1, label %label.10
  90. ]
  91. label.10: ; preds = %entry
  92. ret void
  93. label.11: ; preds = %entry
  94. ret void
  95. label.12: ; preds = %entry
  96. ret void
  97. label.13: ; preds = %entry
  98. ret void
  99. letter: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
  100. ret void
  101. loopexit.2: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
  102. switch i32 0, label %shortcirc_next.14 [
  103. i32 48, label %then.20
  104. i32 46, label %endif.38
  105. ]
  106. then.20: ; preds = %loopexit.2
  107. switch i32 0, label %else.4 [
  108. i32 120, label %then.21
  109. i32 88, label %then.21
  110. ]
  111. then.21: ; preds = %then.20, %then.20
  112. ret void
  113. else.4: ; preds = %then.20
  114. ret void
  115. shortcirc_next.14: ; preds = %loopexit.2
  116. ret void
  117. endif.38: ; preds = %loopexit.2
  118. br i1 false, label %then.40, label %then.39
  119. then.39: ; preds = %endif.38
  120. ret void
  121. then.40: ; preds = %endif.38
  122. invoke void @__errno_location( )
  123. to label %switchexit.2 unwind label %LongJmpBlkPre
  124. loopentry.6: ; preds = %endif.52
  125. switch i32 0, label %switchexit.2 [
  126. i32 73, label %label.82
  127. i32 105, label %label.82
  128. i32 76, label %label.80
  129. i32 108, label %label.80
  130. i32 70, label %label.78
  131. i32 102, label %label.78
  132. ]
  133. label.78: ; preds = %loopentry.6, %loopentry.6
  134. ret void
  135. label.80: ; preds = %loopentry.6, %loopentry.6
  136. ret void
  137. label.82: ; preds = %loopentry.6, %loopentry.6
  138. %c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; <i32> [#uses=0]
  139. ret void
  140. switchexit.2: ; preds = %loopentry.6, %then.40
  141. br i1 false, label %endif.51, label %loopexit.6
  142. endif.51: ; preds = %switchexit.2
  143. br i1 false, label %endif.52, label %then.52
  144. then.52: ; preds = %endif.51
  145. ret void
  146. endif.52: ; preds = %endif.51
  147. %tmp.79417 = invoke i32 @_IO_getc( )
  148. to label %loopentry.6 unwind label %LongJmpBlkPre ; <i32> [#uses=2]
  149. loopexit.6: ; preds = %switchexit.2
  150. ret void
  151. char_constant: ; preds = %entry
  152. ret void
  153. string_constant: ; preds = %entry
  154. ret void
  155. combine: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
  156. ret void
  157. label.126: ; preds = %entry
  158. ret void
  159. return: ; preds = %entry
  160. ret void
  161. LongJmpBlkPre: ; preds = %endif.52, %then.40
  162. %exn = landingpad { i8*, i32 }
  163. catch i8* null
  164. ret void
  165. }
  166. declare i32 @__gcc_personality_v0(...)