WCET optimizations


I want to add some WCET optimizations into LLVM. Is it possible? Is there any existing work to follow? Or some advices?



Dear Chao,

Yes, you can use LLVM to transform code to improve its Worse Case Execution Time (WCET). I was involved in the PREM project that used a combination of LLVM and special hardware to reduce WCET by storing the data needed by a computation in the cache so that the bus could be used exclusively for I/O (http://dl.acm.org/citation.cfm?id=1989765.1990504&coll=DL&dl=GUIDE). I suspect there are other transforms that can improve WCET, but since I know nothing about them, you'll have to read up on them on your own.

As for including your changes into the LLVM distribution, that has a higher bar for entry. Whatever transforms you write to improve WCET will need to be usable by others, and you'll need someone committed to maintaining the transforms long term (which usually means having enough users interested in using your transforms that it's worth making a long term maintenance commitment).


John Criswell