event_groups.c.075i.fnsummary 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164
  1. Analyzing function: xEventGroupSetBits.part.0/39
  2. ;; 2 loops found
  3. ;;
  4. ;; Loop 0
  5. ;; header 0, latch 1
  6. ;; depth 0, outer -1
  7. ;; nodes: 0 1 12 2 3 4 5 6 7 8 9 10 11
  8. ;;
  9. ;; Loop 1
  10. ;; header 10, latch 9
  11. ;; depth 1, outer 0
  12. ;; nodes: 10 9 4 5 8 6 7 3
  13. ;; 12 succs { 2 }
  14. ;; 2 succs { 10 }
  15. ;; 3 succs { 4 5 }
  16. ;; 4 succs { 6 9 }
  17. ;; 5 succs { 6 9 }
  18. ;; 6 succs { 7 8 }
  19. ;; 7 succs { 8 }
  20. ;; 8 succs { 9 }
  21. ;; 9 succs { 10 }
  22. ;; 10 succs { 3 11 }
  23. ;; 11 succs { 1 }
  24. Analyzing function body size: xEventGroupSetBits.part.0
  25. IPA function summary for xEventGroupSetBits.part.0/39 inlinable
  26. global time: 189.559092
  27. self size: 39
  28. global size: 0
  29. min size: 0
  30. self stack: 0
  31. global stack: 0
  32. size:26.500000, time:118.036364
  33. size:7.500000, time:10.744546, executed if:(not inlined)
  34. calls:
  35. vTaskSuspendAll/21 function body not available
  36. loop depth: 0 freq:1.00 size: 1 time: 10
  37. vTaskRemoveFromUnorderedEventList/28 function body not available
  38. loop depth: 1 freq:3.40 size: 3 time: 12
  39. xTaskResumeAll/23 function body not available
  40. loop depth: 0 freq:1.00 size: 1 time: 10
  41. Analyzing function: xEventGroupClearBits.part.0/36
  42. ;; 1 loops found
  43. ;;
  44. ;; Loop 0
  45. ;; header 0, latch 1
  46. ;; depth 0, outer -1
  47. ;; nodes: 0 1 3 2
  48. ;; 3 succs { 2 }
  49. ;; 2 succs { 1 }
  50. Analyzing function body size: xEventGroupClearBits.part.0
  51. IPA function summary for xEventGroupClearBits.part.0/36 inlinable
  52. global time: 26.000000
  53. self size: 9
  54. global size: 0
  55. min size: 0
  56. self stack: 0
  57. global stack: 0
  58. size:2.000000, time:2.000000
  59. size:4.000000, time:3.000000, executed if:(not inlined)
  60. size:1.000000, time:1.000000, nonconst if:(op1 changed)
  61. calls:
  62. vPortEnterCritical/25 function body not available
  63. loop depth: 0 freq:1.00 size: 1 time: 10
  64. vPortExitCritical/26 function body not available
  65. loop depth: 0 freq:1.00 size: 1 time: 10
  66. Analyzing function: vEventGroupSetNumber/17
  67. ;; 1 loops found
  68. ;;
  69. ;; Loop 0
  70. ;; header 0, latch 1
  71. ;; depth 0, outer -1
  72. ;; nodes: 0 1 2
  73. ;; 2 succs { 1 }
  74. Analyzing function body size: vEventGroupSetNumber
  75. IPA function summary for vEventGroupSetNumber/17 inlinable
  76. global time: 3.000000
  77. self size: 4
  78. global size: 0
  79. min size: 0
  80. self stack: 0
  81. global stack: 0
  82. size:0.500000, time:0.500000
  83. size:3.500000, time:2.500000, executed if:(not inlined)
  84. calls:
  85. Analyzing function: uxEventGroupGetNumber/16
  86. ;; 1 loops found
  87. ;;
  88. ;; Loop 0
  89. ;; header 0, latch 1
  90. ;; depth 0, outer -1
  91. ;; nodes: 0 1 2 3 4
  92. ;; 2 succs { 4 3 }
  93. ;; 3 succs { 4 }
  94. ;; 4 succs { 1 }
  95. Analyzing function body size: uxEventGroupGetNumber
  96. IPA function summary for uxEventGroupGetNumber/16 inlinable
  97. global time: 4.700000
  98. self size: 6
  99. global size: 0
  100. min size: 0
  101. self stack: 0
  102. global stack: 0
  103. size:0.000000, time:0.000000
  104. size:3.000000, time:2.000000, executed if:(not inlined)
  105. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  106. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined)
  107. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B)
  108. calls:
  109. Analyzing function: xEventGroupSetBitsFromISR/15
  110. ;; 1 loops found
  111. ;;
  112. ;; Loop 0
  113. ;; header 0, latch 1
  114. ;; depth 0, outer -1
  115. ;; nodes: 0 1 2
  116. ;; 2 succs { 1 }
  117. Analyzing function body size: xEventGroupSetBitsFromISR
  118. IPA function summary for xEventGroupSetBitsFromISR/15 inlinable
  119. global time: 17.000000
  120. self size: 9
  121. global size: 0
  122. min size: 0
  123. self stack: 0
  124. global stack: 0
  125. size:0.000000, time:0.000000
  126. size:3.000000, time:2.000000, executed if:(not inlined)
  127. calls:
  128. xTimerPendFunctionCallFromISR/27 function body not available
  129. loop depth: 0 freq:1.00 size: 6 time: 15
  130. op0 is compile time invariant
  131. Analyzing function: prvTestWaitCondition/14
  132. ;; 1 loops found
  133. ;;
  134. ;; Loop 0
  135. ;; header 0, latch 1
  136. ;; depth 0, outer -1
  137. ;; nodes: 0 1 2 3 4 5 6 7
  138. ;; 2 succs { 3 5 }
  139. ;; 3 succs { 4 7 }
  140. ;; 4 succs { 7 }
  141. ;; 5 succs { 6 7 }
  142. ;; 6 succs { 7 }
  143. ;; 7 succs { 1 }
  144. Analyzing function body size: prvTestWaitCondition
  145. IPA function summary for prvTestWaitCondition/14 inlinable
  146. global time: 7.000000
  147. self size: 11
  148. global size: 0
  149. min size: 0
  150. self stack: 0
  151. global stack: 0
  152. size:0.000000, time:0.000000
  153. size:3.000000, time:2.000000, executed if:(not inlined)
  154. size:2.000000, time:2.000000, nonconst if:(op2 changed)
  155. size:3.000000, time:1.500000, executed if:(op2 != 0), nonconst if:(op0 changed || op1 changed) && (op2 != 0)
  156. size:3.000000, time:1.500000, executed if:(op2 == 0), nonconst if:(op0 changed || op1 changed) && (op2 == 0)
  157. calls:
  158. Analyzing function: vEventGroupClearBitsCallback/13
  159. ;; 1 loops found
  160. ;;
  161. ;; Loop 0
  162. ;; header 0, latch 1
  163. ;; depth 0, outer -1
  164. ;; nodes: 0 1 2
  165. ;; 2 succs { 1 }
  166. Analyzing function body size: vEventGroupClearBitsCallback
  167. IPA function summary for vEventGroupClearBitsCallback/13 inlinable
  168. global time: 14.000000
  169. self size: 6
  170. global size: 0
  171. min size: 0
  172. self stack: 0
  173. global stack: 0
  174. size:0.000000, time:0.000000
  175. size:3.000000, time:2.000000, executed if:(not inlined)
  176. calls:
  177. xEventGroupClearBits/7 function not considered for inlining
  178. loop depth: 0 freq:1.00 size: 3 time: 12
  179. Analyzing function: vEventGroupSetBitsCallback/12
  180. ;; 1 loops found
  181. ;;
  182. ;; Loop 0
  183. ;; header 0, latch 1
  184. ;; depth 0, outer -1
  185. ;; nodes: 0 1 2
  186. ;; 2 succs { 1 }
  187. Analyzing function body size: vEventGroupSetBitsCallback
  188. IPA function summary for vEventGroupSetBitsCallback/12 inlinable
  189. global time: 14.000000
  190. self size: 6
  191. global size: 0
  192. min size: 0
  193. self stack: 0
  194. global stack: 0
  195. size:0.000000, time:0.000000
  196. size:3.000000, time:2.000000, executed if:(not inlined)
  197. calls:
  198. xEventGroupSetBits/10 function not considered for inlining
  199. loop depth: 0 freq:1.00 size: 3 time: 12
  200. Analyzing function: vEventGroupDelete/11
  201. ;; 4 loops found
  202. ;;
  203. ;; Loop 0
  204. ;; header 0, latch 1
  205. ;; depth 0, outer -1
  206. ;; nodes: 0 1 2 3 4 12 5 6 7 8 13 9 10 11
  207. ;;
  208. ;; Loop 3
  209. ;; header 4, latch 12
  210. ;; depth 1, outer 0
  211. ;; nodes: 4 12
  212. ;;
  213. ;; Loop 2
  214. ;; header 8, latch 13
  215. ;; depth 1, outer 0
  216. ;; nodes: 8 13
  217. ;;
  218. ;; Loop 1
  219. ;; header 10, latch 9
  220. ;; depth 1, outer 0
  221. ;; nodes: 10 9 6
  222. ;; 2 succs { 3 5 }
  223. ;; 3 succs { 4 }
  224. ;; 4 succs { 12 }
  225. ;; 12 succs { 4 }
  226. ;; 5 succs { 10 }
  227. ;; 6 succs { 7 9 }
  228. ;; 7 succs { 8 }
  229. ;; 8 succs { 13 }
  230. ;; 13 succs { 8 }
  231. ;; 9 succs { 10 }
  232. ;; 10 succs { 6 11 }
  233. ;; 11 succs { 1 }
  234. Analyzing function body size: vEventGroupDelete
  235. IPA function summary for vEventGroupDelete/11 inlinable
  236. global time: 100.024761
  237. self size: 28
  238. global size: 0
  239. min size: 0
  240. self stack: 0
  241. global stack: 0
  242. size:0.000000, time:0.000000
  243. size:2.000000, time:0.000000, executed if:(not inlined)
  244. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  245. size:2.000000, time:5.410727, executed if:(op0 != 0B) && (not inlined)
  246. size:10.000000, time:25.603487, executed if:(op0 != 0B)
  247. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  248. calls:
  249. xTaskResumeAll/23 function body not available
  250. loop depth: 0 freq:0.27 size: 1 time: 10 predicate: (op0 != 0B)
  251. vPortFree/29 function body not available
  252. loop depth: 0 freq:0.27 size: 2 time: 11 predicate: (op0 != 0B)
  253. vTaskRemoveFromUnorderedEventList/28 function body not available
  254. loop depth: 1 freq:4.46 size: 3 time: 12 predicate: (op0 != 0B)
  255. op1 is compile time invariant
  256. vTaskSuspendAll/21 function body not available
  257. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  258. Analyzing function: xEventGroupSetBits/10
  259. ;; 4 loops found
  260. ;;
  261. ;; Loop 0
  262. ;; header 0, latch 1
  263. ;; depth 0, outer -1
  264. ;; nodes: 0 1 2 3 4 9 5 6 7 10 8
  265. ;;
  266. ;; Loop 3
  267. ;; header 4, latch 9
  268. ;; depth 1, outer 0
  269. ;; nodes: 4 9
  270. ;;
  271. ;; Loop 2
  272. ;; header 7, latch 10
  273. ;; depth 1, outer 0
  274. ;; nodes: 7 10
  275. ;; 2 succs { 3 5 }
  276. ;; 3 succs { 4 }
  277. ;; 4 succs { 9 }
  278. ;; 9 succs { 4 }
  279. ;; 5 succs { 6 8 }
  280. ;; 6 succs { 7 }
  281. ;; 7 succs { 10 }
  282. ;; 10 succs { 7 }
  283. ;; 8 succs { 1 }
  284. Analyzing function body size: xEventGroupSetBits
  285. IPA function summary for xEventGroupSetBits/10 inlinable
  286. global time: 11.410047
  287. self size: 22
  288. global size: 0
  289. min size: 0
  290. self stack: 0
  291. global stack: 0
  292. size:0.000000, time:0.000000
  293. size:2.000000, time:0.000000, executed if:(not inlined)
  294. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  295. size:3.000000, time:2.100008, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  296. size:1.000000, time:0.462003, executed if:(op0 != 0B) && (not inlined)
  297. size:5.000000, time:2.345004, executed if:(op0 != 0B)
  298. size:5.000000, time:1.500009, executed if:(op0 == 0B)
  299. calls:
  300. xEventGroupSetBits.part.0/39 function not considered for inlining
  301. loop depth: 0 freq:0.23 size: 4 time: 13callee size:19 stack: 0 predicate: (op0 != 0B)
  302. Analyzing function: xEventGroupGetBitsFromISR/9
  303. ;; 1 loops found
  304. ;;
  305. ;; Loop 0
  306. ;; header 0, latch 1
  307. ;; depth 0, outer -1
  308. ;; nodes: 0 1 2
  309. ;; 2 succs { 1 }
  310. Analyzing function body size: xEventGroupGetBitsFromISR
  311. IPA function summary for xEventGroupGetBitsFromISR/9 inlinable
  312. global time: 10.000000
  313. self size: 11
  314. global size: 0
  315. min size: 0
  316. self stack: 0
  317. global stack: 0
  318. size:7.500000, time:7.500000
  319. size:3.500000, time:2.500000, executed if:(not inlined)
  320. calls:
  321. Analyzing function: xEventGroupClearBitsFromISR/8
  322. ;; 1 loops found
  323. ;;
  324. ;; Loop 0
  325. ;; header 0, latch 1
  326. ;; depth 0, outer -1
  327. ;; nodes: 0 1 2
  328. ;; 2 succs { 1 }
  329. Analyzing function body size: xEventGroupClearBitsFromISR
  330. IPA function summary for xEventGroupClearBitsFromISR/8 inlinable
  331. global time: 17.000000
  332. self size: 9
  333. global size: 0
  334. min size: 0
  335. self stack: 0
  336. global stack: 0
  337. size:0.000000, time:0.000000
  338. size:3.000000, time:2.000000, executed if:(not inlined)
  339. calls:
  340. xTimerPendFunctionCallFromISR/27 function body not available
  341. loop depth: 0 freq:1.00 size: 6 time: 15
  342. op0 is compile time invariant
  343. op3 is compile time invariant
  344. Analyzing function: xEventGroupClearBits/7
  345. ;; 3 loops found
  346. ;;
  347. ;; Loop 0
  348. ;; header 0, latch 1
  349. ;; depth 0, outer -1
  350. ;; nodes: 0 1 2 3 4 9 5 6 7 10 8
  351. ;;
  352. ;; Loop 2
  353. ;; header 4, latch 9
  354. ;; depth 1, outer 0
  355. ;; nodes: 4 9
  356. ;;
  357. ;; Loop 1
  358. ;; header 7, latch 10
  359. ;; depth 1, outer 0
  360. ;; nodes: 7 10
  361. ;; 2 succs { 3 5 }
  362. ;; 3 succs { 4 }
  363. ;; 4 succs { 9 }
  364. ;; 9 succs { 4 }
  365. ;; 5 succs { 6 8 }
  366. ;; 6 succs { 7 }
  367. ;; 7 succs { 10 }
  368. ;; 10 succs { 7 }
  369. ;; 8 succs { 1 }
  370. Analyzing function body size: xEventGroupClearBits
  371. IPA function summary for xEventGroupClearBits/7 inlinable
  372. global time: 11.410047
  373. self size: 22
  374. global size: 0
  375. min size: 0
  376. self stack: 0
  377. global stack: 0
  378. size:0.000000, time:0.000000
  379. size:2.000000, time:0.000000, executed if:(not inlined)
  380. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  381. size:3.000000, time:2.100008, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  382. size:1.000000, time:0.462003, executed if:(op0 != 0B) && (not inlined)
  383. size:5.000000, time:2.345004, executed if:(op0 != 0B)
  384. size:5.000000, time:1.500009, executed if:(op0 == 0B)
  385. calls:
  386. xEventGroupClearBits.part.0/36 function not considered for inlining
  387. loop depth: 0 freq:0.23 size: 4 time: 13callee size: 4 stack: 0 predicate: (op0 != 0B)
  388. Analyzing function: xEventGroupWaitBits/6
  389. ;; 5 loops found
  390. ;;
  391. ;; Loop 0
  392. ;; header 0, latch 1
  393. ;; depth 0, outer -1
  394. ;; nodes: 0 1 2 3 4 34 5 6 7 35 8 9 10 36 11 12 13 14 37 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
  395. ;;
  396. ;; Loop 4
  397. ;; header 4, latch 34
  398. ;; depth 1, outer 0
  399. ;; nodes: 4 34
  400. ;;
  401. ;; Loop 3
  402. ;; header 7, latch 35
  403. ;; depth 1, outer 0
  404. ;; nodes: 7 35
  405. ;;
  406. ;; Loop 2
  407. ;; header 10, latch 36
  408. ;; depth 1, outer 0
  409. ;; nodes: 10 36
  410. ;;
  411. ;; Loop 1
  412. ;; header 14, latch 37
  413. ;; depth 1, outer 0
  414. ;; nodes: 14 37
  415. ;; 2 succs { 3 5 }
  416. ;; 3 succs { 4 }
  417. ;; 4 succs { 34 }
  418. ;; 34 succs { 4 }
  419. ;; 5 succs { 6 8 }
  420. ;; 6 succs { 7 }
  421. ;; 7 succs { 35 }
  422. ;; 35 succs { 7 }
  423. ;; 8 succs { 9 11 }
  424. ;; 9 succs { 10 }
  425. ;; 10 succs { 36 }
  426. ;; 36 succs { 10 }
  427. ;; 11 succs { 15 12 }
  428. ;; 12 succs { 15 13 }
  429. ;; 13 succs { 14 }
  430. ;; 14 succs { 37 }
  431. ;; 37 succs { 14 }
  432. ;; 15 succs { 16 18 }
  433. ;; 16 succs { 17 24 }
  434. ;; 17 succs { 24 }
  435. ;; 18 succs { 24 19 }
  436. ;; 19 succs { 20 21 }
  437. ;; 20 succs { 21 }
  438. ;; 21 succs { 22 23 }
  439. ;; 22 succs { 23 }
  440. ;; 23 succs { 24 }
  441. ;; 24 succs { 25 33 }
  442. ;; 25 succs { 26 27 }
  443. ;; 26 succs { 27 }
  444. ;; 27 succs { 28 32 }
  445. ;; 28 succs { 29 31 }
  446. ;; 29 succs { 30 31 }
  447. ;; 30 succs { 31 }
  448. ;; 31 succs { 32 }
  449. ;; 32 succs { 33 }
  450. ;; 33 succs { 1 }
  451. Analyzing function body size: xEventGroupWaitBits
  452. IPA function summary for xEventGroupWaitBits/6 inlinable
  453. global time: 16.066158
  454. self size: 92
  455. global size: 0
  456. min size: 0
  457. self stack: 0
  458. global stack: 0
  459. size:0.000000, time:0.000000
  460. size:2.000000, time:0.000000, executed if:(not inlined)
  461. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  462. size:5.000000, time:2.799999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  463. size:18.000000, time:0.896349, executed if:(op1 != 0) && (op0 != 0B)
  464. size:4.000000, time:0.231577, executed if:(op1 != 0) && (op0 != 0B), nonconst if:(op4 changed) && (op1 != 0) && (op0 != 0B)
  465. size:5.000000, time:0.193459, executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B)
  466. size:2.000000, time:0.198354, executed if:(op1 != 0) && (op0 != 0B) && (not inlined)
  467. size:2.000000, time:0.038405, executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B), nonconst if:(op2 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
  468. size:2.000000, time:0.038405, executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B), nonconst if:(op3 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
  469. size:1.000000, time:0.009600, executed if:(op3 != 0) && (op4 != 0) && (op1 != 0) && (op0 != 0B), nonconst if:(op2 changed) && (op3 != 0) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
  470. size:1.000000, time:0.019202, executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B), nonconst if:(op1 changed || op2 changed || op3 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
  471. size:4.000000, time:0.089483, executed if:(op1 != 0) && (op0 != 0B), nonconst if:(op2 changed) && (op1 != 0) && (op0 != 0B)
  472. size:2.000000, time:0.022371, executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B), nonconst if:(op1 changed) && (op2 != 0) && (op1 != 0) && (op0 != 0B)
  473. size:3.000000, time:0.033556, executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B)
  474. size:1.000000, time:0.011185, executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B) && (not inlined)
  475. size:5.000000, time:1.172506, executed if:(op1 == 0) && (op0 != 0B)
  476. size:5.000000, time:1.749999, executed if:(op0 != 0B)
  477. size:5.000000, time:1.500002, executed if:(op0 == 0B)
  478. calls:
  479. vPortExitCritical/26 function body not available
  480. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
  481. prvTestWaitCondition/14 function not considered for inlining
  482. loop depth: 0 freq:0.01 size: 5 time: 14callee size: 5 stack: 0 predicate: (op1 != 0) && (op0 != 0B)
  483. vPortEnterCritical/25 function body not available
  484. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
  485. uxTaskResetEventItemValue/24 function body not available
  486. loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
  487. xTaskResumeAll/23 function body not available
  488. loop depth: 0 freq:0.08 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
  489. vTaskPlaceOnUnorderedEventList/22 function body not available
  490. loop depth: 0 freq:0.02 size: 4 time: 13 predicate: (op4 != 0) && (op1 != 0) && (op0 != 0B)
  491. prvTestWaitCondition/14 function not considered for inlining
  492. loop depth: 0 freq:0.08 size: 5 time: 14callee size: 5 stack: 0 predicate: (op1 != 0) && (op0 != 0B)
  493. vTaskSuspendAll/21 function body not available
  494. loop depth: 0 freq:0.08 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
  495. xTaskGetSchedulerState/20 function body not available
  496. loop depth: 0 freq:0.12 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
  497. Analyzing function: xEventGroupSync/5
  498. ;; 4 loops found
  499. ;;
  500. ;; Loop 0
  501. ;; header 0, latch 1
  502. ;; depth 0, outer -1
  503. ;; nodes: 0 1 2 3 4 26 5 6 7 27 8 9 10 11 28 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  504. ;;
  505. ;; Loop 3
  506. ;; header 4, latch 26
  507. ;; depth 1, outer 0
  508. ;; nodes: 4 26
  509. ;;
  510. ;; Loop 2
  511. ;; header 7, latch 27
  512. ;; depth 1, outer 0
  513. ;; nodes: 7 27
  514. ;;
  515. ;; Loop 1
  516. ;; header 11, latch 28
  517. ;; depth 1, outer 0
  518. ;; nodes: 11 28
  519. ;; 2 succs { 3 5 }
  520. ;; 3 succs { 4 }
  521. ;; 4 succs { 26 }
  522. ;; 26 succs { 4 }
  523. ;; 5 succs { 6 8 }
  524. ;; 6 succs { 7 }
  525. ;; 7 succs { 27 }
  526. ;; 27 succs { 7 }
  527. ;; 8 succs { 12 9 }
  528. ;; 9 succs { 12 10 }
  529. ;; 10 succs { 11 }
  530. ;; 11 succs { 28 }
  531. ;; 28 succs { 11 }
  532. ;; 12 succs { 13 14 }
  533. ;; 13 succs { 17 }
  534. ;; 14 succs { 15 16 }
  535. ;; 15 succs { 17 }
  536. ;; 16 succs { 17 }
  537. ;; 17 succs { 18 25 }
  538. ;; 18 succs { 19 20 }
  539. ;; 19 succs { 20 }
  540. ;; 20 succs { 21 24 }
  541. ;; 21 succs { 22 23 }
  542. ;; 22 succs { 23 }
  543. ;; 23 succs { 24 }
  544. ;; 24 succs { 25 }
  545. ;; 25 succs { 1 }
  546. Analyzing function body size: xEventGroupSync
  547. IPA function summary for xEventGroupSync/5 inlinable
  548. global time: 17.570981
  549. self size: 74
  550. global size: 0
  551. min size: 0
  552. self stack: 0
  553. global stack: 0
  554. size:5.000000, time:2.500000
  555. size:2.000000, time:0.000000, executed if:(not inlined)
  556. size:5.000000, time:4.000000, nonconst if:(op2 changed)
  557. size:24.500000, time:1.601894, executed if:(op2 != 0)
  558. size:4.000000, time:0.365936, executed if:(op2 != 0), nonconst if:(op3 changed) && (op2 != 0)
  559. size:5.000000, time:0.276370, executed if:(op3 != 0) && (op2 != 0)
  560. size:3.500000, time:0.323745, executed if:(op2 != 0) && (not inlined)
  561. size:0.500000, time:0.024261, executed if:(op3 == 0) && (op2 != 0) && (not inlined)
  562. size:0.500000, time:0.024261, executed if:(op3 == 0) && (op2 != 0)
  563. size:1.000000, time:0.023898, executed if:(op3 != 0) && (op2 != 0), nonconst if:(op2 changed) && (op3 != 0) && (op2 != 0)
  564. size:2.000000, time:0.043460, executed if:(op2 != 0), nonconst if:(op2 changed) && (op2 != 0)
  565. size:5.000000, time:1.675010, executed if:(op2 == 0)
  566. calls:
  567. vPortExitCritical/26 function body not available
  568. loop depth: 0 freq:0.02 size: 1 time: 10 predicate: (op2 != 0)
  569. vPortEnterCritical/25 function body not available
  570. loop depth: 0 freq:0.02 size: 1 time: 10 predicate: (op2 != 0)
  571. uxTaskResetEventItemValue/24 function body not available
  572. loop depth: 0 freq:0.05 size: 2 time: 11 predicate: (op2 != 0)
  573. xTaskResumeAll/23 function body not available
  574. loop depth: 0 freq:0.11 size: 2 time: 11 predicate: (op2 != 0)
  575. vTaskPlaceOnUnorderedEventList/22 function body not available
  576. loop depth: 0 freq:0.02 size: 4 time: 13 predicate: (op3 != 0) && (op2 != 0)
  577. xEventGroupSetBits/10 function not considered for inlining
  578. loop depth: 0 freq:0.11 size: 3 time: 12callee size:11 stack: 0 predicate: (op2 != 0)
  579. vTaskSuspendAll/21 function body not available
  580. loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op2 != 0)
  581. xTaskGetSchedulerState/20 function body not available
  582. loop depth: 0 freq:0.16 size: 2 time: 11 predicate: (op2 != 0)
  583. Analyzing function: xEventGroupCreate/4
  584. ;; 1 loops found
  585. ;;
  586. ;; Loop 0
  587. ;; header 0, latch 1
  588. ;; depth 0, outer -1
  589. ;; nodes: 0 1 2 3 4
  590. ;; 2 succs { 3 4 }
  591. ;; 3 succs { 4 }
  592. ;; 4 succs { 1 }
  593. Analyzing function body size: xEventGroupCreate
  594. IPA function summary for xEventGroupCreate/4 inlinable
  595. global time: 22.416400
  596. self size: 11
  597. global size: 0
  598. min size: 0
  599. self stack: 0
  600. global stack: 0
  601. size:3.000000, time:2.534700
  602. size:3.000000, time:2.000000, executed if:(not inlined)
  603. calls:
  604. vListInitialise/19 function body not available
  605. loop depth: 0 freq:0.53 size: 2 time: 11
  606. pvPortMalloc/18 function body not available
  607. loop depth: 0 freq:1.00 size: 3 time: 12
  608. op0 is compile time invariant
  609. Symbol table:
  610. xEventGroupSetBits.part.0/39 (xEventGroupSetBits.part.0) @05db30e0
  611. Type: function definition analyzed
  612. Visibility: prevailing_def_ironly artificial
  613. References:
  614. Referring:
  615. Availability: local
  616. Function flags: count:118111600 (estimated locally) first_run:1 body local split_part optimize_size
  617. Called by: xEventGroupSetBits/10 (52886 (estimated locally),0.23 per call)
  618. Calls: vTaskSuspendAll/21 (118111600 (estimated locally),1.00 per call) vTaskRemoveFromUnorderedEventList/28 (401364694 (estimated locally),3.40 per call) xTaskResumeAll/23 (118111601 (estimated locally),1.00 per call)
  619. xEventGroupClearBits.part.0/36 (xEventGroupClearBits.part.0) @05dada80
  620. Type: function definition analyzed
  621. Visibility: prevailing_def_ironly artificial
  622. References:
  623. Referring:
  624. Availability: local
  625. Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  626. Called by: xEventGroupClearBits/7 (52886 (estimated locally),0.23 per call)
  627. Calls: vPortEnterCritical/25 (1073741824 (estimated locally),1.00 per call) vPortExitCritical/26 (1073741824 (estimated locally),1.00 per call)
  628. vPortFree/29 (vPortFree) @05e96b60
  629. Type: function
  630. Visibility: external public
  631. References:
  632. Referring:
  633. Availability: not_available
  634. Function flags: optimize_size
  635. Called by: vEventGroupDelete/11 (63439 (estimated locally),0.27 per call)
  636. Calls:
  637. vTaskRemoveFromUnorderedEventList/28 (vTaskRemoveFromUnorderedEventList) @05e969a0
  638. Type: function
  639. Visibility: external public
  640. References:
  641. Referring:
  642. Availability: not_available
  643. Function flags: optimize_size
  644. Called by: vEventGroupDelete/11 (1030048 (estimated locally),4.46 per call) xEventGroupSetBits.part.0/39 (401364694 (estimated locally),3.40 per call)
  645. Calls:
  646. xTimerPendFunctionCallFromISR/27 (xTimerPendFunctionCallFromISR) @05e96460
  647. Type: function
  648. Visibility: external public
  649. References:
  650. Referring:
  651. Availability: not_available
  652. Function flags: optimize_size
  653. Called by: xEventGroupSetBitsFromISR/15 (1073741824 (estimated locally),1.00 per call) xEventGroupClearBitsFromISR/8 (1073741824 (estimated locally),1.00 per call)
  654. Calls:
  655. vPortExitCritical/26 (vPortExitCritical) @05e77d20
  656. Type: function
  657. Visibility: external public
  658. References:
  659. Referring:
  660. Availability: not_available
  661. Function flags: optimize_size
  662. Called by: xEventGroupSync/5 (3888 (estimated locally),0.02 per call) xEventGroupClearBits.part.0/36 (1073741824 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call)
  663. Calls:
  664. vPortEnterCritical/25 (vPortEnterCritical) @05e77c40
  665. Type: function
  666. Visibility: external public
  667. References:
  668. Referring:
  669. Availability: not_available
  670. Function flags: optimize_size
  671. Called by: xEventGroupSync/5 (3888 (estimated locally),0.02 per call) xEventGroupClearBits.part.0/36 (1073741824 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call)
  672. Calls:
  673. uxTaskResetEventItemValue/24 (uxTaskResetEventItemValue) @05e77b60
  674. Type: function
  675. Visibility: external public
  676. References:
  677. Referring:
  678. Availability: not_available
  679. Function flags: optimize_size
  680. Called by: xEventGroupSync/5 (11782 (estimated locally),0.05 per call) xEventGroupWaitBits/6 (11782 (estimated locally),0.04 per call)
  681. Calls:
  682. xTaskResumeAll/23 (xTaskResumeAll) @05e77a80
  683. Type: function
  684. Visibility: external public
  685. References:
  686. Referring:
  687. Availability: not_available
  688. Function flags: optimize_size
  689. Called by: vEventGroupDelete/11 (63439 (estimated locally),0.27 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) xEventGroupSetBits.part.0/39 (118111601 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call)
  690. Calls:
  691. vTaskPlaceOnUnorderedEventList/22 (vTaskPlaceOnUnorderedEventList) @05e779a0
  692. Type: function
  693. Visibility: external public
  694. References:
  695. Referring:
  696. Availability: not_available
  697. Function flags: optimize_size
  698. Called by: xEventGroupSync/5 (5132 (estimated locally),0.02 per call) xEventGroupWaitBits/6 (5891 (estimated locally),0.02 per call)
  699. Calls:
  700. vTaskSuspendAll/21 (vTaskSuspendAll) @05e778c0
  701. Type: function
  702. Visibility: external public
  703. References:
  704. Referring:
  705. Availability: not_available
  706. Function flags: optimize_size
  707. Called by: vEventGroupDelete/11 (123389 (estimated locally),0.53 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) xEventGroupSetBits.part.0/39 (118111600 (estimated locally),1.00 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call)
  708. Calls:
  709. xTaskGetSchedulerState/20 (xTaskGetSchedulerState) @05e777e0
  710. Type: function
  711. Visibility: external public
  712. References:
  713. Referring:
  714. Availability: not_available
  715. Function flags: optimize_size
  716. Called by: xEventGroupSync/5 (35433 (estimated locally),0.16 per call) xEventGroupWaitBits/6 (35433 (estimated locally),0.12 per call)
  717. Calls:
  718. vListInitialise/19 (vListInitialise) @05e77460
  719. Type: function
  720. Visibility: external public
  721. References:
  722. Referring:
  723. Availability: not_available
  724. Function flags: optimize_size
  725. Called by: xEventGroupCreate/4 (574129754 (estimated locally),0.53 per call)
  726. Calls:
  727. pvPortMalloc/18 (pvPortMalloc) @05e77380
  728. Type: function
  729. Visibility: external public
  730. References:
  731. Referring:
  732. Availability: not_available
  733. Function flags: optimize_size
  734. Called by: xEventGroupCreate/4 (1073741824 (estimated locally),1.00 per call)
  735. Calls:
  736. vEventGroupSetNumber/17 (vEventGroupSetNumber) @05e6be00
  737. Type: function definition analyzed
  738. Visibility: externally_visible public
  739. References:
  740. Referring:
  741. Availability: available
  742. Function flags: count:1073741824 (estimated locally) body optimize_size
  743. Called by:
  744. Calls:
  745. uxEventGroupGetNumber/16 (uxEventGroupGetNumber) @05e6b8c0
  746. Type: function definition analyzed
  747. Visibility: externally_visible public
  748. References:
  749. Referring:
  750. Availability: available
  751. Function flags: count:1073741824 (estimated locally) body optimize_size
  752. Called by:
  753. Calls:
  754. xEventGroupSetBitsFromISR/15 (xEventGroupSetBitsFromISR) @05e6b2a0
  755. Type: function definition analyzed
  756. Visibility: externally_visible public
  757. References: vEventGroupSetBitsCallback/12 (addr)
  758. Referring:
  759. Availability: available
  760. Function flags: count:1073741824 (estimated locally) body optimize_size
  761. Called by:
  762. Calls: xTimerPendFunctionCallFromISR/27 (1073741824 (estimated locally),1.00 per call)
  763. prvTestWaitCondition/14 (prvTestWaitCondition) @05e6bd20
  764. Type: function definition analyzed
  765. Visibility: prevailing_def_ironly
  766. References:
  767. Referring:
  768. Availability: local
  769. Function flags: count:1073741824 (estimated locally) body local optimize_size
  770. Called by: xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call)
  771. Calls:
  772. vEventGroupClearBitsCallback/13 (vEventGroupClearBitsCallback) @05e6ba80
  773. Type: function definition analyzed
  774. Visibility: externally_visible public
  775. Address is taken.
  776. References:
  777. Referring: xEventGroupClearBitsFromISR/8 (addr)
  778. Availability: available
  779. Function flags: count:1073741824 (estimated locally) body optimize_size
  780. Called by:
  781. Calls: xEventGroupClearBits/7 (1073741824 (estimated locally),1.00 per call)
  782. vEventGroupSetBitsCallback/12 (vEventGroupSetBitsCallback) @05e6b7e0
  783. Type: function definition analyzed
  784. Visibility: externally_visible public
  785. Address is taken.
  786. References:
  787. Referring: xEventGroupSetBitsFromISR/15 (addr)
  788. Availability: available
  789. Function flags: count:1073741824 (estimated locally) body optimize_size
  790. Called by:
  791. Calls: xEventGroupSetBits/10 (1073741824 (estimated locally),1.00 per call)
  792. vEventGroupDelete/11 (vEventGroupDelete) @05e6b540
  793. Type: function definition analyzed
  794. Visibility: externally_visible public
  795. References:
  796. Referring:
  797. Availability: available
  798. Function flags: count:230763 (estimated locally) body optimize_size
  799. Called by:
  800. Calls: xTaskResumeAll/23 (63439 (estimated locally),0.27 per call) vPortFree/29 (63439 (estimated locally),0.27 per call) vTaskRemoveFromUnorderedEventList/28 (1030048 (estimated locally),4.46 per call) vTaskSuspendAll/21 (123389 (estimated locally),0.53 per call)
  801. xEventGroupSetBits/10 (xEventGroupSetBits) @05e6b1c0
  802. Type: function definition analyzed
  803. Visibility: externally_visible public
  804. References:
  805. Referring:
  806. Availability: available
  807. Function flags: count:228942 (estimated locally) body optimize_size
  808. Called by: vEventGroupSetBitsCallback/12 (1073741824 (estimated locally),1.00 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call)
  809. Calls: xEventGroupSetBits.part.0/39 (52886 (estimated locally),0.23 per call)
  810. xEventGroupGetBitsFromISR/9 (xEventGroupGetBitsFromISR) @05e27a80
  811. Type: function definition analyzed
  812. Visibility: externally_visible public
  813. References:
  814. Referring:
  815. Availability: available
  816. Function flags: count:1073741824 (estimated locally) body optimize_size
  817. Called by:
  818. Calls:
  819. xEventGroupClearBitsFromISR/8 (xEventGroupClearBitsFromISR) @05e270e0
  820. Type: function definition analyzed
  821. Visibility: externally_visible public
  822. References: vEventGroupClearBitsCallback/13 (addr)
  823. Referring:
  824. Availability: available
  825. Function flags: count:1073741824 (estimated locally) body optimize_size
  826. Called by:
  827. Calls: xTimerPendFunctionCallFromISR/27 (1073741824 (estimated locally),1.00 per call)
  828. xEventGroupClearBits/7 (xEventGroupClearBits) @05e27d20
  829. Type: function definition analyzed
  830. Visibility: externally_visible public
  831. References:
  832. Referring:
  833. Availability: available
  834. Function flags: count:228942 (estimated locally) body optimize_size
  835. Called by: vEventGroupClearBitsCallback/13 (1073741824 (estimated locally),1.00 per call)
  836. Calls: xEventGroupClearBits.part.0/36 (52886 (estimated locally),0.23 per call)
  837. xEventGroupWaitBits/6 (xEventGroupWaitBits) @05e279a0
  838. Type: function definition analyzed
  839. Visibility: externally_visible public
  840. References:
  841. Referring:
  842. Availability: available
  843. Function flags: count:306783 (estimated locally) body optimize_size
  844. Called by:
  845. Calls: vPortExitCritical/26 (3888 (estimated locally),0.01 per call) prvTestWaitCondition/14 (3888 (estimated locally),0.01 per call) vPortEnterCritical/25 (3888 (estimated locally),0.01 per call) uxTaskResetEventItemValue/24 (11782 (estimated locally),0.04 per call) xTaskResumeAll/23 (23563 (estimated locally),0.08 per call) vTaskPlaceOnUnorderedEventList/22 (5891 (estimated locally),0.02 per call) prvTestWaitCondition/14 (23563 (estimated locally),0.08 per call) vTaskSuspendAll/21 (23563 (estimated locally),0.08 per call) xTaskGetSchedulerState/20 (35433 (estimated locally),0.12 per call)
  846. xEventGroupSync/5 (xEventGroupSync) @05e27460
  847. Type: function definition analyzed
  848. Visibility: externally_visible public
  849. References:
  850. Referring:
  851. Availability: available
  852. Function flags: count:214748 (estimated locally) body optimize_size
  853. Called by:
  854. Calls: vPortExitCritical/26 (3888 (estimated locally),0.02 per call) vPortEnterCritical/25 (3888 (estimated locally),0.02 per call) uxTaskResetEventItemValue/24 (11782 (estimated locally),0.05 per call) xTaskResumeAll/23 (23563 (estimated locally),0.11 per call) vTaskPlaceOnUnorderedEventList/22 (5132 (estimated locally),0.02 per call) xEventGroupSetBits/10 (23563 (estimated locally),0.11 per call) vTaskSuspendAll/21 (23563 (estimated locally),0.11 per call) xTaskGetSchedulerState/20 (35433 (estimated locally),0.16 per call)
  855. xEventGroupCreate/4 (xEventGroupCreate) @05e27000
  856. Type: function definition analyzed
  857. Visibility: externally_visible public
  858. References:
  859. Referring:
  860. Availability: available
  861. Function flags: count:1073741824 (estimated locally) body optimize_size
  862. Called by:
  863. Calls: vListInitialise/19 (574129754 (estimated locally),0.53 per call) pvPortMalloc/18 (1073741824 (estimated locally),1.00 per call)
  864. xEventGroupSetBits.part.0 (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  865. {
  866. struct ListItem_t * pxListItem;
  867. struct ListItem_t * pxNext;
  868. const struct ListItem_t * pxListEnd;
  869. const struct List_t * pxList;
  870. EventBits_t uxBitsToClear;
  871. EventBits_t uxBitsWaitedFor;
  872. EventBits_t uxControlBits;
  873. struct EventGroup_t * pxEventBits;
  874. BaseType_t xMatchFound;
  875. uint32_t ulNewBASEPRI;
  876. uint32_t ulNewBASEPRI;
  877. long unsigned int _4;
  878. long unsigned int _6;
  879. long unsigned int _11;
  880. long unsigned int _12;
  881. long unsigned int _13;
  882. long unsigned int _14;
  883. long unsigned int _15;
  884. long unsigned int _16;
  885. long unsigned int _19;
  886. long unsigned int _20;
  887. long unsigned int _21;
  888. long unsigned int _23;
  889. long unsigned int _24;
  890. long unsigned int _25;
  891. <bb 12> [local count: 118111600]:
  892. <bb 2> [local count: 118111600]:
  893. # DEBUG BEGIN_STMT
  894. # DEBUG BEGIN_STMT
  895. # DEBUG D#1 => &MEM[(struct EventGroup_t *)xEventGroup_1(D)].xTasksWaitingForBits
  896. # DEBUG pxList => D#1
  897. # DEBUG BEGIN_STMT
  898. pxListEnd_2 = &MEM[(const struct List_t *)xEventGroup_1(D) + 4B].xListEnd;
  899. # DEBUG pxListEnd => pxListEnd_2
  900. # DEBUG BEGIN_STMT
  901. vTaskSuspendAll ();
  902. # DEBUG BEGIN_STMT
  903. # DEBUG BEGIN_STMT
  904. pxListItem_3 = MEM[(const struct List_t *)xEventGroup_1(D) + 4B].xListEnd.pxNext;
  905. # DEBUG pxListItem => pxListItem_3
  906. # DEBUG BEGIN_STMT
  907. _4 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  908. _6 = _4 | uxBitsToSet_5(D);
  909. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _6;
  910. # DEBUG BEGIN_STMT
  911. goto <bb 10>; [100.00%]
  912. <bb 3> [local count: 955630223]:
  913. # DEBUG BEGIN_STMT
  914. pxNext_8 = pxListItem_7->pxNext;
  915. # DEBUG pxNext => pxNext_8
  916. # DEBUG BEGIN_STMT
  917. uxBitsWaitedFor_9 = pxListItem_7->xItemValue;
  918. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_9
  919. # DEBUG BEGIN_STMT
  920. # DEBUG xMatchFound => 0
  921. # DEBUG BEGIN_STMT
  922. # DEBUG uxControlBits => uxBitsWaitedFor_9 & 4278190080
  923. # DEBUG BEGIN_STMT
  924. uxBitsWaitedFor_10 = uxBitsWaitedFor_9 & 16777215;
  925. # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_10
  926. # DEBUG BEGIN_STMT
  927. _11 = uxBitsWaitedFor_9 & 67108864;
  928. if (_11 == 0)
  929. goto <bb 4>; [50.00%]
  930. else
  931. goto <bb 5>; [50.00%]
  932. <bb 4> [local count: 477815111]:
  933. # DEBUG BEGIN_STMT
  934. _12 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  935. _13 = uxBitsWaitedFor_10 & _12;
  936. if (_13 != 0)
  937. goto <bb 6>; [50.00%]
  938. else
  939. goto <bb 9>; [50.00%]
  940. <bb 5> [local count: 477815111]:
  941. # DEBUG BEGIN_STMT
  942. _14 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  943. _15 = uxBitsWaitedFor_10 & _14;
  944. if (uxBitsWaitedFor_10 == _15)
  945. goto <bb 6>; [34.00%]
  946. else
  947. goto <bb 9>; [66.00%]
  948. <bb 6> [local count: 401364694]:
  949. # DEBUG xMatchFound => NULL
  950. # DEBUG BEGIN_STMT
  951. _16 = uxBitsWaitedFor_9 & 16777216;
  952. if (_16 != 0)
  953. goto <bb 7>; [50.00%]
  954. else
  955. goto <bb 8>; [50.00%]
  956. <bb 7> [local count: 200682347]:
  957. # DEBUG BEGIN_STMT
  958. uxBitsToClear_18 = uxBitsWaitedFor_10 | uxBitsToClear_17;
  959. # DEBUG uxBitsToClear => uxBitsToClear_18
  960. <bb 8> [local count: 401364694]:
  961. # uxBitsToClear_26 = PHI <uxBitsToClear_17(6), uxBitsToClear_18(7)>
  962. # DEBUG uxBitsToClear => uxBitsToClear_26
  963. # DEBUG BEGIN_STMT
  964. # DEBUG BEGIN_STMT
  965. _19 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  966. _20 = _19 | 33554432;
  967. vTaskRemoveFromUnorderedEventList (pxListItem_7, _20);
  968. <bb 9> [local count: 955630225]:
  969. # pxListItem_27 = PHI <pxNext_8(4), pxNext_8(5), pxNext_8(8)>
  970. # uxBitsToClear_28 = PHI <uxBitsToClear_17(4), uxBitsToClear_17(5), uxBitsToClear_26(8)>
  971. <bb 10> [local count: 1073741824]:
  972. # pxListItem_7 = PHI <pxListItem_3(2), pxListItem_27(9)>
  973. # uxBitsToClear_17 = PHI <0(2), uxBitsToClear_28(9)>
  974. # DEBUG xMatchFound => NULL
  975. # DEBUG uxBitsToClear => uxBitsToClear_17
  976. # DEBUG pxListItem => pxListItem_7
  977. # DEBUG BEGIN_STMT
  978. if (pxListEnd_2 != pxListItem_7)
  979. goto <bb 3>; [89.00%]
  980. else
  981. goto <bb 11>; [11.00%]
  982. <bb 11> [local count: 118111601]:
  983. # uxBitsToClear_22 = PHI <uxBitsToClear_17(10)>
  984. # DEBUG BEGIN_STMT
  985. _21 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  986. _23 = ~uxBitsToClear_22;
  987. _24 = _21 & _23;
  988. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _24;
  989. # DEBUG BEGIN_STMT
  990. xTaskResumeAll ();
  991. # DEBUG BEGIN_STMT
  992. _25 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  993. return _25;
  994. }
  995. xEventGroupClearBits.part.0 (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  996. {
  997. struct EventGroup_t * pxEventBits;
  998. EventBits_t uxReturn;
  999. uint32_t ulNewBASEPRI;
  1000. uint32_t ulNewBASEPRI;
  1001. long unsigned int _4;
  1002. long unsigned int _5;
  1003. <bb 3> [local count: 1073741824]:
  1004. <bb 2> [local count: 1073741824]:
  1005. # DEBUG BEGIN_STMT
  1006. # DEBUG BEGIN_STMT
  1007. vPortEnterCritical ();
  1008. # DEBUG BEGIN_STMT
  1009. # DEBUG BEGIN_STMT
  1010. uxReturn_2 = MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  1011. # DEBUG uxReturn => uxReturn_2
  1012. # DEBUG BEGIN_STMT
  1013. _4 = ~uxBitsToClear_3(D);
  1014. _5 = uxReturn_2 & _4;
  1015. MEM[(struct EventGroup_t *)xEventGroup_1(D)].uxEventBits = _5;
  1016. # DEBUG BEGIN_STMT
  1017. vPortExitCritical ();
  1018. # DEBUG BEGIN_STMT
  1019. return uxReturn_2;
  1020. }
  1021. vEventGroupSetNumber (void * xEventGroup, UBaseType_t uxEventGroupNumber)
  1022. {
  1023. <bb 2> [local count: 1073741824]:
  1024. # DEBUG BEGIN_STMT
  1025. MEM[(struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber = uxEventGroupNumber_3(D);
  1026. return;
  1027. }
  1028. uxEventGroupGetNumber (void * xEventGroup)
  1029. {
  1030. UBaseType_t xReturn;
  1031. <bb 2> [local count: 1073741824]:
  1032. # DEBUG BEGIN_STMT
  1033. # DEBUG BEGIN_STMT
  1034. # DEBUG pxEventBits => xEventGroup_2(D)
  1035. # DEBUG BEGIN_STMT
  1036. if (xEventGroup_2(D) == 0B)
  1037. goto <bb 4>; [30.00%]
  1038. else
  1039. goto <bb 3>; [70.00%]
  1040. <bb 3> [local count: 751619278]:
  1041. # DEBUG BEGIN_STMT
  1042. xReturn_4 = MEM[(const struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber;
  1043. # DEBUG xReturn => xReturn_4
  1044. <bb 4> [local count: 1073741824]:
  1045. # xReturn_1 = PHI <0(2), xReturn_4(3)>
  1046. # DEBUG xReturn => xReturn_1
  1047. # DEBUG BEGIN_STMT
  1048. return xReturn_1;
  1049. }
  1050. xEventGroupSetBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, BaseType_t * pxHigherPriorityTaskWoken)
  1051. {
  1052. BaseType_t xReturn;
  1053. <bb 2> [local count: 1073741824]:
  1054. # DEBUG BEGIN_STMT
  1055. # DEBUG BEGIN_STMT
  1056. # DEBUG BEGIN_STMT
  1057. xReturn_6 = xTimerPendFunctionCallFromISR (vEventGroupSetBitsCallback, xEventGroup_2(D), uxBitsToSet_3(D), pxHigherPriorityTaskWoken_4(D));
  1058. # DEBUG xReturn => xReturn_6
  1059. # DEBUG BEGIN_STMT
  1060. return xReturn_6;
  1061. }
  1062. prvTestWaitCondition (const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits)
  1063. {
  1064. BaseType_t xWaitConditionMet;
  1065. long unsigned int _1;
  1066. long unsigned int _2;
  1067. <bb 2> [local count: 1073741824]:
  1068. # DEBUG BEGIN_STMT
  1069. # DEBUG xWaitConditionMet => 0
  1070. # DEBUG BEGIN_STMT
  1071. if (xWaitForAllBits_4(D) == 0)
  1072. goto <bb 3>; [50.00%]
  1073. else
  1074. goto <bb 5>; [50.00%]
  1075. <bb 3> [local count: 536870913]:
  1076. # DEBUG BEGIN_STMT
  1077. _1 = uxCurrentEventBits_5(D) & uxBitsToWaitFor_6(D);
  1078. if (_1 != 0)
  1079. goto <bb 4>; [50.00%]
  1080. else
  1081. goto <bb 7>; [50.00%]
  1082. <bb 4> [local count: 268435456]:
  1083. # DEBUG BEGIN_STMT
  1084. # DEBUG xWaitConditionMet => 1
  1085. goto <bb 7>; [100.00%]
  1086. <bb 5> [local count: 536870913]:
  1087. # DEBUG BEGIN_STMT
  1088. _2 = uxCurrentEventBits_5(D) & uxBitsToWaitFor_6(D);
  1089. if (_2 == uxBitsToWaitFor_6(D))
  1090. goto <bb 6>; [34.00%]
  1091. else
  1092. goto <bb 7>; [66.00%]
  1093. <bb 6> [local count: 182536110]:
  1094. # DEBUG BEGIN_STMT
  1095. # DEBUG xWaitConditionMet => 1
  1096. <bb 7> [local count: 1073741824]:
  1097. # xWaitConditionMet_3 = PHI <1(4), 0(5), 1(6), 0(3)>
  1098. # DEBUG xWaitConditionMet => xWaitConditionMet_3
  1099. # DEBUG BEGIN_STMT
  1100. # DEBUG BEGIN_STMT
  1101. return xWaitConditionMet_3;
  1102. }
  1103. vEventGroupClearBitsCallback (void * pvEventGroup, const uint32_t ulBitsToClear)
  1104. {
  1105. <bb 2> [local count: 1073741824]:
  1106. # DEBUG BEGIN_STMT
  1107. xEventGroupClearBits (pvEventGroup_2(D), ulBitsToClear_3(D));
  1108. return;
  1109. }
  1110. vEventGroupSetBitsCallback (void * pvEventGroup, const uint32_t ulBitsToSet)
  1111. {
  1112. <bb 2> [local count: 1073741824]:
  1113. # DEBUG BEGIN_STMT
  1114. xEventGroupSetBits (pvEventGroup_2(D), ulBitsToSet_3(D));
  1115. return;
  1116. }
  1117. vEventGroupDelete (struct EventGroupDef_t * xEventGroup)
  1118. {
  1119. uint32_t ulNewBASEPRI;
  1120. uint32_t ulNewBASEPRI;
  1121. struct xLIST_ITEM * _1;
  1122. const struct MiniListItem_t * _2;
  1123. long unsigned int _3;
  1124. <bb 2> [local count: 230763]:
  1125. # DEBUG BEGIN_STMT
  1126. if (xEventGroup_5(D) == 0B)
  1127. goto <bb 3>; [46.53%]
  1128. else
  1129. goto <bb 5>; [53.47%]
  1130. <bb 3> [local count: 107374]:
  1131. # DEBUG BEGIN_STMT
  1132. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1133. # DEBUG BEGIN_STMT
  1134. # DEBUG BEGIN_STMT
  1135. __asm__ __volatile__(" mov %0, %1
  1136. msr basepri, %0
  1137. isb
  1138. dsb
  1139. " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
  1140. # DEBUG ulNewBASEPRI => ulNewBASEPRI_11
  1141. <bb 4> [local count: 1073741824]:
  1142. # DEBUG ulNewBASEPRI => NULL
  1143. # DEBUG BEGIN_STMT
  1144. # DEBUG BEGIN_STMT
  1145. # DEBUG BEGIN_STMT
  1146. <bb 12> [local count: 1073741824]:
  1147. goto <bb 4>; [100.00%]
  1148. <bb 5> [local count: 123389]:
  1149. # DEBUG BEGIN_STMT
  1150. # DEBUG BEGIN_STMT
  1151. # DEBUG pxEventBits => xEventGroup_5(D)
  1152. # DEBUG BEGIN_STMT
  1153. # DEBUG D#2 => &MEM[(struct EventGroup_t *)xEventGroup_5(D)].xTasksWaitingForBits
  1154. # DEBUG pxTasksWaitingForBits => D#2
  1155. # DEBUG BEGIN_STMT
  1156. vTaskSuspendAll ();
  1157. # DEBUG BEGIN_STMT
  1158. # DEBUG BEGIN_STMT
  1159. goto <bb 10>; [100.00%]
  1160. <bb 6> [local count: 1089998]:
  1161. # DEBUG BEGIN_STMT
  1162. _1 = MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd.pxNext;
  1163. _2 = &MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd;
  1164. if (_1 == _2)
  1165. goto <bb 7>; [5.50%]
  1166. else
  1167. goto <bb 9>; [94.50%]
  1168. <bb 7> [local count: 59950]:
  1169. # DEBUG BEGIN_STMT
  1170. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1171. # DEBUG BEGIN_STMT
  1172. # DEBUG BEGIN_STMT
  1173. __asm__ __volatile__(" mov %0, %1
  1174. msr basepri, %0
  1175. isb
  1176. dsb
  1177. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  1178. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  1179. <bb 8> [local count: 599500022]:
  1180. # DEBUG ulNewBASEPRI => NULL
  1181. # DEBUG BEGIN_STMT
  1182. # DEBUG BEGIN_STMT
  1183. # DEBUG BEGIN_STMT
  1184. <bb 13> [local count: 599500022]:
  1185. goto <bb 8>; [100.00%]
  1186. <bb 9> [local count: 1030048]:
  1187. # DEBUG BEGIN_STMT
  1188. # DEBUG BEGIN_STMT
  1189. vTaskRemoveFromUnorderedEventList (_1, 33554432);
  1190. <bb 10> [local count: 1153437]:
  1191. # DEBUG BEGIN_STMT
  1192. _3 ={v} MEM[(const struct List_t *)xEventGroup_5(D) + 4B].uxNumberOfItems;
  1193. if (_3 != 0)
  1194. goto <bb 6>; [94.50%]
  1195. else
  1196. goto <bb 11>; [5.50%]
  1197. <bb 11> [local count: 63439]:
  1198. # DEBUG BEGIN_STMT
  1199. vPortFree (xEventGroup_5(D));
  1200. # DEBUG BEGIN_STMT
  1201. xTaskResumeAll ();
  1202. return;
  1203. }
  1204. xEventGroupSetBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
  1205. {
  1206. EventBits_t D.6634;
  1207. uint32_t ulNewBASEPRI;
  1208. uint32_t ulNewBASEPRI;
  1209. long unsigned int _1;
  1210. <bb 2> [local count: 228942]:
  1211. # DEBUG BEGIN_STMT
  1212. # DEBUG BEGIN_STMT
  1213. # DEBUG BEGIN_STMT
  1214. # DEBUG BEGIN_STMT
  1215. # DEBUG uxBitsToClear => 0
  1216. # DEBUG BEGIN_STMT
  1217. # DEBUG pxEventBits => xEventGroup_3(D)
  1218. # DEBUG BEGIN_STMT
  1219. # DEBUG xMatchFound => 0
  1220. # DEBUG BEGIN_STMT
  1221. if (xEventGroup_3(D) == 0B)
  1222. goto <bb 3>; [30.00%]
  1223. else
  1224. goto <bb 5>; [70.00%]
  1225. <bb 3> [local count: 68683]:
  1226. # DEBUG BEGIN_STMT
  1227. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1228. # DEBUG BEGIN_STMT
  1229. # DEBUG BEGIN_STMT
  1230. __asm__ __volatile__(" mov %0, %1
  1231. msr basepri, %0
  1232. isb
  1233. dsb
  1234. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1235. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1236. <bb 4> [local count: 686828460]:
  1237. # DEBUG ulNewBASEPRI => NULL
  1238. # DEBUG BEGIN_STMT
  1239. # DEBUG BEGIN_STMT
  1240. # DEBUG BEGIN_STMT
  1241. <bb 9> [local count: 686828460]:
  1242. goto <bb 4>; [100.00%]
  1243. <bb 5> [local count: 160260]:
  1244. # DEBUG BEGIN_STMT
  1245. # DEBUG BEGIN_STMT
  1246. _1 = uxBitsToSet_4(D) & 4278190080;
  1247. if (_1 != 0)
  1248. goto <bb 6>; [67.00%]
  1249. else
  1250. goto <bb 8>; [33.00%]
  1251. <bb 6> [local count: 107374]:
  1252. # DEBUG BEGIN_STMT
  1253. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1254. # DEBUG BEGIN_STMT
  1255. # DEBUG BEGIN_STMT
  1256. __asm__ __volatile__(" mov %0, %1
  1257. msr basepri, %0
  1258. isb
  1259. dsb
  1260. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1261. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1262. <bb 7> [local count: 1073741824]:
  1263. # DEBUG ulNewBASEPRI => NULL
  1264. # DEBUG BEGIN_STMT
  1265. # DEBUG BEGIN_STMT
  1266. # DEBUG BEGIN_STMT
  1267. <bb 10> [local count: 1073741824]:
  1268. goto <bb 7>; [100.00%]
  1269. <bb 8> [local count: 52886]:
  1270. _6 = xEventGroupSetBits.part.0 (xEventGroup_3(D), uxBitsToSet_4(D));
  1271. return _6;
  1272. }
  1273. xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
  1274. {
  1275. uint32_t ulOriginalBASEPRI;
  1276. uint32_t ulNewBASEPRI;
  1277. EventBits_t uxReturn;
  1278. <bb 2> [local count: 1073741824]:
  1279. # DEBUG BEGIN_STMT
  1280. # DEBUG BEGIN_STMT
  1281. # DEBUG pxEventBits => xEventGroup_1(D)
  1282. # DEBUG BEGIN_STMT
  1283. # DEBUG BEGIN_STMT
  1284. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  1285. # DEBUG BEGIN_STMT
  1286. # DEBUG BEGIN_STMT
  1287. __asm__ __volatile__(" mrs %0, basepri
  1288. mov %1, %2
  1289. msr basepri, %1
  1290. isb
  1291. dsb
  1292. " : "=r" ulOriginalBASEPRI_4, "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  1293. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  1294. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_4
  1295. # DEBUG BEGIN_STMT
  1296. # DEBUG ulNewBASEPRI => NULL
  1297. # DEBUG ulOriginalBASEPRI => NULL
  1298. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_4
  1299. # DEBUG BEGIN_STMT
  1300. uxReturn_3 = MEM[(const struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  1301. # DEBUG uxReturn => uxReturn_3
  1302. # DEBUG BEGIN_STMT
  1303. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_4
  1304. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  1305. # DEBUG BEGIN_STMT
  1306. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_4 : "memory");
  1307. # DEBUG ulNewMaskValue => NULL
  1308. # DEBUG BEGIN_STMT
  1309. return uxReturn_3;
  1310. }
  1311. xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  1312. {
  1313. BaseType_t xReturn;
  1314. <bb 2> [local count: 1073741824]:
  1315. # DEBUG BEGIN_STMT
  1316. # DEBUG BEGIN_STMT
  1317. # DEBUG BEGIN_STMT
  1318. xReturn_5 = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup_2(D), uxBitsToClear_3(D), 0B);
  1319. # DEBUG xReturn => xReturn_5
  1320. # DEBUG BEGIN_STMT
  1321. return xReturn_5;
  1322. }
  1323. xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
  1324. {
  1325. EventBits_t D.6607;
  1326. uint32_t ulNewBASEPRI;
  1327. uint32_t ulNewBASEPRI;
  1328. long unsigned int _1;
  1329. <bb 2> [local count: 228942]:
  1330. # DEBUG BEGIN_STMT
  1331. # DEBUG pxEventBits => xEventGroup_3(D)
  1332. # DEBUG BEGIN_STMT
  1333. # DEBUG BEGIN_STMT
  1334. if (xEventGroup_3(D) == 0B)
  1335. goto <bb 3>; [30.00%]
  1336. else
  1337. goto <bb 5>; [70.00%]
  1338. <bb 3> [local count: 68683]:
  1339. # DEBUG BEGIN_STMT
  1340. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1341. # DEBUG BEGIN_STMT
  1342. # DEBUG BEGIN_STMT
  1343. __asm__ __volatile__(" mov %0, %1
  1344. msr basepri, %0
  1345. isb
  1346. dsb
  1347. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1348. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1349. <bb 4> [local count: 686828460]:
  1350. # DEBUG ulNewBASEPRI => NULL
  1351. # DEBUG BEGIN_STMT
  1352. # DEBUG BEGIN_STMT
  1353. # DEBUG BEGIN_STMT
  1354. <bb 9> [local count: 686828460]:
  1355. goto <bb 4>; [100.00%]
  1356. <bb 5> [local count: 160260]:
  1357. # DEBUG BEGIN_STMT
  1358. # DEBUG BEGIN_STMT
  1359. _1 = uxBitsToClear_5(D) & 4278190080;
  1360. if (_1 != 0)
  1361. goto <bb 6>; [67.00%]
  1362. else
  1363. goto <bb 8>; [33.00%]
  1364. <bb 6> [local count: 107374]:
  1365. # DEBUG BEGIN_STMT
  1366. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1367. # DEBUG BEGIN_STMT
  1368. # DEBUG BEGIN_STMT
  1369. __asm__ __volatile__(" mov %0, %1
  1370. msr basepri, %0
  1371. isb
  1372. dsb
  1373. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1374. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1375. <bb 7> [local count: 1073741824]:
  1376. # DEBUG ulNewBASEPRI => NULL
  1377. # DEBUG BEGIN_STMT
  1378. # DEBUG BEGIN_STMT
  1379. # DEBUG BEGIN_STMT
  1380. <bb 10> [local count: 1073741824]:
  1381. goto <bb 7>; [100.00%]
  1382. <bb 8> [local count: 52886]:
  1383. _2 = xEventGroupClearBits.part.0 (xEventGroup_3(D), uxBitsToClear_5(D));
  1384. return _2;
  1385. }
  1386. xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
  1387. {
  1388. uint32_t ulNewBASEPRI;
  1389. uint32_t ulNewBASEPRI;
  1390. uint32_t ulNewBASEPRI;
  1391. uint32_t ulNewBASEPRI;
  1392. const EventBits_t uxCurrentEventBits;
  1393. BaseType_t xAlreadyYielded;
  1394. BaseType_t xWaitConditionMet;
  1395. EventBits_t uxControlBits;
  1396. EventBits_t uxReturn;
  1397. long unsigned int _1;
  1398. long int _2;
  1399. long unsigned int _3;
  1400. long unsigned int _4;
  1401. struct List_t * _5;
  1402. long unsigned int _6;
  1403. long unsigned int _7;
  1404. long int _8;
  1405. long unsigned int _9;
  1406. long unsigned int _10;
  1407. <bb 2> [local count: 306783]:
  1408. # DEBUG BEGIN_STMT
  1409. # DEBUG pxEventBits => xEventGroup_22(D)
  1410. # DEBUG BEGIN_STMT
  1411. # DEBUG uxControlBits => 0
  1412. # DEBUG BEGIN_STMT
  1413. # DEBUG BEGIN_STMT
  1414. # DEBUG xTimeoutOccurred => 0
  1415. # DEBUG BEGIN_STMT
  1416. if (xEventGroup_22(D) == 0B)
  1417. goto <bb 3>; [30.00%]
  1418. else
  1419. goto <bb 5>; [70.00%]
  1420. <bb 3> [local count: 92035]:
  1421. # DEBUG BEGIN_STMT
  1422. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1423. # DEBUG BEGIN_STMT
  1424. # DEBUG BEGIN_STMT
  1425. __asm__ __volatile__(" mov %0, %1
  1426. msr basepri, %0
  1427. isb
  1428. dsb
  1429. " : "=r" ulNewBASEPRI_45 : "i" 16 : "memory");
  1430. # DEBUG ulNewBASEPRI => ulNewBASEPRI_45
  1431. <bb 4> [local count: 920350133]:
  1432. # DEBUG ulNewBASEPRI => NULL
  1433. # DEBUG BEGIN_STMT
  1434. # DEBUG BEGIN_STMT
  1435. # DEBUG BEGIN_STMT
  1436. <bb 34> [local count: 920350133]:
  1437. goto <bb 4>; [100.00%]
  1438. <bb 5> [local count: 214748]:
  1439. # DEBUG BEGIN_STMT
  1440. # DEBUG BEGIN_STMT
  1441. _1 = uxBitsToWaitFor_23(D) & 4278190080;
  1442. if (_1 != 0)
  1443. goto <bb 6>; [50.00%]
  1444. else
  1445. goto <bb 8>; [50.00%]
  1446. <bb 6> [local count: 107374]:
  1447. # DEBUG BEGIN_STMT
  1448. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1449. # DEBUG BEGIN_STMT
  1450. # DEBUG BEGIN_STMT
  1451. __asm__ __volatile__(" mov %0, %1
  1452. msr basepri, %0
  1453. isb
  1454. dsb
  1455. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  1456. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  1457. <bb 7> [local count: 1073741823]:
  1458. # DEBUG ulNewBASEPRI => NULL
  1459. # DEBUG BEGIN_STMT
  1460. # DEBUG BEGIN_STMT
  1461. # DEBUG BEGIN_STMT
  1462. <bb 35> [local count: 1073741824]:
  1463. goto <bb 7>; [100.00%]
  1464. <bb 8> [local count: 107374]:
  1465. # DEBUG BEGIN_STMT
  1466. # DEBUG BEGIN_STMT
  1467. if (uxBitsToWaitFor_23(D) == 0)
  1468. goto <bb 9>; [67.00%]
  1469. else
  1470. goto <bb 11>; [33.00%]
  1471. <bb 9> [local count: 71941]:
  1472. # DEBUG BEGIN_STMT
  1473. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1474. # DEBUG BEGIN_STMT
  1475. # DEBUG BEGIN_STMT
  1476. __asm__ __volatile__(" mov %0, %1
  1477. msr basepri, %0
  1478. isb
  1479. dsb
  1480. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  1481. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  1482. <bb 10> [local count: 719407021]:
  1483. # DEBUG ulNewBASEPRI => NULL
  1484. # DEBUG BEGIN_STMT
  1485. # DEBUG BEGIN_STMT
  1486. # DEBUG BEGIN_STMT
  1487. <bb 36> [local count: 719407021]:
  1488. goto <bb 10>; [100.00%]
  1489. <bb 11> [local count: 35433]:
  1490. # DEBUG BEGIN_STMT
  1491. # DEBUG BEGIN_STMT
  1492. _2 = xTaskGetSchedulerState ();
  1493. if (_2 != 0)
  1494. goto <bb 15>; [33.00%]
  1495. else
  1496. goto <bb 12>; [67.00%]
  1497. <bb 12> [local count: 23740]:
  1498. if (xTicksToWait_26(D) == 0)
  1499. goto <bb 15>; [50.00%]
  1500. else
  1501. goto <bb 13>; [50.00%]
  1502. <bb 13> [local count: 11870]:
  1503. # DEBUG BEGIN_STMT
  1504. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1505. # DEBUG BEGIN_STMT
  1506. # DEBUG BEGIN_STMT
  1507. __asm__ __volatile__(" mov %0, %1
  1508. msr basepri, %0
  1509. isb
  1510. dsb
  1511. " : "=r" ulNewBASEPRI_50 : "i" 16 : "memory");
  1512. # DEBUG ulNewBASEPRI => ulNewBASEPRI_50
  1513. <bb 14> [local count: 118702158]:
  1514. # DEBUG ulNewBASEPRI => NULL
  1515. # DEBUG BEGIN_STMT
  1516. # DEBUG BEGIN_STMT
  1517. # DEBUG BEGIN_STMT
  1518. <bb 37> [local count: 118702158]:
  1519. goto <bb 14>; [100.00%]
  1520. <bb 15> [local count: 23563]:
  1521. # DEBUG BEGIN_STMT
  1522. # DEBUG BEGIN_STMT
  1523. vTaskSuspendAll ();
  1524. # DEBUG BEGIN_STMT
  1525. uxCurrentEventBits_28 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  1526. # DEBUG uxCurrentEventBits => uxCurrentEventBits_28
  1527. # DEBUG BEGIN_STMT
  1528. xWaitConditionMet_31 = prvTestWaitCondition (uxCurrentEventBits_28, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  1529. # DEBUG xWaitConditionMet => xWaitConditionMet_31
  1530. # DEBUG BEGIN_STMT
  1531. if (xWaitConditionMet_31 != 0)
  1532. goto <bb 16>; [50.00%]
  1533. else
  1534. goto <bb 18>; [50.00%]
  1535. <bb 16> [local count: 11782]:
  1536. # DEBUG BEGIN_STMT
  1537. # DEBUG uxReturn => uxCurrentEventBits_28
  1538. # DEBUG BEGIN_STMT
  1539. # DEBUG xTicksToWait => 0
  1540. # DEBUG BEGIN_STMT
  1541. if (xClearOnExit_32(D) != 0)
  1542. goto <bb 17>; [50.00%]
  1543. else
  1544. goto <bb 24>; [50.00%]
  1545. <bb 17> [local count: 5891]:
  1546. # DEBUG BEGIN_STMT
  1547. _3 = ~uxBitsToWaitFor_23(D);
  1548. _4 = _3 & uxCurrentEventBits_28;
  1549. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _4;
  1550. goto <bb 24>; [100.00%]
  1551. <bb 18> [local count: 11782]:
  1552. # DEBUG BEGIN_STMT
  1553. if (xTicksToWait_26(D) == 0)
  1554. goto <bb 24>; [50.00%]
  1555. else
  1556. goto <bb 19>; [50.00%]
  1557. <bb 19> [local count: 5891]:
  1558. # DEBUG BEGIN_STMT
  1559. if (xClearOnExit_32(D) != 0)
  1560. goto <bb 20>; [50.00%]
  1561. else
  1562. goto <bb 21>; [50.00%]
  1563. <bb 20> [local count: 2945]:
  1564. # DEBUG BEGIN_STMT
  1565. # DEBUG uxControlBits => 16777216
  1566. <bb 21> [local count: 5891]:
  1567. # uxControlBits_15 = PHI <0(19), 16777216(20)>
  1568. # DEBUG uxControlBits => uxControlBits_15
  1569. # DEBUG BEGIN_STMT
  1570. # DEBUG BEGIN_STMT
  1571. if (xWaitForAllBits_29(D) != 0)
  1572. goto <bb 22>; [50.00%]
  1573. else
  1574. goto <bb 23>; [50.00%]
  1575. <bb 22> [local count: 2945]:
  1576. # DEBUG BEGIN_STMT
  1577. uxControlBits_33 = uxControlBits_15 | 67108864;
  1578. # DEBUG uxControlBits => uxControlBits_33
  1579. <bb 23> [local count: 5891]:
  1580. # uxControlBits_16 = PHI <uxControlBits_15(21), uxControlBits_33(22)>
  1581. # DEBUG uxControlBits => uxControlBits_16
  1582. # DEBUG BEGIN_STMT
  1583. # DEBUG BEGIN_STMT
  1584. _5 = &MEM[(struct EventGroup_t *)xEventGroup_22(D)].xTasksWaitingForBits;
  1585. _6 = uxControlBits_16 | uxBitsToWaitFor_23(D);
  1586. vTaskPlaceOnUnorderedEventList (_5, _6, xTicksToWait_26(D));
  1587. # DEBUG BEGIN_STMT
  1588. # DEBUG uxReturn => 0
  1589. <bb 24> [local count: 23563]:
  1590. # xTicksToWait_11 = PHI <0(17), xTicksToWait_26(D)(18), xTicksToWait_26(D)(23), 0(16)>
  1591. # uxReturn_12 = PHI <uxCurrentEventBits_28(17), uxCurrentEventBits_28(18), 0(23), uxCurrentEventBits_28(16)>
  1592. # DEBUG xTimeoutOccurred => NULL
  1593. # DEBUG uxReturn => uxReturn_12
  1594. # DEBUG xTicksToWait => xTicksToWait_11
  1595. # DEBUG BEGIN_STMT
  1596. # DEBUG BEGIN_STMT
  1597. xAlreadyYielded_37 = xTaskResumeAll ();
  1598. # DEBUG xAlreadyYielded => xAlreadyYielded_37
  1599. # DEBUG BEGIN_STMT
  1600. if (xTicksToWait_11 != 0)
  1601. goto <bb 25>; [50.00%]
  1602. else
  1603. goto <bb 33>; [50.00%]
  1604. <bb 25> [local count: 11782]:
  1605. # DEBUG BEGIN_STMT
  1606. if (xAlreadyYielded_37 == 0)
  1607. goto <bb 26>; [50.00%]
  1608. else
  1609. goto <bb 27>; [50.00%]
  1610. <bb 26> [local count: 5891]:
  1611. # DEBUG BEGIN_STMT
  1612. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1613. # DEBUG BEGIN_STMT
  1614. __asm__ __volatile__("dsb" : : : "memory");
  1615. # DEBUG BEGIN_STMT
  1616. __asm__ __volatile__("isb");
  1617. # DEBUG BEGIN_STMT
  1618. <bb 27> [local count: 11782]:
  1619. # DEBUG BEGIN_STMT
  1620. # DEBUG BEGIN_STMT
  1621. uxReturn_42 = uxTaskResetEventItemValue ();
  1622. # DEBUG uxReturn => uxReturn_42
  1623. # DEBUG BEGIN_STMT
  1624. _7 = uxReturn_42 & 33554432;
  1625. if (_7 == 0)
  1626. goto <bb 28>; [33.00%]
  1627. else
  1628. goto <bb 32>; [67.00%]
  1629. <bb 28> [local count: 3888]:
  1630. # DEBUG BEGIN_STMT
  1631. vPortEnterCritical ();
  1632. # DEBUG BEGIN_STMT
  1633. uxReturn_44 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  1634. # DEBUG uxReturn => uxReturn_44
  1635. # DEBUG BEGIN_STMT
  1636. _8 = prvTestWaitCondition (uxReturn_44, uxBitsToWaitFor_23(D), xWaitForAllBits_29(D));
  1637. if (_8 != 0)
  1638. goto <bb 29>; [50.00%]
  1639. else
  1640. goto <bb 31>; [50.00%]
  1641. <bb 29> [local count: 1944]:
  1642. # DEBUG BEGIN_STMT
  1643. if (xClearOnExit_32(D) != 0)
  1644. goto <bb 30>; [50.00%]
  1645. else
  1646. goto <bb 31>; [50.00%]
  1647. <bb 30> [local count: 972]:
  1648. # DEBUG BEGIN_STMT
  1649. _9 = ~uxBitsToWaitFor_23(D);
  1650. _10 = _9 & uxReturn_44;
  1651. MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _10;
  1652. <bb 31> [local count: 3888]:
  1653. # DEBUG BEGIN_STMT
  1654. # DEBUG BEGIN_STMT
  1655. # DEBUG xTimeoutOccurred => 1
  1656. # DEBUG BEGIN_STMT
  1657. vPortExitCritical ();
  1658. <bb 32> [local count: 11782]:
  1659. # uxReturn_13 = PHI <uxReturn_42(27), uxReturn_44(31)>
  1660. # DEBUG uxReturn => uxReturn_13
  1661. # DEBUG BEGIN_STMT
  1662. # DEBUG BEGIN_STMT
  1663. uxReturn_48 = uxReturn_13 & 16777215;
  1664. # DEBUG uxReturn => uxReturn_48
  1665. <bb 33> [local count: 23563]:
  1666. # uxReturn_14 = PHI <uxReturn_12(24), uxReturn_48(32)>
  1667. # DEBUG uxReturn => uxReturn_14
  1668. # DEBUG BEGIN_STMT
  1669. # DEBUG BEGIN_STMT
  1670. # DEBUG BEGIN_STMT
  1671. return uxReturn_14;
  1672. }
  1673. xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
  1674. {
  1675. uint32_t ulNewBASEPRI;
  1676. uint32_t ulNewBASEPRI;
  1677. uint32_t ulNewBASEPRI;
  1678. BaseType_t xAlreadyYielded;
  1679. EventBits_t uxReturn;
  1680. EventBits_t uxOriginalBitValue;
  1681. long unsigned int _1;
  1682. long int _2;
  1683. long unsigned int _3;
  1684. long unsigned int _4;
  1685. long unsigned int _5;
  1686. long unsigned int _6;
  1687. long unsigned int _7;
  1688. struct List_t * _8;
  1689. long unsigned int _9;
  1690. long unsigned int _10;
  1691. long unsigned int _11;
  1692. long unsigned int _12;
  1693. long unsigned int _13;
  1694. <bb 2> [local count: 214748]:
  1695. # DEBUG BEGIN_STMT
  1696. # DEBUG BEGIN_STMT
  1697. # DEBUG pxEventBits => xEventGroup_23(D)
  1698. # DEBUG BEGIN_STMT
  1699. # DEBUG BEGIN_STMT
  1700. # DEBUG xTimeoutOccurred => 0
  1701. # DEBUG BEGIN_STMT
  1702. _1 = uxBitsToWaitFor_24(D) & 4278190080;
  1703. if (_1 != 0)
  1704. goto <bb 3>; [50.00%]
  1705. else
  1706. goto <bb 5>; [50.00%]
  1707. <bb 3> [local count: 107374]:
  1708. # DEBUG BEGIN_STMT
  1709. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1710. # DEBUG BEGIN_STMT
  1711. # DEBUG BEGIN_STMT
  1712. __asm__ __volatile__(" mov %0, %1
  1713. msr basepri, %0
  1714. isb
  1715. dsb
  1716. " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory");
  1717. # DEBUG ulNewBASEPRI => ulNewBASEPRI_47
  1718. <bb 4> [local count: 1073741824]:
  1719. # DEBUG ulNewBASEPRI => NULL
  1720. # DEBUG BEGIN_STMT
  1721. # DEBUG BEGIN_STMT
  1722. # DEBUG BEGIN_STMT
  1723. <bb 26> [local count: 1073741824]:
  1724. goto <bb 4>; [100.00%]
  1725. <bb 5> [local count: 107374]:
  1726. # DEBUG BEGIN_STMT
  1727. # DEBUG BEGIN_STMT
  1728. if (uxBitsToWaitFor_24(D) == 0)
  1729. goto <bb 6>; [67.00%]
  1730. else
  1731. goto <bb 8>; [33.00%]
  1732. <bb 6> [local count: 71941]:
  1733. # DEBUG BEGIN_STMT
  1734. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1735. # DEBUG BEGIN_STMT
  1736. # DEBUG BEGIN_STMT
  1737. __asm__ __volatile__(" mov %0, %1
  1738. msr basepri, %0
  1739. isb
  1740. dsb
  1741. " : "=r" ulNewBASEPRI_48 : "i" 16 : "memory");
  1742. # DEBUG ulNewBASEPRI => ulNewBASEPRI_48
  1743. <bb 7> [local count: 719407023]:
  1744. # DEBUG ulNewBASEPRI => NULL
  1745. # DEBUG BEGIN_STMT
  1746. # DEBUG BEGIN_STMT
  1747. # DEBUG BEGIN_STMT
  1748. <bb 27> [local count: 719407023]:
  1749. goto <bb 7>; [100.00%]
  1750. <bb 8> [local count: 35433]:
  1751. # DEBUG BEGIN_STMT
  1752. # DEBUG BEGIN_STMT
  1753. _2 = xTaskGetSchedulerState ();
  1754. if (_2 != 0)
  1755. goto <bb 12>; [33.00%]
  1756. else
  1757. goto <bb 9>; [67.00%]
  1758. <bb 9> [local count: 23740]:
  1759. if (xTicksToWait_27(D) == 0)
  1760. goto <bb 12>; [50.00%]
  1761. else
  1762. goto <bb 10>; [50.00%]
  1763. <bb 10> [local count: 11870]:
  1764. # DEBUG BEGIN_STMT
  1765. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1766. # DEBUG BEGIN_STMT
  1767. # DEBUG BEGIN_STMT
  1768. __asm__ __volatile__(" mov %0, %1
  1769. msr basepri, %0
  1770. isb
  1771. dsb
  1772. " : "=r" ulNewBASEPRI_49 : "i" 16 : "memory");
  1773. # DEBUG ulNewBASEPRI => ulNewBASEPRI_49
  1774. <bb 11> [local count: 118702159]:
  1775. # DEBUG ulNewBASEPRI => NULL
  1776. # DEBUG BEGIN_STMT
  1777. # DEBUG BEGIN_STMT
  1778. # DEBUG BEGIN_STMT
  1779. <bb 28> [local count: 118702159]:
  1780. goto <bb 11>; [100.00%]
  1781. <bb 12> [local count: 23563]:
  1782. # DEBUG BEGIN_STMT
  1783. # DEBUG BEGIN_STMT
  1784. vTaskSuspendAll ();
  1785. # DEBUG BEGIN_STMT
  1786. uxOriginalBitValue_29 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1787. # DEBUG uxOriginalBitValue => uxOriginalBitValue_29
  1788. # DEBUG BEGIN_STMT
  1789. xEventGroupSetBits (xEventGroup_23(D), uxBitsToSet_30(D));
  1790. # DEBUG BEGIN_STMT
  1791. _3 = uxOriginalBitValue_29 | uxBitsToSet_30(D);
  1792. _4 = _3 & uxBitsToWaitFor_24(D);
  1793. if (_4 == uxBitsToWaitFor_24(D))
  1794. goto <bb 13>; [34.00%]
  1795. else
  1796. goto <bb 14>; [66.00%]
  1797. <bb 13> [local count: 8011]:
  1798. # DEBUG BEGIN_STMT
  1799. # DEBUG uxReturn => _3
  1800. # DEBUG BEGIN_STMT
  1801. _5 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1802. _6 = ~uxBitsToWaitFor_24(D);
  1803. _7 = _5 & _6;
  1804. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _7;
  1805. # DEBUG BEGIN_STMT
  1806. # DEBUG xTicksToWait => 0
  1807. goto <bb 17>; [100.00%]
  1808. <bb 14> [local count: 15552]:
  1809. # DEBUG BEGIN_STMT
  1810. if (xTicksToWait_27(D) != 0)
  1811. goto <bb 15>; [33.00%]
  1812. else
  1813. goto <bb 16>; [67.00%]
  1814. <bb 15> [local count: 5132]:
  1815. # DEBUG BEGIN_STMT
  1816. # DEBUG BEGIN_STMT
  1817. _8 = &MEM[(struct EventGroup_t *)xEventGroup_23(D)].xTasksWaitingForBits;
  1818. _9 = uxBitsToWaitFor_24(D) | 83886080;
  1819. vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait_27(D));
  1820. # DEBUG BEGIN_STMT
  1821. # DEBUG uxReturn => 0
  1822. goto <bb 17>; [100.00%]
  1823. <bb 16> [local count: 10420]:
  1824. # DEBUG BEGIN_STMT
  1825. uxReturn_32 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1826. # DEBUG uxReturn => uxReturn_32
  1827. # DEBUG BEGIN_STMT
  1828. # DEBUG xTimeoutOccurred => 1
  1829. <bb 17> [local count: 23563]:
  1830. # xTicksToWait_14 = PHI <0(13), xTicksToWait_27(D)(15), 0(16)>
  1831. # uxReturn_15 = PHI <_3(13), 0(15), uxReturn_32(16)>
  1832. # DEBUG uxReturn => uxReturn_15
  1833. # DEBUG xTicksToWait => xTicksToWait_14
  1834. # DEBUG BEGIN_STMT
  1835. xAlreadyYielded_36 = xTaskResumeAll ();
  1836. # DEBUG xAlreadyYielded => xAlreadyYielded_36
  1837. # DEBUG BEGIN_STMT
  1838. if (xTicksToWait_14 != 0)
  1839. goto <bb 18>; [50.00%]
  1840. else
  1841. goto <bb 25>; [50.00%]
  1842. <bb 18> [local count: 11782]:
  1843. # DEBUG BEGIN_STMT
  1844. if (xAlreadyYielded_36 == 0)
  1845. goto <bb 19>; [50.00%]
  1846. else
  1847. goto <bb 20>; [50.00%]
  1848. <bb 19> [local count: 5891]:
  1849. # DEBUG BEGIN_STMT
  1850. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  1851. # DEBUG BEGIN_STMT
  1852. __asm__ __volatile__("dsb" : : : "memory");
  1853. # DEBUG BEGIN_STMT
  1854. __asm__ __volatile__("isb");
  1855. # DEBUG BEGIN_STMT
  1856. <bb 20> [local count: 11782]:
  1857. # DEBUG BEGIN_STMT
  1858. # DEBUG BEGIN_STMT
  1859. uxReturn_41 = uxTaskResetEventItemValue ();
  1860. # DEBUG uxReturn => uxReturn_41
  1861. # DEBUG BEGIN_STMT
  1862. _10 = uxReturn_41 & 33554432;
  1863. if (_10 == 0)
  1864. goto <bb 21>; [33.00%]
  1865. else
  1866. goto <bb 24>; [67.00%]
  1867. <bb 21> [local count: 3888]:
  1868. # DEBUG BEGIN_STMT
  1869. vPortEnterCritical ();
  1870. # DEBUG BEGIN_STMT
  1871. uxReturn_43 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  1872. # DEBUG uxReturn => uxReturn_43
  1873. # DEBUG BEGIN_STMT
  1874. _11 = uxBitsToWaitFor_24(D) & uxReturn_43;
  1875. if (_11 == uxBitsToWaitFor_24(D))
  1876. goto <bb 22>; [34.00%]
  1877. else
  1878. goto <bb 23>; [66.00%]
  1879. <bb 22> [local count: 1322]:
  1880. # DEBUG BEGIN_STMT
  1881. _12 = ~uxBitsToWaitFor_24(D);
  1882. _13 = _12 & uxReturn_43;
  1883. MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _13;
  1884. <bb 23> [local count: 3888]:
  1885. # DEBUG BEGIN_STMT
  1886. # DEBUG BEGIN_STMT
  1887. vPortExitCritical ();
  1888. # DEBUG BEGIN_STMT
  1889. # DEBUG xTimeoutOccurred => 1
  1890. <bb 24> [local count: 11782]:
  1891. # uxReturn_16 = PHI <uxReturn_41(20), uxReturn_43(23)>
  1892. # DEBUG uxReturn => uxReturn_16
  1893. # DEBUG BEGIN_STMT
  1894. # DEBUG BEGIN_STMT
  1895. uxReturn_46 = uxReturn_16 & 16777215;
  1896. # DEBUG uxReturn => uxReturn_46
  1897. <bb 25> [local count: 23563]:
  1898. # uxReturn_17 = PHI <uxReturn_15(17), uxReturn_46(24)>
  1899. # DEBUG uxReturn => uxReturn_17
  1900. # DEBUG BEGIN_STMT
  1901. # DEBUG BEGIN_STMT
  1902. # DEBUG BEGIN_STMT
  1903. return uxReturn_17;
  1904. }
  1905. xEventGroupCreate ()
  1906. {
  1907. struct EventGroup_t * pxEventBits;
  1908. struct List_t * _1;
  1909. <bb 2> [local count: 1073741824]:
  1910. # DEBUG BEGIN_STMT
  1911. # DEBUG BEGIN_STMT
  1912. pxEventBits_5 = pvPortMalloc (28);
  1913. # DEBUG pxEventBits => pxEventBits_5
  1914. # DEBUG BEGIN_STMT
  1915. if (pxEventBits_5 != 0B)
  1916. goto <bb 3>; [53.47%]
  1917. else
  1918. goto <bb 4>; [46.53%]
  1919. <bb 3> [local count: 574129754]:
  1920. # DEBUG BEGIN_STMT
  1921. pxEventBits_5->uxEventBits = 0;
  1922. # DEBUG BEGIN_STMT
  1923. _1 = &pxEventBits_5->xTasksWaitingForBits;
  1924. vListInitialise (_1);
  1925. # DEBUG BEGIN_STMT
  1926. <bb 4> [local count: 1073741824]:
  1927. # DEBUG BEGIN_STMT
  1928. # DEBUG BEGIN_STMT
  1929. return pxEventBits_5;
  1930. }