Antonio Frighetto
20cdfe668a
EFA: take the control-flow graph out of the model
...
The control-flow graph and all its hierarchy components
have been moved from `model` to `efa`. The CFG is now
serialized onto the LLVM IR module as a metadata.
2022-04-05 15:37:57 +02:00
Antonio Frighetto
dad721941e
JTM: set symbol name to OriginalName in newpc
2022-04-05 15:37:57 +02:00
Antonio Frighetto
5848063b66
TupleTree: make const TupleTree& behave as such
...
A logic issue was addressed with improved state management.
2022-04-05 15:37:57 +02:00
Alessandro Di Federico
f6c9b04c81
Adopt clang-tidy: readability-identifier-naming
2022-04-04 21:15:52 +02:00
Alessandro Di Federico
2b55d1df22
Adopt cmake-format
2022-03-17 18:52:18 +01:00
Alessandro Di Federico
7d48059800
Turn revng-lift into a script
2022-03-11 15:37:12 +01:00
Alessandro Di Federico
0793e4afcb
Turn lifting into a pass
2022-03-11 15:37:12 +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
Alessandro Di Federico
60cce26768
Support streaming llvm::Errors to Loggers
2022-03-08 15:04:34 +01:00
Alessandro Di Federico
0a5d2c04a7
Rework LoadModelPass
2022-03-08 15:04:34 +01:00
Alessandro Di Federico
a88a9e52c3
Improve model::Segment
2022-03-08 13:06:47 +01:00
Alessandro Di Federico
39ace7dc56
mv revng{DwarfImporter,ModelImporterDwarf}
2022-03-08 12:25:47 +01:00
Alessandro Di Federico
1cd17a13e8
readFromPointer: use bool IsLittleEndian
2022-03-08 12:25:47 +01:00
Alessandro Di Federico
7c515ff997
Use std::string for MaterializedValue::SymbolName
2022-03-08 12:25:35 +01:00
Alessandro Di Federico
c1ed018786
Fix a revng_assert meant to be a revng_abort
2022-03-08 12:25:22 +01:00
Ivan Krysak
242b885a78
Remove obsolete ABI utilities
2022-02-14 13:35:37 +01:00
Ivan Krysak
68129c9221
Add model::Binary::DefaultABI field
2022-02-14 13:35:36 +01:00
Massimo Fioravanti
6f0d0c4f9d
CodeGenerator: accept an external model
2022-02-07 22:24:39 +01:00
Alessandro Di Federico
0f084ed620
Minor changes
2022-02-07 16:55:46 +01:00
Alessandro Di Federico
d0bb3d4c2c
CodeGenerator.cpp: use OriginalName for symbols
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
445066bd0a
CodeGenerator.cpp: posticipate DWARF import
...
This way we apply the optimization passes.
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
680924b643
CodeGenerator.cpp: drop some outdated assertions
...
Drop some outdated checks for `model::Binary::ImportedDynamicFunctions`
being sorted.
2022-01-27 11:51:03 +01:00
Filippo Cremonese
fbeee896e1
Rename model::abi -> model::ABI
2022-01-10 10:31:27 +01:00
Alessandro Di Federico
cfb47157b9
clang-tidy: readability-identifier-naming
...
This commit fixes all the non-compliance with our preliminary clang-tidy
configuration, which will be merged soon.
2022-01-07 09:18:05 +01:00
Massimo Fioravanti
b8f6303101
Fix wrong usages of StringRef::data
...
StringRef::data() does not ensure that the string is zero terminated,
thus when printed it can contain more data than expected.
Specifically, this triggered the reported name of the registers to be
incorrect, and this manifested itself as wrong inline assembly emitted.
2022-01-05 14:47:25 +01:00
Massimo Fioravanti
bdcc1d2e30
BinaryFile::BinaryFile: accept object::Binary
...
The constructor now accepts a llvm::object::Binary directly rather than
a path. Will be used by the revng-pipeline which will retain ownership
of the binary.
2022-01-05 14:47:25 +01:00
Alessandro Di Federico
6073133545
CodeGenerator: drop IR emission duties
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
27b553f09e
CodeGenerator: stop emitting .li.csv and .need.csv
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
777adcbd45
model::Binary: add segments and imported libraries
...
Now, `scripts/revng` uses the model and we no longer need to emit
.li.csv and .need.csv.
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
5a28bfedea
Move SegmentInfo::generateName to BinaryFile.cpp
2021-12-22 13:47:21 +01:00
Alessandro Di Federico
57ae7613e1
Drop obsolete debug files
...
This commit drops the generation of `.coverage.csv` and `.bbsummary.csv`
files. No one really uses them anymore.
2021-12-22 13:47:21 +01:00
Massimo Fioravanti
9e477d0ada
Make a library out of revng-lift
2021-12-22 13:47:21 +01:00