heap_4.c.079i.static-var 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  1. callgraph:
  2. vPortExitCritical/24 (vPortExitCritical) @06ad4e00
  3. Type: function
  4. Visibility: external public
  5. References:
  6. Referring:
  7. Availability: not_available
  8. Function flags: optimize_size
  9. Called by: vPortGetHeapStats/20 (168730858 (estimated locally),1.00 per call)
  10. Calls:
  11. vPortEnterCritical/23 (vPortEnterCritical) @06ad4c40
  12. Type: function
  13. Visibility: external public
  14. References:
  15. Referring:
  16. Availability: not_available
  17. Function flags: optimize_size
  18. Called by: vPortGetHeapStats/20 (168730858 (estimated locally),1.00 per call)
  19. Calls:
  20. xTaskResumeAll/22 (xTaskResumeAll) @06ad42a0
  21. Type: function
  22. Visibility: external public
  23. References:
  24. Referring:
  25. Availability: not_available
  26. Function flags: optimize_size
  27. Called by: vPortGetHeapStats/20 (168730858 (estimated locally),1.00 per call) vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (214748 (estimated locally),0.93 per call)
  28. Calls:
  29. vTaskSuspendAll/21 (vTaskSuspendAll) @06ad40e0
  30. Type: function
  31. Visibility: external public
  32. References:
  33. Referring:
  34. Availability: not_available
  35. Function flags: optimize_size
  36. Called by: vPortGetHeapStats/20 (168730857 (estimated locally),1.00 per call) vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (231566 (estimated locally),1.00 per call)
  37. Calls:
  38. vPortGetHeapStats/20 (vPortGetHeapStats) @06ac60e0
  39. Type: function definition analyzed
  40. Visibility: externally_visible public
  41. References: xStart/6 (read)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulFrees/11 (read)xMinimumEverFreeBytesRemaining/9 (read)
  42. Referring:
  43. Availability: available
  44. Function flags: count:168730857 (estimated locally) body optimize_size
  45. Called by:
  46. Calls: vPortExitCritical/24 (168730858 (estimated locally),1.00 per call) vPortEnterCritical/23 (168730858 (estimated locally),1.00 per call) xTaskResumeAll/22 (168730858 (estimated locally),1.00 per call) vTaskSuspendAll/21 (168730857 (estimated locally),1.00 per call)
  47. prvInsertBlockIntoFreeList/19 (prvInsertBlockIntoFreeList) @06ac6d20
  48. Type: function definition analyzed
  49. Visibility: prevailing_def_ironly
  50. References: xStart/6 (addr)pxEnd/7 (read)
  51. Referring:
  52. Availability: local
  53. Function flags: count:118111600 (estimated locally) body local nonfreeing_fn optimize_size
  54. Called by: vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (8283 (estimated locally),0.04 per call)
  55. Calls:
  56. prvHeapInit/18 (prvHeapInit) @06ac6a80
  57. Type: function definition analyzed
  58. Visibility: prevailing_def_ironly
  59. References: ucHeap/4 (addr)xStart/6 (write)xStart/6 (write)pxEnd/7 (write)xMinimumEverFreeBytesRemaining/9 (write)xFreeBytesRemaining/8 (write)xBlockAllocatedBit/12 (write)
  60. Referring:
  61. Function prvHeapInit/18 is inline copy in pvPortMalloc/13
  62. Availability: local
  63. Function flags: count:40362 (estimated locally) body local nonfreeing_fn optimize_size
  64. Called by: pvPortMalloc/13 (inlined) (40362 (estimated locally),0.17 per call)
  65. Calls:
  66. vPortInitialiseBlocks/17 (vPortInitialiseBlocks) @06ac67e0
  67. Type: function definition analyzed
  68. Visibility: externally_visible public
  69. References:
  70. Referring:
  71. Availability: available
  72. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  73. Called by:
  74. Calls:
  75. xPortGetMinimumEverFreeHeapSize/16 (xPortGetMinimumEverFreeHeapSize) @06ac6540
  76. Type: function definition analyzed
  77. Visibility: externally_visible public
  78. References: xMinimumEverFreeBytesRemaining/9 (read)
  79. Referring:
  80. Availability: available
  81. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  82. Called by:
  83. Calls:
  84. xPortGetFreeHeapSize/15 (xPortGetFreeHeapSize) @06ac62a0
  85. Type: function definition analyzed
  86. Visibility: externally_visible public
  87. References: xFreeBytesRemaining/8 (read)
  88. Referring:
  89. Availability: available
  90. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  91. Called by:
  92. Calls:
  93. vPortFree/14 (vPortFree) @06ac6000
  94. Type: function definition analyzed
  95. Visibility: externally_visible public
  96. References: xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xNumberOfSuccessfulFrees/11 (read)xNumberOfSuccessfulFrees/11 (write)
  97. Referring:
  98. Availability: available
  99. Function flags: count:306783 (estimated locally) body optimize_size
  100. Called by:
  101. Calls: xTaskResumeAll/22 (18715 (estimated locally),0.06 per call) prvInsertBlockIntoFreeList/19 (18715 (estimated locally),0.06 per call) vTaskSuspendAll/21 (18715 (estimated locally),0.06 per call)
  102. pvPortMalloc/13 (pvPortMalloc) @06abeee0
  103. Type: function definition analyzed
  104. Visibility: externally_visible public
  105. References: pxEnd/7 (read)xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xStart/6 (read)xStart/6 (addr)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xMinimumEverFreeBytesRemaining/9 (read)xMinimumEverFreeBytesRemaining/9 (write)xBlockAllocatedBit/12 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulAllocations/10 (write)
  106. Referring:
  107. Availability: available
  108. Function flags: count:231566 (estimated locally) body optimize_size
  109. Called by:
  110. Calls: xTaskResumeAll/22 (214748 (estimated locally),0.93 per call) prvInsertBlockIntoFreeList/19 (8283 (estimated locally),0.04 per call) prvHeapInit/18 (inlined) (40362 (estimated locally),0.17 per call) vTaskSuspendAll/21 (231566 (estimated locally),1.00 per call)
  111. Clearing variable flags:
  112. Promotable global:pxEnd (uid=6222)
  113. Promotable global:xFreeBytesRemaining (uid=6223)
  114. Promotable global:xMinimumEverFreeBytesRemaining (uid=6224)
  115. Promotable global:xNumberOfSuccessfulAllocations (uid=6225)
  116. Promotable global:xNumberOfSuccessfulFrees (uid=6226)
  117. Promotable global:xBlockAllocatedBit (uid=6227)
  118. Function name:vPortGetHeapStats/20:
  119. locals read: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xNumberOfSuccessfulAllocations xNumberOfSuccessfulFrees
  120. locals written:
  121. Function name:prvInsertBlockIntoFreeList/19:
  122. locals read: pxEnd
  123. locals written:
  124. Function name:prvHeapInit/18:
  125. locals read:
  126. locals written: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xBlockAllocatedBit
  127. Function name:vPortInitialiseBlocks/17:
  128. locals read:
  129. locals written:
  130. Function name:xPortGetMinimumEverFreeHeapSize/16:
  131. locals read: xMinimumEverFreeBytesRemaining
  132. locals written:
  133. Function name:xPortGetFreeHeapSize/15:
  134. locals read: xFreeBytesRemaining
  135. locals written:
  136. Function name:vPortFree/14:
  137. locals read: xFreeBytesRemaining xNumberOfSuccessfulFrees xBlockAllocatedBit
  138. locals written: xFreeBytesRemaining xNumberOfSuccessfulFrees
  139. Function name:pvPortMalloc/13:
  140. locals read: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xNumberOfSuccessfulAllocations xBlockAllocatedBit
  141. locals written: xFreeBytesRemaining xMinimumEverFreeBytesRemaining xNumberOfSuccessfulAllocations
  142. ordered call graph: reduced
  143. vPortGetHeapStats/20 (vPortGetHeapStats) @06ac60e0
  144. Type: function definition analyzed
  145. Visibility: externally_visible public
  146. Aux: @04b94670
  147. References: xStart/6 (read)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulFrees/11 (read)xMinimumEverFreeBytesRemaining/9 (read)
  148. Referring:
  149. Availability: available
  150. Function flags: count:168730857 (estimated locally) body optimize_size
  151. Called by:
  152. Calls: vPortExitCritical/24 (168730858 (estimated locally),1.00 per call) vPortEnterCritical/23 (168730858 (estimated locally),1.00 per call) xTaskResumeAll/22 (168730858 (estimated locally),1.00 per call) vTaskSuspendAll/21 (168730857 (estimated locally),1.00 per call)
  153. vPortInitialiseBlocks/17 (vPortInitialiseBlocks) @06ac67e0
  154. Type: function definition analyzed
  155. Visibility: externally_visible public
  156. Aux: @04b946f0
  157. References:
  158. Referring:
  159. Availability: available
  160. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  161. Called by:
  162. Calls:
  163. xPortGetMinimumEverFreeHeapSize/16 (xPortGetMinimumEverFreeHeapSize) @06ac6540
  164. Type: function definition analyzed
  165. Visibility: externally_visible public
  166. Aux: @04b94330
  167. References: xMinimumEverFreeBytesRemaining/9 (read)
  168. Referring:
  169. Availability: available
  170. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  171. Called by:
  172. Calls:
  173. xPortGetFreeHeapSize/15 (xPortGetFreeHeapSize) @06ac62a0
  174. Type: function definition analyzed
  175. Visibility: externally_visible public
  176. Aux: @04b944f0
  177. References: xFreeBytesRemaining/8 (read)
  178. Referring:
  179. Availability: available
  180. Function flags: count:1073741824 (estimated locally) body nonfreeing_fn optimize_size
  181. Called by:
  182. Calls:
  183. vPortFree/14 (vPortFree) @06ac6000
  184. Type: function definition analyzed
  185. Visibility: externally_visible public
  186. Aux: @04b945b0
  187. References: xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xNumberOfSuccessfulFrees/11 (read)xNumberOfSuccessfulFrees/11 (write)
  188. Referring:
  189. Availability: available
  190. Function flags: count:306783 (estimated locally) body optimize_size
  191. Called by:
  192. Calls: xTaskResumeAll/22 (18715 (estimated locally),0.06 per call) prvInsertBlockIntoFreeList/19 (18715 (estimated locally),0.06 per call) vTaskSuspendAll/21 (18715 (estimated locally),0.06 per call)
  193. pvPortMalloc/13 (pvPortMalloc) @06abeee0
  194. Type: function definition analyzed
  195. Visibility: externally_visible public
  196. Aux: @04b94370
  197. References: pxEnd/7 (read)xBlockAllocatedBit/12 (read)xFreeBytesRemaining/8 (read)xStart/6 (read)xStart/6 (addr)pxEnd/7 (read)xFreeBytesRemaining/8 (read)xFreeBytesRemaining/8 (write)xMinimumEverFreeBytesRemaining/9 (read)xMinimumEverFreeBytesRemaining/9 (write)xBlockAllocatedBit/12 (read)xNumberOfSuccessfulAllocations/10 (read)xNumberOfSuccessfulAllocations/10 (write)
  198. Referring:
  199. Availability: available
  200. Function flags: count:231566 (estimated locally) body optimize_size
  201. Called by:
  202. Calls: xTaskResumeAll/22 (214748 (estimated locally),0.93 per call) prvInsertBlockIntoFreeList/19 (8283 (estimated locally),0.04 per call) prvHeapInit/18 (inlined) (40362 (estimated locally),0.17 per call) vTaskSuspendAll/21 (231566 (estimated locally),1.00 per call)
  203. prvHeapInit/18 (prvHeapInit) @06ac6a80
  204. Type: function definition analyzed
  205. Visibility: prevailing_def_ironly
  206. Aux: @04b94430
  207. References: ucHeap/4 (addr)xStart/6 (write)xStart/6 (write)pxEnd/7 (write)xMinimumEverFreeBytesRemaining/9 (write)xFreeBytesRemaining/8 (write)xBlockAllocatedBit/12 (write)
  208. Referring:
  209. Function prvHeapInit/18 is inline copy in pvPortMalloc/13
  210. Availability: local
  211. Function flags: count:40362 (estimated locally) body local nonfreeing_fn optimize_size
  212. Called by: pvPortMalloc/13 (inlined) (40362 (estimated locally),0.17 per call)
  213. Calls:
  214. prvInsertBlockIntoFreeList/19 (prvInsertBlockIntoFreeList) @06ac6d20
  215. Type: function definition analyzed
  216. Visibility: prevailing_def_ironly
  217. Aux: @04b94410
  218. References: xStart/6 (addr)pxEnd/7 (read)
  219. Referring:
  220. Availability: local
  221. Function flags: count:118111600 (estimated locally) body local nonfreeing_fn optimize_size
  222. Called by: vPortFree/14 (18715 (estimated locally),0.06 per call) pvPortMalloc/13 (8283 (estimated locally),0.04 per call)
  223. Calls:
  224. Function name:prvInsertBlockIntoFreeList/19:
  225. locals read: pxEnd
  226. locals written:
  227. globals read: pxEnd
  228. globals written:
  229. Function name:prvHeapInit/18:
  230. locals read:
  231. locals written: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xBlockAllocatedBit
  232. globals read:
  233. globals written: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xBlockAllocatedBit
  234. Function name:pvPortMalloc/13:
  235. locals read: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xNumberOfSuccessfulAllocations xBlockAllocatedBit
  236. locals written: xFreeBytesRemaining xMinimumEverFreeBytesRemaining xNumberOfSuccessfulAllocations
  237. globals read: ALL
  238. globals written: ALL
  239. Function name:vPortFree/14:
  240. locals read: xFreeBytesRemaining xNumberOfSuccessfulFrees xBlockAllocatedBit
  241. locals written: xFreeBytesRemaining xNumberOfSuccessfulFrees
  242. globals read: ALL
  243. globals written: ALL
  244. Function name:xPortGetFreeHeapSize/15:
  245. locals read: xFreeBytesRemaining
  246. locals written:
  247. globals read: xFreeBytesRemaining
  248. globals written:
  249. Function name:xPortGetMinimumEverFreeHeapSize/16:
  250. locals read: xMinimumEverFreeBytesRemaining
  251. locals written:
  252. globals read: xMinimumEverFreeBytesRemaining
  253. globals written:
  254. Function name:vPortInitialiseBlocks/17:
  255. locals read:
  256. locals written:
  257. globals read:
  258. globals written:
  259. Function name:vPortGetHeapStats/20:
  260. locals read: pxEnd xFreeBytesRemaining xMinimumEverFreeBytesRemaining xNumberOfSuccessfulAllocations xNumberOfSuccessfulFrees
  261. locals written:
  262. globals read: ALL
  263. globals written: ALL
  264. vPortGetHeapStats (struct HeapStats_t * pxHeapStats)
  265. {
  266. size_t xMinSize;
  267. size_t xMaxSize;
  268. size_t xBlocks;
  269. struct BlockLink_t * pxBlock;
  270. unsigned int _1;
  271. struct BlockLink_t * pxEnd.26_3;
  272. unsigned int xFreeBytesRemaining.27_4;
  273. unsigned int xNumberOfSuccessfulAllocations.28_5;
  274. unsigned int xNumberOfSuccessfulFrees.29_6;
  275. unsigned int xMinimumEverFreeBytesRemaining.30_7;
  276. <bb 2> [local count: 168730857]:
  277. # DEBUG BEGIN_STMT
  278. # DEBUG BEGIN_STMT
  279. # DEBUG xBlocks => 0
  280. # DEBUG xMaxSize => 0
  281. # DEBUG xMinSize => 4294967295
  282. # DEBUG BEGIN_STMT
  283. vTaskSuspendAll ();
  284. # DEBUG BEGIN_STMT
  285. pxBlock_17 = xStart.pxNextFreeBlock;
  286. # DEBUG pxBlock => pxBlock_17
  287. # DEBUG BEGIN_STMT
  288. if (pxBlock_17 != 0B)
  289. goto <bb 5>; [70.00%]
  290. else
  291. goto <bb 4>; [30.00%]
  292. <bb 5> [local count: 118111600]:
  293. <bb 3> [local count: 1073741824]:
  294. # pxBlock_8 = PHI <pxBlock_17(5), pxBlock_20(6)>
  295. # xBlocks_9 = PHI <0(5), xBlocks_18(6)>
  296. # xMaxSize_11 = PHI <0(5), xMaxSize_2(6)>
  297. # xMinSize_13 = PHI <4294967295(5), xMinSize_19(6)>
  298. # DEBUG xMinSize => xMinSize_13
  299. # DEBUG xMaxSize => xMaxSize_11
  300. # DEBUG xBlocks => xBlocks_9
  301. # DEBUG pxBlock => pxBlock_8
  302. # DEBUG BEGIN_STMT
  303. # DEBUG BEGIN_STMT
  304. xBlocks_18 = xBlocks_9 + 1;
  305. # DEBUG xBlocks => xBlocks_18
  306. # DEBUG BEGIN_STMT
  307. _1 = pxBlock_8->xBlockSize;
  308. xMaxSize_2 = MAX_EXPR <_1, xMaxSize_11>;
  309. # DEBUG xMaxSize => xMaxSize_2
  310. # DEBUG BEGIN_STMT
  311. xMinSize_19 = MIN_EXPR <_1, xMinSize_13>;
  312. # DEBUG xMinSize => xMinSize_19
  313. # DEBUG BEGIN_STMT
  314. pxBlock_20 = pxBlock_8->pxNextFreeBlock;
  315. # DEBUG pxBlock => pxBlock_20
  316. # DEBUG BEGIN_STMT
  317. pxEnd.26_3 = pxEnd;
  318. if (pxEnd.26_3 != pxBlock_20)
  319. goto <bb 6>; [89.00%]
  320. else
  321. goto <bb 4>; [11.00%]
  322. <bb 6> [local count: 955630225]:
  323. goto <bb 3>; [100.00%]
  324. <bb 4> [local count: 168730858]:
  325. # xBlocks_10 = PHI <0(2), xBlocks_18(3)>
  326. # xMaxSize_12 = PHI <0(2), xMaxSize_2(3)>
  327. # xMinSize_14 = PHI <4294967295(2), xMinSize_19(3)>
  328. # DEBUG xMinSize => xMinSize_14
  329. # DEBUG xMaxSize => xMaxSize_12
  330. # DEBUG xBlocks => xBlocks_10
  331. # DEBUG BEGIN_STMT
  332. xTaskResumeAll ();
  333. # DEBUG BEGIN_STMT
  334. pxHeapStats_22(D)->xSizeOfLargestFreeBlockInBytes = xMaxSize_12;
  335. # DEBUG BEGIN_STMT
  336. pxHeapStats_22(D)->xSizeOfSmallestFreeBlockInBytes = xMinSize_14;
  337. # DEBUG BEGIN_STMT
  338. pxHeapStats_22(D)->xNumberOfFreeBlocks = xBlocks_10;
  339. # DEBUG BEGIN_STMT
  340. vPortEnterCritical ();
  341. # DEBUG BEGIN_STMT
  342. xFreeBytesRemaining.27_4 = xFreeBytesRemaining;
  343. pxHeapStats_22(D)->xAvailableHeapSpaceInBytes = xFreeBytesRemaining.27_4;
  344. # DEBUG BEGIN_STMT
  345. xNumberOfSuccessfulAllocations.28_5 = xNumberOfSuccessfulAllocations;
  346. pxHeapStats_22(D)->xNumberOfSuccessfulAllocations = xNumberOfSuccessfulAllocations.28_5;
  347. # DEBUG BEGIN_STMT
  348. xNumberOfSuccessfulFrees.29_6 = xNumberOfSuccessfulFrees;
  349. pxHeapStats_22(D)->xNumberOfSuccessfulFrees = xNumberOfSuccessfulFrees.29_6;
  350. # DEBUG BEGIN_STMT
  351. xMinimumEverFreeBytesRemaining.30_7 = xMinimumEverFreeBytesRemaining;
  352. pxHeapStats_22(D)->xMinimumEverFreeBytesRemaining = xMinimumEverFreeBytesRemaining.30_7;
  353. # DEBUG BEGIN_STMT
  354. vPortExitCritical ();
  355. return;
  356. }
  357. prvInsertBlockIntoFreeList (struct BlockLink_t * pxBlockToInsert)
  358. {
  359. struct BlockLink_t * pxIterator;
  360. struct A_BLOCK_LINK * _1;
  361. unsigned int _2;
  362. uint8_t * _3;
  363. unsigned int _5;
  364. unsigned int _6;
  365. unsigned int _7;
  366. uint8_t * _8;
  367. struct BlockLink_t * pxEnd.19_9;
  368. unsigned int _10;
  369. unsigned int _11;
  370. struct A_BLOCK_LINK * _12;
  371. struct A_BLOCK_LINK * _20;
  372. <bb 2> [local count: 118111600]:
  373. # DEBUG BEGIN_STMT
  374. # DEBUG BEGIN_STMT
  375. # DEBUG BEGIN_STMT
  376. # DEBUG pxIterator => &xStart
  377. <bb 3> [local count: 1073741824]:
  378. # pxIterator_14 = PHI <&xStart(2), _1(14)>
  379. # DEBUG pxIterator => pxIterator_14
  380. # DEBUG BEGIN_STMT
  381. _1 = pxIterator_14->pxNextFreeBlock;
  382. if (_1 < pxBlockToInsert_19(D))
  383. goto <bb 14>; [89.00%]
  384. else
  385. goto <bb 4>; [11.00%]
  386. <bb 14> [local count: 955630223]:
  387. goto <bb 3>; [100.00%]
  388. <bb 4> [local count: 118111601]:
  389. # _20 = PHI <_1(3)>
  390. # pxIterator_4 = PHI <pxIterator_14(3)>
  391. # DEBUG BEGIN_STMT
  392. # DEBUG puc => pxIterator_4
  393. # DEBUG BEGIN_STMT
  394. _2 = pxIterator_4->xBlockSize;
  395. _3 = pxIterator_4 + _2;
  396. if (_3 == pxBlockToInsert_19(D))
  397. goto <bb 5>; [30.00%]
  398. else
  399. goto <bb 6>; [70.00%]
  400. <bb 5> [local count: 35433480]:
  401. # DEBUG BEGIN_STMT
  402. _5 = pxBlockToInsert_19(D)->xBlockSize;
  403. _6 = _2 + _5;
  404. pxIterator_4->xBlockSize = _6;
  405. # DEBUG BEGIN_STMT
  406. # DEBUG pxBlockToInsert => pxIterator_4
  407. <bb 6> [local count: 118111601]:
  408. # pxBlockToInsert_13 = PHI <pxBlockToInsert_19(D)(4), pxIterator_4(5)>
  409. # DEBUG pxBlockToInsert => pxBlockToInsert_13
  410. # DEBUG BEGIN_STMT
  411. # DEBUG BEGIN_STMT
  412. # DEBUG puc => pxBlockToInsert_13
  413. # DEBUG BEGIN_STMT
  414. _7 = pxBlockToInsert_13->xBlockSize;
  415. _8 = pxBlockToInsert_13 + _7;
  416. if (_8 == _20)
  417. goto <bb 7>; [30.00%]
  418. else
  419. goto <bb 10>; [70.00%]
  420. <bb 7> [local count: 35433480]:
  421. # DEBUG BEGIN_STMT
  422. pxEnd.19_9 = pxEnd;
  423. if (pxEnd.19_9 != _20)
  424. goto <bb 8>; [70.00%]
  425. else
  426. goto <bb 9>; [30.00%]
  427. <bb 8> [local count: 24803436]:
  428. # DEBUG BEGIN_STMT
  429. _10 = _20->xBlockSize;
  430. _11 = _7 + _10;
  431. pxBlockToInsert_13->xBlockSize = _11;
  432. # DEBUG BEGIN_STMT
  433. _12 = _20->pxNextFreeBlock;
  434. pxBlockToInsert_13->pxNextFreeBlock = _12;
  435. goto <bb 11>; [100.00%]
  436. <bb 9> [local count: 10630044]:
  437. # DEBUG BEGIN_STMT
  438. pxBlockToInsert_13->pxNextFreeBlock = pxEnd.19_9;
  439. goto <bb 11>; [100.00%]
  440. <bb 10> [local count: 82678120]:
  441. # DEBUG BEGIN_STMT
  442. pxBlockToInsert_13->pxNextFreeBlock = _20;
  443. <bb 11> [local count: 118111601]:
  444. # DEBUG BEGIN_STMT
  445. if (pxIterator_4 != pxBlockToInsert_13)
  446. goto <bb 12>; [70.00%]
  447. else
  448. goto <bb 13>; [30.00%]
  449. <bb 12> [local count: 82678120]:
  450. # DEBUG BEGIN_STMT
  451. pxIterator_4->pxNextFreeBlock = pxBlockToInsert_13;
  452. <bb 13> [local count: 118111601]:
  453. # DEBUG BEGIN_STMT
  454. return;
  455. }
  456. prvHeapInit ()
  457. {
  458. size_t xTotalHeapSize;
  459. size_t uxAddress;
  460. uint8_t * pucAlignedHeap;
  461. unsigned int _1;
  462. unsigned int _2;
  463. struct BlockLink_t * uxAddress.14_3;
  464. unsigned int _4;
  465. <bb 2> [local count: 1073741824]:
  466. # DEBUG BEGIN_STMT
  467. # DEBUG BEGIN_STMT
  468. # DEBUG BEGIN_STMT
  469. # DEBUG BEGIN_STMT
  470. # DEBUG xTotalHeapSize => 8192
  471. # DEBUG BEGIN_STMT
  472. uxAddress_7 = (size_t) &ucHeap;
  473. # DEBUG uxAddress => uxAddress_7
  474. # DEBUG BEGIN_STMT
  475. _1 = uxAddress_7 & 7;
  476. if (_1 != 0)
  477. goto <bb 3>; [50.00%]
  478. else
  479. goto <bb 4>; [50.00%]
  480. <bb 3> [local count: 536870913]:
  481. # DEBUG BEGIN_STMT
  482. uxAddress_8 = uxAddress_7 + 7;
  483. # DEBUG uxAddress => uxAddress_8
  484. # DEBUG BEGIN_STMT
  485. uxAddress_9 = uxAddress_8 & 4294967288;
  486. # DEBUG uxAddress => uxAddress_9
  487. # DEBUG BEGIN_STMT
  488. _2 = 8192 - uxAddress_9;
  489. xTotalHeapSize_10 = _2 + uxAddress_7;
  490. # DEBUG xTotalHeapSize => xTotalHeapSize_10
  491. <bb 4> [local count: 1073741824]:
  492. # uxAddress_5 = PHI <uxAddress_7(2), uxAddress_9(3)>
  493. # xTotalHeapSize_6 = PHI <8192(2), xTotalHeapSize_10(3)>
  494. # DEBUG xTotalHeapSize => xTotalHeapSize_6
  495. # DEBUG uxAddress => uxAddress_5
  496. # DEBUG BEGIN_STMT
  497. pucAlignedHeap_11 = (uint8_t *) uxAddress_5;
  498. # DEBUG pucAlignedHeap => pucAlignedHeap_11
  499. # DEBUG BEGIN_STMT
  500. xStart.pxNextFreeBlock = pucAlignedHeap_11;
  501. # DEBUG BEGIN_STMT
  502. xStart.xBlockSize = 0;
  503. # DEBUG BEGIN_STMT
  504. uxAddress_15 = uxAddress_5 + xTotalHeapSize_6;
  505. # DEBUG uxAddress => uxAddress_15
  506. # DEBUG BEGIN_STMT
  507. uxAddress_16 = uxAddress_15 + 4294967288;
  508. # DEBUG uxAddress => uxAddress_16
  509. # DEBUG BEGIN_STMT
  510. uxAddress_17 = uxAddress_16 & 4294967288;
  511. # DEBUG uxAddress => uxAddress_17
  512. # DEBUG BEGIN_STMT
  513. uxAddress.14_3 = (struct BlockLink_t *) uxAddress_17;
  514. pxEnd = uxAddress.14_3;
  515. # DEBUG BEGIN_STMT
  516. uxAddress.14_3->xBlockSize = 0;
  517. # DEBUG BEGIN_STMT
  518. uxAddress.14_3->pxNextFreeBlock = 0B;
  519. # DEBUG BEGIN_STMT
  520. # DEBUG pxFirstFreeBlock => pucAlignedHeap_11
  521. # DEBUG BEGIN_STMT
  522. _4 = uxAddress_17 - uxAddress_5;
  523. MEM[(struct BlockLink_t *)pucAlignedHeap_11].xBlockSize = _4;
  524. # DEBUG BEGIN_STMT
  525. MEM[(struct BlockLink_t *)pucAlignedHeap_11].pxNextFreeBlock = uxAddress.14_3;
  526. # DEBUG BEGIN_STMT
  527. xMinimumEverFreeBytesRemaining = _4;
  528. # DEBUG BEGIN_STMT
  529. xFreeBytesRemaining = _4;
  530. # DEBUG BEGIN_STMT
  531. xBlockAllocatedBit = 2147483648;
  532. return;
  533. }
  534. vPortInitialiseBlocks ()
  535. {
  536. <bb 2> [local count: 1073741824]:
  537. # DEBUG BEGIN_STMT
  538. return;
  539. }
  540. xPortGetMinimumEverFreeHeapSize ()
  541. {
  542. size_t _2;
  543. <bb 2> [local count: 1073741824]:
  544. # DEBUG BEGIN_STMT
  545. _2 = xMinimumEverFreeBytesRemaining;
  546. return _2;
  547. }
  548. xPortGetFreeHeapSize ()
  549. {
  550. size_t _2;
  551. <bb 2> [local count: 1073741824]:
  552. # DEBUG BEGIN_STMT
  553. _2 = xFreeBytesRemaining;
  554. return _2;
  555. }
  556. vPortFree (void * pv)
  557. {
  558. uint32_t ulNewBASEPRI;
  559. uint32_t ulNewBASEPRI;
  560. uint8_t * puc;
  561. unsigned int _1;
  562. unsigned int xBlockAllocatedBit.21_2;
  563. unsigned int _3;
  564. struct A_BLOCK_LINK * _4;
  565. unsigned int _5;
  566. unsigned int _6;
  567. unsigned int _7;
  568. unsigned int xFreeBytesRemaining.24_8;
  569. unsigned int _9;
  570. unsigned int xNumberOfSuccessfulFrees.25_10;
  571. unsigned int _11;
  572. <bb 2> [local count: 306783]:
  573. # DEBUG BEGIN_STMT
  574. # DEBUG puc => pv_13(D)
  575. # DEBUG BEGIN_STMT
  576. # DEBUG BEGIN_STMT
  577. if (pv_13(D) != 0B)
  578. goto <bb 3>; [70.00%]
  579. else
  580. goto <bb 10>; [30.00%]
  581. <bb 3> [local count: 214748]:
  582. # DEBUG BEGIN_STMT
  583. puc_15 = pv_13(D) + 4294967288;
  584. # DEBUG puc => puc_15
  585. # DEBUG BEGIN_STMT
  586. # DEBUG pxLink => puc_15
  587. # DEBUG BEGIN_STMT
  588. _1 = MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].xBlockSize;
  589. xBlockAllocatedBit.21_2 = xBlockAllocatedBit;
  590. _3 = _1 & xBlockAllocatedBit.21_2;
  591. if (_3 == 0)
  592. goto <bb 4>; [50.00%]
  593. else
  594. goto <bb 6>; [50.00%]
  595. <bb 4> [local count: 107374]:
  596. # DEBUG BEGIN_STMT
  597. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  598. # DEBUG BEGIN_STMT
  599. # DEBUG BEGIN_STMT
  600. __asm__ __volatile__(" mov %0, %1
  601. msr basepri, %0
  602. isb
  603. dsb
  604. " : "=r" ulNewBASEPRI_22 : "i" 16 : "memory");
  605. # DEBUG ulNewBASEPRI => ulNewBASEPRI_22
  606. <bb 5> [local count: 1073741823]:
  607. # DEBUG ulNewBASEPRI => NULL
  608. # DEBUG BEGIN_STMT
  609. # DEBUG BEGIN_STMT
  610. # DEBUG BEGIN_STMT
  611. <bb 11> [local count: 1073741824]:
  612. goto <bb 5>; [100.00%]
  613. <bb 6> [local count: 107374]:
  614. # DEBUG BEGIN_STMT
  615. # DEBUG BEGIN_STMT
  616. _4 = MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].pxNextFreeBlock;
  617. if (_4 != 0B)
  618. goto <bb 7>; [82.57%]
  619. else
  620. goto <bb 9>; [17.43%]
  621. <bb 7> [local count: 88659]:
  622. # DEBUG BEGIN_STMT
  623. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  624. # DEBUG BEGIN_STMT
  625. # DEBUG BEGIN_STMT
  626. __asm__ __volatile__(" mov %0, %1
  627. msr basepri, %0
  628. isb
  629. dsb
  630. " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory");
  631. # DEBUG ulNewBASEPRI => ulNewBASEPRI_23
  632. <bb 8> [local count: 886588623]:
  633. # DEBUG ulNewBASEPRI => NULL
  634. # DEBUG BEGIN_STMT
  635. # DEBUG BEGIN_STMT
  636. # DEBUG BEGIN_STMT
  637. <bb 12> [local count: 886588623]:
  638. goto <bb 8>; [100.00%]
  639. <bb 9> [local count: 18715]:
  640. # DEBUG BEGIN_STMT
  641. # DEBUG BEGIN_STMT
  642. # DEBUG BEGIN_STMT
  643. # DEBUG BEGIN_STMT
  644. _5 = ~xBlockAllocatedBit.21_2;
  645. _6 = _1 & _5;
  646. MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].xBlockSize = _6;
  647. # DEBUG BEGIN_STMT
  648. vTaskSuspendAll ();
  649. # DEBUG BEGIN_STMT
  650. _7 = MEM[(struct BlockLink_t *)pv_13(D) + 4294967288B].xBlockSize;
  651. xFreeBytesRemaining.24_8 = xFreeBytesRemaining;
  652. _9 = _7 + xFreeBytesRemaining.24_8;
  653. xFreeBytesRemaining = _9;
  654. # DEBUG BEGIN_STMT
  655. # DEBUG BEGIN_STMT
  656. prvInsertBlockIntoFreeList (puc_15);
  657. # DEBUG BEGIN_STMT
  658. xNumberOfSuccessfulFrees.25_10 = xNumberOfSuccessfulFrees;
  659. _11 = xNumberOfSuccessfulFrees.25_10 + 1;
  660. xNumberOfSuccessfulFrees = _11;
  661. # DEBUG BEGIN_STMT
  662. xTaskResumeAll ();
  663. <bb 10> [local count: 110750]:
  664. # DEBUG BEGIN_STMT
  665. return;
  666. }
  667. pvPortMalloc (size_t xWantedSize)
  668. {
  669. uint32_t ulNewBASEPRI;
  670. uint32_t ulNewBASEPRI;
  671. void * pvReturn;
  672. struct BlockLink_t * pxNewBlockLink;
  673. struct BlockLink_t * pxPreviousBlock;
  674. struct BlockLink_t * pxBlock;
  675. struct BlockLink_t * pxEnd.0_1;
  676. unsigned int xBlockAllocatedBit.1_2;
  677. unsigned int _3;
  678. unsigned int _4;
  679. unsigned int _5;
  680. unsigned int _6;
  681. unsigned int _7;
  682. unsigned int xFreeBytesRemaining.2_9;
  683. unsigned int _10;
  684. struct A_BLOCK_LINK * _11;
  685. struct BlockLink_t * pxEnd.3_12;
  686. struct A_BLOCK_LINK * _13;
  687. struct A_BLOCK_LINK * _14;
  688. unsigned int _15;
  689. unsigned int pxNewBlockLink.4_16;
  690. unsigned int _17;
  691. unsigned int xFreeBytesRemaining.5_18;
  692. unsigned int _19;
  693. unsigned int _20;
  694. unsigned int xMinimumEverFreeBytesRemaining.7_21;
  695. unsigned int xBlockAllocatedBit.9_22;
  696. unsigned int _23;
  697. unsigned int xNumberOfSuccessfulAllocations.10_24;
  698. unsigned int _25;
  699. unsigned int pvReturn.11_26;
  700. unsigned int _27;
  701. unsigned int _57;
  702. <bb 2> [local count: 231566]:
  703. # DEBUG BEGIN_STMT
  704. # DEBUG BEGIN_STMT
  705. # DEBUG pvReturn => 0B
  706. # DEBUG BEGIN_STMT
  707. vTaskSuspendAll ();
  708. # DEBUG BEGIN_STMT
  709. pxEnd.0_1 = pxEnd;
  710. if (pxEnd.0_1 == 0B)
  711. goto <bb 3>; [17.43%]
  712. else
  713. goto <bb 4>; [82.57%]
  714. <bb 3> [local count: 40362]:
  715. # DEBUG BEGIN_STMT
  716. prvHeapInit ();
  717. <bb 4> [local count: 231566]:
  718. # DEBUG BEGIN_STMT
  719. # DEBUG BEGIN_STMT
  720. xBlockAllocatedBit.1_2 = xBlockAllocatedBit;
  721. _3 = xBlockAllocatedBit.1_2 & xWantedSize_39(D);
  722. if (_3 == 0)
  723. goto <bb 5>; [83.25%]
  724. else
  725. goto <bb 22>; [16.75%]
  726. <bb 5> [local count: 192779]:
  727. # DEBUG BEGIN_STMT
  728. _4 = xWantedSize_39(D) + 4294967295;
  729. if (_4 <= 4294967286)
  730. goto <bb 6>; [71.00%]
  731. else
  732. goto <bb 22>; [29.00%]
  733. <bb 6> [local count: 136873]:
  734. # DEBUG BEGIN_STMT
  735. xWantedSize_40 = xWantedSize_39(D) + 8;
  736. # DEBUG xWantedSize => xWantedSize_40
  737. # DEBUG BEGIN_STMT
  738. _5 = xWantedSize_40 & 7;
  739. if (_5 != 0)
  740. goto <bb 7>; [50.00%]
  741. else
  742. goto <bb 8>; [50.00%]
  743. <bb 7> [local count: 68436]:
  744. # DEBUG BEGIN_STMT
  745. _6 = xWantedSize_40 & 4294967288;
  746. _7 = _6 + 8;
  747. if (_7 > xWantedSize_40)
  748. goto <bb 8>; [71.00%]
  749. else
  750. goto <bb 22>; [29.00%]
  751. <bb 8> [local count: 117026]:
  752. # xWantedSize_28 = PHI <_7(7), xWantedSize_40(6)>
  753. # DEBUG xWantedSize => xWantedSize_28
  754. # DEBUG BEGIN_STMT
  755. if (xWantedSize_28 != 0)
  756. goto <bb 9>; [71.00%]
  757. else
  758. goto <bb 22>; [29.00%]
  759. <bb 9> [local count: 83089]:
  760. xFreeBytesRemaining.2_9 = xFreeBytesRemaining;
  761. if (xFreeBytesRemaining.2_9 >= xWantedSize_28)
  762. goto <bb 10>; [71.00%]
  763. else
  764. goto <bb 22>; [29.00%]
  765. <bb 10> [local count: 58993]:
  766. # DEBUG BEGIN_STMT
  767. # DEBUG pxPreviousBlock => &xStart
  768. # DEBUG BEGIN_STMT
  769. pxBlock_41 = xStart.pxNextFreeBlock;
  770. # DEBUG pxBlock => pxBlock_41
  771. # DEBUG BEGIN_STMT
  772. <bb 11> [local count: 551465]:
  773. # pxBlock_29 = PHI <pxBlock_41(10), _11(28)>
  774. # pxPreviousBlock_30 = PHI <&xStart(10), pxBlock_29(28)>
  775. # DEBUG pxPreviousBlock => pxPreviousBlock_30
  776. # DEBUG pxBlock => pxBlock_29
  777. # DEBUG BEGIN_STMT
  778. _10 = pxBlock_29->xBlockSize;
  779. if (_10 < xWantedSize_28)
  780. goto <bb 12>; [94.50%]
  781. else
  782. goto <bb 13>; [5.50%]
  783. <bb 12> [local count: 521134]:
  784. _11 = pxBlock_29->pxNextFreeBlock;
  785. if (_11 != 0B)
  786. goto <bb 28>; [94.50%]
  787. else
  788. goto <bb 13>; [5.50%]
  789. <bb 28> [local count: 492472]:
  790. goto <bb 11>; [100.00%]
  791. <bb 13> [local count: 58993]:
  792. # _57 = PHI <_10(11), _10(12)>
  793. # pxBlock_54 = PHI <pxBlock_29(11), pxBlock_29(12)>
  794. # pxPreviousBlock_8 = PHI <pxPreviousBlock_30(11), pxPreviousBlock_30(12)>
  795. # DEBUG BEGIN_STMT
  796. pxEnd.3_12 = pxEnd;
  797. if (pxEnd.3_12 != pxBlock_54)
  798. goto <bb 14>; [85.10%]
  799. else
  800. goto <bb 22>; [14.90%]
  801. <bb 14> [local count: 50203]:
  802. # DEBUG BEGIN_STMT
  803. _13 = pxPreviousBlock_8->pxNextFreeBlock;
  804. pvReturn_42 = _13 + 8;
  805. # DEBUG pvReturn => pvReturn_42
  806. # DEBUG BEGIN_STMT
  807. _14 = pxBlock_54->pxNextFreeBlock;
  808. pxPreviousBlock_8->pxNextFreeBlock = _14;
  809. # DEBUG BEGIN_STMT
  810. _15 = _57 - xWantedSize_28;
  811. if (_15 > 16)
  812. goto <bb 15>; [50.00%]
  813. else
  814. goto <bb 19>; [50.00%]
  815. <bb 15> [local count: 25102]:
  816. # DEBUG BEGIN_STMT
  817. pxNewBlockLink_44 = pxBlock_54 + xWantedSize_28;
  818. # DEBUG pxNewBlockLink => pxNewBlockLink_44
  819. # DEBUG BEGIN_STMT
  820. pxNewBlockLink.4_16 = (unsigned int) pxNewBlockLink_44;
  821. _17 = pxNewBlockLink.4_16 & 7;
  822. if (_17 != 0)
  823. goto <bb 16>; [67.00%]
  824. else
  825. goto <bb 18>; [33.00%]
  826. <bb 16> [local count: 16818]:
  827. # DEBUG BEGIN_STMT
  828. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  829. # DEBUG BEGIN_STMT
  830. # DEBUG BEGIN_STMT
  831. __asm__ __volatile__(" mov %0, %1
  832. msr basepri, %0
  833. isb
  834. dsb
  835. " : "=r" ulNewBASEPRI_55 : "i" 16 : "memory");
  836. # DEBUG ulNewBASEPRI => ulNewBASEPRI_55
  837. <bb 17> [local count: 168180375]:
  838. # DEBUG ulNewBASEPRI => NULL
  839. # DEBUG BEGIN_STMT
  840. # DEBUG BEGIN_STMT
  841. # DEBUG BEGIN_STMT
  842. <bb 26> [local count: 168180375]:
  843. goto <bb 17>; [100.00%]
  844. <bb 18> [local count: 8283]:
  845. # DEBUG BEGIN_STMT
  846. # DEBUG BEGIN_STMT
  847. pxNewBlockLink_44->xBlockSize = _15;
  848. # DEBUG BEGIN_STMT
  849. pxBlock_54->xBlockSize = xWantedSize_28;
  850. # DEBUG BEGIN_STMT
  851. prvInsertBlockIntoFreeList (pxNewBlockLink_44);
  852. <bb 19> [local count: 33385]:
  853. # DEBUG BEGIN_STMT
  854. # DEBUG BEGIN_STMT
  855. xFreeBytesRemaining.5_18 = xFreeBytesRemaining;
  856. _19 = pxBlock_54->xBlockSize;
  857. _20 = xFreeBytesRemaining.5_18 - _19;
  858. xFreeBytesRemaining = _20;
  859. # DEBUG BEGIN_STMT
  860. xMinimumEverFreeBytesRemaining.7_21 = xMinimumEverFreeBytesRemaining;
  861. if (_20 < xMinimumEverFreeBytesRemaining.7_21)
  862. goto <bb 20>; [50.00%]
  863. else
  864. goto <bb 21>; [50.00%]
  865. <bb 20> [local count: 16693]:
  866. # DEBUG BEGIN_STMT
  867. xMinimumEverFreeBytesRemaining = _20;
  868. <bb 21> [local count: 33385]:
  869. # DEBUG BEGIN_STMT
  870. # DEBUG BEGIN_STMT
  871. xBlockAllocatedBit.9_22 = xBlockAllocatedBit;
  872. _23 = _19 | xBlockAllocatedBit.9_22;
  873. pxBlock_54->xBlockSize = _23;
  874. # DEBUG BEGIN_STMT
  875. pxBlock_54->pxNextFreeBlock = 0B;
  876. # DEBUG BEGIN_STMT
  877. xNumberOfSuccessfulAllocations.10_24 = xNumberOfSuccessfulAllocations;
  878. _25 = xNumberOfSuccessfulAllocations.10_24 + 1;
  879. xNumberOfSuccessfulAllocations = _25;
  880. <bb 22> [local count: 214748]:
  881. # pvReturn_31 = PHI <0B(4), 0B(9), 0B(8), 0B(13), pvReturn_42(21), 0B(7), 0B(5)>
  882. # DEBUG xWantedSize => NULL
  883. # DEBUG pvReturn => pvReturn_31
  884. # DEBUG BEGIN_STMT
  885. # DEBUG BEGIN_STMT
  886. # DEBUG BEGIN_STMT
  887. xTaskResumeAll ();
  888. # DEBUG BEGIN_STMT
  889. pvReturn.11_26 = (unsigned int) pvReturn_31;
  890. _27 = pvReturn.11_26 & 7;
  891. if (_27 != 0)
  892. goto <bb 23>; [50.00%]
  893. else
  894. goto <bb 25>; [50.00%]
  895. <bb 23> [local count: 107374]:
  896. # DEBUG BEGIN_STMT
  897. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  898. # DEBUG BEGIN_STMT
  899. # DEBUG BEGIN_STMT
  900. __asm__ __volatile__(" mov %0, %1
  901. msr basepri, %0
  902. isb
  903. dsb
  904. " : "=r" ulNewBASEPRI_56 : "i" 16 : "memory");
  905. # DEBUG ulNewBASEPRI => ulNewBASEPRI_56
  906. <bb 24> [local count: 1073741824]:
  907. # DEBUG ulNewBASEPRI => NULL
  908. # DEBUG BEGIN_STMT
  909. # DEBUG BEGIN_STMT
  910. # DEBUG BEGIN_STMT
  911. <bb 27> [local count: 1073741824]:
  912. goto <bb 24>; [100.00%]
  913. <bb 25> [local count: 107374]:
  914. # DEBUG BEGIN_STMT
  915. # DEBUG BEGIN_STMT
  916. return pvReturn_31;
  917. }