queue.c.076i.inline 272 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058
  1. IPA function summary for vQueueUnregisterQueue.part.0/114 inlinable
  2. global time: 5.000000
  3. self size: 7
  4. global size: 7
  5. min size: 0
  6. self stack: 0
  7. global stack: 0
  8. size:5.000000, time:5.000000
  9. size:2.000000, time:0.000000, executed if:(not inlined)
  10. calls:
  11. IPA function summary for xQueueGenericReset.part.0/65 inlinable
  12. global time: 50.697050
  13. self size: 36
  14. global size: 36
  15. min size: 4
  16. self stack: 0
  17. global stack: 0
  18. size:9.500000, time:9.500000
  19. size:7.500000, time:6.500000, executed if:(not inlined)
  20. size:2.000000, time:2.000000, nonconst if:(op1 changed)
  21. size:0.500000, time:0.335000, executed if:(op1 == 0) && (not inlined)
  22. size:7.500000, time:2.448850, executed if:(op1 == 0)
  23. calls:
  24. vPortEnterCritical/42 function body not available
  25. loop depth: 0 freq:1.00 size: 1 time: 10
  26. xTaskRemoveFromEventList/43 function body not available
  27. loop depth: 0 freq:0.22 size: 3 time: 12 predicate: (op1 == 0)
  28. vListInitialise/44 function body not available
  29. loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0)
  30. vListInitialise/44 function body not available
  31. loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0)
  32. vPortExitCritical/45 function body not available
  33. loop depth: 0 freq:1.00 size: 1 time: 10
  34. IPA function summary for vQueueWaitForMessageRestricted/41 inlinable
  35. global time: 46.970000
  36. self size: 22
  37. global size: 22
  38. min size: 16
  39. self stack: 0
  40. global stack: 0
  41. size:8.500000, time:7.840000
  42. size:5.500000, time:3.840000, executed if:(not inlined)
  43. calls:
  44. prvUnlockQueue/33 function not considered for inlining
  45. loop depth: 0 freq:1.00 size: 2 time: 11callee size:17 stack: 0
  46. vTaskPlaceOnEventListRestricted/62 function body not available
  47. loop depth: 0 freq:0.33 size: 4 time: 13
  48. vPortExitCritical/45 function body not available
  49. loop depth: 0 freq:1.00 size: 1 time: 10
  50. vPortEnterCritical/42 function body not available
  51. loop depth: 0 freq:1.00 size: 1 time: 10
  52. IPA function summary for vQueueUnregisterQueue/40 inlinable
  53. global time: 15.299224
  54. self size: 14
  55. global size: 14
  56. min size: 0
  57. self stack: 0
  58. global stack: 0
  59. size:0.000000, time:0.000000
  60. size:2.000000, time:0.000000, executed if:(not inlined)
  61. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  62. size:8.000000, time:8.899221, executed if:(op0 != 0B)
  63. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  64. calls:
  65. vQueueUnregisterQueue.part.0/114 function not considered for inlining
  66. loop depth: 0 freq:0.30 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 == 0B)
  67. IPA function summary for pcQueueGetName/39 inlinable
  68. global time: 13.729842
  69. self size: 17
  70. global size: 17
  71. min size: 0
  72. self stack: 0
  73. global stack: 0
  74. size:0.000000, time:0.000000
  75. size:2.000000, time:0.000000, executed if:(not inlined)
  76. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  77. size:7.000000, time:8.829841, executed if:(op0 != 0B)
  78. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  79. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  80. calls:
  81. IPA function summary for vQueueAddToRegistry/38 inlinable
  82. global time: 16.518196
  83. self size: 27
  84. global size: 27
  85. min size: 0
  86. self stack: 0
  87. global stack: 0
  88. size:0.000000, time:0.000000
  89. size:2.000000, time:0.000000, executed if:(not inlined)
  90. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  91. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  92. size:15.000000, time:10.218196, executed if:(op1 != 0B) && (op0 != 0B)
  93. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  94. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  95. calls:
  96. IPA function summary for xQueueIsQueueFullFromISR/37 inlinable
  97. global time: 7.700000
  98. self size: 14
  99. global size: 14
  100. min size: 0
  101. self stack: 0
  102. global stack: 0
  103. size:0.000000, time:0.000000
  104. size:2.000000, time:0.000000, executed if:(not inlined)
  105. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  106. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
  107. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
  108. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
  109. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
  110. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed || op0[ref offset: 480] changed) && (op0 != 0B)
  111. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  112. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  113. calls:
  114. IPA function summary for prvIsQueueFull/36 inlinable
  115. global time: 26.000000
  116. self size: 9
  117. global size: 9
  118. min size: 4
  119. self stack: 0
  120. global stack: 0
  121. size:3.000000, time:3.000000
  122. size:4.000000, time:3.000000, executed if:(not inlined)
  123. calls:
  124. vPortExitCritical/45 function body not available
  125. loop depth: 0 freq:1.00 size: 1 time: 10
  126. vPortEnterCritical/42 function body not available
  127. loop depth: 0 freq:1.00 size: 1 time: 10
  128. IPA function summary for xQueueIsQueueEmptyFromISR/35 inlinable
  129. global time: 7.000000
  130. self size: 13
  131. global size: 13
  132. min size: 0
  133. self stack: 0
  134. global stack: 0
  135. size:0.000000, time:0.000000
  136. size:2.000000, time:0.000000, executed if:(not inlined)
  137. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  138. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
  139. size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
  140. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  141. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  142. calls:
  143. IPA function summary for prvIsQueueEmpty/34 inlinable
  144. global time: 25.000000
  145. self size: 8
  146. global size: 8
  147. min size: 4
  148. self stack: 0
  149. global stack: 0
  150. size:2.500000, time:2.500000
  151. size:3.500000, time:2.500000, executed if:(not inlined)
  152. calls:
  153. vPortExitCritical/45 function body not available
  154. loop depth: 0 freq:1.00 size: 1 time: 10
  155. vPortEnterCritical/42 function body not available
  156. loop depth: 0 freq:1.00 size: 1 time: 10
  157. IPA function summary for prvUnlockQueue/33 inlinable
  158. global time: 441.930953
  159. self size: 35
  160. global size: 35
  161. min size: 24
  162. self stack: 0
  163. global stack: 0
  164. size:17.000000, time:133.648980
  165. size:6.000000, time:12.833839, executed if:(not inlined)
  166. calls:
  167. vPortExitCritical/45 function body not available
  168. loop depth: 0 freq:1.00 size: 1 time: 10
  169. vTaskMissedYield/56 function body not available
  170. loop depth: 1 freq:2.75 size: 1 time: 10
  171. xTaskRemoveFromEventList/43 function body not available
  172. loop depth: 1 freq:8.35 size: 3 time: 12
  173. vPortEnterCritical/42 function body not available
  174. loop depth: 0 freq:1.00 size: 1 time: 10
  175. vPortExitCritical/45 function body not available
  176. loop depth: 0 freq:1.00 size: 1 time: 10
  177. vTaskMissedYield/56 function body not available
  178. loop depth: 1 freq:2.75 size: 1 time: 10
  179. xTaskRemoveFromEventList/43 function body not available
  180. loop depth: 1 freq:8.35 size: 3 time: 12
  181. vPortEnterCritical/42 function body not available
  182. loop depth: 0 freq:1.00 size: 1 time: 10
  183. IPA function summary for prvCopyDataFromQueue/32 inlinable
  184. global time: 15.500000
  185. self size: 19
  186. global size: 19
  187. min size: 0
  188. self stack: 0
  189. global stack: 0
  190. size:0.000000, time:0.000000
  191. size:3.000000, time:2.000000, executed if:(not inlined)
  192. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 512] changed) && (not inlined)
  193. size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 512] changed)
  194. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) && (not inlined)
  195. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
  196. size:1.000000, time:0.500000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
  197. size:1.500000, time:0.625000, executed if:(op0[ref offset: 512] != 0) && (not inlined)
  198. size:1.500000, time:0.625000, executed if:(op0[ref offset: 512] != 0)
  199. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) && (not inlined)
  200. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
  201. size:2.000000, time:1.000000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed || op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
  202. size:0.500000, time:0.125000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0) && (not inlined)
  203. size:0.500000, time:0.125000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0)
  204. calls:
  205. memcpy/55 function body not available
  206. loop depth: 0 freq:0.50 size: 4 time: 13 predicate: (op0[ref offset: 512] != 0)
  207. IPA function summary for prvCopyDataToQueue/31 inlinable
  208. global time: 23.807600
  209. self size: 54
  210. global size: 54
  211. min size: 0
  212. self stack: 0
  213. global stack: 0
  214. size:1.500000, time:1.500000
  215. size:3.500000, time:2.500000, executed if:(not inlined)
  216. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 448] changed) && (not inlined)
  217. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 448] changed)
  218. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 512] changed) && (not inlined)
  219. size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 512] changed)
  220. size:2.000000, time:1.000000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op2 changed) && (op0[ref offset: 512] != 0)
  221. size:0.500000, time:0.125000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
  222. size:0.500000, time:0.125000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
  223. size:3.000000, time:0.625000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
  224. size:8.000000, time:1.750000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0)
  225. size:2.000000, time:0.500000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op2 changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
  226. size:2.000000, time:0.170000, executed if:(op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 448] changed) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
  227. size:1.000000, time:0.042500, executed if:(op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 448] changed) && (op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
  228. size:0.500000, time:0.125000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
  229. size:0.500000, time:0.125000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0)
  230. size:3.000000, time:0.625000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
  231. size:6.000000, time:1.375000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0)
  232. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] == 0) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (not inlined)
  233. size:2.500000, time:1.250000, executed if:(op0[ref offset: 512] == 0), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0)
  234. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
  235. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  236. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
  237. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  238. calls:
  239. memcpy/55 function body not available
  240. loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 != 0) && (op0[ref offset: 512] != 0)
  241. memcpy/55 function body not available
  242. loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 == 0) && (op0[ref offset: 512] != 0)
  243. xTaskPriorityDisinherit/54 function body not available
  244. loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  245. IPA function summary for prvGetDisinheritPriorityAfterTimeout/30 inlinable
  246. global time: 6.500000
  247. self size: 9
  248. global size: 9
  249. min size: 0
  250. self stack: 0
  251. global stack: 0
  252. size:0.000000, time:0.000000
  253. size:3.000000, time:2.000000, executed if:(not inlined)
  254. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 288] changed) && (not inlined)
  255. size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 288] changed)
  256. size:0.500000, time:0.250000, executed if:(op0[ref offset: 288] != 0) && (not inlined), nonconst if:(op0[ref offset: 384] changed) && (op0[ref offset: 288] != 0) && (not inlined)
  257. size:0.500000, time:0.250000, executed if:(op0[ref offset: 288] != 0), nonconst if:(op0[ref offset: 384] changed) && (op0[ref offset: 288] != 0)
  258. size:2.000000, time:1.000000, executed if:(op0[ref offset: 288] != 0)
  259. calls:
  260. IPA function summary for ucQueueGetQueueType/29 inlinable
  261. global time: 3.000000
  262. self size: 4
  263. global size: 4
  264. min size: 0
  265. self stack: 0
  266. global stack: 0
  267. size:0.000000, time:0.000000
  268. size:3.000000, time:2.000000, executed if:(not inlined)
  269. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 608] changed) && (not inlined)
  270. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 608] changed)
  271. calls:
  272. IPA function summary for vQueueSetQueueNumber/28 inlinable
  273. global time: 3.000000
  274. self size: 4
  275. global size: 4
  276. min size: 0
  277. self stack: 0
  278. global stack: 0
  279. size:0.500000, time:0.500000
  280. size:3.500000, time:2.500000, executed if:(not inlined)
  281. calls:
  282. IPA function summary for uxQueueGetQueueNumber/27 inlinable
  283. global time: 3.000000
  284. self size: 4
  285. global size: 4
  286. min size: 0
  287. self stack: 0
  288. global stack: 0
  289. size:0.000000, time:0.000000
  290. size:3.000000, time:2.000000, executed if:(not inlined)
  291. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 576] changed) && (not inlined)
  292. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 576] changed)
  293. calls:
  294. IPA function summary for vQueueDelete/26 inlinable
  295. global time: 17.159302
  296. self size: 14
  297. global size: 14
  298. min size: 0
  299. self stack: 0
  300. global stack: 0
  301. size:0.000000, time:0.000000
  302. size:2.000000, time:0.000000, executed if:(not inlined)
  303. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  304. size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined)
  305. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  306. calls:
  307. vPortFree/61 function body not available
  308. loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
  309. vQueueUnregisterQueue/40 function not considered for inlining
  310. loop depth: 0 freq:0.53 size: 2 time: 11callee size: 7 stack: 0 predicate: (op0 != 0B)
  311. IPA function summary for uxQueueMessagesWaitingFromISR/25 inlinable
  312. global time: 5.600001
  313. self size: 11
  314. global size: 11
  315. min size: 0
  316. self stack: 0
  317. global stack: 0
  318. size:0.000000, time:0.000000
  319. size:2.000000, time:0.000000, executed if:(not inlined)
  320. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  321. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
  322. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
  323. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  324. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  325. calls:
  326. IPA function summary for uxQueueSpacesAvailable/24 inlinable
  327. global time: 17.694002
  328. self size: 15
  329. global size: 15
  330. min size: 0
  331. self stack: 0
  332. global stack: 0
  333. size:0.000000, time:0.000000
  334. size:2.000000, time:0.000000, executed if:(not inlined)
  335. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  336. size:2.000000, time:1.604100, executed if:(op0 != 0B) && (not inlined)
  337. size:2.000000, time:1.069400, executed if:(op0 != 0B)
  338. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  339. calls:
  340. vPortExitCritical/45 function body not available
  341. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  342. vPortEnterCritical/42 function body not available
  343. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  344. IPA function summary for uxQueueMessagesWaiting/23 inlinable
  345. global time: 16.624602
  346. self size: 13
  347. global size: 13
  348. min size: 0
  349. self stack: 0
  350. global stack: 0
  351. size:0.000000, time:0.000000
  352. size:2.000000, time:0.000000, executed if:(not inlined)
  353. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  354. size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined)
  355. size:0.500000, time:0.267350, executed if:(op0 != 0B)
  356. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  357. calls:
  358. vPortExitCritical/45 function body not available
  359. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  360. vPortEnterCritical/42 function body not available
  361. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  362. IPA function summary for xQueuePeekFromISR/22 inlinable
  363. global time: 15.060094
  364. self size: 44
  365. global size: 44
  366. min size: 0
  367. self stack: 0
  368. global stack: 0
  369. size:0.000000, time:0.000000
  370. size:2.000000, time:0.000000, executed if:(not inlined)
  371. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  372. size:2.000000, time:1.400001, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  373. size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  374. size:2.500000, time:0.524998, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  375. size:5.000000, time:0.524998, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  376. size:0.500000, time:0.297501, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  377. size:2.500000, time:1.487503, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  378. size:10.500000, time:1.930130, executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  379. size:2.500000, time:0.555672, executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  380. size:5.000000, time:1.993250, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
  381. size:5.000000, time:1.499996, executed if:(op0 == 0B)
  382. calls:
  383. prvCopyDataFromQueue/32 function not considered for inlining
  384. loop depth: 0 freq:0.06 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  385. vPortValidateInterruptPriority/57 function body not available
  386. loop depth: 0 freq:0.20 size: 1 time: 10 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  387. IPA function summary for xQueueReceiveFromISR/21 inlinable
  388. global time: 22.476026
  389. self size: 59
  390. global size: 59
  391. min size: 0
  392. self stack: 0
  393. global stack: 0
  394. size:0.000000, time:0.000000
  395. size:2.000000, time:0.000000, executed if:(not inlined)
  396. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  397. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  398. size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  399. size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  400. size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  401. size:26.500000, time:6.511267, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  402. size:3.500000, time:1.509311, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  403. size:2.000000, time:0.019888, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  404. size:0.500000, time:0.003480, executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  405. size:0.500000, time:0.003480, executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  406. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  407. calls:
  408. xTaskRemoveFromEventList/43 function body not available
  409. loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  410. prvCopyDataFromQueue/32 function not considered for inlining
  411. loop depth: 0 freq:0.18 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  412. vPortValidateInterruptPriority/57 function body not available
  413. loop depth: 0 freq:0.54 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  414. IPA function summary for xQueuePeek/20 inlinable
  415. global time: 543.926399
  416. self size: 108
  417. global size: 108
  418. min size: 0
  419. self stack: 8
  420. global stack: 8
  421. size:0.000000, time:0.000000
  422. size:2.000000, time:0.000000, executed if:(not inlined)
  423. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  424. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  425. size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  426. size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  427. size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  428. size:44.000000, time:80.224698, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  429. size:5.000000, time:8.961298, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  430. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  431. calls:
  432. prvIsQueueEmpty/34 function not considered for inlining
  433. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  434. op0 change 47.520000% of time
  435. xTaskResumeAll/53 function body not available
  436. loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  437. prvUnlockQueue/33 function not considered for inlining
  438. loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  439. op0 change 47.520000% of time
  440. xTaskResumeAll/53 function body not available
  441. loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  442. prvUnlockQueue/33 function not considered for inlining
  443. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  444. op0 change 95.040000% of time
  445. xTaskResumeAll/53 function body not available
  446. loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  447. prvUnlockQueue/33 function not considered for inlining
  448. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  449. op0 change 95.040000% of time
  450. vTaskPlaceOnEventList/52 function body not available
  451. loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  452. prvIsQueueEmpty/34 function not considered for inlining
  453. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  454. op0 change 47.520000% of time
  455. xTaskCheckForTimeOut/51 function body not available
  456. loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  457. op0 is compile time invariant
  458. op1 is compile time invariant
  459. vPortExitCritical/45 function body not available
  460. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  461. vPortEnterCritical/42 function body not available
  462. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  463. vTaskSuspendAll/50 function body not available
  464. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  465. vPortExitCritical/45 function body not available
  466. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  467. vTaskInternalSetTimeOutState/49 function body not available
  468. loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  469. op0 is compile time invariant
  470. vPortExitCritical/45 function body not available
  471. loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  472. vPortExitCritical/45 function body not available
  473. loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  474. xTaskRemoveFromEventList/43 function body not available
  475. loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  476. prvCopyDataFromQueue/32 function not considered for inlining
  477. loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  478. vPortEnterCritical/42 function body not available
  479. loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  480. xTaskGetSchedulerState/48 function body not available
  481. loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  482. IPA function summary for xQueueSemaphoreTake/19 inlinable
  483. global time: 246.801177
  484. self size: 136
  485. global size: 136
  486. min size: 0
  487. self stack: 8
  488. global stack: 8
  489. size:0.000000, time:0.000000
  490. size:2.000000, time:0.000000, executed if:(not inlined)
  491. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  492. size:0.500000, time:0.350001, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
  493. size:2.500000, time:1.750007, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
  494. size:60.000000, time:37.465467, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
  495. size:7.000000, time:4.111823, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  496. size:5.000000, time:2.345004, executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
  497. size:5.000000, time:1.500009, executed if:(op0 == 0B)
  498. calls:
  499. vPortExitCritical/45 function body not available
  500. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  501. vTaskPriorityDisinheritAfterTimeout/60 function body not available
  502. loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  503. prvGetDisinheritPriorityAfterTimeout/30 function not considered for inlining
  504. loop depth: 0 freq:0.01 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  505. vPortEnterCritical/42 function body not available
  506. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  507. prvIsQueueEmpty/34 function not considered for inlining
  508. loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  509. xTaskResumeAll/53 function body not available
  510. loop depth: 1 freq:0.90 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  511. prvUnlockQueue/33 function not considered for inlining
  512. loop depth: 1 freq:0.90 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  513. xTaskResumeAll/53 function body not available
  514. loop depth: 1 freq:0.30 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  515. prvUnlockQueue/33 function not considered for inlining
  516. loop depth: 1 freq:0.30 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  517. xTaskResumeAll/53 function body not available
  518. loop depth: 1 freq:0.61 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  519. prvUnlockQueue/33 function not considered for inlining
  520. loop depth: 1 freq:0.61 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  521. vTaskPlaceOnEventList/52 function body not available
  522. loop depth: 1 freq:0.61 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  523. vPortExitCritical/45 function body not available
  524. loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  525. xTaskPriorityInherit/59 function body not available
  526. loop depth: 1 freq:0.11 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  527. vPortEnterCritical/42 function body not available
  528. loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  529. prvIsQueueEmpty/34 function not considered for inlining
  530. loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  531. xTaskCheckForTimeOut/51 function body not available
  532. loop depth: 1 freq:1.81 size: 4 time: 13 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  533. op0 is compile time invariant
  534. op1 is compile time invariant
  535. vPortExitCritical/45 function body not available
  536. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  537. vPortEnterCritical/42 function body not available
  538. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  539. vTaskSuspendAll/50 function body not available
  540. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  541. vPortExitCritical/45 function body not available
  542. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  543. vTaskInternalSetTimeOutState/49 function body not available
  544. loop depth: 1 freq:0.60 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  545. op0 is compile time invariant
  546. vPortExitCritical/45 function body not available
  547. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  548. vPortExitCritical/45 function body not available
  549. loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  550. xTaskRemoveFromEventList/43 function body not available
  551. loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  552. pvTaskIncrementMutexHeldCount/58 function body not available
  553. loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  554. vPortEnterCritical/42 function body not available
  555. loop depth: 1 freq:1.95 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  556. xTaskGetSchedulerState/48 function body not available
  557. loop depth: 0 freq:0.23 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  558. IPA function summary for xQueueReceive/18 inlinable
  559. global time: 543.926399
  560. self size: 108
  561. global size: 108
  562. min size: 0
  563. self stack: 8
  564. global stack: 8
  565. size:0.000000, time:0.000000
  566. size:2.000000, time:0.000000, executed if:(not inlined)
  567. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  568. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  569. size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  570. size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  571. size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  572. size:44.500000, time:80.307677, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  573. size:4.500000, time:8.878318, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  574. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  575. calls:
  576. prvIsQueueEmpty/34 function not considered for inlining
  577. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  578. op0 change 47.520000% of time
  579. xTaskResumeAll/53 function body not available
  580. loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  581. prvUnlockQueue/33 function not considered for inlining
  582. loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  583. op0 change 47.520000% of time
  584. xTaskResumeAll/53 function body not available
  585. loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  586. prvUnlockQueue/33 function not considered for inlining
  587. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  588. op0 change 95.040000% of time
  589. xTaskResumeAll/53 function body not available
  590. loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  591. prvUnlockQueue/33 function not considered for inlining
  592. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  593. op0 change 95.040000% of time
  594. vTaskPlaceOnEventList/52 function body not available
  595. loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  596. prvIsQueueEmpty/34 function not considered for inlining
  597. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  598. op0 change 47.520000% of time
  599. xTaskCheckForTimeOut/51 function body not available
  600. loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  601. op0 is compile time invariant
  602. op1 is compile time invariant
  603. vPortExitCritical/45 function body not available
  604. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  605. vPortEnterCritical/42 function body not available
  606. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  607. vTaskSuspendAll/50 function body not available
  608. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  609. vPortExitCritical/45 function body not available
  610. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  611. vTaskInternalSetTimeOutState/49 function body not available
  612. loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  613. op0 is compile time invariant
  614. vPortExitCritical/45 function body not available
  615. loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  616. vPortExitCritical/45 function body not available
  617. loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  618. xTaskRemoveFromEventList/43 function body not available
  619. loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  620. prvCopyDataFromQueue/32 function not considered for inlining
  621. loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  622. vPortEnterCritical/42 function body not available
  623. loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  624. xTaskGetSchedulerState/48 function body not available
  625. loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  626. IPA function summary for xQueueGiveFromISR/17 inlinable
  627. global time: 16.111704
  628. self size: 66
  629. global size: 66
  630. min size: 0
  631. self stack: 0
  632. global stack: 0
  633. size:0.000000, time:0.000000
  634. size:2.000000, time:0.000000, executed if:(not inlined)
  635. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  636. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
  637. size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
  638. size:0.500000, time:0.175000, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  639. size:2.500000, time:0.875000, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  640. size:0.500000, time:0.081427, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  641. size:2.500000, time:0.407136, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  642. size:5.000000, time:0.569996, executed if:(op0[ref offset: 64] != 0B) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  643. size:27.000000, time:3.297567, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  644. size:4.000000, time:0.818808, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  645. size:2.000000, time:0.013241, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op1 changed) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  646. size:0.500000, time:0.002318, executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  647. size:0.500000, time:0.002318, executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  648. size:5.000000, time:1.749999, executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
  649. size:5.000000, time:1.500002, executed if:(op0 == 0B)
  650. calls:
  651. xTaskRemoveFromEventList/43 function body not available
  652. loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  653. vPortValidateInterruptPriority/57 function body not available
  654. loop depth: 0 freq:0.24 size: 1 time: 10 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  655. IPA function summary for xQueueGenericSendFromISR/16 inlinable
  656. global time: 23.679489
  657. self size: 72
  658. global size: 72
  659. min size: 0
  660. self stack: 0
  661. global stack: 0
  662. size:0.000000, time:0.000000
  663. size:2.000000, time:0.000000, executed if:(not inlined)
  664. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  665. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  666. size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  667. size:2.500000, time:0.525002, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  668. size:5.000000, time:0.525002, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  669. size:2.000000, time:1.189999, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  670. size:0.500000, time:0.152082, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  671. size:2.500000, time:0.760408, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  672. size:5.000000, time:1.003736, executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  673. size:26.000000, time:5.469914, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  674. size:4.000000, time:1.389252, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  675. size:2.000000, time:0.528296, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  676. size:2.000000, time:0.024676, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  677. size:0.500000, time:0.004318, executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  678. size:0.500000, time:0.004318, executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  679. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  680. calls:
  681. xTaskRemoveFromEventList/43 function body not available
  682. loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  683. prvCopyDataToQueue/31 function not considered for inlining
  684. loop depth: 0 freq:0.22 size: 4 time: 13callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  685. vPortValidateInterruptPriority/57 function body not available
  686. loop depth: 0 freq:0.39 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  687. IPA function summary for xQueueGenericSend/15 inlinable
  688. global time: 359.104528
  689. self size: 121
  690. global size: 121
  691. min size: 0
  692. self stack: 8
  693. global stack: 8
  694. size:0.000000, time:0.000000
  695. size:2.000000, time:0.000000, executed if:(not inlined)
  696. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  697. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  698. size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  699. size:2.500000, time:0.525002, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  700. size:5.000000, time:0.525002, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  701. size:2.000000, time:1.189999, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  702. size:0.500000, time:0.152082, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  703. size:2.500000, time:0.760408, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  704. size:5.000000, time:1.003736, executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  705. size:25.500000, time:11.189120, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  706. size:2.500000, time:3.468903, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  707. size:2.000000, time:5.449000, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  708. size:21.000000, time:42.665100, executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  709. size:2.000000, time:3.452794, executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  710. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  711. calls:
  712. xTaskResumeAll/53 function body not available
  713. loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  714. prvUnlockQueue/33 function not considered for inlining
  715. loop depth: 0 freq:0.07 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  716. xTaskResumeAll/53 function body not available
  717. loop depth: 1 freq:1.25 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  718. prvUnlockQueue/33 function not considered for inlining
  719. loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  720. op0 change 79.810000% of time
  721. xTaskResumeAll/53 function body not available
  722. loop depth: 1 freq:1.25 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  723. prvUnlockQueue/33 function not considered for inlining
  724. loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  725. op0 change 79.810000% of time
  726. vTaskPlaceOnEventList/52 function body not available
  727. loop depth: 1 freq:1.25 size: 3 time: 12 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  728. prvIsQueueFull/36 function not considered for inlining
  729. loop depth: 1 freq:2.51 size: 3 time: 12callee size: 4 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  730. op0 change 39.900000% of time
  731. xTaskCheckForTimeOut/51 function body not available
  732. loop depth: 1 freq:2.58 size: 4 time: 13 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  733. op0 is compile time invariant
  734. op1 is compile time invariant
  735. vPortExitCritical/45 function body not available
  736. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  737. vPortEnterCritical/42 function body not available
  738. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  739. vTaskSuspendAll/50 function body not available
  740. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  741. vPortExitCritical/45 function body not available
  742. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  743. vTaskInternalSetTimeOutState/49 function body not available
  744. loop depth: 1 freq:0.85 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  745. op0 is compile time invariant
  746. vPortExitCritical/45 function body not available
  747. loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  748. vPortExitCritical/45 function body not available
  749. loop depth: 0 freq:0.15 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  750. xTaskRemoveFromEventList/43 function body not available
  751. loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  752. prvCopyDataToQueue/31 function not considered for inlining
  753. loop depth: 0 freq:0.15 size: 5 time: 14callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  754. vPortEnterCritical/42 function body not available
  755. loop depth: 1 freq:2.80 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  756. xTaskGetSchedulerState/48 function body not available
  757. loop depth: 0 freq:0.39 size: 2 time: 11 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  758. IPA function summary for xQueueCreateCountingSemaphore/14 inlinable
  759. global time: 10.260529
  760. self size: 20
  761. global size: 20
  762. min size: 0
  763. self stack: 0
  764. global stack: 0
  765. size:5.000000, time:4.174988
  766. size:2.000000, time:0.000000, executed if:(not inlined)
  767. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  768. size:2.000000, time:1.000000, executed if:(op0 != 0), nonconst if:(op0 changed || op1 changed) && (op0 != 0)
  769. size:3.000000, time:0.445502, executed if:(op0 != 0)
  770. size:1.000000, time:0.330005, executed if:(op0 != 0) && (not inlined)
  771. calls:
  772. xQueueGenericCreate/6 function not considered for inlining
  773. loop depth: 0 freq:0.17 size: 5 time: 14callee size:14 stack: 0 predicate: (op0 != 0)
  774. op1 is compile time invariant
  775. op2 is compile time invariant
  776. IPA function summary for xQueueTakeMutexRecursive/13 inlinable
  777. global time: 18.345502
  778. self size: 27
  779. global size: 27
  780. min size: 0
  781. self stack: 0
  782. global stack: 0
  783. size:0.000000, time:0.000000
  784. size:2.000000, time:0.000000, executed if:(not inlined)
  785. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  786. size:0.500000, time:0.267350, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
  787. size:0.500000, time:0.267350, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
  788. size:8.000000, time:2.424704, executed if:(op0 != 0B)
  789. size:3.000000, time:1.461148, executed if:(op0 != 0B) && (not inlined)
  790. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  791. calls:
  792. xQueueSemaphoreTake/19 function not considered for inlining
  793. loop depth: 0 freq:0.29 size: 4 time: 13callee size:68 stack: 8 predicate: (op0 != 0B)
  794. xTaskGetCurrentTaskHandle/47 function body not available
  795. loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
  796. IPA function summary for xQueueGiveMutexRecursive/12 inlinable
  797. global time: 14.424882
  798. self size: 25
  799. global size: 25
  800. min size: 0
  801. self stack: 0
  802. global stack: 0
  803. size:0.000000, time:0.000000
  804. size:2.000000, time:0.000000, executed if:(not inlined)
  805. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  806. size:0.500000, time:0.267350, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
  807. size:0.500000, time:0.267350, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
  808. size:6.000000, time:1.711046, executed if:(op0 != 0B)
  809. size:2.000000, time:1.229812, executed if:(op0 != 0B) && (not inlined)
  810. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  811. calls:
  812. xQueueGenericSend/15 function not considered for inlining
  813. loop depth: 0 freq:0.05 size: 5 time: 14callee size:60 stack: 8 predicate: (op0 != 0B)
  814. op1 is compile time invariant
  815. op2 is compile time invariant
  816. op3 is compile time invariant
  817. xTaskGetCurrentTaskHandle/47 function body not available
  818. loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
  819. IPA function summary for xQueueGetMutexHolderFromISR/11 inlinable
  820. global time: 7.358400
  821. self size: 14
  822. global size: 14
  823. min size: 0
  824. self stack: 0
  825. global stack: 0
  826. size:0.000000, time:0.000000
  827. size:2.000000, time:0.000000, executed if:(not inlined)
  828. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  829. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined)
  830. size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B)
  831. size:0.500000, time:0.179200, executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined)
  832. size:0.500000, time:0.179200, executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B)
  833. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  834. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  835. calls:
  836. IPA function summary for xQueueGetMutexHolder/10 inlinable
  837. global time: 17.967768
  838. self size: 16
  839. global size: 16
  840. min size: 0
  841. self stack: 0
  842. global stack: 0
  843. size:0.000000, time:0.000000
  844. size:2.000000, time:0.000000, executed if:(not inlined)
  845. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  846. size:2.000000, time:1.473633, executed if:(op0 != 0B) && (not inlined)
  847. size:3.000000, time:1.473633, executed if:(op0 != 0B)
  848. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  849. calls:
  850. vPortExitCritical/45 function body not available
  851. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  852. vPortEnterCritical/42 function body not available
  853. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  854. IPA function summary for xQueueCreateMutex/9 inlinable
  855. global time: 27.000000
  856. self size: 10
  857. global size: 10
  858. min size: 14
  859. self stack: 0
  860. global stack: 0
  861. size:0.000000, time:0.000000
  862. size:3.000000, time:2.000000, executed if:(not inlined)
  863. calls:
  864. prvInitialiseMutex/8 function not considered for inlining
  865. loop depth: 0 freq:1.00 size: 2 time: 11callee size: 6 stack: 0
  866. xQueueGenericCreate/6 function not considered for inlining
  867. loop depth: 0 freq:1.00 size: 5 time: 14callee size:14 stack: 0
  868. op0 is compile time invariant
  869. op1 is compile time invariant
  870. IPA function summary for prvInitialiseMutex/8 inlinable
  871. global time: 13.089900
  872. self size: 13
  873. global size: 13
  874. min size: 0
  875. self stack: 0
  876. global stack: 0
  877. size:0.000000, time:0.000000
  878. size:3.000000, time:2.000000, executed if:(not inlined)
  879. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  880. size:1.500000, time:0.802050, executed if:(op0 != 0B) && (not inlined)
  881. size:1.500000, time:0.802050, executed if:(op0 != 0B)
  882. calls:
  883. xQueueGenericSend/15 function not considered for inlining
  884. loop depth: 0 freq:0.53 size: 5 time: 14callee size:60 stack: 8 predicate: (op0 != 0B)
  885. op1 is compile time invariant
  886. op2 is compile time invariant
  887. op3 is compile time invariant
  888. IPA function summary for prvInitialiseNewQueue/7 inlinable
  889. global time: 20.000000
  890. self size: 13
  891. global size: 13
  892. min size: 6
  893. self stack: 0
  894. global stack: 0
  895. size:1.500000, time:1.500000
  896. size:4.500000, time:3.500000, executed if:(not inlined)
  897. size:2.000000, time:2.000000, nonconst if:(op1 changed)
  898. size:0.500000, time:0.250000, executed if:(op1 != 0) && (not inlined)
  899. size:0.500000, time:0.250000, executed if:(op1 != 0)
  900. size:0.500000, time:0.250000, executed if:(op1 == 0) && (not inlined)
  901. size:0.500000, time:0.250000, executed if:(op1 == 0)
  902. calls:
  903. xQueueGenericReset/5 function not considered for inlining
  904. loop depth: 0 freq:1.00 size: 3 time: 12callee size:12 stack: 0
  905. op1 is compile time invariant
  906. IPA function summary for xQueueGenericCreate/6 inlinable
  907. global time: 10.445736
  908. self size: 28
  909. global size: 28
  910. min size: 0
  911. self stack: 0
  912. global stack: 0
  913. size:5.000000, time:4.587495
  914. size:2.000000, time:0.000000, executed if:(not inlined)
  915. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  916. size:6.000000, time:1.832486, executed if:(op0 != 0), nonconst if:(op0 changed || op1 changed) && (op0 != 0)
  917. size:3.000000, time:0.209111, executed if:(op0 != 0)
  918. size:1.000000, time:0.165002, executed if:(op0 != 0) && (not inlined)
  919. calls:
  920. prvInitialiseNewQueue/7 function not considered for inlining
  921. loop depth: 0 freq:0.04 size: 6 time: 15callee size: 6 stack: 0 predicate: (op0 != 0)
  922. pvPortMalloc/46 function body not available
  923. loop depth: 0 freq:0.08 size: 3 time: 12 predicate: (op0 != 0)
  924. IPA function summary for xQueueGenericReset/5 inlinable
  925. global time: 11.305065
  926. self size: 25
  927. global size: 25
  928. min size: 0
  929. self stack: 0
  930. global stack: 0
  931. size:0.000000, time:0.000000
  932. size:2.000000, time:0.000000, executed if:(not inlined)
  933. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  934. size:0.500000, time:0.350002, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
  935. size:2.500000, time:1.750008, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
  936. size:0.500000, time:0.175001, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
  937. size:0.500000, time:0.175001, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  938. size:2.000000, time:0.700003, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed || op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  939. size:5.000000, time:2.922505, executed if:(op0 != 0B)
  940. size:1.000000, time:0.231005, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
  941. size:5.000000, time:1.500011, executed if:(op0 == 0B)
  942. calls:
  943. xQueueGenericReset.part.0/65 function not considered for inlining
  944. loop depth: 0 freq:0.12 size: 4 time: 13callee size:18 stack: 0 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B)
  945. Flattening functions:
  946. Overall time estimate: 2689.014374 weighted by profile: 0.000000
  947. Deciding on inlining of small functions. Starting with size 0.
  948. Enqueueing calls in vQueueUnregisterQueue.part.0/114.
  949. Enqueueing calls in xQueueGenericReset.part.0/65.
  950. Enqueueing calls in vQueueWaitForMessageRestricted/41.
  951. Enqueueing calls in vQueueUnregisterQueue/40.
  952. Enqueueing calls in pcQueueGetName/39.
  953. Enqueueing calls in vQueueAddToRegistry/38.
  954. Enqueueing calls in xQueueIsQueueFullFromISR/37.
  955. Enqueueing calls in prvIsQueueFull/36.
  956. Enqueueing calls in xQueueIsQueueEmptyFromISR/35.
  957. Enqueueing calls in prvIsQueueEmpty/34.
  958. Enqueueing calls in prvUnlockQueue/33.
  959. Enqueueing calls in prvCopyDataFromQueue/32.
  960. Enqueueing calls in prvCopyDataToQueue/31.
  961. Enqueueing calls in prvGetDisinheritPriorityAfterTimeout/30.
  962. Enqueueing calls in ucQueueGetQueueType/29.
  963. Enqueueing calls in vQueueSetQueueNumber/28.
  964. Enqueueing calls in uxQueueGetQueueNumber/27.
  965. Enqueueing calls in vQueueDelete/26.
  966. Enqueueing calls in uxQueueMessagesWaitingFromISR/25.
  967. Enqueueing calls in uxQueueSpacesAvailable/24.
  968. Enqueueing calls in uxQueueMessagesWaiting/23.
  969. Enqueueing calls in xQueuePeekFromISR/22.
  970. Enqueueing calls in xQueueReceiveFromISR/21.
  971. Enqueueing calls in xQueuePeek/20.
  972. Enqueueing calls in xQueueSemaphoreTake/19.
  973. Enqueueing calls in xQueueReceive/18.
  974. Enqueueing calls in xQueueGiveFromISR/17.
  975. Enqueueing calls in xQueueGenericSendFromISR/16.
  976. Enqueueing calls in xQueueGenericSend/15.
  977. Enqueueing calls in xQueueCreateCountingSemaphore/14.
  978. Enqueueing calls in xQueueTakeMutexRecursive/13.
  979. Enqueueing calls in xQueueGiveMutexRecursive/12.
  980. Enqueueing calls in xQueueGetMutexHolderFromISR/11.
  981. Enqueueing calls in xQueueGetMutexHolder/10.
  982. Enqueueing calls in xQueueCreateMutex/9.
  983. Enqueueing calls in prvInitialiseMutex/8.
  984. Enqueueing calls in prvInitialiseNewQueue/7.
  985. Enqueueing calls in xQueueGenericCreate/6.
  986. Enqueueing calls in xQueueGenericReset/5.
  987. Considering prvIsQueueFull/36 with 9 size
  988. to be inlined into xQueueGenericSend/15 in ../FreeRTOS/Source/queue.c:974
  989. Estimated badness is -0.611183, frequency 2.51.
  990. Considering prvInitialiseMutex/8 with 13 size
  991. to be inlined into xQueueCreateMutex/9 in ../FreeRTOS/Source/queue.c:547
  992. Estimated badness is -0.463934, frequency 1.00.
  993. Considering vQueueUnregisterQueue.part.0/114 with 7 size
  994. to be inlined into vQueueUnregisterQueue/40 in unknown:0
  995. Estimated badness is -0.166667, frequency 0.30.
  996. Considering prvInitialiseNewQueue/7 with 13 size
  997. to be inlined into xQueueGenericCreate/6 in ../FreeRTOS/Source/queue.c:443
  998. Estimated badness is -0.055871, frequency 0.04.
  999. Considering xQueueGenericReset.part.0/65 with 36 size
  1000. to be inlined into xQueueGenericReset/5 in unknown:0
  1001. Estimated badness is -0.007792, frequency 0.12.
  1002. Considering prvGetDisinheritPriorityAfterTimeout/30 with 9 size
  1003. to be inlined into xQueueSemaphoreTake/19 in ../FreeRTOS/Source/queue.c:1693
  1004. Estimated badness is -0.002336, frequency 0.01.
  1005. Reclaiming functions:
  1006. Reclaiming variables:
  1007. Clearing address taken flags:
  1008. Deciding on functions to be inlined into all callers and removing useless speculations:
  1009. Overall time estimate: 2596.598217 weighted by profile: 0.000000
  1010. Why inlining failed?
  1011. function body not available : 108 calls, 145.321652 freq, 0 count
  1012. --param max-inline-insns-auto limit reached : 6 calls, 1.289531 freq, 0 count
  1013. call is unlikely and code size would grow : 26 calls, 26.304340 freq, 0 count
  1014. IPA function summary for vQueueWaitForMessageRestricted/41 inlinable
  1015. global time: 46.970000
  1016. self size: 22
  1017. global size: 22
  1018. min size: 16
  1019. self stack: 0
  1020. global stack: 0
  1021. size:8.500000, time:7.840000
  1022. size:5.500000, time:3.840000, executed if:(not inlined)
  1023. calls:
  1024. prvUnlockQueue/33 call is unlikely and code size would grow
  1025. loop depth: 0 freq:1.00 size: 2 time: 11callee size:17 stack: 0
  1026. vTaskPlaceOnEventListRestricted/62 function body not available
  1027. loop depth: 0 freq:0.33 size: 4 time: 13
  1028. vPortExitCritical/45 function body not available
  1029. loop depth: 0 freq:1.00 size: 1 time: 10
  1030. vPortEnterCritical/42 function body not available
  1031. loop depth: 0 freq:1.00 size: 1 time: 10
  1032. IPA function summary for vQueueUnregisterQueue/40 inlinable
  1033. global time: 13.799222
  1034. self size: 14
  1035. global size: 18
  1036. min size: 0
  1037. self stack: 0
  1038. global stack: 0
  1039. estimated growth:9
  1040. size:0.000000, time:0.000000
  1041. size:2.000000, time:0.000000, executed if:(not inlined)
  1042. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1043. size:8.000000, time:8.899221, executed if:(op0 != 0B)
  1044. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1045. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1046. calls:
  1047. vQueueUnregisterQueue.part.0/114 inlined
  1048. loop depth: 0 freq:0.30 size: 1 time: 10callee size: 3 stack: 0
  1049. Stack frame offset 0, callee self size 0, callee size 0
  1050. IPA function summary for pcQueueGetName/39 inlinable
  1051. global time: 13.729842
  1052. self size: 17
  1053. global size: 17
  1054. min size: 0
  1055. self stack: 0
  1056. global stack: 0
  1057. size:0.000000, time:0.000000
  1058. size:2.000000, time:0.000000, executed if:(not inlined)
  1059. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1060. size:7.000000, time:8.829841, executed if:(op0 != 0B)
  1061. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1062. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1063. calls:
  1064. IPA function summary for vQueueAddToRegistry/38 inlinable
  1065. global time: 16.518196
  1066. self size: 27
  1067. global size: 27
  1068. min size: 0
  1069. self stack: 0
  1070. global stack: 0
  1071. size:0.000000, time:0.000000
  1072. size:2.000000, time:0.000000, executed if:(not inlined)
  1073. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1074. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1075. size:15.000000, time:10.218196, executed if:(op1 != 0B) && (op0 != 0B)
  1076. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1077. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1078. calls:
  1079. IPA function summary for xQueueIsQueueFullFromISR/37 inlinable
  1080. global time: 7.700000
  1081. self size: 14
  1082. global size: 14
  1083. min size: 0
  1084. self stack: 0
  1085. global stack: 0
  1086. size:0.000000, time:0.000000
  1087. size:2.000000, time:0.000000, executed if:(not inlined)
  1088. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1089. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
  1090. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
  1091. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
  1092. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
  1093. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed || op0[ref offset: 480] changed) && (op0 != 0B)
  1094. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1095. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1096. calls:
  1097. IPA function summary for xQueueIsQueueEmptyFromISR/35 inlinable
  1098. global time: 7.000000
  1099. self size: 13
  1100. global size: 13
  1101. min size: 0
  1102. self stack: 0
  1103. global stack: 0
  1104. size:0.000000, time:0.000000
  1105. size:2.000000, time:0.000000, executed if:(not inlined)
  1106. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1107. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
  1108. size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
  1109. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1110. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1111. calls:
  1112. IPA function summary for prvIsQueueEmpty/34 inlinable
  1113. global time: 25.000000
  1114. self size: 8
  1115. global size: 8
  1116. min size: 3
  1117. self stack: 0
  1118. global stack: 0
  1119. estimated growth:4
  1120. size:2.500000, time:2.500000
  1121. size:3.500000, time:2.500000, executed if:(not inlined)
  1122. calls:
  1123. vPortExitCritical/45 function body not available
  1124. loop depth: 0 freq:1.00 size: 1 time: 10
  1125. vPortEnterCritical/42 function body not available
  1126. loop depth: 0 freq:1.00 size: 1 time: 10
  1127. IPA function summary for prvUnlockQueue/33 inlinable
  1128. global time: 441.930953
  1129. self size: 35
  1130. global size: 35
  1131. min size: 17
  1132. self stack: 0
  1133. global stack: 0
  1134. estimated growth:316
  1135. size:17.000000, time:133.648980
  1136. size:6.000000, time:12.833839, executed if:(not inlined)
  1137. calls:
  1138. vPortExitCritical/45 function body not available
  1139. loop depth: 0 freq:1.00 size: 1 time: 10
  1140. vTaskMissedYield/56 function body not available
  1141. loop depth: 1 freq:2.75 size: 1 time: 10
  1142. xTaskRemoveFromEventList/43 function body not available
  1143. loop depth: 1 freq:8.35 size: 3 time: 12
  1144. vPortEnterCritical/42 function body not available
  1145. loop depth: 0 freq:1.00 size: 1 time: 10
  1146. vPortExitCritical/45 function body not available
  1147. loop depth: 0 freq:1.00 size: 1 time: 10
  1148. vTaskMissedYield/56 function body not available
  1149. loop depth: 1 freq:2.75 size: 1 time: 10
  1150. xTaskRemoveFromEventList/43 function body not available
  1151. loop depth: 1 freq:8.35 size: 3 time: 12
  1152. vPortEnterCritical/42 function body not available
  1153. loop depth: 0 freq:1.00 size: 1 time: 10
  1154. IPA function summary for prvCopyDataFromQueue/32 inlinable
  1155. global time: 15.500000
  1156. self size: 19
  1157. global size: 19
  1158. min size: 0
  1159. self stack: 0
  1160. global stack: 0
  1161. estimated growth:21
  1162. size:0.000000, time:0.000000
  1163. size:3.000000, time:2.000000, executed if:(not inlined)
  1164. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 512] changed) && (not inlined)
  1165. size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 512] changed)
  1166. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) && (not inlined)
  1167. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
  1168. size:1.000000, time:0.500000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
  1169. size:1.500000, time:0.625000, executed if:(op0[ref offset: 512] != 0) && (not inlined)
  1170. size:1.500000, time:0.625000, executed if:(op0[ref offset: 512] != 0)
  1171. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) && (not inlined)
  1172. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
  1173. size:2.000000, time:1.000000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed || op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
  1174. size:0.500000, time:0.125000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0) && (not inlined)
  1175. size:0.500000, time:0.125000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0)
  1176. calls:
  1177. memcpy/55 function body not available
  1178. loop depth: 0 freq:0.50 size: 4 time: 13 predicate: (op0[ref offset: 512] != 0)
  1179. IPA function summary for prvCopyDataToQueue/31 inlinable
  1180. global time: 23.807600
  1181. self size: 54
  1182. global size: 54
  1183. min size: 2
  1184. self stack: 0
  1185. global stack: 0
  1186. estimated growth:19
  1187. size:1.500000, time:1.500000
  1188. size:3.500000, time:2.500000, executed if:(not inlined)
  1189. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 448] changed) && (not inlined)
  1190. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 448] changed)
  1191. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 512] changed) && (not inlined)
  1192. size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 512] changed)
  1193. size:2.000000, time:1.000000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op2 changed) && (op0[ref offset: 512] != 0)
  1194. size:0.500000, time:0.125000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
  1195. size:0.500000, time:0.125000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
  1196. size:3.000000, time:0.625000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
  1197. size:8.000000, time:1.750000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0)
  1198. size:2.000000, time:0.500000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op2 changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
  1199. size:2.000000, time:0.170000, executed if:(op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 448] changed) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
  1200. size:1.000000, time:0.042500, executed if:(op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 448] changed) && (op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
  1201. size:0.500000, time:0.125000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
  1202. size:0.500000, time:0.125000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0)
  1203. size:3.000000, time:0.625000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
  1204. size:6.000000, time:1.375000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0)
  1205. size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] == 0) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (not inlined)
  1206. size:2.500000, time:1.250000, executed if:(op0[ref offset: 512] == 0), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0)
  1207. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
  1208. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  1209. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
  1210. size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  1211. calls:
  1212. memcpy/55 function body not available
  1213. loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 != 0) && (op0[ref offset: 512] != 0)
  1214. memcpy/55 function body not available
  1215. loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 == 0) && (op0[ref offset: 512] != 0)
  1216. xTaskPriorityDisinherit/54 function body not available
  1217. loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  1218. IPA function summary for ucQueueGetQueueType/29 inlinable
  1219. global time: 3.000000
  1220. self size: 4
  1221. global size: 4
  1222. min size: 0
  1223. self stack: 0
  1224. global stack: 0
  1225. size:0.000000, time:0.000000
  1226. size:3.000000, time:2.000000, executed if:(not inlined)
  1227. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 608] changed) && (not inlined)
  1228. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 608] changed)
  1229. calls:
  1230. IPA function summary for vQueueSetQueueNumber/28 inlinable
  1231. global time: 3.000000
  1232. self size: 4
  1233. global size: 4
  1234. min size: 0
  1235. self stack: 0
  1236. global stack: 0
  1237. size:0.500000, time:0.500000
  1238. size:3.500000, time:2.500000, executed if:(not inlined)
  1239. calls:
  1240. IPA function summary for uxQueueGetQueueNumber/27 inlinable
  1241. global time: 3.000000
  1242. self size: 4
  1243. global size: 4
  1244. min size: 0
  1245. self stack: 0
  1246. global stack: 0
  1247. size:0.000000, time:0.000000
  1248. size:3.000000, time:2.000000, executed if:(not inlined)
  1249. size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 576] changed) && (not inlined)
  1250. size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 576] changed)
  1251. calls:
  1252. IPA function summary for vQueueDelete/26 inlinable
  1253. global time: 17.159302
  1254. self size: 14
  1255. global size: 14
  1256. min size: 0
  1257. self stack: 0
  1258. global stack: 0
  1259. size:0.000000, time:0.000000
  1260. size:2.000000, time:0.000000, executed if:(not inlined)
  1261. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1262. size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined)
  1263. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  1264. calls:
  1265. vPortFree/61 function body not available
  1266. loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
  1267. vQueueUnregisterQueue/40 call is unlikely and code size would grow
  1268. loop depth: 0 freq:0.53 size: 2 time: 11callee size: 9 stack: 0 predicate: (op0 != 0B)
  1269. IPA function summary for uxQueueMessagesWaitingFromISR/25 inlinable
  1270. global time: 5.600001
  1271. self size: 11
  1272. global size: 11
  1273. min size: 0
  1274. self stack: 0
  1275. global stack: 0
  1276. size:0.000000, time:0.000000
  1277. size:2.000000, time:0.000000, executed if:(not inlined)
  1278. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1279. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
  1280. size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
  1281. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1282. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1283. calls:
  1284. IPA function summary for uxQueueSpacesAvailable/24 inlinable
  1285. global time: 17.694002
  1286. self size: 15
  1287. global size: 15
  1288. min size: 0
  1289. self stack: 0
  1290. global stack: 0
  1291. size:0.000000, time:0.000000
  1292. size:2.000000, time:0.000000, executed if:(not inlined)
  1293. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1294. size:2.000000, time:1.604100, executed if:(op0 != 0B) && (not inlined)
  1295. size:2.000000, time:1.069400, executed if:(op0 != 0B)
  1296. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  1297. calls:
  1298. vPortExitCritical/45 function body not available
  1299. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  1300. vPortEnterCritical/42 function body not available
  1301. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  1302. IPA function summary for uxQueueMessagesWaiting/23 inlinable
  1303. global time: 16.624602
  1304. self size: 13
  1305. global size: 13
  1306. min size: 0
  1307. self stack: 0
  1308. global stack: 0
  1309. size:0.000000, time:0.000000
  1310. size:2.000000, time:0.000000, executed if:(not inlined)
  1311. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1312. size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined)
  1313. size:0.500000, time:0.267350, executed if:(op0 != 0B)
  1314. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  1315. calls:
  1316. vPortExitCritical/45 function body not available
  1317. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  1318. vPortEnterCritical/42 function body not available
  1319. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  1320. IPA function summary for xQueuePeekFromISR/22 inlinable
  1321. global time: 15.060094
  1322. self size: 44
  1323. global size: 44
  1324. min size: 0
  1325. self stack: 0
  1326. global stack: 0
  1327. size:0.000000, time:0.000000
  1328. size:2.000000, time:0.000000, executed if:(not inlined)
  1329. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1330. size:2.000000, time:1.400001, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1331. size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  1332. size:2.500000, time:0.524998, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  1333. size:5.000000, time:0.524998, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  1334. size:0.500000, time:0.297501, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1335. size:2.500000, time:1.487503, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1336. size:10.500000, time:1.930130, executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1337. size:2.500000, time:0.555672, executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1338. size:5.000000, time:1.993250, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
  1339. size:5.000000, time:1.499996, executed if:(op0 == 0B)
  1340. calls:
  1341. prvCopyDataFromQueue/32 call is unlikely and code size would grow
  1342. loop depth: 0 freq:0.06 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1343. vPortValidateInterruptPriority/57 function body not available
  1344. loop depth: 0 freq:0.20 size: 1 time: 10 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1345. IPA function summary for xQueueReceiveFromISR/21 inlinable
  1346. global time: 22.476026
  1347. self size: 59
  1348. global size: 59
  1349. min size: 0
  1350. self stack: 0
  1351. global stack: 0
  1352. size:0.000000, time:0.000000
  1353. size:2.000000, time:0.000000, executed if:(not inlined)
  1354. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1355. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1356. size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  1357. size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  1358. size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  1359. size:26.500000, time:6.511267, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1360. size:3.500000, time:1.509311, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1361. size:2.000000, time:0.019888, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1362. size:0.500000, time:0.003480, executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1363. size:0.500000, time:0.003480, executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1364. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1365. calls:
  1366. xTaskRemoveFromEventList/43 function body not available
  1367. loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1368. prvCopyDataFromQueue/32 call is unlikely and code size would grow
  1369. loop depth: 0 freq:0.18 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1370. vPortValidateInterruptPriority/57 function body not available
  1371. loop depth: 0 freq:0.54 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1372. IPA function summary for xQueuePeek/20 inlinable
  1373. global time: 543.926399
  1374. self size: 108
  1375. global size: 108
  1376. min size: 0
  1377. self stack: 8
  1378. global stack: 8
  1379. size:0.000000, time:0.000000
  1380. size:2.000000, time:0.000000, executed if:(not inlined)
  1381. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1382. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1383. size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  1384. size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  1385. size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  1386. size:44.000000, time:80.224698, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1387. size:5.000000, time:8.961298, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1388. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1389. calls:
  1390. prvIsQueueEmpty/34 call is unlikely and code size would grow
  1391. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1392. op0 change 47.520000% of time
  1393. xTaskResumeAll/53 function body not available
  1394. loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1395. prvUnlockQueue/33 call is unlikely and code size would grow
  1396. loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1397. op0 change 47.520000% of time
  1398. xTaskResumeAll/53 function body not available
  1399. loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1400. prvUnlockQueue/33 call is unlikely and code size would grow
  1401. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1402. op0 change 95.040000% of time
  1403. xTaskResumeAll/53 function body not available
  1404. loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1405. prvUnlockQueue/33 call is unlikely and code size would grow
  1406. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1407. op0 change 95.040000% of time
  1408. vTaskPlaceOnEventList/52 function body not available
  1409. loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1410. prvIsQueueEmpty/34 call is unlikely and code size would grow
  1411. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1412. op0 change 47.520000% of time
  1413. xTaskCheckForTimeOut/51 function body not available
  1414. loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1415. op0 is compile time invariant
  1416. op1 is compile time invariant
  1417. vPortExitCritical/45 function body not available
  1418. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1419. vPortEnterCritical/42 function body not available
  1420. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1421. vTaskSuspendAll/50 function body not available
  1422. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1423. vPortExitCritical/45 function body not available
  1424. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1425. vTaskInternalSetTimeOutState/49 function body not available
  1426. loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1427. op0 is compile time invariant
  1428. vPortExitCritical/45 function body not available
  1429. loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1430. vPortExitCritical/45 function body not available
  1431. loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1432. xTaskRemoveFromEventList/43 function body not available
  1433. loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1434. prvCopyDataFromQueue/32 call is unlikely and code size would grow
  1435. loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1436. vPortEnterCritical/42 function body not available
  1437. loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1438. xTaskGetSchedulerState/48 function body not available
  1439. loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1440. IPA function summary for xQueueSemaphoreTake/19 inlinable
  1441. global time: 246.711017
  1442. self size: 136
  1443. global size: 138
  1444. min size: 0
  1445. self stack: 8
  1446. global stack: 8
  1447. estimated growth:123
  1448. size:0.000000, time:0.000000
  1449. size:2.000000, time:0.000000, executed if:(not inlined)
  1450. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1451. size:0.500000, time:0.350001, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
  1452. size:2.500000, time:1.750007, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
  1453. size:65.000000, time:37.506449, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
  1454. size:7.000000, time:4.111823, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1455. size:5.000000, time:2.345004, executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
  1456. size:5.000000, time:1.500009, executed if:(op0 == 0B)
  1457. calls:
  1458. vPortExitCritical/45 function body not available
  1459. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1460. vTaskPriorityDisinheritAfterTimeout/60 function body not available
  1461. loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1462. prvGetDisinheritPriorityAfterTimeout/30 inlined
  1463. loop depth: 0 freq:0.01 size: 3 time: 12callee size: 4 stack: 0
  1464. Stack frame offset 8, callee self size 0, callee size 0
  1465. vPortEnterCritical/42 function body not available
  1466. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1467. prvIsQueueEmpty/34 call is unlikely and code size would grow
  1468. loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1469. xTaskResumeAll/53 function body not available
  1470. loop depth: 1 freq:0.90 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1471. prvUnlockQueue/33 call is unlikely and code size would grow
  1472. loop depth: 1 freq:0.90 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1473. xTaskResumeAll/53 function body not available
  1474. loop depth: 1 freq:0.30 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1475. prvUnlockQueue/33 call is unlikely and code size would grow
  1476. loop depth: 1 freq:0.30 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1477. xTaskResumeAll/53 function body not available
  1478. loop depth: 1 freq:0.61 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1479. prvUnlockQueue/33 call is unlikely and code size would grow
  1480. loop depth: 1 freq:0.61 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1481. vTaskPlaceOnEventList/52 function body not available
  1482. loop depth: 1 freq:0.61 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1483. vPortExitCritical/45 function body not available
  1484. loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1485. xTaskPriorityInherit/59 function body not available
  1486. loop depth: 1 freq:0.11 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1487. vPortEnterCritical/42 function body not available
  1488. loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1489. prvIsQueueEmpty/34 call is unlikely and code size would grow
  1490. loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1491. xTaskCheckForTimeOut/51 function body not available
  1492. loop depth: 1 freq:1.81 size: 4 time: 13 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1493. op0 is compile time invariant
  1494. op1 is compile time invariant
  1495. vPortExitCritical/45 function body not available
  1496. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1497. vPortEnterCritical/42 function body not available
  1498. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1499. vTaskSuspendAll/50 function body not available
  1500. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1501. vPortExitCritical/45 function body not available
  1502. loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1503. vTaskInternalSetTimeOutState/49 function body not available
  1504. loop depth: 1 freq:0.60 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1505. op0 is compile time invariant
  1506. vPortExitCritical/45 function body not available
  1507. loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1508. vPortExitCritical/45 function body not available
  1509. loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1510. xTaskRemoveFromEventList/43 function body not available
  1511. loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1512. pvTaskIncrementMutexHeldCount/58 function body not available
  1513. loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1514. vPortEnterCritical/42 function body not available
  1515. loop depth: 1 freq:1.95 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1516. xTaskGetSchedulerState/48 function body not available
  1517. loop depth: 0 freq:0.23 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
  1518. IPA function summary for xQueueReceive/18 inlinable
  1519. global time: 543.926399
  1520. self size: 108
  1521. global size: 108
  1522. min size: 0
  1523. self stack: 8
  1524. global stack: 8
  1525. size:0.000000, time:0.000000
  1526. size:2.000000, time:0.000000, executed if:(not inlined)
  1527. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1528. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1529. size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  1530. size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  1531. size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  1532. size:44.500000, time:80.307677, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1533. size:4.500000, time:8.878318, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1534. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1535. calls:
  1536. prvIsQueueEmpty/34 call is unlikely and code size would grow
  1537. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1538. op0 change 47.520000% of time
  1539. xTaskResumeAll/53 function body not available
  1540. loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1541. prvUnlockQueue/33 call is unlikely and code size would grow
  1542. loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1543. op0 change 47.520000% of time
  1544. xTaskResumeAll/53 function body not available
  1545. loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1546. prvUnlockQueue/33 call is unlikely and code size would grow
  1547. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1548. op0 change 95.040000% of time
  1549. xTaskResumeAll/53 function body not available
  1550. loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1551. prvUnlockQueue/33 call is unlikely and code size would grow
  1552. loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1553. op0 change 95.040000% of time
  1554. vTaskPlaceOnEventList/52 function body not available
  1555. loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1556. prvIsQueueEmpty/34 call is unlikely and code size would grow
  1557. loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1558. op0 change 47.520000% of time
  1559. xTaskCheckForTimeOut/51 function body not available
  1560. loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1561. op0 is compile time invariant
  1562. op1 is compile time invariant
  1563. vPortExitCritical/45 function body not available
  1564. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1565. vPortEnterCritical/42 function body not available
  1566. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1567. vTaskSuspendAll/50 function body not available
  1568. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1569. vPortExitCritical/45 function body not available
  1570. loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1571. vTaskInternalSetTimeOutState/49 function body not available
  1572. loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1573. op0 is compile time invariant
  1574. vPortExitCritical/45 function body not available
  1575. loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1576. vPortExitCritical/45 function body not available
  1577. loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1578. xTaskRemoveFromEventList/43 function body not available
  1579. loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1580. prvCopyDataFromQueue/32 call is unlikely and code size would grow
  1581. loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1582. vPortEnterCritical/42 function body not available
  1583. loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1584. xTaskGetSchedulerState/48 function body not available
  1585. loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1586. IPA function summary for xQueueGiveFromISR/17 inlinable
  1587. global time: 16.111704
  1588. self size: 66
  1589. global size: 66
  1590. min size: 0
  1591. self stack: 0
  1592. global stack: 0
  1593. size:0.000000, time:0.000000
  1594. size:2.000000, time:0.000000, executed if:(not inlined)
  1595. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1596. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
  1597. size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
  1598. size:0.500000, time:0.175000, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1599. size:2.500000, time:0.875000, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1600. size:0.500000, time:0.081427, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1601. size:2.500000, time:0.407136, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1602. size:5.000000, time:0.569996, executed if:(op0[ref offset: 64] != 0B) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1603. size:27.000000, time:3.297567, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1604. size:4.000000, time:0.818808, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1605. size:2.000000, time:0.013241, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op1 changed) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1606. size:0.500000, time:0.002318, executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1607. size:0.500000, time:0.002318, executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1608. size:5.000000, time:1.749999, executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
  1609. size:5.000000, time:1.500002, executed if:(op0 == 0B)
  1610. calls:
  1611. xTaskRemoveFromEventList/43 function body not available
  1612. loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1613. vPortValidateInterruptPriority/57 function body not available
  1614. loop depth: 0 freq:0.24 size: 1 time: 10 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
  1615. IPA function summary for xQueueGenericSendFromISR/16 inlinable
  1616. global time: 23.679489
  1617. self size: 72
  1618. global size: 72
  1619. min size: 0
  1620. self stack: 0
  1621. global stack: 0
  1622. size:0.000000, time:0.000000
  1623. size:2.000000, time:0.000000, executed if:(not inlined)
  1624. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1625. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1626. size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  1627. size:2.500000, time:0.525002, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  1628. size:5.000000, time:0.525002, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  1629. size:2.000000, time:1.189999, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1630. size:0.500000, time:0.152082, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1631. size:2.500000, time:0.760408, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1632. size:5.000000, time:1.003736, executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1633. size:26.000000, time:5.469914, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1634. size:4.000000, time:1.389252, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1635. size:2.000000, time:0.528296, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1636. size:2.000000, time:0.024676, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1637. size:0.500000, time:0.004318, executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1638. size:0.500000, time:0.004318, executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1639. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1640. calls:
  1641. xTaskRemoveFromEventList/43 function body not available
  1642. loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1643. prvCopyDataToQueue/31 --param max-inline-insns-auto limit reached
  1644. loop depth: 0 freq:0.22 size: 4 time: 13callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1645. vPortValidateInterruptPriority/57 function body not available
  1646. loop depth: 0 freq:0.39 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1647. IPA function summary for xQueueGenericSend/15 inlinable
  1648. global time: 386.668900
  1649. self size: 121
  1650. global size: 123
  1651. min size: 0
  1652. self stack: 8
  1653. global stack: 8
  1654. estimated growth:190
  1655. size:0.000000, time:0.000000
  1656. size:2.000000, time:0.000000, executed if:(not inlined)
  1657. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1658. size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B)
  1659. size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
  1660. size:2.500000, time:0.525002, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
  1661. size:5.000000, time:0.525002, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
  1662. size:2.000000, time:1.189999, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1663. size:0.500000, time:0.152082, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1664. size:2.500000, time:0.760408, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1665. size:5.000000, time:1.003736, executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1666. size:25.500000, time:11.189120, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1667. size:2.500000, time:3.468903, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1668. size:2.000000, time:5.449000, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1669. size:24.000000, time:50.182656, executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1670. size:2.000000, time:3.452794, executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
  1671. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1672. calls:
  1673. xTaskResumeAll/53 function body not available
  1674. loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1675. prvUnlockQueue/33 call is unlikely and code size would grow
  1676. loop depth: 0 freq:0.07 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1677. xTaskResumeAll/53 function body not available
  1678. loop depth: 1 freq:1.25 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1679. prvUnlockQueue/33 call is unlikely and code size would grow
  1680. loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1681. op0 change 79.810000% of time
  1682. xTaskResumeAll/53 function body not available
  1683. loop depth: 1 freq:1.25 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1684. prvUnlockQueue/33 call is unlikely and code size would grow
  1685. loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1686. op0 change 79.810000% of time
  1687. vTaskPlaceOnEventList/52 function body not available
  1688. loop depth: 1 freq:1.25 size: 3 time: 12 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1689. prvIsQueueFull/36 inlined
  1690. loop depth: 1 freq:2.51 size: 3 time: 12callee size: 4 stack: 0
  1691. Stack frame offset 8, callee self size 0, callee size 0
  1692. vPortExitCritical/45 function body not available
  1693. loop depth: 1 freq:2.51 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1694. vPortEnterCritical/42 function body not available
  1695. loop depth: 1 freq:2.51 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1696. xTaskCheckForTimeOut/51 function body not available
  1697. loop depth: 1 freq:2.58 size: 4 time: 13 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1698. op0 is compile time invariant
  1699. op1 is compile time invariant
  1700. vPortExitCritical/45 function body not available
  1701. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1702. vPortEnterCritical/42 function body not available
  1703. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1704. vTaskSuspendAll/50 function body not available
  1705. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1706. vPortExitCritical/45 function body not available
  1707. loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1708. vTaskInternalSetTimeOutState/49 function body not available
  1709. loop depth: 1 freq:0.85 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1710. op0 is compile time invariant
  1711. vPortExitCritical/45 function body not available
  1712. loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1713. vPortExitCritical/45 function body not available
  1714. loop depth: 0 freq:0.15 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1715. xTaskRemoveFromEventList/43 function body not available
  1716. loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1717. prvCopyDataToQueue/31 --param max-inline-insns-auto limit reached
  1718. loop depth: 0 freq:0.15 size: 5 time: 14callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1719. vPortEnterCritical/42 function body not available
  1720. loop depth: 1 freq:2.80 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1721. xTaskGetSchedulerState/48 function body not available
  1722. loop depth: 0 freq:0.39 size: 2 time: 11 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
  1723. IPA function summary for xQueueCreateCountingSemaphore/14 inlinable
  1724. global time: 10.260529
  1725. self size: 20
  1726. global size: 20
  1727. min size: 0
  1728. self stack: 0
  1729. global stack: 0
  1730. size:5.000000, time:4.174988
  1731. size:2.000000, time:0.000000, executed if:(not inlined)
  1732. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1733. size:2.000000, time:1.000000, executed if:(op0 != 0), nonconst if:(op0 changed || op1 changed) && (op0 != 0)
  1734. size:3.000000, time:0.445502, executed if:(op0 != 0)
  1735. size:1.000000, time:0.330005, executed if:(op0 != 0) && (not inlined)
  1736. calls:
  1737. xQueueGenericCreate/6 call is unlikely and code size would grow
  1738. loop depth: 0 freq:0.17 size: 5 time: 14callee size:15 stack: 0 predicate: (op0 != 0)
  1739. op1 is compile time invariant
  1740. op2 is compile time invariant
  1741. IPA function summary for xQueueTakeMutexRecursive/13 inlinable
  1742. global time: 18.345502
  1743. self size: 27
  1744. global size: 27
  1745. min size: 0
  1746. self stack: 0
  1747. global stack: 0
  1748. size:0.000000, time:0.000000
  1749. size:2.000000, time:0.000000, executed if:(not inlined)
  1750. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1751. size:0.500000, time:0.267350, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
  1752. size:0.500000, time:0.267350, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
  1753. size:8.000000, time:2.424704, executed if:(op0 != 0B)
  1754. size:3.000000, time:1.461148, executed if:(op0 != 0B) && (not inlined)
  1755. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  1756. calls:
  1757. xQueueSemaphoreTake/19 --param max-inline-insns-auto limit reached
  1758. loop depth: 0 freq:0.29 size: 4 time: 13callee size:69 stack: 8 predicate: (op0 != 0B)
  1759. xTaskGetCurrentTaskHandle/47 function body not available
  1760. loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
  1761. IPA function summary for xQueueGiveMutexRecursive/12 inlinable
  1762. global time: 14.424882
  1763. self size: 25
  1764. global size: 25
  1765. min size: 0
  1766. self stack: 0
  1767. global stack: 0
  1768. size:0.000000, time:0.000000
  1769. size:2.000000, time:0.000000, executed if:(not inlined)
  1770. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1771. size:0.500000, time:0.267350, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
  1772. size:0.500000, time:0.267350, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
  1773. size:6.000000, time:1.711046, executed if:(op0 != 0B)
  1774. size:2.000000, time:1.229812, executed if:(op0 != 0B) && (not inlined)
  1775. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  1776. calls:
  1777. xQueueGenericSend/15 --param max-inline-insns-auto limit reached
  1778. loop depth: 0 freq:0.05 size: 5 time: 14callee size:61 stack: 8 predicate: (op0 != 0B)
  1779. op1 is compile time invariant
  1780. op2 is compile time invariant
  1781. op3 is compile time invariant
  1782. xTaskGetCurrentTaskHandle/47 function body not available
  1783. loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
  1784. IPA function summary for xQueueGetMutexHolderFromISR/11 inlinable
  1785. global time: 7.358400
  1786. self size: 14
  1787. global size: 14
  1788. min size: 0
  1789. self stack: 0
  1790. global stack: 0
  1791. size:0.000000, time:0.000000
  1792. size:2.000000, time:0.000000, executed if:(not inlined)
  1793. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1794. size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined)
  1795. size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B)
  1796. size:0.500000, time:0.179200, executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined)
  1797. size:0.500000, time:0.179200, executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B)
  1798. size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined)
  1799. size:5.000000, time:1.500001, executed if:(op0 == 0B)
  1800. calls:
  1801. IPA function summary for xQueueGetMutexHolder/10 inlinable
  1802. global time: 17.967768
  1803. self size: 16
  1804. global size: 16
  1805. min size: 0
  1806. self stack: 0
  1807. global stack: 0
  1808. size:0.000000, time:0.000000
  1809. size:2.000000, time:0.000000, executed if:(not inlined)
  1810. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1811. size:2.000000, time:1.473633, executed if:(op0 != 0B) && (not inlined)
  1812. size:3.000000, time:1.473633, executed if:(op0 != 0B)
  1813. size:5.000000, time:2.326499, executed if:(op0 == 0B)
  1814. calls:
  1815. vPortExitCritical/45 function body not available
  1816. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  1817. vPortEnterCritical/42 function body not available
  1818. loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
  1819. IPA function summary for xQueueCreateMutex/9 inlinable
  1820. global time: 26.287850
  1821. self size: 10
  1822. global size: 17
  1823. min size: 34
  1824. self stack: 0
  1825. global stack: 0
  1826. size:3.500000, time:2.802050
  1827. size:3.000000, time:2.000000, executed if:(not inlined)
  1828. calls:
  1829. prvInitialiseMutex/8 inlined
  1830. loop depth: 0 freq:1.00 size: 2 time: 11callee size: 6 stack: 0
  1831. Stack frame offset 0, callee self size 0, callee size 0
  1832. xQueueGenericSend/15 --param max-inline-insns-auto limit reached
  1833. loop depth: 0 freq:0.53 size: 5 time: 14callee size:61 stack: 8
  1834. op1 is compile time invariant
  1835. op2 is compile time invariant
  1836. op3 is compile time invariant
  1837. xQueueGenericCreate/6 call is unlikely and code size would grow
  1838. loop depth: 0 freq:1.00 size: 5 time: 14callee size:15 stack: 0
  1839. op0 is compile time invariant
  1840. op1 is compile time invariant
  1841. IPA function summary for xQueueGenericCreate/6 inlinable
  1842. global time: 10.489844
  1843. self size: 28
  1844. global size: 30
  1845. min size: 5
  1846. self stack: 0
  1847. global stack: 0
  1848. estimated growth:32
  1849. size:5.000000, time:4.587495
  1850. size:2.000000, time:0.000000, executed if:(not inlined)
  1851. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1852. size:6.000000, time:1.832486, executed if:(op0 != 0), nonconst if:(op0 changed || op1 changed) && (op0 != 0)
  1853. size:4.500000, time:0.275274, executed if:(op0 != 0)
  1854. size:1.000000, time:0.165002, executed if:(op0 != 0) && (not inlined)
  1855. size:2.000000, time:0.088217, executed if:(op0 != 0), nonconst if:(op1 changed) && (op0 != 0)
  1856. size:0.500000, time:0.011027, executed if:(op1 != 0) && (op0 != 0)
  1857. size:0.500000, time:0.011027, executed if:(op1 == 0) && (op0 != 0)
  1858. calls:
  1859. prvInitialiseNewQueue/7 inlined
  1860. loop depth: 0 freq:0.04 size: 6 time: 15callee size: 6 stack: 0
  1861. Stack frame offset 0, callee self size 0, callee size 0
  1862. xQueueGenericReset/5 --param max-inline-insns-auto limit reached
  1863. loop depth: 0 freq:0.04 size: 3 time: 12callee size:24 stack: 0 predicate: (op0 != 0)
  1864. op1 is compile time invariant
  1865. pvPortMalloc/46 function body not available
  1866. loop depth: 0 freq:0.08 size: 3 time: 12 predicate: (op0 != 0)
  1867. IPA function summary for xQueueGenericReset/5 inlinable
  1868. global time: 14.869690
  1869. self size: 25
  1870. global size: 49
  1871. min size: 0
  1872. self stack: 0
  1873. global stack: 0
  1874. estimated growth:18
  1875. size:0.000000, time:0.000000
  1876. size:2.000000, time:0.000000, executed if:(not inlined)
  1877. size:2.000000, time:2.000000, nonconst if:(op0 changed)
  1878. size:0.500000, time:0.350002, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
  1879. size:2.500000, time:1.750008, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
  1880. size:0.500000, time:0.175001, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
  1881. size:0.500000, time:0.175001, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1882. size:2.000000, time:0.700003, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed || op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1883. size:5.000000, time:2.922505, executed if:(op0 != 0B)
  1884. size:1.000000, time:0.231005, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
  1885. size:5.000000, time:1.500011, executed if:(op0 == 0B)
  1886. size:9.500000, time:1.097272, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B)
  1887. size:2.000000, time:0.231005, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op1 changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1888. size:7.500000, time:0.282848, executed if:(op1 == 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1889. calls:
  1890. xQueueGenericReset.part.0/65 inlined
  1891. loop depth: 0 freq:0.12 size: 4 time: 13callee size:18 stack: 0
  1892. Stack frame offset 0, callee self size 0, callee size 0
  1893. vPortEnterCritical/42 function body not available
  1894. loop depth: 0 freq:0.12 size: 1 time: 10 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B)
  1895. xTaskRemoveFromEventList/43 function body not available
  1896. loop depth: 0 freq:0.03 size: 3 time: 12 predicate: (op1 == 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1897. vListInitialise/44 function body not available
  1898. loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1899. vListInitialise/44 function body not available
  1900. loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  1901. vPortExitCritical/45 function body not available
  1902. loop depth: 0 freq:0.12 size: 1 time: 10 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B)
  1903. Symbol table:
  1904. vQueueUnregisterQueue.part.0/114 (vQueueUnregisterQueue.part.0) @05df8b60
  1905. Type: function definition analyzed
  1906. Visibility: prevailing_def_ironly artificial
  1907. References:
  1908. Referring:
  1909. Function vQueueUnregisterQueue.part.0/114 is inline copy in vQueueUnregisterQueue/40
  1910. Availability: local
  1911. Function flags: count:107374 (estimated locally) first_run:1 body local split_part optimize_size
  1912. Called by: vQueueUnregisterQueue/40 (inlined) (107374 (estimated locally),0.30 per call)
  1913. Calls:
  1914. xQueueGenericReset.part.0/65 (xQueueGenericReset.part.0) @05df82a0
  1915. Type: function definition analyzed
  1916. Visibility: prevailing_def_ironly artificial
  1917. References:
  1918. Referring:
  1919. Function xQueueGenericReset.part.0/65 is inline copy in xQueueGenericReset/5
  1920. Availability: local
  1921. Function flags: count:21218 (estimated locally) first_run:1 body local split_part optimize_size
  1922. Called by: xQueueGenericReset/5 (inlined) (21218 (estimated locally),0.12 per call)
  1923. Calls: vPortEnterCritical/42 (21218 (estimated locally),0.12 per call) xTaskRemoveFromEventList/43 (4691 (estimated locally),0.03 per call) vListInitialise/44 (7002 (estimated locally),0.04 per call) vListInitialise/44 (7002 (estimated locally),0.04 per call) vPortExitCritical/45 (21218 (estimated locally),0.12 per call)
  1924. vTaskPlaceOnEventListRestricted/62 (vTaskPlaceOnEventListRestricted) @05f9a620
  1925. Type: function
  1926. Visibility: external public
  1927. References:
  1928. Referring:
  1929. Availability: not_available
  1930. Function flags: optimize_size
  1931. Called by: vQueueWaitForMessageRestricted/41 (354334802 (estimated locally),0.33 per call)
  1932. Calls:
  1933. vPortFree/61 (vPortFree) @05f79ee0
  1934. Type: function
  1935. Visibility: external public
  1936. References:
  1937. Referring:
  1938. Availability: not_available
  1939. Function flags: optimize_size
  1940. Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call)
  1941. Calls:
  1942. vTaskPriorityDisinheritAfterTimeout/60 (vTaskPriorityDisinheritAfterTimeout) @05f79380
  1943. Type: function
  1944. Visibility: external public
  1945. References:
  1946. Referring:
  1947. Availability: not_available
  1948. Function flags: optimize_size
  1949. Called by: xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call)
  1950. Calls:
  1951. xTaskPriorityInherit/59 (xTaskPriorityInherit) @05f792a0
  1952. Type: function
  1953. Visibility: external public
  1954. References:
  1955. Referring:
  1956. Availability: not_available
  1957. Function flags: optimize_size
  1958. Called by: xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call)
  1959. Calls:
  1960. pvTaskIncrementMutexHeldCount/58 (pvTaskIncrementMutexHeldCount) @05f791c0
  1961. Type: function
  1962. Visibility: external public
  1963. References:
  1964. Referring:
  1965. Availability: not_available
  1966. Function flags: optimize_size
  1967. Called by: xQueueSemaphoreTake/19 (2848 (estimated locally),0.01 per call)
  1968. Calls:
  1969. vPortValidateInterruptPriority/57 (vPortValidateInterruptPriority) @05f53620
  1970. Type: function
  1971. Visibility: external public
  1972. References:
  1973. Referring:
  1974. Availability: not_available
  1975. Function flags: optimize_size
  1976. Called by: xQueuePeekFromISR/22 (52886 (estimated locally),0.20 per call) xQueueReceiveFromISR/21 (192251 (estimated locally),0.54 per call) xQueueGiveFromISR/17 (72401 (estimated locally),0.24 per call) xQueueGenericSendFromISR/16 (141108 (estimated locally),0.39 per call)
  1977. Calls:
  1978. vTaskMissedYield/56 (vTaskMissedYield) @05f532a0
  1979. Type: function
  1980. Visibility: external public
  1981. References:
  1982. Referring:
  1983. Availability: not_available
  1984. Function flags: optimize_size
  1985. Called by: prvUnlockQueue/33 (316429830 (estimated locally),2.75 per call) prvUnlockQueue/33 (316429836 (estimated locally),2.75 per call)
  1986. Calls:
  1987. memcpy/55 (memcpy) @05f53000
  1988. Type: function
  1989. Visibility: external public
  1990. References:
  1991. Referring:
  1992. Availability: not_available
  1993. Function flags: optimize_size
  1994. Called by: prvCopyDataFromQueue/32 (536870913 (estimated locally),0.50 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call)
  1995. Calls:
  1996. xTaskPriorityDisinherit/54 (xTaskPriorityDisinherit) @05f058c0
  1997. Type: function
  1998. Visibility: external public
  1999. References:
  2000. Referring:
  2001. Availability: not_available
  2002. Function flags: optimize_size
  2003. Called by: prvCopyDataToQueue/31 (93576600 (estimated locally),0.09 per call)
  2004. Calls:
  2005. xTaskResumeAll/53 (xTaskResumeAll) @05f05e00
  2006. Type: function
  2007. Visibility: external public
  2008. References:
  2009. Referring:
  2010. Availability: not_available
  2011. Function flags: optimize_size
  2012. Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call)
  2013. Calls:
  2014. vTaskPlaceOnEventList/52 (vTaskPlaceOnEventList) @05f05d20
  2015. Type: function
  2016. Visibility: external public
  2017. References:
  2018. Referring:
  2019. Availability: not_available
  2020. Function flags: optimize_size
  2021. Called by: xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call)
  2022. Calls:
  2023. xTaskCheckForTimeOut/51 (xTaskCheckForTimeOut) @05f05c40
  2024. Type: function
  2025. Visibility: external public
  2026. References:
  2027. Referring:
  2028. Availability: not_available
  2029. Function flags: optimize_size
  2030. Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call)
  2031. Calls:
  2032. vTaskSuspendAll/50 (vTaskSuspendAll) @05f05b60
  2033. Type: function
  2034. Visibility: external public
  2035. References:
  2036. Referring:
  2037. Availability: not_available
  2038. Function flags: optimize_size
  2039. Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call)
  2040. Calls:
  2041. vTaskInternalSetTimeOutState/49 (vTaskInternalSetTimeOutState) @05f05a80
  2042. Type: function
  2043. Visibility: external public
  2044. References:
  2045. Referring:
  2046. Availability: not_available
  2047. Function flags: optimize_size
  2048. Called by: xQueuePeek/20 (497076 (estimated locally),1.39 per call) xQueueSemaphoreTake/19 (136739 (estimated locally),0.60 per call) xQueueReceive/18 (497076 (estimated locally),1.39 per call) xQueueGenericSend/15 (304339 (estimated locally),0.85 per call)
  2049. Calls:
  2050. xTaskGetSchedulerState/48 (xTaskGetSchedulerState) @05f059a0
  2051. Type: function
  2052. Visibility: external public
  2053. References:
  2054. Referring:
  2055. Availability: not_available
  2056. Function flags: optimize_size
  2057. Called by: xQueuePeek/20 (192251 (estimated locally),0.54 per call) xQueueSemaphoreTake/19 (52886 (estimated locally),0.23 per call) xQueueReceive/18 (192251 (estimated locally),0.54 per call) xQueueGenericSend/15 (141108 (estimated locally),0.39 per call)
  2058. Calls:
  2059. xTaskGetCurrentTaskHandle/47 (xTaskGetCurrentTaskHandle) @05f05460
  2060. Type: function
  2061. Visibility: external public
  2062. References:
  2063. Referring:
  2064. Availability: not_available
  2065. Function flags: optimize_size
  2066. Called by: xQueueTakeMutexRecursive/13 (123389 (estimated locally),0.53 per call) xQueueGiveMutexRecursive/12 (123389 (estimated locally),0.53 per call)
  2067. Calls:
  2068. pvPortMalloc/46 (pvPortMalloc) @05ef2000
  2069. Type: function
  2070. Visibility: external public
  2071. References:
  2072. Referring:
  2073. Availability: not_available
  2074. Function flags: optimize_size
  2075. Called by: xQueueGenericCreate/6 (9655 (estimated locally),0.08 per call)
  2076. Calls:
  2077. vPortExitCritical/45 (vPortExitCritical) @05ef2d20
  2078. Type: function
  2079. Visibility: external public
  2080. References:
  2081. Referring:
  2082. Availability: not_available
  2083. Function flags: optimize_size
  2084. Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (57225 (estimated locally),0.16 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (3186 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (16340 (estimated locally),0.07 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (57225 (estimated locally),0.16 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (26079 (estimated locally),0.07 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (21218 (estimated locally),0.12 per call) prvUnlockQueue/33 (114863529 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (896877 (estimated locally),2.51 per call)
  2085. Calls:
  2086. vListInitialise/44 (vListInitialise) @05ef2c40
  2087. Type: function
  2088. Visibility: external public
  2089. References:
  2090. Referring:
  2091. Availability: not_available
  2092. Function flags: optimize_size
  2093. Called by: xQueueGenericReset.part.0/65 (7002 (estimated locally),0.04 per call) xQueueGenericReset.part.0/65 (7002 (estimated locally),0.04 per call)
  2094. Calls:
  2095. xTaskRemoveFromEventList/43 (xTaskRemoveFromEventList) @05ef2b60
  2096. Type: function
  2097. Visibility: external public
  2098. References:
  2099. Referring:
  2100. Availability: not_available
  2101. Function flags: optimize_size
  2102. Called by: xQueueReceiveFromISR/21 (7118 (estimated locally),0.02 per call) xQueuePeek/20 (19602 (estimated locally),0.05 per call) xQueueSemaphoreTake/19 (5392 (estimated locally),0.02 per call) xQueueReceive/18 (19602 (estimated locally),0.05 per call) xQueueGiveFromISR/17 (4062 (estimated locally),0.01 per call) xQueueGenericSendFromISR/16 (8831 (estimated locally),0.02 per call) xQueueGenericSend/15 (17949 (estimated locally),0.05 per call) xQueueGenericReset.part.0/65 (4691 (estimated locally),0.03 per call) prvUnlockQueue/33 (958878272 (estimated locally),8.35 per call) prvUnlockQueue/33 (958878293 (estimated locally),8.35 per call)
  2103. Calls:
  2104. vPortEnterCritical/42 (vPortEnterCritical) @05ef2a80
  2105. Type: function
  2106. Visibility: external public
  2107. References:
  2108. Referring:
  2109. Availability: not_available
  2110. Function flags: optimize_size
  2111. Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1622915 (estimated locally),4.53 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (446442 (estimated locally),1.95 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1622915 (estimated locally),4.53 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (1002708 (estimated locally),2.80 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (21218 (estimated locally),0.12 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863534 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (896877 (estimated locally),2.51 per call)
  2112. Calls:
  2113. vQueueWaitForMessageRestricted/41 (vQueueWaitForMessageRestricted) @05ef2540
  2114. Type: function definition analyzed
  2115. Visibility: externally_visible public
  2116. References:
  2117. Referring:
  2118. Availability: available
  2119. Function flags: count:1073741824 (estimated locally) body optimize_size
  2120. Called by:
  2121. Calls: prvUnlockQueue/33 (1073741824 (estimated locally),1.00 per call) vTaskPlaceOnEventListRestricted/62 (354334802 (estimated locally),0.33 per call) vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call)
  2122. vQueueUnregisterQueue/40 (vQueueUnregisterQueue) @05ef22a0
  2123. Type: function definition analyzed
  2124. Visibility: externally_visible public
  2125. References: xQueueRegistry/4 (read)xQueueRegistry/4 (write)xQueueRegistry/4 (write)
  2126. Referring:
  2127. Availability: available
  2128. Function flags: count:357913 (estimated locally) body optimize_size
  2129. Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call)
  2130. Calls: vQueueUnregisterQueue.part.0/114 (inlined) (107374 (estimated locally),0.30 per call)
  2131. pcQueueGetName/39 (pcQueueGetName) @05eece00
  2132. Type: function definition analyzed
  2133. Visibility: externally_visible public
  2134. References: xQueueRegistry/4 (read)xQueueRegistry/4 (read)
  2135. Referring:
  2136. Availability: available
  2137. Function flags: count:357913 (estimated locally) body optimize_size
  2138. Called by:
  2139. Calls:
  2140. vQueueAddToRegistry/38 (vQueueAddToRegistry) @05eec460
  2141. Type: function definition analyzed
  2142. Visibility: externally_visible public
  2143. References: xQueueRegistry/4 (read)xQueueRegistry/4 (addr)xQueueRegistry/4 (read)xQueueRegistry/4 (addr)
  2144. Referring:
  2145. Availability: available
  2146. Function flags: count:357913 (estimated locally) body optimize_size
  2147. Called by:
  2148. Calls:
  2149. xQueueIsQueueFullFromISR/37 (xQueueIsQueueFullFromISR) @05eecd20
  2150. Type: function definition analyzed
  2151. Visibility: externally_visible public
  2152. References:
  2153. Referring:
  2154. Availability: available
  2155. Function flags: count:357913 (estimated locally) body optimize_size
  2156. Called by:
  2157. Calls:
  2158. prvIsQueueFull/36 (prvIsQueueFull) @05eec9a0
  2159. Type: function definition analyzed
  2160. Visibility: prevailing_def_ironly
  2161. References:
  2162. Referring:
  2163. Function prvIsQueueFull/36 is inline copy in xQueueGenericSend/15
  2164. Availability: local
  2165. Function flags: count:896877 (estimated locally) body local optimize_size
  2166. Called by: xQueueGenericSend/15 (inlined) (896877 (estimated locally),2.51 per call)
  2167. Calls: vPortExitCritical/45 (896877 (estimated locally),2.51 per call) vPortEnterCritical/42 (896877 (estimated locally),2.51 per call)
  2168. xQueueIsQueueEmptyFromISR/35 (xQueueIsQueueEmptyFromISR) @05eec700
  2169. Type: function definition analyzed
  2170. Visibility: externally_visible public
  2171. References:
  2172. Referring:
  2173. Availability: available
  2174. Function flags: count:357913 (estimated locally) body optimize_size
  2175. Called by:
  2176. Calls:
  2177. prvIsQueueEmpty/34 (prvIsQueueEmpty) @05eec380
  2178. Type: function definition analyzed
  2179. Visibility: prevailing_def_ironly
  2180. References:
  2181. Referring:
  2182. Availability: local
  2183. Function flags: count:1073741824 (estimated locally) body local optimize_size
  2184. Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call)
  2185. Calls: vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call)
  2186. prvUnlockQueue/33 (prvUnlockQueue) @05eec0e0
  2187. Type: function definition analyzed
  2188. Visibility: prevailing_def_ironly
  2189. References:
  2190. Referring:
  2191. Availability: local
  2192. Function flags: count:114863534 (estimated locally) body local optimize_size
  2193. Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call)
  2194. Calls: vPortExitCritical/45 (114863529 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429830 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878272 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863532 (estimated locally),1.00 per call) vPortExitCritical/45 (114863532 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429836 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878293 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863534 (estimated locally),1.00 per call)
  2195. prvCopyDataFromQueue/32 (prvCopyDataFromQueue) @05ee38c0
  2196. Type: function definition analyzed
  2197. Visibility: prevailing_def_ironly
  2198. References:
  2199. Referring:
  2200. Availability: local
  2201. Function flags: count:1073741824 (estimated locally) body local optimize_size
  2202. Called by: xQueuePeekFromISR/22 (17452 (estimated locally),0.06 per call) xQueueReceiveFromISR/21 (63443 (estimated locally),0.18 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call)
  2203. Calls: memcpy/55 (536870913 (estimated locally),0.50 per call)
  2204. prvCopyDataToQueue/31 (prvCopyDataToQueue) @05ee3380
  2205. Type: function definition analyzed
  2206. Visibility: prevailing_def_ironly
  2207. References:
  2208. Referring:
  2209. Availability: local
  2210. Function flags: count:1073741823 (estimated locally) body local optimize_size
  2211. Called by: xQueueGenericSendFromISR/16 (78710 (estimated locally),0.22 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call)
  2212. Calls: memcpy/55 (268435456 (estimated locally),0.25 per call) memcpy/55 (268435456 (estimated locally),0.25 per call) xTaskPriorityDisinherit/54 (93576600 (estimated locally),0.09 per call)
  2213. prvGetDisinheritPriorityAfterTimeout/30 (prvGetDisinheritPriorityAfterTimeout) @05ee3e00
  2214. Type: function definition analyzed
  2215. Visibility: prevailing_def_ironly
  2216. References:
  2217. Referring:
  2218. Function prvGetDisinheritPriorityAfterTimeout/30 is inline copy in xQueueSemaphoreTake/19
  2219. Availability: local
  2220. Function flags: count:2502 (estimated locally) body local optimize_size
  2221. Called by: xQueueSemaphoreTake/19 (inlined) (2502 (estimated locally),0.01 per call)
  2222. Calls:
  2223. ucQueueGetQueueType/29 (ucQueueGetQueueType) @05ee3a80
  2224. Type: function definition analyzed
  2225. Visibility: externally_visible public
  2226. References:
  2227. Referring:
  2228. Availability: available
  2229. Function flags: count:1073741824 (estimated locally) body optimize_size
  2230. Called by:
  2231. Calls:
  2232. vQueueSetQueueNumber/28 (vQueueSetQueueNumber) @05ee37e0
  2233. Type: function definition analyzed
  2234. Visibility: externally_visible public
  2235. References:
  2236. Referring:
  2237. Availability: available
  2238. Function flags: count:1073741824 (estimated locally) body optimize_size
  2239. Called by:
  2240. Calls:
  2241. uxQueueGetQueueNumber/27 (uxQueueGetQueueNumber) @05ee3540
  2242. Type: function definition analyzed
  2243. Visibility: externally_visible public
  2244. References:
  2245. Referring:
  2246. Availability: available
  2247. Function flags: count:1073741824 (estimated locally) body optimize_size
  2248. Called by:
  2249. Calls:
  2250. vQueueDelete/26 (vQueueDelete) @05ee32a0
  2251. Type: function definition analyzed
  2252. Visibility: externally_visible public
  2253. References:
  2254. Referring:
  2255. Availability: available
  2256. Function flags: count:230763 (estimated locally) body optimize_size
  2257. Called by:
  2258. Calls: vPortFree/61 (123389 (estimated locally),0.53 per call) vQueueUnregisterQueue/40 (123389 (estimated locally),0.53 per call)
  2259. uxQueueMessagesWaitingFromISR/25 (uxQueueMessagesWaitingFromISR) @05edad20
  2260. Type: function definition analyzed
  2261. Visibility: externally_visible public
  2262. References:
  2263. Referring:
  2264. Availability: available
  2265. Function flags: count:357913 (estimated locally) body optimize_size
  2266. Called by:
  2267. Calls:
  2268. uxQueueSpacesAvailable/24 (uxQueueSpacesAvailable) @05eda0e0
  2269. Type: function definition analyzed
  2270. Visibility: externally_visible public
  2271. References:
  2272. Referring:
  2273. Availability: available
  2274. Function flags: count:230763 (estimated locally) body optimize_size
  2275. Called by:
  2276. Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call)
  2277. uxQueueMessagesWaiting/23 (uxQueueMessagesWaiting) @05edac40
  2278. Type: function definition analyzed
  2279. Visibility: externally_visible public
  2280. References:
  2281. Referring:
  2282. Availability: available
  2283. Function flags: count:230763 (estimated locally) body optimize_size
  2284. Called by:
  2285. Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call)
  2286. xQueuePeekFromISR/22 (xQueuePeekFromISR) @05eda8c0
  2287. Type: function definition analyzed
  2288. Visibility: externally_visible public
  2289. References:
  2290. Referring:
  2291. Availability: available
  2292. Function flags: count:269344 (estimated locally) body optimize_size
  2293. Called by:
  2294. Calls: prvCopyDataFromQueue/32 (17452 (estimated locally),0.06 per call) vPortValidateInterruptPriority/57 (52886 (estimated locally),0.20 per call)
  2295. xQueueReceiveFromISR/21 (xQueueReceiveFromISR) @05eda460
  2296. Type: function definition analyzed
  2297. Visibility: externally_visible public
  2298. References:
  2299. Referring:
  2300. Availability: available
  2301. Function flags: count:357913 (estimated locally) body optimize_size
  2302. Called by:
  2303. Calls: xTaskRemoveFromEventList/43 (7118 (estimated locally),0.02 per call) prvCopyDataFromQueue/32 (63443 (estimated locally),0.18 per call) vPortValidateInterruptPriority/57 (192251 (estimated locally),0.54 per call)
  2304. xQueuePeek/20 (xQueuePeek) @05eda000
  2305. Type: function definition analyzed
  2306. Visibility: externally_visible public
  2307. References:
  2308. Referring:
  2309. Availability: available
  2310. Function flags: count:357913 (estimated locally) body optimize_size
  2311. Called by:
  2312. Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call)
  2313. xQueueSemaphoreTake/19 (xQueueSemaphoreTake) @05ec8c40
  2314. Type: function definition analyzed
  2315. Visibility: externally_visible public
  2316. References:
  2317. Referring:
  2318. Availability: available
  2319. Function flags: count:228942 (estimated locally) body optimize_size
  2320. Called by: xQueueTakeMutexRecursive/13 (65976 (estimated locally),0.29 per call)
  2321. Calls: vPortExitCritical/45 (2502 (estimated locally),0.01 per call) vTaskPriorityDisinheritAfterTimeout/60 (2502 (estimated locally),0.01 per call) prvGetDisinheritPriorityAfterTimeout/30 (inlined) (2502 (estimated locally),0.01 per call) vPortEnterCritical/42 (2502 (estimated locally),0.01 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (207180 (estimated locally),0.90 per call) prvUnlockQueue/33 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (68369 (estimated locally),0.30 per call) prvUnlockQueue/33 (68369 (estimated locally),0.30 per call) xTaskResumeAll/53 (138811 (estimated locally),0.61 per call) prvUnlockQueue/33 (138811 (estimated locally),0.61 per call) vTaskPlaceOnEventList/52 (138811 (estimated locally),0.61 per call) vPortExitCritical/45 (24195 (estimated locally),0.11 per call) xTaskPriorityInherit/59 (24195 (estimated locally),0.11 per call) vPortEnterCritical/42 (24195 (estimated locally),0.11 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskCheckForTimeOut/51 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vPortEnterCritical/42 (414360 (estimated locally),1.81 per call) vTaskSuspendAll/50 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vTaskInternalSetTimeOutState/49 (136739 (estimated locally),0.60 per call) vPortExitCritical/45 (3186 (estimated locally),0.01 per call) vPortExitCritical/45 (16340 (estimated locally),0.07 per call) xTaskRemoveFromEventList/43 (5392 (estimated locally),0.02 per call) pvTaskIncrementMutexHeldCount/58 (2848 (estimated locally),0.01 per call) vPortEnterCritical/42 (446442 (estimated locally),1.95 per call) xTaskGetSchedulerState/48 (52886 (estimated locally),0.23 per call)
  2322. xQueueReceive/18 (xQueueReceive) @05ec8540
  2323. Type: function definition analyzed
  2324. Visibility: externally_visible public
  2325. References:
  2326. Referring:
  2327. Availability: available
  2328. Function flags: count:357913 (estimated locally) body optimize_size
  2329. Called by:
  2330. Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call)
  2331. xQueueGiveFromISR/17 (xQueueGiveFromISR) @05e68d20
  2332. Type: function definition analyzed
  2333. Visibility: externally_visible public
  2334. References:
  2335. Referring:
  2336. Availability: available
  2337. Function flags: count:306783 (estimated locally) body optimize_size
  2338. Called by:
  2339. Calls: xTaskRemoveFromEventList/43 (4062 (estimated locally),0.01 per call) vPortValidateInterruptPriority/57 (72401 (estimated locally),0.24 per call)
  2340. xQueueGenericSendFromISR/16 (xQueueGenericSendFromISR) @05e68c40
  2341. Type: function definition analyzed
  2342. Visibility: externally_visible public
  2343. References:
  2344. Referring:
  2345. Availability: available
  2346. Function flags: count:357913 (estimated locally) body optimize_size
  2347. Called by:
  2348. Calls: xTaskRemoveFromEventList/43 (8831 (estimated locally),0.02 per call) prvCopyDataToQueue/31 (78710 (estimated locally),0.22 per call) vPortValidateInterruptPriority/57 (141108 (estimated locally),0.39 per call)
  2349. xQueueGenericSend/15 (xQueueGenericSend) @05e687e0
  2350. Type: function definition analyzed
  2351. Visibility: externally_visible public
  2352. References:
  2353. Referring:
  2354. Availability: available
  2355. Function flags: count:357913 (estimated locally) body optimize_size
  2356. Called by: xQueueGiveMutexRecursive/12 (12216 (estimated locally),0.05 per call) prvInitialiseMutex/8 (574129754 (estimated locally),0.53 per call)
  2357. Calls: xTaskResumeAll/53 (25362 (estimated locally),0.07 per call) prvUnlockQueue/33 (25362 (estimated locally),0.07 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) vTaskPlaceOnEventList/52 (448439 (estimated locally),1.25 per call) prvIsQueueFull/36 (inlined) (896877 (estimated locally),2.51 per call) xTaskCheckForTimeOut/51 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vPortEnterCritical/42 (922239 (estimated locally),2.58 per call) vTaskSuspendAll/50 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vTaskInternalSetTimeOutState/49 (304339 (estimated locally),0.85 per call) vPortExitCritical/45 (26079 (estimated locally),0.07 per call) vPortExitCritical/45 (54391 (estimated locally),0.15 per call) xTaskRemoveFromEventList/43 (17949 (estimated locally),0.05 per call) prvCopyDataToQueue/31 (54391 (estimated locally),0.15 per call) vPortEnterCritical/42 (1002708 (estimated locally),2.80 per call) xTaskGetSchedulerState/48 (141108 (estimated locally),0.39 per call)
  2358. xQueueCreateCountingSemaphore/14 (xQueueCreateCountingSemaphore) @05e680e0
  2359. Type: function definition analyzed
  2360. Visibility: externally_visible public
  2361. References:
  2362. Referring:
  2363. Availability: available
  2364. Function flags: count:128592 (estimated locally) body optimize_size
  2365. Called by:
  2366. Calls: xQueueGenericCreate/6 (21218 (estimated locally),0.17 per call)
  2367. xQueueTakeMutexRecursive/13 (xQueueTakeMutexRecursive) @05e609a0
  2368. Type: function definition analyzed
  2369. Visibility: externally_visible public
  2370. References:
  2371. Referring:
  2372. Availability: available
  2373. Function flags: count:230763 (estimated locally) body optimize_size
  2374. Called by:
  2375. Calls: xQueueSemaphoreTake/19 (65976 (estimated locally),0.29 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call)
  2376. xQueueGiveMutexRecursive/12 (xQueueGiveMutexRecursive) @05e600e0
  2377. Type: function definition analyzed
  2378. Visibility: externally_visible public
  2379. References:
  2380. Referring:
  2381. Availability: available
  2382. Function flags: count:230763 (estimated locally) body optimize_size
  2383. Called by:
  2384. Calls: xQueueGenericSend/15 (12216 (estimated locally),0.05 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call)
  2385. xQueueGetMutexHolderFromISR/11 (xQueueGetMutexHolderFromISR) @05e60c40
  2386. Type: function definition analyzed
  2387. Visibility: externally_visible public
  2388. References:
  2389. Referring:
  2390. Availability: available
  2391. Function flags: count:357913 (estimated locally) body optimize_size
  2392. Called by:
  2393. Calls:
  2394. xQueueGetMutexHolder/10 (xQueueGetMutexHolder) @05e608c0
  2395. Type: function definition analyzed
  2396. Visibility: externally_visible public
  2397. References:
  2398. Referring:
  2399. Availability: available
  2400. Function flags: count:230763 (estimated locally) body optimize_size
  2401. Called by:
  2402. Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call)
  2403. xQueueCreateMutex/9 (xQueueCreateMutex) @05e60540
  2404. Type: function definition analyzed
  2405. Visibility: externally_visible public
  2406. References:
  2407. Referring:
  2408. Availability: available
  2409. Function flags: count:1073741824 (estimated locally) body optimize_size
  2410. Called by:
  2411. Calls: prvInitialiseMutex/8 (inlined) (1073741824 (estimated locally),1.00 per call) xQueueGenericCreate/6 (1073741824 (estimated locally),1.00 per call)
  2412. prvInitialiseMutex/8 (prvInitialiseMutex) @05e602a0
  2413. Type: function definition analyzed
  2414. Visibility: prevailing_def_ironly
  2415. References:
  2416. Referring:
  2417. Function prvInitialiseMutex/8 is inline copy in xQueueCreateMutex/9
  2418. Availability: local
  2419. Function flags: count:1073741824 (estimated locally) body local optimize_size
  2420. Called by: xQueueCreateMutex/9 (inlined) (1073741824 (estimated locally),1.00 per call)
  2421. Calls: xQueueGenericSend/15 (574129754 (estimated locally),0.53 per call)
  2422. prvInitialiseNewQueue/7 (prvInitialiseNewQueue) @05e60000
  2423. Type: function definition analyzed
  2424. Visibility: prevailing_def_ironly
  2425. References:
  2426. Referring:
  2427. Function prvInitialiseNewQueue/7 is inline copy in xQueueGenericCreate/6
  2428. Availability: local
  2429. Function flags: count:5162 (estimated locally) body local optimize_size
  2430. Called by: xQueueGenericCreate/6 (inlined) (5162 (estimated locally),0.04 per call)
  2431. Calls: xQueueGenericReset/5 (5162 (estimated locally),0.04 per call)
  2432. xQueueGenericCreate/6 (xQueueGenericCreate) @05e767e0
  2433. Type: function definition analyzed
  2434. Visibility: externally_visible public
  2435. References:
  2436. Referring:
  2437. Availability: available
  2438. Function flags: count:117029 (estimated locally) body optimize_size
  2439. Called by: xQueueCreateMutex/9 (1073741824 (estimated locally),1.00 per call) xQueueCreateCountingSemaphore/14 (21218 (estimated locally),0.17 per call)
  2440. Calls: prvInitialiseNewQueue/7 (inlined) (5162 (estimated locally),0.04 per call) pvPortMalloc/46 (9655 (estimated locally),0.08 per call)
  2441. xQueueGenericReset/5 (xQueueGenericReset) @05e76c40
  2442. Type: function definition analyzed
  2443. Visibility: externally_visible public
  2444. References:
  2445. Referring:
  2446. Availability: available
  2447. Function flags: count:183702 (estimated locally) body optimize_size
  2448. Called by: prvInitialiseNewQueue/7 (5162 (estimated locally),0.04 per call)
  2449. Calls: xQueueGenericReset.part.0/65 (inlined) (21218 (estimated locally),0.12 per call)
  2450. xQueueRegistry/4 (xQueueRegistry) @05e71630
  2451. Type: variable definition analyzed
  2452. Visibility: externally_visible public
  2453. References:
  2454. Referring: pcQueueGetName/39 (read)vQueueAddToRegistry/38 (addr)vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)pcQueueGetName/39 (read)vQueueAddToRegistry/38 (read)vQueueUnregisterQueue/40 (read)vQueueUnregisterQueue/40 (write)vQueueUnregisterQueue/40 (write)
  2455. Availability: available
  2456. Varpool flags:
  2457. ;; Function prvIsQueueEmpty (prvIsQueueEmpty, funcdef_no=33, decl_uid=6454, cgraph_uid=34, symbol_order=34)
  2458. prvIsQueueEmpty (const struct Queue_t * pxQueue)
  2459. {
  2460. BaseType_t xReturn;
  2461. long unsigned int _1;
  2462. <bb 2> [local count: 1073741824]:
  2463. # DEBUG BEGIN_STMT
  2464. # DEBUG BEGIN_STMT
  2465. vPortEnterCritical ();
  2466. # DEBUG BEGIN_STMT
  2467. _1 ={v} pxQueue_5(D)->uxMessagesWaiting;
  2468. if (_1 == 0)
  2469. goto <bb 4>; [50.00%]
  2470. else
  2471. goto <bb 3>; [50.00%]
  2472. <bb 3> [local count: 536870913]:
  2473. # DEBUG BEGIN_STMT
  2474. # DEBUG xReturn => 0
  2475. <bb 4> [local count: 1073741824]:
  2476. # xReturn_2 = PHI <1(2), 0(3)>
  2477. # DEBUG xReturn => xReturn_2
  2478. # DEBUG BEGIN_STMT
  2479. vPortExitCritical ();
  2480. # DEBUG BEGIN_STMT
  2481. return xReturn_2;
  2482. }
  2483. ;; Function prvCopyDataToQueue (prvCopyDataToQueue, funcdef_no=30, decl_uid=6460, cgraph_uid=31, symbol_order=31)
  2484. prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition)
  2485. {
  2486. UBaseType_t uxMessagesWaiting;
  2487. BaseType_t xReturn;
  2488. long unsigned int _1;
  2489. int8_t * _2;
  2490. struct tskTaskControlBlock * _3;
  2491. int8_t * _4;
  2492. int8_t * _5;
  2493. long unsigned int _6;
  2494. int8_t * _7;
  2495. int8_t * _8;
  2496. int8_t * _9;
  2497. int8_t * _10;
  2498. int8_t * _11;
  2499. long unsigned int _12;
  2500. sizetype _13;
  2501. int8_t * _14;
  2502. int8_t * _15;
  2503. int8_t * _16;
  2504. int8_t * _17;
  2505. long unsigned int _18;
  2506. <bb 2> [local count: 1073741823]:
  2507. # DEBUG BEGIN_STMT
  2508. # DEBUG xReturn => 0
  2509. # DEBUG BEGIN_STMT
  2510. # DEBUG BEGIN_STMT
  2511. uxMessagesWaiting_25 ={v} pxQueue_24(D)->uxMessagesWaiting;
  2512. # DEBUG uxMessagesWaiting => uxMessagesWaiting_25
  2513. # DEBUG BEGIN_STMT
  2514. _1 = pxQueue_24(D)->uxItemSize;
  2515. if (_1 == 0)
  2516. goto <bb 3>; [50.00%]
  2517. else
  2518. goto <bb 5>; [50.00%]
  2519. <bb 3> [local count: 536870911]:
  2520. # DEBUG BEGIN_STMT
  2521. _2 = pxQueue_24(D)->pcHead;
  2522. if (_2 == 0B)
  2523. goto <bb 4>; [17.43%]
  2524. else
  2525. goto <bb 13>; [82.57%]
  2526. <bb 4> [local count: 93576600]:
  2527. # DEBUG BEGIN_STMT
  2528. _3 = pxQueue_24(D)->u.xSemaphore.xMutexHolder;
  2529. xReturn_36 = xTaskPriorityDisinherit (_3);
  2530. # DEBUG xReturn => xReturn_36
  2531. # DEBUG BEGIN_STMT
  2532. pxQueue_24(D)->u.xSemaphore.xMutexHolder = 0B;
  2533. goto <bb 13>; [100.00%]
  2534. <bb 5> [local count: 536870911]:
  2535. # DEBUG BEGIN_STMT
  2536. if (xPosition_26(D) == 0)
  2537. goto <bb 6>; [50.00%]
  2538. else
  2539. goto <bb 8>; [50.00%]
  2540. <bb 6> [local count: 268435456]:
  2541. # DEBUG BEGIN_STMT
  2542. _4 = pxQueue_24(D)->pcWriteTo;
  2543. memcpy (_4, pvItemToQueue_27(D), _1);
  2544. # DEBUG BEGIN_STMT
  2545. _5 = pxQueue_24(D)->pcWriteTo;
  2546. _6 = pxQueue_24(D)->uxItemSize;
  2547. _7 = _5 + _6;
  2548. pxQueue_24(D)->pcWriteTo = _7;
  2549. # DEBUG BEGIN_STMT
  2550. _8 = pxQueue_24(D)->u.xQueue.pcTail;
  2551. if (_7 >= _8)
  2552. goto <bb 7>; [50.00%]
  2553. else
  2554. goto <bb 13>; [50.00%]
  2555. <bb 7> [local count: 134217728]:
  2556. # DEBUG BEGIN_STMT
  2557. _9 = pxQueue_24(D)->pcHead;
  2558. pxQueue_24(D)->pcWriteTo = _9;
  2559. goto <bb 13>; [100.00%]
  2560. <bb 8> [local count: 268435456]:
  2561. # DEBUG BEGIN_STMT
  2562. _10 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  2563. memcpy (_10, pvItemToQueue_27(D), _1);
  2564. # DEBUG BEGIN_STMT
  2565. _11 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  2566. _12 = pxQueue_24(D)->uxItemSize;
  2567. _13 = -_12;
  2568. _14 = _11 + _13;
  2569. pxQueue_24(D)->u.xQueue.pcReadFrom = _14;
  2570. # DEBUG BEGIN_STMT
  2571. _15 = pxQueue_24(D)->pcHead;
  2572. if (_14 < _15)
  2573. goto <bb 9>; [50.00%]
  2574. else
  2575. goto <bb 10>; [50.00%]
  2576. <bb 9> [local count: 134217728]:
  2577. # DEBUG BEGIN_STMT
  2578. _16 = pxQueue_24(D)->u.xQueue.pcTail;
  2579. _17 = _16 + _13;
  2580. pxQueue_24(D)->u.xQueue.pcReadFrom = _17;
  2581. <bb 10> [local count: 268435456]:
  2582. # DEBUG BEGIN_STMT
  2583. # DEBUG BEGIN_STMT
  2584. if (xPosition_26(D) == 2)
  2585. goto <bb 11>; [34.00%]
  2586. else
  2587. goto <bb 13>; [66.00%]
  2588. <bb 11> [local count: 91268055]:
  2589. # DEBUG BEGIN_STMT
  2590. if (uxMessagesWaiting_25 != 0)
  2591. goto <bb 12>; [50.00%]
  2592. else
  2593. goto <bb 13>; [50.00%]
  2594. <bb 12> [local count: 45634027]:
  2595. # DEBUG BEGIN_STMT
  2596. uxMessagesWaiting_31 = uxMessagesWaiting_25 + 4294967295;
  2597. # DEBUG uxMessagesWaiting => uxMessagesWaiting_31
  2598. <bb 13> [local count: 1073741824]:
  2599. # xReturn_19 = PHI <xReturn_36(4), 0(7), 0(10), 0(12), 0(3), 0(6), 0(11)>
  2600. # uxMessagesWaiting_20 = PHI <uxMessagesWaiting_25(4), uxMessagesWaiting_25(7), uxMessagesWaiting_25(10), uxMessagesWaiting_31(12), uxMessagesWaiting_25(3), uxMessagesWaiting_25(6), uxMessagesWaiting_25(11)>
  2601. # DEBUG uxMessagesWaiting => uxMessagesWaiting_20
  2602. # DEBUG xReturn => xReturn_19
  2603. # DEBUG BEGIN_STMT
  2604. # DEBUG BEGIN_STMT
  2605. _18 = uxMessagesWaiting_20 + 1;
  2606. pxQueue_24(D)->uxMessagesWaiting ={v} _18;
  2607. # DEBUG BEGIN_STMT
  2608. return xReturn_19;
  2609. }
  2610. ;; Function prvCopyDataFromQueue (prvCopyDataFromQueue, funcdef_no=31, decl_uid=6463, cgraph_uid=32, symbol_order=32)
  2611. prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer)
  2612. {
  2613. long unsigned int _1;
  2614. int8_t * _2;
  2615. int8_t * _3;
  2616. int8_t * _4;
  2617. int8_t * _5;
  2618. int8_t * _6;
  2619. <bb 2> [local count: 1073741824]:
  2620. # DEBUG BEGIN_STMT
  2621. _1 = pxQueue_10(D)->uxItemSize;
  2622. if (_1 != 0)
  2623. goto <bb 3>; [50.00%]
  2624. else
  2625. goto <bb 6>; [50.00%]
  2626. <bb 3> [local count: 536870913]:
  2627. # DEBUG BEGIN_STMT
  2628. _2 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  2629. _3 = _2 + _1;
  2630. pxQueue_10(D)->u.xQueue.pcReadFrom = _3;
  2631. # DEBUG BEGIN_STMT
  2632. _4 = pxQueue_10(D)->u.xQueue.pcTail;
  2633. if (_3 >= _4)
  2634. goto <bb 4>; [50.00%]
  2635. else
  2636. goto <bb 5>; [50.00%]
  2637. <bb 4> [local count: 268435456]:
  2638. # DEBUG BEGIN_STMT
  2639. _5 = pxQueue_10(D)->pcHead;
  2640. pxQueue_10(D)->u.xQueue.pcReadFrom = _5;
  2641. <bb 5> [local count: 536870913]:
  2642. # DEBUG BEGIN_STMT
  2643. # DEBUG BEGIN_STMT
  2644. _6 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  2645. memcpy (pvBuffer_13(D), _6, _1);
  2646. <bb 6> [local count: 1073741824]:
  2647. return;
  2648. }
  2649. ;; Function prvUnlockQueue (prvUnlockQueue, funcdef_no=32, decl_uid=6452, cgraph_uid=33, symbol_order=33)
  2650. prvUnlockQueue (struct Queue_t * const pxQueue)
  2651. {
  2652. int8_t cRxLock;
  2653. int8_t cTxLock;
  2654. long unsigned int _1;
  2655. struct List_t * _2;
  2656. long int _3;
  2657. unsigned char cTxLock.6_4;
  2658. unsigned char _5;
  2659. long unsigned int _6;
  2660. struct List_t * _7;
  2661. long int _8;
  2662. unsigned char cRxLock.7_9;
  2663. unsigned char _10;
  2664. <bb 2> [local count: 114863534]:
  2665. # DEBUG BEGIN_STMT
  2666. vPortEnterCritical ();
  2667. # DEBUG BEGIN_STMT
  2668. cTxLock_20 ={v} pxQueue_19(D)->cTxLock;
  2669. # DEBUG cTxLock => cTxLock_20
  2670. # DEBUG BEGIN_STMT
  2671. goto <bb 7>; [100.00%]
  2672. <bb 3> [local count: 1014686025]:
  2673. # DEBUG BEGIN_STMT
  2674. _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems;
  2675. if (_1 != 0)
  2676. goto <bb 4>; [94.50%]
  2677. else
  2678. goto <bb 8>; [5.50%]
  2679. <bb 4> [local count: 958878293]:
  2680. # DEBUG BEGIN_STMT
  2681. _2 = &pxQueue_19(D)->xTasksWaitingToReceive;
  2682. _3 = xTaskRemoveFromEventList (_2);
  2683. if (_3 != 0)
  2684. goto <bb 5>; [33.00%]
  2685. else
  2686. goto <bb 6>; [67.00%]
  2687. <bb 5> [local count: 316429836]:
  2688. # DEBUG BEGIN_STMT
  2689. vTaskMissedYield ();
  2690. <bb 6> [local count: 958878293]:
  2691. # DEBUG BEGIN_STMT
  2692. # DEBUG BEGIN_STMT
  2693. cTxLock.6_4 = (unsigned char) cTxLock_11;
  2694. _5 = cTxLock.6_4 + 255;
  2695. cTxLock_23 = (int8_t) _5;
  2696. # DEBUG cTxLock => cTxLock_23
  2697. <bb 7> [local count: 1073741824]:
  2698. # cTxLock_11 = PHI <cTxLock_20(2), cTxLock_23(6)>
  2699. # DEBUG cTxLock => cTxLock_11
  2700. # DEBUG BEGIN_STMT
  2701. if (cTxLock_11 > 0)
  2702. goto <bb 3>; [94.50%]
  2703. else
  2704. goto <bb 8>; [5.50%]
  2705. <bb 8> [local count: 114863532]:
  2706. # DEBUG BEGIN_STMT
  2707. pxQueue_19(D)->cTxLock ={v} -1;
  2708. # DEBUG BEGIN_STMT
  2709. vPortExitCritical ();
  2710. # DEBUG BEGIN_STMT
  2711. vPortEnterCritical ();
  2712. # DEBUG BEGIN_STMT
  2713. cRxLock_27 ={v} pxQueue_19(D)->cRxLock;
  2714. # DEBUG cRxLock => cRxLock_27
  2715. # DEBUG BEGIN_STMT
  2716. goto <bb 13>; [100.00%]
  2717. <bb 9> [local count: 1014686003]:
  2718. # DEBUG BEGIN_STMT
  2719. _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems;
  2720. if (_6 != 0)
  2721. goto <bb 10>; [94.50%]
  2722. else
  2723. goto <bb 14>; [5.50%]
  2724. <bb 10> [local count: 958878272]:
  2725. # DEBUG BEGIN_STMT
  2726. _7 = &pxQueue_19(D)->xTasksWaitingToSend;
  2727. _8 = xTaskRemoveFromEventList (_7);
  2728. if (_8 != 0)
  2729. goto <bb 11>; [33.00%]
  2730. else
  2731. goto <bb 12>; [67.00%]
  2732. <bb 11> [local count: 316429830]:
  2733. # DEBUG BEGIN_STMT
  2734. vTaskMissedYield ();
  2735. <bb 12> [local count: 958878272]:
  2736. # DEBUG BEGIN_STMT
  2737. # DEBUG BEGIN_STMT
  2738. cRxLock.7_9 = (unsigned char) cRxLock_12;
  2739. _10 = cRxLock.7_9 + 255;
  2740. cRxLock_30 = (int8_t) _10;
  2741. # DEBUG cRxLock => cRxLock_30
  2742. <bb 13> [local count: 1073741803]:
  2743. # cRxLock_12 = PHI <cRxLock_27(8), cRxLock_30(12)>
  2744. # DEBUG cRxLock => cRxLock_12
  2745. # DEBUG BEGIN_STMT
  2746. if (cRxLock_12 > 0)
  2747. goto <bb 9>; [94.50%]
  2748. else
  2749. goto <bb 14>; [5.50%]
  2750. <bb 14> [local count: 114863529]:
  2751. # DEBUG BEGIN_STMT
  2752. pxQueue_19(D)->cRxLock ={v} -1;
  2753. # DEBUG BEGIN_STMT
  2754. vPortExitCritical ();
  2755. return;
  2756. }
  2757. ;; Function xQueueGenericReset (xQueueGenericReset, funcdef_no=4, decl_uid=6412, cgraph_uid=5, symbol_order=5)
  2758. Symbols to be put in SSA form
  2759. { D.7281 D.7461 }
  2760. Incremental SSA update started at block: 0
  2761. Number of blocks in CFG: 20
  2762. Number of blocks to update: 19 ( 95%)
  2763. Merging blocks 4 and 10
  2764. Removing basic block 7
  2765. Merging blocks 9 and 11
  2766. Removing basic block 13
  2767. Merging blocks 19 and 12
  2768. ;; 3 loops found
  2769. ;;
  2770. ;; Loop 0
  2771. ;; header 0, latch 1
  2772. ;; depth 0, outer -1
  2773. ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  2774. ;;
  2775. ;; Loop 2
  2776. ;; header 4, latch 4
  2777. ;; depth 1, outer 0
  2778. ;; nodes: 4
  2779. ;;
  2780. ;; Loop 1
  2781. ;; header 14, latch 14
  2782. ;; depth 1, outer 0
  2783. ;; nodes: 14
  2784. ;; 2 succs { 3 5 }
  2785. ;; 3 succs { 4 }
  2786. ;; 4 succs { 4 }
  2787. ;; 5 succs { 6 13 }
  2788. ;; 6 succs { 7 13 }
  2789. ;; 7 succs { 8 11 }
  2790. ;; 8 succs { 9 12 }
  2791. ;; 9 succs { 10 12 }
  2792. ;; 10 succs { 12 }
  2793. ;; 11 succs { 12 }
  2794. ;; 12 succs { 1 }
  2795. ;; 13 succs { 14 }
  2796. ;; 14 succs { 14 }
  2797. xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue)
  2798. {
  2799. BaseType_t D.7461;
  2800. BaseType_t D.7333;
  2801. uint32_t ulNewBASEPRI;
  2802. uint32_t ulNewBASEPRI;
  2803. long unsigned int _1;
  2804. __complex__ long unsigned int _2;
  2805. long unsigned int _3;
  2806. long unsigned int _4;
  2807. int8_t * _14;
  2808. long unsigned int _15;
  2809. long unsigned int _16;
  2810. long unsigned int _17;
  2811. int8_t * _18;
  2812. long unsigned int _19;
  2813. long unsigned int _20;
  2814. int8_t * _21;
  2815. long unsigned int _22;
  2816. struct List_t * _23;
  2817. long int _24;
  2818. struct List_t * _25;
  2819. struct List_t * _26;
  2820. <bb 2> [local count: 183702]:
  2821. # DEBUG BEGIN_STMT
  2822. # DEBUG xReturn => 1
  2823. # DEBUG BEGIN_STMT
  2824. # DEBUG pxQueue => xQueue_5(D)
  2825. # DEBUG BEGIN_STMT
  2826. if (xQueue_5(D) == 0B)
  2827. goto <bb 3>; [30.00%]
  2828. else
  2829. goto <bb 5>; [70.00%]
  2830. <bb 3> [local count: 55111]:
  2831. # DEBUG BEGIN_STMT
  2832. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2833. # DEBUG BEGIN_STMT
  2834. # DEBUG BEGIN_STMT
  2835. __asm__ __volatile__(" mov %0, %1
  2836. msr basepri, %0
  2837. isb
  2838. dsb
  2839. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  2840. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  2841. <bb 4> [local count: 551107865]:
  2842. # DEBUG ulNewBASEPRI => NULL
  2843. # DEBUG BEGIN_STMT
  2844. # DEBUG BEGIN_STMT
  2845. # DEBUG BEGIN_STMT
  2846. goto <bb 4>; [100.00%]
  2847. <bb 5> [local count: 128592]:
  2848. # DEBUG BEGIN_STMT
  2849. # DEBUG BEGIN_STMT
  2850. _1 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength;
  2851. if (_1 != 0)
  2852. goto <bb 6>; [50.00%]
  2853. else
  2854. goto <bb 13>; [50.00%]
  2855. <bb 6> [local count: 64296]:
  2856. _3 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize;
  2857. _2 = .MUL_OVERFLOW (_3, _1);
  2858. _4 = IMAGPART_EXPR <_2>;
  2859. if (_4 == 0)
  2860. goto <bb 7>; [33.00%]
  2861. else
  2862. goto <bb 13>; [67.00%]
  2863. <bb 7> [local count: 21218]:
  2864. # DEBUG xQueue => xQueue_5(D)
  2865. # DEBUG xNewQueue => xNewQueue_7(D)
  2866. # DEBUG INLINE_ENTRY xQueueGenericReset
  2867. # DEBUG BEGIN_STMT
  2868. vPortEnterCritical ();
  2869. # DEBUG BEGIN_STMT
  2870. _14 = MEM[(struct Queue_t *)xQueue_5(D)].pcHead;
  2871. _15 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength;
  2872. _16 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize;
  2873. _17 = _15 * _16;
  2874. _18 = _14 + _17;
  2875. MEM[(struct Queue_t *)xQueue_5(D)].u.xQueue.pcTail = _18;
  2876. # DEBUG BEGIN_STMT
  2877. MEM[(struct Queue_t *)xQueue_5(D)].uxMessagesWaiting ={v} 0;
  2878. # DEBUG BEGIN_STMT
  2879. MEM[(struct Queue_t *)xQueue_5(D)].pcWriteTo = _14;
  2880. # DEBUG BEGIN_STMT
  2881. _19 = _15 + 4294967295;
  2882. _20 = _16 * _19;
  2883. _21 = _14 + _20;
  2884. MEM[(struct Queue_t *)xQueue_5(D)].u.xQueue.pcReadFrom = _21;
  2885. # DEBUG BEGIN_STMT
  2886. MEM[(struct Queue_t *)xQueue_5(D)].cRxLock ={v} -1;
  2887. # DEBUG BEGIN_STMT
  2888. MEM[(struct Queue_t *)xQueue_5(D)].cTxLock ={v} -1;
  2889. # DEBUG BEGIN_STMT
  2890. if (xNewQueue_7(D) == 0)
  2891. goto <bb 8>; [67.00%]
  2892. else
  2893. goto <bb 11>; [33.00%]
  2894. <bb 8> [local count: 14216]:
  2895. # DEBUG BEGIN_STMT
  2896. _22 ={v} MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToSend.uxNumberOfItems;
  2897. if (_22 != 0)
  2898. goto <bb 9>; [33.00%]
  2899. else
  2900. goto <bb 12>; [67.00%]
  2901. <bb 9> [local count: 4691]:
  2902. # DEBUG BEGIN_STMT
  2903. _23 = &MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToSend;
  2904. _24 = xTaskRemoveFromEventList (_23);
  2905. if (_24 != 0)
  2906. goto <bb 10>; [50.00%]
  2907. else
  2908. goto <bb 12>; [50.00%]
  2909. <bb 10> [local count: 2346]:
  2910. # DEBUG BEGIN_STMT
  2911. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  2912. # DEBUG BEGIN_STMT
  2913. __asm__ __volatile__("dsb" : : : "memory");
  2914. # DEBUG BEGIN_STMT
  2915. __asm__ __volatile__("isb");
  2916. # DEBUG BEGIN_STMT
  2917. goto <bb 12>; [100.00%]
  2918. <bb 11> [local count: 7002]:
  2919. # DEBUG BEGIN_STMT
  2920. _25 = &MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToSend;
  2921. vListInitialise (_25);
  2922. # DEBUG BEGIN_STMT
  2923. _26 = &MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToReceive;
  2924. vListInitialise (_26);
  2925. <bb 12> [local count: 21218]:
  2926. # DEBUG BEGIN_STMT
  2927. vPortExitCritical ();
  2928. # DEBUG xReturn => 1
  2929. # DEBUG BEGIN_STMT
  2930. # DEBUG BEGIN_STMT
  2931. # DEBUG BEGIN_STMT
  2932. _42 = 1;
  2933. # DEBUG xQueue => NULL
  2934. # DEBUG xNewQueue => NULL
  2935. # DEBUG xReturn => NULL
  2936. # DEBUG pxQueue => NULL
  2937. # DEBUG ulNewBASEPRI => NULL
  2938. # DEBUG ulNewBASEPRI => NULL
  2939. _13 = _42;
  2940. return _13;
  2941. <bb 13> [local count: 107374]:
  2942. # DEBUG xReturn => NULL
  2943. # DEBUG BEGIN_STMT
  2944. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  2945. # DEBUG BEGIN_STMT
  2946. # DEBUG BEGIN_STMT
  2947. __asm__ __volatile__(" mov %0, %1
  2948. msr basepri, %0
  2949. isb
  2950. dsb
  2951. " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory");
  2952. # DEBUG ulNewBASEPRI => ulNewBASEPRI_10
  2953. <bb 14> [local count: 1073741824]:
  2954. # DEBUG ulNewBASEPRI => NULL
  2955. # DEBUG BEGIN_STMT
  2956. # DEBUG BEGIN_STMT
  2957. # DEBUG BEGIN_STMT
  2958. goto <bb 14>; [100.00%]
  2959. }
  2960. ;; Function xQueueGenericCreate (xQueueGenericCreate, funcdef_no=5, decl_uid=6392, cgraph_uid=6, symbol_order=6)
  2961. Symbols to be put in SSA form
  2962. { D.7283 }
  2963. Incremental SSA update started at block: 0
  2964. Number of blocks in CFG: 16
  2965. Number of blocks to update: 15 ( 94%)
  2966. Merging blocks 6 and 12
  2967. Merging blocks 8 and 10
  2968. Removing basic block 11
  2969. ;; 2 loops found
  2970. ;;
  2971. ;; Loop 0
  2972. ;; header 0, latch 1
  2973. ;; depth 0, outer -1
  2974. ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12
  2975. ;;
  2976. ;; Loop 1
  2977. ;; header 11, latch 11
  2978. ;; depth 1, outer 0
  2979. ;; nodes: 11
  2980. ;; 2 succs { 3 10 }
  2981. ;; 3 succs { 4 10 }
  2982. ;; 4 succs { 5 10 }
  2983. ;; 5 succs { 6 12 }
  2984. ;; 6 succs { 7 8 }
  2985. ;; 7 succs { 9 }
  2986. ;; 8 succs { 9 }
  2987. ;; 9 succs { 12 }
  2988. ;; 10 succs { 11 }
  2989. ;; 11 succs { 11 }
  2990. ;; 12 succs { 1 }
  2991. xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType)
  2992. {
  2993. uint32_t ulNewBASEPRI;
  2994. uint8_t * pucQueueStorage;
  2995. struct Queue_t * pxNewQueue;
  2996. __complex__ long unsigned int _1;
  2997. long unsigned int _2;
  2998. long unsigned int _3;
  2999. unsigned int _4;
  3000. <bb 2> [local count: 117029]:
  3001. # DEBUG BEGIN_STMT
  3002. # DEBUG pxNewQueue => 0B
  3003. # DEBUG BEGIN_STMT
  3004. # DEBUG BEGIN_STMT
  3005. # DEBUG BEGIN_STMT
  3006. if (uxQueueLength_6(D) != 0)
  3007. goto <bb 3>; [50.00%]
  3008. else
  3009. goto <bb 10>; [50.00%]
  3010. <bb 3> [local count: 58514]:
  3011. _1 = .MUL_OVERFLOW (uxItemSize_7(D), uxQueueLength_6(D));
  3012. _2 = IMAGPART_EXPR <_1>;
  3013. if (_2 == 0)
  3014. goto <bb 4>; [50.00%]
  3015. else
  3016. goto <bb 10>; [50.00%]
  3017. <bb 4> [local count: 29257]:
  3018. _3 = uxQueueLength_6(D) * uxItemSize_7(D);
  3019. if (_3 <= 4294967215)
  3020. goto <bb 5>; [33.00%]
  3021. else
  3022. goto <bb 10>; [67.00%]
  3023. <bb 5> [local count: 9655]:
  3024. # DEBUG BEGIN_STMT
  3025. # DEBUG xQueueSizeInBytes => _3
  3026. # DEBUG BEGIN_STMT
  3027. _4 = _3 + 80;
  3028. pxNewQueue_10 = pvPortMalloc (_4);
  3029. # DEBUG pxNewQueue => pxNewQueue_10
  3030. # DEBUG BEGIN_STMT
  3031. if (pxNewQueue_10 != 0B)
  3032. goto <bb 6>; [53.47%]
  3033. else
  3034. goto <bb 12>; [46.53%]
  3035. <bb 6> [local count: 5162]:
  3036. # DEBUG BEGIN_STMT
  3037. # DEBUG pucQueueStorage => pxNewQueue_10
  3038. # DEBUG BEGIN_STMT
  3039. pucQueueStorage_11 = pxNewQueue_10 + 80;
  3040. # DEBUG pucQueueStorage => pucQueueStorage_11
  3041. # DEBUG BEGIN_STMT
  3042. # DEBUG uxQueueLength => uxQueueLength_6(D)
  3043. # DEBUG uxItemSize => uxItemSize_7(D)
  3044. # DEBUG pucQueueStorage => pucQueueStorage_11
  3045. # DEBUG ucQueueType => ucQueueType_12(D)
  3046. # DEBUG pxNewQueue => pxNewQueue_10
  3047. # DEBUG INLINE_ENTRY prvInitialiseNewQueue
  3048. # DEBUG BEGIN_STMT
  3049. # DEBUG BEGIN_STMT
  3050. if (uxItemSize_7(D) == 0)
  3051. goto <bb 7>; [50.00%]
  3052. else
  3053. goto <bb 8>; [50.00%]
  3054. <bb 7> [local count: 2581]:
  3055. # DEBUG BEGIN_STMT
  3056. pxNewQueue_10->pcHead = pxNewQueue_10;
  3057. goto <bb 9>; [100.00%]
  3058. <bb 8> [local count: 2581]:
  3059. # DEBUG BEGIN_STMT
  3060. pxNewQueue_10->pcHead = pucQueueStorage_11;
  3061. <bb 9> [local count: 5162]:
  3062. # DEBUG BEGIN_STMT
  3063. pxNewQueue_10->uxLength = uxQueueLength_6(D);
  3064. # DEBUG BEGIN_STMT
  3065. pxNewQueue_10->uxItemSize = uxItemSize_7(D);
  3066. # DEBUG BEGIN_STMT
  3067. xQueueGenericReset (pxNewQueue_10, 1);
  3068. # DEBUG BEGIN_STMT
  3069. pxNewQueue_10->ucQueueType = ucQueueType_12(D);
  3070. # DEBUG BEGIN_STMT
  3071. goto <bb 12>; [100.00%]
  3072. <bb 10> [local count: 107374]:
  3073. # DEBUG BEGIN_STMT
  3074. # DEBUG BEGIN_STMT
  3075. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3076. # DEBUG BEGIN_STMT
  3077. # DEBUG BEGIN_STMT
  3078. __asm__ __volatile__(" mov %0, %1
  3079. msr basepri, %0
  3080. isb
  3081. dsb
  3082. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  3083. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  3084. <bb 11> [local count: 1073741824]:
  3085. # DEBUG ulNewBASEPRI => NULL
  3086. # DEBUG BEGIN_STMT
  3087. # DEBUG BEGIN_STMT
  3088. # DEBUG BEGIN_STMT
  3089. goto <bb 11>; [100.00%]
  3090. <bb 12> [local count: 9655]:
  3091. # DEBUG uxQueueLength => NULL
  3092. # DEBUG uxItemSize => NULL
  3093. # DEBUG pucQueueStorage => NULL
  3094. # DEBUG ucQueueType => NULL
  3095. # DEBUG pxNewQueue => NULL
  3096. # DEBUG pxNewQueue => pxNewQueue_10
  3097. # DEBUG BEGIN_STMT
  3098. # DEBUG BEGIN_STMT
  3099. # DEBUG BEGIN_STMT
  3100. return pxNewQueue_10;
  3101. }
  3102. ;; Function xQueueGetMutexHolder (xQueueGetMutexHolder, funcdef_no=9, decl_uid=6374, cgraph_uid=10, symbol_order=10)
  3103. xQueueGetMutexHolder (struct QueueDefinition * xSemaphore)
  3104. {
  3105. uint32_t ulNewBASEPRI;
  3106. struct tskTaskControlBlock * pxReturn;
  3107. int8_t * _1;
  3108. <bb 2> [local count: 230763]:
  3109. # DEBUG BEGIN_STMT
  3110. # DEBUG BEGIN_STMT
  3111. # DEBUG pxSemaphore => xSemaphore_3(D)
  3112. # DEBUG BEGIN_STMT
  3113. if (xSemaphore_3(D) == 0B)
  3114. goto <bb 3>; [46.53%]
  3115. else
  3116. goto <bb 5>; [53.47%]
  3117. <bb 3> [local count: 107374]:
  3118. # DEBUG BEGIN_STMT
  3119. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3120. # DEBUG BEGIN_STMT
  3121. # DEBUG BEGIN_STMT
  3122. __asm__ __volatile__(" mov %0, %1
  3123. msr basepri, %0
  3124. isb
  3125. dsb
  3126. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3127. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  3128. <bb 4> [local count: 1073741824]:
  3129. # DEBUG ulNewBASEPRI => NULL
  3130. # DEBUG BEGIN_STMT
  3131. # DEBUG BEGIN_STMT
  3132. # DEBUG BEGIN_STMT
  3133. <bb 8> [local count: 1073741824]:
  3134. goto <bb 4>; [100.00%]
  3135. <bb 5> [local count: 123389]:
  3136. # DEBUG BEGIN_STMT
  3137. # DEBUG BEGIN_STMT
  3138. vPortEnterCritical ();
  3139. # DEBUG BEGIN_STMT
  3140. _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  3141. if (_1 == 0B)
  3142. goto <bb 6>; [51.20%]
  3143. else
  3144. goto <bb 7>; [48.80%]
  3145. <bb 6> [local count: 63175]:
  3146. # DEBUG BEGIN_STMT
  3147. pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  3148. # DEBUG pxReturn => pxReturn_6
  3149. <bb 7> [local count: 123389]:
  3150. # pxReturn_2 = PHI <pxReturn_6(6), 0B(5)>
  3151. # DEBUG pxReturn => pxReturn_2
  3152. # DEBUG BEGIN_STMT
  3153. vPortExitCritical ();
  3154. # DEBUG BEGIN_STMT
  3155. return pxReturn_2;
  3156. }
  3157. ;; Function xQueueGetMutexHolderFromISR (xQueueGetMutexHolderFromISR, funcdef_no=10, decl_uid=6376, cgraph_uid=11, symbol_order=11)
  3158. xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore)
  3159. {
  3160. uint32_t ulNewBASEPRI;
  3161. struct tskTaskControlBlock * pxReturn;
  3162. int8_t * _1;
  3163. <bb 2> [local count: 357913]:
  3164. # DEBUG BEGIN_STMT
  3165. # DEBUG BEGIN_STMT
  3166. if (xSemaphore_3(D) == 0B)
  3167. goto <bb 3>; [30.00%]
  3168. else
  3169. goto <bb 5>; [70.00%]
  3170. <bb 3> [local count: 107374]:
  3171. # DEBUG BEGIN_STMT
  3172. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3173. # DEBUG BEGIN_STMT
  3174. # DEBUG BEGIN_STMT
  3175. __asm__ __volatile__(" mov %0, %1
  3176. msr basepri, %0
  3177. isb
  3178. dsb
  3179. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  3180. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  3181. <bb 4> [local count: 1073741824]:
  3182. # DEBUG ulNewBASEPRI => NULL
  3183. # DEBUG BEGIN_STMT
  3184. # DEBUG BEGIN_STMT
  3185. # DEBUG BEGIN_STMT
  3186. <bb 8> [local count: 1073741824]:
  3187. goto <bb 4>; [100.00%]
  3188. <bb 5> [local count: 250539]:
  3189. # DEBUG BEGIN_STMT
  3190. # DEBUG BEGIN_STMT
  3191. _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  3192. if (_1 == 0B)
  3193. goto <bb 6>; [51.20%]
  3194. else
  3195. goto <bb 7>; [48.80%]
  3196. <bb 6> [local count: 128276]:
  3197. # DEBUG BEGIN_STMT
  3198. pxReturn_5 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  3199. # DEBUG pxReturn => pxReturn_5
  3200. <bb 7> [local count: 250539]:
  3201. # pxReturn_2 = PHI <pxReturn_5(6), 0B(5)>
  3202. # DEBUG pxReturn => pxReturn_2
  3203. # DEBUG BEGIN_STMT
  3204. return pxReturn_2;
  3205. }
  3206. ;; Function xQueueCreateCountingSemaphore (xQueueCreateCountingSemaphore, funcdef_no=13, decl_uid=6365, cgraph_uid=14, symbol_order=14)
  3207. xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount)
  3208. {
  3209. uint32_t ulNewBASEPRI;
  3210. struct QueueDefinition * xHandle;
  3211. <bb 2> [local count: 128592]:
  3212. # DEBUG BEGIN_STMT
  3213. # DEBUG xHandle => 0B
  3214. # DEBUG BEGIN_STMT
  3215. if (uxMaxCount_2(D) != 0)
  3216. goto <bb 3>; [50.00%]
  3217. else
  3218. goto <bb 6>; [50.00%]
  3219. <bb 3> [local count: 64296]:
  3220. if (uxMaxCount_2(D) >= uxInitialCount_3(D))
  3221. goto <bb 4>; [33.00%]
  3222. else
  3223. goto <bb 6>; [67.00%]
  3224. <bb 4> [local count: 21218]:
  3225. # DEBUG BEGIN_STMT
  3226. xHandle_6 = xQueueGenericCreate (uxMaxCount_2(D), 0, 2);
  3227. # DEBUG xHandle => xHandle_6
  3228. # DEBUG BEGIN_STMT
  3229. if (xHandle_6 != 0B)
  3230. goto <bb 5>; [70.00%]
  3231. else
  3232. goto <bb 8>; [30.00%]
  3233. <bb 5> [local count: 14852]:
  3234. # DEBUG BEGIN_STMT
  3235. MEM[(struct Queue_t *)xHandle_6].uxMessagesWaiting ={v} uxInitialCount_3(D);
  3236. # DEBUG BEGIN_STMT
  3237. goto <bb 8>; [100.00%]
  3238. <bb 6> [local count: 107374]:
  3239. # DEBUG BEGIN_STMT
  3240. # DEBUG BEGIN_STMT
  3241. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3242. # DEBUG BEGIN_STMT
  3243. # DEBUG BEGIN_STMT
  3244. __asm__ __volatile__(" mov %0, %1
  3245. msr basepri, %0
  3246. isb
  3247. dsb
  3248. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  3249. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  3250. <bb 7> [local count: 1073741824]:
  3251. # DEBUG ulNewBASEPRI => NULL
  3252. # DEBUG BEGIN_STMT
  3253. # DEBUG BEGIN_STMT
  3254. # DEBUG BEGIN_STMT
  3255. <bb 9> [local count: 1073741824]:
  3256. goto <bb 7>; [100.00%]
  3257. <bb 8> [local count: 21218]:
  3258. # DEBUG xHandle => xHandle_6
  3259. # DEBUG BEGIN_STMT
  3260. # DEBUG BEGIN_STMT
  3261. # DEBUG BEGIN_STMT
  3262. return xHandle_6;
  3263. }
  3264. ;; Function xQueueGenericSend (xQueueGenericSend, funcdef_no=14, decl_uid=6306, cgraph_uid=15, symbol_order=15)
  3265. Symbols to be put in SSA form
  3266. { D.7287 D.7489 }
  3267. Incremental SSA update started at block: 0
  3268. Number of blocks in CFG: 50
  3269. Number of blocks to update: 49 ( 98%)
  3270. Merging blocks 4 and 42
  3271. Merging blocks 8 and 45
  3272. Merging blocks 12 and 44
  3273. Merging blocks 17 and 43
  3274. Removing basic block 36
  3275. Merging blocks 49 and 46
  3276. ;; 6 loops found
  3277. ;;
  3278. ;; Loop 0
  3279. ;; header 0, latch 1
  3280. ;; depth 0, outer -1
  3281. ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
  3282. ;;
  3283. ;; Loop 5
  3284. ;; header 4, latch 4
  3285. ;; depth 1, outer 0
  3286. ;; nodes: 4
  3287. ;;
  3288. ;; Loop 1
  3289. ;; header 19, latch 18
  3290. ;; depth 1, outer 0
  3291. ;; nodes: 19 18 40 41 39 38 36 37 35 33 34 31 32 29 30 27 20
  3292. ;;
  3293. ;; Loop 2
  3294. ;; header 17, latch 17
  3295. ;; depth 1, outer 0
  3296. ;; nodes: 17
  3297. ;;
  3298. ;; Loop 3
  3299. ;; header 12, latch 12
  3300. ;; depth 1, outer 0
  3301. ;; nodes: 12
  3302. ;;
  3303. ;; Loop 4
  3304. ;; header 8, latch 8
  3305. ;; depth 1, outer 0
  3306. ;; nodes: 8
  3307. ;; 2 succs { 3 5 }
  3308. ;; 3 succs { 4 }
  3309. ;; 4 succs { 4 }
  3310. ;; 5 succs { 9 6 }
  3311. ;; 6 succs { 9 7 }
  3312. ;; 7 succs { 8 }
  3313. ;; 8 succs { 8 }
  3314. ;; 9 succs { 13 10 }
  3315. ;; 10 succs { 13 11 }
  3316. ;; 11 succs { 12 }
  3317. ;; 12 succs { 12 }
  3318. ;; 13 succs { 14 15 }
  3319. ;; 14 succs { 19 }
  3320. ;; 15 succs { 14 16 }
  3321. ;; 16 succs { 17 }
  3322. ;; 17 succs { 17 }
  3323. ;; 18 succs { 19 }
  3324. ;; 19 succs { 21 20 }
  3325. ;; 20 succs { 21 27 }
  3326. ;; 21 succs { 22 24 }
  3327. ;; 22 succs { 23 26 }
  3328. ;; 23 succs { 26 }
  3329. ;; 24 succs { 25 26 }
  3330. ;; 25 succs { 26 }
  3331. ;; 26 succs { 43 }
  3332. ;; 27 succs { 28 29 }
  3333. ;; 28 succs { 43 }
  3334. ;; 29 succs { 30 31 }
  3335. ;; 30 succs { 31 }
  3336. ;; 31 succs { 32 33 }
  3337. ;; 32 succs { 33 }
  3338. ;; 33 succs { 34 35 }
  3339. ;; 34 succs { 35 }
  3340. ;; 35 succs { 36 42 }
  3341. ;; 36 succs { 38 37 }
  3342. ;; 37 succs { 38 }
  3343. ;; 38 succs { 39 41 }
  3344. ;; 39 succs { 40 18 }
  3345. ;; 40 succs { 18 }
  3346. ;; 41 succs { 18 }
  3347. ;; 42 succs { 43 }
  3348. ;; 43 succs { 1 }
  3349. xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition)
  3350. {
  3351. BaseType_t xReturn;
  3352. BaseType_t D.7489;
  3353. uint32_t ulNewBASEPRI;
  3354. uint32_t ulNewBASEPRI;
  3355. uint32_t ulNewBASEPRI;
  3356. uint32_t ulNewBASEPRI;
  3357. struct TimeOut_t xTimeOut;
  3358. BaseType_t xYieldRequired;
  3359. BaseType_t xEntryTimeSet;
  3360. long unsigned int _1;
  3361. long unsigned int _2;
  3362. long int _3;
  3363. long unsigned int xTicksToWait.3_4;
  3364. long unsigned int _5;
  3365. long unsigned int _6;
  3366. long unsigned int _7;
  3367. struct List_t * _8;
  3368. long int _9;
  3369. long unsigned int xTicksToWait.4_10;
  3370. signed char _11;
  3371. signed char _12;
  3372. long int _13;
  3373. long int _14;
  3374. struct List_t * _15;
  3375. long unsigned int xTicksToWait.5_16;
  3376. long int _17;
  3377. BaseType_t _21;
  3378. long unsigned int _75;
  3379. long unsigned int _76;
  3380. <bb 2> [local count: 357913]:
  3381. # DEBUG BEGIN_STMT
  3382. # DEBUG xEntryTimeSet => 0
  3383. # DEBUG BEGIN_STMT
  3384. # DEBUG BEGIN_STMT
  3385. # DEBUG pxQueue => xQueue_29(D)
  3386. # DEBUG BEGIN_STMT
  3387. if (xQueue_29(D) == 0B)
  3388. goto <bb 3>; [30.00%]
  3389. else
  3390. goto <bb 5>; [70.00%]
  3391. <bb 3> [local count: 107374]:
  3392. # DEBUG BEGIN_STMT
  3393. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3394. # DEBUG BEGIN_STMT
  3395. # DEBUG BEGIN_STMT
  3396. __asm__ __volatile__(" mov %0, %1
  3397. msr basepri, %0
  3398. isb
  3399. dsb
  3400. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  3401. # DEBUG ulNewBASEPRI => ulNewBASEPRI_67
  3402. <bb 4> [local count: 1073741824]:
  3403. # DEBUG ulNewBASEPRI => NULL
  3404. # DEBUG BEGIN_STMT
  3405. # DEBUG BEGIN_STMT
  3406. # DEBUG BEGIN_STMT
  3407. goto <bb 4>; [100.00%]
  3408. <bb 5> [local count: 250539]:
  3409. # DEBUG BEGIN_STMT
  3410. # DEBUG BEGIN_STMT
  3411. if (pvItemToQueue_30(D) != 0B)
  3412. goto <bb 9>; [70.00%]
  3413. else
  3414. goto <bb 6>; [30.00%]
  3415. <bb 6> [local count: 75162]:
  3416. _1 = MEM[(struct Queue_t *)xQueue_29(D)].uxItemSize;
  3417. if (_1 == 0)
  3418. goto <bb 9>; [50.00%]
  3419. else
  3420. goto <bb 7>; [50.00%]
  3421. <bb 7> [local count: 37581]:
  3422. # DEBUG BEGIN_STMT
  3423. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3424. # DEBUG BEGIN_STMT
  3425. # DEBUG BEGIN_STMT
  3426. __asm__ __volatile__(" mov %0, %1
  3427. msr basepri, %0
  3428. isb
  3429. dsb
  3430. " : "=r" ulNewBASEPRI_68 : "i" 16 : "memory");
  3431. # DEBUG ulNewBASEPRI => ulNewBASEPRI_68
  3432. <bb 8> [local count: 375809639]:
  3433. # DEBUG ulNewBASEPRI => NULL
  3434. # DEBUG BEGIN_STMT
  3435. # DEBUG BEGIN_STMT
  3436. # DEBUG BEGIN_STMT
  3437. goto <bb 8>; [100.00%]
  3438. <bb 9> [local count: 212958]:
  3439. # DEBUG BEGIN_STMT
  3440. # DEBUG BEGIN_STMT
  3441. if (xCopyPosition_32(D) != 2)
  3442. goto <bb 13>; [48.88%]
  3443. else
  3444. goto <bb 10>; [51.12%]
  3445. <bb 10> [local count: 108864]:
  3446. _2 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  3447. if (_2 == 1)
  3448. goto <bb 13>; [34.00%]
  3449. else
  3450. goto <bb 11>; [66.00%]
  3451. <bb 11> [local count: 71850]:
  3452. # DEBUG BEGIN_STMT
  3453. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3454. # DEBUG BEGIN_STMT
  3455. # DEBUG BEGIN_STMT
  3456. __asm__ __volatile__(" mov %0, %1
  3457. msr basepri, %0
  3458. isb
  3459. dsb
  3460. " : "=r" ulNewBASEPRI_69 : "i" 16 : "memory");
  3461. # DEBUG ulNewBASEPRI => ulNewBASEPRI_69
  3462. <bb 12> [local count: 718505940]:
  3463. # DEBUG ulNewBASEPRI => NULL
  3464. # DEBUG BEGIN_STMT
  3465. # DEBUG BEGIN_STMT
  3466. # DEBUG BEGIN_STMT
  3467. goto <bb 12>; [100.00%]
  3468. <bb 13> [local count: 141108]:
  3469. # DEBUG BEGIN_STMT
  3470. # DEBUG BEGIN_STMT
  3471. _3 = xTaskGetSchedulerState ();
  3472. if (_3 != 0)
  3473. goto <bb 14>; [50.00%]
  3474. else
  3475. goto <bb 15>; [50.00%]
  3476. <bb 14> [local count: 105831]:
  3477. # xEntryTimeSet_36 = PHI <0(13), 0(15)>
  3478. goto <bb 19>; [100.00%]
  3479. <bb 15> [local count: 70554]:
  3480. xTicksToWait.3_4 = xTicksToWait;
  3481. if (xTicksToWait.3_4 == 0)
  3482. goto <bb 14>; [50.00%]
  3483. else
  3484. goto <bb 16>; [50.00%]
  3485. <bb 16> [local count: 35277]:
  3486. # DEBUG BEGIN_STMT
  3487. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3488. # DEBUG BEGIN_STMT
  3489. # DEBUG BEGIN_STMT
  3490. __asm__ __volatile__(" mov %0, %1
  3491. msr basepri, %0
  3492. isb
  3493. dsb
  3494. " : "=r" ulNewBASEPRI_70 : "i" 16 : "memory");
  3495. # DEBUG ulNewBASEPRI => ulNewBASEPRI_70
  3496. <bb 17> [local count: 352770504]:
  3497. # DEBUG ulNewBASEPRI => NULL
  3498. # DEBUG BEGIN_STMT
  3499. # DEBUG BEGIN_STMT
  3500. # DEBUG BEGIN_STMT
  3501. goto <bb 17>; [100.00%]
  3502. <bb 18> [local count: 896877]:
  3503. # xEntryTimeSet_18 = PHI <xEntryTimeSet_20(40), xEntryTimeSet_20(41), xEntryTimeSet_20(39)>
  3504. <bb 19> [local count: 1002708]:
  3505. # xEntryTimeSet_19 = PHI <xEntryTimeSet_36(14), xEntryTimeSet_18(18)>
  3506. # DEBUG xEntryTimeSet => xEntryTimeSet_19
  3507. # DEBUG BEGIN_STMT
  3508. # DEBUG BEGIN_STMT
  3509. # DEBUG BEGIN_STMT
  3510. vPortEnterCritical ();
  3511. # DEBUG BEGIN_STMT
  3512. _5 ={v} MEM[(struct Queue_t *)xQueue_29(D)].uxMessagesWaiting;
  3513. _6 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  3514. if (_5 < _6)
  3515. goto <bb 21>; [2.75%]
  3516. else
  3517. goto <bb 20>; [97.25%]
  3518. <bb 20> [local count: 975134]:
  3519. if (xCopyPosition_32(D) == 2)
  3520. goto <bb 21>; [2.75%]
  3521. else
  3522. goto <bb 27>; [97.25%]
  3523. <bb 21> [local count: 54391]:
  3524. # DEBUG BEGIN_STMT
  3525. # DEBUG BEGIN_STMT
  3526. xYieldRequired_57 = prvCopyDataToQueue (xQueue_29(D), pvItemToQueue_30(D), xCopyPosition_32(D));
  3527. # DEBUG xYieldRequired => xYieldRequired_57
  3528. # DEBUG BEGIN_STMT
  3529. _7 ={v} MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive.uxNumberOfItems;
  3530. if (_7 != 0)
  3531. goto <bb 22>; [33.00%]
  3532. else
  3533. goto <bb 24>; [67.00%]
  3534. <bb 22> [local count: 17949]:
  3535. # DEBUG BEGIN_STMT
  3536. _8 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive;
  3537. _9 = xTaskRemoveFromEventList (_8);
  3538. if (_9 != 0)
  3539. goto <bb 23>; [50.00%]
  3540. else
  3541. goto <bb 26>; [50.00%]
  3542. <bb 23> [local count: 8974]:
  3543. # DEBUG BEGIN_STMT
  3544. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3545. # DEBUG BEGIN_STMT
  3546. __asm__ __volatile__("dsb" : : : "memory");
  3547. # DEBUG BEGIN_STMT
  3548. __asm__ __volatile__("isb");
  3549. # DEBUG BEGIN_STMT
  3550. goto <bb 26>; [100.00%]
  3551. <bb 24> [local count: 36442]:
  3552. # DEBUG BEGIN_STMT
  3553. if (xYieldRequired_57 != 0)
  3554. goto <bb 25>; [50.00%]
  3555. else
  3556. goto <bb 26>; [50.00%]
  3557. <bb 25> [local count: 18221]:
  3558. # DEBUG BEGIN_STMT
  3559. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3560. # DEBUG BEGIN_STMT
  3561. __asm__ __volatile__("dsb" : : : "memory");
  3562. # DEBUG BEGIN_STMT
  3563. __asm__ __volatile__("isb");
  3564. # DEBUG BEGIN_STMT
  3565. <bb 26> [local count: 54391]:
  3566. # DEBUG BEGIN_STMT
  3567. # DEBUG BEGIN_STMT
  3568. vPortExitCritical ();
  3569. # DEBUG BEGIN_STMT
  3570. goto <bb 43>; [100.00%]
  3571. <bb 27> [local count: 948318]:
  3572. # DEBUG BEGIN_STMT
  3573. xTicksToWait.4_10 = xTicksToWait;
  3574. if (xTicksToWait.4_10 == 0)
  3575. goto <bb 28>; [2.75%]
  3576. else
  3577. goto <bb 29>; [97.25%]
  3578. <bb 28> [local count: 26079]:
  3579. # DEBUG BEGIN_STMT
  3580. vPortExitCritical ();
  3581. # DEBUG BEGIN_STMT
  3582. # DEBUG BEGIN_STMT
  3583. goto <bb 43>; [100.00%]
  3584. <bb 29> [local count: 922239]:
  3585. # DEBUG BEGIN_STMT
  3586. if (xEntryTimeSet_19 == 0)
  3587. goto <bb 30>; [33.00%]
  3588. else
  3589. goto <bb 31>; [67.00%]
  3590. <bb 30> [local count: 304339]:
  3591. # DEBUG BEGIN_STMT
  3592. vTaskInternalSetTimeOutState (&xTimeOut);
  3593. # DEBUG BEGIN_STMT
  3594. # DEBUG xEntryTimeSet => 1
  3595. <bb 31> [local count: 922239]:
  3596. # xEntryTimeSet_20 = PHI <xEntryTimeSet_19(29), 1(30)>
  3597. # DEBUG xEntryTimeSet => xEntryTimeSet_20
  3598. # DEBUG BEGIN_STMT
  3599. # DEBUG BEGIN_STMT
  3600. vPortExitCritical ();
  3601. # DEBUG BEGIN_STMT
  3602. vTaskSuspendAll ();
  3603. # DEBUG BEGIN_STMT
  3604. vPortEnterCritical ();
  3605. # DEBUG BEGIN_STMT
  3606. _11 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cRxLock;
  3607. if (_11 == -1)
  3608. goto <bb 32>; [34.00%]
  3609. else
  3610. goto <bb 33>; [66.00%]
  3611. <bb 32> [local count: 313561]:
  3612. # DEBUG BEGIN_STMT
  3613. MEM[(struct Queue_t *)xQueue_29(D)].cRxLock ={v} 0;
  3614. <bb 33> [local count: 922239]:
  3615. # DEBUG BEGIN_STMT
  3616. _12 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cTxLock;
  3617. if (_12 == -1)
  3618. goto <bb 34>; [34.00%]
  3619. else
  3620. goto <bb 35>; [66.00%]
  3621. <bb 34> [local count: 313561]:
  3622. # DEBUG BEGIN_STMT
  3623. MEM[(struct Queue_t *)xQueue_29(D)].cTxLock ={v} 0;
  3624. <bb 35> [local count: 922239]:
  3625. # DEBUG BEGIN_STMT
  3626. vPortExitCritical ();
  3627. # DEBUG BEGIN_STMT
  3628. _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  3629. if (_13 == 0)
  3630. goto <bb 36>; [97.25%]
  3631. else
  3632. goto <bb 42>; [2.75%]
  3633. <bb 36> [local count: 896877]:
  3634. # DEBUG BEGIN_STMT
  3635. # DEBUG pxQueue => xQueue_29(D)
  3636. # DEBUG INLINE_ENTRY prvIsQueueFull
  3637. # DEBUG BEGIN_STMT
  3638. # DEBUG BEGIN_STMT
  3639. vPortEnterCritical ();
  3640. # DEBUG BEGIN_STMT
  3641. _75 ={v} MEM[(const struct Queue_t *)xQueue_29(D)].uxMessagesWaiting;
  3642. _76 = MEM[(const struct Queue_t *)xQueue_29(D)].uxLength;
  3643. if (_75 == _76)
  3644. goto <bb 38>; [34.00%]
  3645. else
  3646. goto <bb 37>; [66.00%]
  3647. <bb 37> [local count: 591939]:
  3648. # DEBUG BEGIN_STMT
  3649. # DEBUG xReturn => 0
  3650. <bb 38> [local count: 896877]:
  3651. # xReturn_77 = PHI <1(36), 0(37)>
  3652. # DEBUG xReturn => xReturn_77
  3653. # DEBUG BEGIN_STMT
  3654. vPortExitCritical ();
  3655. # DEBUG BEGIN_STMT
  3656. _80 = xReturn_77;
  3657. # DEBUG pxQueue => NULL
  3658. # DEBUG xReturn => NULL
  3659. _14 = _80;
  3660. if (_14 != 0)
  3661. goto <bb 39>; [50.00%]
  3662. else
  3663. goto <bb 41>; [50.00%]
  3664. <bb 39> [local count: 448439]:
  3665. # DEBUG BEGIN_STMT
  3666. # DEBUG BEGIN_STMT
  3667. _15 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToSend;
  3668. xTicksToWait.5_16 = xTicksToWait;
  3669. vTaskPlaceOnEventList (_15, xTicksToWait.5_16);
  3670. # DEBUG BEGIN_STMT
  3671. prvUnlockQueue (xQueue_29(D));
  3672. # DEBUG BEGIN_STMT
  3673. _17 = xTaskResumeAll ();
  3674. if (_17 == 0)
  3675. goto <bb 40>; [50.00%]
  3676. else
  3677. goto <bb 18>; [50.00%]
  3678. <bb 40> [local count: 224219]:
  3679. # DEBUG BEGIN_STMT
  3680. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  3681. # DEBUG BEGIN_STMT
  3682. __asm__ __volatile__("dsb" : : : "memory");
  3683. # DEBUG BEGIN_STMT
  3684. __asm__ __volatile__("isb");
  3685. goto <bb 18>; [100.00%]
  3686. <bb 41> [local count: 448439]:
  3687. # DEBUG BEGIN_STMT
  3688. prvUnlockQueue (xQueue_29(D));
  3689. # DEBUG BEGIN_STMT
  3690. xTaskResumeAll ();
  3691. goto <bb 18>; [100.00%]
  3692. <bb 42> [local count: 25362]:
  3693. # DEBUG BEGIN_STMT
  3694. prvUnlockQueue (xQueue_29(D));
  3695. # DEBUG BEGIN_STMT
  3696. xTaskResumeAll ();
  3697. # DEBUG BEGIN_STMT
  3698. # DEBUG BEGIN_STMT
  3699. <bb 43> [local count: 105831]:
  3700. # _21 = PHI <1(26), 0(28), 0(42)>
  3701. xTimeOut ={v} {CLOBBER};
  3702. return _21;
  3703. }
  3704. ;; Function xQueueCreateMutex (xQueueCreateMutex, funcdef_no=8, decl_uid=6359, cgraph_uid=9, symbol_order=9)
  3705. Symbols to be put in SSA form
  3706. { D.7289 }
  3707. Incremental SSA update started at block: 0
  3708. Number of blocks in CFG: 7
  3709. Number of blocks to update: 6 ( 86%)
  3710. Merging blocks 2 and 4
  3711. Merging blocks 6 and 3
  3712. ;; 1 loops found
  3713. ;;
  3714. ;; Loop 0
  3715. ;; header 0, latch 1
  3716. ;; depth 0, outer -1
  3717. ;; nodes: 0 1 2 3 4
  3718. ;; 2 succs { 3 4 }
  3719. ;; 3 succs { 4 }
  3720. ;; 4 succs { 1 }
  3721. xQueueCreateMutex (const uint8_t ucQueueType)
  3722. {
  3723. struct QueueDefinition * xNewQueue;
  3724. <bb 2> [local count: 1073741824]:
  3725. # DEBUG BEGIN_STMT
  3726. # DEBUG BEGIN_STMT
  3727. # DEBUG uxMutexLength => 1
  3728. # DEBUG uxMutexSize => 0
  3729. # DEBUG BEGIN_STMT
  3730. xNewQueue_4 = xQueueGenericCreate (1, 0, ucQueueType_2(D));
  3731. # DEBUG xNewQueue => xNewQueue_4
  3732. # DEBUG BEGIN_STMT
  3733. # DEBUG pxNewQueue => xNewQueue_4
  3734. # DEBUG INLINE_ENTRY prvInitialiseMutex
  3735. # DEBUG BEGIN_STMT
  3736. if (xNewQueue_4 != 0B)
  3737. goto <bb 3>; [53.47%]
  3738. else
  3739. goto <bb 4>; [46.53%]
  3740. <bb 3> [local count: 574129754]:
  3741. # DEBUG BEGIN_STMT
  3742. MEM[(struct Queue_t *)xNewQueue_4].u.xSemaphore.xMutexHolder = 0B;
  3743. # DEBUG BEGIN_STMT
  3744. MEM[(struct Queue_t *)xNewQueue_4].pcHead = 0B;
  3745. # DEBUG BEGIN_STMT
  3746. MEM[(struct Queue_t *)xNewQueue_4].u.xSemaphore.uxRecursiveCallCount = 0;
  3747. # DEBUG BEGIN_STMT
  3748. # DEBUG BEGIN_STMT
  3749. xQueueGenericSend (xNewQueue_4, 0B, 0, 0);
  3750. <bb 4> [local count: 1073741824]:
  3751. # DEBUG BEGIN_STMT
  3752. # DEBUG pxNewQueue => NULL
  3753. # DEBUG BEGIN_STMT
  3754. return xNewQueue_4;
  3755. }
  3756. ;; Function xQueueGiveMutexRecursive (xQueueGiveMutexRecursive, funcdef_no=11, decl_uid=6381, cgraph_uid=12, symbol_order=12)
  3757. xQueueGiveMutexRecursive (struct QueueDefinition * xMutex)
  3758. {
  3759. uint32_t ulNewBASEPRI;
  3760. BaseType_t xReturn;
  3761. struct tskTaskControlBlock * _1;
  3762. struct tskTaskControlBlock * _2;
  3763. long unsigned int _3;
  3764. long unsigned int _4;
  3765. <bb 2> [local count: 230763]:
  3766. # DEBUG BEGIN_STMT
  3767. # DEBUG BEGIN_STMT
  3768. # DEBUG pxMutex => xMutex_7(D)
  3769. # DEBUG BEGIN_STMT
  3770. if (xMutex_7(D) == 0B)
  3771. goto <bb 3>; [46.53%]
  3772. else
  3773. goto <bb 5>; [53.47%]
  3774. <bb 3> [local count: 107374]:
  3775. # DEBUG BEGIN_STMT
  3776. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3777. # DEBUG BEGIN_STMT
  3778. # DEBUG BEGIN_STMT
  3779. __asm__ __volatile__(" mov %0, %1
  3780. msr basepri, %0
  3781. isb
  3782. dsb
  3783. " : "=r" ulNewBASEPRI_12 : "i" 16 : "memory");
  3784. # DEBUG ulNewBASEPRI => ulNewBASEPRI_12
  3785. <bb 4> [local count: 1073741824]:
  3786. # DEBUG ulNewBASEPRI => NULL
  3787. # DEBUG BEGIN_STMT
  3788. # DEBUG BEGIN_STMT
  3789. # DEBUG BEGIN_STMT
  3790. <bb 10> [local count: 1073741824]:
  3791. goto <bb 4>; [100.00%]
  3792. <bb 5> [local count: 123389]:
  3793. # DEBUG BEGIN_STMT
  3794. # DEBUG BEGIN_STMT
  3795. _1 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.xMutexHolder;
  3796. _2 = xTaskGetCurrentTaskHandle ();
  3797. if (_1 == _2)
  3798. goto <bb 6>; [30.00%]
  3799. else
  3800. goto <bb 9>; [70.00%]
  3801. <bb 6> [local count: 37017]:
  3802. # DEBUG BEGIN_STMT
  3803. # DEBUG BEGIN_STMT
  3804. _3 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount;
  3805. _4 = _3 + 4294967295;
  3806. MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  3807. # DEBUG BEGIN_STMT
  3808. if (_4 == 0)
  3809. goto <bb 7>; [33.00%]
  3810. else
  3811. goto <bb 9>; [67.00%]
  3812. <bb 7> [local count: 12216]:
  3813. # DEBUG BEGIN_STMT
  3814. xQueueGenericSend (xMutex_7(D), 0B, 0, 0);
  3815. <bb 9> [local count: 123389]:
  3816. # xReturn_5 = PHI <1(7), 0(5), 1(6)>
  3817. # DEBUG xReturn => xReturn_5
  3818. # DEBUG BEGIN_STMT
  3819. # DEBUG BEGIN_STMT
  3820. return xReturn_5;
  3821. }
  3822. ;; Function xQueueGenericSendFromISR (xQueueGenericSendFromISR, funcdef_no=15, decl_uid=6328, cgraph_uid=16, symbol_order=16)
  3823. xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition)
  3824. {
  3825. uint32_t ulNewBASEPRI;
  3826. uint32_t ulOriginalBASEPRI;
  3827. uint32_t ulNewBASEPRI;
  3828. uint32_t ulNewBASEPRI;
  3829. uint32_t ulNewBASEPRI;
  3830. uint32_t ulNewBASEPRI;
  3831. const UBaseType_t uxPreviousMessagesWaiting;
  3832. const int8_t cTxLock;
  3833. BaseType_t xReturn;
  3834. long unsigned int _1;
  3835. long unsigned int _2;
  3836. long unsigned int _3;
  3837. long unsigned int _4;
  3838. long unsigned int _5;
  3839. struct List_t * _6;
  3840. long int _7;
  3841. unsigned char cTxLock.10_8;
  3842. unsigned char _9;
  3843. signed char _10;
  3844. <bb 2> [local count: 357913]:
  3845. # DEBUG BEGIN_STMT
  3846. # DEBUG BEGIN_STMT
  3847. # DEBUG BEGIN_STMT
  3848. # DEBUG pxQueue => xQueue_13(D)
  3849. # DEBUG BEGIN_STMT
  3850. if (xQueue_13(D) == 0B)
  3851. goto <bb 3>; [30.00%]
  3852. else
  3853. goto <bb 5>; [70.00%]
  3854. <bb 3> [local count: 107374]:
  3855. # DEBUG BEGIN_STMT
  3856. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3857. # DEBUG BEGIN_STMT
  3858. # DEBUG BEGIN_STMT
  3859. __asm__ __volatile__(" mov %0, %1
  3860. msr basepri, %0
  3861. isb
  3862. dsb
  3863. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  3864. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  3865. <bb 4> [local count: 1073741824]:
  3866. # DEBUG ulNewBASEPRI => NULL
  3867. # DEBUG BEGIN_STMT
  3868. # DEBUG BEGIN_STMT
  3869. # DEBUG BEGIN_STMT
  3870. <bb 26> [local count: 1073741824]:
  3871. goto <bb 4>; [100.00%]
  3872. <bb 5> [local count: 250539]:
  3873. # DEBUG BEGIN_STMT
  3874. # DEBUG BEGIN_STMT
  3875. if (pvItemToQueue_14(D) != 0B)
  3876. goto <bb 9>; [70.00%]
  3877. else
  3878. goto <bb 6>; [30.00%]
  3879. <bb 6> [local count: 75162]:
  3880. _1 = MEM[(struct Queue_t *)xQueue_13(D)].uxItemSize;
  3881. if (_1 == 0)
  3882. goto <bb 9>; [50.00%]
  3883. else
  3884. goto <bb 7>; [50.00%]
  3885. <bb 7> [local count: 37581]:
  3886. # DEBUG BEGIN_STMT
  3887. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3888. # DEBUG BEGIN_STMT
  3889. # DEBUG BEGIN_STMT
  3890. __asm__ __volatile__(" mov %0, %1
  3891. msr basepri, %0
  3892. isb
  3893. dsb
  3894. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  3895. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  3896. <bb 8> [local count: 375809639]:
  3897. # DEBUG ulNewBASEPRI => NULL
  3898. # DEBUG BEGIN_STMT
  3899. # DEBUG BEGIN_STMT
  3900. # DEBUG BEGIN_STMT
  3901. <bb 29> [local count: 375809639]:
  3902. goto <bb 8>; [100.00%]
  3903. <bb 9> [local count: 212958]:
  3904. # DEBUG BEGIN_STMT
  3905. # DEBUG BEGIN_STMT
  3906. if (xCopyPosition_16(D) != 2)
  3907. goto <bb 13>; [48.88%]
  3908. else
  3909. goto <bb 10>; [51.12%]
  3910. <bb 10> [local count: 108864]:
  3911. _2 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  3912. if (_2 == 1)
  3913. goto <bb 13>; [34.00%]
  3914. else
  3915. goto <bb 11>; [66.00%]
  3916. <bb 11> [local count: 71850]:
  3917. # DEBUG BEGIN_STMT
  3918. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  3919. # DEBUG BEGIN_STMT
  3920. # DEBUG BEGIN_STMT
  3921. __asm__ __volatile__(" mov %0, %1
  3922. msr basepri, %0
  3923. isb
  3924. dsb
  3925. " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory");
  3926. # DEBUG ulNewBASEPRI => ulNewBASEPRI_27
  3927. <bb 12> [local count: 718505940]:
  3928. # DEBUG ulNewBASEPRI => NULL
  3929. # DEBUG BEGIN_STMT
  3930. # DEBUG BEGIN_STMT
  3931. # DEBUG BEGIN_STMT
  3932. <bb 28> [local count: 718505940]:
  3933. goto <bb 12>; [100.00%]
  3934. <bb 13> [local count: 141108]:
  3935. # DEBUG BEGIN_STMT
  3936. # DEBUG BEGIN_STMT
  3937. vPortValidateInterruptPriority ();
  3938. # DEBUG BEGIN_STMT
  3939. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  3940. # DEBUG BEGIN_STMT
  3941. # DEBUG BEGIN_STMT
  3942. __asm__ __volatile__(" mrs %0, basepri
  3943. mov %1, %2
  3944. msr basepri, %1
  3945. isb
  3946. dsb
  3947. " : "=r" ulOriginalBASEPRI_28, "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  3948. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  3949. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_28
  3950. # DEBUG BEGIN_STMT
  3951. # DEBUG ulNewBASEPRI => NULL
  3952. # DEBUG ulOriginalBASEPRI => NULL
  3953. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_28
  3954. # DEBUG BEGIN_STMT
  3955. _3 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  3956. _4 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  3957. if (_3 < _4)
  3958. goto <bb 15>; [33.00%]
  3959. else
  3960. goto <bb 14>; [67.00%]
  3961. <bb 14> [local count: 94542]:
  3962. if (xCopyPosition_16(D) == 2)
  3963. goto <bb 15>; [34.00%]
  3964. else
  3965. goto <bb 25>; [66.00%]
  3966. <bb 15> [local count: 78710]:
  3967. # DEBUG BEGIN_STMT
  3968. cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_13(D)].cTxLock;
  3969. # DEBUG cTxLock => cTxLock_18
  3970. # DEBUG BEGIN_STMT
  3971. uxPreviousMessagesWaiting_19 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  3972. # DEBUG uxPreviousMessagesWaiting => uxPreviousMessagesWaiting_19
  3973. # DEBUG BEGIN_STMT
  3974. # DEBUG BEGIN_STMT
  3975. prvCopyDataToQueue (xQueue_13(D), pvItemToQueue_14(D), xCopyPosition_16(D));
  3976. # DEBUG BEGIN_STMT
  3977. if (cTxLock_18 == -1)
  3978. goto <bb 16>; [34.00%]
  3979. else
  3980. goto <bb 20>; [66.00%]
  3981. <bb 16> [local count: 26761]:
  3982. # DEBUG BEGIN_STMT
  3983. _5 ={v} MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive.uxNumberOfItems;
  3984. if (_5 != 0)
  3985. goto <bb 17>; [33.00%]
  3986. else
  3987. goto <bb 25>; [67.00%]
  3988. <bb 17> [local count: 8831]:
  3989. # DEBUG BEGIN_STMT
  3990. _6 = &MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive;
  3991. _7 = xTaskRemoveFromEventList (_6);
  3992. if (_7 != 0)
  3993. goto <bb 18>; [50.00%]
  3994. else
  3995. goto <bb 25>; [50.00%]
  3996. <bb 18> [local count: 4416]:
  3997. # DEBUG BEGIN_STMT
  3998. if (pxHigherPriorityTaskWoken_23(D) != 0B)
  3999. goto <bb 19>; [70.00%]
  4000. else
  4001. goto <bb 25>; [30.00%]
  4002. <bb 19> [local count: 3091]:
  4003. # DEBUG BEGIN_STMT
  4004. *pxHigherPriorityTaskWoken_23(D) = 1;
  4005. goto <bb 25>; [100.00%]
  4006. <bb 20> [local count: 51949]:
  4007. # DEBUG BEGIN_STMT
  4008. if (cTxLock_18 == 127)
  4009. goto <bb 21>; [34.00%]
  4010. else
  4011. goto <bb 23>; [66.00%]
  4012. <bb 21> [local count: 17663]:
  4013. # DEBUG BEGIN_STMT
  4014. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4015. # DEBUG BEGIN_STMT
  4016. # DEBUG BEGIN_STMT
  4017. __asm__ __volatile__(" mov %0, %1
  4018. msr basepri, %0
  4019. isb
  4020. dsb
  4021. " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory");
  4022. # DEBUG ulNewBASEPRI => ulNewBASEPRI_30
  4023. <bb 22> [local count: 176625587]:
  4024. # DEBUG ulNewBASEPRI => NULL
  4025. # DEBUG BEGIN_STMT
  4026. # DEBUG BEGIN_STMT
  4027. # DEBUG BEGIN_STMT
  4028. <bb 27> [local count: 176625587]:
  4029. goto <bb 22>; [100.00%]
  4030. <bb 23> [local count: 34286]:
  4031. # DEBUG BEGIN_STMT
  4032. # DEBUG BEGIN_STMT
  4033. cTxLock.10_8 = (unsigned char) cTxLock_18;
  4034. _9 = cTxLock.10_8 + 1;
  4035. _10 = (signed char) _9;
  4036. MEM[(struct Queue_t *)xQueue_13(D)].cTxLock ={v} _10;
  4037. <bb 25> [local count: 123445]:
  4038. # xReturn_11 = PHI <1(23), 0(14), 1(19), 1(17), 1(18), 1(16)>
  4039. # DEBUG xReturn => xReturn_11
  4040. # DEBUG BEGIN_STMT
  4041. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_28
  4042. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  4043. # DEBUG BEGIN_STMT
  4044. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_28 : "memory");
  4045. # DEBUG ulNewMaskValue => NULL
  4046. # DEBUG BEGIN_STMT
  4047. return xReturn_11;
  4048. }
  4049. ;; Function xQueueGiveFromISR (xQueueGiveFromISR, funcdef_no=16, decl_uid=6331, cgraph_uid=17, symbol_order=17)
  4050. xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken)
  4051. {
  4052. uint32_t ulNewBASEPRI;
  4053. uint32_t ulOriginalBASEPRI;
  4054. uint32_t ulNewBASEPRI;
  4055. uint32_t ulNewBASEPRI;
  4056. uint32_t ulNewBASEPRI;
  4057. uint32_t ulNewBASEPRI;
  4058. const int8_t cTxLock;
  4059. const UBaseType_t uxMessagesWaiting;
  4060. BaseType_t xReturn;
  4061. long unsigned int _1;
  4062. int8_t * _2;
  4063. struct tskTaskControlBlock * _3;
  4064. long unsigned int _4;
  4065. long unsigned int _5;
  4066. long unsigned int _6;
  4067. struct List_t * _7;
  4068. long int _8;
  4069. unsigned char cTxLock.12_9;
  4070. unsigned char _10;
  4071. signed char _11;
  4072. <bb 2> [local count: 306783]:
  4073. # DEBUG BEGIN_STMT
  4074. # DEBUG BEGIN_STMT
  4075. # DEBUG BEGIN_STMT
  4076. # DEBUG pxQueue => xQueue_14(D)
  4077. # DEBUG BEGIN_STMT
  4078. if (xQueue_14(D) == 0B)
  4079. goto <bb 3>; [30.00%]
  4080. else
  4081. goto <bb 5>; [70.00%]
  4082. <bb 3> [local count: 92035]:
  4083. # DEBUG BEGIN_STMT
  4084. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4085. # DEBUG BEGIN_STMT
  4086. # DEBUG BEGIN_STMT
  4087. __asm__ __volatile__(" mov %0, %1
  4088. msr basepri, %0
  4089. isb
  4090. dsb
  4091. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  4092. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  4093. <bb 4> [local count: 920350133]:
  4094. # DEBUG ulNewBASEPRI => NULL
  4095. # DEBUG BEGIN_STMT
  4096. # DEBUG BEGIN_STMT
  4097. # DEBUG BEGIN_STMT
  4098. <bb 24> [local count: 920350133]:
  4099. goto <bb 4>; [100.00%]
  4100. <bb 5> [local count: 214748]:
  4101. # DEBUG BEGIN_STMT
  4102. # DEBUG BEGIN_STMT
  4103. _1 = MEM[(struct Queue_t *)xQueue_14(D)].uxItemSize;
  4104. if (_1 != 0)
  4105. goto <bb 6>; [50.00%]
  4106. else
  4107. goto <bb 8>; [50.00%]
  4108. <bb 6> [local count: 107374]:
  4109. # DEBUG BEGIN_STMT
  4110. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4111. # DEBUG BEGIN_STMT
  4112. # DEBUG BEGIN_STMT
  4113. __asm__ __volatile__(" mov %0, %1
  4114. msr basepri, %0
  4115. isb
  4116. dsb
  4117. " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory");
  4118. # DEBUG ulNewBASEPRI => ulNewBASEPRI_25
  4119. <bb 7> [local count: 1073741823]:
  4120. # DEBUG ulNewBASEPRI => NULL
  4121. # DEBUG BEGIN_STMT
  4122. # DEBUG BEGIN_STMT
  4123. # DEBUG BEGIN_STMT
  4124. <bb 25> [local count: 1073741824]:
  4125. goto <bb 7>; [100.00%]
  4126. <bb 8> [local count: 107374]:
  4127. # DEBUG BEGIN_STMT
  4128. # DEBUG BEGIN_STMT
  4129. _2 = MEM[(struct Queue_t *)xQueue_14(D)].pcHead;
  4130. if (_2 != 0B)
  4131. goto <bb 12>; [53.47%]
  4132. else
  4133. goto <bb 9>; [46.53%]
  4134. <bb 9> [local count: 49961]:
  4135. _3 = MEM[(struct Queue_t *)xQueue_14(D)].u.xSemaphore.xMutexHolder;
  4136. if (_3 == 0B)
  4137. goto <bb 12>; [30.00%]
  4138. else
  4139. goto <bb 10>; [70.00%]
  4140. <bb 10> [local count: 34973]:
  4141. # DEBUG BEGIN_STMT
  4142. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4143. # DEBUG BEGIN_STMT
  4144. # DEBUG BEGIN_STMT
  4145. __asm__ __volatile__(" mov %0, %1
  4146. msr basepri, %0
  4147. isb
  4148. dsb
  4149. " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  4150. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  4151. <bb 11> [local count: 349728449]:
  4152. # DEBUG ulNewBASEPRI => NULL
  4153. # DEBUG BEGIN_STMT
  4154. # DEBUG BEGIN_STMT
  4155. # DEBUG BEGIN_STMT
  4156. <bb 27> [local count: 349728449]:
  4157. goto <bb 11>; [100.00%]
  4158. <bb 12> [local count: 72401]:
  4159. # DEBUG BEGIN_STMT
  4160. # DEBUG BEGIN_STMT
  4161. vPortValidateInterruptPriority ();
  4162. # DEBUG BEGIN_STMT
  4163. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  4164. # DEBUG BEGIN_STMT
  4165. # DEBUG BEGIN_STMT
  4166. __asm__ __volatile__(" mrs %0, basepri
  4167. mov %1, %2
  4168. msr basepri, %1
  4169. isb
  4170. dsb
  4171. " : "=r" ulOriginalBASEPRI_27, "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  4172. # DEBUG ulNewBASEPRI => ulNewBASEPRI_28
  4173. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_27
  4174. # DEBUG BEGIN_STMT
  4175. # DEBUG ulNewBASEPRI => NULL
  4176. # DEBUG ulOriginalBASEPRI => NULL
  4177. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_27
  4178. # DEBUG BEGIN_STMT
  4179. uxMessagesWaiting_17 ={v} MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting;
  4180. # DEBUG uxMessagesWaiting => uxMessagesWaiting_17
  4181. # DEBUG BEGIN_STMT
  4182. _4 = MEM[(struct Queue_t *)xQueue_14(D)].uxLength;
  4183. if (_4 > uxMessagesWaiting_17)
  4184. goto <bb 13>; [50.00%]
  4185. else
  4186. goto <bb 23>; [50.00%]
  4187. <bb 13> [local count: 36201]:
  4188. # DEBUG BEGIN_STMT
  4189. cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_14(D)].cTxLock;
  4190. # DEBUG cTxLock => cTxLock_18
  4191. # DEBUG BEGIN_STMT
  4192. # DEBUG BEGIN_STMT
  4193. _5 = uxMessagesWaiting_17 + 1;
  4194. MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting ={v} _5;
  4195. # DEBUG BEGIN_STMT
  4196. if (cTxLock_18 == -1)
  4197. goto <bb 14>; [34.00%]
  4198. else
  4199. goto <bb 18>; [66.00%]
  4200. <bb 14> [local count: 12308]:
  4201. # DEBUG BEGIN_STMT
  4202. _6 ={v} MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive.uxNumberOfItems;
  4203. if (_6 != 0)
  4204. goto <bb 15>; [33.00%]
  4205. else
  4206. goto <bb 23>; [67.00%]
  4207. <bb 15> [local count: 4062]:
  4208. # DEBUG BEGIN_STMT
  4209. _7 = &MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive;
  4210. _8 = xTaskRemoveFromEventList (_7);
  4211. if (_8 != 0)
  4212. goto <bb 16>; [50.00%]
  4213. else
  4214. goto <bb 23>; [50.00%]
  4215. <bb 16> [local count: 2031]:
  4216. # DEBUG BEGIN_STMT
  4217. if (pxHigherPriorityTaskWoken_22(D) != 0B)
  4218. goto <bb 17>; [70.00%]
  4219. else
  4220. goto <bb 23>; [30.00%]
  4221. <bb 17> [local count: 1422]:
  4222. # DEBUG BEGIN_STMT
  4223. *pxHigherPriorityTaskWoken_22(D) = 1;
  4224. goto <bb 23>; [100.00%]
  4225. <bb 18> [local count: 23892]:
  4226. # DEBUG BEGIN_STMT
  4227. if (cTxLock_18 == 127)
  4228. goto <bb 19>; [34.00%]
  4229. else
  4230. goto <bb 21>; [66.00%]
  4231. <bb 19> [local count: 8123]:
  4232. # DEBUG BEGIN_STMT
  4233. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4234. # DEBUG BEGIN_STMT
  4235. # DEBUG BEGIN_STMT
  4236. __asm__ __volatile__(" mov %0, %1
  4237. msr basepri, %0
  4238. isb
  4239. dsb
  4240. " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  4241. # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  4242. <bb 20> [local count: 81234300]:
  4243. # DEBUG ulNewBASEPRI => NULL
  4244. # DEBUG BEGIN_STMT
  4245. # DEBUG BEGIN_STMT
  4246. # DEBUG BEGIN_STMT
  4247. <bb 26> [local count: 81234300]:
  4248. goto <bb 20>; [100.00%]
  4249. <bb 21> [local count: 15769]:
  4250. # DEBUG BEGIN_STMT
  4251. # DEBUG BEGIN_STMT
  4252. cTxLock.12_9 = (unsigned char) cTxLock_18;
  4253. _10 = cTxLock.12_9 + 1;
  4254. _11 = (signed char) _10;
  4255. MEM[(struct Queue_t *)xQueue_14(D)].cTxLock ={v} _11;
  4256. <bb 23> [local count: 64278]:
  4257. # xReturn_12 = PHI <1(21), 0(12), 1(17), 1(15), 1(16), 1(14)>
  4258. # DEBUG xReturn => xReturn_12
  4259. # DEBUG BEGIN_STMT
  4260. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_27
  4261. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  4262. # DEBUG BEGIN_STMT
  4263. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_27 : "memory");
  4264. # DEBUG ulNewMaskValue => NULL
  4265. # DEBUG BEGIN_STMT
  4266. return xReturn_12;
  4267. }
  4268. ;; Function xQueueReceive (xQueueReceive, funcdef_no=17, decl_uid=6317, cgraph_uid=18, symbol_order=18)
  4269. xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
  4270. {
  4271. uint32_t ulNewBASEPRI;
  4272. uint32_t ulNewBASEPRI;
  4273. uint32_t ulNewBASEPRI;
  4274. const UBaseType_t uxMessagesWaiting;
  4275. struct TimeOut_t xTimeOut;
  4276. BaseType_t xEntryTimeSet;
  4277. long unsigned int _1;
  4278. long int _2;
  4279. long unsigned int xTicksToWait.15_3;
  4280. long unsigned int _4;
  4281. long unsigned int _5;
  4282. struct List_t * _6;
  4283. long int _7;
  4284. long unsigned int xTicksToWait.16_8;
  4285. signed char _9;
  4286. signed char _10;
  4287. long int _11;
  4288. long int _12;
  4289. struct List_t * _13;
  4290. long unsigned int xTicksToWait.17_14;
  4291. long int _15;
  4292. long int _16;
  4293. BaseType_t _19;
  4294. <bb 2> [local count: 357913]:
  4295. # DEBUG BEGIN_STMT
  4296. # DEBUG xEntryTimeSet => 0
  4297. # DEBUG BEGIN_STMT
  4298. # DEBUG BEGIN_STMT
  4299. # DEBUG pxQueue => xQueue_27(D)
  4300. # DEBUG BEGIN_STMT
  4301. if (xQueue_27(D) == 0B)
  4302. goto <bb 3>; [30.00%]
  4303. else
  4304. goto <bb 5>; [70.00%]
  4305. <bb 3> [local count: 107374]:
  4306. # DEBUG BEGIN_STMT
  4307. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4308. # DEBUG BEGIN_STMT
  4309. # DEBUG BEGIN_STMT
  4310. __asm__ __volatile__(" mov %0, %1
  4311. msr basepri, %0
  4312. isb
  4313. dsb
  4314. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  4315. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  4316. <bb 4> [local count: 1073741824]:
  4317. # DEBUG ulNewBASEPRI => NULL
  4318. # DEBUG BEGIN_STMT
  4319. # DEBUG BEGIN_STMT
  4320. # DEBUG BEGIN_STMT
  4321. <bb 35> [local count: 1073741824]:
  4322. goto <bb 4>; [100.00%]
  4323. <bb 5> [local count: 250539]:
  4324. # DEBUG BEGIN_STMT
  4325. # DEBUG BEGIN_STMT
  4326. if (pvBuffer_28(D) != 0B)
  4327. goto <bb 9>; [53.47%]
  4328. else
  4329. goto <bb 6>; [46.53%]
  4330. <bb 6> [local count: 116576]:
  4331. _1 = MEM[(struct Queue_t *)xQueue_27(D)].uxItemSize;
  4332. if (_1 == 0)
  4333. goto <bb 9>; [50.00%]
  4334. else
  4335. goto <bb 7>; [50.00%]
  4336. <bb 7> [local count: 58288]:
  4337. # DEBUG BEGIN_STMT
  4338. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4339. # DEBUG BEGIN_STMT
  4340. # DEBUG BEGIN_STMT
  4341. __asm__ __volatile__(" mov %0, %1
  4342. msr basepri, %0
  4343. isb
  4344. dsb
  4345. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  4346. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  4347. <bb 8> [local count: 582880751]:
  4348. # DEBUG ulNewBASEPRI => NULL
  4349. # DEBUG BEGIN_STMT
  4350. # DEBUG BEGIN_STMT
  4351. # DEBUG BEGIN_STMT
  4352. <bb 37> [local count: 582880751]:
  4353. goto <bb 8>; [100.00%]
  4354. <bb 9> [local count: 192251]:
  4355. # DEBUG BEGIN_STMT
  4356. # DEBUG BEGIN_STMT
  4357. _2 = xTaskGetSchedulerState ();
  4358. if (_2 != 0)
  4359. goto <bb 10>; [50.00%]
  4360. else
  4361. goto <bb 11>; [50.00%]
  4362. <bb 10> [local count: 144189]:
  4363. # xEntryTimeSet_32 = PHI <0(9), 0(11)>
  4364. goto <bb 15>; [100.00%]
  4365. <bb 11> [local count: 96126]:
  4366. xTicksToWait.15_3 = xTicksToWait;
  4367. if (xTicksToWait.15_3 == 0)
  4368. goto <bb 10>; [50.00%]
  4369. else
  4370. goto <bb 12>; [50.00%]
  4371. <bb 12> [local count: 48063]:
  4372. # DEBUG BEGIN_STMT
  4373. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4374. # DEBUG BEGIN_STMT
  4375. # DEBUG BEGIN_STMT
  4376. __asm__ __volatile__(" mov %0, %1
  4377. msr basepri, %0
  4378. isb
  4379. dsb
  4380. " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory");
  4381. # DEBUG ulNewBASEPRI => ulNewBASEPRI_67
  4382. <bb 13> [local count: 480629211]:
  4383. # DEBUG ulNewBASEPRI => NULL
  4384. # DEBUG BEGIN_STMT
  4385. # DEBUG BEGIN_STMT
  4386. # DEBUG BEGIN_STMT
  4387. <bb 36> [local count: 480629211]:
  4388. goto <bb 13>; [100.00%]
  4389. <bb 14> [local count: 1478726]:
  4390. # xEntryTimeSet_46 = PHI <xEntryTimeSet_18(33), xEntryTimeSet_18(32), xEntryTimeSet_18(31), xEntryTimeSet_18(30)>
  4391. <bb 15> [local count: 1622915]:
  4392. # xEntryTimeSet_17 = PHI <xEntryTimeSet_32(10), xEntryTimeSet_46(14)>
  4393. # DEBUG xEntryTimeSet => xEntryTimeSet_17
  4394. # DEBUG BEGIN_STMT
  4395. # DEBUG BEGIN_STMT
  4396. # DEBUG BEGIN_STMT
  4397. vPortEnterCritical ();
  4398. # DEBUG BEGIN_STMT
  4399. uxMessagesWaiting_34 ={v} MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting;
  4400. # DEBUG uxMessagesWaiting => uxMessagesWaiting_34
  4401. # DEBUG BEGIN_STMT
  4402. if (uxMessagesWaiting_34 != 0)
  4403. goto <bb 16>; [3.66%]
  4404. else
  4405. goto <bb 20>; [96.34%]
  4406. <bb 16> [local count: 59399]:
  4407. # uxMessagesWaiting_31 = PHI <uxMessagesWaiting_34(15)>
  4408. # DEBUG BEGIN_STMT
  4409. prvCopyDataFromQueue (xQueue_27(D), pvBuffer_28(D));
  4410. # DEBUG BEGIN_STMT
  4411. # DEBUG BEGIN_STMT
  4412. _4 = uxMessagesWaiting_31 + 4294967295;
  4413. MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting ={v} _4;
  4414. # DEBUG BEGIN_STMT
  4415. _5 ={v} MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend.uxNumberOfItems;
  4416. if (_5 != 0)
  4417. goto <bb 17>; [33.00%]
  4418. else
  4419. goto <bb 19>; [67.00%]
  4420. <bb 17> [local count: 19602]:
  4421. # DEBUG BEGIN_STMT
  4422. _6 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend;
  4423. _7 = xTaskRemoveFromEventList (_6);
  4424. if (_7 != 0)
  4425. goto <bb 18>; [50.00%]
  4426. else
  4427. goto <bb 19>; [50.00%]
  4428. <bb 18> [local count: 9801]:
  4429. # DEBUG BEGIN_STMT
  4430. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  4431. # DEBUG BEGIN_STMT
  4432. __asm__ __volatile__("dsb" : : : "memory");
  4433. # DEBUG BEGIN_STMT
  4434. __asm__ __volatile__("isb");
  4435. # DEBUG BEGIN_STMT
  4436. <bb 19> [local count: 59399]:
  4437. # DEBUG BEGIN_STMT
  4438. # DEBUG BEGIN_STMT
  4439. vPortExitCritical ();
  4440. # DEBUG BEGIN_STMT
  4441. goto <bb 34>; [100.00%]
  4442. <bb 20> [local count: 1563516]:
  4443. # DEBUG BEGIN_STMT
  4444. xTicksToWait.16_8 = xTicksToWait;
  4445. if (xTicksToWait.16_8 == 0)
  4446. goto <bb 21>; [3.66%]
  4447. else
  4448. goto <bb 22>; [96.34%]
  4449. <bb 21> [local count: 57225]:
  4450. # DEBUG BEGIN_STMT
  4451. vPortExitCritical ();
  4452. # DEBUG BEGIN_STMT
  4453. # DEBUG BEGIN_STMT
  4454. goto <bb 34>; [100.00%]
  4455. <bb 22> [local count: 1506292]:
  4456. # DEBUG BEGIN_STMT
  4457. if (xEntryTimeSet_17 == 0)
  4458. goto <bb 23>; [33.00%]
  4459. else
  4460. goto <bb 24>; [67.00%]
  4461. <bb 23> [local count: 497076]:
  4462. # DEBUG BEGIN_STMT
  4463. vTaskInternalSetTimeOutState (&xTimeOut);
  4464. # DEBUG BEGIN_STMT
  4465. # DEBUG xEntryTimeSet => 1
  4466. <bb 24> [local count: 1506292]:
  4467. # xEntryTimeSet_18 = PHI <xEntryTimeSet_17(22), 1(23)>
  4468. # DEBUG xEntryTimeSet => xEntryTimeSet_18
  4469. # DEBUG BEGIN_STMT
  4470. # DEBUG BEGIN_STMT
  4471. vPortExitCritical ();
  4472. # DEBUG BEGIN_STMT
  4473. vTaskSuspendAll ();
  4474. # DEBUG BEGIN_STMT
  4475. vPortEnterCritical ();
  4476. # DEBUG BEGIN_STMT
  4477. _9 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cRxLock;
  4478. if (_9 == -1)
  4479. goto <bb 25>; [34.00%]
  4480. else
  4481. goto <bb 26>; [66.00%]
  4482. <bb 25> [local count: 512139]:
  4483. # DEBUG BEGIN_STMT
  4484. MEM[(struct Queue_t *)xQueue_27(D)].cRxLock ={v} 0;
  4485. <bb 26> [local count: 1506292]:
  4486. # DEBUG BEGIN_STMT
  4487. _10 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cTxLock;
  4488. if (_10 == -1)
  4489. goto <bb 27>; [34.00%]
  4490. else
  4491. goto <bb 28>; [66.00%]
  4492. <bb 27> [local count: 512139]:
  4493. # DEBUG BEGIN_STMT
  4494. MEM[(struct Queue_t *)xQueue_27(D)].cTxLock ={v} 0;
  4495. <bb 28> [local count: 1506292]:
  4496. # DEBUG BEGIN_STMT
  4497. vPortExitCritical ();
  4498. # DEBUG BEGIN_STMT
  4499. _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  4500. if (_11 == 0)
  4501. goto <bb 29>; [50.00%]
  4502. else
  4503. goto <bb 33>; [50.00%]
  4504. <bb 29> [local count: 753146]:
  4505. # DEBUG BEGIN_STMT
  4506. _12 = prvIsQueueEmpty (xQueue_27(D));
  4507. if (_12 != 0)
  4508. goto <bb 30>; [50.00%]
  4509. else
  4510. goto <bb 32>; [50.00%]
  4511. <bb 30> [local count: 376573]:
  4512. # DEBUG BEGIN_STMT
  4513. # DEBUG BEGIN_STMT
  4514. _13 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToReceive;
  4515. xTicksToWait.17_14 = xTicksToWait;
  4516. vTaskPlaceOnEventList (_13, xTicksToWait.17_14);
  4517. # DEBUG BEGIN_STMT
  4518. prvUnlockQueue (xQueue_27(D));
  4519. # DEBUG BEGIN_STMT
  4520. _15 = xTaskResumeAll ();
  4521. if (_15 == 0)
  4522. goto <bb 31>; [50.00%]
  4523. else
  4524. goto <bb 14>; [50.00%]
  4525. <bb 31> [local count: 188286]:
  4526. # DEBUG BEGIN_STMT
  4527. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  4528. # DEBUG BEGIN_STMT
  4529. __asm__ __volatile__("dsb" : : : "memory");
  4530. # DEBUG BEGIN_STMT
  4531. __asm__ __volatile__("isb");
  4532. # DEBUG BEGIN_STMT
  4533. goto <bb 14>; [100.00%]
  4534. <bb 32> [local count: 376573]:
  4535. # DEBUG BEGIN_STMT
  4536. prvUnlockQueue (xQueue_27(D));
  4537. # DEBUG BEGIN_STMT
  4538. xTaskResumeAll ();
  4539. goto <bb 14>; [100.00%]
  4540. <bb 33> [local count: 753146]:
  4541. # DEBUG BEGIN_STMT
  4542. prvUnlockQueue (xQueue_27(D));
  4543. # DEBUG BEGIN_STMT
  4544. xTaskResumeAll ();
  4545. # DEBUG BEGIN_STMT
  4546. _16 = prvIsQueueEmpty (xQueue_27(D));
  4547. if (_16 != 0)
  4548. goto <bb 34>; [3.66%]
  4549. else
  4550. goto <bb 14>; [96.34%]
  4551. <bb 34> [local count: 144189]:
  4552. # _19 = PHI <1(19), 0(21), 0(33)>
  4553. xTimeOut ={v} {CLOBBER};
  4554. return _19;
  4555. }
  4556. ;; Function xQueueSemaphoreTake (xQueueSemaphoreTake, funcdef_no=18, decl_uid=6372, cgraph_uid=19, symbol_order=19)
  4557. Symbols to be put in SSA form
  4558. { D.7294 D.7525 }
  4559. Incremental SSA update started at block: 0
  4560. Number of blocks in CFG: 52
  4561. Number of blocks to update: 51 ( 98%)
  4562. Merging blocks 4 and 44
  4563. Merging blocks 7 and 45
  4564. Merging blocks 12 and 47
  4565. Merging blocks 24 and 46
  4566. Merging blocks 41 and 49
  4567. Merging blocks 51 and 48
  4568. ;; 6 loops found
  4569. ;;
  4570. ;; Loop 0
  4571. ;; header 0, latch 1
  4572. ;; depth 0, outer -1
  4573. ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
  4574. ;;
  4575. ;; Loop 5
  4576. ;; header 4, latch 4
  4577. ;; depth 1, outer 0
  4578. ;; nodes: 4
  4579. ;;
  4580. ;; Loop 4
  4581. ;; header 7, latch 7
  4582. ;; depth 1, outer 0
  4583. ;; nodes: 7
  4584. ;;
  4585. ;; Loop 2
  4586. ;; header 24, latch 24
  4587. ;; depth 1, outer 0
  4588. ;; nodes: 24
  4589. ;;
  4590. ;; Loop 1
  4591. ;; header 14, latch 13
  4592. ;; depth 1, outer 0
  4593. ;; nodes: 14 13 39 38 37 36 34 35 33 32 30 31 28 29 26 27 21
  4594. ;;
  4595. ;; Loop 3
  4596. ;; header 12, latch 12
  4597. ;; depth 1, outer 0
  4598. ;; nodes: 12
  4599. ;; 2 succs { 3 5 }
  4600. ;; 3 succs { 4 }
  4601. ;; 4 succs { 4 }
  4602. ;; 5 succs { 6 8 }
  4603. ;; 6 succs { 7 }
  4604. ;; 7 succs { 7 }
  4605. ;; 8 succs { 10 9 }
  4606. ;; 9 succs { 10 11 }
  4607. ;; 10 succs { 14 }
  4608. ;; 11 succs { 12 }
  4609. ;; 12 succs { 12 }
  4610. ;; 13 succs { 14 }
  4611. ;; 14 succs { 15 21 }
  4612. ;; 15 succs { 16 17 }
  4613. ;; 16 succs { 17 }
  4614. ;; 17 succs { 18 20 }
  4615. ;; 18 succs { 19 20 }
  4616. ;; 19 succs { 20 }
  4617. ;; 20 succs { 45 }
  4618. ;; 21 succs { 22 26 }
  4619. ;; 22 succs { 23 25 }
  4620. ;; 23 succs { 24 }
  4621. ;; 24 succs { 24 }
  4622. ;; 25 succs { 45 }
  4623. ;; 26 succs { 27 28 }
  4624. ;; 27 succs { 28 }
  4625. ;; 28 succs { 29 30 }
  4626. ;; 29 succs { 30 }
  4627. ;; 30 succs { 31 32 }
  4628. ;; 31 succs { 32 }
  4629. ;; 32 succs { 33 39 }
  4630. ;; 33 succs { 34 38 }
  4631. ;; 34 succs { 35 36 }
  4632. ;; 35 succs { 36 }
  4633. ;; 36 succs { 37 13 }
  4634. ;; 37 succs { 13 }
  4635. ;; 38 succs { 13 }
  4636. ;; 39 succs { 40 13 }
  4637. ;; 40 succs { 41 44 }
  4638. ;; 41 succs { 42 43 }
  4639. ;; 42 succs { 43 }
  4640. ;; 43 succs { 44 }
  4641. ;; 44 succs { 45 }
  4642. ;; 45 succs { 1 }
  4643. xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait)
  4644. {
  4645. UBaseType_t uxHighestPriorityOfWaitingTasks;
  4646. UBaseType_t D.7525;
  4647. uint32_t ulNewBASEPRI;
  4648. uint32_t ulNewBASEPRI;
  4649. uint32_t ulNewBASEPRI;
  4650. uint32_t ulNewBASEPRI;
  4651. UBaseType_t uxHighestWaitingPriority;
  4652. const UBaseType_t uxSemaphoreCount;
  4653. BaseType_t xInheritanceOccurred;
  4654. struct TimeOut_t xTimeOut;
  4655. BaseType_t xEntryTimeSet;
  4656. long unsigned int _1;
  4657. long int _2;
  4658. long unsigned int xTicksToWait.19_3;
  4659. long unsigned int _4;
  4660. int8_t * _5;
  4661. struct tskTaskControlBlock * _6;
  4662. long unsigned int _7;
  4663. struct List_t * _8;
  4664. long int _9;
  4665. long unsigned int xTicksToWait.20_10;
  4666. signed char _11;
  4667. signed char _12;
  4668. long int _13;
  4669. long int _14;
  4670. int8_t * _15;
  4671. struct tskTaskControlBlock * _16;
  4672. struct List_t * _17;
  4673. long unsigned int xTicksToWait.21_18;
  4674. long int _19;
  4675. long int _20;
  4676. struct tskTaskControlBlock * _21;
  4677. BaseType_t _27;
  4678. long unsigned int _96;
  4679. struct xLIST_ITEM * _97;
  4680. long unsigned int _98;
  4681. <bb 2> [local count: 228942]:
  4682. # DEBUG BEGIN_STMT
  4683. # DEBUG xEntryTimeSet => 0
  4684. # DEBUG BEGIN_STMT
  4685. # DEBUG BEGIN_STMT
  4686. # DEBUG pxQueue => xQueue_38(D)
  4687. # DEBUG BEGIN_STMT
  4688. # DEBUG xInheritanceOccurred => 0
  4689. # DEBUG BEGIN_STMT
  4690. if (xQueue_38(D) == 0B)
  4691. goto <bb 3>; [30.00%]
  4692. else
  4693. goto <bb 5>; [70.00%]
  4694. <bb 3> [local count: 68683]:
  4695. # DEBUG BEGIN_STMT
  4696. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4697. # DEBUG BEGIN_STMT
  4698. # DEBUG BEGIN_STMT
  4699. __asm__ __volatile__(" mov %0, %1
  4700. msr basepri, %0
  4701. isb
  4702. dsb
  4703. " : "=r" ulNewBASEPRI_88 : "i" 16 : "memory");
  4704. # DEBUG ulNewBASEPRI => ulNewBASEPRI_88
  4705. <bb 4> [local count: 686828460]:
  4706. # DEBUG ulNewBASEPRI => NULL
  4707. # DEBUG BEGIN_STMT
  4708. # DEBUG BEGIN_STMT
  4709. # DEBUG BEGIN_STMT
  4710. goto <bb 4>; [100.00%]
  4711. <bb 5> [local count: 160260]:
  4712. # DEBUG BEGIN_STMT
  4713. # DEBUG BEGIN_STMT
  4714. _1 = MEM[(struct Queue_t *)xQueue_38(D)].uxItemSize;
  4715. if (_1 != 0)
  4716. goto <bb 6>; [67.00%]
  4717. else
  4718. goto <bb 8>; [33.00%]
  4719. <bb 6> [local count: 107374]:
  4720. # DEBUG BEGIN_STMT
  4721. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4722. # DEBUG BEGIN_STMT
  4723. # DEBUG BEGIN_STMT
  4724. __asm__ __volatile__(" mov %0, %1
  4725. msr basepri, %0
  4726. isb
  4727. dsb
  4728. " : "=r" ulNewBASEPRI_89 : "i" 16 : "memory");
  4729. # DEBUG ulNewBASEPRI => ulNewBASEPRI_89
  4730. <bb 7> [local count: 1073741824]:
  4731. # DEBUG ulNewBASEPRI => NULL
  4732. # DEBUG BEGIN_STMT
  4733. # DEBUG BEGIN_STMT
  4734. # DEBUG BEGIN_STMT
  4735. goto <bb 7>; [100.00%]
  4736. <bb 8> [local count: 52886]:
  4737. # DEBUG BEGIN_STMT
  4738. # DEBUG BEGIN_STMT
  4739. _2 = xTaskGetSchedulerState ();
  4740. if (_2 != 0)
  4741. goto <bb 10>; [50.00%]
  4742. else
  4743. goto <bb 9>; [50.00%]
  4744. <bb 9> [local count: 26443]:
  4745. xTicksToWait.19_3 = xTicksToWait;
  4746. if (xTicksToWait.19_3 == 0)
  4747. goto <bb 10>; [50.00%]
  4748. else
  4749. goto <bb 11>; [50.00%]
  4750. <bb 10> [local count: 39664]:
  4751. # xEntryTimeSet_40 = PHI <0(9), 0(8)>
  4752. # xInheritanceOccurred_64 = PHI <0(9), 0(8)>
  4753. goto <bb 14>; [100.00%]
  4754. <bb 11> [local count: 13221]:
  4755. # DEBUG BEGIN_STMT
  4756. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4757. # DEBUG BEGIN_STMT
  4758. # DEBUG BEGIN_STMT
  4759. __asm__ __volatile__(" mov %0, %1
  4760. msr basepri, %0
  4761. isb
  4762. dsb
  4763. " : "=r" ulNewBASEPRI_90 : "i" 16 : "memory");
  4764. # DEBUG ulNewBASEPRI => ulNewBASEPRI_90
  4765. <bb 12> [local count: 132214478]:
  4766. # DEBUG ulNewBASEPRI => NULL
  4767. # DEBUG BEGIN_STMT
  4768. # DEBUG BEGIN_STMT
  4769. # DEBUG BEGIN_STMT
  4770. goto <bb 12>; [100.00%]
  4771. <bb 13> [local count: 406777]:
  4772. # xEntryTimeSet_48 = PHI <xEntryTimeSet_23(39), xEntryTimeSet_23(38), xEntryTimeSet_23(37), xEntryTimeSet_23(36)>
  4773. # xInheritanceOccurred_39 = PHI <xInheritanceOccurred_24(39), xInheritanceOccurred_24(38), xInheritanceOccurred_25(37), xInheritanceOccurred_25(36)>
  4774. <bb 14> [local count: 446442]:
  4775. # xEntryTimeSet_22 = PHI <xEntryTimeSet_40(10), xEntryTimeSet_48(13)>
  4776. # xInheritanceOccurred_24 = PHI <xInheritanceOccurred_64(10), xInheritanceOccurred_39(13)>
  4777. # DEBUG xInheritanceOccurred => xInheritanceOccurred_24
  4778. # DEBUG xEntryTimeSet => xEntryTimeSet_22
  4779. # DEBUG BEGIN_STMT
  4780. # DEBUG BEGIN_STMT
  4781. # DEBUG BEGIN_STMT
  4782. vPortEnterCritical ();
  4783. # DEBUG BEGIN_STMT
  4784. uxSemaphoreCount_46 ={v} MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting;
  4785. # DEBUG uxSemaphoreCount => uxSemaphoreCount_46
  4786. # DEBUG BEGIN_STMT
  4787. if (uxSemaphoreCount_46 != 0)
  4788. goto <bb 15>; [3.66%]
  4789. else
  4790. goto <bb 21>; [96.34%]
  4791. <bb 15> [local count: 16340]:
  4792. # uxSemaphoreCount_26 = PHI <uxSemaphoreCount_46(14)>
  4793. # DEBUG BEGIN_STMT
  4794. # DEBUG BEGIN_STMT
  4795. _4 = uxSemaphoreCount_26 + 4294967295;
  4796. MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting ={v} _4;
  4797. # DEBUG BEGIN_STMT
  4798. _5 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  4799. if (_5 == 0B)
  4800. goto <bb 16>; [17.43%]
  4801. else
  4802. goto <bb 17>; [82.57%]
  4803. <bb 16> [local count: 2848]:
  4804. # DEBUG BEGIN_STMT
  4805. _6 = pvTaskIncrementMutexHeldCount ();
  4806. MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder = _6;
  4807. <bb 17> [local count: 16340]:
  4808. # DEBUG BEGIN_STMT
  4809. # DEBUG BEGIN_STMT
  4810. _7 ={v} MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend.uxNumberOfItems;
  4811. if (_7 != 0)
  4812. goto <bb 18>; [33.00%]
  4813. else
  4814. goto <bb 20>; [67.00%]
  4815. <bb 18> [local count: 5392]:
  4816. # DEBUG BEGIN_STMT
  4817. _8 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend;
  4818. _9 = xTaskRemoveFromEventList (_8);
  4819. if (_9 != 0)
  4820. goto <bb 19>; [50.00%]
  4821. else
  4822. goto <bb 20>; [50.00%]
  4823. <bb 19> [local count: 2696]:
  4824. # DEBUG BEGIN_STMT
  4825. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  4826. # DEBUG BEGIN_STMT
  4827. __asm__ __volatile__("dsb" : : : "memory");
  4828. # DEBUG BEGIN_STMT
  4829. __asm__ __volatile__("isb");
  4830. # DEBUG BEGIN_STMT
  4831. <bb 20> [local count: 16340]:
  4832. # DEBUG BEGIN_STMT
  4833. # DEBUG BEGIN_STMT
  4834. vPortExitCritical ();
  4835. # DEBUG BEGIN_STMT
  4836. goto <bb 45>; [100.00%]
  4837. <bb 21> [local count: 430102]:
  4838. # DEBUG BEGIN_STMT
  4839. xTicksToWait.20_10 = xTicksToWait;
  4840. if (xTicksToWait.20_10 == 0)
  4841. goto <bb 22>; [3.66%]
  4842. else
  4843. goto <bb 26>; [96.34%]
  4844. <bb 22> [local count: 15742]:
  4845. # xInheritanceOccurred_43 = PHI <xInheritanceOccurred_24(21)>
  4846. # DEBUG BEGIN_STMT
  4847. if (xInheritanceOccurred_43 != 0)
  4848. goto <bb 23>; [79.76%]
  4849. else
  4850. goto <bb 25>; [20.24%]
  4851. <bb 23> [local count: 12556]:
  4852. # DEBUG BEGIN_STMT
  4853. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  4854. # DEBUG BEGIN_STMT
  4855. # DEBUG BEGIN_STMT
  4856. __asm__ __volatile__(" mov %0, %1
  4857. msr basepri, %0
  4858. isb
  4859. dsb
  4860. " : "=r" ulNewBASEPRI_91 : "i" 16 : "memory");
  4861. # DEBUG ulNewBASEPRI => ulNewBASEPRI_91
  4862. <bb 24> [local count: 125556217]:
  4863. # DEBUG ulNewBASEPRI => NULL
  4864. # DEBUG BEGIN_STMT
  4865. # DEBUG BEGIN_STMT
  4866. # DEBUG BEGIN_STMT
  4867. goto <bb 24>; [100.00%]
  4868. <bb 25> [local count: 3186]:
  4869. # DEBUG BEGIN_STMT
  4870. # DEBUG BEGIN_STMT
  4871. vPortExitCritical ();
  4872. # DEBUG BEGIN_STMT
  4873. # DEBUG BEGIN_STMT
  4874. goto <bb 45>; [100.00%]
  4875. <bb 26> [local count: 414360]:
  4876. # DEBUG BEGIN_STMT
  4877. if (xEntryTimeSet_22 == 0)
  4878. goto <bb 27>; [33.00%]
  4879. else
  4880. goto <bb 28>; [67.00%]
  4881. <bb 27> [local count: 136739]:
  4882. # DEBUG BEGIN_STMT
  4883. vTaskInternalSetTimeOutState (&xTimeOut);
  4884. # DEBUG BEGIN_STMT
  4885. # DEBUG xEntryTimeSet => 1
  4886. <bb 28> [local count: 414360]:
  4887. # xEntryTimeSet_23 = PHI <xEntryTimeSet_22(26), 1(27)>
  4888. # DEBUG xEntryTimeSet => xEntryTimeSet_23
  4889. # DEBUG BEGIN_STMT
  4890. # DEBUG BEGIN_STMT
  4891. vPortExitCritical ();
  4892. # DEBUG BEGIN_STMT
  4893. vTaskSuspendAll ();
  4894. # DEBUG BEGIN_STMT
  4895. vPortEnterCritical ();
  4896. # DEBUG BEGIN_STMT
  4897. _11 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cRxLock;
  4898. if (_11 == -1)
  4899. goto <bb 29>; [34.00%]
  4900. else
  4901. goto <bb 30>; [66.00%]
  4902. <bb 29> [local count: 140882]:
  4903. # DEBUG BEGIN_STMT
  4904. MEM[(struct Queue_t *)xQueue_38(D)].cRxLock ={v} 0;
  4905. <bb 30> [local count: 414360]:
  4906. # DEBUG BEGIN_STMT
  4907. _12 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cTxLock;
  4908. if (_12 == -1)
  4909. goto <bb 31>; [34.00%]
  4910. else
  4911. goto <bb 32>; [66.00%]
  4912. <bb 31> [local count: 140882]:
  4913. # DEBUG BEGIN_STMT
  4914. MEM[(struct Queue_t *)xQueue_38(D)].cTxLock ={v} 0;
  4915. <bb 32> [local count: 414360]:
  4916. # DEBUG BEGIN_STMT
  4917. vPortExitCritical ();
  4918. # DEBUG BEGIN_STMT
  4919. _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  4920. if (_13 == 0)
  4921. goto <bb 33>; [50.00%]
  4922. else
  4923. goto <bb 39>; [50.00%]
  4924. <bb 33> [local count: 207180]:
  4925. # DEBUG BEGIN_STMT
  4926. _14 = prvIsQueueEmpty (xQueue_38(D));
  4927. if (_14 != 0)
  4928. goto <bb 34>; [67.00%]
  4929. else
  4930. goto <bb 38>; [33.00%]
  4931. <bb 34> [local count: 138811]:
  4932. # DEBUG BEGIN_STMT
  4933. # DEBUG BEGIN_STMT
  4934. _15 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  4935. if (_15 == 0B)
  4936. goto <bb 35>; [17.43%]
  4937. else
  4938. goto <bb 36>; [82.57%]
  4939. <bb 35> [local count: 24195]:
  4940. # DEBUG BEGIN_STMT
  4941. vPortEnterCritical ();
  4942. # DEBUG BEGIN_STMT
  4943. _16 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  4944. xInheritanceOccurred_70 = xTaskPriorityInherit (_16);
  4945. # DEBUG xInheritanceOccurred => xInheritanceOccurred_70
  4946. # DEBUG BEGIN_STMT
  4947. vPortExitCritical ();
  4948. <bb 36> [local count: 138811]:
  4949. # xInheritanceOccurred_25 = PHI <xInheritanceOccurred_24(34), xInheritanceOccurred_70(35)>
  4950. # DEBUG xInheritanceOccurred => xInheritanceOccurred_25
  4951. # DEBUG BEGIN_STMT
  4952. # DEBUG BEGIN_STMT
  4953. _17 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive;
  4954. xTicksToWait.21_18 = xTicksToWait;
  4955. vTaskPlaceOnEventList (_17, xTicksToWait.21_18);
  4956. # DEBUG BEGIN_STMT
  4957. prvUnlockQueue (xQueue_38(D));
  4958. # DEBUG BEGIN_STMT
  4959. _19 = xTaskResumeAll ();
  4960. if (_19 == 0)
  4961. goto <bb 37>; [50.00%]
  4962. else
  4963. goto <bb 13>; [50.00%]
  4964. <bb 37> [local count: 69405]:
  4965. # DEBUG BEGIN_STMT
  4966. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  4967. # DEBUG BEGIN_STMT
  4968. __asm__ __volatile__("dsb" : : : "memory");
  4969. # DEBUG BEGIN_STMT
  4970. __asm__ __volatile__("isb");
  4971. # DEBUG BEGIN_STMT
  4972. goto <bb 13>; [100.00%]
  4973. <bb 38> [local count: 68369]:
  4974. # DEBUG BEGIN_STMT
  4975. prvUnlockQueue (xQueue_38(D));
  4976. # DEBUG BEGIN_STMT
  4977. xTaskResumeAll ();
  4978. goto <bb 13>; [100.00%]
  4979. <bb 39> [local count: 207180]:
  4980. # DEBUG BEGIN_STMT
  4981. prvUnlockQueue (xQueue_38(D));
  4982. # DEBUG BEGIN_STMT
  4983. xTaskResumeAll ();
  4984. # DEBUG BEGIN_STMT
  4985. _20 = prvIsQueueEmpty (xQueue_38(D));
  4986. if (_20 != 0)
  4987. goto <bb 40>; [3.66%]
  4988. else
  4989. goto <bb 13>; [96.34%]
  4990. <bb 40> [local count: 7583]:
  4991. # xInheritanceOccurred_44 = PHI <xInheritanceOccurred_24(39)>
  4992. # DEBUG BEGIN_STMT
  4993. if (xInheritanceOccurred_44 != 0)
  4994. goto <bb 41>; [33.00%]
  4995. else
  4996. goto <bb 44>; [67.00%]
  4997. <bb 41> [local count: 2502]:
  4998. # DEBUG BEGIN_STMT
  4999. vPortEnterCritical ();
  5000. # DEBUG BEGIN_STMT
  5001. # DEBUG BEGIN_STMT
  5002. # DEBUG pxQueue => xQueue_38(D)
  5003. # DEBUG INLINE_ENTRY prvGetDisinheritPriorityAfterTimeout
  5004. # DEBUG BEGIN_STMT
  5005. # DEBUG BEGIN_STMT
  5006. _96 ={v} MEM[(const struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive.uxNumberOfItems;
  5007. if (_96 != 0)
  5008. goto <bb 42>; [50.00%]
  5009. else
  5010. goto <bb 43>; [50.00%]
  5011. <bb 42> [local count: 1251]:
  5012. # DEBUG BEGIN_STMT
  5013. _97 = MEM[(const struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive.xListEnd.pxNext;
  5014. _98 = _97->xItemValue;
  5015. uxHighestPriorityOfWaitingTasks_99 = 5 - _98;
  5016. # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_99
  5017. <bb 43> [local count: 2502]:
  5018. # uxHighestPriorityOfWaitingTasks_100 = PHI <0(41), uxHighestPriorityOfWaitingTasks_99(42)>
  5019. # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_100
  5020. # DEBUG BEGIN_STMT
  5021. _101 = uxHighestPriorityOfWaitingTasks_100;
  5022. # DEBUG pxQueue => NULL
  5023. # DEBUG uxHighestPriorityOfWaitingTasks => NULL
  5024. uxHighestWaitingPriority_61 = _101;
  5025. # DEBUG uxHighestWaitingPriority => uxHighestWaitingPriority_61
  5026. # DEBUG BEGIN_STMT
  5027. _21 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  5028. vTaskPriorityDisinheritAfterTimeout (_21, uxHighestWaitingPriority_61);
  5029. # DEBUG BEGIN_STMT
  5030. vPortExitCritical ();
  5031. <bb 44> [local count: 7583]:
  5032. # DEBUG BEGIN_STMT
  5033. # DEBUG BEGIN_STMT
  5034. <bb 45> [local count: 27109]:
  5035. # _27 = PHI <1(20), 0(25), 0(44)>
  5036. xTimeOut ={v} {CLOBBER};
  5037. return _27;
  5038. }
  5039. ;; Function xQueueTakeMutexRecursive (xQueueTakeMutexRecursive, funcdef_no=12, decl_uid=6379, cgraph_uid=13, symbol_order=13)
  5040. xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait)
  5041. {
  5042. uint32_t ulNewBASEPRI;
  5043. BaseType_t xReturn;
  5044. struct tskTaskControlBlock * _1;
  5045. struct tskTaskControlBlock * _2;
  5046. long unsigned int _3;
  5047. long unsigned int _4;
  5048. long unsigned int _5;
  5049. long unsigned int _6;
  5050. <bb 2> [local count: 230763]:
  5051. # DEBUG BEGIN_STMT
  5052. # DEBUG BEGIN_STMT
  5053. # DEBUG pxMutex => xMutex_9(D)
  5054. # DEBUG BEGIN_STMT
  5055. if (xMutex_9(D) == 0B)
  5056. goto <bb 3>; [46.53%]
  5057. else
  5058. goto <bb 5>; [53.47%]
  5059. <bb 3> [local count: 107374]:
  5060. # DEBUG BEGIN_STMT
  5061. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5062. # DEBUG BEGIN_STMT
  5063. # DEBUG BEGIN_STMT
  5064. __asm__ __volatile__(" mov %0, %1
  5065. msr basepri, %0
  5066. isb
  5067. dsb
  5068. " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  5069. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  5070. <bb 4> [local count: 1073741824]:
  5071. # DEBUG ulNewBASEPRI => NULL
  5072. # DEBUG BEGIN_STMT
  5073. # DEBUG BEGIN_STMT
  5074. # DEBUG BEGIN_STMT
  5075. <bb 10> [local count: 1073741824]:
  5076. goto <bb 4>; [100.00%]
  5077. <bb 5> [local count: 123389]:
  5078. # DEBUG BEGIN_STMT
  5079. # DEBUG BEGIN_STMT
  5080. # DEBUG BEGIN_STMT
  5081. _1 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.xMutexHolder;
  5082. _2 = xTaskGetCurrentTaskHandle ();
  5083. if (_1 == _2)
  5084. goto <bb 6>; [46.53%]
  5085. else
  5086. goto <bb 7>; [53.47%]
  5087. <bb 6> [local count: 57413]:
  5088. # DEBUG BEGIN_STMT
  5089. _3 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  5090. _4 = _3 + 1;
  5091. MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  5092. # DEBUG BEGIN_STMT
  5093. # DEBUG xReturn => 1
  5094. goto <bb 9>; [100.00%]
  5095. <bb 7> [local count: 65976]:
  5096. # DEBUG BEGIN_STMT
  5097. xReturn_14 = xQueueSemaphoreTake (xMutex_9(D), xTicksToWait_12(D));
  5098. # DEBUG xReturn => xReturn_14
  5099. # DEBUG BEGIN_STMT
  5100. if (xReturn_14 != 0)
  5101. goto <bb 8>; [50.00%]
  5102. else
  5103. goto <bb 9>; [50.00%]
  5104. <bb 8> [local count: 32988]:
  5105. # DEBUG BEGIN_STMT
  5106. _5 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  5107. _6 = _5 + 1;
  5108. MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _6;
  5109. <bb 9> [local count: 123389]:
  5110. # xReturn_7 = PHI <1(6), xReturn_14(7), xReturn_14(8)>
  5111. # DEBUG xReturn => xReturn_7
  5112. # DEBUG BEGIN_STMT
  5113. # DEBUG BEGIN_STMT
  5114. return xReturn_7;
  5115. }
  5116. ;; Function xQueuePeek (xQueuePeek, funcdef_no=19, decl_uid=6310, cgraph_uid=20, symbol_order=20)
  5117. xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
  5118. {
  5119. uint32_t ulNewBASEPRI;
  5120. uint32_t ulNewBASEPRI;
  5121. uint32_t ulNewBASEPRI;
  5122. const UBaseType_t uxMessagesWaiting;
  5123. int8_t * pcOriginalReadPosition;
  5124. struct TimeOut_t xTimeOut;
  5125. BaseType_t xEntryTimeSet;
  5126. long unsigned int _1;
  5127. long int _2;
  5128. long unsigned int xTicksToWait.24_3;
  5129. long unsigned int _4;
  5130. struct List_t * _5;
  5131. long int _6;
  5132. long unsigned int xTicksToWait.25_7;
  5133. signed char _8;
  5134. signed char _9;
  5135. long int _10;
  5136. long int _11;
  5137. struct List_t * _12;
  5138. long unsigned int xTicksToWait.26_13;
  5139. long int _14;
  5140. long int _15;
  5141. BaseType_t _18;
  5142. <bb 2> [local count: 357913]:
  5143. # DEBUG BEGIN_STMT
  5144. # DEBUG xEntryTimeSet => 0
  5145. # DEBUG BEGIN_STMT
  5146. # DEBUG BEGIN_STMT
  5147. # DEBUG BEGIN_STMT
  5148. # DEBUG pxQueue => xQueue_26(D)
  5149. # DEBUG BEGIN_STMT
  5150. if (xQueue_26(D) == 0B)
  5151. goto <bb 3>; [30.00%]
  5152. else
  5153. goto <bb 5>; [70.00%]
  5154. <bb 3> [local count: 107374]:
  5155. # DEBUG BEGIN_STMT
  5156. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5157. # DEBUG BEGIN_STMT
  5158. # DEBUG BEGIN_STMT
  5159. __asm__ __volatile__(" mov %0, %1
  5160. msr basepri, %0
  5161. isb
  5162. dsb
  5163. " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory");
  5164. # DEBUG ulNewBASEPRI => ulNewBASEPRI_64
  5165. <bb 4> [local count: 1073741824]:
  5166. # DEBUG ulNewBASEPRI => NULL
  5167. # DEBUG BEGIN_STMT
  5168. # DEBUG BEGIN_STMT
  5169. # DEBUG BEGIN_STMT
  5170. <bb 35> [local count: 1073741824]:
  5171. goto <bb 4>; [100.00%]
  5172. <bb 5> [local count: 250539]:
  5173. # DEBUG BEGIN_STMT
  5174. # DEBUG BEGIN_STMT
  5175. if (pvBuffer_27(D) != 0B)
  5176. goto <bb 9>; [53.47%]
  5177. else
  5178. goto <bb 6>; [46.53%]
  5179. <bb 6> [local count: 116576]:
  5180. _1 = MEM[(struct Queue_t *)xQueue_26(D)].uxItemSize;
  5181. if (_1 == 0)
  5182. goto <bb 9>; [50.00%]
  5183. else
  5184. goto <bb 7>; [50.00%]
  5185. <bb 7> [local count: 58288]:
  5186. # DEBUG BEGIN_STMT
  5187. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5188. # DEBUG BEGIN_STMT
  5189. # DEBUG BEGIN_STMT
  5190. __asm__ __volatile__(" mov %0, %1
  5191. msr basepri, %0
  5192. isb
  5193. dsb
  5194. " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory");
  5195. # DEBUG ulNewBASEPRI => ulNewBASEPRI_65
  5196. <bb 8> [local count: 582880751]:
  5197. # DEBUG ulNewBASEPRI => NULL
  5198. # DEBUG BEGIN_STMT
  5199. # DEBUG BEGIN_STMT
  5200. # DEBUG BEGIN_STMT
  5201. <bb 37> [local count: 582880751]:
  5202. goto <bb 8>; [100.00%]
  5203. <bb 9> [local count: 192251]:
  5204. # DEBUG BEGIN_STMT
  5205. # DEBUG BEGIN_STMT
  5206. _2 = xTaskGetSchedulerState ();
  5207. if (_2 != 0)
  5208. goto <bb 10>; [50.00%]
  5209. else
  5210. goto <bb 11>; [50.00%]
  5211. <bb 10> [local count: 144189]:
  5212. # xEntryTimeSet_30 = PHI <0(9), 0(11)>
  5213. goto <bb 15>; [100.00%]
  5214. <bb 11> [local count: 96126]:
  5215. xTicksToWait.24_3 = xTicksToWait;
  5216. if (xTicksToWait.24_3 == 0)
  5217. goto <bb 10>; [50.00%]
  5218. else
  5219. goto <bb 12>; [50.00%]
  5220. <bb 12> [local count: 48063]:
  5221. # DEBUG BEGIN_STMT
  5222. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5223. # DEBUG BEGIN_STMT
  5224. # DEBUG BEGIN_STMT
  5225. __asm__ __volatile__(" mov %0, %1
  5226. msr basepri, %0
  5227. isb
  5228. dsb
  5229. " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory");
  5230. # DEBUG ulNewBASEPRI => ulNewBASEPRI_66
  5231. <bb 13> [local count: 480629211]:
  5232. # DEBUG ulNewBASEPRI => NULL
  5233. # DEBUG BEGIN_STMT
  5234. # DEBUG BEGIN_STMT
  5235. # DEBUG BEGIN_STMT
  5236. <bb 36> [local count: 480629211]:
  5237. goto <bb 13>; [100.00%]
  5238. <bb 14> [local count: 1478726]:
  5239. # xEntryTimeSet_44 = PHI <xEntryTimeSet_17(33), xEntryTimeSet_17(32), xEntryTimeSet_17(31), xEntryTimeSet_17(30)>
  5240. <bb 15> [local count: 1622915]:
  5241. # xEntryTimeSet_16 = PHI <xEntryTimeSet_30(10), xEntryTimeSet_44(14)>
  5242. # DEBUG xEntryTimeSet => xEntryTimeSet_16
  5243. # DEBUG BEGIN_STMT
  5244. # DEBUG BEGIN_STMT
  5245. # DEBUG BEGIN_STMT
  5246. vPortEnterCritical ();
  5247. # DEBUG BEGIN_STMT
  5248. uxMessagesWaiting_32 ={v} MEM[(struct Queue_t *)xQueue_26(D)].uxMessagesWaiting;
  5249. # DEBUG uxMessagesWaiting => uxMessagesWaiting_32
  5250. # DEBUG BEGIN_STMT
  5251. if (uxMessagesWaiting_32 != 0)
  5252. goto <bb 16>; [3.66%]
  5253. else
  5254. goto <bb 20>; [96.34%]
  5255. <bb 16> [local count: 59399]:
  5256. # DEBUG BEGIN_STMT
  5257. pcOriginalReadPosition_55 = MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom;
  5258. # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_55
  5259. # DEBUG BEGIN_STMT
  5260. prvCopyDataFromQueue (xQueue_26(D), pvBuffer_27(D));
  5261. # DEBUG BEGIN_STMT
  5262. # DEBUG BEGIN_STMT
  5263. MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_55;
  5264. # DEBUG BEGIN_STMT
  5265. _4 ={v} MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive.uxNumberOfItems;
  5266. if (_4 != 0)
  5267. goto <bb 17>; [33.00%]
  5268. else
  5269. goto <bb 19>; [67.00%]
  5270. <bb 17> [local count: 19602]:
  5271. # DEBUG BEGIN_STMT
  5272. _5 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  5273. _6 = xTaskRemoveFromEventList (_5);
  5274. if (_6 != 0)
  5275. goto <bb 18>; [50.00%]
  5276. else
  5277. goto <bb 19>; [50.00%]
  5278. <bb 18> [local count: 9801]:
  5279. # DEBUG BEGIN_STMT
  5280. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  5281. # DEBUG BEGIN_STMT
  5282. __asm__ __volatile__("dsb" : : : "memory");
  5283. # DEBUG BEGIN_STMT
  5284. __asm__ __volatile__("isb");
  5285. # DEBUG BEGIN_STMT
  5286. <bb 19> [local count: 59399]:
  5287. # DEBUG BEGIN_STMT
  5288. # DEBUG BEGIN_STMT
  5289. vPortExitCritical ();
  5290. # DEBUG BEGIN_STMT
  5291. goto <bb 34>; [100.00%]
  5292. <bb 20> [local count: 1563516]:
  5293. # DEBUG BEGIN_STMT
  5294. xTicksToWait.25_7 = xTicksToWait;
  5295. if (xTicksToWait.25_7 == 0)
  5296. goto <bb 21>; [3.66%]
  5297. else
  5298. goto <bb 22>; [96.34%]
  5299. <bb 21> [local count: 57225]:
  5300. # DEBUG BEGIN_STMT
  5301. vPortExitCritical ();
  5302. # DEBUG BEGIN_STMT
  5303. # DEBUG BEGIN_STMT
  5304. goto <bb 34>; [100.00%]
  5305. <bb 22> [local count: 1506292]:
  5306. # DEBUG BEGIN_STMT
  5307. if (xEntryTimeSet_16 == 0)
  5308. goto <bb 23>; [33.00%]
  5309. else
  5310. goto <bb 24>; [67.00%]
  5311. <bb 23> [local count: 497076]:
  5312. # DEBUG BEGIN_STMT
  5313. vTaskInternalSetTimeOutState (&xTimeOut);
  5314. # DEBUG BEGIN_STMT
  5315. # DEBUG xEntryTimeSet => 1
  5316. <bb 24> [local count: 1506292]:
  5317. # xEntryTimeSet_17 = PHI <xEntryTimeSet_16(22), 1(23)>
  5318. # DEBUG xEntryTimeSet => xEntryTimeSet_17
  5319. # DEBUG BEGIN_STMT
  5320. # DEBUG BEGIN_STMT
  5321. vPortExitCritical ();
  5322. # DEBUG BEGIN_STMT
  5323. vTaskSuspendAll ();
  5324. # DEBUG BEGIN_STMT
  5325. vPortEnterCritical ();
  5326. # DEBUG BEGIN_STMT
  5327. _8 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cRxLock;
  5328. if (_8 == -1)
  5329. goto <bb 25>; [34.00%]
  5330. else
  5331. goto <bb 26>; [66.00%]
  5332. <bb 25> [local count: 512139]:
  5333. # DEBUG BEGIN_STMT
  5334. MEM[(struct Queue_t *)xQueue_26(D)].cRxLock ={v} 0;
  5335. <bb 26> [local count: 1506292]:
  5336. # DEBUG BEGIN_STMT
  5337. _9 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cTxLock;
  5338. if (_9 == -1)
  5339. goto <bb 27>; [34.00%]
  5340. else
  5341. goto <bb 28>; [66.00%]
  5342. <bb 27> [local count: 512139]:
  5343. # DEBUG BEGIN_STMT
  5344. MEM[(struct Queue_t *)xQueue_26(D)].cTxLock ={v} 0;
  5345. <bb 28> [local count: 1506292]:
  5346. # DEBUG BEGIN_STMT
  5347. vPortExitCritical ();
  5348. # DEBUG BEGIN_STMT
  5349. _10 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  5350. if (_10 == 0)
  5351. goto <bb 29>; [50.00%]
  5352. else
  5353. goto <bb 33>; [50.00%]
  5354. <bb 29> [local count: 753146]:
  5355. # DEBUG BEGIN_STMT
  5356. _11 = prvIsQueueEmpty (xQueue_26(D));
  5357. if (_11 != 0)
  5358. goto <bb 30>; [50.00%]
  5359. else
  5360. goto <bb 32>; [50.00%]
  5361. <bb 30> [local count: 376573]:
  5362. # DEBUG BEGIN_STMT
  5363. # DEBUG BEGIN_STMT
  5364. _12 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  5365. xTicksToWait.26_13 = xTicksToWait;
  5366. vTaskPlaceOnEventList (_12, xTicksToWait.26_13);
  5367. # DEBUG BEGIN_STMT
  5368. prvUnlockQueue (xQueue_26(D));
  5369. # DEBUG BEGIN_STMT
  5370. _14 = xTaskResumeAll ();
  5371. if (_14 == 0)
  5372. goto <bb 31>; [50.00%]
  5373. else
  5374. goto <bb 14>; [50.00%]
  5375. <bb 31> [local count: 188286]:
  5376. # DEBUG BEGIN_STMT
  5377. MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  5378. # DEBUG BEGIN_STMT
  5379. __asm__ __volatile__("dsb" : : : "memory");
  5380. # DEBUG BEGIN_STMT
  5381. __asm__ __volatile__("isb");
  5382. # DEBUG BEGIN_STMT
  5383. goto <bb 14>; [100.00%]
  5384. <bb 32> [local count: 376573]:
  5385. # DEBUG BEGIN_STMT
  5386. prvUnlockQueue (xQueue_26(D));
  5387. # DEBUG BEGIN_STMT
  5388. xTaskResumeAll ();
  5389. goto <bb 14>; [100.00%]
  5390. <bb 33> [local count: 753146]:
  5391. # DEBUG BEGIN_STMT
  5392. prvUnlockQueue (xQueue_26(D));
  5393. # DEBUG BEGIN_STMT
  5394. xTaskResumeAll ();
  5395. # DEBUG BEGIN_STMT
  5396. _15 = prvIsQueueEmpty (xQueue_26(D));
  5397. if (_15 != 0)
  5398. goto <bb 34>; [3.66%]
  5399. else
  5400. goto <bb 14>; [96.34%]
  5401. <bb 34> [local count: 144189]:
  5402. # _18 = PHI <1(19), 0(21), 0(33)>
  5403. xTimeOut ={v} {CLOBBER};
  5404. return _18;
  5405. }
  5406. ;; Function xQueueReceiveFromISR (xQueueReceiveFromISR, funcdef_no=20, decl_uid=6335, cgraph_uid=21, symbol_order=21)
  5407. xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken)
  5408. {
  5409. uint32_t ulNewBASEPRI;
  5410. uint32_t ulOriginalBASEPRI;
  5411. uint32_t ulNewBASEPRI;
  5412. uint32_t ulNewBASEPRI;
  5413. uint32_t ulNewBASEPRI;
  5414. const int8_t cRxLock;
  5415. const UBaseType_t uxMessagesWaiting;
  5416. BaseType_t xReturn;
  5417. long unsigned int _1;
  5418. long unsigned int _2;
  5419. long unsigned int _3;
  5420. struct List_t * _4;
  5421. long int _5;
  5422. unsigned char cRxLock.28_6;
  5423. unsigned char _7;
  5424. signed char _8;
  5425. <bb 2> [local count: 357913]:
  5426. # DEBUG BEGIN_STMT
  5427. # DEBUG BEGIN_STMT
  5428. # DEBUG BEGIN_STMT
  5429. # DEBUG pxQueue => xQueue_11(D)
  5430. # DEBUG BEGIN_STMT
  5431. if (xQueue_11(D) == 0B)
  5432. goto <bb 3>; [30.00%]
  5433. else
  5434. goto <bb 5>; [70.00%]
  5435. <bb 3> [local count: 107374]:
  5436. # DEBUG BEGIN_STMT
  5437. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5438. # DEBUG BEGIN_STMT
  5439. # DEBUG BEGIN_STMT
  5440. __asm__ __volatile__(" mov %0, %1
  5441. msr basepri, %0
  5442. isb
  5443. dsb
  5444. " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory");
  5445. # DEBUG ulNewBASEPRI => ulNewBASEPRI_23
  5446. <bb 4> [local count: 1073741824]:
  5447. # DEBUG ulNewBASEPRI => NULL
  5448. # DEBUG BEGIN_STMT
  5449. # DEBUG BEGIN_STMT
  5450. # DEBUG BEGIN_STMT
  5451. <bb 21> [local count: 1073741824]:
  5452. goto <bb 4>; [100.00%]
  5453. <bb 5> [local count: 250539]:
  5454. # DEBUG BEGIN_STMT
  5455. # DEBUG BEGIN_STMT
  5456. if (pvBuffer_12(D) != 0B)
  5457. goto <bb 9>; [53.47%]
  5458. else
  5459. goto <bb 6>; [46.53%]
  5460. <bb 6> [local count: 116576]:
  5461. _1 = MEM[(struct Queue_t *)xQueue_11(D)].uxItemSize;
  5462. if (_1 == 0)
  5463. goto <bb 9>; [50.00%]
  5464. else
  5465. goto <bb 7>; [50.00%]
  5466. <bb 7> [local count: 58288]:
  5467. # DEBUG BEGIN_STMT
  5468. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5469. # DEBUG BEGIN_STMT
  5470. # DEBUG BEGIN_STMT
  5471. __asm__ __volatile__(" mov %0, %1
  5472. msr basepri, %0
  5473. isb
  5474. dsb
  5475. " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory");
  5476. # DEBUG ulNewBASEPRI => ulNewBASEPRI_24
  5477. <bb 8> [local count: 582880751]:
  5478. # DEBUG ulNewBASEPRI => NULL
  5479. # DEBUG BEGIN_STMT
  5480. # DEBUG BEGIN_STMT
  5481. # DEBUG BEGIN_STMT
  5482. <bb 23> [local count: 582880751]:
  5483. goto <bb 8>; [100.00%]
  5484. <bb 9> [local count: 192251]:
  5485. # DEBUG BEGIN_STMT
  5486. # DEBUG BEGIN_STMT
  5487. vPortValidateInterruptPriority ();
  5488. # DEBUG BEGIN_STMT
  5489. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  5490. # DEBUG BEGIN_STMT
  5491. # DEBUG BEGIN_STMT
  5492. __asm__ __volatile__(" mrs %0, basepri
  5493. mov %1, %2
  5494. msr basepri, %1
  5495. isb
  5496. dsb
  5497. " : "=r" ulOriginalBASEPRI_25, "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  5498. # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  5499. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_25
  5500. # DEBUG BEGIN_STMT
  5501. # DEBUG ulNewBASEPRI => NULL
  5502. # DEBUG ulOriginalBASEPRI => NULL
  5503. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_25
  5504. # DEBUG BEGIN_STMT
  5505. uxMessagesWaiting_15 ={v} MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting;
  5506. # DEBUG uxMessagesWaiting => uxMessagesWaiting_15
  5507. # DEBUG BEGIN_STMT
  5508. if (uxMessagesWaiting_15 != 0)
  5509. goto <bb 10>; [33.00%]
  5510. else
  5511. goto <bb 20>; [67.00%]
  5512. <bb 10> [local count: 63443]:
  5513. # DEBUG BEGIN_STMT
  5514. cRxLock_16 ={v} MEM[(struct Queue_t *)xQueue_11(D)].cRxLock;
  5515. # DEBUG cRxLock => cRxLock_16
  5516. # DEBUG BEGIN_STMT
  5517. # DEBUG BEGIN_STMT
  5518. prvCopyDataFromQueue (xQueue_11(D), pvBuffer_12(D));
  5519. # DEBUG BEGIN_STMT
  5520. _2 = uxMessagesWaiting_15 + 4294967295;
  5521. MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting ={v} _2;
  5522. # DEBUG BEGIN_STMT
  5523. if (cRxLock_16 == -1)
  5524. goto <bb 11>; [34.00%]
  5525. else
  5526. goto <bb 15>; [66.00%]
  5527. <bb 11> [local count: 21571]:
  5528. # DEBUG BEGIN_STMT
  5529. _3 ={v} MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend.uxNumberOfItems;
  5530. if (_3 != 0)
  5531. goto <bb 12>; [33.00%]
  5532. else
  5533. goto <bb 20>; [67.00%]
  5534. <bb 12> [local count: 7118]:
  5535. # DEBUG BEGIN_STMT
  5536. _4 = &MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend;
  5537. _5 = xTaskRemoveFromEventList (_4);
  5538. if (_5 != 0)
  5539. goto <bb 13>; [50.00%]
  5540. else
  5541. goto <bb 20>; [50.00%]
  5542. <bb 13> [local count: 3559]:
  5543. # DEBUG BEGIN_STMT
  5544. if (pxHigherPriorityTaskWoken_21(D) != 0B)
  5545. goto <bb 14>; [70.00%]
  5546. else
  5547. goto <bb 20>; [30.00%]
  5548. <bb 14> [local count: 2491]:
  5549. # DEBUG BEGIN_STMT
  5550. *pxHigherPriorityTaskWoken_21(D) = 1;
  5551. goto <bb 20>; [100.00%]
  5552. <bb 15> [local count: 41872]:
  5553. # DEBUG BEGIN_STMT
  5554. if (cRxLock_16 == 127)
  5555. goto <bb 16>; [34.00%]
  5556. else
  5557. goto <bb 18>; [66.00%]
  5558. <bb 16> [local count: 14237]:
  5559. # DEBUG BEGIN_STMT
  5560. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5561. # DEBUG BEGIN_STMT
  5562. # DEBUG BEGIN_STMT
  5563. __asm__ __volatile__(" mov %0, %1
  5564. msr basepri, %0
  5565. isb
  5566. dsb
  5567. " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory");
  5568. # DEBUG ulNewBASEPRI => ulNewBASEPRI_27
  5569. <bb 17> [local count: 142366217]:
  5570. # DEBUG ulNewBASEPRI => NULL
  5571. # DEBUG BEGIN_STMT
  5572. # DEBUG BEGIN_STMT
  5573. # DEBUG BEGIN_STMT
  5574. <bb 22> [local count: 142366217]:
  5575. goto <bb 17>; [100.00%]
  5576. <bb 18> [local count: 27636]:
  5577. # DEBUG BEGIN_STMT
  5578. # DEBUG BEGIN_STMT
  5579. cRxLock.28_6 = (unsigned char) cRxLock_16;
  5580. _7 = cRxLock.28_6 + 1;
  5581. _8 = (signed char) _7;
  5582. MEM[(struct Queue_t *)xQueue_11(D)].cRxLock ={v} _8;
  5583. <bb 20> [local count: 178015]:
  5584. # xReturn_9 = PHI <1(18), 0(9), 1(14), 1(12), 1(13), 1(11)>
  5585. # DEBUG xReturn => xReturn_9
  5586. # DEBUG BEGIN_STMT
  5587. # DEBUG BEGIN_STMT
  5588. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_25
  5589. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  5590. # DEBUG BEGIN_STMT
  5591. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_25 : "memory");
  5592. # DEBUG ulNewMaskValue => NULL
  5593. # DEBUG BEGIN_STMT
  5594. return xReturn_9;
  5595. }
  5596. ;; Function xQueuePeekFromISR (xQueuePeekFromISR, funcdef_no=21, decl_uid=6313, cgraph_uid=22, symbol_order=22)
  5597. xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer)
  5598. {
  5599. uint32_t ulOriginalBASEPRI;
  5600. uint32_t ulNewBASEPRI;
  5601. uint32_t ulNewBASEPRI;
  5602. uint32_t ulNewBASEPRI;
  5603. uint32_t ulNewBASEPRI;
  5604. int8_t * pcOriginalReadPosition;
  5605. BaseType_t xReturn;
  5606. long unsigned int _1;
  5607. long unsigned int _2;
  5608. long unsigned int _3;
  5609. <bb 2> [local count: 269344]:
  5610. # DEBUG BEGIN_STMT
  5611. # DEBUG BEGIN_STMT
  5612. # DEBUG BEGIN_STMT
  5613. # DEBUG BEGIN_STMT
  5614. # DEBUG pxQueue => xQueue_6(D)
  5615. # DEBUG BEGIN_STMT
  5616. if (xQueue_6(D) == 0B)
  5617. goto <bb 3>; [30.00%]
  5618. else
  5619. goto <bb 5>; [70.00%]
  5620. <bb 3> [local count: 80803]:
  5621. # DEBUG BEGIN_STMT
  5622. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5623. # DEBUG BEGIN_STMT
  5624. # DEBUG BEGIN_STMT
  5625. __asm__ __volatile__(" mov %0, %1
  5626. msr basepri, %0
  5627. isb
  5628. dsb
  5629. " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory");
  5630. # DEBUG ulNewBASEPRI => ulNewBASEPRI_13
  5631. <bb 4> [local count: 808033481]:
  5632. # DEBUG ulNewBASEPRI => NULL
  5633. # DEBUG BEGIN_STMT
  5634. # DEBUG BEGIN_STMT
  5635. # DEBUG BEGIN_STMT
  5636. <bb 15> [local count: 808033481]:
  5637. goto <bb 4>; [100.00%]
  5638. <bb 5> [local count: 188541]:
  5639. # DEBUG BEGIN_STMT
  5640. # DEBUG BEGIN_STMT
  5641. if (pvBuffer_7(D) != 0B)
  5642. goto <bb 9>; [70.00%]
  5643. else
  5644. goto <bb 6>; [30.00%]
  5645. <bb 6> [local count: 56562]:
  5646. _1 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  5647. if (_1 == 0)
  5648. goto <bb 9>; [50.00%]
  5649. else
  5650. goto <bb 7>; [50.00%]
  5651. <bb 7> [local count: 28281]:
  5652. # DEBUG BEGIN_STMT
  5653. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5654. # DEBUG BEGIN_STMT
  5655. # DEBUG BEGIN_STMT
  5656. __asm__ __volatile__(" mov %0, %1
  5657. msr basepri, %0
  5658. isb
  5659. dsb
  5660. " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory");
  5661. # DEBUG ulNewBASEPRI => ulNewBASEPRI_14
  5662. <bb 8> [local count: 282811719]:
  5663. # DEBUG ulNewBASEPRI => NULL
  5664. # DEBUG BEGIN_STMT
  5665. # DEBUG BEGIN_STMT
  5666. # DEBUG BEGIN_STMT
  5667. <bb 17> [local count: 282811719]:
  5668. goto <bb 8>; [100.00%]
  5669. <bb 9> [local count: 160260]:
  5670. # DEBUG BEGIN_STMT
  5671. # DEBUG BEGIN_STMT
  5672. _2 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  5673. if (_2 == 0)
  5674. goto <bb 10>; [67.00%]
  5675. else
  5676. goto <bb 12>; [33.00%]
  5677. <bb 10> [local count: 107374]:
  5678. # DEBUG BEGIN_STMT
  5679. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5680. # DEBUG BEGIN_STMT
  5681. # DEBUG BEGIN_STMT
  5682. __asm__ __volatile__(" mov %0, %1
  5683. msr basepri, %0
  5684. isb
  5685. dsb
  5686. " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory");
  5687. # DEBUG ulNewBASEPRI => ulNewBASEPRI_15
  5688. <bb 11> [local count: 1073741824]:
  5689. # DEBUG ulNewBASEPRI => NULL
  5690. # DEBUG BEGIN_STMT
  5691. # DEBUG BEGIN_STMT
  5692. # DEBUG BEGIN_STMT
  5693. <bb 16> [local count: 1073741824]:
  5694. goto <bb 11>; [100.00%]
  5695. <bb 12> [local count: 52886]:
  5696. # DEBUG BEGIN_STMT
  5697. # DEBUG BEGIN_STMT
  5698. vPortValidateInterruptPriority ();
  5699. # DEBUG BEGIN_STMT
  5700. # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  5701. # DEBUG BEGIN_STMT
  5702. # DEBUG BEGIN_STMT
  5703. __asm__ __volatile__(" mrs %0, basepri
  5704. mov %1, %2
  5705. msr basepri, %1
  5706. isb
  5707. dsb
  5708. " : "=r" ulOriginalBASEPRI_16, "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  5709. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  5710. # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_16
  5711. # DEBUG BEGIN_STMT
  5712. # DEBUG ulNewBASEPRI => NULL
  5713. # DEBUG ulOriginalBASEPRI => NULL
  5714. # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_16
  5715. # DEBUG BEGIN_STMT
  5716. _3 ={v} MEM[(struct Queue_t *)xQueue_6(D)].uxMessagesWaiting;
  5717. if (_3 != 0)
  5718. goto <bb 13>; [33.00%]
  5719. else
  5720. goto <bb 14>; [67.00%]
  5721. <bb 13> [local count: 17452]:
  5722. # DEBUG BEGIN_STMT
  5723. # DEBUG BEGIN_STMT
  5724. pcOriginalReadPosition_10 = MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom;
  5725. # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_10
  5726. # DEBUG BEGIN_STMT
  5727. prvCopyDataFromQueue (xQueue_6(D), pvBuffer_7(D));
  5728. # DEBUG BEGIN_STMT
  5729. MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_10;
  5730. # DEBUG BEGIN_STMT
  5731. # DEBUG xReturn => 1
  5732. <bb 14> [local count: 52886]:
  5733. # xReturn_4 = PHI <1(13), 0(12)>
  5734. # DEBUG xReturn => xReturn_4
  5735. # DEBUG BEGIN_STMT
  5736. # DEBUG BEGIN_STMT
  5737. # DEBUG ulNewMaskValue => ulOriginalBASEPRI_16
  5738. # DEBUG INLINE_ENTRY vPortSetBASEPRI
  5739. # DEBUG BEGIN_STMT
  5740. __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_16 : "memory");
  5741. # DEBUG ulNewMaskValue => NULL
  5742. # DEBUG BEGIN_STMT
  5743. return xReturn_4;
  5744. }
  5745. ;; Function uxQueueMessagesWaiting (uxQueueMessagesWaiting, funcdef_no=22, decl_uid=6319, cgraph_uid=23, symbol_order=23)
  5746. uxQueueMessagesWaiting (struct QueueDefinition * const xQueue)
  5747. {
  5748. uint32_t ulNewBASEPRI;
  5749. UBaseType_t uxReturn;
  5750. <bb 2> [local count: 230763]:
  5751. # DEBUG BEGIN_STMT
  5752. # DEBUG BEGIN_STMT
  5753. if (xQueue_1(D) == 0B)
  5754. goto <bb 3>; [46.53%]
  5755. else
  5756. goto <bb 5>; [53.47%]
  5757. <bb 3> [local count: 107374]:
  5758. # DEBUG BEGIN_STMT
  5759. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5760. # DEBUG BEGIN_STMT
  5761. # DEBUG BEGIN_STMT
  5762. __asm__ __volatile__(" mov %0, %1
  5763. msr basepri, %0
  5764. isb
  5765. dsb
  5766. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  5767. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  5768. <bb 4> [local count: 1073741824]:
  5769. # DEBUG ulNewBASEPRI => NULL
  5770. # DEBUG BEGIN_STMT
  5771. # DEBUG BEGIN_STMT
  5772. # DEBUG BEGIN_STMT
  5773. <bb 6> [local count: 1073741824]:
  5774. goto <bb 4>; [100.00%]
  5775. <bb 5> [local count: 123389]:
  5776. # DEBUG BEGIN_STMT
  5777. # DEBUG BEGIN_STMT
  5778. vPortEnterCritical ();
  5779. # DEBUG BEGIN_STMT
  5780. uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  5781. # DEBUG uxReturn => uxReturn_4
  5782. # DEBUG BEGIN_STMT
  5783. vPortExitCritical ();
  5784. # DEBUG BEGIN_STMT
  5785. return uxReturn_4;
  5786. }
  5787. ;; Function uxQueueSpacesAvailable (uxQueueSpacesAvailable, funcdef_no=23, decl_uid=6321, cgraph_uid=24, symbol_order=24)
  5788. uxQueueSpacesAvailable (struct QueueDefinition * const xQueue)
  5789. {
  5790. uint32_t ulNewBASEPRI;
  5791. UBaseType_t uxReturn;
  5792. long unsigned int _1;
  5793. long unsigned int _2;
  5794. <bb 2> [local count: 230763]:
  5795. # DEBUG BEGIN_STMT
  5796. # DEBUG BEGIN_STMT
  5797. # DEBUG pxQueue => xQueue_3(D)
  5798. # DEBUG BEGIN_STMT
  5799. if (xQueue_3(D) == 0B)
  5800. goto <bb 3>; [46.53%]
  5801. else
  5802. goto <bb 5>; [53.47%]
  5803. <bb 3> [local count: 107374]:
  5804. # DEBUG BEGIN_STMT
  5805. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5806. # DEBUG BEGIN_STMT
  5807. # DEBUG BEGIN_STMT
  5808. __asm__ __volatile__(" mov %0, %1
  5809. msr basepri, %0
  5810. isb
  5811. dsb
  5812. " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory");
  5813. # DEBUG ulNewBASEPRI => ulNewBASEPRI_8
  5814. <bb 4> [local count: 1073741824]:
  5815. # DEBUG ulNewBASEPRI => NULL
  5816. # DEBUG BEGIN_STMT
  5817. # DEBUG BEGIN_STMT
  5818. # DEBUG BEGIN_STMT
  5819. <bb 6> [local count: 1073741824]:
  5820. goto <bb 4>; [100.00%]
  5821. <bb 5> [local count: 123389]:
  5822. # DEBUG BEGIN_STMT
  5823. # DEBUG BEGIN_STMT
  5824. vPortEnterCritical ();
  5825. # DEBUG BEGIN_STMT
  5826. _1 = MEM[(struct Queue_t *)xQueue_3(D)].uxLength;
  5827. _2 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  5828. uxReturn_6 = _1 - _2;
  5829. # DEBUG uxReturn => uxReturn_6
  5830. # DEBUG BEGIN_STMT
  5831. vPortExitCritical ();
  5832. # DEBUG BEGIN_STMT
  5833. return uxReturn_6;
  5834. }
  5835. ;; Function uxQueueMessagesWaitingFromISR (uxQueueMessagesWaitingFromISR, funcdef_no=24, decl_uid=6341, cgraph_uid=25, symbol_order=25)
  5836. uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue)
  5837. {
  5838. uint32_t ulNewBASEPRI;
  5839. UBaseType_t uxReturn;
  5840. <bb 2> [local count: 357913]:
  5841. # DEBUG BEGIN_STMT
  5842. # DEBUG BEGIN_STMT
  5843. # DEBUG pxQueue => xQueue_1(D)
  5844. # DEBUG BEGIN_STMT
  5845. if (xQueue_1(D) == 0B)
  5846. goto <bb 3>; [30.00%]
  5847. else
  5848. goto <bb 5>; [70.00%]
  5849. <bb 3> [local count: 107374]:
  5850. # DEBUG BEGIN_STMT
  5851. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5852. # DEBUG BEGIN_STMT
  5853. # DEBUG BEGIN_STMT
  5854. __asm__ __volatile__(" mov %0, %1
  5855. msr basepri, %0
  5856. isb
  5857. dsb
  5858. " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory");
  5859. # DEBUG ulNewBASEPRI => ulNewBASEPRI_4
  5860. <bb 4> [local count: 1073741824]:
  5861. # DEBUG ulNewBASEPRI => NULL
  5862. # DEBUG BEGIN_STMT
  5863. # DEBUG BEGIN_STMT
  5864. # DEBUG BEGIN_STMT
  5865. <bb 6> [local count: 1073741824]:
  5866. goto <bb 4>; [100.00%]
  5867. <bb 5> [local count: 250539]:
  5868. # DEBUG BEGIN_STMT
  5869. # DEBUG BEGIN_STMT
  5870. uxReturn_3 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  5871. # DEBUG uxReturn => uxReturn_3
  5872. # DEBUG BEGIN_STMT
  5873. return uxReturn_3;
  5874. }
  5875. ;; Function uxQueueGetQueueNumber (uxQueueGetQueueNumber, funcdef_no=26, decl_uid=6417, cgraph_uid=27, symbol_order=27)
  5876. uxQueueGetQueueNumber (struct QueueDefinition * xQueue)
  5877. {
  5878. UBaseType_t _3;
  5879. <bb 2> [local count: 1073741824]:
  5880. # DEBUG BEGIN_STMT
  5881. _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber;
  5882. return _3;
  5883. }
  5884. ;; Function vQueueSetQueueNumber (vQueueSetQueueNumber, funcdef_no=27, decl_uid=6415, cgraph_uid=28, symbol_order=28)
  5885. vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber)
  5886. {
  5887. <bb 2> [local count: 1073741824]:
  5888. # DEBUG BEGIN_STMT
  5889. MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D);
  5890. return;
  5891. }
  5892. ;; Function ucQueueGetQueueType (ucQueueGetQueueType, funcdef_no=28, decl_uid=6419, cgraph_uid=29, symbol_order=29)
  5893. ucQueueGetQueueType (struct QueueDefinition * xQueue)
  5894. {
  5895. uint8_t _3;
  5896. <bb 2> [local count: 1073741824]:
  5897. # DEBUG BEGIN_STMT
  5898. _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType;
  5899. return _3;
  5900. }
  5901. ;; Function xQueueIsQueueEmptyFromISR (xQueueIsQueueEmptyFromISR, funcdef_no=34, decl_uid=6337, cgraph_uid=35, symbol_order=35)
  5902. xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue)
  5903. {
  5904. uint32_t ulNewBASEPRI;
  5905. BaseType_t xReturn;
  5906. long unsigned int _1;
  5907. <bb 2> [local count: 357913]:
  5908. # DEBUG BEGIN_STMT
  5909. # DEBUG BEGIN_STMT
  5910. # DEBUG pxQueue => xQueue_3(D)
  5911. # DEBUG BEGIN_STMT
  5912. if (xQueue_3(D) == 0B)
  5913. goto <bb 3>; [30.00%]
  5914. else
  5915. goto <bb 5>; [70.00%]
  5916. <bb 3> [local count: 107374]:
  5917. # DEBUG BEGIN_STMT
  5918. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5919. # DEBUG BEGIN_STMT
  5920. # DEBUG BEGIN_STMT
  5921. __asm__ __volatile__(" mov %0, %1
  5922. msr basepri, %0
  5923. isb
  5924. dsb
  5925. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  5926. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  5927. <bb 4> [local count: 1073741824]:
  5928. # DEBUG ulNewBASEPRI => NULL
  5929. # DEBUG BEGIN_STMT
  5930. # DEBUG BEGIN_STMT
  5931. # DEBUG BEGIN_STMT
  5932. <bb 8> [local count: 1073741824]:
  5933. goto <bb 4>; [100.00%]
  5934. <bb 5> [local count: 250539]:
  5935. # DEBUG BEGIN_STMT
  5936. # DEBUG BEGIN_STMT
  5937. _1 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  5938. if (_1 == 0)
  5939. goto <bb 7>; [50.00%]
  5940. else
  5941. goto <bb 6>; [50.00%]
  5942. <bb 6> [local count: 125270]:
  5943. # DEBUG BEGIN_STMT
  5944. # DEBUG xReturn => 0
  5945. <bb 7> [local count: 250539]:
  5946. # xReturn_2 = PHI <1(5), 0(6)>
  5947. # DEBUG xReturn => xReturn_2
  5948. # DEBUG BEGIN_STMT
  5949. return xReturn_2;
  5950. }
  5951. ;; Function xQueueIsQueueFullFromISR (xQueueIsQueueFullFromISR, funcdef_no=36, decl_uid=6339, cgraph_uid=37, symbol_order=37)
  5952. xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue)
  5953. {
  5954. uint32_t ulNewBASEPRI;
  5955. BaseType_t xReturn;
  5956. long unsigned int _1;
  5957. long unsigned int _2;
  5958. <bb 2> [local count: 357913]:
  5959. # DEBUG BEGIN_STMT
  5960. # DEBUG BEGIN_STMT
  5961. # DEBUG pxQueue => xQueue_4(D)
  5962. # DEBUG BEGIN_STMT
  5963. if (xQueue_4(D) == 0B)
  5964. goto <bb 3>; [30.00%]
  5965. else
  5966. goto <bb 5>; [70.00%]
  5967. <bb 3> [local count: 107374]:
  5968. # DEBUG BEGIN_STMT
  5969. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  5970. # DEBUG BEGIN_STMT
  5971. # DEBUG BEGIN_STMT
  5972. __asm__ __volatile__(" mov %0, %1
  5973. msr basepri, %0
  5974. isb
  5975. dsb
  5976. " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory");
  5977. # DEBUG ulNewBASEPRI => ulNewBASEPRI_6
  5978. <bb 4> [local count: 1073741824]:
  5979. # DEBUG ulNewBASEPRI => NULL
  5980. # DEBUG BEGIN_STMT
  5981. # DEBUG BEGIN_STMT
  5982. # DEBUG BEGIN_STMT
  5983. <bb 8> [local count: 1073741824]:
  5984. goto <bb 4>; [100.00%]
  5985. <bb 5> [local count: 250539]:
  5986. # DEBUG BEGIN_STMT
  5987. # DEBUG BEGIN_STMT
  5988. _1 ={v} MEM[(struct Queue_t *)xQueue_4(D)].uxMessagesWaiting;
  5989. _2 = MEM[(struct Queue_t *)xQueue_4(D)].uxLength;
  5990. if (_1 == _2)
  5991. goto <bb 7>; [34.00%]
  5992. else
  5993. goto <bb 6>; [66.00%]
  5994. <bb 6> [local count: 165356]:
  5995. # DEBUG BEGIN_STMT
  5996. # DEBUG xReturn => 0
  5997. <bb 7> [local count: 250539]:
  5998. # xReturn_3 = PHI <1(5), 0(6)>
  5999. # DEBUG xReturn => xReturn_3
  6000. # DEBUG BEGIN_STMT
  6001. return xReturn_3;
  6002. }
  6003. ;; Function vQueueAddToRegistry (vQueueAddToRegistry, funcdef_no=37, decl_uid=6384, cgraph_uid=38, symbol_order=38)
  6004. vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName)
  6005. {
  6006. uint32_t ulNewBASEPRI;
  6007. struct QueueRegistryItem_t * pxEntryToWrite;
  6008. UBaseType_t ux;
  6009. struct QueueDefinition * _1;
  6010. const char * _2;
  6011. <bb 2> [local count: 357913]:
  6012. # DEBUG BEGIN_STMT
  6013. # DEBUG BEGIN_STMT
  6014. if (xQueue_8(D) == 0B)
  6015. goto <bb 3>; [30.00%]
  6016. else
  6017. goto <bb 5>; [70.00%]
  6018. <bb 3> [local count: 107374]:
  6019. # DEBUG BEGIN_STMT
  6020. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6021. # DEBUG BEGIN_STMT
  6022. # DEBUG BEGIN_STMT
  6023. __asm__ __volatile__(" mov %0, %1
  6024. msr basepri, %0
  6025. isb
  6026. dsb
  6027. " : "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  6028. # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  6029. <bb 4> [local count: 1073741824]:
  6030. # DEBUG ulNewBASEPRI => NULL
  6031. # DEBUG BEGIN_STMT
  6032. # DEBUG BEGIN_STMT
  6033. # DEBUG BEGIN_STMT
  6034. <bb 17> [local count: 1073741824]:
  6035. goto <bb 4>; [100.00%]
  6036. <bb 5> [local count: 250539]:
  6037. # DEBUG BEGIN_STMT
  6038. # DEBUG BEGIN_STMT
  6039. # DEBUG pxEntryToWrite => 0B
  6040. # DEBUG BEGIN_STMT
  6041. if (pcQueueName_10(D) != 0B)
  6042. goto <bb 16>; [70.00%]
  6043. else
  6044. goto <bb 15>; [30.00%]
  6045. <bb 16> [local count: 175378]:
  6046. goto <bb 12>; [100.00%]
  6047. <bb 6> [local count: 316038]:
  6048. # DEBUG BEGIN_STMT
  6049. _1 = xQueueRegistry[ux_3].xHandle;
  6050. if (_1 == xQueue_8(D))
  6051. goto <bb 7>; [5.50%]
  6052. else
  6053. goto <bb 8>; [94.50%]
  6054. <bb 7> [local count: 17382]:
  6055. # ux_9 = PHI <ux_3(6)>
  6056. # DEBUG BEGIN_STMT
  6057. pxEntryToWrite_14 = &xQueueRegistry[ux_9];
  6058. # DEBUG pxEntryToWrite => pxEntryToWrite_14
  6059. # DEBUG BEGIN_STMT
  6060. goto <bb 13>; [100.00%]
  6061. <bb 8> [local count: 298656]:
  6062. # DEBUG BEGIN_STMT
  6063. if (pxEntryToWrite_5 == 0B)
  6064. goto <bb 9>; [30.00%]
  6065. else
  6066. goto <bb 11>; [70.00%]
  6067. <bb 9> [local count: 89597]:
  6068. _2 = xQueueRegistry[ux_3].pcQueueName;
  6069. if (_2 == 0B)
  6070. goto <bb 10>; [30.00%]
  6071. else
  6072. goto <bb 11>; [70.00%]
  6073. <bb 10> [local count: 26879]:
  6074. # DEBUG BEGIN_STMT
  6075. pxEntryToWrite_12 = &xQueueRegistry[ux_3];
  6076. # DEBUG pxEntryToWrite => pxEntryToWrite_12
  6077. <bb 11> [local count: 298656]:
  6078. # pxEntryToWrite_4 = PHI <pxEntryToWrite_5(8), 0B(9), pxEntryToWrite_12(10)>
  6079. # DEBUG pxEntryToWrite => pxEntryToWrite_4
  6080. # DEBUG BEGIN_STMT
  6081. # DEBUG BEGIN_STMT
  6082. ux_13 = ux_3 + 1;
  6083. # DEBUG ux => ux_13
  6084. <bb 12> [local count: 474034]:
  6085. # ux_3 = PHI <ux_13(11), 0(16)>
  6086. # pxEntryToWrite_5 = PHI <pxEntryToWrite_4(11), 0B(16)>
  6087. # DEBUG pxEntryToWrite => pxEntryToWrite_5
  6088. # DEBUG ux => ux_3
  6089. # DEBUG BEGIN_STMT
  6090. if (ux_3 != 2)
  6091. goto <bb 6>; [66.67%]
  6092. else
  6093. goto <bb 13>; [33.33%]
  6094. <bb 13> [local count: 175378]:
  6095. # pxEntryToWrite_6 = PHI <pxEntryToWrite_5(12), pxEntryToWrite_14(7)>
  6096. # DEBUG pxEntryToWrite => pxEntryToWrite_6
  6097. # DEBUG BEGIN_STMT
  6098. if (pxEntryToWrite_6 != 0B)
  6099. goto <bb 14>; [70.00%]
  6100. else
  6101. goto <bb 15>; [30.00%]
  6102. <bb 14> [local count: 122764]:
  6103. # DEBUG BEGIN_STMT
  6104. pxEntryToWrite_6->pcQueueName = pcQueueName_10(D);
  6105. # DEBUG BEGIN_STMT
  6106. pxEntryToWrite_6->xHandle = xQueue_8(D);
  6107. <bb 15> [local count: 250539]:
  6108. # DEBUG pxEntryToWrite => NULL
  6109. # DEBUG BEGIN_STMT
  6110. return;
  6111. }
  6112. ;; Function pcQueueGetName (pcQueueGetName, funcdef_no=38, decl_uid=6388, cgraph_uid=39, symbol_order=39)
  6113. pcQueueGetName (struct QueueDefinition * xQueue)
  6114. {
  6115. uint32_t ulNewBASEPRI;
  6116. const char * pcReturn;
  6117. UBaseType_t ux;
  6118. struct QueueDefinition * _1;
  6119. <bb 2> [local count: 357913]:
  6120. # DEBUG BEGIN_STMT
  6121. # DEBUG BEGIN_STMT
  6122. # DEBUG pcReturn => 0B
  6123. # DEBUG BEGIN_STMT
  6124. if (xQueue_5(D) == 0B)
  6125. goto <bb 3>; [30.00%]
  6126. else
  6127. goto <bb 10>; [70.00%]
  6128. <bb 10> [local count: 250539]:
  6129. goto <bb 8>; [100.00%]
  6130. <bb 3> [local count: 107374]:
  6131. # DEBUG BEGIN_STMT
  6132. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6133. # DEBUG BEGIN_STMT
  6134. # DEBUG BEGIN_STMT
  6135. __asm__ __volatile__(" mov %0, %1
  6136. msr basepri, %0
  6137. isb
  6138. dsb
  6139. " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory");
  6140. # DEBUG ulNewBASEPRI => ulNewBASEPRI_9
  6141. <bb 4> [local count: 1073741824]:
  6142. # DEBUG ulNewBASEPRI => NULL
  6143. # DEBUG BEGIN_STMT
  6144. # DEBUG BEGIN_STMT
  6145. # DEBUG BEGIN_STMT
  6146. <bb 11> [local count: 1073741824]:
  6147. goto <bb 4>; [100.00%]
  6148. <bb 5> [local count: 451483]:
  6149. # DEBUG BEGIN_STMT
  6150. _1 = xQueueRegistry[ux_2].xHandle;
  6151. if (_1 == xQueue_5(D))
  6152. goto <bb 6>; [5.50%]
  6153. else
  6154. goto <bb 7>; [94.50%]
  6155. <bb 6> [local count: 24832]:
  6156. # ux_4 = PHI <ux_2(5)>
  6157. # DEBUG BEGIN_STMT
  6158. pcReturn_8 = xQueueRegistry[ux_4].pcQueueName;
  6159. # DEBUG pcReturn => pcReturn_8
  6160. # DEBUG BEGIN_STMT
  6161. goto <bb 9>; [100.00%]
  6162. <bb 7> [local count: 426652]:
  6163. # DEBUG BEGIN_STMT
  6164. # DEBUG BEGIN_STMT
  6165. ux_7 = ux_2 + 1;
  6166. # DEBUG ux => ux_7
  6167. <bb 8> [local count: 677191]:
  6168. # ux_2 = PHI <ux_7(7), 0(10)>
  6169. # DEBUG ux => ux_2
  6170. # DEBUG BEGIN_STMT
  6171. if (ux_2 != 2)
  6172. goto <bb 5>; [66.67%]
  6173. else
  6174. goto <bb 9>; [33.33%]
  6175. <bb 9> [local count: 250539]:
  6176. # pcReturn_3 = PHI <pcReturn_8(6), 0B(8)>
  6177. # DEBUG pcReturn => pcReturn_3
  6178. # DEBUG BEGIN_STMT
  6179. return pcReturn_3;
  6180. }
  6181. ;; Function vQueueUnregisterQueue (vQueueUnregisterQueue, funcdef_no=39, decl_uid=6386, cgraph_uid=40, symbol_order=40)
  6182. Removing basic block 10
  6183. Symbols to be put in SSA form
  6184. { D.7309 }
  6185. Incremental SSA update started at block: 0
  6186. Number of blocks in CFG: 15
  6187. Number of blocks to update: 13 ( 87%)
  6188. Removing basic block 3
  6189. Removing basic block 9
  6190. Removing basic block 11
  6191. Merging blocks 13 and 14
  6192. ;; 4 loops found
  6193. ;;
  6194. ;; Loop 0
  6195. ;; header 0, latch 1
  6196. ;; depth 0, outer -1
  6197. ;; nodes: 0 1 2 3 4 5 6 7 8 9
  6198. ;;
  6199. ;; Loop 3
  6200. ;; header 4, latch 4
  6201. ;; depth 1, outer 0
  6202. ;; nodes: 4
  6203. ;;
  6204. ;; Loop 1
  6205. ;; header 8, latch 7
  6206. ;; depth 1, outer 0
  6207. ;; nodes: 8 7 5
  6208. ;; 2 succs { 3 8 }
  6209. ;; 3 succs { 4 }
  6210. ;; 4 succs { 4 }
  6211. ;; 5 succs { 6 7 }
  6212. ;; 6 succs { 9 }
  6213. ;; 7 succs { 8 }
  6214. ;; 8 succs { 5 9 }
  6215. ;; 9 succs { 1 }
  6216. vQueueUnregisterQueue (struct QueueDefinition * xQueue)
  6217. {
  6218. uint32_t ulNewBASEPRI;
  6219. UBaseType_t ux;
  6220. struct QueueDefinition * _1;
  6221. <bb 2> [local count: 357913]:
  6222. # DEBUG BEGIN_STMT
  6223. # DEBUG BEGIN_STMT
  6224. if (xQueue_3(D) == 0B)
  6225. goto <bb 3>; [30.00%]
  6226. else
  6227. goto <bb 8>; [70.00%]
  6228. <bb 3> [local count: 107374]:
  6229. # DEBUG D#1 => xQueue_3(D)
  6230. # DEBUG INLINE_ENTRY vQueueUnregisterQueue
  6231. # DEBUG D#2 => D#1
  6232. # DEBUG xQueue => D#2
  6233. # DEBUG BEGIN_STMT
  6234. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6235. # DEBUG BEGIN_STMT
  6236. # DEBUG BEGIN_STMT
  6237. __asm__ __volatile__(" mov %0, %1
  6238. msr basepri, %0
  6239. isb
  6240. dsb
  6241. " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory");
  6242. # DEBUG ulNewBASEPRI => ulNewBASEPRI_11
  6243. <bb 4> [local count: 1073741824]:
  6244. # DEBUG ulNewBASEPRI => NULL
  6245. # DEBUG BEGIN_STMT
  6246. # DEBUG BEGIN_STMT
  6247. # DEBUG BEGIN_STMT
  6248. goto <bb 4>; [100.00%]
  6249. <bb 5> [local count: 451483]:
  6250. # DEBUG BEGIN_STMT
  6251. _1 = xQueueRegistry[ux_2].xHandle;
  6252. if (_1 == xQueue_3(D))
  6253. goto <bb 6>; [5.50%]
  6254. else
  6255. goto <bb 7>; [94.50%]
  6256. <bb 6> [local count: 24832]:
  6257. # ux_4 = PHI <ux_2(5)>
  6258. # DEBUG BEGIN_STMT
  6259. xQueueRegistry[ux_4].pcQueueName = 0B;
  6260. # DEBUG BEGIN_STMT
  6261. xQueueRegistry[ux_4].xHandle = 0B;
  6262. # DEBUG BEGIN_STMT
  6263. goto <bb 9>; [100.00%]
  6264. <bb 7> [local count: 426652]:
  6265. # DEBUG BEGIN_STMT
  6266. # DEBUG BEGIN_STMT
  6267. ux_6 = ux_2 + 1;
  6268. # DEBUG ux => ux_6
  6269. <bb 8> [local count: 677191]:
  6270. # ux_2 = PHI <ux_6(7), 0(2)>
  6271. # DEBUG ux => ux_2
  6272. # DEBUG BEGIN_STMT
  6273. if (ux_2 != 2)
  6274. goto <bb 5>; [66.67%]
  6275. else
  6276. goto <bb 9>; [33.33%]
  6277. <bb 9> [local count: 250539]:
  6278. return;
  6279. }
  6280. ;; Function vQueueDelete (vQueueDelete, funcdef_no=25, decl_uid=6323, cgraph_uid=26, symbol_order=26)
  6281. vQueueDelete (struct QueueDefinition * xQueue)
  6282. {
  6283. uint32_t ulNewBASEPRI;
  6284. <bb 2> [local count: 230763]:
  6285. # DEBUG BEGIN_STMT
  6286. # DEBUG pxQueue => xQueue_1(D)
  6287. # DEBUG BEGIN_STMT
  6288. if (xQueue_1(D) == 0B)
  6289. goto <bb 3>; [46.53%]
  6290. else
  6291. goto <bb 5>; [53.47%]
  6292. <bb 3> [local count: 107374]:
  6293. # DEBUG BEGIN_STMT
  6294. # DEBUG INLINE_ENTRY vPortRaiseBASEPRI
  6295. # DEBUG BEGIN_STMT
  6296. # DEBUG BEGIN_STMT
  6297. __asm__ __volatile__(" mov %0, %1
  6298. msr basepri, %0
  6299. isb
  6300. dsb
  6301. " : "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  6302. # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  6303. <bb 4> [local count: 1073741824]:
  6304. # DEBUG ulNewBASEPRI => NULL
  6305. # DEBUG BEGIN_STMT
  6306. # DEBUG BEGIN_STMT
  6307. # DEBUG BEGIN_STMT
  6308. <bb 6> [local count: 1073741824]:
  6309. goto <bb 4>; [100.00%]
  6310. <bb 5> [local count: 123389]:
  6311. # DEBUG BEGIN_STMT
  6312. # DEBUG BEGIN_STMT
  6313. # DEBUG BEGIN_STMT
  6314. vQueueUnregisterQueue (xQueue_1(D));
  6315. # DEBUG BEGIN_STMT
  6316. vPortFree (xQueue_1(D));
  6317. return;
  6318. }
  6319. ;; Function vQueueWaitForMessageRestricted (vQueueWaitForMessageRestricted, funcdef_no=40, decl_uid=6409, cgraph_uid=41, symbol_order=41)
  6320. vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
  6321. {
  6322. signed char _1;
  6323. signed char _2;
  6324. long unsigned int _3;
  6325. struct List_t * _4;
  6326. <bb 2> [local count: 1073741824]:
  6327. # DEBUG BEGIN_STMT
  6328. # DEBUG pxQueue => xQueue_8(D)
  6329. # DEBUG BEGIN_STMT
  6330. vPortEnterCritical ();
  6331. # DEBUG BEGIN_STMT
  6332. _1 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cRxLock;
  6333. if (_1 == -1)
  6334. goto <bb 3>; [34.00%]
  6335. else
  6336. goto <bb 4>; [66.00%]
  6337. <bb 3> [local count: 365072220]:
  6338. # DEBUG BEGIN_STMT
  6339. MEM[(struct Queue_t *)xQueue_8(D)].cRxLock ={v} 0;
  6340. <bb 4> [local count: 1073741824]:
  6341. # DEBUG BEGIN_STMT
  6342. _2 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cTxLock;
  6343. if (_2 == -1)
  6344. goto <bb 5>; [34.00%]
  6345. else
  6346. goto <bb 6>; [66.00%]
  6347. <bb 5> [local count: 365072220]:
  6348. # DEBUG BEGIN_STMT
  6349. MEM[(struct Queue_t *)xQueue_8(D)].cTxLock ={v} 0;
  6350. <bb 6> [local count: 1073741824]:
  6351. # DEBUG BEGIN_STMT
  6352. vPortExitCritical ();
  6353. # DEBUG BEGIN_STMT
  6354. _3 ={v} MEM[(struct Queue_t *)xQueue_8(D)].uxMessagesWaiting;
  6355. if (_3 == 0)
  6356. goto <bb 7>; [33.00%]
  6357. else
  6358. goto <bb 8>; [67.00%]
  6359. <bb 7> [local count: 354334802]:
  6360. # DEBUG BEGIN_STMT
  6361. _4 = &MEM[(struct Queue_t *)xQueue_8(D)].xTasksWaitingToReceive;
  6362. vTaskPlaceOnEventListRestricted (_4, xTicksToWait_14(D), xWaitIndefinitely_15(D));
  6363. <bb 8> [local count: 1073741824]:
  6364. # DEBUG BEGIN_STMT
  6365. # DEBUG BEGIN_STMT
  6366. prvUnlockQueue (xQueue_8(D));
  6367. return;
  6368. }