XL C compiler is IBM’s high performance compiler that support all its hardware productions like Power CPU, Cell CPU based AIX, Linux, Z OS, BlueGene systems.
Now it has Polyhedral guided optimization that can do more complex loop optimizations. In order to reduce compile time and resource consuming, this polyhedral model is only used for dependence analysis and loop transformation like tiling.
XL C also use profile guided optimization for data prefetch ( stream prefetch, stride prefetch) and data reorganization, especially the array reorganizations.XL C compiler has 5 optimization optmizations.
XL C can make use of BlueGene/Q’s speculative execution. This type of execution is much like the branch speculation in ILP of CPU. A brief introduction of BlueGene/Q’s speculation execution[2].
The same versioning facility can also be used for speculative execution. Instead of having to wait for up-to-date versions of all the data it needs—which might require, for example, waiting for another core to finish a computation—a thread can begin executing with the data it has, speculatively performing useful work. If it turns out that the data was up-to-date, it can commit that work, giving a performance boost: the work was done before the final value was delivered. If it turns out that the data was stale, the speculative work can be abandoned, and re-executed with the correct value.
XL C also has a efficient auto-vectorization framework whick can make use of Power’s 2 128-bit wide SIMD units( 2x FP/VSX unit and 2x VMX unit).VSX is short for Vector and Scalar Extension, and VMX is short for Vector media extension.
Like ICC , XL C also have a compiler optimization feedback, which can give users that which code and why it cannot be optimized.
A commercial compiler should not only translate code into binaries, but also give users higher performance code using optimizations and hints about how to manually help compilers to optimize the code.
Reference:
- http://www-01.ibm.com/software/awdtools/xlcpp/
- http://arstechnica.com/hardware/news/2011/08/ibms-new-transactional-memory-make-or-break-time-for-multithreaded-revolution.ars


近期评论