Alessandro Di Federico
75b5620703
Introduce OverflowSafeInt
2022-03-08 12:25:47 +01:00
Alessandro Di Federico
f44363f621
Introduce TemporaryFile
2022-03-08 12:25:47 +01:00
Alessandro Di Federico
0589697dca
CMake: sort headers for tuple_tree_generator
2022-03-08 12:25:35 +01:00
Alessandro Di Federico
af79107b8b
Move Integral concept to Concepts.h
2022-03-08 12:25:35 +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
Alessandro Di Federico
d5843e807f
Merge branch 'feature/various-improvements'
2022-03-02 16:11:32 +01:00
Alvise de Faveri
9e326682bc
Check-conventions: handle dirs with 0 python files
2022-03-02 15:40:27 +01:00
Pietro Fezzardi
269d729554
FilteredGraphs: add filter() method
...
The method allows to access the filter function and is useful for
templating.
2022-03-02 15:40:27 +01:00
Alvise de Faveri
0659e6b6a3
Model: Improve getCallSitePrototype() helper
...
1. Hoist the logic to retrieve a model CallEdge from an llvm::CallInst
out of `getCallSitePrototype()`, in a separate `getCallEdge()`
function.
2. Modify `getCallSitePrototype()` so that the parent function's type is
optional.
2022-03-02 15:40:27 +01:00
Alvise de Faveri
ea53846fa0
Add Qualifier::createPointer(Architecture)
2022-03-02 15:40:27 +01:00
Alvise de Faveri
62b5ec38cd
Add CallEdge::isDirect()
2022-03-02 15:40:27 +01:00
Antonio Frighetto
e798131082
O2Pipe: fix pipe name
2022-03-02 15:40:27 +01:00
Massimo Fioravanti
b982b69c5d
revng-model-inject: support model-less modules
...
Inject is meant to inject a model into an `llvm::Module`, but it fails
when operating on a Module that had no model metadata.
This commit fixes the bug.
2022-03-02 15:40:27 +01:00
Alessandro Di Federico
9608b337c6
Python formatting: switch to black 22
2022-03-02 15:40:27 +01:00
Alessandro Di Federico
24e6873d20
Merge branch 'feature/describe-function-type'
2022-02-25 08:21:49 +01:00
Alessandro Di Federico
984aea88ae
Minor changes
2022-02-25 00:32:46 +01:00
Ivan Krysak
bc0e6d1392
ABI: preliminary FinalStackOffset computation
2022-02-25 00:32:24 +01:00
Ivan Krysak
868970c5e7
ABI: specify stack alignment
2022-02-25 00:32:01 +01:00
Ivan Krysak
fca0df8dd2
ABI: specify who's responsible for stack cleanup
2022-02-25 00:31:37 +01:00
Ivan Krysak
2c35fc87d5
Conversion to RawFunctionType cannot fail
2022-02-25 00:31:14 +01:00
Ivan Krysak
11989b316b
Ensure model is untouched RawToCABI
...
It's now guaranteed to leave the model unmodified if the converstion
from `RawFunctionType` to `CABIFunctionType` fails.
2022-02-25 00:30:51 +01:00
Ivan Krysak
d811321538
InvokeIsolatedFunctions: adopt Layout
2022-02-25 00:30:38 +01:00
Ivan Krysak
f30ed88eb5
EnforceABI: adopt FunctionType::Layout
2022-02-25 00:30:27 +01:00
Ivan Krysak
b14fee7515
Implement abi::FunctionType::layout()
...
The `Layout` data structure works as a common view over
`RawFunctionType` and `CABIFunctionType`.
2022-02-25 00:30:14 +01:00
Ivan Krysak
541643afc3
Move function type conversion to librevngABI
2022-02-24 23:56:30 +01:00
Alessandro Di Federico
d193c6435e
Merge branch 'feature/python-model'
2022-02-24 14:18:43 +01:00
Alessandro Di Federico
3f52078950
Use BYPRODUCTS after POST_BUILD copy
2022-02-24 14:18:17 +01:00
Alessandro Di Federico
e7ae70e9a4
Record grandiso as a dependency
2022-02-23 18:03:45 +01:00
Filippo Cremonese
7f7a222410
python-model: handle importing multiple versions
2022-02-23 18:03:36 +01:00
Filippo Cremonese
09a995ba51
python-model: generate from jsonschema
2022-02-23 18:03:35 +01:00
Filippo Cremonese
23c40e3b51
revng: fix imports
...
Add missing log_error include and remove other unused imports.
2022-02-23 18:02:50 +01:00
Filippo Cremonese
6672eb8dbc
Turn Python scripts into modules
2022-02-23 18:02:42 +01:00
Filippo Cremonese
d5e5e16887
Apply and enforce python formatting with black
2022-02-23 18:02:39 +01:00
Filippo Cremonese
1dc7efe2b0
tuple_tree_generator: emit jsonschema
2022-02-23 17:37:03 +01:00
Filippo Cremonese
2877ead7ed
revng-model-to-json: handle SIGINT
2022-02-23 17:36:38 +01:00
Filippo Cremonese
8511cbf40b
tuple_tree_generator: drop tags
...
They were more harmful than beneficial.
2022-02-23 17:36:34 +01:00
Alessandro Di Federico
10dc6744b4
mv include/revng/{Model,TupleTree}/EnumTraits.h
...
`EnumTraits.h` is not model-specific.
2022-02-23 17:32:50 +01:00
Alessandro Di Federico
cca7e5b443
check-revng-conventions: improve performance
...
We used to run `clang-format` and the other checks twice, but it was not
strictly necessary.
2022-02-23 17:31:41 +01:00
Alessandro Di Federico
3417703ae8
Merge branch 'feature/generic-register-function-arguments'
2022-02-14 19:11:46 +01:00
Alessandro Di Federico
b7f5884f8c
DynamicFunction::name: no OriginalName direct use
2022-02-14 17:54:32 +01:00
Ivan Krysak
1df6bbc6d6
Introduce ABI testing infrastructure
2022-02-14 13:35:37 +01:00
Ivan Krysak
a122ff0431
Introduce register state deduction unit tests
2022-02-14 13:35:37 +01:00
Ivan Krysak
242b885a78
Remove obsolete ABI utilities
2022-02-14 13:35:37 +01:00
Ivan Krysak
371f5c4555
Implement ABI-based register state deductions
...
This will help EarlyFunctionAnalysis in providing more accurate results,
in case assumptions about the ABI can be made.
2022-02-14 13:35:37 +01:00
Ivan Krysak
9771ae29d6
Move RegisterState to ABI
2022-02-14 13:35:37 +01:00
Ivan Krysak
cafe44097b
ABI: introduce default function type generation
2022-02-14 13:35:37 +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
7369e49eba
Implement "best effort" function type convertion
2022-02-14 13:35:36 +01:00