Green Hills Optimizing Compilers
For over 30 years, the Green Hills Optimizing Compilers have led the embedded industry by generating the fastest, smallest, and most reliable code. Thousands and thousands of products—from automobiles to medical devices, including military and commercial aircraft, passenger trains as well as gaming consoles—all run code generated by a Green Hills Compiler.
Silicon vendors publish certified EEMBC benchmarks to showcase their processor's performance on a wide range of real-world applications. These vendors have selected the scores generated with Green Hills Compilers to publish more than twice as many times over the any other compiler.
As the pace of microprocessor innovation continues to accelerate, application developers know they can rely on Green Hills Compilers to unlock the hardware's full potential and realize maximum performance and functional safety in their next-generation applications.
Green Hills Compilers use the most advanced optimizations to maximize your program's performance even within strict size constraints. For example, our CodeFactor™ optimization speeds your program's execution and reduces its size by removing redundant segments of code via subroutine calls and tail merges. Static basing provides the same benefits (faster speed, smaller size) by grouping data items to significantly reduce the number of load address operations.
Every one of our optimizations—whether it's our own innovation or an industry standard—is meticulously implemented. Continuing three decades of engineering excellence, we painstakingly research and then test each one against hundreds of benchmarks. Careful implementation and cutting-edge technology mean that on most programs the Green Hills Compilers can improve speed and reduce size by at least a 20% compared to the both GNU and LLVM compilers.
While the Green Hills Compilers provide excellent default settings, we understand that your application is unique. You can fine-tune compiler output by enabling different combinations of optimizations and by configuring optimizations on a per-project or per-file basis.
To reach the highest level of performance, Green Hills offers custom performance-tuning that uses our expertise in embedded systems to make your program run faster. We can even develop custom optimizations based on our evaluation of your application.
For example, working recently in collaboration with ARM architecture specialists, our compiler team added multiple new optimizations that enabled the Green Hills Compiler to achieve a performance score of 1.01 EEMBC Automarks/MHz rating on the Cortex-R5 processor. This represents a 30% increase on previous performance scores.
C++ 11 support
Green Hills Compilers support ISO/IEC 14882:2011 (C++11) which offers a number of new language features and standard libraries. These includes standardized threading support for mutexes, atomics, future/promise, and the use of the thread_local keyword. These features are supported on the INTEGRITY RTOS and can be easily customized to work on other OS.
Broad processor support
Ensuring fast time to market depends critically on keeping up with the availability of the latest target hardware. Our frequent releases and tight ties to silicon vendors mean that our compilers typically support new hardware before it's even commercially available.
Green Hills Compilers are part of a complete development solution. Our products provide every tool and system for the entire software development, testing, and maintenance cycle—all seamlessly integrated to save you time.
Along with our INTEGRITY RTOS, the MULTI IDE supports both compiling and debugging for selected versions of Linux. For development directly on your target, all these products work seamlessly with the Green Hills Probe and SuperTrace Probe hardware debug devices.
As part of the MULTI toolchain, the Green Hills Compilers have been certified to meet the highest levels of tool qualification and C/C++ runtime certification:
- IEC 61508:2010 (Industrial), EN 50128:2011 (Railway) and ISO 26262:2011 (Automotive) functional safety standards
- Certificates received from both TÜV NORD and exida
- Satisfies both SIL 4 (Safety Integrity Level) and ASIL D (Automotive Safety Integrity Level) tool qualification and C/C++ runtime certification requirements—the highest levels achievable
- Supported on a broad set of target processors
Prevent new bugs
To help you avoid common programming mistakes, the Green Hills Compilers provide automated enforcement of clean coding conventions. You can enforce industry standards like the MISRA 2004 guidelines, or you can enforce our own set of guidelines: GHS Standard Mode. GHS Standard Mode is based on our long history of successfully deployed software and on our collaboration with customers who have achieved the same high level of reliability. We use GHS Standard Mode internally to develop our own tools.
Find bugs automatically
DoubleCheck, Green Hills Software's integrated static analyzer, allows you to identify programming errors even before running your program and find bugs that may never show up during regular testing. Unlike traditional static analysis tools that run separately from the compiler, DoubleCheck is built in to our compiler, which results in these benefits:
- setup is trivial—you just need to turn on a switch
- it automatically runs with every build if left on
- the code checked is the actual code being compiled
Run-time error checking complements DoubleCheck by finding bugs that cannot be identified by static analysis alone. Especially onerous bugs may remain hidden for a long time before failure. With run-time error checking, you're alerted to the cause of the problem when it happens. Eliminating a bug is often trivial when you're looking directly at it.
With Green HIlls optimizing compilers, you can meet real-time requirements with lower cost hardware by tuning our compiler optimizations to get the most from your hardware.
Reduce your processor costs
You don't always need a faster processor to meet increasing performance requirements. Our superior compiler optimizations can be tuned to get the most out of whatever chip you use. How much money would you save if you could use a lower-cost processor to meet the same real-time requirements? Or if you could release a new product without having to produce a new hardware platform to run it on? Not only will improving your application's performance save you money on the processor itself, lower-cost processors operate at lower clock rates and require less power and cooling. Longer battery life makes your product better and cheaper at the same time.
Reduce your memory costs
Green Hills Compiler optimizations reduce your memory costs by reducing the size of your executable. Most programs see at least 10% improvement relative to the GNU Compiler.
Our team of cost reduction experts can help you to reduce your memory and processor requirements without sacrificing features. We have reduced customer memory usage by over 30% and have improved performance by over 300%.