Skip to content

Latest commit

 

History

History
70 lines (58 loc) · 2.56 KB

File metadata and controls

70 lines (58 loc) · 2.56 KB
title Optimize AArch64 code with LLVM LTO and PGO
description Learn how to use LLVM Link-Time Optimization and Profile-Guided Optimization on AArch64 Linux.
minutes_to_complete 45
aliases
/learning-paths/servers-and-cloud-computing/pgo-test/
who_is_this_for This is an introductory topic for developers who compile C or C++ applications on AArch64 Linux and want to use Link-Time Optimization (LTO) with Profile-Guided Optimization (PGO).
learning_objectives
Understand the basics of Link-Time Optimization (LTO) and Profile-Guided Optimization (PGO)
Build Thin-LTO and Full-LTO binaries with Clang on AArch64
Generate instrumentation-based profile data with Clang on AArch64
Generate sample-based profile data with Clang on AArch64
Use generated profile data to optimize a small example application
prerequisites
LLVM installed with Clang, LLD, `llvm-profdata`, and `llvm-profgen` available in your `PATH`. For setup instructions, see [LLVM toolchain for Linux on Arm](/install-guides/llvm/).
Linux kernel version 6.17 or later for the Branch Record Buffer Extension (BRBE) profile-guided optimization workflow
author Paschalis Mpeis
skilllevels Introductory
subjects Performance and Architecture
armips
Neoverse
Cortex-A
tools_software_languages
Clang
LLVM
LTO
PGO
perf
operatingsystems
Linux
further_reading
resource
title link type
Clang profile-guided optimization
documentation
resource
title link type
llvm-profdata command guide
documentation
resource
title link type
llvm-profgen command guide
documentation
resource
title link type
LLVM LTO
documentation
resource
title link type
LLVM Thin-LTO
documentation
weight 1
layout learningpathall
learning_path_main_page yes