The currently released version of the optimizer is 2.0.24 - this may be verified by issuing the following command:
Current release of the optimizer capable of processing assembly files
and generating assembly output for targets supporting
Currently the optimizer is provided as a 64-bit executable for a
x86 Linux OS; the experimental version of the product for x86 64-bit Windows OS is also provided.
- conditional move CMOVcc
- SSE, SSE2, SSE3 and SSE4
dco is designed to work with gcc C and Fortran compilers on Linux
or port of the gcc C and Fortran compilers on Windows ( e.g. mingw-w64 );
these compilers generate an assembly output of the compiled code - the way it is achieved is by specifying option during compilation.
While in 64-bit mode on Linux, dco was verified to work with the clang compiler version 9.0.1 - in the current version
of the dco we provide support for the clang as "experimental".
gcc versions 6 and later are recommended for use with the current version of dco.
Current release of the optimizer is capable to optimize only programs
to be linked in the lower 2GB of the address space; this corresponds
to gcc compiler options or . Programs that
don't satisfy this requirement ( e.g. compiled with the compiler option )
shall not be optimized by dco.
users manual can be found here.
on how to incorporate the optimizer with a compiler.
Contact us to
get assistance with questions related to the installation or usage of dco.
The product is provided only for a x86 Linux OS and x86 64 bit Windows OS.
Optimizer uses temporary files stored in the directory
specified by the following environment variable ( in the order listed ):
- Download the product dco.zip
- Uncompress the package with the following command:
the files extracted are:
Move the ( extracted ) files -
dco and dcoas on Linux,
dco.exe and dcoas.exe on Windows -
into a location(s) accessible for execution - part of the PATH environment variable - e.g.
/usr/local/bin on Linux.
Ensure that they have permission to be executed.
If none of this environment variables is specified, the temporary files
are stored in the directory from where the optimizer was invoked.
Ensure that you have write/read access to the directory
where the temporary files will be stored.
The version of the optimizer for the x86 64 bit Windows OS requires certain environment ( e.g. DLL's ) to be present.
Installing mingw-w64 provides all what is necessary ( although there are other ways to satisfy these requirements ).
To uninstall the product, remove installed files from the locations
they were copied to.
users manual is installed here.
on how to incorporated the optimizer with a compiler.
You can read a summary of optimizers options from the command
line by invoking the optimizer with the
The following is an example on how to use the optimizer.
To generated the dco
optimized object file source_file.o
from a C
language source file source_file.c,
use the following commands:
gcc -S -O2 -fomit-frame-pointer -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables \
-ffast-math -march=x86-64 -m64 -mfpmath=sse -msse2 -msse3 \
-fno-optimize-sibling-calls -freorder-blocks-algorithm=simple \
dco -i source_file.s -o osource_file.s
gcc -c -o source_file.o osource_file.s
rm osource_file.s source_file.s
We assume no responsibility or liability for any errors or
inaccuracies that may appear in this document or any software that may
be provided in association with this document.
WE ASSUME NO LIABILITY WHATSOEVER, AND DISCLAIM ANY
IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF OUR PRODUCTS INCLUDING
LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER
INTELLECTUAL PROPERTY RIGHT. Our products are not intended for use in
medical, life saving, life sustaining, critical control or safety
systems, or in nuclear facility applications.
The software described in this document may contain software
defects which may cause it to deviate from expected behaviour.
Copyright © 1992-2020, Dalsoft.