C Compilers
We provide the following services related to compiler:
-
Development of optimizing "C / C++" compiler
We have developed compilers for 8-bit RISC micro-controller, 16-bit RISC micro-controller, 32-bit MIPS processor with 16 & 32 bit modes and 16-bit fixed point DSP. We posses the skills required to develop compilers for complex processor architectures. The compilers we develop are tailor-made to customer requirements. We support a variety of command-line options, support architecture specific functionalities like pragmas and interrupts, mixed language programming (assembly with C/C++), listing files as required, intermediate language listing, standard and architecture specific optimizations.
We have a streamlined development process which helps to identify defects in early stages of development. Our development process and emphasis on documentation ensures that the code is easy to maintain. We have a vast and effective test base apart from the standard test suites (like Perenial & Plum hall) which ensures quality validation of the compilers. We also use QA tools like Numega Dev Partner Studio & QAC.
-
Porting compilers to another architecture / platform
We can port compilers for one architecture to architecture. Such requirements usually involve adding additional targets to the compiler. Our compiler development expertise helps us understand the existing implementation and port the compilers.
We can also port compilers developed for one platform to another platform. (e.g.) We can port a compiler developed for Windows to Linux. Since we had done porting of the compilers we had developed, we understand how to identify non-portable fragments of code that could result is difference in behavior across different platforms.
-
Validation of compilers
We understand the finer details of compiler validation through the compiler projects we had done. We have a proprietary compiler regression system, which runs the compiler tests simultaneously on multiple machines. Our test base includes the following tests:
- acmet generated test programs - This includes
- Test programs to test each feature / optimization
- Test programs developed to validate fix to defects
- Application programs developed at acmet
- Standard test suites
- Perennial
- Plum hall
- GCC test vectors
The typical validation tasks we take up include the following:
- Identifying defects in compiler & defect reporting. Both black box and white box tests
- Test case generation
- Evaluation of optimizations
- Analysis of assembly generate by compilers to identify code improvements / to identify defects
- Our in-depth understanding of compiler internals makes our compiler validation more effective
-
Development / optimization of emulation libraries
We can develop emulation libraries for float / double / long for compilers in case the architecture does not support these data types. Emulation libraries have stringent code size, execution performance and precision requirements. We had developed emulation libraries for different architectures. We understand floating point formats, optimal method of implementing floating point operations and testing of emulation libraries. We have effective test base to test emulation libraries.
-
Evaluation of libraries for code size and performance
We can take up evaluation of libraries for code size and performance. Such an evaluation is usually done before a library is deployed as a part of a compiler package. Since the performance of libraries directly affect the performance of target applications, it is important for libraries to be optimal. We can perform evaluation of library functions with different range of inputs to identify performance bottlenecks.
We can also take up other specific requirements related to compilers.
Related Topics:
Compiler related projects we had done so far are the following: |