Qualcomm® Technologies, Inc. has released Snapdragon™ LLVM Compiler version 3.4 for the Android NDK, which is designed to optimize code and unleash the power inside Qualcomm Snapdragon processors. High-end performance results from silicon and software working together in harmony. The highest performing CPU is not much without optimized software which fully utilizes its features. This is why we continue to offer and improve this Snapdragon compiler for our extensive developer community and product portfolio.
The latest Snapdragon compiler contains additional proprietary features, optimizations, and bug fixes from the open source LLVM 3.4 release. That is why code compiled with the Snapdragon LLVM compiler will perform better on Snapdragon processors.
If you are already developing Android apps that run on devices powered by the popular Snapdragon processor line, the Snapdragon LLVM Compiler is the latest and best for your code. When you use Snapdragon LLVM with the Android NDK, not only do you get optimizations, but you get the benefits of the latest LLVM community release (3.4) from llvm.org as the current Android NDK (r9c) release has yet not incorporated the latest LLVM release. It is designed to enable the best 32-bit performance on the Snapdragon processors of today, and will be the best transition to the 64-bit ready Snapdragon processors of tomorrow.
Highlights of our recent update include:
- ARMv8 with 64-bit Support
Snapdragon LLVM provides support for the new ARMv8, 64-bit architecture, including:
- AAarch64 (64-bit)
- AAarch32 (32-bit)
- NEON and VFP (now standard with ARMv8)
The 64-bit transition is on the horizon. The Snapdragon LLVM provides you a head start by building your code for ARMv8, gauging the impact on generated code, and addressing some of the porting issues.
- Porting Help
To aid in your porting efforts, the compiler can help identify common issues, including the sizes of larger data types through the use of –Wall or –Wconversion options.
- Address Sanitizer
Address Sanitizer is a runtime tool which assists in identifying common memory programming errors, through compile-time instrumentation like out-of-bounds accesses and use-after-free. This aids in detection of one of the most common security attacks.
- Integrated assembler
The integrated assembler enables faster compiling with support for hand-coded assembly files.
Improvements to the Auto-vectorizer further strengthen this feature to cover more loop idioms and patterns.
- Static Analyzer
Not new in this release, but worth highlighting is the Static Analyzer. The analyzer includes over 100 “checkers” that detect common programming errors.
So what are you waiting for? Start improving your app performance today by downloading the Snapdragon LLVM Compiler for Android. Also let us know your feedback and share your observed performance gains in the forum.