Massimo Fioravanti
3d752f6c7f
Introduce revng pipeline --invalidate-all
2022-04-15 15:18:28 +02:00
Massimo Fioravanti
eef9ba74da
Introduce ModelInvalidationEvent
2022-04-15 15:17:58 +02:00
Massimo Fioravanti
1b489d9d8c
FileContainer: remove invalidated container
...
If a file container becomes empty, it the old file on disk has to be
removed.
2022-04-15 15:16:24 +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
0c12c47514
Pipes: initialize all llvm passes
2022-04-12 16:17:57 +02:00
Pietro Fezzardi
77cdc09e37
TaggedFunctionKind: skip Fake functions targets
2022-04-11 09:41:53 +02:00
Massimo Fioravanti
f63eefba2c
Move LinkForTranslationPipe to lib/Recompile
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
b362d926ec
pipeline: drop implicit rank 0
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
c1d97bf8b3
pipeline: make globals serializable
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
b1dac5d17b
ContainerBase: introduce serialization primitives
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
7eeb9f50c0
pipeline --verbose: print list of commands
...
`revng pipeline --verbose` will now print a list of equivalent commands
for the current invocation.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
6bd7f4bced
Implement FileContainer::remove
2022-03-28 12:17:05 +02:00
Giacomo Vercesi
238450d9be
pipeline: improve handling of 0-sized target lists
2022-03-28 12:17:05 +02:00
Alessandro Di Federico
2b55d1df22
Adopt cmake-format
2022-03-17 18:52:18 +01:00
Alessandro Di Federico
997e7f60cb
scripts/renvg: handle revng pipeline
...
Let `scripts/revng` intercept `revng-pipeline` invocations and add, not
only -load, but `-P` (pipelines) too.
2022-03-16 22:10:15 +01:00
Alessandro Di Federico
bc8e6a6a24
Minor changes
2022-03-16 22:10:15 +01:00
Alessandro Di Federico
0793e4afcb
Turn lifting into a pass
2022-03-11 15:37:12 +01:00
Alessandro Di Federico
5e38805063
Rename detail namespaces into revng::detail
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
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
e80d159944
revng-pipline: simplify Kinds.h
2022-02-08 17:44:33 +01:00
Alessandro Di Federico
fa8061b805
Drop dead Kinds
2022-02-08 17:44:19 +01:00
Massimo Fioravanti
a8a8da3bae
Introduce revng pipes
...
This commit imports all the revng pipes (and other support utilities) to
be used with `revng-pipeline`. In particular, the pipes necessary for
binary translations have been introduced.
2022-02-08 00:05:03 +01:00