Commit Graph

6113 Commits

Author SHA1 Message Date
Ivan Krysak a3ab8e2415 ABI-docs: add a basic explanation 2024-10-08 13:53:53 +02:00
Ivan Krysak 724f8bfb59 ABI: streamline terminology
"packed" is used instead of "unnaturally aligned".
2024-10-08 13:53:53 +02:00
Ivan Krysak 4bdc7f83b5 ABI: drop incomplete pascal support 2024-10-08 13:53:53 +02:00
Ivan Krysak 5150fbd8c8 ABI: Limit usage of the StackAlignment option 2024-10-08 13:53:53 +02:00
Ivan Krysak ce11f37334 abi::Definition: move documentation out 2024-10-08 13:53:53 +02:00
Ivan Krysak 3f803ccc5c ABI-tests: add potential padding support 2024-10-08 13:53:53 +02:00
Ivan Krysak 6063015975 ABI-tests: support return-value-less SPTAR 2024-10-08 13:53:53 +02:00
Ivan Krysak 659bd01974 ABI: make distribution carry alignment information
This allows argument distribution to change based on the previous
argument by only preserving alignment information.
2024-10-08 13:53:53 +02:00
Ivan Krysak 6d44a4b1c2 ABI: introduce UseStrictAggregateAlignmentRules 2024-10-08 13:53:52 +02:00
Ivan Krysak 85474eb228 ABI: let last argument distribution differ 2024-10-08 13:53:52 +02:00
Ivan Krysak 7dfd669bde ABI: introduce a new configuration option:
`StackArgumentsUseRegularStructAlignmentRules`.
2024-10-08 13:53:52 +02:00
Ivan Krysak b378ac9b17 ABI: improve handling of padding arguments 2024-10-08 13:53:52 +02:00
Ivan Krysak 8c313a73af Model: make sure segments use generic addresses 2024-10-08 13:53:52 +02:00
Ivan Krysak 561f94115a ABI: make pointer to copy testing stricter 2024-10-08 13:53:52 +02:00
Ivan Krysak 1289678457 ABI: fix AArch64 pointer-to-copy handling 2024-10-08 13:53:52 +02:00
Ivan Krysak b20bcbe1d4 ABI: introduce BigArgumentsUsePointersToCopy 2024-10-08 13:53:52 +02:00
Ivan Krysak 99e016f120 ABI: reorganize default ABI helpers 2024-10-08 13:53:52 +02:00
Ivan Krysak d314c6ca36 ABI: fix a bug related to argument splitting 2024-10-08 13:53:52 +02:00
Ivan Krysak fb06320154 ABI: introduce Microsoft_AAPCS64 2024-10-08 13:53:52 +02:00
Ivan Krysak e92c0b68bb ABI: introduce Apple_AAPCS64 2024-10-08 13:53:52 +02:00
Ivan Krysak e4d8ead973 ABI: make MinimumStackArgumentSize explicit 2024-10-08 13:53:52 +02:00
Ivan Krysak d6ca06b864 ABI: handle SPTAR return value register correctly 2024-10-08 13:53:51 +02:00
Ivan Krysak d5d1a7da99 ABI: introduce ReturnValueLocationIsReturned 2024-10-08 13:53:51 +02:00
Ivan Krysak a4196fdd5e ABI: allow unnatural structs in aarch64 registers 2024-10-08 13:53:51 +02:00
Alessandro Di Federico 5db142237b lddtreeResolve: adopt consumeError 2024-10-04 15:20:06 +02:00
Alessandro Di Federico 38b5de76ed Merge branch 'feature/new-mass-testing' 2024-10-01 20:34:52 +02:00
Alessandro Di Federico f998fc2499 Merge branch 'feature/new-mass-testing' 2024-10-01 20:34:45 +02:00
Giacomo Vercesi 683bcf66d8 Drop revng- prefix from libexec executables
The revng CLI driver no longer uses the `revng-` prefix for executables
under `libexec/revng`.
2024-10-01 20:34:38 +02:00
Giacomo Vercesi 212cfdc613 mlir_lit_tests: generate proper tar file
Using an empty file as a tar file is not 100% compliant. Use an actual
`tar` invocation to generate the file.
2024-10-01 20:34:38 +02:00
Giacomo Vercesi 3fe3a8524a Implement mass testing
Add the `revng mass-testing` commands and auxiliary executables which
simplify running revng on a huge quantity of input executables.
2024-10-01 13:38:21 +02:00
Giacomo Vercesi 9a29c7117b commands_registry.py: allow subcommands in subdirs
Allow external subcommands to live in subdirectories w.r.t. the main
directory.
2024-10-01 13:38:14 +02:00
Giacomo Vercesi 993f66d59c revng cli: drop revng- prefix from libexec
Drop using the `revng-` prefix from all executables under
`libexec/revng/`. Now any executable found under there that is
executable and without extension will be considered a `revng`
subcommand, following the usual command-line rules.
2024-10-01 13:38:14 +02:00
Giacomo Vercesi e1757b505d support.py: fix _run_common
The `_run_common` function assumed that the `command` argument was
mutable. Change the logic so that it works with immutable collections
(e.g. `tuple`) as well.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi 583988c922 try_run: do not close fds
When running a subprocess via `try_run` & friends, do not close the
inherited file descriptors.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi e9a445b3a8 commands_registry: move to revng.py
Move the `commands_registry` instance from the `commands_registry.py` to
`revng.py` where the actual implementation of the registry happens.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi 4474eb68e2 fetch_debuginfo: download files atomically
Instead of directly writing the destination file, use the combination of
a `.tmp` suffix and `os.replace` to guarantee that the destination file
is written whole and not partially.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi f8ffe38687 Unify cache directory logic
Make the cache directory logic uniform in Python and C++, move the
respective implementations under support since it's project-wide logic
and not exclusive to debug-info.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi 4ceea9badd import_idb.py: use setup function
Use the `setup` function mechanism to register the command instead of
directly importing the commands registry.
2024-10-01 13:38:13 +02:00
Alessandro Di Federico 1d847e819b Merge branch 'feature/fix-invalidation' 2024-10-01 12:01:27 +02:00
Alessandro Di Federico 8ca6a0739d precedence.c.filecheck: fix argument names
Due to a bug fix in revng, we're now having arguments in a different
(correct) order. Let the test reflect this.
2024-10-01 11:52:33 +02:00
Alessandro Di Federico 55fd4d9f66 s/cfg.yml/cfg.yml.tar.gz/ 2024-09-29 12:53:23 +02:00
Alessandro Di Federico 07e964478d Invalidation deduceResults after pipe 2024-09-29 12:52:14 +02:00
Alessandro Di Federico c5f2c8055e s/cfg.yml/cfg.yml.tar.gz/ 2024-09-27 20:45:26 +02:00
Alessandro Di Federico 865ffb9892 Minor changes 2024-09-27 20:45:22 +02:00
Alessandro Di Federico 3aed94688f Merge branch 'feature/pipe-commits' 2024-09-27 12:08:34 +02:00
Alessandro Di Federico 6a8c9a68dd Merge branch 'feature/pipe-commits' 2024-09-27 12:07:52 +02:00
Alessandro Di Federico 79689f0da2 s/(LLVMContainer &)TargetsList/\1ModuleContainer/ 2024-09-27 12:07:18 +02:00
Alessandro Di Federico 05c01e5216 Drop TargetListContainer 2024-09-27 12:07:18 +02:00
Alessandro Di Federico 4a14c0abb2 UpdateContract: fix uninitialized Context * 2024-09-27 12:07:18 +02:00
Alessandro Di Federico 33cae7de12 Pipeline: reduce usage of Context 2024-09-27 12:07:18 +02:00