Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ir_hierarchical_visitor.cpp 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. /*
  2. * Copyright © 2010 Intel Corporation
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a
  5. * copy of this software and associated documentation files (the "Software"),
  6. * to deal in the Software without restriction, including without limitation
  7. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8. * and/or sell copies of the Software, and to permit persons to whom the
  9. * Software is furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice (including the next
  12. * paragraph) shall be included in all copies or substantial portions of the
  13. * Software.
  14. *
  15. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  18. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  21. * DEALINGS IN THE SOFTWARE.
  22. */
  23. #define NULL 0
  24. #include "ir.h"
  25. #include "ir_hierarchical_visitor.h"
  26. ir_visitor_status
  27. ir_hierarchical_visitor::visit(ir_variable *ir)
  28. {
  29. (void) ir;
  30. return visit_continue;
  31. }
  32. ir_visitor_status
  33. ir_hierarchical_visitor::visit(ir_constant *ir)
  34. {
  35. (void) ir;
  36. return visit_continue;
  37. }
  38. ir_visitor_status
  39. ir_hierarchical_visitor::visit(ir_loop_jump *ir)
  40. {
  41. (void) ir;
  42. return visit_continue;
  43. }
  44. ir_visitor_status
  45. ir_hierarchical_visitor::visit(ir_dereference_variable *ir)
  46. {
  47. (void) ir;
  48. return visit_continue;
  49. }
  50. ir_visitor_status
  51. ir_hierarchical_visitor::visit_enter(ir_loop *ir)
  52. {
  53. (void) ir;
  54. return visit_continue;
  55. }
  56. ir_visitor_status
  57. ir_hierarchical_visitor::visit_leave(ir_loop *ir)
  58. {
  59. (void) ir;
  60. return visit_continue;
  61. }
  62. ir_visitor_status
  63. ir_hierarchical_visitor::visit_enter(ir_function_signature *ir)
  64. {
  65. (void) ir;
  66. return visit_continue;
  67. }
  68. ir_visitor_status
  69. ir_hierarchical_visitor::visit_leave(ir_function_signature *ir)
  70. {
  71. (void) ir;
  72. return visit_continue;
  73. }
  74. ir_visitor_status
  75. ir_hierarchical_visitor::visit_enter(ir_function *ir)
  76. {
  77. (void) ir;
  78. return visit_continue;
  79. }
  80. ir_visitor_status
  81. ir_hierarchical_visitor::visit_leave(ir_function *ir)
  82. {
  83. (void) ir;
  84. return visit_continue;
  85. }
  86. ir_visitor_status
  87. ir_hierarchical_visitor::visit_enter(ir_expression *ir)
  88. {
  89. (void) ir;
  90. return visit_continue;
  91. }
  92. ir_visitor_status
  93. ir_hierarchical_visitor::visit_leave(ir_expression *ir)
  94. {
  95. (void) ir;
  96. return visit_continue;
  97. }
  98. ir_visitor_status
  99. ir_hierarchical_visitor::visit_enter(ir_texture *ir)
  100. {
  101. (void) ir;
  102. return visit_continue;
  103. }
  104. ir_visitor_status
  105. ir_hierarchical_visitor::visit_leave(ir_texture *ir)
  106. {
  107. (void) ir;
  108. return visit_continue;
  109. }
  110. ir_visitor_status
  111. ir_hierarchical_visitor::visit_enter(ir_swizzle *ir)
  112. {
  113. (void) ir;
  114. return visit_continue;
  115. }
  116. ir_visitor_status
  117. ir_hierarchical_visitor::visit_leave(ir_swizzle *ir)
  118. {
  119. (void) ir;
  120. return visit_continue;
  121. }
  122. ir_visitor_status
  123. ir_hierarchical_visitor::visit_enter(ir_dereference_array *ir)
  124. {
  125. (void) ir;
  126. return visit_continue;
  127. }
  128. ir_visitor_status
  129. ir_hierarchical_visitor::visit_leave(ir_dereference_array *ir)
  130. {
  131. (void) ir;
  132. return visit_continue;
  133. }
  134. ir_visitor_status
  135. ir_hierarchical_visitor::visit_enter(ir_dereference_record *ir)
  136. {
  137. (void) ir;
  138. return visit_continue;
  139. }
  140. ir_visitor_status
  141. ir_hierarchical_visitor::visit_leave(ir_dereference_record *ir)
  142. {
  143. (void) ir;
  144. return visit_continue;
  145. }
  146. ir_visitor_status
  147. ir_hierarchical_visitor::visit_enter(ir_assignment *ir)
  148. {
  149. (void) ir;
  150. return visit_continue;
  151. }
  152. ir_visitor_status
  153. ir_hierarchical_visitor::visit_leave(ir_assignment *ir)
  154. {
  155. (void) ir;
  156. return visit_continue;
  157. }
  158. ir_visitor_status
  159. ir_hierarchical_visitor::visit_enter(ir_call *ir)
  160. {
  161. (void) ir;
  162. return visit_continue;
  163. }
  164. ir_visitor_status
  165. ir_hierarchical_visitor::visit_leave(ir_call *ir)
  166. {
  167. (void) ir;
  168. return visit_continue;
  169. }
  170. ir_visitor_status
  171. ir_hierarchical_visitor::visit_enter(ir_return *ir)
  172. {
  173. (void) ir;
  174. return visit_continue;
  175. }
  176. ir_visitor_status
  177. ir_hierarchical_visitor::visit_leave(ir_return *ir)
  178. {
  179. (void) ir;
  180. return visit_continue;
  181. }
  182. ir_visitor_status
  183. ir_hierarchical_visitor::visit_enter(ir_if *ir)
  184. {
  185. (void) ir;
  186. return visit_continue;
  187. }
  188. ir_visitor_status
  189. ir_hierarchical_visitor::visit_leave(ir_if *ir)
  190. {
  191. (void) ir;
  192. return visit_continue;
  193. }
  194. void
  195. ir_hierarchical_visitor::run(exec_list *instructions)
  196. {
  197. foreach_list(n, instructions) {
  198. ir_instruction *ir = (ir_instruction *) n;
  199. if (ir->accept(this) != visit_continue)
  200. break;
  201. }
  202. }