Alessandro Di Federico
dbcdad0a4d
Switch from llvm::Optional to std::optional
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
31b46de38c
Remove dead code and fix spurious warnings
...
Remove some dead code or introduce suppressions for spurious.
These are results of more accurate warnings in clang 16.
2023-04-08 08:42:23 +02:00
Alessandro Di Federico
b866e9010e
ELFImporter: fix setting gp_mips canonical value
...
We used to set the canonical value of the MIPS gp register even in
absence of PLT, leading to a crash (specifically on archlinux librt.so).
2023-03-22 14:22:24 +01:00
Ivan Krysak
64856306c4
BinaryImporter: rework command line interface
2023-03-15 10:19:03 +01:00
Ivan Krysak
34b532c754
BinaryImporter: always promote original name
2023-03-15 10:19:03 +01:00
Ivan Krysak
0b1aaeaede
Minor improvements
2023-03-15 10:19:01 +01:00
Alessandro Di Federico
8886792ebb
Logger: ensure we consume llvm::Error
2023-02-23 14:51:03 +01:00
Djordje Todorovic
24a5705e12
Importer: Attach attributes when copying types
2023-02-16 11:07:52 +01:00
Antonio Frighetto
ab36efca8d
Model: import data objects in Segment.Type
2023-02-06 12:08:18 +01:00
Djordje Todorovic
fec0ec7034
Model: add ExportedNames for local Functions
2023-01-27 17:54:06 +01:00
Djordje Todorovic
83905cf5ed
Fix the level for FetchDebugInfo
2023-01-27 17:53:47 +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
b83edd61c0
DwarfImport: fix handling of local functions
2022-11-30 15:06:54 +01:00
Alessandro Di Federico
6a6cd939db
Rework EarlyFunctionAnalysis
2022-08-08 13:55:34 +02:00
Alessandro Di Federico
b07d134b73
Introduce CanonicalRegisterValues in the model
...
These canonical values ease certain analysis that can assume their value
at function entry.
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
0566381ecf
ELFImporter: make importing more robust
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
e0e8b4e5b6
ELFImporter.cpp: s/Log/ELFImporterLog/
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
81c2a93add
Normalize FilePortion
2022-08-08 13:54:41 +02:00
Djordje Todorovic
a36e22729f
Model: Add PDB support
2022-07-28 14:52:50 +02:00
Djordje Todorovic
b3cd1316f0
ELFImporter: Fix the documentation comment
2022-07-28 14:52:02 +02:00
Djordje Todorovic
9d18d84f68
ELFImporter: Improve the parseSymbols()
...
This is an NFC.
2022-07-28 14:52:02 +02:00
Djordje Todorovic
6d390af909
Model: Factor target-dep code out of ELFImporter
2022-07-28 14:51:40 +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
Alessandro Di Federico
a4d7e78856
Stop registering Invalid model::Functions
2022-04-29 17:57:49 +02:00
Alessandro Di Federico
ea6383c476
mv {d,registerD}efaultFunctionPrototype
2022-03-17 14:10:50 +01:00
Alessandro Di Federico
ee0b8f44c1
Introduce BinaryImporter
...
This is a big step to split revng-lift in two parts: one that only
writes the model and one that actually lifts to LLVM IR.
* Introduce `revng import binary`
* Split off `BinaryFile.h`
* Drop `revng.h`
* `GeneratedCodeBasicInfo`: use model
* Reduce role of `GeneratedCodeBasicInfo` in favor of
`model::Architecture` and `model::Register` methods
* `CodeGenerator`: adopt `RawBinaryView` and model
* `JumpTargetManager`: adopt `RawBinaryView` and model
* `ExternalJumpsHandler`: adopt model
* `InstructionTranslator`: discard `Architecture` in favor of
`EndianessMismatch`
* Many other changes
2022-03-08 15:15:24 +01:00