list.c.076i.inline 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. IPA function summary for uxListRemove/8 inlinable
  2. global time: 15.300000
  3. self size: 17
  4. global size: 17
  5. min size: 0
  6. self stack: 0
  7. global stack: 0
  8. size:10.500000, time:9.800000
  9. size:3.500000, time:2.500000, executed if:(not inlined)
  10. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 128] changed) && (not inlined)
  11. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 128] changed)
  12. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 32] changed) && (not inlined)
  13. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 32] changed)
  14. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 64] changed) && (not inlined)
  15. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 64] changed)
  16. calls:
  17. IPA function summary for vListInsert/7 inlinable
  18. global time: 38.340000
  19. self size: 20
  20. global size: 20
  21. min size: 0
  22. self stack: 0
  23. global stack: 0
  24. size:5.000000, time:5.000000
  25. size:5.000000, time:4.000000, executed if:(not inlined)
  26. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 0] changed) && (not inlined)
  27. size:2.500000, time:2.500000, nonconst if:(op1[ref offset: 0] changed)
  28. size:4.000000, time:24.000000, executed if:(op1[ref offset: 0] != 4294967295)
  29. size:0.500000, time:0.170000, executed if:(op1[ref offset: 0] == 4294967295) && (not inlined), nonconst if:(op0[ref offset: 128] changed) && (op1[ref offset: 0] == 4294967295) && (not inlined)
  30. size:0.500000, time:0.170000, executed if:(op1[ref offset: 0] == 4294967295), nonconst if:(op0[ref offset: 128] changed) && (op1[ref offset: 0] == 4294967295)
  31. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
  32. size:1.500000, time:1.500000, nonconst if:(op0[ref offset: 0] changed)
  33. calls:
  34. IPA function summary for vListInsertEnd/6 inlinable
  35. global time: 13.000000
  36. self size: 14
  37. global size: 14
  38. min size: 0
  39. self stack: 0
  40. global stack: 0
  41. size:6.000000, time:6.000000
  42. size:5.000000, time:4.000000, executed if:(not inlined)
  43. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 32] changed) && (not inlined)
  44. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 32] changed)
  45. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
  46. size:1.500000, time:1.500000, nonconst if:(op0[ref offset: 0] changed)
  47. calls:
  48. IPA function summary for vListInitialiseItem/5 inlinable
  49. global time: 3.000000
  50. self size: 4
  51. global size: 4
  52. min size: 0
  53. self stack: 0
  54. global stack: 0
  55. size:0.500000, time:0.500000
  56. size:3.500000, time:2.500000, executed if:(not inlined)
  57. calls:
  58. IPA function summary for vListInitialise/4 inlinable
  59. global time: 7.000000
  60. self size: 8
  61. global size: 8
  62. min size: 0
  63. self stack: 0
  64. global stack: 0
  65. size:2.500000, time:2.500000
  66. size:5.500000, time:4.500000, executed if:(not inlined)
  67. calls:
  68. Flattening functions:
  69. Overall time estimate: 76.640000 weighted by profile: 0.000000
  70. Deciding on inlining of small functions. Starting with size 0.
  71. Enqueueing calls in uxListRemove/8.
  72. Enqueueing calls in vListInsert/7.
  73. Enqueueing calls in vListInsertEnd/6.
  74. Enqueueing calls in vListInitialiseItem/5.
  75. Enqueueing calls in vListInitialise/4.
  76. Reclaiming functions:
  77. Reclaiming variables:
  78. Clearing address taken flags:
  79. Deciding on functions to be inlined into all callers and removing useless speculations:
  80. Overall time estimate: 76.640000 weighted by profile: 0.000000
  81. Why inlining failed?
  82. IPA function summary for uxListRemove/8 inlinable
  83. global time: 15.300000
  84. self size: 17
  85. global size: 17
  86. min size: 0
  87. self stack: 0
  88. global stack: 0
  89. size:10.500000, time:9.800000
  90. size:3.500000, time:2.500000, executed if:(not inlined)
  91. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 128] changed) && (not inlined)
  92. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 128] changed)
  93. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 32] changed) && (not inlined)
  94. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 32] changed)
  95. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 64] changed) && (not inlined)
  96. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 64] changed)
  97. calls:
  98. IPA function summary for vListInsert/7 inlinable
  99. global time: 38.340000
  100. self size: 20
  101. global size: 20
  102. min size: 0
  103. self stack: 0
  104. global stack: 0
  105. size:5.000000, time:5.000000
  106. size:5.000000, time:4.000000, executed if:(not inlined)
  107. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 0] changed) && (not inlined)
  108. size:2.500000, time:2.500000, nonconst if:(op1[ref offset: 0] changed)
  109. size:4.000000, time:24.000000, executed if:(op1[ref offset: 0] != 4294967295)
  110. size:0.500000, time:0.170000, executed if:(op1[ref offset: 0] == 4294967295) && (not inlined), nonconst if:(op0[ref offset: 128] changed) && (op1[ref offset: 0] == 4294967295) && (not inlined)
  111. size:0.500000, time:0.170000, executed if:(op1[ref offset: 0] == 4294967295), nonconst if:(op0[ref offset: 128] changed) && (op1[ref offset: 0] == 4294967295)
  112. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
  113. size:1.500000, time:1.500000, nonconst if:(op0[ref offset: 0] changed)
  114. calls:
  115. IPA function summary for vListInsertEnd/6 inlinable
  116. global time: 13.000000
  117. self size: 14
  118. global size: 14
  119. min size: 0
  120. self stack: 0
  121. global stack: 0
  122. size:6.000000, time:6.000000
  123. size:5.000000, time:4.000000, executed if:(not inlined)
  124. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 32] changed) && (not inlined)
  125. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 32] changed)
  126. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
  127. size:1.500000, time:1.500000, nonconst if:(op0[ref offset: 0] changed)
  128. calls:
  129. IPA function summary for vListInitialiseItem/5 inlinable
  130. global time: 3.000000
  131. self size: 4
  132. global size: 4
  133. min size: 0
  134. self stack: 0
  135. global stack: 0
  136. size:0.500000, time:0.500000
  137. size:3.500000, time:2.500000, executed if:(not inlined)
  138. calls:
  139. IPA function summary for vListInitialise/4 inlinable
  140. global time: 7.000000
  141. self size: 8
  142. global size: 8
  143. min size: 0
  144. self stack: 0
  145. global stack: 0
  146. size:2.500000, time:2.500000
  147. size:5.500000, time:4.500000, executed if:(not inlined)
  148. calls:
  149. Symbol table:
  150. uxListRemove/8 (uxListRemove) @05e53ee0
  151. Type: function definition analyzed
  152. Visibility: externally_visible public
  153. References:
  154. Referring:
  155. Availability: available
  156. Function flags: count:1073741824 (estimated locally) body optimize_size
  157. Called by:
  158. Calls:
  159. vListInsert/7 (vListInsert) @05e53c40
  160. Type: function definition analyzed
  161. Visibility: externally_visible public
  162. References:
  163. Referring:
  164. Availability: available
  165. Function flags: count:178956970 (estimated locally) body optimize_size
  166. Called by:
  167. Calls:
  168. vListInsertEnd/6 (vListInsertEnd) @05e539a0
  169. Type: function definition analyzed
  170. Visibility: externally_visible public
  171. References:
  172. Referring:
  173. Availability: available
  174. Function flags: count:1073741824 (estimated locally) body optimize_size
  175. Called by:
  176. Calls:
  177. vListInitialiseItem/5 (vListInitialiseItem) @05e53700
  178. Type: function definition analyzed
  179. Visibility: externally_visible public
  180. References:
  181. Referring:
  182. Availability: available
  183. Function flags: count:1073741824 (estimated locally) body optimize_size
  184. Called by:
  185. Calls:
  186. vListInitialise/4 (vListInitialise) @05e53460
  187. Type: function definition analyzed
  188. Visibility: externally_visible public
  189. References:
  190. Referring:
  191. Availability: available
  192. Function flags: count:1073741824 (estimated locally) body optimize_size
  193. Called by:
  194. Calls:
  195. ;; Function vListInitialise (vListInitialise, funcdef_no=4, decl_uid=5982, cgraph_uid=5, symbol_order=4)
  196. vListInitialise (struct List_t * const pxList)
  197. {
  198. struct MiniListItem_t * _1;
  199. <bb 2> [local count: 1073741824]:
  200. # DEBUG BEGIN_STMT
  201. _1 = &pxList_2(D)->xListEnd;
  202. pxList_2(D)->pxIndex = _1;
  203. # DEBUG BEGIN_STMT
  204. pxList_2(D)->xListEnd.xItemValue = 4294967295;
  205. # DEBUG BEGIN_STMT
  206. pxList_2(D)->xListEnd.pxNext = _1;
  207. # DEBUG BEGIN_STMT
  208. pxList_2(D)->xListEnd.pxPrevious = _1;
  209. # DEBUG BEGIN_STMT
  210. pxList_2(D)->uxNumberOfItems ={v} 0;
  211. # DEBUG BEGIN_STMT
  212. # DEBUG BEGIN_STMT
  213. return;
  214. }
  215. ;; Function vListInitialiseItem (vListInitialiseItem, funcdef_no=5, decl_uid=5984, cgraph_uid=6, symbol_order=5)
  216. vListInitialiseItem (struct ListItem_t * const pxItem)
  217. {
  218. <bb 2> [local count: 1073741824]:
  219. # DEBUG BEGIN_STMT
  220. pxItem_2(D)->pvContainer = 0B;
  221. # DEBUG BEGIN_STMT
  222. # DEBUG BEGIN_STMT
  223. return;
  224. }
  225. ;; Function vListInsertEnd (vListInsertEnd, funcdef_no=6, decl_uid=5990, cgraph_uid=7, symbol_order=6)
  226. vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  227. {
  228. struct ListItem_t * const pxIndex;
  229. struct xLIST_ITEM * _1;
  230. struct xLIST_ITEM * _2;
  231. long unsigned int _3;
  232. long unsigned int _4;
  233. <bb 2> [local count: 1073741824]:
  234. # DEBUG BEGIN_STMT
  235. pxIndex_7 = pxList_6(D)->pxIndex;
  236. # DEBUG pxIndex => pxIndex_7
  237. # DEBUG BEGIN_STMT
  238. # DEBUG BEGIN_STMT
  239. # DEBUG BEGIN_STMT
  240. pxNewListItem_8(D)->pxNext = pxIndex_7;
  241. # DEBUG BEGIN_STMT
  242. _1 = pxIndex_7->pxPrevious;
  243. pxNewListItem_8(D)->pxPrevious = _1;
  244. # DEBUG BEGIN_STMT
  245. # DEBUG BEGIN_STMT
  246. _2 = pxIndex_7->pxPrevious;
  247. _2->pxNext = pxNewListItem_8(D);
  248. # DEBUG BEGIN_STMT
  249. pxIndex_7->pxPrevious = pxNewListItem_8(D);
  250. # DEBUG BEGIN_STMT
  251. pxNewListItem_8(D)->pvContainer = pxList_6(D);
  252. # DEBUG BEGIN_STMT
  253. _3 ={v} pxList_6(D)->uxNumberOfItems;
  254. _4 = _3 + 1;
  255. pxList_6(D)->uxNumberOfItems ={v} _4;
  256. return;
  257. }
  258. ;; Function vListInsert (vListInsert, funcdef_no=7, decl_uid=5987, cgraph_uid=8, symbol_order=7)
  259. vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  260. {
  261. const TickType_t xValueOfInsertion;
  262. struct ListItem_t * pxIterator;
  263. struct xLIST_ITEM * _1;
  264. long unsigned int _2;
  265. struct xLIST_ITEM * _3;
  266. long unsigned int _4;
  267. long unsigned int _5;
  268. <bb 2> [local count: 178956970]:
  269. # DEBUG BEGIN_STMT
  270. # DEBUG BEGIN_STMT
  271. xValueOfInsertion_10 = pxNewListItem_9(D)->xItemValue;
  272. # DEBUG xValueOfInsertion => xValueOfInsertion_10
  273. # DEBUG BEGIN_STMT
  274. # DEBUG BEGIN_STMT
  275. # DEBUG BEGIN_STMT
  276. if (xValueOfInsertion_10 == 4294967295)
  277. goto <bb 3>; [34.00%]
  278. else
  279. goto <bb 4>; [66.00%]
  280. <bb 3> [local count: 60845370]:
  281. # DEBUG BEGIN_STMT
  282. pxIterator_13 = pxList_11(D)->xListEnd.pxPrevious;
  283. # DEBUG pxIterator => pxIterator_13
  284. goto <bb 6>; [100.00%]
  285. <bb 4> [local count: 118111600]:
  286. # DEBUG BEGIN_STMT
  287. pxIterator_12 = &pxList_11(D)->xListEnd;
  288. # DEBUG pxIterator => pxIterator_12
  289. <bb 5> [local count: 1073741824]:
  290. # pxIterator_6 = PHI <pxIterator_12(4), _1(7)>
  291. # DEBUG pxIterator => pxIterator_6
  292. # DEBUG BEGIN_STMT
  293. _1 = pxIterator_6->pxNext;
  294. _2 = _1->xItemValue;
  295. if (_2 <= xValueOfInsertion_10)
  296. goto <bb 7>; [89.00%]
  297. else
  298. goto <bb 6>; [11.00%]
  299. <bb 7> [local count: 955630223]:
  300. goto <bb 5>; [100.00%]
  301. <bb 6> [local count: 178956970]:
  302. # pxIterator_7 = PHI <pxIterator_13(3), pxIterator_6(5)>
  303. # DEBUG pxIterator => pxIterator_7
  304. # DEBUG BEGIN_STMT
  305. _3 = pxIterator_7->pxNext;
  306. pxNewListItem_9(D)->pxNext = _3;
  307. # DEBUG BEGIN_STMT
  308. _3->pxPrevious = pxNewListItem_9(D);
  309. # DEBUG BEGIN_STMT
  310. pxNewListItem_9(D)->pxPrevious = pxIterator_7;
  311. # DEBUG BEGIN_STMT
  312. pxIterator_7->pxNext = pxNewListItem_9(D);
  313. # DEBUG BEGIN_STMT
  314. pxNewListItem_9(D)->pvContainer = pxList_11(D);
  315. # DEBUG BEGIN_STMT
  316. _4 ={v} pxList_11(D)->uxNumberOfItems;
  317. _5 = _4 + 1;
  318. pxList_11(D)->uxNumberOfItems ={v} _5;
  319. return;
  320. }
  321. ;; Function uxListRemove (uxListRemove, funcdef_no=8, decl_uid=5992, cgraph_uid=9, symbol_order=8)
  322. uxListRemove (struct ListItem_t * const pxItemToRemove)
  323. {
  324. struct List_t * const pxList;
  325. struct xLIST_ITEM * _1;
  326. struct xLIST_ITEM * _2;
  327. struct ListItem_t * _3;
  328. long unsigned int _4;
  329. long unsigned int _5;
  330. UBaseType_t _15;
  331. <bb 2> [local count: 1073741824]:
  332. # DEBUG BEGIN_STMT
  333. pxList_9 = pxItemToRemove_8(D)->pvContainer;
  334. # DEBUG pxList => pxList_9
  335. # DEBUG BEGIN_STMT
  336. _1 = pxItemToRemove_8(D)->pxNext;
  337. _2 = pxItemToRemove_8(D)->pxPrevious;
  338. _1->pxPrevious = _2;
  339. # DEBUG BEGIN_STMT
  340. _2->pxNext = _1;
  341. # DEBUG BEGIN_STMT
  342. # DEBUG BEGIN_STMT
  343. _3 = pxList_9->pxIndex;
  344. if (_3 == pxItemToRemove_8(D))
  345. goto <bb 3>; [30.00%]
  346. else
  347. goto <bb 4>; [70.00%]
  348. <bb 3> [local count: 322122547]:
  349. # DEBUG BEGIN_STMT
  350. pxList_9->pxIndex = _2;
  351. <bb 4> [local count: 1073741824]:
  352. # DEBUG BEGIN_STMT
  353. # DEBUG BEGIN_STMT
  354. pxItemToRemove_8(D)->pvContainer = 0B;
  355. # DEBUG BEGIN_STMT
  356. _4 ={v} pxList_9->uxNumberOfItems;
  357. _5 = _4 + 4294967295;
  358. pxList_9->uxNumberOfItems ={v} _5;
  359. # DEBUG BEGIN_STMT
  360. _15 ={v} pxList_9->uxNumberOfItems;
  361. return _15;
  362. }