Compiler Tool Chain Support
Modern open source compiler tool chains such as GCC and LLVM comprise around 10 million lines of code, and are very actively developed, with new features and functionality being added. Embecosm will do the following:
- roll forward your tool chain to the latest official upstream code base to ensure you support the newest features;
- provide regular tested releases, typically on a 3-, 6- or 12-month cycle;
- add further features and optimizations specific to your architecture;
- fix bugs that you and your users encounter; and
- provide a skilled engineering single point of contact for all your issues.
We encourage our customers to contribute any changes and fixes back to the official release, to ensure they become a permanent part of the official tool chain. This avoids any risk of needing a reimplementation when the tool chain is rolled forward.
Support for Open Source EDA Tools
Free and open source tools are increasingly used in silicon chip front end design, but lack of guaranteed support can be a risk. Embecosm can provide support for tools such as Verilator, GTKwave and Icarus Verilog, complementing and supplementing the efforts of the community. This can include:
- customization, such as adding symbolic instruction decoding for GTKwave;
- extensions, such as adding new language feature support to Verilator or Icarus Verilog; and
- bug fixing.
Professional support from Embecosm reduces the risk of adopting open source technology for silicon chip design.
Introduction of Code Into Official Distributions
Having a compiler implementation accepted into the official code distribution offers two main advantages. First of all by becoming part of the code base, it helps ensure your architecture will continue to be support, and there are far less likely to be changes to the code base that will cause problems. Secondly it provides an informal badge of competence for your compiler implementation—upstream distributions will not accept incomplete or buggy compilers.
Acceptance upstream requires recognition of the competence of the team making the contribution, something Embecosm has already demonstrated as official maintainer of two GCC architectures. In the case of GNU tools it also requires legal agreements with the Free Software Foundation, something which Embecosm has in place.
Upstream acceptance can never be guaranteed, since it requires the wider community to agree. However Embecosm has the track record to work with the community to achieve that acceptance.
Embecosm is not primarily a training organization. However as an open source business, we see sharing our expertise as a core value. We provide training in a number of ways:
- running knowledge sharing seminars and workshops, where we work with experienced customer engineers to share our expertise in aspects of tool porting and support;
- integrating customer team members within the Embecosm team to train up in-house tool chain support staff; and
- organizing industry conferences to bring together experts from around the wold.
Of these, integrating customer staff within the team during compiler tool chain porting is something we do for almost all our customers. It helps the customer have a really good handle on the project as it progresses, and longer term means first line support can be provided in-house.