list.c.072i.cp 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. IPA constant propagation start:
  2. IPA structures before propagation:
  3. Jump functions:
  4. Jump functions of caller uxListRemove/8:
  5. Jump functions of caller vListInsert/7:
  6. Jump functions of caller vListInsertEnd/6:
  7. Jump functions of caller vListInitialiseItem/5:
  8. Jump functions of caller vListInitialise/4:
  9. Propagating constants:
  10. Not considering uxListRemove for cloning; -fipa-cp-clone disabled.
  11. Not considering vListInsert for cloning; -fipa-cp-clone disabled.
  12. Not considering vListInsertEnd for cloning; -fipa-cp-clone disabled.
  13. Not considering vListInitialiseItem for cloning; -fipa-cp-clone disabled.
  14. Not considering vListInitialise for cloning; -fipa-cp-clone disabled.
  15. overall_size: 63, max_new_size: 11001
  16. IPA lattices after all propagation:
  17. Lattices:
  18. Node: uxListRemove/8:
  19. param [0]: BOTTOM
  20. ctxs: BOTTOM
  21. Bits unusable (BOTTOM)
  22. VARYING
  23. AGGS BOTTOM
  24. Node: vListInsert/7:
  25. param [0]: BOTTOM
  26. ctxs: BOTTOM
  27. Bits unusable (BOTTOM)
  28. VARYING
  29. AGGS BOTTOM
  30. param [1]: BOTTOM
  31. ctxs: BOTTOM
  32. Bits unusable (BOTTOM)
  33. VARYING
  34. AGGS BOTTOM
  35. Node: vListInsertEnd/6:
  36. param [0]: BOTTOM
  37. ctxs: BOTTOM
  38. Bits unusable (BOTTOM)
  39. VARYING
  40. AGGS BOTTOM
  41. param [1]: BOTTOM
  42. ctxs: BOTTOM
  43. Bits unusable (BOTTOM)
  44. VARYING
  45. AGGS BOTTOM
  46. Node: vListInitialiseItem/5:
  47. param [0]: BOTTOM
  48. ctxs: BOTTOM
  49. Bits unusable (BOTTOM)
  50. VARYING
  51. AGGS BOTTOM
  52. Node: vListInitialise/4:
  53. param [0]: BOTTOM
  54. ctxs: BOTTOM
  55. Bits unusable (BOTTOM)
  56. VARYING
  57. AGGS BOTTOM
  58. IPA decision stage:
  59. IPA constant propagation end
  60. Reclaiming functions:
  61. Reclaiming variables:
  62. Clearing address taken flags:
  63. Symbol table:
  64. uxListRemove/8 (uxListRemove) @06a23ee0
  65. Type: function definition analyzed
  66. Visibility: externally_visible public
  67. References:
  68. Referring:
  69. Availability: available
  70. Function flags: count:1073741824 (estimated locally) body optimize_size
  71. Called by:
  72. Calls:
  73. vListInsert/7 (vListInsert) @06a23c40
  74. Type: function definition analyzed
  75. Visibility: externally_visible public
  76. References:
  77. Referring:
  78. Availability: available
  79. Function flags: count:178956970 (estimated locally) body optimize_size
  80. Called by:
  81. Calls:
  82. vListInsertEnd/6 (vListInsertEnd) @06a239a0
  83. Type: function definition analyzed
  84. Visibility: externally_visible public
  85. References:
  86. Referring:
  87. Availability: available
  88. Function flags: count:1073741824 (estimated locally) body optimize_size
  89. Called by:
  90. Calls:
  91. vListInitialiseItem/5 (vListInitialiseItem) @06a23700
  92. Type: function definition analyzed
  93. Visibility: externally_visible public
  94. References:
  95. Referring:
  96. Availability: available
  97. Function flags: count:1073741824 (estimated locally) body optimize_size
  98. Called by:
  99. Calls:
  100. vListInitialise/4 (vListInitialise) @06a23460
  101. Type: function definition analyzed
  102. Visibility: externally_visible public
  103. References:
  104. Referring:
  105. Availability: available
  106. Function flags: count:1073741824 (estimated locally) body optimize_size
  107. Called by:
  108. Calls:
  109. ;; Function vListInitialise (vListInitialise, funcdef_no=4, decl_uid=5982, cgraph_uid=5, symbol_order=4)
  110. Modification phase of node vListInitialise/4
  111. vListInitialise (struct List_t * const pxList)
  112. {
  113. struct MiniListItem_t * _1;
  114. <bb 2> [local count: 1073741824]:
  115. # DEBUG BEGIN_STMT
  116. _1 = &pxList_2(D)->xListEnd;
  117. pxList_2(D)->pxIndex = _1;
  118. # DEBUG BEGIN_STMT
  119. pxList_2(D)->xListEnd.xItemValue = 4294967295;
  120. # DEBUG BEGIN_STMT
  121. pxList_2(D)->xListEnd.pxNext = _1;
  122. # DEBUG BEGIN_STMT
  123. pxList_2(D)->xListEnd.pxPrevious = _1;
  124. # DEBUG BEGIN_STMT
  125. pxList_2(D)->uxNumberOfItems ={v} 0;
  126. # DEBUG BEGIN_STMT
  127. # DEBUG BEGIN_STMT
  128. return;
  129. }
  130. ;; Function vListInitialiseItem (vListInitialiseItem, funcdef_no=5, decl_uid=5984, cgraph_uid=6, symbol_order=5)
  131. Modification phase of node vListInitialiseItem/5
  132. vListInitialiseItem (struct ListItem_t * const pxItem)
  133. {
  134. <bb 2> [local count: 1073741824]:
  135. # DEBUG BEGIN_STMT
  136. pxItem_2(D)->pvContainer = 0B;
  137. # DEBUG BEGIN_STMT
  138. # DEBUG BEGIN_STMT
  139. return;
  140. }
  141. ;; Function vListInsertEnd (vListInsertEnd, funcdef_no=6, decl_uid=5990, cgraph_uid=7, symbol_order=6)
  142. Modification phase of node vListInsertEnd/6
  143. vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  144. {
  145. struct ListItem_t * const pxIndex;
  146. struct xLIST_ITEM * _1;
  147. struct xLIST_ITEM * _2;
  148. long unsigned int _3;
  149. long unsigned int _4;
  150. <bb 2> [local count: 1073741824]:
  151. # DEBUG BEGIN_STMT
  152. pxIndex_7 = pxList_6(D)->pxIndex;
  153. # DEBUG pxIndex => pxIndex_7
  154. # DEBUG BEGIN_STMT
  155. # DEBUG BEGIN_STMT
  156. # DEBUG BEGIN_STMT
  157. pxNewListItem_8(D)->pxNext = pxIndex_7;
  158. # DEBUG BEGIN_STMT
  159. _1 = pxIndex_7->pxPrevious;
  160. pxNewListItem_8(D)->pxPrevious = _1;
  161. # DEBUG BEGIN_STMT
  162. # DEBUG BEGIN_STMT
  163. _2 = pxIndex_7->pxPrevious;
  164. _2->pxNext = pxNewListItem_8(D);
  165. # DEBUG BEGIN_STMT
  166. pxIndex_7->pxPrevious = pxNewListItem_8(D);
  167. # DEBUG BEGIN_STMT
  168. pxNewListItem_8(D)->pvContainer = pxList_6(D);
  169. # DEBUG BEGIN_STMT
  170. _3 ={v} pxList_6(D)->uxNumberOfItems;
  171. _4 = _3 + 1;
  172. pxList_6(D)->uxNumberOfItems ={v} _4;
  173. return;
  174. }
  175. ;; Function vListInsert (vListInsert, funcdef_no=7, decl_uid=5987, cgraph_uid=8, symbol_order=7)
  176. Modification phase of node vListInsert/7
  177. vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  178. {
  179. const TickType_t xValueOfInsertion;
  180. struct ListItem_t * pxIterator;
  181. struct xLIST_ITEM * _1;
  182. long unsigned int _2;
  183. struct xLIST_ITEM * _3;
  184. long unsigned int _4;
  185. long unsigned int _5;
  186. <bb 2> [local count: 178956970]:
  187. # DEBUG BEGIN_STMT
  188. # DEBUG BEGIN_STMT
  189. xValueOfInsertion_10 = pxNewListItem_9(D)->xItemValue;
  190. # DEBUG xValueOfInsertion => xValueOfInsertion_10
  191. # DEBUG BEGIN_STMT
  192. # DEBUG BEGIN_STMT
  193. # DEBUG BEGIN_STMT
  194. if (xValueOfInsertion_10 == 4294967295)
  195. goto <bb 3>; [34.00%]
  196. else
  197. goto <bb 4>; [66.00%]
  198. <bb 3> [local count: 60845370]:
  199. # DEBUG BEGIN_STMT
  200. pxIterator_13 = pxList_11(D)->xListEnd.pxPrevious;
  201. # DEBUG pxIterator => pxIterator_13
  202. goto <bb 6>; [100.00%]
  203. <bb 4> [local count: 118111600]:
  204. # DEBUG BEGIN_STMT
  205. pxIterator_12 = &pxList_11(D)->xListEnd;
  206. # DEBUG pxIterator => pxIterator_12
  207. <bb 5> [local count: 1073741824]:
  208. # pxIterator_6 = PHI <pxIterator_12(4), _1(7)>
  209. # DEBUG pxIterator => pxIterator_6
  210. # DEBUG BEGIN_STMT
  211. _1 = pxIterator_6->pxNext;
  212. _2 = _1->xItemValue;
  213. if (_2 <= xValueOfInsertion_10)
  214. goto <bb 7>; [89.00%]
  215. else
  216. goto <bb 6>; [11.00%]
  217. <bb 7> [local count: 955630223]:
  218. goto <bb 5>; [100.00%]
  219. <bb 6> [local count: 178956970]:
  220. # pxIterator_7 = PHI <pxIterator_13(3), pxIterator_6(5)>
  221. # DEBUG pxIterator => pxIterator_7
  222. # DEBUG BEGIN_STMT
  223. _3 = pxIterator_7->pxNext;
  224. pxNewListItem_9(D)->pxNext = _3;
  225. # DEBUG BEGIN_STMT
  226. _3->pxPrevious = pxNewListItem_9(D);
  227. # DEBUG BEGIN_STMT
  228. pxNewListItem_9(D)->pxPrevious = pxIterator_7;
  229. # DEBUG BEGIN_STMT
  230. pxIterator_7->pxNext = pxNewListItem_9(D);
  231. # DEBUG BEGIN_STMT
  232. pxNewListItem_9(D)->pvContainer = pxList_11(D);
  233. # DEBUG BEGIN_STMT
  234. _4 ={v} pxList_11(D)->uxNumberOfItems;
  235. _5 = _4 + 1;
  236. pxList_11(D)->uxNumberOfItems ={v} _5;
  237. return;
  238. }
  239. ;; Function uxListRemove (uxListRemove, funcdef_no=8, decl_uid=5992, cgraph_uid=9, symbol_order=8)
  240. Modification phase of node uxListRemove/8
  241. uxListRemove (struct ListItem_t * const pxItemToRemove)
  242. {
  243. struct List_t * const pxList;
  244. struct xLIST_ITEM * _1;
  245. struct xLIST_ITEM * _2;
  246. struct ListItem_t * _3;
  247. long unsigned int _4;
  248. long unsigned int _5;
  249. UBaseType_t _15;
  250. <bb 2> [local count: 1073741824]:
  251. # DEBUG BEGIN_STMT
  252. pxList_9 = pxItemToRemove_8(D)->pvContainer;
  253. # DEBUG pxList => pxList_9
  254. # DEBUG BEGIN_STMT
  255. _1 = pxItemToRemove_8(D)->pxNext;
  256. _2 = pxItemToRemove_8(D)->pxPrevious;
  257. _1->pxPrevious = _2;
  258. # DEBUG BEGIN_STMT
  259. _2->pxNext = _1;
  260. # DEBUG BEGIN_STMT
  261. # DEBUG BEGIN_STMT
  262. _3 = pxList_9->pxIndex;
  263. if (_3 == pxItemToRemove_8(D))
  264. goto <bb 3>; [30.00%]
  265. else
  266. goto <bb 4>; [70.00%]
  267. <bb 3> [local count: 322122547]:
  268. # DEBUG BEGIN_STMT
  269. pxList_9->pxIndex = _2;
  270. <bb 4> [local count: 1073741824]:
  271. # DEBUG BEGIN_STMT
  272. # DEBUG BEGIN_STMT
  273. pxItemToRemove_8(D)->pvContainer = 0B;
  274. # DEBUG BEGIN_STMT
  275. _4 ={v} pxList_9->uxNumberOfItems;
  276. _5 = _4 + 4294967295;
  277. pxList_9->uxNumberOfItems ={v} _5;
  278. # DEBUG BEGIN_STMT
  279. _15 ={v} pxList_9->uxNumberOfItems;
  280. return _15;
  281. }