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
c4aa92694c
Introduce revng model apply
2022-04-15 15:15:41 +02:00
Massimo Fioravanti
bf1de27239
revng model diff: keep output
2022-04-15 15:14:41 +02:00
Massimo Fioravanti
44720eedbd
Redesign TupleTreeDiff
...
`TupleTreeDiff` is now type-safe and owns the changes.
2022-04-15 15:14:13 +02:00
Antonio Frighetto
dddd8ecbcb
Update EFA tests to support CFG out of the model
2022-04-05 15:37:57 +02:00
Massimo Fioravanti
8bbd3b9435
revng-pipeline: move from --quiet to --verbose
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
ce4934f48d
Introduce revng-link-for-translation
...
`revng-link-for-translation` provides a standalone tool needed to
perform the final linking stage of the recompilation.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
f63eefba2c
Move LinkForTranslationPipe to lib/Recompile
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
c05b5dbb28
Steps now represent the *end* of a step
...
A special "begin" step has been introduced.
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
6832698e5b
Introduce revng llvm pipeline
...
This is a wrapper to `revng-pipeline` designed to make the adoption of
pipelines easier for places where we are now using `revng opt`.
2022-03-17 16:46:02 +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
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
39ace7dc56
mv revng{DwarfImporter,ModelImporterDwarf}
2022-03-08 12:25:47 +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
Ivan Krysak
a67bc8d1a6
revng-model-diff: return error on mismatch
2022-02-14 10:57:30 +01:00
Alessandro Di Federico
e80d159944
revng-pipline: simplify Kinds.h
2022-02-08 17:44:33 +01:00
Massimo Fioravanti
67f9cbdf4c
Introduce the revng-pipeline CLI tool
2022-02-08 00:05:03 +01:00
Massimo Fioravanti
6f0d0c4f9d
CodeGenerator: accept an external model
2022-02-07 22:24:39 +01:00
Alessandro Di Federico
21f16ce95d
Drop *.orig files
...
They have been accidentally committed.
2022-02-07 16:55:46 +01:00
Alessandro Di Federico
1c2527f6fa
mv tools/{revng-,}lift
2022-01-31 16:37:22 +01:00
Alessandro Di Federico
a353e00ac1
Introduce model passes
2022-01-31 16:28:14 +01:00
Alessandro Di Federico
3980ee3fad
Introduce model tools
2022-01-31 16:28:14 +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
Alessandro Di Federico
8c0b918ace
s/DebugHelper.*/IRAnnotators.*/
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
e7bc0c739b
Restore emission of annotated IR
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
6073133545
CodeGenerator: drop IR emission duties
2021-12-22 17:47:54 +01:00
Massimo Fioravanti
9e477d0ada
Make a library out of revng-lift
2021-12-22 13:47:21 +01:00
Alessandro Di Federico
3e1e69e08f
Introduce eraseFromParent
2021-12-17 18:50:08 +01:00
Alessandro Di Federico
1dbe474873
Whitespace fixes
2021-12-16 11:56:06 +01:00
Antonio Frighetto
10f45c593a
Move StackAnalysis to EarlyFunctionAnalysis
2021-12-15 18:03:30 +01:00
Antonio Frighetto
215dab9dd2
Introduce CSVAliasAnalysisPass
...
A pass that decorates memory accesses with
information about CSV aliasing.
2021-12-15 18:03:30 +01:00
Antonio Frighetto
4504b3d770
JumpTargetManager: move getOption in IRHelpers
2021-12-15 18:03:30 +01:00
Antonio Frighetto
34580789eb
BinaryFile: add architecture-dependent fields
...
Add return address register and minimal final stack offset in Arch.
2021-12-15 18:03:30 +01:00
Antonio Frighetto
31620e4efd
CodeGenerator: record static functions as well
2021-12-15 18:03:30 +01:00
Antonio Frighetto
adcda3532b
AVI: fix error in detection of stores to PC
2021-11-18 15:30:07 +01:00
Alessandro Di Federico
89532890ed
Introduce support for importing DWARF information
2021-10-21 15:01:20 +02:00
Alessandro Di Federico
3a3eea0cf5
Introduce support for dynamic functions
2021-10-21 15:01:19 +02:00
Alessandro Di Federico
a023bfa7f5
Introduce ABI handling
2021-10-18 20:44:58 +02:00
Alessandro Di Federico
18cfbdbfe0
Whitespace and other minor changes
2021-10-18 12:39:21 +02:00
Pietro Fezzardi
67eaaab045
JumpTargetManager: enable InstCombine(true)
...
This fixes the latest failing tests after upgrading to llvm-12.
2021-06-14 23:04:02 +02:00
Pietro Fezzardi
b96fbd091d
Fix check-conventions with clang-format-12
2021-06-14 23:04:02 +02:00
Pietro Fezzardi
6f7de910a6
Enable warning -Wunused-local-typedefs
2021-06-14 23:04:02 +02:00
Pietro Fezzardi
544b553e5c
JumpTargetManger: swap constprop with instsimplify
...
Constant propagation has been dropped from llvm
2021-06-14 23:04:02 +02:00
Pietro Fezzardi
12364e6d63
Update BinaryFile to new llvm::object APIs
...
This is required to compile against llvm-12
2021-06-14 23:04:02 +02:00
Pietro Fezzardi
d3d4e1ea5e
JumpTargetManager.cpp: include missing header
...
Before the addition of this include, the file failed to compile with
llvm-12.
2021-06-14 23:04:02 +02:00