Realtidssystem har blivit allestädes närvarande. För denna klass av system innebär korrekthet inte bara att man producerar rätt resultat, utan också att man gör det inom angivna tidsramar. Designers är skyldiga att få den värsta fall utförande tid (WCET) av sina system för att garantera att alla applikationer uppfyller sina tidsbegränsningar. Många WCET-uppskattningsmetoder har föreslagits. De fungerar genom statisk kodanalys, mätningar eller en kombination av båda. Sådana metoder ger en övre gräns för den tid som krävs för att utföra en given uppgift på en given maskinvaruplattform. För att vara till nytta måste WCET:s uppskattningar vara så snäva som möjligt. Information om möjliga flöden av kontroll (den så kallade flödesinformationen) förbättrar tätheten i WCET:s uppskattningar. Flödesinformation, ska den produceras automatiskt eller infogas manuellt från annoteringar, vanligtvis infogas på källkodsnivå. Å andra sidan utförs WCET-analys på maskinkodsnivå. Mellan dessa två nivåer, kompilator optimeringar kan ha en dramatisk effekt på strukturen av koden, vilket resulterar i en förlust av användbar information. Därför stänger många WCET-verktyg för realtidssystem av kompilatoroptimeringar när man beräknar WCET. I detta dokument föreslår vi ett ramverk för att spåra och underhålla flödesinformation från källkod till maskinkod för att dra nytta av optimeringar, men ändå förbättra WCET-skattningarna. Vår implementering i LLVM-kompilatorn visar att vi i genomsnitt kan förbättra WCET i Mälardalen med 60 % och upp till 86 %. Vi ger också ny insikt om effekten av befintliga optimeringar på WCET.
Slutligen ger det ramverk REF som föreslogs av Li et al., som låg till grund för detta papper, en metod för att spåra och underhålla flödesinformation från källkod till maskinkod även med kompilatoroptimering.
Traceability of Flow Information: Reconciling Compiler Optimizations and WCET Estimation
{'venue': "RTNS '14", 'journal': None, 'mag_field_of_study': ['Computer Science']}