Commit Graph

63 Commits

Author SHA1 Message Date
Alessandro Di Federico d9d45fa79b ModelToHeader: fake functions no longer exist 2022-08-08 16:22:14 +02:00
Antonio Frighetto 19d7f8b2c9 Late decompilation: support model::Segment
Backend and InitModelTypes now handle the opaque `segmentRef` marker.
2022-07-19 13:53:21 +02:00
Pietro Fezzardi 0b64b58e84 Unify recompilation tests
Before this commit we were using xargs to speed-up recompilation tests,
which kinda sucked because:
- it spawned a lot of processes, one for each file to recompile
- the runtime of each test was dominated by parsing the headers, that
  were included over and over again in each C file

Now we collapse all the C files together, which gives us 2 benefits:
- we only spawn a single process for each recompilation test, meaning
  that cmake can do a better job at parallelizing without starving
  others
- the headers are included and parsed only once, speeding up the
  compilation further
2022-04-29 15:04:27 +02:00
Giacomo Vercesi ab125b35b0 Fix License headers
Change company name to "rev.ng Labs Srl" in all license headers
to reflect changed company name and legal status
Add missing license headers to files that didn't have one
2022-04-19 12:17:59 +02:00
Giacomo Vercesi da06acf29e Update to reflect removal of tags from model YAML 2022-04-08 17:57:23 +02:00
Pietro Fezzardi a654476789 Make EnumType.UnderlyingType a QualifiedType 2022-04-08 15:24:29 +02:00
Alvise de Faveri 096ab1f5a1 Segregate: copy metadata on the new Call
Before this commit, SegregateStackAccessPass did not update properly the
metadata. Missing metadata did not allow the rest of the pipeline to
detect the special call.

This commit properly copies the metadata and updates the rest of the
pipeline to take care of the special call.
2022-03-22 11:48:27 +01:00
Pietro Fezzardi 9f1bbc8b49 Drop deprecated \brief Doxygen directive
\brief is a stupid feature that we should stop using:
https://lists.llvm.org/pipermail/llvm-dev/2015-May/085152.html
2022-03-22 10:48:03 +01:00
Pietro Fezzardi c41ca3a451 New revng helpers for Qualifier and QualifiedType 2022-03-17 17:15:50 +01:00
Alessandro Di Federico 5d197bff15 Adopt API changes in the model 2022-03-10 17:59:05 +01:00
Alvise de Faveri b2b1aa8a58 ModelToHeader: define NULL in model.h 2022-03-02 11:46:30 +01:00
Alvise de Faveri 73c743597b Pull out DepGraph and naming from ModelToHeader
Separate `ModelToHeader.cpp` into 3 different files:

1. DependencyGraph, used to calculate the precedence between
   type declarations
2. ModelTypeNames, that holds all the naming logic, whose
   primitives are accessible from other modules through a
   public header
3. ModelToHeader, that now contains only the logic to print
   out declarations and definitions

Also add a compilation test for the headers generated by this pass.
2022-02-10 17:12:56 +01:00
Alvise de Faveri 70724920bb Move ModelToHeader to HeadersGeneration 2022-02-10 17:12:56 +01:00