Compilers form a critical component of the system stack and form a bridge between the underlying hardware and the higher application program level. In order to get the most of your POWER system, we should know how to use compilers to our advantage and employ its features to run programs most efficiently on the hardware. Compilers are equipped with knobs of various kinds such as flags, builtins and pragmas. Knowing when to use these knobs can make a huge difference performance wise. This presentation will cover these aspects in the context of the IBM XL compiler and open source compilers such as GCC and LLVM on POWER. We shall touch upon the corresponding knobs in each compiler so that the user can pick the knob according to their need. We will also cover how compilers communicate on why they could or could not do certain optimizations. Understanding why can lead to additional performance improvement opportunities and deepen the users understanding of the program and the compiler.
Continue the conversation in Slack