Code Development Flow To Increase Performance
1-5
Introduction
The following table lists the phases in the 3-step software development flow
shown on the previous page, and the goal for each phase:
Phase
Goal
1
You can develop your C code for phase 1 without any knowledge of
the ’C6000. Use the ’C6000 profiling tools that are described in the
Code Composer Studio User’s Guide to identify any inefficient areas
that you might have in your C code. To improve the performance of
your code, proceed to phase 2.
2
Use techniques described in this book to improve your C code. Use
the ’C6000 profiling tools to check its performance. If your code is
still not as efficient as you would like it to be, proceed to phase 3.
3
Extract the time-critical areas from your C code and rewrite the code
in linear assembly. You can use the assembly optimizer to optimize
this code.
Because most of the millions of instructions per second (MIPS) in DSP applica-
tions occur in tight loops, it is important for the ’C6000 code generation tools
to make maximal use of all the hardware resources in important loops. Fortu-
nately, loops inherently have more parallelism than non-looping code because
there are multiple iterations of the same code executing with limited depen-
dencies between each iteration. Through a technique called software pipelin-
ing, the ’C6000 code generation tools use the multiple resources of the Veloci-
TI architecture efficiently and obtain very high performance.
This chapter shows the code development flow recommended to achieve the
highest performance on loops and provides a feedback list that can be used
to optimize loops with references to more detailed documentation.