As of January 2023, this project is no longer being maintained. Many parts
of this projects have open-source alternatives that are part of a bigger effort
and that are actively maintained:
llvm-exegesis
allows analyzing individual instructions or snippets of assembly code.
Providing tools for debugging the performance of code based on this data.
For a high-level overview of our efforts, see the
slides for a tech talk about EXEgesis (July 2017).
We are providing tools to measure instruction latencies and
µOps scheduling. We have
contributed that part into LLVM as as the
llvm-exegesis tool.
Details
This repository provides a set of tools for
extracting data about instructions and latencies from canonical sources and
converting them into machine-readable form. Some require parsing PDF files;
others are more straightforward.
State of the repository
As of January 2023, this project is no longer being maintained. Many parts of this projects have open-source alternatives that are part of a bigger effort and that are actively maintained:
Goal
Google’s EXEgesis project aims to improve code generation in compilers, via:
For a high-level overview of our efforts, see the slides for a tech talk about EXEgesis (July 2017).
We are providing tools to measure instruction latencies and µOps scheduling. We have contributed that part into LLVM as as the
llvm-exegesistool.Details
This repository provides a set of tools for extracting data about instructions and latencies from canonical sources and converting them into machine-readable form. Some require parsing PDF files; others are more straightforward.
The output data is available in the form of a Protocol Buffer message.
It includes:
Add with carry imm8 to AL.14 iband equivalent LLVM mnemonic. e.g.ADC8i8What’s Next
Get Involved
We welcome patches – see CONTRIBUTING for more information on how to submit a patch.