Skip to content

google/EXEgesis

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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:

  • llvm-exegesis allows analyzing individual instructions or snippets of assembly code.
  • llvm-mca is a CPU pipeline simulation tool.
  • uops.info provides detailed performance characteristics and a machine-readable database of x86-64 instructions.

Goal

Google's EXEgesis project aims to improve code generation in compilers, via:

  1. Providing machine-readable lists of instructions for hardware vendors and microarchitectures.
  2. 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.

The output data is available in the form of a Protocol Buffer message.

It includes:

  • A textual description. e.g. Add with carry imm8 to AL.
  • The raw encoding. e.g. 14 ib and equivalent LLVM mnemonic. e.g. ADC8i8

What's Next

  • Intel x86-64 - done

Get Involved

We welcome patches -- see CONTRIBUTING for more information on how to submit a patch.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published