|
We conceived and developed a code
optimization technology
that was successfully applied to a variety of different hardware
architectures and shown consistent great superiority over all existing
compilers.
The modern DSP's/CPU's require a tight interface
between
compiler and hardware architecture in order to achieve high utilization
of the available resources. Compilers have not shown the ability to
meet the needs of programmers on critical code. As architecture scales
up, it is becoming so complex that human programmers can't deal with
the scheduling and tracking of so many registers, execution units and
cores.
The result may be an architecture that can't be programmed to apply
most of its resources on real-life algorithms.
To address this problem we developed the Dalsoft Code Optimizer ( dco
) - an optimizing code system for the Digital Signal Processor(s) or
CPU ( referred as target ). This is a retargetable software
package specifically designed to optimize the code of the target by
taking FULL ADVANTAGE of the options and features
provided by
the target microprocessor.
The dco is used to optimize code generated by a
compiler. The
programmer uses a compiler (C/C++, FORTRAN etc.) to translate his code
into targets assembly code. This code is used as an input to dco.
The output, generated by the dco, is a highly
optimized
target's assembly code that is logically identical to the original one;
dco is rearranging the existing code,
performing multi-issue
optimization, loop
unrolling, vectorization,
and auto-parallelization
reassigning available registers, etc. To create a final object file the
generated code should be assembled.
Note that dco does not require preprocessing or any
other
involvement from the user. It is fully automated and it is possible to
incorporate dco into makefiles or other product
generation
tools.
The use of dco will greatly
improve the quality
of the generated code. It, therefore, may prove to be a vital
contribution to the production of a winning solution for your Digital
Signal Processor(s) or CPU.
|