IMEC has developed a new programming style for C code called CleanC that substantially increases the parallelization and optimization potential for multiprocessor targets. The announcement was made at the Design, Automation, & Test conference.
IMEC is developing multi-processor system-on-a-chip (SOC) design tools to efficiently distribute applications over multiple processors while taking care of the synchronization of the tasks and the exchange of data between tasks. To allow MPSoC design tools to fully unravel the intricacies of the application being analyzed, a number of restrictions are imposed on how the application is coded using the ANSI-C language. Therefore, the input code has to be written in CleanC, which is sequential C code written in a way that it is multiprocessor-friendly.
To enable software developers the ability to write suitable code, IMEC is developing a code re-factoring toolbox. First, the application code is analyzed and violations of the CleanC programming style are flagged. To this end, CleanC adherence analysis plug-ins have been developed. Secondly, user guided code transformations are applied to the code to make it compliant to the CleanC programming style. To optimize this process, IMEC is currently developing interactive refactoring tools.
IMEC provides its CleanC adherence analysis plug-ins to the industry for free. The CleanC tool is a plug-in for the Eclipse/CDT development environment for C and C++ applications. It extracts and visualizes the function call graph. The highly interactive CleanC environment allows for detection of fragments in sequential C code that are potentially hard to analyze by the MPSoC design tools and would lead to suboptimal solutions.