timers.c.075i.fnsummary 89 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082
  1. Analyzing function: prvInsertTimerInActiveList.part.0/57
  2. ;; 1 loops found
  3. ;;
  4. ;; Loop 0
  5. ;; header 0, latch 1
  6. ;; depth 0, outer -1
  7. ;; nodes: 0 1 4 2 3
  8. ;; 4 succs { 2 }
  9. ;; 2 succs { 3 }
  10. ;; 3 succs { 1 }
  11. Analyzing function body size: prvInsertTimerInActiveList.part.0
  12. IPA function summary for prvInsertTimerInActiveList.part.0/57 inlinable
  13. global time: 15.000000
  14. self size: 7
  15. global size: 0
  16. min size: 0
  17. self stack: 0
  18. global stack: 0
  19. size:1.000000, time:1.000000
  20. size:3.000000, time:2.000000, executed if:(not inlined)
  21. calls:
  22. vListInsert/44 function body not available
  23. loop depth: 0 freq:1.00 size: 3 time: 12
  24. Analyzing function: vTimerSetTimerNumber/36
  25. ;; 1 loops found
  26. ;;
  27. ;; Loop 0
  28. ;; header 0, latch 1
  29. ;; depth 0, outer -1
  30. ;; nodes: 0 1 2
  31. ;; 2 succs { 1 }
  32. Analyzing function body size: vTimerSetTimerNumber
  33. IPA function summary for vTimerSetTimerNumber/36 inlinable
  34. global time: 3.000000
  35. self size: 4
  36. global size: 0
  37. min size: 0
  38. self stack: 0
  39. global stack: 0
  40. size:0.500000, time:0.500000
  41. size:3.500000, time:2.500000, executed if:(not inlined)
  42. calls:
  43. Analyzing function: uxTimerGetTimerNumber/35
  44. ;; 1 loops found
  45. ;;
  46. ;; Loop 0
  47. ;; header 0, latch 1
  48. ;; depth 0, outer -1
  49. ;; nodes: 0 1 2
  50. ;; 2 succs { 1 }
  51. Analyzing function body size: uxTimerGetTimerNumber
  52. IPA function summary for uxTimerGetTimerNumber/35 inlinable
  53. global time: 3.000000
  54. self size: 4
  55. global size: 0
  56. min size: 0
  57. self stack: 0
  58. global stack: 0
  59. size:0.000000, time:0.000000
  60. size:3.000000, time:2.000000, executed if:(not inlined)
  61. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 288] changed) && (not inlined)
  62. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 288] changed)
  63. calls:
  64. Analyzing function: xTimerPendFunctionCall/34
  65. ;; 2 loops found
  66. ;;
  67. ;; Loop 0
  68. ;; header 0, latch 1
  69. ;; depth 0, outer -1
  70. ;; nodes: 0 1 2 3 4 6 5
  71. ;;
  72. ;; Loop 1
  73. ;; header 4, latch 6
  74. ;; depth 1, outer 0
  75. ;; nodes: 4 6
  76. ;; 2 succs { 3 5 }
  77. ;; 3 succs { 4 }
  78. ;; 4 succs { 6 }
  79. ;; 6 succs { 4 }
  80. ;; 5 succs { 1 }
  81. Analyzing function body size: xTimerPendFunctionCall
  82. IPA function summary for xTimerPendFunctionCall/34 inlinable
  83. global time: 16.555202
  84. self size: 21
  85. global size: 0
  86. min size: 0
  87. self stack: 16
  88. global stack: 16
  89. size:12.000000, time:7.465300
  90. size:3.000000, time:1.069400, executed if:(not inlined)
  91. calls:
  92. xQueueGenericSend/55 function body not available
  93. loop depth: 0 freq:0.53 size: 6 time: 15
  94. op1 is compile time invariant
  95. op3 is compile time invariant
  96. Analyzing function: xTimerPendFunctionCallFromISR/33
  97. ;; 1 loops found
  98. ;;
  99. ;; Loop 0
  100. ;; header 0, latch 1
  101. ;; depth 0, outer -1
  102. ;; nodes: 0 1 2
  103. ;; 2 succs { 1 }
  104. Analyzing function body size: xTimerPendFunctionCallFromISR
  105. IPA function summary for xTimerPendFunctionCallFromISR/33 inlinable
  106. global time: 22.000000
  107. self size: 14
  108. global size: 0
  109. min size: 0
  110. self stack: 16
  111. global stack: 16
  112. size:5.000000, time:5.000000
  113. size:3.000000, time:2.000000, executed if:(not inlined)
  114. calls:
  115. xQueueGenericSendFromISR/56 function body not available
  116. loop depth: 0 freq:1.00 size: 6 time: 15
  117. op1 is compile time invariant
  118. op3 is compile time invariant
  119. Analyzing function: vTimerSetTimerID/32
  120. ;; 2 loops found
  121. ;;
  122. ;; Loop 0
  123. ;; header 0, latch 1
  124. ;; depth 0, outer -1
  125. ;; nodes: 0 1 2 3 4 6 5
  126. ;;
  127. ;; Loop 1
  128. ;; header 4, latch 6
  129. ;; depth 1, outer 0
  130. ;; nodes: 4 6
  131. ;; 2 succs { 3 5 }
  132. ;; 3 succs { 4 }
  133. ;; 4 succs { 6 }
  134. ;; 6 succs { 4 }
  135. ;; 5 succs { 1 }
  136. Analyzing function body size: vTimerSetTimerID
  137. IPA function summary for vTimerSetTimerID/32 inlinable
  138. global time: 16.624602
  139. self size: 13
  140. global size: 0
  141. min size: 0
  142. self stack: 0
  143. global stack: 0
  144. size:0.000000, time:0.000000
  145. size:2.000000, time:0.000000, executed if:(not inlined)
  146. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  147. size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined)
  148. size:0.500000, time:0.267350, executed if:(op0 != 0B)
  149. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  150. calls:
  151. vPortExitCritical/51 function body not available
  152. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  153. vPortEnterCritical/47 function body not available
  154. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  155. Analyzing function: pvTimerGetTimerID/31
  156. ;; 2 loops found
  157. ;;
  158. ;; Loop 0
  159. ;; header 0, latch 1
  160. ;; depth 0, outer -1
  161. ;; nodes: 0 1 2 3 4 6 5
  162. ;;
  163. ;; Loop 1
  164. ;; header 4, latch 6
  165. ;; depth 1, outer 0
  166. ;; nodes: 4 6
  167. ;; 2 succs { 3 5 }
  168. ;; 3 succs { 4 }
  169. ;; 4 succs { 6 }
  170. ;; 6 succs { 4 }
  171. ;; 5 succs { 1 }
  172. Analyzing function body size: pvTimerGetTimerID
  173. IPA function summary for pvTimerGetTimerID/31 inlinable
  174. global time: 16.624602
  175. self size: 13
  176. global size: 0
  177. min size: 0
  178. self stack: 0
  179. global stack: 0
  180. size:0.000000, time:0.000000
  181. size:2.000000, time:0.000000, executed if:(not inlined)
  182. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  183. size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined)
  184. size:0.500000, time:0.267350, executed if:(op0 != 0B)
  185. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  186. calls:
  187. vPortExitCritical/51 function body not available
  188. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  189. vPortEnterCritical/47 function body not available
  190. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  191. Analyzing function: xTimerIsTimerActive/30
  192. ;; 2 loops found
  193. ;;
  194. ;; Loop 0
  195. ;; header 0, latch 1
  196. ;; depth 0, outer -1
  197. ;; nodes: 0 1 2 3 4 6 5
  198. ;;
  199. ;; Loop 1
  200. ;; header 4, latch 6
  201. ;; depth 1, outer 0
  202. ;; nodes: 4 6
  203. ;; 2 succs { 3 5 }
  204. ;; 3 succs { 4 }
  205. ;; 4 succs { 6 }
  206. ;; 6 succs { 4 }
  207. ;; 5 succs { 1 }
  208. Analyzing function body size: xTimerIsTimerActive
  209. IPA function summary for xTimerIsTimerActive/30 inlinable
  210. global time: 17.159302
  211. self size: 14
  212. global size: 0
  213. min size: 0
  214. self stack: 0
  215. global stack: 0
  216. size:0.000000, time:0.000000
  217. size:2.000000, time:0.000000, executed if:(not inlined)
  218. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  219. size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined)
  220. size:1.500000, time:0.802050, executed if:(op0 != 0B)
  221. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  222. calls:
  223. vPortExitCritical/51 function body not available
  224. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  225. vPortEnterCritical/47 function body not available
  226. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  227. Analyzing function: prvCheckForValidListAndQueue/29
  228. ;; 1 loops found
  229. ;;
  230. ;; Loop 0
  231. ;; header 0, latch 1
  232. ;; depth 0, outer -1
  233. ;; nodes: 0 1 2 3 4 5
  234. ;; 2 succs { 3 5 }
  235. ;; 3 succs { 4 5 }
  236. ;; 4 succs { 5 }
  237. ;; 5 succs { 1 }
  238. Analyzing function body size: prvCheckForValidListAndQueue
  239. IPA function summary for prvCheckForValidListAndQueue/29 inlinable
  240. global time: 33.264679
  241. self size: 25
  242. global size: 0
  243. min size: 0
  244. self stack: 0
  245. global stack: 0
  246. size:8.000000, time:3.871500
  247. size:3.000000, time:2.000000, executed if:(not inlined)
  248. calls:
  249. vPortExitCritical/51 function body not available
  250. loop depth: 0 freq:1.00 size: 1 time: 10
  251. vQueueAddToRegistry/50 function body not available
  252. loop depth: 0 freq:0.09 size: 3 time: 12
  253. op1 is compile time invariant
  254. xQueueGenericCreate/49 function body not available
  255. loop depth: 0 freq:0.17 size: 5 time: 14
  256. op0 is compile time invariant
  257. op1 is compile time invariant
  258. op2 is compile time invariant
  259. vListInitialise/48 function body not available
  260. loop depth: 0 freq:0.17 size: 2 time: 11
  261. op0 is compile time invariant
  262. vListInitialise/48 function body not available
  263. loop depth: 0 freq:0.17 size: 2 time: 11
  264. op0 is compile time invariant
  265. vPortEnterCritical/47 function body not available
  266. loop depth: 0 freq:1.00 size: 1 time: 10
  267. Analyzing function: prvSwitchTimerLists/28
  268. ;; 2 loops found
  269. ;;
  270. ;; Loop 0
  271. ;; header 0, latch 1
  272. ;; depth 0, outer -1
  273. ;; nodes: 0 1 2 3 4 5
  274. ;;
  275. ;; Loop 1
  276. ;; header 4, latch 3
  277. ;; depth 1, outer 0
  278. ;; nodes: 4 3
  279. ;; 2 succs { 4 }
  280. ;; 3 succs { 4 }
  281. ;; 4 succs { 3 5 }
  282. ;; 5 succs { 1 }
  283. Analyzing function body size: prvSwitchTimerLists
  284. IPA function summary for prvSwitchTimerLists/28 inlinable
  285. global time: 154.636365
  286. self size: 15
  287. global size: 0
  288. min size: 0
  289. self stack: 0
  290. global stack: 0
  291. size:9.000000, time:55.545455
  292. size:3.000000, time:2.000000, executed if:(not inlined)
  293. calls:
  294. prvProcessExpiredTimer/21 function not considered for inlining
  295. loop depth: 1 freq:8.09 size: 3 time: 12
  296. op1 is compile time invariant
  297. Analyzing function: prvProcessReceivedCommands/27
  298. ;; 6 loops found
  299. ;;
  300. ;; Loop 0
  301. ;; header 0, latch 1
  302. ;; depth 0, outer -1
  303. ;; nodes: 0 1 2 3 4 5 29 6 7 8 28 9 10 11 12 13 14 15 16 17 27 18 19 20 21 22 23 24 25 26
  304. ;;
  305. ;; Loop 2
  306. ;; header 17, latch 27
  307. ;; depth 1, outer 0
  308. ;; nodes: 17 27
  309. ;;
  310. ;; Loop 1
  311. ;; header 23, latch 22
  312. ;; depth 1, outer 0
  313. ;; nodes: 23 22 20 13 9 21 18 14 8 6 7 5 3 4 25 24 29 28 15 19 11 12 10
  314. ;;
  315. ;; Loop 5
  316. ;; header 24, latch 28
  317. ;; depth 2, outer 1
  318. ;; nodes: 24 28 8 6 7 5 3 4 25 29
  319. ;;
  320. ;; Loop 4
  321. ;; header 25, latch 29
  322. ;; depth 3, outer 5
  323. ;; nodes: 25 29 5 3 4
  324. ;; 2 succs { 23 }
  325. ;; 3 succs { 4 5 }
  326. ;; 4 succs { 5 }
  327. ;; 5 succs { 6 29 }
  328. ;; 29 succs { 25 }
  329. ;; 6 succs { 7 8 }
  330. ;; 7 succs { 8 }
  331. ;; 8 succs { 28 9 14 15 19 }
  332. ;; 28 succs { 24 }
  333. ;; 9 succs { 10 22 }
  334. ;; 10 succs { 11 12 }
  335. ;; 11 succs { 13 }
  336. ;; 12 succs { 13 }
  337. ;; 13 succs { 22 }
  338. ;; 14 succs { 22 }
  339. ;; 15 succs { 16 18 }
  340. ;; 16 succs { 17 }
  341. ;; 17 succs { 27 }
  342. ;; 27 succs { 17 }
  343. ;; 18 succs { 22 }
  344. ;; 19 succs { 20 21 }
  345. ;; 20 succs { 22 }
  346. ;; 21 succs { 22 }
  347. ;; 22 succs { 23 }
  348. ;; 23 succs { 24 }
  349. ;; 24 succs { 25 }
  350. ;; 25 succs { 3 26 }
  351. ;; 26 succs { 1 }
  352. Analyzing function body size: prvProcessReceivedCommands
  353. IPA function summary for prvProcessReceivedCommands/27 inlinable
  354. global time: 589.511443
  355. self size: 112
  356. global size: 0
  357. min size: 0
  358. self stack: 20
  359. global stack: 20
  360. size:73.000000, time:192.498507
  361. size:3.000000, time:1.979424, executed if:(not inlined)
  362. calls:
  363. xQueueReceive/46 function body not available
  364. loop depth: 3 freq:17.99 size: 5 time: 14
  365. op1 is compile time invariant
  366. op2 is compile time invariant
  367. vPortFree/45 function body not available
  368. loop depth: 1 freq:0.06 size: 2 time: 11
  369. prvInsertTimerInActiveList/26 function not considered for inlining
  370. loop depth: 1 freq:0.18 size: 5 time: 14
  371. prvReloadTimer/20 function not considered for inlining
  372. loop depth: 1 freq:0.03 size: 4 time: 13
  373. prvInsertTimerInActiveList/26 function not considered for inlining
  374. loop depth: 1 freq:0.19 size: 6 time: 15
  375. prvSampleTimeNow/25 function not considered for inlining
  376. loop depth: 2 freq:0.94 size: 3 time: 12
  377. op0 is compile time invariant
  378. uxListRemove/43 function body not available
  379. loop depth: 2 freq:0.50 size: 2 time: 11
  380. indirect call loop depth: 1 freq:0.09 size: 4 time: 16
  381. indirect call loop depth: 3 freq:6.97 size: 5 time: 17
  382. Analyzing function: prvInsertTimerInActiveList/26
  383. ;; 1 loops found
  384. ;;
  385. ;; Loop 0
  386. ;; header 0, latch 1
  387. ;; depth 0, outer -1
  388. ;; nodes: 0 1 2 3 4 5 6 7 8
  389. ;; 2 succs { 3 5 }
  390. ;; 3 succs { 8 4 }
  391. ;; 4 succs { 8 }
  392. ;; 5 succs { 6 7 }
  393. ;; 6 succs { 8 7 }
  394. ;; 7 succs { 8 }
  395. ;; 8 succs { 1 }
  396. Analyzing function body size: prvInsertTimerInActiveList
  397. IPA function summary for prvInsertTimerInActiveList/26 inlinable
  398. global time: 15.972500
  399. self size: 22
  400. global size: 0
  401. min size: 0
  402. self stack: 0
  403. global stack: 0
  404. size:2.000000, time:1.332500
  405. size:4.000000, time:3.000000, executed if:(not inlined)
  406. size:2.000000, time:2.000000, nonconst if:(op1 changed || op2 changed)
  407. size:3.000000, time:1.500000, nonconst if:(op2 changed || op3 changed)
  408. size:2.000000, time:0.670000, nonconst if:(op1 changed || op3 changed)
  409. size:0.500000, time:0.250000, executed if:(not inlined), nonconst if:(op0[ref offset: 192] changed) && (not inlined)
  410. size:0.500000, time:0.250000, nonconst if:(op0[ref offset: 192] changed)
  411. size:2.000000, time:1.000000, nonconst if:(op2 changed || op3 changed || op0[ref offset: 192] changed)
  412. calls:
  413. vListInsert/44 function body not available
  414. loop depth: 0 freq:0.33 size: 3 time: 12
  415. prvInsertTimerInActiveList.part.0/57 function not considered for inlining
  416. loop depth: 0 freq:0.16 size: 3 time: 12callee size: 3 stack: 0
  417. Analyzing function: prvSampleTimeNow/25
  418. ;; 1 loops found
  419. ;;
  420. ;; Loop 0
  421. ;; header 0, latch 1
  422. ;; depth 0, outer -1
  423. ;; nodes: 0 1 2 3 4 5
  424. ;; 2 succs { 3 4 }
  425. ;; 3 succs { 5 }
  426. ;; 4 succs { 5 }
  427. ;; 5 succs { 1 }
  428. Analyzing function body size: prvSampleTimeNow
  429. IPA function summary for prvSampleTimeNow/25 inlinable
  430. global time: 21.300000
  431. self size: 12
  432. global size: 0
  433. min size: 0
  434. self stack: 0
  435. global stack: 0
  436. size:5.000000, time:4.500000
  437. size:4.000000, time:2.500000, executed if:(not inlined)
  438. calls:
  439. prvSwitchTimerLists/28 function not considered for inlining
  440. loop depth: 0 freq:0.33 size: 1 time: 10callee size: 7 stack: 0
  441. xTaskGetTickCount/41 function body not available
  442. loop depth: 0 freq:1.00 size: 2 time: 11
  443. Analyzing function: prvGetNextExpireTime/24
  444. ;; 1 loops found
  445. ;;
  446. ;; Loop 0
  447. ;; header 0, latch 1
  448. ;; depth 0, outer -1
  449. ;; nodes: 0 1 2 3 4 5 6
  450. ;; 2 succs { 4 3 }
  451. ;; 3 succs { 4 }
  452. ;; 4 succs { 5 6 }
  453. ;; 5 succs { 6 }
  454. ;; 6 succs { 1 }
  455. Analyzing function body size: prvGetNextExpireTime
  456. IPA function summary for prvGetNextExpireTime/24 inlinable
  457. global time: 10.000000
  458. self size: 12
  459. global size: 0
  460. min size: 0
  461. self stack: 0
  462. global stack: 0
  463. size:8.500000, time:7.500000
  464. size:3.500000, time:2.500000, executed if:(not inlined)
  465. calls:
  466. Analyzing function: prvProcessTimerOrBlockTask/23
  467. ;; 1 loops found
  468. ;;
  469. ;; Loop 0
  470. ;; header 0, latch 1
  471. ;; depth 0, outer -1
  472. ;; nodes: 0 1 2 3 4 5 6 7 8 10 11 12 13
  473. ;; 2 succs { 3 12 }
  474. ;; 3 succs { 4 6 }
  475. ;; 4 succs { 5 6 }
  476. ;; 5 succs { 13 }
  477. ;; 6 succs { 7 10 }
  478. ;; 7 succs { 10 8 }
  479. ;; 8 succs { 10 }
  480. ;; 10 succs { 11 13 }
  481. ;; 11 succs { 13 }
  482. ;; 12 succs { 13 }
  483. ;; 13 succs { 1 }
  484. Analyzing function body size: prvProcessTimerOrBlockTask
  485. IPA function summary for prvProcessTimerOrBlockTask/23 inlinable
  486. global time: 53.483675
  487. self size: 38
  488. global size: 0
  489. min size: 0
  490. self stack: 4
  491. global stack: 4
  492. size:10.000000, time:6.076975
  493. size:3.000000, time:2.000000, executed if:(not inlined)
  494. size:4.000000, time:2.458900, nonconst if:(op1 changed)
  495. size:2.000000, time:0.670000, executed if:(op1 == 0)
  496. size:4.000000, time:1.118900, executed if:(op1 != 0)
  497. calls:
  498. xTaskResumeAll/39 function body not available
  499. loop depth: 0 freq:0.33 size: 1 time: 10
  500. xTaskResumeAll/39 function body not available
  501. loop depth: 0 freq:0.56 size: 2 time: 11
  502. vQueueWaitForMessageRestricted/40 function body not available
  503. loop depth: 0 freq:0.56 size: 4 time: 13
  504. prvProcessExpiredTimer/21 function not considered for inlining
  505. loop depth: 0 freq:0.11 size: 3 time: 12 predicate: (op1 == 0)
  506. xTaskResumeAll/39 function body not available
  507. loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op1 == 0)
  508. prvSampleTimeNow/25 function not considered for inlining
  509. loop depth: 0 freq:1.00 size: 3 time: 12callee size: 6 stack: 0
  510. op0 is compile time invariant
  511. vTaskSuspendAll/38 function body not available
  512. loop depth: 0 freq:1.00 size: 1 time: 10
  513. Analyzing function: prvTimerTask/22
  514. ;; 2 loops found
  515. ;;
  516. ;; Loop 0
  517. ;; header 0, latch 1
  518. ;; depth 0, outer -1
  519. ;; nodes: 0 1 2 3 4
  520. ;;
  521. ;; Loop 1
  522. ;; header 3, latch 4
  523. ;; depth 1, outer 0
  524. ;; nodes: 3 4
  525. ;; 2 succs { 3 }
  526. ;; 3 succs { 4 }
  527. ;; 4 succs { 3 }
  528. Analyzing function body size: prvTimerTask
  529. IPA function summary for prvTimerTask/22 inlinable
  530. global time: 350000.594727
  531. self size: 10
  532. global size: 0
  533. min size: 0
  534. self stack: 4
  535. global stack: 4
  536. size:1.000000, time:10000.016983
  537. size:2.000000, time:0.000000, executed if:(not inlined)
  538. calls:
  539. prvProcessReceivedCommands/27 function not considered for inlining
  540. loop depth: 1 freq:10000.02 size: 1 time: 10callee size:56 stack:20
  541. prvProcessTimerOrBlockTask/23 function not considered for inlining
  542. loop depth: 1 freq:10000.02 size: 3 time: 12callee size:19 stack: 4
  543. prvGetNextExpireTime/24 function not considered for inlining
  544. loop depth: 1 freq:10000.02 size: 3 time: 12callee size: 6 stack: 0
  545. op0 is compile time invariant
  546. Analyzing function: prvProcessExpiredTimer/21
  547. ;; 1 loops found
  548. ;;
  549. ;; Loop 0
  550. ;; header 0, latch 1
  551. ;; depth 0, outer -1
  552. ;; nodes: 0 1 2 3 4 5
  553. ;; 2 succs { 3 4 }
  554. ;; 3 succs { 5 }
  555. ;; 4 succs { 5 }
  556. ;; 5 succs { 1 }
  557. Analyzing function body size: prvProcessExpiredTimer
  558. IPA function summary for prvProcessExpiredTimer/21 inlinable
  559. global time: 42.630000
  560. self size: 23
  561. global size: 0
  562. min size: 0
  563. self stack: 0
  564. global stack: 0
  565. size:10.000000, time:9.340000
  566. size:3.000000, time:2.000000, executed if:(not inlined)
  567. calls:
  568. prvReloadTimer/20 function not considered for inlining
  569. loop depth: 0 freq:0.33 size: 4 time: 13
  570. uxListRemove/43 function body not available
  571. loop depth: 0 freq:1.00 size: 2 time: 11
  572. indirect call loop depth: 0 freq:1.00 size: 4 time: 16
  573. Analyzing function: prvReloadTimer/20
  574. ;; 2 loops found
  575. ;;
  576. ;; Loop 0
  577. ;; header 0, latch 1
  578. ;; depth 0, outer -1
  579. ;; nodes: 0 1 2 3 4 5
  580. ;;
  581. ;; Loop 1
  582. ;; header 4, latch 3
  583. ;; depth 1, outer 0
  584. ;; nodes: 4 3
  585. ;; 2 succs { 4 }
  586. ;; 3 succs { 4 }
  587. ;; 4 succs { 3 5 }
  588. ;; 5 succs { 1 }
  589. Analyzing function body size: prvReloadTimer
  590. IPA function summary for prvReloadTimer/20 inlinable
  591. global time: 328.454547
  592. self size: 20
  593. global size: 0
  594. min size: 0
  595. self stack: 0
  596. global stack: 0
  597. size:5.500000, time:48.000000
  598. size:4.500000, time:14.636364, executed if:(not inlined)
  599. calls:
  600. prvInsertTimerInActiveList/26 function not considered for inlining
  601. loop depth: 1 freq:9.09 size: 6 time: 15callee size:11 stack: 0
  602. op0 change 10.990000% of time
  603. op2 change 10.990000% of time
  604. indirect call loop depth: 1 freq:8.09 size: 4 time: 16
  605. Analyzing function: pcTimerGetName/19
  606. ;; 2 loops found
  607. ;;
  608. ;; Loop 0
  609. ;; header 0, latch 1
  610. ;; depth 0, outer -1
  611. ;; nodes: 0 1 2 3 4 6 5
  612. ;;
  613. ;; Loop 1
  614. ;; header 4, latch 6
  615. ;; depth 1, outer 0
  616. ;; nodes: 4 6
  617. ;; 2 succs { 3 5 }
  618. ;; 3 succs { 4 }
  619. ;; 4 succs { 6 }
  620. ;; 6 succs { 4 }
  621. ;; 5 succs { 1 }
  622. Analyzing function body size: pcTimerGetName
  623. IPA function summary for pcTimerGetName/19 inlinable
  624. global time: 5.600001
  625. self size: 11
  626. global size: 0
  627. min size: 0
  628. self stack: 0
  629. global stack: 0
  630. size:0.000000, time:0.000000
  631. size:2.000000, time:0.000000, executed if:(not inlined)
  632. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  633. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined)
  634. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B)
  635. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  636. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  637. calls:
  638. Analyzing function: xTimerGetExpiryTime/18
  639. ;; 2 loops found
  640. ;;
  641. ;; Loop 0
  642. ;; header 0, latch 1
  643. ;; depth 0, outer -1
  644. ;; nodes: 0 1 2 3 4 6 5
  645. ;;
  646. ;; Loop 1
  647. ;; header 4, latch 6
  648. ;; depth 1, outer 0
  649. ;; nodes: 4 6
  650. ;; 2 succs { 3 5 }
  651. ;; 3 succs { 4 }
  652. ;; 4 succs { 6 }
  653. ;; 6 succs { 4 }
  654. ;; 5 succs { 1 }
  655. Analyzing function body size: xTimerGetExpiryTime
  656. IPA function summary for xTimerGetExpiryTime/18 inlinable
  657. global time: 5.600001
  658. self size: 11
  659. global size: 0
  660. min size: 0
  661. self stack: 0
  662. global stack: 0
  663. size:0.000000, time:0.000000
  664. size:2.000000, time:0.000000, executed if:(not inlined)
  665. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  666. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined)
  667. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B)
  668. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  669. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  670. calls:
  671. Analyzing function: uxTimerGetReloadMode/17
  672. ;; 2 loops found
  673. ;;
  674. ;; Loop 0
  675. ;; header 0, latch 1
  676. ;; depth 0, outer -1
  677. ;; nodes: 0 1 2 3 4 8 5 6 7
  678. ;;
  679. ;; Loop 1
  680. ;; header 4, latch 8
  681. ;; depth 1, outer 0
  682. ;; nodes: 4 8
  683. ;; 2 succs { 3 5 }
  684. ;; 3 succs { 4 }
  685. ;; 4 succs { 8 }
  686. ;; 8 succs { 4 }
  687. ;; 5 succs { 7 6 }
  688. ;; 6 succs { 7 }
  689. ;; 7 succs { 1 }
  690. Analyzing function body size: uxTimerGetReloadMode
  691. IPA function summary for uxTimerGetReloadMode/17 inlinable
  692. global time: 18.228702
  693. self size: 16
  694. global size: 0
  695. min size: 0
  696. self stack: 0
  697. global stack: 0
  698. size:0.000000, time:0.000000
  699. size:2.000000, time:0.000000, executed if:(not inlined)
  700. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  701. size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined)
  702. size:3.500000, time:1.871450, executed if:(op0 != 0B)
  703. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  704. calls:
  705. vPortExitCritical/51 function body not available
  706. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  707. vPortEnterCritical/47 function body not available
  708. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  709. Analyzing function: vTimerSetReloadMode/16
  710. ;; 2 loops found
  711. ;;
  712. ;; Loop 0
  713. ;; header 0, latch 1
  714. ;; depth 0, outer -1
  715. ;; nodes: 0 1 2 3 4 9 5 6 7 8
  716. ;;
  717. ;; Loop 1
  718. ;; header 4, latch 9
  719. ;; depth 1, outer 0
  720. ;; nodes: 4 9
  721. ;; 2 succs { 3 5 }
  722. ;; 3 succs { 4 }
  723. ;; 4 succs { 9 }
  724. ;; 9 succs { 4 }
  725. ;; 5 succs { 6 7 }
  726. ;; 6 succs { 8 }
  727. ;; 7 succs { 8 }
  728. ;; 8 succs { 1 }
  729. Analyzing function body size: vTimerSetReloadMode
  730. IPA function summary for vTimerSetReloadMode/16 inlinable
  731. global time: 18.763389
  732. self size: 20
  733. global size: 0
  734. min size: 0
  735. self stack: 0
  736. global stack: 0
  737. size:0.000000, time:0.000000
  738. size:2.000000, time:0.000000, executed if:(not inlined)
  739. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  740. size:2.000000, time:1.069400, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  741. size:1.000000, time:0.267348, executed if:(op1 == 0) && (op0 != 0B) && (not inlined)
  742. size:2.000000, time:0.534696, executed if:(op1 == 0) && (op0 != 0B)
  743. size:1.000000, time:0.267348, executed if:(op1 != 0) && (op0 != 0B) && (not inlined)
  744. size:2.000000, time:0.534696, executed if:(op1 != 0) && (op0 != 0B)
  745. size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined)
  746. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  747. calls:
  748. vPortExitCritical/51 function body not available
  749. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  750. vPortEnterCritical/47 function body not available
  751. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  752. Analyzing function: xTimerGetPeriod/15
  753. ;; 2 loops found
  754. ;;
  755. ;; Loop 0
  756. ;; header 0, latch 1
  757. ;; depth 0, outer -1
  758. ;; nodes: 0 1 2 3 4 6 5
  759. ;;
  760. ;; Loop 1
  761. ;; header 4, latch 6
  762. ;; depth 1, outer 0
  763. ;; nodes: 4 6
  764. ;; 2 succs { 3 5 }
  765. ;; 3 succs { 4 }
  766. ;; 4 succs { 6 }
  767. ;; 6 succs { 4 }
  768. ;; 5 succs { 1 }
  769. Analyzing function body size: xTimerGetPeriod
  770. IPA function summary for xTimerGetPeriod/15 inlinable
  771. global time: 5.600001
  772. self size: 11
  773. global size: 0
  774. min size: 0
  775. self stack: 0
  776. global stack: 0
  777. size:0.000000, time:0.000000
  778. size:2.000000, time:0.000000, executed if:(not inlined)
  779. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  780. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined)
  781. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B)
  782. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  783. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  784. calls:
  785. Analyzing function: xTimerGetTimerDaemonTaskHandle/14
  786. ;; 2 loops found
  787. ;;
  788. ;; Loop 0
  789. ;; header 0, latch 1
  790. ;; depth 0, outer -1
  791. ;; nodes: 0 1 2 3 4 6 5
  792. ;;
  793. ;; Loop 1
  794. ;; header 4, latch 6
  795. ;; depth 1, outer 0
  796. ;; nodes: 4 6
  797. ;; 2 succs { 3 5 }
  798. ;; 3 succs { 4 }
  799. ;; 4 succs { 6 }
  800. ;; 6 succs { 4 }
  801. ;; 5 succs { 1 }
  802. Analyzing function body size: xTimerGetTimerDaemonTaskHandle
  803. IPA function summary for xTimerGetTimerDaemonTaskHandle/14 inlinable
  804. global time: 5.900001
  805. self size: 11
  806. global size: 0
  807. min size: 0
  808. self stack: 0
  809. global stack: 0
  810. size:8.000000, time:4.500001
  811. size:3.000000, time:1.399999, executed if:(not inlined)
  812. calls:
  813. Analyzing function: xTimerGenericCommand/13
  814. ;; 2 loops found
  815. ;;
  816. ;; Loop 0
  817. ;; header 0, latch 1
  818. ;; depth 0, outer -1
  819. ;; nodes: 0 1 2 3 4 12 5 6 7 8 9 10 11
  820. ;;
  821. ;; Loop 1
  822. ;; header 4, latch 12
  823. ;; depth 1, outer 0
  824. ;; nodes: 4 12
  825. ;; 2 succs { 3 5 }
  826. ;; 3 succs { 4 }
  827. ;; 4 succs { 12 }
  828. ;; 12 succs { 4 }
  829. ;; 5 succs { 6 11 }
  830. ;; 6 succs { 7 10 }
  831. ;; 7 succs { 8 9 }
  832. ;; 8 succs { 11 }
  833. ;; 9 succs { 11 }
  834. ;; 10 succs { 11 }
  835. ;; 11 succs { 1 }
  836. Analyzing function body size: xTimerGenericCommand
  837. IPA function summary for xTimerGenericCommand/13 inlinable
  838. global time: 20.230048
  839. self size: 42
  840. global size: 0
  841. min size: 0
  842. self stack: 16
  843. global stack: 16
  844. size:0.000000, time:0.000000
  845. size:2.000000, time:0.000000, executed if:(not inlined)
  846. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  847. size:6.000000, time:3.570004, executed if:(op0 != 0B)
  848. size:2.000000, time:0.980004, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  849. size:4.000000, time:0.735003, executed if:(op1 <= 5) && (op0 != 0B)
  850. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  851. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  852. calls:
  853. xQueueGenericSendFromISR/56 function body not available
  854. loop depth: 0 freq:0.25 size: 6 time: 15 predicate: (op1 > 5) && (op0 != 0B)
  855. op1 is compile time invariant
  856. op3 is compile time invariant
  857. xQueueGenericSend/55 function body not available
  858. loop depth: 0 freq:0.16 size: 6 time: 15 predicate: (op1 <= 5) && (op0 != 0B)
  859. op1 is compile time invariant
  860. op2 is compile time invariant
  861. op3 is compile time invariant
  862. xQueueGenericSend/55 function body not available
  863. loop depth: 0 freq:0.08 size: 6 time: 15 predicate: (op1 <= 5) && (op0 != 0B)
  864. op1 is compile time invariant
  865. op3 is compile time invariant
  866. xTaskGetSchedulerState/54 function body not available
  867. loop depth: 0 freq:0.25 size: 2 time: 11 predicate: (op1 <= 5) && (op0 != 0B)
  868. Analyzing function: prvInitialiseNewTimer/12
  869. ;; 2 loops found
  870. ;;
  871. ;; Loop 0
  872. ;; header 0, latch 1
  873. ;; depth 0, outer -1
  874. ;; nodes: 0 1 2 3 4 8 5 6 7
  875. ;;
  876. ;; Loop 1
  877. ;; header 4, latch 8
  878. ;; depth 1, outer 0
  879. ;; nodes: 4 8
  880. ;; 2 succs { 3 5 }
  881. ;; 3 succs { 4 }
  882. ;; 4 succs { 8 }
  883. ;; 8 succs { 4 }
  884. ;; 5 succs { 6 7 }
  885. ;; 6 succs { 7 }
  886. ;; 7 succs { 1 }
  887. Analyzing function body size: prvInitialiseNewTimer
  888. IPA function summary for prvInitialiseNewTimer/12 inlinable
  889. global time: 15.415032
  890. self size: 22
  891. global size: 0
  892. min size: 0
  893. self stack: 0
  894. global stack: 0
  895. size:0.000000, time:0.000000
  896. size:2.000000, time:0.000000, executed if:(not inlined)
  897. size:2.000000, time:2.000000, nonconst if:(op1 changed)
  898. size:3.000000, time:1.320005, executed if:(op1 != 0) && (not inlined)
  899. size:2.000000, time:0.660002, executed if:(op1 != 0)
  900. size:2.000000, time:0.660002, executed if:(op1 != 0), nonconst if:(op2 changed) && (op1 != 0)
  901. size:1.000000, time:0.165001, executed if:(op2 != 0) && (op1 != 0) && (not inlined)
  902. size:2.000000, time:0.330001, executed if:(op2 != 0) && (op1 != 0)
  903. size:5.000000, time:3.349994, executed if:(op1 == 0)
  904. calls:
  905. vListInitialiseItem/53 function body not available
  906. loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0)
  907. prvCheckForValidListAndQueue/29 function not considered for inlining
  908. loop depth: 0 freq:0.33 size: 1 time: 10callee size:12 stack: 0 predicate: (op1 != 0)
  909. Analyzing function: xTimerCreate/11
  910. ;; 1 loops found
  911. ;;
  912. ;; Loop 0
  913. ;; header 0, latch 1
  914. ;; depth 0, outer -1
  915. ;; nodes: 0 1 2 3 4
  916. ;; 2 succs { 3 4 }
  917. ;; 3 succs { 4 }
  918. ;; 4 succs { 1 }
  919. Analyzing function body size: xTimerCreate
  920. IPA function summary for xTimerCreate/11 inlinable
  921. global time: 25.089900
  922. self size: 16
  923. global size: 0
  924. min size: 0
  925. self stack: 0
  926. global stack: 0
  927. size:3.000000, time:2.534700
  928. size:3.000000, time:2.000000, executed if:(not inlined)
  929. calls:
  930. prvInitialiseNewTimer/12 function not considered for inlining
  931. loop depth: 0 freq:0.53 size: 7 time: 16callee size:11 stack: 0
  932. pvPortMalloc/52 function body not available
  933. loop depth: 0 freq:1.00 size: 3 time: 12
  934. op0 is compile time invariant
  935. Analyzing function: xTimerCreateTimerTask/10
  936. ;; 2 loops found
  937. ;;
  938. ;; Loop 0
  939. ;; header 0, latch 1
  940. ;; depth 0, outer -1
  941. ;; nodes: 0 1 2 4 5 6 8 7
  942. ;;
  943. ;; Loop 1
  944. ;; header 6, latch 8
  945. ;; depth 1, outer 0
  946. ;; nodes: 6 8
  947. ;; 2 succs { 4 5 }
  948. ;; 4 succs { 5 7 }
  949. ;; 5 succs { 6 }
  950. ;; 6 succs { 8 }
  951. ;; 8 succs { 6 }
  952. ;; 7 succs { 1 }
  953. Analyzing function body size: xTimerCreateTimerTask
  954. IPA function summary for xTimerCreateTimerTask/10 inlinable
  955. global time: 27.357181
  956. self size: 22
  957. global size: 0
  958. min size: 0
  959. self stack: 0
  960. global stack: 0
  961. size:10.000000, time:7.732635
  962. size:3.000000, time:0.534703, executed if:(not inlined)
  963. calls:
  964. xTaskCreate/37 function body not available
  965. loop depth: 0 freq:0.53 size: 8 time: 17
  966. op0 is compile time invariant
  967. op1 is compile time invariant
  968. op2 is compile time invariant
  969. op3 is compile time invariant
  970. op4 is compile time invariant
  971. op5 is compile time invariant
  972. prvCheckForValidListAndQueue/29 function not considered for inlining
  973. loop depth: 0 freq:1.00 size: 1 time: 10callee size:12 stack: 0
  974. Symbol table:
  975. prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05dfbd20
  976. Type: function definition analyzed
  977. Visibility:
  978. References:
  979. Referring:
  980. Clone of prvInitialiseNewTimer/12
  981. Availability: local
  982. Function flags: count:160260 (estimated locally) local optimize_size
  983. Called by: xTimerCreate/11 (574129754 (estimated locally),0.53 per call)
  984. Calls: prvCheckForValidListAndQueue/29 (52886 (estimated locally),0.33 per call) vListInitialiseItem/53 (52886 (estimated locally),0.33 per call)
  985. prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05dfba80
  986. Type: function definition analyzed
  987. Visibility: prevailing_def_ironly artificial
  988. References: pxOverflowTimerList/7 (read)
  989. Referring:
  990. Availability: local
  991. Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  992. Called by: prvInsertTimerInActiveList/26 (177167400 (estimated locally),0.16 per call)
  993. Calls: vListInsert/44 (1073741824 (estimated locally),1.00 per call)
  994. xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f06c40
  995. Type: function
  996. Visibility: external public
  997. References:
  998. Referring:
  999. Availability: not_available
  1000. Function flags: optimize_size
  1001. Called by: xTimerPendFunctionCallFromISR/33 (1073741824 (estimated locally),1.00 per call) xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  1002. Calls:
  1003. xQueueGenericSend/55 (xQueueGenericSend) @05f06b60
  1004. Type: function
  1005. Visibility: external public
  1006. References:
  1007. Referring:
  1008. Availability: not_available
  1009. Function flags: optimize_size
  1010. Called by: xTimerPendFunctionCall/34 (123389 (estimated locally),0.53 per call) xTimerGenericCommand/13 (57875 (estimated locally),0.16 per call) xTimerGenericCommand/13 (29814 (estimated locally),0.08 per call)
  1011. Calls:
  1012. xTaskGetSchedulerState/54 (xTaskGetSchedulerState) @05f06a80
  1013. Type: function
  1014. Visibility: external public
  1015. References:
  1016. Referring:
  1017. Availability: not_available
  1018. Function flags: optimize_size
  1019. Called by: xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call)
  1020. Calls:
  1021. vListInitialiseItem/53 (vListInitialiseItem) @05f068c0
  1022. Type: function
  1023. Visibility: external public
  1024. References:
  1025. Referring:
  1026. Availability: not_available
  1027. Function flags: optimize_size
  1028. Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call)
  1029. Calls:
  1030. pvPortMalloc/52 (pvPortMalloc) @05f06700
  1031. Type: function
  1032. Visibility: external public
  1033. References:
  1034. Referring:
  1035. Availability: not_available
  1036. Function flags: optimize_size
  1037. Called by: xTimerCreate/11 (1073741824 (estimated locally),1.00 per call)
  1038. Calls:
  1039. vPortExitCritical/51 (vPortExitCritical) @05f06460
  1040. Type: function
  1041. Visibility: external public
  1042. References:
  1043. Referring:
  1044. Availability: not_available
  1045. Function flags: optimize_size
  1046. Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call)
  1047. Calls:
  1048. vQueueAddToRegistry/50 (vQueueAddToRegistry) @05f06380
  1049. Type: function
  1050. Visibility: external public
  1051. References:
  1052. Referring:
  1053. Availability: not_available
  1054. Function flags: optimize_size
  1055. Called by: prvCheckForValidListAndQueue/29 (100070816 (estimated locally),0.09 per call)
  1056. Calls:
  1057. xQueueGenericCreate/49 (xQueueGenericCreate) @05f062a0
  1058. Type: function
  1059. Visibility: external public
  1060. References:
  1061. Referring:
  1062. Availability: not_available
  1063. Function flags: optimize_size
  1064. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  1065. Calls:
  1066. vListInitialise/48 (vListInitialise) @05f060e0
  1067. Type: function
  1068. Visibility: external public
  1069. References:
  1070. Referring:
  1071. Availability: not_available
  1072. Function flags: optimize_size
  1073. Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call)
  1074. Calls:
  1075. vPortEnterCritical/47 (vPortEnterCritical) @05f06000
  1076. Type: function
  1077. Visibility: external public
  1078. References:
  1079. Referring:
  1080. Availability: not_available
  1081. Function flags: optimize_size
  1082. Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call)
  1083. Calls:
  1084. xQueueReceive/46 (xQueueReceive) @05ed9e00
  1085. Type: function
  1086. Visibility: external public
  1087. References:
  1088. Referring:
  1089. Availability: not_available
  1090. Function flags: optimize_size
  1091. Called by: prvProcessReceivedCommands/27 (187807075 (estimated locally),17.99 per call)
  1092. Calls:
  1093. vPortFree/45 (vPortFree) @05ed9d20
  1094. Type: function
  1095. Visibility: external public
  1096. References:
  1097. Referring:
  1098. Availability: not_available
  1099. Function flags: optimize_size
  1100. Called by: prvProcessReceivedCommands/27 (644244 (estimated locally),0.06 per call)
  1101. Calls:
  1102. vListInsert/44 (vListInsert) @05ed99a0
  1103. Type: function
  1104. Visibility: external public
  1105. References:
  1106. Referring:
  1107. Availability: not_available
  1108. Function flags: optimize_size
  1109. Called by: prvInsertTimerInActiveList/26 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (1073741824 (estimated locally),1.00 per call)
  1110. Calls:
  1111. uxListRemove/43 (uxListRemove) @05ed9700
  1112. Type: function
  1113. Visibility: external public
  1114. References:
  1115. Referring:
  1116. Availability: not_available
  1117. Function flags: optimize_size
  1118. Called by: prvProcessReceivedCommands/27 (5219353 (estimated locally),0.50 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call)
  1119. Calls:
  1120. xLastTime.6551/42 (xLastTime) @05ef6120
  1121. Type: variable definition analyzed
  1122. Visibility: prevailing_def_ironly
  1123. References:
  1124. Referring: prvSampleTimeNow/25 (read)prvSampleTimeNow/25 (write)
  1125. Availability: available
  1126. Varpool flags: initialized
  1127. xTaskGetTickCount/41 (xTaskGetTickCount) @05ed9380
  1128. Type: function
  1129. Visibility: external public
  1130. References:
  1131. Referring:
  1132. Availability: not_available
  1133. Function flags: optimize_size
  1134. Called by: prvSampleTimeNow/25 (1073741824 (estimated locally),1.00 per call)
  1135. Calls:
  1136. vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05ed91c0
  1137. Type: function
  1138. Visibility: external public
  1139. References:
  1140. Referring:
  1141. Availability: not_available
  1142. Function flags: optimize_size
  1143. Called by: prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call)
  1144. Calls:
  1145. xTaskResumeAll/39 (xTaskResumeAll) @05ed90e0
  1146. Type: function
  1147. Visibility: external public
  1148. References:
  1149. Referring:
  1150. Availability: not_available
  1151. Function flags: optimize_size
  1152. Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),0.33 per call) prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call)
  1153. Calls:
  1154. vTaskSuspendAll/38 (vTaskSuspendAll) @05ed9000
  1155. Type: function
  1156. Visibility: external public
  1157. References:
  1158. Referring:
  1159. Availability: not_available
  1160. Function flags: optimize_size
  1161. Called by: prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call)
  1162. Calls:
  1163. xTaskCreate/37 (xTaskCreate) @05ecdee0
  1164. Type: function
  1165. Visibility: external public
  1166. References:
  1167. Referring:
  1168. Availability: not_available
  1169. Function flags: optimize_size
  1170. Called by: xTimerCreateTimerTask/10 (78363 (estimated locally),0.53 per call)
  1171. Calls:
  1172. vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05ecda80
  1173. Type: function definition analyzed
  1174. Visibility: externally_visible public
  1175. References:
  1176. Referring:
  1177. Availability: available
  1178. Function flags: count:1073741824 (estimated locally) body optimize_size
  1179. Called by:
  1180. Calls:
  1181. uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05ecd7e0
  1182. Type: function definition analyzed
  1183. Visibility: externally_visible public
  1184. References:
  1185. Referring:
  1186. Availability: available
  1187. Function flags: count:1073741824 (estimated locally) body optimize_size
  1188. Called by:
  1189. Calls:
  1190. xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05ecd540
  1191. Type: function definition analyzed
  1192. Visibility: externally_visible public
  1193. References: xTimerQueue/8 (read)
  1194. Referring:
  1195. Availability: available
  1196. Function flags: count:230763 (estimated locally) body optimize_size
  1197. Called by:
  1198. Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call)
  1199. xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05ecd0e0
  1200. Type: function definition analyzed
  1201. Visibility: externally_visible public
  1202. References: xTimerQueue/8 (read)
  1203. Referring:
  1204. Availability: available
  1205. Function flags: count:1073741824 (estimated locally) body optimize_size
  1206. Called by:
  1207. Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call)
  1208. vTimerSetTimerID/32 (vTimerSetTimerID) @05ec78c0
  1209. Type: function definition analyzed
  1210. Visibility: externally_visible public
  1211. References:
  1212. Referring:
  1213. Availability: available
  1214. Function flags: count:230763 (estimated locally) body optimize_size
  1215. Called by:
  1216. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1217. pvTimerGetTimerID/31 (pvTimerGetTimerID) @05ec7ee0
  1218. Type: function definition analyzed
  1219. Visibility: externally_visible public
  1220. References:
  1221. Referring:
  1222. Availability: available
  1223. Function flags: count:230763 (estimated locally) body optimize_size
  1224. Called by:
  1225. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1226. xTimerIsTimerActive/30 (xTimerIsTimerActive) @05ec7b60
  1227. Type: function definition analyzed
  1228. Visibility: externally_visible public
  1229. References:
  1230. Referring:
  1231. Availability: available
  1232. Function flags: count:230763 (estimated locally) body optimize_size
  1233. Called by:
  1234. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1235. prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05ec77e0
  1236. Type: function definition analyzed
  1237. Visibility: prevailing_def_ironly
  1238. References: xTimerQueue/8 (read)xActiveTimerList1/4 (addr)xActiveTimerList2/5 (addr)pxCurrentTimerList/6 (write)xActiveTimerList1/4 (addr)pxOverflowTimerList/7 (write)xActiveTimerList2/5 (addr)xTimerQueue/8 (write)
  1239. Referring:
  1240. Availability: local
  1241. Function flags: count:1073741824 (estimated locally) body local optimize_size
  1242. Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call)
  1243. Calls: vPortExitCritical/51 (1073741824 (estimated locally),1.00 per call) vQueueAddToRegistry/50 (100070816 (estimated locally),0.09 per call) xQueueGenericCreate/49 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vPortEnterCritical/47 (1073741824 (estimated locally),1.00 per call)
  1244. prvSwitchTimerLists/28 (prvSwitchTimerLists) @05ec7460
  1245. Type: function definition analyzed
  1246. Visibility: prevailing_def_ironly
  1247. References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write)
  1248. Referring:
  1249. Availability: local
  1250. Function flags: count:118111600 (estimated locally) body local optimize_size
  1251. Called by: prvSampleTimeNow/25 (354334802 (estimated locally),0.33 per call)
  1252. Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call)
  1253. prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05ec70e0
  1254. Type: function definition analyzed
  1255. Visibility: prevailing_def_ironly
  1256. References: xTimerQueue/8 (read)
  1257. Referring:
  1258. Availability: local
  1259. Function flags: count:10436763 (estimated locally) body local optimize_size
  1260. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  1261. Calls: xQueueReceive/46 (187807075 (estimated locally),17.99 per call) vPortFree/45 (644244 (estimated locally),0.06 per call) prvInsertTimerInActiveList/26 (1844881 (estimated locally),0.18 per call) prvReloadTimer/20 (322122 (estimated locally),0.03 per call) prvInsertTimerInActiveList/26 (1952255 (estimated locally),0.19 per call) prvSampleTimeNow/25 (9761273 (estimated locally),0.94 per call) uxListRemove/43 (5219353 (estimated locally),0.50 per call)
  1262. Indirect call(976127 (estimated locally),0.09 per call)
  1263. Indirect call(72765851 (estimated locally),6.97 per call)
  1264. prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05ebb7e0
  1265. Type: function definition analyzed
  1266. Visibility: prevailing_def_ironly
  1267. References: pxCurrentTimerList/6 (read)
  1268. Referring:
  1269. Availability: local
  1270. Function flags: count:1073741824 (estimated locally) body local optimize_size
  1271. Called by: prvProcessReceivedCommands/27 (1844881 (estimated locally),0.18 per call) prvProcessReceivedCommands/27 (1952255 (estimated locally),0.19 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call)
  1272. Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (177167400 (estimated locally),0.16 per call)
  1273. prvSampleTimeNow/25 (prvSampleTimeNow) @05ebbd20
  1274. Type: function definition analyzed
  1275. Visibility: prevailing_def_ironly
  1276. References: xLastTime.6551/42 (read)xLastTime.6551/42 (write)
  1277. Referring:
  1278. Availability: local
  1279. Function flags: count:1073741824 (estimated locally) body local optimize_size
  1280. Called by: prvProcessReceivedCommands/27 (9761273 (estimated locally),0.94 per call) prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call)
  1281. Calls: prvSwitchTimerLists/28 (354334802 (estimated locally),0.33 per call) xTaskGetTickCount/41 (1073741824 (estimated locally),1.00 per call)
  1282. prvGetNextExpireTime/24 (prvGetNextExpireTime) @05ebba80
  1283. Type: function definition analyzed
  1284. Visibility: prevailing_def_ironly
  1285. References: pxCurrentTimerList/6 (read)
  1286. Referring:
  1287. Availability: local
  1288. Function flags: count:1073741824 (estimated locally) body local optimize_size
  1289. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  1290. Calls:
  1291. prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05ebb700
  1292. Type: function definition analyzed
  1293. Visibility: prevailing_def_ironly
  1294. References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read)
  1295. Referring:
  1296. Availability: local
  1297. Function flags: count:1073741823 (estimated locally) body local optimize_size
  1298. Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call)
  1299. Calls: xTaskResumeAll/39 (354334802 (estimated locally),0.33 per call) xTaskResumeAll/39 (600704864 (estimated locally),0.56 per call) vQueueWaitForMessageRestricted/40 (600704864 (estimated locally),0.56 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),0.11 per call) xTaskResumeAll/39 (118702158 (estimated locally),0.11 per call) prvSampleTimeNow/25 (1073741823 (estimated locally),1.00 per call) vTaskSuspendAll/38 (1073741823 (estimated locally),1.00 per call)
  1300. prvTimerTask/22 (prvTimerTask) @05ebb2a0
  1301. Type: function definition analyzed
  1302. Visibility: prevailing_def_ironly
  1303. Address is taken.
  1304. References:
  1305. Referring: xTimerCreateTimerTask/10 (addr)
  1306. Availability: available
  1307. Function flags: count:107374 (estimated locally) body executed_once optimize_size
  1308. Called by:
  1309. Calls: prvProcessReceivedCommands/27 (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (1073741824 (estimated locally),10000.02 per call)
  1310. prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05ebb000
  1311. Type: function definition analyzed
  1312. Visibility: prevailing_def_ironly
  1313. References: pxCurrentTimerList/6 (read)
  1314. Referring:
  1315. Availability: local
  1316. Function flags: count:1073741824 (estimated locally) body local optimize_size
  1317. Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call)
  1318. Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call)
  1319. Indirect call(1073741824 (estimated locally),1.00 per call)
  1320. prvReloadTimer/20 (prvReloadTimer) @05e60540
  1321. Type: function definition analyzed
  1322. Visibility: prevailing_def_ironly
  1323. References:
  1324. Referring:
  1325. Availability: local
  1326. Function flags: count:118111600 (estimated locally) body local optimize_size
  1327. Called by: prvProcessReceivedCommands/27 (322122 (estimated locally),0.03 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call)
  1328. Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call)
  1329. Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed)
  1330. pcTimerGetName/19 (pcTimerGetName) @05e60ee0
  1331. Type: function definition analyzed
  1332. Visibility: externally_visible public
  1333. References:
  1334. Referring:
  1335. Availability: available
  1336. Function flags: count:357913 (estimated locally) body optimize_size
  1337. Called by:
  1338. Calls:
  1339. xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05e60b60
  1340. Type: function definition analyzed
  1341. Visibility: externally_visible public
  1342. References:
  1343. Referring:
  1344. Availability: available
  1345. Function flags: count:357913 (estimated locally) body optimize_size
  1346. Called by:
  1347. Calls:
  1348. uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05e607e0
  1349. Type: function definition analyzed
  1350. Visibility: externally_visible public
  1351. References:
  1352. Referring:
  1353. Availability: available
  1354. Function flags: count:230763 (estimated locally) body optimize_size
  1355. Called by:
  1356. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1357. vTimerSetReloadMode/16 (vTimerSetReloadMode) @05e60460
  1358. Type: function definition analyzed
  1359. Visibility: externally_visible public
  1360. References:
  1361. Referring:
  1362. Availability: available
  1363. Function flags: count:230763 (estimated locally) body optimize_size
  1364. Called by:
  1365. Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call)
  1366. xTimerGetPeriod/15 (xTimerGetPeriod) @05e600e0
  1367. Type: function definition analyzed
  1368. Visibility: externally_visible public
  1369. References:
  1370. Referring:
  1371. Availability: available
  1372. Function flags: count:357913 (estimated locally) body optimize_size
  1373. Called by:
  1374. Calls:
  1375. xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05eb67e0
  1376. Type: function definition analyzed
  1377. Visibility: externally_visible public
  1378. References: xTimerTaskHandle/9 (read)
  1379. Referring:
  1380. Availability: available
  1381. Function flags: count:357913 (estimated locally) body optimize_size
  1382. Called by:
  1383. Calls:
  1384. xTimerGenericCommand/13 (xTimerGenericCommand) @05eb61c0
  1385. Type: function definition analyzed
  1386. Visibility: externally_visible public
  1387. References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read)
  1388. Referring:
  1389. Availability: available
  1390. Function flags: count:357913 (estimated locally) body optimize_size
  1391. Called by:
  1392. Calls: xQueueGenericSendFromISR/56 (87689 (estimated locally),0.25 per call) xQueueGenericSend/55 (57875 (estimated locally),0.16 per call) xQueueGenericSend/55 (29814 (estimated locally),0.08 per call) xTaskGetSchedulerState/54 (87689 (estimated locally),0.25 per call)
  1393. prvInitialiseNewTimer/12 (prvInitialiseNewTimer) @05eb6a80
  1394. Type: function
  1395. Body removed by symtab_remove_unreachable_nodes
  1396. Visibility: prevailing_def_ironly
  1397. References:
  1398. Referring:
  1399. Availability: not_available
  1400. Function flags: count:160260 (estimated locally) body optimize_size
  1401. Called by:
  1402. Calls:
  1403. xTimerCreate/11 (xTimerCreate) @05eb6700
  1404. Type: function definition analyzed
  1405. Visibility: externally_visible public
  1406. References:
  1407. Referring:
  1408. Availability: available
  1409. Function flags: count:1073741824 (estimated locally) body optimize_size
  1410. Called by:
  1411. Calls: prvInitialiseNewTimer.constprop/72 (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call)
  1412. xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05eb6460
  1413. Type: function definition analyzed
  1414. Visibility: externally_visible public
  1415. References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr)
  1416. Referring:
  1417. Availability: available
  1418. Function flags: count:146556 (estimated locally) body optimize_size
  1419. Called by:
  1420. Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call)
  1421. xTimerTaskHandle/9 (xTimerTaskHandle) @05eb0678
  1422. Type: variable definition analyzed
  1423. Visibility: prevailing_def_ironly
  1424. References:
  1425. Referring: xTimerCreateTimerTask/10 (addr)xTimerGetTimerDaemonTaskHandle/14 (read)
  1426. Availability: available
  1427. Varpool flags: initialized
  1428. xTimerQueue/8 (xTimerQueue) @05eb05e8
  1429. Type: variable definition analyzed
  1430. Visibility: prevailing_def_ironly
  1431. References:
  1432. Referring: prvProcessReceivedCommands/27 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCallFromISR/33 (read)prvCheckForValidListAndQueue/29 (write)xTimerCreateTimerTask/10 (read)prvCheckForValidListAndQueue/29 (read)prvProcessTimerOrBlockTask/23 (read)xTimerGenericCommand/13 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCall/34 (read)
  1433. Availability: available
  1434. Varpool flags: initialized
  1435. pxOverflowTimerList/7 (pxOverflowTimerList) @05eb0558
  1436. Type: variable definition analyzed
  1437. Visibility: prevailing_def_ironly
  1438. References:
  1439. Referring: prvInsertTimerInActiveList.part.0/57 (read)prvSwitchTimerLists/28 (write)prvProcessTimerOrBlockTask/23 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write)
  1440. Availability: available
  1441. Varpool flags:
  1442. pxCurrentTimerList/6 (pxCurrentTimerList) @05eb04c8
  1443. Type: variable definition analyzed
  1444. Visibility: prevailing_def_ironly
  1445. References:
  1446. Referring: prvSwitchTimerLists/28 (write)prvProcessExpiredTimer/21 (read)prvInsertTimerInActiveList/26 (read)prvGetNextExpireTime/24 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write)
  1447. Availability: available
  1448. Varpool flags:
  1449. xActiveTimerList2/5 (xActiveTimerList2) @05eb0438
  1450. Type: variable definition analyzed
  1451. Visibility: prevailing_def_ironly
  1452. References:
  1453. Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  1454. Availability: available
  1455. Varpool flags:
  1456. xActiveTimerList1/4 (xActiveTimerList1) @05eb03a8
  1457. Type: variable definition analyzed
  1458. Visibility: prevailing_def_ironly
  1459. References:
  1460. Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  1461. Availability: available
  1462. Varpool flags:
  1463. prvInsertTimerInActiveList.part.0 (struct Timer_t * const pxTimer)
  1464. {
  1465. BaseType_t xProcessTimerNow;
  1466. const TickType_t xNextExpiryTime;
  1467. const TickType_t xTimeNow;
  1468. const TickType_t xCommandTime;
  1469. struct List_t * pxOverflowTimerList.14_1;
  1470. struct ListItem_t * _3;
  1471. <bb 4> [local count: 1073741824]:
  1472. # DEBUG D#6 s=> xNextExpiryTime
  1473. # DEBUG xNextExpiryTime => D#6
  1474. # DEBUG D#5 s=> xTimeNow
  1475. # DEBUG xTimeNow => D#5
  1476. # DEBUG D#4 s=> xCommandTime
  1477. # DEBUG xCommandTime => D#4
  1478. <bb 2> [local count: 1073741824]:
  1479. # DEBUG BEGIN_STMT
  1480. pxOverflowTimerList.14_1 = pxOverflowTimerList;
  1481. _3 = &pxTimer_2(D)->xTimerListItem;
  1482. vListInsert (pxOverflowTimerList.14_1, _3);
  1483. <bb 3> [local count: 1073741824]:
  1484. # xProcessTimerNow_4 = PHI <0(2)>
  1485. # DEBUG xProcessTimerNow => xProcessTimerNow_4
  1486. # DEBUG BEGIN_STMT
  1487. return xProcessTimerNow_4;
  1488. }
  1489. vTimerSetTimerNumber (struct tmrTimerControl * xTimer, UBaseType_t uxTimerNumber)
  1490. {
  1491. <bb 2> [local count: 1073741824]:
  1492. # DEBUG BEGIN_STMT
  1493. MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D);
  1494. return;
  1495. }
  1496. uxTimerGetTimerNumber (struct tmrTimerControl * xTimer)
  1497. {
  1498. UBaseType_t _3;
  1499. <bb 2> [local count: 1073741824]:
  1500. # DEBUG BEGIN_STMT
  1501. _3 = MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber;
  1502. return _3;
  1503. }
  1504. xTimerPendFunctionCall (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait)
  1505. {
  1506. uint32_t ulNewBASEPRI;
  1507. BaseType_t xReturn;
  1508. struct DaemonTaskMessage_t xMessage;
  1509. struct QueueDefinition * xTimerQueue.26_1;
  1510. <bb 2> [local count: 230763]:
  1511. # DEBUG BEGIN_STMT
  1512. # DEBUG BEGIN_STMT
  1513. # DEBUG BEGIN_STMT
  1514. xTimerQueue.26_1 = xTimerQueue;
  1515. if (xTimerQueue.26_1 == 0B)
  1516. goto <bb 3>; [46.53%]
  1517. else
  1518. goto <bb 5>; [53.47%]
  1519. <bb 3> [local count: 107374]:
  1520. # DEBUG BEGIN_STMT
  1521. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1522. # DEBUG BEGIN_STMT
  1523. # DEBUG BEGIN_STMT
  1524. __asm__ __volatile__(" mov %0, %1
  1525. msr basepri, %0
  1526. isb
  1527. dsb
  1528. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  1529. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  1530. <bb 4> [local count: 1073741824]:
  1531. # DEBUG ulNewBASEPRI => NULL
  1532. # DEBUG BEGIN_STMT
  1533. # DEBUG BEGIN_STMT
  1534. # DEBUG BEGIN_STMT
  1535. <bb 6> [local count: 1073741824]:
  1536. goto <bb 4>; [100.00%]
  1537. <bb 5> [local count: 123389]:
  1538. # DEBUG BEGIN_STMT
  1539. # DEBUG BEGIN_STMT
  1540. xMessage.xMessageID = -1;
  1541. # DEBUG BEGIN_STMT
  1542. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  1543. # DEBUG BEGIN_STMT
  1544. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  1545. # DEBUG BEGIN_STMT
  1546. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  1547. # DEBUG BEGIN_STMT
  1548. xReturn_12 = xQueueGenericSend (xTimerQueue.26_1, &xMessage, xTicksToWait_10(D), 0);
  1549. # DEBUG xReturn => xReturn_12
  1550. # DEBUG BEGIN_STMT
  1551. # DEBUG BEGIN_STMT
  1552. xMessage ={v} {CLOBBER};
  1553. return xReturn_12;
  1554. }
  1555. xTimerPendFunctionCallFromISR (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, BaseType_t * pxHigherPriorityTaskWoken)
  1556. {
  1557. BaseType_t xReturn;
  1558. struct DaemonTaskMessage_t xMessage;
  1559. struct QueueDefinition * xTimerQueue.25_1;
  1560. <bb 2> [local count: 1073741824]:
  1561. # DEBUG BEGIN_STMT
  1562. # DEBUG BEGIN_STMT
  1563. # DEBUG BEGIN_STMT
  1564. xMessage.xMessageID = -2;
  1565. # DEBUG BEGIN_STMT
  1566. xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D);
  1567. # DEBUG BEGIN_STMT
  1568. xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D);
  1569. # DEBUG BEGIN_STMT
  1570. xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D);
  1571. # DEBUG BEGIN_STMT
  1572. xTimerQueue.25_1 = xTimerQueue;
  1573. xReturn_12 = xQueueGenericSendFromISR (xTimerQueue.25_1, &xMessage, pxHigherPriorityTaskWoken_10(D), 0);
  1574. # DEBUG xReturn => xReturn_12
  1575. # DEBUG BEGIN_STMT
  1576. # DEBUG BEGIN_STMT
  1577. xMessage ={v} {CLOBBER};
  1578. return xReturn_12;
  1579. }
  1580. vTimerSetTimerID (struct tmrTimerControl * xTimer, void * pvNewID)
  1581. {
  1582. uint32_t ulNewBASEPRI;
  1583. <bb 2> [local count: 230763]:
  1584. # DEBUG BEGIN_STMT
  1585. # DEBUG pxTimer => xTimer_1(D)
  1586. # DEBUG BEGIN_STMT
  1587. if (xTimer_1(D) == 0B)
  1588. goto <bb 3>; [46.53%]
  1589. else
  1590. goto <bb 5>; [53.47%]
  1591. <bb 3> [local count: 107374]:
  1592. # DEBUG BEGIN_STMT
  1593. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1594. # DEBUG BEGIN_STMT
  1595. # DEBUG BEGIN_STMT
  1596. __asm__ __volatile__(" mov %0, %1
  1597. msr basepri, %0
  1598. isb
  1599. dsb
  1600. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  1601. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  1602. <bb 4> [local count: 1073741824]:
  1603. # DEBUG ulNewBASEPRI => NULL
  1604. # DEBUG BEGIN_STMT
  1605. # DEBUG BEGIN_STMT
  1606. # DEBUG BEGIN_STMT
  1607. <bb 6> [local count: 1073741824]:
  1608. goto <bb 4>; [100.00%]
  1609. <bb 5> [local count: 123389]:
  1610. # DEBUG BEGIN_STMT
  1611. # DEBUG BEGIN_STMT
  1612. vPortEnterCritical ();
  1613. # DEBUG BEGIN_STMT
  1614. MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID = pvNewID_4(D);
  1615. # DEBUG BEGIN_STMT
  1616. vPortExitCritical ();
  1617. return;
  1618. }
  1619. pvTimerGetTimerID (struct tmrTimerControl * const xTimer)
  1620. {
  1621. uint32_t ulNewBASEPRI;
  1622. void * pvReturn;
  1623. <bb 2> [local count: 230763]:
  1624. # DEBUG BEGIN_STMT
  1625. # DEBUG pxTimer => xTimer_1(D)
  1626. # DEBUG BEGIN_STMT
  1627. # DEBUG BEGIN_STMT
  1628. if (xTimer_1(D) == 0B)
  1629. goto <bb 3>; [46.53%]
  1630. else
  1631. goto <bb 5>; [53.47%]
  1632. <bb 3> [local count: 107374]:
  1633. # DEBUG BEGIN_STMT
  1634. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1635. # DEBUG BEGIN_STMT
  1636. # DEBUG BEGIN_STMT
  1637. __asm__ __volatile__(" mov %0, %1
  1638. msr basepri, %0
  1639. isb
  1640. dsb
  1641. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  1642. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  1643. <bb 4> [local count: 1073741824]:
  1644. # DEBUG ulNewBASEPRI => NULL
  1645. # DEBUG BEGIN_STMT
  1646. # DEBUG BEGIN_STMT
  1647. # DEBUG BEGIN_STMT
  1648. <bb 6> [local count: 1073741824]:
  1649. goto <bb 4>; [100.00%]
  1650. <bb 5> [local count: 123389]:
  1651. # DEBUG BEGIN_STMT
  1652. # DEBUG BEGIN_STMT
  1653. vPortEnterCritical ();
  1654. # DEBUG BEGIN_STMT
  1655. pvReturn_4 = MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID;
  1656. # DEBUG pvReturn => pvReturn_4
  1657. # DEBUG BEGIN_STMT
  1658. vPortExitCritical ();
  1659. # DEBUG BEGIN_STMT
  1660. return pvReturn_4;
  1661. }
  1662. xTimerIsTimerActive (struct tmrTimerControl * xTimer)
  1663. {
  1664. uint32_t ulNewBASEPRI;
  1665. unsigned char _1;
  1666. long int _2;
  1667. unsigned char _4;
  1668. <bb 2> [local count: 230763]:
  1669. # DEBUG BEGIN_STMT
  1670. # DEBUG BEGIN_STMT
  1671. # DEBUG pxTimer => xTimer_3(D)
  1672. # DEBUG BEGIN_STMT
  1673. if (xTimer_3(D) == 0B)
  1674. goto <bb 3>; [46.53%]
  1675. else
  1676. goto <bb 5>; [53.47%]
  1677. <bb 3> [local count: 107374]:
  1678. # DEBUG BEGIN_STMT
  1679. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1680. # DEBUG BEGIN_STMT
  1681. # DEBUG BEGIN_STMT
  1682. __asm__ __volatile__(" mov %0, %1
  1683. msr basepri, %0
  1684. isb
  1685. dsb
  1686. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  1687. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  1688. <bb 4> [local count: 1073741824]:
  1689. # DEBUG ulNewBASEPRI => NULL
  1690. # DEBUG BEGIN_STMT
  1691. # DEBUG BEGIN_STMT
  1692. # DEBUG BEGIN_STMT
  1693. <bb 6> [local count: 1073741824]:
  1694. goto <bb 4>; [100.00%]
  1695. <bb 5> [local count: 123389]:
  1696. # DEBUG BEGIN_STMT
  1697. # DEBUG BEGIN_STMT
  1698. vPortEnterCritical ();
  1699. # DEBUG BEGIN_STMT
  1700. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  1701. _4 = _1 & 1;
  1702. _2 = (long int) _4;
  1703. # DEBUG xReturn => _2
  1704. # DEBUG BEGIN_STMT
  1705. vPortExitCritical ();
  1706. # DEBUG BEGIN_STMT
  1707. return _2;
  1708. }
  1709. prvCheckForValidListAndQueue ()
  1710. {
  1711. struct QueueDefinition * xTimerQueue.17_1;
  1712. struct QueueDefinition * _2;
  1713. <bb 2> [local count: 1073741824]:
  1714. # DEBUG BEGIN_STMT
  1715. vPortEnterCritical ();
  1716. # DEBUG BEGIN_STMT
  1717. xTimerQueue.17_1 = xTimerQueue;
  1718. if (xTimerQueue.17_1 == 0B)
  1719. goto <bb 3>; [17.43%]
  1720. else
  1721. goto <bb 5>; [82.57%]
  1722. <bb 3> [local count: 187153200]:
  1723. # DEBUG BEGIN_STMT
  1724. vListInitialise (&xActiveTimerList1);
  1725. # DEBUG BEGIN_STMT
  1726. vListInitialise (&xActiveTimerList2);
  1727. # DEBUG BEGIN_STMT
  1728. pxCurrentTimerList = &xActiveTimerList1;
  1729. # DEBUG BEGIN_STMT
  1730. pxOverflowTimerList = &xActiveTimerList2;
  1731. # DEBUG BEGIN_STMT
  1732. _2 = xQueueGenericCreate (10, 16, 0);
  1733. xTimerQueue = _2;
  1734. # DEBUG BEGIN_STMT
  1735. if (_2 != 0B)
  1736. goto <bb 4>; [53.47%]
  1737. else
  1738. goto <bb 5>; [46.53%]
  1739. <bb 4> [local count: 100070816]:
  1740. # DEBUG BEGIN_STMT
  1741. vQueueAddToRegistry (_2, "TmrQ");
  1742. <bb 5> [local count: 1073741824]:
  1743. # DEBUG BEGIN_STMT
  1744. # DEBUG BEGIN_STMT
  1745. vPortExitCritical ();
  1746. return;
  1747. }
  1748. prvSwitchTimerLists ()
  1749. {
  1750. TickType_t xNextExpireTime;
  1751. struct xLIST_ITEM * _1;
  1752. struct List_t * pxCurrentTimerList.11_2;
  1753. long unsigned int _3;
  1754. struct List_t * pxOverflowTimerList.12_4;
  1755. struct List_t * pxCurrentTimerList.11_7;
  1756. <bb 2> [local count: 118111600]:
  1757. # DEBUG BEGIN_STMT
  1758. # DEBUG BEGIN_STMT
  1759. # DEBUG BEGIN_STMT
  1760. goto <bb 4>; [100.00%]
  1761. <bb 3> [local count: 955630223]:
  1762. # DEBUG BEGIN_STMT
  1763. _1 = pxCurrentTimerList.11_2->xListEnd.pxNext;
  1764. xNextExpireTime_10 = _1->xItemValue;
  1765. # DEBUG xNextExpireTime => xNextExpireTime_10
  1766. # DEBUG BEGIN_STMT
  1767. prvProcessExpiredTimer (xNextExpireTime_10, 4294967295);
  1768. <bb 4> [local count: 1073741824]:
  1769. # DEBUG BEGIN_STMT
  1770. pxCurrentTimerList.11_2 = pxCurrentTimerList;
  1771. _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems;
  1772. if (_3 != 0)
  1773. goto <bb 3>; [89.00%]
  1774. else
  1775. goto <bb 5>; [11.00%]
  1776. <bb 5> [local count: 118111601]:
  1777. # pxCurrentTimerList.11_7 = PHI <pxCurrentTimerList.11_2(4)>
  1778. # DEBUG BEGIN_STMT
  1779. # DEBUG pxTemp => pxCurrentTimerList.11_7
  1780. # DEBUG BEGIN_STMT
  1781. pxOverflowTimerList.12_4 = pxOverflowTimerList;
  1782. pxCurrentTimerList = pxOverflowTimerList.12_4;
  1783. # DEBUG BEGIN_STMT
  1784. pxOverflowTimerList = pxCurrentTimerList.11_7;
  1785. return;
  1786. }
  1787. prvProcessReceivedCommands ()
  1788. {
  1789. uint32_t ulNewBASEPRI;
  1790. TickType_t xTimeNow;
  1791. BaseType_t xTimerListsWereSwitched;
  1792. struct Timer_t * pxTimer;
  1793. struct DaemonTaskMessage_t xMessage;
  1794. long int _1;
  1795. void (*<T68e>) (void *, uint32_t) _2;
  1796. void * _3;
  1797. long unsigned int _4;
  1798. long int _5;
  1799. struct xLIST * _6;
  1800. struct ListItem_t * _7;
  1801. long int _8;
  1802. unsigned char _9;
  1803. unsigned char _10;
  1804. long unsigned int _11;
  1805. long unsigned int _12;
  1806. long unsigned int _13;
  1807. long int _15;
  1808. unsigned char _16;
  1809. long unsigned int _17;
  1810. long unsigned int _18;
  1811. long unsigned int _19;
  1812. unsigned char _21;
  1813. void (*<T689>) (struct tmrTimerControl *) _22;
  1814. unsigned char _23;
  1815. unsigned char _24;
  1816. unsigned char _25;
  1817. unsigned char _26;
  1818. long unsigned int _27;
  1819. long unsigned int _30;
  1820. unsigned char _31;
  1821. unsigned char _33;
  1822. struct QueueDefinition * xTimerQueue.16_34;
  1823. long int _35;
  1824. unsigned char _63;
  1825. unsigned char _65;
  1826. <bb 2> [local count: 10436763]:
  1827. # DEBUG BEGIN_STMT
  1828. # DEBUG BEGIN_STMT
  1829. # DEBUG BEGIN_STMT
  1830. # DEBUG BEGIN_STMT
  1831. # DEBUG BEGIN_STMT
  1832. goto <bb 23>; [100.00%]
  1833. <bb 3> [local count: 177477686]:
  1834. # DEBUG BEGIN_STMT
  1835. _1 = xMessage.xMessageID;
  1836. if (_1 < 0)
  1837. goto <bb 4>; [41.00%]
  1838. else
  1839. goto <bb 5>; [59.00%]
  1840. <bb 4> [local count: 72765851]:
  1841. # DEBUG BEGIN_STMT
  1842. # DEBUG pxCallback => &xMessage.u.xCallbackParameters
  1843. # DEBUG BEGIN_STMT
  1844. # DEBUG BEGIN_STMT
  1845. # DEBUG BEGIN_STMT
  1846. _2 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pxCallbackFunction;
  1847. _3 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].pvParameter1;
  1848. _4 = MEM[(const struct CallbackParameters_t *)&xMessage + 4B].ulParameter2;
  1849. _2 (_3, _4);
  1850. <bb 5> [local count: 177477686]:
  1851. # DEBUG BEGIN_STMT
  1852. # DEBUG BEGIN_STMT
  1853. _5 = xMessage.xMessageID;
  1854. if (_5 >= 0)
  1855. goto <bb 6>; [5.50%]
  1856. else
  1857. goto <bb 29>; [94.50%]
  1858. <bb 29> [local count: 167716413]:
  1859. goto <bb 25>; [100.00%]
  1860. <bb 6> [local count: 9761273]:
  1861. # DEBUG BEGIN_STMT
  1862. pxTimer_47 = xMessage.u.xTimerParameters.pxTimer;
  1863. # DEBUG pxTimer => pxTimer_47
  1864. # DEBUG BEGIN_STMT
  1865. _6 = pxTimer_47->xTimerListItem.pvContainer;
  1866. if (_6 != 0B)
  1867. goto <bb 7>; [53.47%]
  1868. else
  1869. goto <bb 8>; [46.53%]
  1870. <bb 7> [local count: 5219353]:
  1871. # DEBUG BEGIN_STMT
  1872. _7 = &pxTimer_47->xTimerListItem;
  1873. uxListRemove (_7);
  1874. <bb 8> [local count: 9761273]:
  1875. # DEBUG BEGIN_STMT
  1876. # DEBUG BEGIN_STMT
  1877. # DEBUG BEGIN_STMT
  1878. xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched);
  1879. # DEBUG xTimeNow => xTimeNow_50
  1880. # DEBUG BEGIN_STMT
  1881. _8 = xMessage.xMessageID;
  1882. switch (_8) <default: <L41> [20.00%], case 1 ... 2: <L11> [20.00%], case 3: <L21> [20.00%], case 4: <L23> [20.00%], case 5: <L28> [20.00%], case 6 ... 7: <L11> [20.00%], case 8: <L21> [20.00%], case 9: <L23> [20.00%]>
  1883. <bb 28> [local count: 1952255]:
  1884. <L41>:
  1885. goto <bb 24>; [100.00%]
  1886. <bb 9> [local count: 1952255]:
  1887. # pxTimer_14 = PHI <pxTimer_47(8)>
  1888. # xTimeNow_46 = PHI <xTimeNow_50(8)>
  1889. <L11>:
  1890. # DEBUG BEGIN_STMT
  1891. _9 = pxTimer_14->ucStatus;
  1892. _10 = _9 | 1;
  1893. pxTimer_14->ucStatus = _10;
  1894. # DEBUG BEGIN_STMT
  1895. _11 = xMessage.u.xTimerParameters.xMessageValue;
  1896. _12 = pxTimer_14->xTimerPeriodInTicks;
  1897. _13 = _11 + _12;
  1898. _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11);
  1899. if (_15 != 0)
  1900. goto <bb 10>; [50.00%]
  1901. else
  1902. goto <bb 22>; [50.00%]
  1903. <bb 10> [local count: 976127]:
  1904. # DEBUG BEGIN_STMT
  1905. _16 = pxTimer_14->ucStatus;
  1906. _65 = _16 & 4;
  1907. if (_65 != 0)
  1908. goto <bb 11>; [33.00%]
  1909. else
  1910. goto <bb 12>; [67.00%]
  1911. <bb 11> [local count: 322122]:
  1912. # DEBUG BEGIN_STMT
  1913. _17 = xMessage.u.xTimerParameters.xMessageValue;
  1914. _18 = pxTimer_14->xTimerPeriodInTicks;
  1915. _19 = _17 + _18;
  1916. prvReloadTimer (pxTimer_14, _19, xTimeNow_46);
  1917. goto <bb 13>; [100.00%]
  1918. <bb 12> [local count: 654005]:
  1919. # DEBUG BEGIN_STMT
  1920. _21 = _16 & 254;
  1921. pxTimer_14->ucStatus = _21;
  1922. <bb 13> [local count: 976127]:
  1923. # DEBUG BEGIN_STMT
  1924. # DEBUG BEGIN_STMT
  1925. _22 = pxTimer_14->pxCallbackFunction;
  1926. _22 (pxTimer_14);
  1927. goto <bb 22>; [100.00%]
  1928. <bb 14> [local count: 1952255]:
  1929. # pxTimer_20 = PHI <pxTimer_47(8)>
  1930. <L21>:
  1931. # DEBUG BEGIN_STMT
  1932. _23 = pxTimer_20->ucStatus;
  1933. _24 = _23 & 254;
  1934. pxTimer_20->ucStatus = _24;
  1935. # DEBUG BEGIN_STMT
  1936. goto <bb 22>; [100.00%]
  1937. <bb 15> [local count: 1952255]:
  1938. # pxTimer_44 = PHI <pxTimer_47(8)>
  1939. # xTimeNow_67 = PHI <xTimeNow_50(8)>
  1940. <L23>:
  1941. # DEBUG BEGIN_STMT
  1942. _25 = pxTimer_44->ucStatus;
  1943. _26 = _25 | 1;
  1944. pxTimer_44->ucStatus = _26;
  1945. # DEBUG BEGIN_STMT
  1946. _27 = xMessage.u.xTimerParameters.xMessageValue;
  1947. pxTimer_44->xTimerPeriodInTicks = _27;
  1948. # DEBUG BEGIN_STMT
  1949. if (_27 == 0)
  1950. goto <bb 16>; [5.50%]
  1951. else
  1952. goto <bb 18>; [94.50%]
  1953. <bb 16> [local count: 107374]:
  1954. # DEBUG BEGIN_STMT
  1955. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  1956. # DEBUG BEGIN_STMT
  1957. # DEBUG BEGIN_STMT
  1958. __asm__ __volatile__(" mov %0, %1
  1959. msr basepri, %0
  1960. isb
  1961. dsb
  1962. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  1963. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  1964. <bb 17> [local count: 1073741824]:
  1965. # DEBUG ulNewBASEPRI => NULL
  1966. # DEBUG BEGIN_STMT
  1967. # DEBUG BEGIN_STMT
  1968. # DEBUG BEGIN_STMT
  1969. <bb 27> [local count: 1073741824]:
  1970. goto <bb 17>; [100.00%]
  1971. <bb 18> [local count: 1844881]:
  1972. # DEBUG BEGIN_STMT
  1973. # DEBUG BEGIN_STMT
  1974. _30 = _27 + xTimeNow_67;
  1975. prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67);
  1976. # DEBUG BEGIN_STMT
  1977. goto <bb 22>; [100.00%]
  1978. <bb 19> [local count: 1952255]:
  1979. # pxTimer_56 = PHI <pxTimer_47(8)>
  1980. <L28>:
  1981. # DEBUG BEGIN_STMT
  1982. _31 = pxTimer_56->ucStatus;
  1983. _63 = _31 & 2;
  1984. if (_63 == 0)
  1985. goto <bb 20>; [33.00%]
  1986. else
  1987. goto <bb 21>; [67.00%]
  1988. <bb 20> [local count: 644244]:
  1989. # DEBUG BEGIN_STMT
  1990. vPortFree (pxTimer_56);
  1991. goto <bb 22>; [100.00%]
  1992. <bb 21> [local count: 1308011]:
  1993. # DEBUG BEGIN_STMT
  1994. _33 = _31 & 254;
  1995. pxTimer_56->ucStatus = _33;
  1996. <bb 22> [local count: 7701644]:
  1997. <bb 23> [local count: 18138407]:
  1998. <bb 24> [local count: 20090662]:
  1999. <L38>:
  2000. <bb 25> [local count: 187807075]:
  2001. # DEBUG BEGIN_STMT
  2002. xTimerQueue.16_34 = xTimerQueue;
  2003. _35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0);
  2004. if (_35 != 0)
  2005. goto <bb 3>; [94.50%]
  2006. else
  2007. goto <bb 26>; [5.50%]
  2008. <bb 26> [local count: 10329389]:
  2009. xMessage ={v} {CLOBBER};
  2010. xTimerListsWereSwitched ={v} {CLOBBER};
  2011. return;
  2012. }
  2013. prvInsertTimerInActiveList (struct Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime)
  2014. {
  2015. BaseType_t xProcessTimerNow;
  2016. long unsigned int _1;
  2017. long unsigned int _2;
  2018. struct List_t * pxCurrentTimerList.15_3;
  2019. struct ListItem_t * _4;
  2020. <bb 2> [local count: 1073741824]:
  2021. # DEBUG BEGIN_STMT
  2022. # DEBUG xProcessTimerNow => 0
  2023. # DEBUG BEGIN_STMT
  2024. pxTimer_8(D)->xTimerListItem.xItemValue = xNextExpiryTime_9(D);
  2025. # DEBUG BEGIN_STMT
  2026. pxTimer_8(D)->xTimerListItem.pvOwner = pxTimer_8(D);
  2027. # DEBUG BEGIN_STMT
  2028. if (xNextExpiryTime_9(D) <= xTimeNow_12(D))
  2029. goto <bb 3>; [50.00%]
  2030. else
  2031. goto <bb 5>; [50.00%]
  2032. <bb 3> [local count: 536870913]:
  2033. # DEBUG BEGIN_STMT
  2034. _1 = xTimeNow_12(D) - xCommandTime_13(D);
  2035. _2 = pxTimer_8(D)->xTimerPeriodInTicks;
  2036. if (_1 >= _2)
  2037. goto <bb 8>; [67.00%]
  2038. else
  2039. goto <bb 4>; [33.00%]
  2040. <bb 4> [local count: 177167400]:
  2041. # DEBUG D#1 => xNextExpiryTime_9(D)
  2042. # DEBUG D#2 => xTimeNow_12(D)
  2043. # DEBUG D#3 => xCommandTime_13(D)
  2044. xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D));
  2045. goto <bb 8>; [100.00%]
  2046. <bb 5> [local count: 536870913]:
  2047. # DEBUG BEGIN_STMT
  2048. if (xTimeNow_12(D) < xCommandTime_13(D))
  2049. goto <bb 6>; [67.00%]
  2050. else
  2051. goto <bb 7>; [33.00%]
  2052. <bb 6> [local count: 359703511]:
  2053. if (xNextExpiryTime_9(D) >= xCommandTime_13(D))
  2054. goto <bb 8>; [50.00%]
  2055. else
  2056. goto <bb 7>; [50.00%]
  2057. <bb 7> [local count: 357019157]:
  2058. # DEBUG BEGIN_STMT
  2059. pxCurrentTimerList.15_3 = pxCurrentTimerList;
  2060. _4 = &pxTimer_8(D)->xTimerListItem;
  2061. vListInsert (pxCurrentTimerList.15_3, _4);
  2062. <bb 8> [local count: 1073741824]:
  2063. # xProcessTimerNow_5 = PHI <xProcessTimerNow_16(4), 1(6), 0(7), 1(3)>
  2064. # DEBUG xProcessTimerNow => xProcessTimerNow_5
  2065. # DEBUG BEGIN_STMT
  2066. return xProcessTimerNow_5;
  2067. }
  2068. prvSampleTimeNow (BaseType_t * const pxTimerListsWereSwitched)
  2069. {
  2070. static TickType_t xLastTime = 0;
  2071. TickType_t xTimeNow;
  2072. long unsigned int xLastTime.9_1;
  2073. <bb 2> [local count: 1073741824]:
  2074. # DEBUG BEGIN_STMT
  2075. # DEBUG BEGIN_STMT
  2076. # DEBUG BEGIN_STMT
  2077. xTimeNow_5 = xTaskGetTickCount ();
  2078. # DEBUG xTimeNow => xTimeNow_5
  2079. # DEBUG BEGIN_STMT
  2080. xLastTime.9_1 = xLastTime;
  2081. if (xLastTime.9_1 > xTimeNow_5)
  2082. goto <bb 3>; [33.00%]
  2083. else
  2084. goto <bb 4>; [67.00%]
  2085. <bb 3> [local count: 354334802]:
  2086. # DEBUG BEGIN_STMT
  2087. prvSwitchTimerLists ();
  2088. # DEBUG BEGIN_STMT
  2089. *pxTimerListsWereSwitched_6(D) = 1;
  2090. goto <bb 5>; [100.00%]
  2091. <bb 4> [local count: 719407023]:
  2092. # DEBUG BEGIN_STMT
  2093. *pxTimerListsWereSwitched_6(D) = 0;
  2094. <bb 5> [local count: 1073741824]:
  2095. # DEBUG BEGIN_STMT
  2096. xLastTime = xTimeNow_5;
  2097. # DEBUG BEGIN_STMT
  2098. return xTimeNow_5;
  2099. }
  2100. prvGetNextExpireTime (BaseType_t * const pxListWasEmpty)
  2101. {
  2102. TickType_t xNextExpireTime;
  2103. struct List_t * pxCurrentTimerList.3_1;
  2104. long unsigned int _2;
  2105. struct xLIST_ITEM * _3;
  2106. long int iftmp.2_5;
  2107. <bb 2> [local count: 1073741824]:
  2108. # DEBUG BEGIN_STMT
  2109. # DEBUG BEGIN_STMT
  2110. pxCurrentTimerList.3_1 = pxCurrentTimerList;
  2111. _2 ={v} pxCurrentTimerList.3_1->uxNumberOfItems;
  2112. if (_2 == 0)
  2113. goto <bb 4>; [50.00%]
  2114. else
  2115. goto <bb 3>; [50.00%]
  2116. <bb 3> [local count: 536870913]:
  2117. <bb 4> [local count: 1073741824]:
  2118. # iftmp.2_5 = PHI <1(2), 0(3)>
  2119. *pxListWasEmpty_7(D) = iftmp.2_5;
  2120. # DEBUG BEGIN_STMT
  2121. if (iftmp.2_5 == 0)
  2122. goto <bb 5>; [50.00%]
  2123. else
  2124. goto <bb 6>; [50.00%]
  2125. <bb 5> [local count: 536870913]:
  2126. # DEBUG BEGIN_STMT
  2127. _3 = pxCurrentTimerList.3_1->xListEnd.pxNext;
  2128. xNextExpireTime_9 = _3->xItemValue;
  2129. # DEBUG xNextExpireTime => xNextExpireTime_9
  2130. <bb 6> [local count: 1073741824]:
  2131. # xNextExpireTime_4 = PHI <xNextExpireTime_9(5), 0(4)>
  2132. # DEBUG xNextExpireTime => xNextExpireTime_4
  2133. # DEBUG BEGIN_STMT
  2134. return xNextExpireTime_4;
  2135. }
  2136. prvProcessTimerOrBlockTask (const TickType_t xNextExpireTime, BaseType_t xListWasEmpty)
  2137. {
  2138. BaseType_t xTimerListsWereSwitched;
  2139. TickType_t xTimeNow;
  2140. long int xTimerListsWereSwitched.5_1;
  2141. struct List_t * pxOverflowTimerList.7_2;
  2142. long unsigned int _3;
  2143. struct QueueDefinition * xTimerQueue.8_4;
  2144. long unsigned int _5;
  2145. long int _6;
  2146. <bb 2> [local count: 1073741823]:
  2147. # DEBUG BEGIN_STMT
  2148. # DEBUG BEGIN_STMT
  2149. # DEBUG BEGIN_STMT
  2150. vTaskSuspendAll ();
  2151. # DEBUG BEGIN_STMT
  2152. xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched);
  2153. # DEBUG xTimeNow => xTimeNow_12
  2154. # DEBUG BEGIN_STMT
  2155. xTimerListsWereSwitched.5_1 = xTimerListsWereSwitched;
  2156. if (xTimerListsWereSwitched.5_1 == 0)
  2157. goto <bb 3>; [67.00%]
  2158. else
  2159. goto <bb 12>; [33.00%]
  2160. <bb 3> [local count: 719407022]:
  2161. # DEBUG BEGIN_STMT
  2162. if (xListWasEmpty_14(D) == 0)
  2163. goto <bb 4>; [50.00%]
  2164. else
  2165. goto <bb 6>; [50.00%]
  2166. <bb 4> [local count: 359703511]:
  2167. if (xTimeNow_12 >= xNextExpireTime_15(D))
  2168. goto <bb 5>; [33.00%]
  2169. else
  2170. goto <bb 6>; [67.00%]
  2171. <bb 5> [local count: 118702158]:
  2172. # DEBUG BEGIN_STMT
  2173. xTaskResumeAll ();
  2174. # DEBUG BEGIN_STMT
  2175. prvProcessExpiredTimer (xNextExpireTime_15(D), xTimeNow_12);
  2176. goto <bb 13>; [100.00%]
  2177. <bb 6> [local count: 600704864]:
  2178. # DEBUG BEGIN_STMT
  2179. if (xListWasEmpty_14(D) != 0)
  2180. goto <bb 7>; [50.00%]
  2181. else
  2182. goto <bb 10>; [50.00%]
  2183. <bb 7> [local count: 300352432]:
  2184. # DEBUG BEGIN_STMT
  2185. pxOverflowTimerList.7_2 = pxOverflowTimerList;
  2186. _3 ={v} pxOverflowTimerList.7_2->uxNumberOfItems;
  2187. if (_3 == 0)
  2188. goto <bb 10>; [50.00%]
  2189. else
  2190. goto <bb 8>; [50.00%]
  2191. <bb 8> [local count: 150176216]:
  2192. <bb 10> [local count: 600704864]:
  2193. # xListWasEmpty_7 = PHI <xListWasEmpty_14(D)(6), 0(8), 1(7)>
  2194. # DEBUG xListWasEmpty => xListWasEmpty_7
  2195. # DEBUG BEGIN_STMT
  2196. xTimerQueue.8_4 = xTimerQueue;
  2197. _5 = xNextExpireTime_15(D) - xTimeNow_12;
  2198. vQueueWaitForMessageRestricted (xTimerQueue.8_4, _5, xListWasEmpty_7);
  2199. # DEBUG BEGIN_STMT
  2200. _6 = xTaskResumeAll ();
  2201. if (_6 == 0)
  2202. goto <bb 11>; [50.00%]
  2203. else
  2204. goto <bb 13>; [50.00%]
  2205. <bb 11> [local count: 300352432]:
  2206. # DEBUG BEGIN_STMT
  2207. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2208. # DEBUG BEGIN_STMT
  2209. __asm__ __volatile__("dsb" : : : "memory");
  2210. # DEBUG BEGIN_STMT
  2211. __asm__ __volatile__("isb");
  2212. # DEBUG BEGIN_STMT
  2213. goto <bb 13>; [100.00%]
  2214. <bb 12> [local count: 354334802]:
  2215. # DEBUG BEGIN_STMT
  2216. xTaskResumeAll ();
  2217. <bb 13> [local count: 1073741824]:
  2218. xTimerListsWereSwitched ={v} {CLOBBER};
  2219. return;
  2220. }
  2221. prvTimerTask (void * pvParameters)
  2222. {
  2223. BaseType_t xListWasEmpty;
  2224. TickType_t xNextExpireTime;
  2225. long int xListWasEmpty.1_1;
  2226. <bb 2> [local count: 107374]:
  2227. <bb 3> [local count: 1073741824]:
  2228. # DEBUG BEGIN_STMT
  2229. # DEBUG BEGIN_STMT
  2230. # DEBUG BEGIN_STMT
  2231. # DEBUG BEGIN_STMT
  2232. # DEBUG BEGIN_STMT
  2233. xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty);
  2234. # DEBUG xNextExpireTime => xNextExpireTime_5
  2235. # DEBUG BEGIN_STMT
  2236. xListWasEmpty.1_1 = xListWasEmpty;
  2237. prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1);
  2238. # DEBUG BEGIN_STMT
  2239. prvProcessReceivedCommands ();
  2240. # DEBUG BEGIN_STMT
  2241. <bb 4> [local count: 1073741824]:
  2242. goto <bb 3>; [100.00%]
  2243. }
  2244. prvProcessExpiredTimer (const TickType_t xNextExpireTime, const TickType_t xTimeNow)
  2245. {
  2246. struct Timer_t * const pxTimer;
  2247. struct List_t * pxCurrentTimerList.13_1;
  2248. struct xLIST_ITEM * _2;
  2249. struct ListItem_t * _3;
  2250. unsigned char _4;
  2251. unsigned char _5;
  2252. void (*<T689>) (struct tmrTimerControl *) _6;
  2253. unsigned char _16;
  2254. <bb 2> [local count: 1073741824]:
  2255. # DEBUG BEGIN_STMT
  2256. pxCurrentTimerList.13_1 = pxCurrentTimerList;
  2257. _2 = pxCurrentTimerList.13_1->xListEnd.pxNext;
  2258. pxTimer_9 = _2->pvOwner;
  2259. # DEBUG pxTimer => pxTimer_9
  2260. # DEBUG BEGIN_STMT
  2261. _3 = &pxTimer_9->xTimerListItem;
  2262. uxListRemove (_3);
  2263. # DEBUG BEGIN_STMT
  2264. _4 = pxTimer_9->ucStatus;
  2265. _16 = _4 & 4;
  2266. if (_16 != 0)
  2267. goto <bb 3>; [33.00%]
  2268. else
  2269. goto <bb 4>; [67.00%]
  2270. <bb 3> [local count: 354334802]:
  2271. # DEBUG BEGIN_STMT
  2272. prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  2273. goto <bb 5>; [100.00%]
  2274. <bb 4> [local count: 719407023]:
  2275. # DEBUG BEGIN_STMT
  2276. _5 = _4 & 254;
  2277. pxTimer_9->ucStatus = _5;
  2278. <bb 5> [local count: 1073741824]:
  2279. # DEBUG BEGIN_STMT
  2280. # DEBUG BEGIN_STMT
  2281. _6 = pxTimer_9->pxCallbackFunction;
  2282. _6 (pxTimer_9);
  2283. return;
  2284. }
  2285. prvReloadTimer (struct Timer_t * const pxTimer, TickType_t xExpiredTime, const TickType_t xTimeNow)
  2286. {
  2287. long unsigned int _1;
  2288. void (*<T689>) (struct tmrTimerControl *) _2;
  2289. long unsigned int _3;
  2290. long unsigned int _4;
  2291. long int _5;
  2292. <bb 2> [local count: 118111600]:
  2293. # DEBUG BEGIN_STMT
  2294. goto <bb 4>; [100.00%]
  2295. <bb 3> [local count: 955630223]:
  2296. # DEBUG BEGIN_STMT
  2297. _1 = pxTimer_10(D)->xTimerPeriodInTicks;
  2298. xExpiredTime_13 = _1 + xExpiredTime_6;
  2299. # DEBUG xExpiredTime => xExpiredTime_13
  2300. # DEBUG BEGIN_STMT
  2301. # DEBUG BEGIN_STMT
  2302. _2 = pxTimer_10(D)->pxCallbackFunction;
  2303. _2 (pxTimer_10(D));
  2304. <bb 4> [local count: 1073741824]:
  2305. # xExpiredTime_6 = PHI <xExpiredTime_8(D)(2), xExpiredTime_13(3)>
  2306. # DEBUG xExpiredTime => xExpiredTime_6
  2307. # DEBUG BEGIN_STMT
  2308. _3 = pxTimer_10(D)->xTimerPeriodInTicks;
  2309. _4 = _3 + xExpiredTime_6;
  2310. _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6);
  2311. if (_5 != 0)
  2312. goto <bb 3>; [89.00%]
  2313. else
  2314. goto <bb 5>; [11.00%]
  2315. <bb 5> [local count: 118111601]:
  2316. return;
  2317. }
  2318. pcTimerGetName (struct tmrTimerControl * xTimer)
  2319. {
  2320. uint32_t ulNewBASEPRI;
  2321. const char * _3;
  2322. <bb 2> [local count: 357913]:
  2323. # DEBUG BEGIN_STMT
  2324. # DEBUG pxTimer => xTimer_1(D)
  2325. # DEBUG BEGIN_STMT
  2326. if (xTimer_1(D) == 0B)
  2327. goto <bb 3>; [30.00%]
  2328. else
  2329. goto <bb 5>; [70.00%]
  2330. <bb 3> [local count: 107374]:
  2331. # DEBUG BEGIN_STMT
  2332. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2333. # DEBUG BEGIN_STMT
  2334. # DEBUG BEGIN_STMT
  2335. __asm__ __volatile__(" mov %0, %1
  2336. msr basepri, %0
  2337. isb
  2338. dsb
  2339. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  2340. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  2341. <bb 4> [local count: 1073741824]:
  2342. # DEBUG ulNewBASEPRI => NULL
  2343. # DEBUG BEGIN_STMT
  2344. # DEBUG BEGIN_STMT
  2345. # DEBUG BEGIN_STMT
  2346. <bb 6> [local count: 1073741824]:
  2347. goto <bb 4>; [100.00%]
  2348. <bb 5> [local count: 250539]:
  2349. # DEBUG BEGIN_STMT
  2350. # DEBUG BEGIN_STMT
  2351. _3 = MEM[(struct Timer_t *)xTimer_1(D)].pcTimerName;
  2352. return _3;
  2353. }
  2354. xTimerGetExpiryTime (struct tmrTimerControl * xTimer)
  2355. {
  2356. uint32_t ulNewBASEPRI;
  2357. TickType_t xReturn;
  2358. <bb 2> [local count: 357913]:
  2359. # DEBUG BEGIN_STMT
  2360. # DEBUG pxTimer => xTimer_1(D)
  2361. # DEBUG BEGIN_STMT
  2362. # DEBUG BEGIN_STMT
  2363. if (xTimer_1(D) == 0B)
  2364. goto <bb 3>; [30.00%]
  2365. else
  2366. goto <bb 5>; [70.00%]
  2367. <bb 3> [local count: 107374]:
  2368. # DEBUG BEGIN_STMT
  2369. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2370. # DEBUG BEGIN_STMT
  2371. # DEBUG BEGIN_STMT
  2372. __asm__ __volatile__(" mov %0, %1
  2373. msr basepri, %0
  2374. isb
  2375. dsb
  2376. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  2377. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  2378. <bb 4> [local count: 1073741824]:
  2379. # DEBUG ulNewBASEPRI => NULL
  2380. # DEBUG BEGIN_STMT
  2381. # DEBUG BEGIN_STMT
  2382. # DEBUG BEGIN_STMT
  2383. <bb 6> [local count: 1073741824]:
  2384. goto <bb 4>; [100.00%]
  2385. <bb 5> [local count: 250539]:
  2386. # DEBUG BEGIN_STMT
  2387. # DEBUG BEGIN_STMT
  2388. xReturn_3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerListItem.xItemValue;
  2389. # DEBUG xReturn => xReturn_3
  2390. # DEBUG BEGIN_STMT
  2391. return xReturn_3;
  2392. }
  2393. uxTimerGetReloadMode (struct tmrTimerControl * xTimer)
  2394. {
  2395. uint32_t ulNewBASEPRI;
  2396. UBaseType_t uxReturn;
  2397. unsigned char _1;
  2398. unsigned char _4;
  2399. <bb 2> [local count: 230763]:
  2400. # DEBUG BEGIN_STMT
  2401. # DEBUG pxTimer => xTimer_3(D)
  2402. # DEBUG BEGIN_STMT
  2403. # DEBUG BEGIN_STMT
  2404. if (xTimer_3(D) == 0B)
  2405. goto <bb 3>; [46.53%]
  2406. else
  2407. goto <bb 5>; [53.47%]
  2408. <bb 3> [local count: 107374]:
  2409. # DEBUG BEGIN_STMT
  2410. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2411. # DEBUG BEGIN_STMT
  2412. # DEBUG BEGIN_STMT
  2413. __asm__ __volatile__(" mov %0, %1
  2414. msr basepri, %0
  2415. isb
  2416. dsb
  2417. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  2418. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  2419. <bb 4> [local count: 1073741824]:
  2420. # DEBUG ulNewBASEPRI => NULL
  2421. # DEBUG BEGIN_STMT
  2422. # DEBUG BEGIN_STMT
  2423. # DEBUG BEGIN_STMT
  2424. <bb 8> [local count: 1073741824]:
  2425. goto <bb 4>; [100.00%]
  2426. <bb 5> [local count: 123389]:
  2427. # DEBUG BEGIN_STMT
  2428. # DEBUG BEGIN_STMT
  2429. vPortEnterCritical ();
  2430. # DEBUG BEGIN_STMT
  2431. _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus;
  2432. _4 = _1 & 4;
  2433. if (_4 == 0)
  2434. goto <bb 7>; [50.00%]
  2435. else
  2436. goto <bb 6>; [50.00%]
  2437. <bb 6> [local count: 61694]:
  2438. # DEBUG BEGIN_STMT
  2439. # DEBUG uxReturn => 1
  2440. <bb 7> [local count: 123389]:
  2441. # uxReturn_2 = PHI <0(5), 1(6)>
  2442. # DEBUG uxReturn => uxReturn_2
  2443. # DEBUG BEGIN_STMT
  2444. vPortExitCritical ();
  2445. # DEBUG BEGIN_STMT
  2446. return uxReturn_2;
  2447. }
  2448. vTimerSetReloadMode (struct tmrTimerControl * xTimer, const UBaseType_t uxAutoReload)
  2449. {
  2450. uint32_t ulNewBASEPRI;
  2451. unsigned char _1;
  2452. unsigned char _2;
  2453. unsigned char _3;
  2454. unsigned char _4;
  2455. <bb 2> [local count: 230763]:
  2456. # DEBUG BEGIN_STMT
  2457. # DEBUG pxTimer => xTimer_6(D)
  2458. # DEBUG BEGIN_STMT
  2459. if (xTimer_6(D) == 0B)
  2460. goto <bb 3>; [46.53%]
  2461. else
  2462. goto <bb 5>; [53.47%]
  2463. <bb 3> [local count: 107374]:
  2464. # DEBUG BEGIN_STMT
  2465. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2466. # DEBUG BEGIN_STMT
  2467. # DEBUG BEGIN_STMT
  2468. __asm__ __volatile__(" mov %0, %1
  2469. msr basepri, %0
  2470. isb
  2471. dsb
  2472. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  2473. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  2474. <bb 4> [local count: 1073741824]:
  2475. # DEBUG ulNewBASEPRI => NULL
  2476. # DEBUG BEGIN_STMT
  2477. # DEBUG BEGIN_STMT
  2478. # DEBUG BEGIN_STMT
  2479. <bb 9> [local count: 1073741824]:
  2480. goto <bb 4>; [100.00%]
  2481. <bb 5> [local count: 123389]:
  2482. # DEBUG BEGIN_STMT
  2483. # DEBUG BEGIN_STMT
  2484. vPortEnterCritical ();
  2485. # DEBUG BEGIN_STMT
  2486. if (uxAutoReload_9(D) != 0)
  2487. goto <bb 6>; [50.00%]
  2488. else
  2489. goto <bb 7>; [50.00%]
  2490. <bb 6> [local count: 61694]:
  2491. # DEBUG BEGIN_STMT
  2492. _1 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  2493. _2 = _1 | 4;
  2494. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _2;
  2495. goto <bb 8>; [100.00%]
  2496. <bb 7> [local count: 61694]:
  2497. # DEBUG BEGIN_STMT
  2498. _3 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus;
  2499. _4 = _3 & 251;
  2500. MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _4;
  2501. <bb 8> [local count: 123389]:
  2502. # DEBUG BEGIN_STMT
  2503. vPortExitCritical ();
  2504. return;
  2505. }
  2506. xTimerGetPeriod (struct tmrTimerControl * xTimer)
  2507. {
  2508. uint32_t ulNewBASEPRI;
  2509. TickType_t _3;
  2510. <bb 2> [local count: 357913]:
  2511. # DEBUG BEGIN_STMT
  2512. # DEBUG pxTimer => xTimer_1(D)
  2513. # DEBUG BEGIN_STMT
  2514. if (xTimer_1(D) == 0B)
  2515. goto <bb 3>; [30.00%]
  2516. else
  2517. goto <bb 5>; [70.00%]
  2518. <bb 3> [local count: 107374]:
  2519. # DEBUG BEGIN_STMT
  2520. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2521. # DEBUG BEGIN_STMT
  2522. # DEBUG BEGIN_STMT
  2523. __asm__ __volatile__(" mov %0, %1
  2524. msr basepri, %0
  2525. isb
  2526. dsb
  2527. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  2528. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  2529. <bb 4> [local count: 1073741824]:
  2530. # DEBUG ulNewBASEPRI => NULL
  2531. # DEBUG BEGIN_STMT
  2532. # DEBUG BEGIN_STMT
  2533. # DEBUG BEGIN_STMT
  2534. <bb 6> [local count: 1073741824]:
  2535. goto <bb 4>; [100.00%]
  2536. <bb 5> [local count: 250539]:
  2537. # DEBUG BEGIN_STMT
  2538. # DEBUG BEGIN_STMT
  2539. _3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerPeriodInTicks;
  2540. return _3;
  2541. }
  2542. xTimerGetTimerDaemonTaskHandle ()
  2543. {
  2544. uint32_t ulNewBASEPRI;
  2545. struct tskTaskControlBlock * xTimerTaskHandle.24_1;
  2546. <bb 2> [local count: 357913]:
  2547. # DEBUG BEGIN_STMT
  2548. xTimerTaskHandle.24_1 = xTimerTaskHandle;
  2549. if (xTimerTaskHandle.24_1 == 0B)
  2550. goto <bb 3>; [30.00%]
  2551. else
  2552. goto <bb 5>; [70.00%]
  2553. <bb 3> [local count: 107374]:
  2554. # DEBUG BEGIN_STMT
  2555. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2556. # DEBUG BEGIN_STMT
  2557. # DEBUG BEGIN_STMT
  2558. __asm__ __volatile__(" mov %0, %1
  2559. msr basepri, %0
  2560. isb
  2561. dsb
  2562. " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory");
  2563. # DEBUG ulNewBASEPRI => ulNewBASEPRI_3
  2564. <bb 4> [local count: 1073741824]:
  2565. # DEBUG ulNewBASEPRI => NULL
  2566. # DEBUG BEGIN_STMT
  2567. # DEBUG BEGIN_STMT
  2568. # DEBUG BEGIN_STMT
  2569. <bb 6> [local count: 1073741824]:
  2570. goto <bb 4>; [100.00%]
  2571. <bb 5> [local count: 250539]:
  2572. # DEBUG BEGIN_STMT
  2573. # DEBUG BEGIN_STMT
  2574. return xTimerTaskHandle.24_1;
  2575. }
  2576. xTimerGenericCommand (struct tmrTimerControl * xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait)
  2577. {
  2578. uint32_t ulNewBASEPRI;
  2579. struct DaemonTaskMessage_t xMessage;
  2580. BaseType_t xReturn;
  2581. struct QueueDefinition * xTimerQueue.20_1;
  2582. long int _2;
  2583. struct QueueDefinition * xTimerQueue.21_3;
  2584. struct QueueDefinition * xTimerQueue.22_4;
  2585. <bb 2> [local count: 357913]:
  2586. # DEBUG BEGIN_STMT
  2587. # DEBUG xReturn => 0
  2588. # DEBUG BEGIN_STMT
  2589. # DEBUG BEGIN_STMT
  2590. if (xTimer_7(D) == 0B)
  2591. goto <bb 3>; [30.00%]
  2592. else
  2593. goto <bb 5>; [70.00%]
  2594. <bb 3> [local count: 107374]:
  2595. # DEBUG BEGIN_STMT
  2596. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2597. # DEBUG BEGIN_STMT
  2598. # DEBUG BEGIN_STMT
  2599. __asm__ __volatile__(" mov %0, %1
  2600. msr basepri, %0
  2601. isb
  2602. dsb
  2603. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  2604. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  2605. <bb 4> [local count: 1073741824]:
  2606. # DEBUG ulNewBASEPRI => NULL
  2607. # DEBUG BEGIN_STMT
  2608. # DEBUG BEGIN_STMT
  2609. # DEBUG BEGIN_STMT
  2610. <bb 12> [local count: 1073741824]:
  2611. goto <bb 4>; [100.00%]
  2612. <bb 5> [local count: 250539]:
  2613. # DEBUG BEGIN_STMT
  2614. # DEBUG BEGIN_STMT
  2615. xTimerQueue.20_1 = xTimerQueue;
  2616. if (xTimerQueue.20_1 != 0B)
  2617. goto <bb 6>; [70.00%]
  2618. else
  2619. goto <bb 11>; [30.00%]
  2620. <bb 6> [local count: 175378]:
  2621. # DEBUG BEGIN_STMT
  2622. xMessage.xMessageID = xCommandID_9(D);
  2623. # DEBUG BEGIN_STMT
  2624. xMessage.u.xTimerParameters.xMessageValue = xOptionalValue_11(D);
  2625. # DEBUG BEGIN_STMT
  2626. xMessage.u.xTimerParameters.pxTimer = xTimer_7(D);
  2627. # DEBUG BEGIN_STMT
  2628. if (xCommandID_9(D) <= 5)
  2629. goto <bb 7>; [50.00%]
  2630. else
  2631. goto <bb 10>; [50.00%]
  2632. <bb 7> [local count: 87689]:
  2633. # DEBUG BEGIN_STMT
  2634. _2 = xTaskGetSchedulerState ();
  2635. if (_2 == 2)
  2636. goto <bb 8>; [34.00%]
  2637. else
  2638. goto <bb 9>; [66.00%]
  2639. <bb 8> [local count: 29814]:
  2640. # DEBUG BEGIN_STMT
  2641. xTimerQueue.21_3 = xTimerQueue;
  2642. xReturn_22 = xQueueGenericSend (xTimerQueue.21_3, &xMessage, xTicksToWait_20(D), 0);
  2643. # DEBUG xReturn => xReturn_22
  2644. goto <bb 11>; [100.00%]
  2645. <bb 9> [local count: 57875]:
  2646. # DEBUG BEGIN_STMT
  2647. xTimerQueue.22_4 = xTimerQueue;
  2648. xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0);
  2649. # DEBUG xReturn => xReturn_19
  2650. goto <bb 11>; [100.00%]
  2651. <bb 10> [local count: 87689]:
  2652. # DEBUG BEGIN_STMT
  2653. xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0);
  2654. # DEBUG xReturn => xReturn_16
  2655. <bb 11> [local count: 250539]:
  2656. # xReturn_5 = PHI <0(5), xReturn_16(10), xReturn_19(9), xReturn_22(8)>
  2657. # DEBUG xReturn => xReturn_5
  2658. # DEBUG BEGIN_STMT
  2659. # DEBUG BEGIN_STMT
  2660. xMessage ={v} {CLOBBER};
  2661. return xReturn_5;
  2662. }
  2663. xTimerCreate (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction)
  2664. {
  2665. struct Timer_t * pxNewTimer;
  2666. <bb 2> [local count: 1073741824]:
  2667. # DEBUG BEGIN_STMT
  2668. # DEBUG BEGIN_STMT
  2669. pxNewTimer_4 = pvPortMalloc (44);
  2670. # DEBUG pxNewTimer => pxNewTimer_4
  2671. # DEBUG BEGIN_STMT
  2672. if (pxNewTimer_4 != 0B)
  2673. goto <bb 3>; [53.47%]
  2674. else
  2675. goto <bb 4>; [46.53%]
  2676. <bb 3> [local count: 574129754]:
  2677. # DEBUG BEGIN_STMT
  2678. pxNewTimer_4->ucStatus = 0;
  2679. # DEBUG BEGIN_STMT
  2680. prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4);
  2681. <bb 4> [local count: 1073741824]:
  2682. # DEBUG BEGIN_STMT
  2683. return pxNewTimer_4;
  2684. }
  2685. xTimerCreateTimerTask ()
  2686. {
  2687. uint32_t ulNewBASEPRI;
  2688. BaseType_t xReturn;
  2689. struct QueueDefinition * xTimerQueue.0_1;
  2690. <bb 2> [local count: 146556]:
  2691. # DEBUG BEGIN_STMT
  2692. # DEBUG xReturn => 0
  2693. # DEBUG BEGIN_STMT
  2694. prvCheckForValidListAndQueue ();
  2695. # DEBUG BEGIN_STMT
  2696. xTimerQueue.0_1 = xTimerQueue;
  2697. if (xTimerQueue.0_1 != 0B)
  2698. goto <bb 4>; [53.47%]
  2699. else
  2700. goto <bb 5>; [46.53%]
  2701. <bb 4> [local count: 78363]:
  2702. # DEBUG BEGIN_STMT
  2703. xReturn_5 = xTaskCreate (prvTimerTask, "Tmr Svc", 180, 0B, 2, &xTimerTaskHandle);
  2704. # DEBUG xReturn => xReturn_5
  2705. # DEBUG BEGIN_STMT
  2706. # DEBUG BEGIN_STMT
  2707. if (xReturn_5 == 0)
  2708. goto <bb 5>; [50.00%]
  2709. else
  2710. goto <bb 7>; [50.00%]
  2711. <bb 5> [local count: 107374]:
  2712. # DEBUG xReturn => NULL
  2713. # DEBUG BEGIN_STMT
  2714. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2715. # DEBUG BEGIN_STMT
  2716. # DEBUG BEGIN_STMT
  2717. __asm__ __volatile__(" mov %0, %1
  2718. msr basepri, %0
  2719. isb
  2720. dsb
  2721. " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory");
  2722. # DEBUG ulNewBASEPRI => ulNewBASEPRI_7
  2723. <bb 6> [local count: 1073741824]:
  2724. # DEBUG ulNewBASEPRI => NULL
  2725. # DEBUG BEGIN_STMT
  2726. # DEBUG BEGIN_STMT
  2727. # DEBUG BEGIN_STMT
  2728. <bb 8> [local count: 1073741824]:
  2729. goto <bb 6>; [100.00%]
  2730. <bb 7> [local count: 39182]:
  2731. # DEBUG BEGIN_STMT
  2732. # DEBUG BEGIN_STMT
  2733. return xReturn_5;
  2734. }