Wind River Diab Compiler Product Overview
The Industry-Leading Compiler
Boost application performance, reduce memory footprint, and produce high-quality, standards-compliant object code for embedded systems with Wind River® Diab Compiler. Wind River has a long history of providing software and tools for safety-critical applications requiring certification in the automotive, medical, avionics, and industrial markets. And it’s backed by an award-winning global support organization that draws on more than 25 years of compiler experience and hundreds of millions of successfully deployed devices.
THE BENEFITS OF DIAB COMPILER
Big Performance, Tiny Footprint
In the embedded market, there is tremendous pressure to pack performance and features into small-memory devices that also consume less power. To help meet these demands, Diab Compiler offers hundreds of optimization options such as global, local, processor-specific, profile-driven, and whole-program optimization for fine-tuning of software for performance, footprint, or both.
Use standard global options settings or customize the compiler options for the best results for your application code. With these performance gains, you’ll build devices that use less memory and require lower-power processors, reducing the hardware costs of your projects. And each release of Diab Compiler includes new optimizations to unlock further performance and code density improvements.
Functional Safety and Automotive Grade Quality
With ongoing Diab Compiler updates (targeting both legacy/microcontroller platforms and high-performance compute platforms), the ISO 26262 (ASIL), IEC 61508 (SIL), TCL3 Cert qualification, and key optimizing enhancements, Wind River reaffirms its commitment to providing the highest-quality safety software tools for automotive and other safety-conscious industries.
TÜV SÜD Certification
Suitable for developing safety-related software for both ISO 26262 (ASIL) and IEC 61508 (SIL) up to the highest defined levels of safety, Diab Compiler is now being offered to customers in a safety certification package with the TÜV certificate, a safety manual, and technical and certification reports. Customers can use this package (following included guidelines, conditions, and restrictions) to deploy Diab Compiler as a TCL1-TCL3 tool for their all their safety projects needing the highest levels of functional safety. Diab Compiler’s safety portfolio supports ASPICE and other long lifecycle safety markets such as avionics (DO-178B), nuclear (IEC 60880), railway (EN 50128), and industrial (IEC 61508).
FEATURES
- Selectable speed/size optimizations: Certain compiler optimizations involve trade-offs between execution speed and code density. With Diab Compiler’s numerous compiler switches, users can choose whether to optimize for speed or code size.
- Small data area optimizer: For certain architectures, “small” data and constant areas use predefined sections that can optionally be created by the compiler to improve reference efficiency for widely used static or public variables.
- Code factor optimizer: Diab Compiler finds common code sequences at link time and shares them, reducing code size at the cost of inserting some additional branches.
- Reverse inlining: This option reduces code size by factoring out repeated code sequences into new functions. This optimization can lead to significant code-size reduction, depending on the structure of the code.
- Whole-program optimization: This capability allows the compiler to optimize calls between functions in different source files, improving execution efficiency by allowing function inlining across different modules.
- Link time optimization groups: Isolate safety-critical code from non-safety-critical code, and allow inter-module optimizations only within the specified groups.
- Easy interrupt handling: Diab Compiler makes it easy to handle interrupt processing for embedded systems by providing interrupt keywords and interrupt pragmas.
- Position-independent code and data: Diab Compiler can generate code and data that can be loaded at any address. This is useful in devices that dynamically load/unload modules.
- Control of structure formats: Diab Compiler can reduce footprint by packing structures and ensuring that all padding is removed. The compiler can also create byte-swapped structures. This capability can help optimize performance when sharing data between big and little endian processors.
- Extensive link command language for memory mapping: Every embedded device has a unique memory layout, with various types of memory available, such as fast RAM, flash, and shared memory. The link command language provides users fine-grained control to lay out code and data in memory in the optimal way.
- Support for multiple object module formats: The compiler supports ELF, IEEE-695, and S-Records and can generate object modules in multiple formats.
MAJOR TOOLCHAIN COMPONENTS
- Driver: Intelligent wrapper program invoking the compiler, assembler, and linker, using a single application
- Assembler: Macro assembler invoked automatically by the driver program or as a complete standalone assembler generating object modules; supports conditional macros, unlimited number of symbols, and provides debug information for source-level debugging of assembly programs
- Compiler: ANSI/ISO C/C++ compatible cross-compiler; uses LLVM/Clang in 7.0.x and EDG front-end in 5.x versions; supports ANSI C89, C99, C++03, C++14 and C++17
- Linker: Precise control of allocation, placement, and alignment of code and data
- Object modules linked into absolute or relocatable modules
- Stack usage estimates
- Libraries: Standard runtime functions to help developers create applications
- Fast, efficient floating-point libraries with full reentrancy
- Complete C++ library and Standard Template Library (STL)
- Full complement of math libraries, including IEEE-754 appendix functions
- Library source code
- Link-time optimization (LTO): Method for achieving better runtime performance through whole-program analysis and cross-module optimization
- GNU Arm® linker support: Two equivalent options to instruct the driver to call the GNU linker (for greater GNU compatibility), in addition to the default instruction to the driver to call the Diab Compiler linker
- Undefined Behavior Sanitizer (UBSan): Compiler option modifies the program at compile-time to catch various kinds of undefined behavior during program execution
- Instruction set simulator: Simulation of the core instructions of the target processor and ability to run C and C++ programs with the simulated environment; QEMU or windiss simulator
- Eclipse CDT plugin: Creation of projects and building of Diab Compiler application using the Eclipse integrated development environment
WIND RIVER PROFESSIONAL SERVICES
Whether you select Diab Compiler as a standalone product or as part of our platform solutions, the Wind River Diab Compiler and Wind River Professional Services teams know how to jump-start your development efforts. Types of services provided may include the following:
- Extended compiler processor support
- Application and tuning of compiler optimizations for maximum performance
- Customized support and maintenance
- Updates for end-of-life products
- Safety certification audits
- Code migration
AWARD-WINNING GLOBAL SUPPORT
Diab Compiler is supported by an award-winning and Service Capability and Performance (SCP)–certified organization and the Wind River Support Network website, available 24/7. The website provides patches, manuals, the latest errata, and other announcements, as well as tech tips, application notes, and answers to FAQs. Wind River experts are available for telephone support during standard business hours.
LONG-TERM SUPPORT AND FROZEN BRANCH MAINTENANCE
In addition to standard support, Wind River offers Long Term Support services for Diab Compiler customers. Long Term Support lengthens the support window beyond the standard product lifecycle for devices that need support for a specific compiler version for many years or even decades.
For customers in the safety-related industry that require complete control of the product lifecycle of the compiler that builds their software, Wind River offers Frozen Branch Maintenance. These maintenance packages allow customers to minimize the impact of compiler changes to their code by having their own branch of the compiler for which they control the lifecycle. They can decide what updates and customized bug fixes to include and when new QA cycles will be run. Frozen Branch Maintenance packages are available for current versions of the compiler and versions that have reached end-of-life.
HOW TO PURCHASE
Visit www.windriver.com/contact to find your local Wind River sales contact. To have a sales representative contact you, call 800-545-9463 or write to salesinquiry@windriver.com.