Ivan Krysak
17c128c59b
Make ABI depend on ModelPasses
...
Before now the dependency was the other way around
2023-03-15 10:19:03 +01:00
Ivan Krysak
4d21a88777
Model: remove an obsolete function conversion pass
2023-03-15 10:19:03 +01:00
Ivan Krysak
01a05e2037
ABI: separate convertions based on the direction
2023-03-15 10:19:02 +01:00
Ivan Krysak
3687869795
Model: make AddPrimitiveTypes a pure analysis
2023-03-15 10:19:01 +01:00
Djordje Todorovic
0f7c473cf3
FixModel: factor out logic of type deletion
2023-01-27 17:46:23 +01:00
Djordje Todorovic
5be245c971
FixModel: filter zero-sized fields
2023-01-27 17:46:21 +01:00
Djordje Todorovic
e1b070f2da
FixModel: filter out empty arrays
2023-01-27 17:46:18 +01:00
Djordje Todorovic
961f9e5461
Model: search debug info locally upon import
...
Also find prototypes in Models of dynamic libs for both PE and ELF.
2022-12-13 11:26:54 +01:00
Massimo Fioravanti
742e1a0c56
TupleTree: switch from public fields to accessors
2022-12-12 18:36:57 +01:00
Alessandro Di Federico
446db0b62c
Model type purge: do not purge primitives
2022-11-30 15:06:54 +01:00
Pietro Fezzardi
df30792435
PrimitiveType: support for 80 and 96 bits types
...
This commit completes the support of various rare PrimitiveTypes, that
has been added opportunistically over time and has remained inconsistent
across the codebase:
- float80_t
- float96_t
- generic80_t
- generic96_t
The first two are necessary because on some platforms long double is
either 10 or 12 bytes wide.
The second two are necessary because the Generic PrimitiveType should
allow all non-zero byte sizes allowed by any other PrimitiveType.
2022-11-30 15:06:54 +01:00
Massimo Fioravanti
9363bbd70a
Pipeline: every container type has now a C++ type
2022-09-29 15:51:17 +02:00
Djordje Todorovic
5559d8431b
Introduce fix-model model pass
2022-09-21 18:37:36 +02:00
Massimo Fioravanti
915c083661
Pipes: reorganize who defines pipes
2022-08-29 14:44:35 +02:00
Ivan Krysak
65d1a016d4
Standardize concept naming across the codebase
2022-08-05 17:27:56 +03:00
Djordje Todorovic
1243d1061c
Introduce revng model hard-purge
...
In addition, introduce a new model Pass:
revng model opt -prune-unsused-types
2022-07-28 15:02:55 +02:00
Antonio Frighetto
186d907be3
Model: extend model::Segment
...
`Segment` now includes a `Type` of struct kind. This is intended to
emit the segment as a struct later in decompilation. The implementation
of name has also been added.
2022-07-22 16:10:51 +02:00
Pietro Fezzardi
7f65b1117a
New AddPrimitiveTypesPipe
...
This pipe is executed during the Lift step and populates the model with
all the required primitive types.
2022-04-12 16:40:27 +02:00
Pietro Fezzardi
6b2b2e8ada
Make model::Type::edges() method const
2022-04-08 18:58:58 +02:00
Ivan Krysak
1b03adca5e
Make function type convertions self-sufficient
2022-03-28 15:38:04 +02:00
Alessandro Di Federico
2b55d1df22
Adopt cmake-format
2022-03-17 18:52:18 +01:00
Alessandro Di Federico
bc8e6a6a24
Minor changes
2022-03-16 22:10:15 +01:00
Ivan Krysak
2c35fc87d5
Conversion to RawFunctionType cannot fail
2022-02-25 00:31:14 +01:00
Ivan Krysak
541643afc3
Move function type conversion to librevngABI
2022-02-24 23:56:30 +01:00
Ivan Krysak
8d876b0def
ABI: introduce bulk function conversion
2022-02-14 13:35:37 +01:00
Ivan Krysak
e20e65ca9a
Require a description when registering a pass
2022-02-14 13:35:36 +01:00
Alessandro Di Federico
ec6d4dbe74
Ensure all files end with a newline
2022-02-14 10:56:15 +01:00
Alessandro Di Federico
a353e00ac1
Introduce model passes
2022-01-31 16:28:14 +01:00