Commit Graph

2666 Commits

Author SHA1 Message Date
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
Ivan Krysak 5c671e8446 Add abi::Trait specialization for s390x ABI 2022-02-14 13:35:36 +01:00
Ivan Krysak 75c00f5112 Add abi::Trait specialization for mips ABI 2022-02-14 13:35:36 +01:00
Ivan Krysak c9daab2ce4 Add abi::Trait specializations for arm ABIs 2022-02-14 13:35:36 +01:00
Ivan Krysak 4069d547b6 Add abi::Trait specializations for x86 ABIs 2022-02-14 13:35:36 +01:00
Ivan Krysak 756d0f7376 Add abi::Trait specializations for x86_64 ABIs 2022-02-14 13:35:36 +01:00
Ivan Krysak d30c4c54fb Introduce trait to describe ABIs 2022-02-14 13:35:36 +01:00
Ivan Krysak 68129c9221 Add model::Binary::DefaultABI field 2022-02-14 13:35:36 +01:00
Ivan Krysak d108f7f049 Extend model::ABI enumeration 2022-02-14 11:28:36 +01:00
Ivan Krysak c14567e3d0 Make TupleTree::visitReferences public 2022-02-14 11:28:36 +01:00
Ivan Krysak fd3e7243c1 Remove an unused parameter from TupleTree::clone 2022-02-14 11:28:36 +01:00
Ivan Krysak ec625e8533 Define architecture-specific register access 2022-02-14 11:28:36 +01:00
Ivan Krysak 9b7eb76ac4 Introduce enumSwitch 2022-02-14 11:28:36 +01:00
Ivan Krysak a67bc8d1a6 revng-model-diff: return error on mismatch 2022-02-14 10:57:30 +01:00
Ivan Krysak bac670a38a monotone_framework_lattice: move generation notice
It made it look like the template was autogenerated.
2022-02-14 10:57:20 +01:00
Ivan Krysak 3bb266125c Add always_true and always_false traits 2022-02-14 10:57:10 +01:00
Ivan Krysak a21dff02de Add additional registers to the model 2022-02-14 10:57:00 +01:00
Ivan Krysak 7151c587f9 Prevent TupleTreeReference::isValid() asserts 2022-02-14 10:56:50 +01:00
Ivan Krysak dfeb437b45 Fix a minor convertible_to concept issue 2022-02-14 10:56:40 +01:00
Alessandro Di Federico a38819d8d9 revng-pipeline tests: cleanup temporary files
Certain revng-pipeline tests did not clean up temporary files leading to
weird effects running the tests twice in the same build directory.
2022-02-14 10:56:30 +01:00
Alessandro Di Federico ec6d4dbe74 Ensure all files end with a newline 2022-02-14 10:56:15 +01:00
Alessandro Di Federico 806f076709 Minor changes 2022-02-14 09:39:44 +01:00
Alvise de Faveri 7593d4da23 PromoteCSVs: promote PC CSVs 2022-02-12 12:04:14 +01:00
Massimo Fioravanti ef1b59158f revng-translate: propagate arguments after -- 2022-02-11 18:45:13 +01:00
Alvise de Faveri 812b73f2a2 Remove opaquepc()
We can set the PC to the expected value after each call instead
of creating an `opaquepc()` call.
2022-02-11 13:42:29 +01:00
Alessandro Di Federico 3baf3323ed Merge branch 'feature/pipeline-improvements' 2022-02-08 18:35:03 +01:00
Alessandro Di Federico 8f73438a8b Ban tabs and spaces at end of lines 2022-02-08 17:54:07 +01:00