79 Commits

Author SHA1 Message Date
Giacomo Vercesi 27f419c8cd Fix and ban namespace clobbering
Fix an instance where the `std` namespace got clobbered into the global
namespace by accident.
2026-02-16 10:34:38 +01:00
Alessandro Di Federico 5820908675 Remove and ban \file 2025-12-16 17:41:55 +01:00
Ivan Krysak 5717d835f8 Add missing llvm::Error checks 2025-10-13 10:26:37 +03:00
Ivan Krysak 77ea07c364 Minor improvements 2025-10-08 12:22:30 +03:00
Ivan Krysak dbd8a720b7 Reduce using namespace abuse 2025-09-10 17:44:02 +02:00
Lauri Vasama 893ca56921 Require separate output arguments in revng pipe
Each mutable container used by the pipe now requires a separator output
path argument.
2025-06-04 15:13:47 +02:00
Lauri Vasama 4380f374b1 Fix revng pipe output container targets
Previously revng pipe did not correctly propagate targets from input
containers into output containers based on the pipe contract. This
happened to work for pipes acting on LLVM containers where the same
container is used for input and output, but failed for the Clift backend
pipe, where an MLIR container is used for input and a string map
container is used for output.
2025-06-04 15:13:47 +02:00
Giacomo Vercesi 79272adc9d CLI: check that FilePaths are actually files
Add checks that return an `llvm::Error` in case a provided path is a
directory in the case a `FilePath` was requested.
2025-05-07 16:42:34 +02:00
Giacomo Vercesi 0f6b6e00bd Add revng init
Add a new `revng` command that allows to initialize a resume directory.
2025-05-07 10:48:49 +02:00
Giacomo Vercesi e3074ec29a revng artifact: omit kind
When working with `revng artifact`, omit the kind in both the output of
`--list` and the parameters taken specifying which targets to produce.
2025-05-07 10:48:48 +02:00
Ivan Krysak 705e4a5955 auto [...] -> auto &&[...] 2025-02-13 13:10:51 +02:00
Ivan Krysak 1eb80ecd2d Introduce an error creation helper 2024-11-06 15:20:37 +02:00
Alessandro Di Federico bd84bd7f2e Rework --analyze and --analyses-list 2024-10-31 17:19:51 +01: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
Alessandro Di Federico bc064244d6 s/deserialize/fromString/g 2024-09-27 12:07:17 +02:00
Alessandro Di Federico c8d4381297 s/Context &Ctx/Context &Context/g 2024-09-27 12:07:17 +02:00
Alessandro Di Federico c92c109424 revng artifact: error out if step has no artifact 2024-08-07 16:07:59 +02:00
Alessandro Di Federico 7b00473859 PDBImporter: rework .pdb search 2024-08-05 17:41:34 +02:00
Alessandro Di Federico d50e7e9451 revng artifact: anticipate artifact name check 2024-07-25 17:44:03 +02:00
Alessandro Di Federico 966caa4137 revng artifact: fix handling of target arguments
This commit adds to `revng artifact` help the part of the command line
accepting a list of targets.
Also, it fixes the parsing of targets.
2024-07-09 08:58:51 +02:00
Ivan Krysak b2959e36df Minor improvements 2024-06-27 11:05:48 +02:00
Alessandro Di Federico e90dd20b69 Introduce revng analyze --save-invalidations 2024-06-20 10:24:51 +02:00
Massimo Fioravanti 7ee8c8000d Introduce revng pipe 2024-06-20 09:57:36 +02:00
Alessandro Di Federico 8479f3d8b8 artifact: reorganize how we run analysis lists 2024-03-01 14:28:12 +01:00
Alessandro Di Federico 85abd9b6fc revng artifact: introduce --analyze 2024-02-29 18:04:35 +01:00
Alessandro Di Federico e48430798f {artifact,analyze}: fix output with no arguments 2024-02-09 10:04:22 +01:00
Alessandro Di Federico 4d9de92c77 revng-analyze: handle analysis name != type name 2024-02-09 10:04:17 +01:00
Massimo Fioravanti c276a439b5 Add pipeline invalidation
Replace the stub implementation of invalidation with the proper
implementation. A ReadPathCache is added to each global so that it can
keep tracks of what target are associated to which read paths.
2024-01-02 11:14:56 +01:00
Giacomo Vercesi 0b2754c824 pipeline: drop Disk from storage methods
This commit changes the following method names across the codebase:
* `storeToDisk` -> `store`
* `loadFromDisk` -> `load`
This has been done since the storage is no longer bound to the local
storage.
2023-09-06 15:23:43 +02:00
Giacomo Vercesi 93d3a6238d revng: introduce S3 support
Add the capability for all revng tooling to run with an S3-backed
workdir.
2023-09-06 15:23:43 +02:00
Pietro Fezzardi 4003269e17 revng analyze: fix typo in argument description
s/ArtifactToProduce/AnalysisToRun

The misspelling on the argument description made the --help option very
unhelpful in discovering the proper usage of the tool.
2023-08-23 15:54:29 +02:00
Alessandro Di Federico 14525d91f5 Adopt llvm::Task 2023-08-01 10:51:16 +02:00
Massimo Fioravanti 6707a20eea revng-pipeline CLI: drop list- from analysis lists 2023-07-20 17:08:28 +02:00
Ivan Krysak bc98e0079f Formatting: change PenaltyReturnTypeOnItsOwnLine
The new value is 21.
2023-07-02 13:20:49 +02:00
Alessandro Di Federico 8b3f641a29 Rename LLVMGlobalKindBase to LLVMKind 2023-04-28 14:34:49 +02:00
Alessandro Di Federico f68185abc9 Push ParseCommandLineOptions into InitRevng 2023-04-28 14:34:35 +02:00
Giacomo Vercesi 2e96e09f63 Drop analyze-all
Drop all the uses of analyzeAll and swap its use with the invocation of
the appropriate analysesList
2023-03-22 17:50:02 +01:00
Giacomo Vercesi a926ca8fcb revng: make cmd tools analysesList-aware
Add the possibility to use analyses lists on tools where the use of
analyses names is allowed
2023-03-22 17:31:46 +01:00
Ivan Krysak a06d9fedbd STLExtras: extend revng::find family 2023-03-15 10:19:01 +01:00
Massimo Fioravanti 9432399254 Introduce ApplyDiffAnalysis 2023-02-06 09:37:23 +01:00
Alessandro Di Federico bf20a83268 revng-pipeline: reduce dependencies 2023-01-21 18:56:22 +01:00
Alessandro Di Federico 98bea7dcec Minor changes 2022-11-30 15:06:54 +01:00
Massimo Fioravanti e24fdbd446 revng-artifact: handle binaries with 0 functions
When revng-artifact is requested to produce the functions of a binary
that had 0 functions, it crashed. This commit fixes it by checking if
something has been actually being produced.
2022-11-02 10:47:33 +01:00
Giacomo Vercesi 81d25f9805 PipelineC: expose invalidation logic 2022-10-30 09:13:14 +01:00
Massimo Fioravanti 6a869735a9 Pipeline: fix driver for targetless invocation 2022-10-21 11:18:33 +02:00
Massimo Fioravanti d55aa9b9e6 Pipeline: remove * from targets
Now * is just a pipeline frontend shorthand.
2022-10-20 14:20:12 +02:00
Alessandro Di Federico cf62e6dce7 Minor changes 2022-09-22 17:43:55 +02:00
Davide Depau 286a9fe2d3 revng-analyze: add InitRevng to entrypoint 2022-09-19 08:32:02 +02:00
Davide Depau 42e932ad39 revng-artifact: add InitRevng to entrypoint 2022-09-19 08:31:55 +02:00
Massimo Fioravanti 633f49c1ef Introduce dedicated namespace for kinds and ranks 2022-08-29 14:44:53 +02:00