13.07.2015 Views

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Using the C CompilerMIL splitting (option --mil-split)When you specify that the C compiler has to use MIL splitting, the C compiler will first link the applicationat MIL level as described above. However, after rerunning the optimizations the MIL code is not passedon to the backend. Instead the frontend writes a .ms file <strong>for</strong> each input module. A .ms file has the same<strong>for</strong>mat as a .mil file. Only .ms files that really change are updated. The advantage of this approach isthat it is possible to use the make utility to translate only those parts of the application to a .src file thatreally have changed. MIL splitting is there<strong>for</strong>e a more efficient build process than MIL linking. The penalty<strong>for</strong> this is that the code compaction optimization in the backend does not have application scope. As withMIL linking, it is still required to link with the normal libraries to build an ELF file.To read more about how MIL linking influences the build process of your application, see Section 4.6,Influencing the Build Time.4.5.2. Core Specific Optimizations (backend)Coalescer (option -Oa/-OA)The coalescer seeks <strong>for</strong> possibilities to reduce the number of moves (MOV instruction) by smart use ofregisters. This optimizes both speed and code size.Interprocedural register optimization (option -Ob/-OB)Register allocation is improved by taking note of register usage in functions called by a given function.155

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!