Alessandro Di Federico b1feb5b989 Introduce libtcg
This commit drops libptc in favor of its new form libtcg.

It brings several improvements, among which:

* The QEMU version we work on has been upgraded.
* CPUStateAccessAnalysis has been reimplemented in a way that makes it
  easier to debug and solves some limitations (e.g., tracking leaking
  pointers).
* Identification of pieces of the CPU state that are read by each helper
  and fixing access to the CPU state is now performed at build-time.
* We no longer mmap the code we need to translate, dropping all the
  issues related to code that needed to be mapped where something is
  already present.
* We now have two distinct flavors of helper modules: the full one and
  the "slim" one. The latter contains the definition only of functions
  we intend to inline. It is used in most of the pipeline, a good thing
  since we spend less time optimizing code we don't really care about.
  The full module is only used on the re-compilation branch of the
  pipeline.
* We no longer split the `cpu_loop` function.
* We change MetaAddress to rely on architectures from `model::` as
  opposed to the LLVM ones.
* We no longer attach debug info to LLVM IR containing the original
  assembly.
* We now verify that the lifted code only contains code we expect.
2025-10-31 14:49:05 +01:00
2024-11-21 15:54:23 +01:00
2025-10-31 14:49:05 +01:00
2025-10-31 14:49:05 +01:00
2025-10-28 11:43:22 +01:00
2025-10-31 14:49:05 +01:00
2025-10-31 14:49:05 +01:00
2025-10-31 14:49:05 +01:00
2025-10-31 14:49:05 +01:00
2025-09-10 12:05:15 +02:00
2025-10-31 14:49:05 +01:00
2024-02-26 16:02:52 +01:00
2024-02-26 16:02:52 +01:00
2024-11-21 15:54:23 +01:00

The rev.ng binary analysis framework and decompiler

Welcome to the rev.ng project!

rev.ng is an open source binary analysis framework based on LLVM and QEMU. It features a full-fledged decompiler. It's developed by rev.ng Labs in the open.

Getting started

Head to the online documentation to get started (source).

Getting in touch

You can get in touch with us through the following means:

  • X/Twitter, for the latest news about the project;
  • Discord, a place for chatting for users and developers;
  • Discourse, for user discussions;
  • GitHub, for development issues and PRs;
  • E-mail, for anything else;

License

The rev.ng binary analysis framework and decompiler is Free Software.

rev.ng depends on certain on GPLv2 components (in particular, QEMU), so the project is GPLv2-licensed as a whole. However, the individual files are licensed under the MIT license.

S
Description
Automated archival mirror of github.com/revng/revng
Readme GPL-2.0 24 MiB
Languages
C++ 77.1%
Python 12.6%
MLIR 4.4%
CMake 1.9%
LLVM 1.4%
Other 2.5%