About this Learning Path

Who is this for?

This is an advanced topic for developers interested in optimizing their C/C++ applications across Arm64 targets.

What will you learn?

Upon completion of this learning path, you will be able to:

  • Use hardware features to tune your applications at function level.
  • Create multiple versions of C/C++ functions for the targets that you intend to run applications on.
  • Assist the compiler in generating optimal code for the targets, or provide your own optimized versions at source level.
  • Automatically select the most appropriate function version at runtime.
  • Reuse your optimized application binaries across various targets.

Prerequisites

Before starting, you will need the following:

  • Basic knowledge of GNU function attributes.
  • Familiarity with indirect functions (ifuncs).
  • Basic knowledge of loop vectorization.
  • Familiarity with Arm assembly.
  • A LLVM 19 compiler with runtime library support or GCC 14.
Next