Ivan Krysak
17557a65d1
Minor improvements
2024-03-18 13:27:53 +00:00
Alessandro Di Federico
d9367954a4
Convert all public strings to kebab-case
2024-02-09 10:04:24 +01:00
Alessandro Di Federico
5fbb5ff503
Minor changes
2024-02-09 10:04:17 +01:00
Ivan Krysak
b25a32de2a
Stop using std:: prefix for std::size_t
2024-01-29 11:57:54 +02:00
Giacomo Vercesi
ca3fb32aeb
Fix Step::invalidationMetadataContains
...
This commit fixes the `Step::invalidationMetadataContains` function
since it returned an inverted result.
2024-01-26 19:13:58 +01:00
Giacomo Vercesi
6ac7c0c557
Implement container cache pruning
...
Implement the pruning of container caches (resume directory) when there
is a mismatch between the current revng components' hash and the saved
one. This functionality is activated via `-check-components-version`.
2024-01-26 17:46:21 +01:00
Massimo Fioravanti
2ec4683874
Fix: invalidation map and invalidation cache
...
The invalidation map passed by callers of pipeline invalidate was
assumed to be always empty. This requirement has been relaxed.
The pipe invalidation cache now checks that what must be removed is
actually present. This is relevant for targets that are killed by later
pipes before the end of the step.
2024-01-02 15:08:26 +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
Massimo Fioravanti
643d96698d
Preliminaries for pipeline invalidation
...
Fix various bugs already present in the codebase.
2024-01-02 11:06:48 +01:00
Giacomo Vercesi
94aa2b51d2
Add Context Global Index
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
37adeb7eeb
Pipeline options: introduce -path options
...
In the case of string options, the pipeline will also create a `-path`
option, which makes the option contents from reading the specified file.
2023-11-03 12:13:58 +01:00
Giacomo Vercesi
acd498bf25
Pipeline options: restrict to int and strings
...
Restrict the type of pipeline options to integers and strings. Rework
the CLOpt mechanism to avoid parsing the string twice.
2023-11-03 12:13:57 +01:00
Giacomo Vercesi
ca0a6f82eb
Global.h: remove dead code
...
Remove the `HasVerify` concept as it is a leftover that's currently
unused.
2023-11-03 12:13:57 +01:00
Giacomo Vercesi
f710af9f2f
Cleanup revng.daemon graphql API
...
Drop autogenerated queries from the GraphQL API and switch `revng.api`
to use `PipelineDescriptor`.
2023-09-14 15:44:33 +02:00
Giacomo Vercesi
2a239ddf47
Introduce PipelineDescription
...
Add the PipelineDescription object that describes the structure of a
pipeline. This will be used by all the downstream users instead of
pipeline accessor methods via PipelineC.
2023-09-14 15:44:33 +02:00
Giacomo Vercesi
6b6bfd2693
pipeline::Option: fix TypeName
...
Fix the `getTypeName` function needed to report the type of an Analysis'
option.
2023-09-14 15:44:32 +02:00
Giacomo Vercesi
dab9369942
ContainerFactory: expose mime type
...
Allow retrieving the mimetype of a container without having to
materialize it in the pipeline.
2023-09-14 15:44:32 +02: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
Giacomo Vercesi
e719b3b7e5
Add components to revng cli driver
...
This commit introduces the concept of `Component` to a pipeline step.
This, in turn, can be used by clients to figure out which artifacts are
produced by which revng component.
Additionally, this commit overhauls the `revng daemon-self-test`
command, renaming it to `revng graphql` and adding extra flexibility.
2023-08-23 17:45:36 +02:00
Alessandro Di Federico
70136ab7ef
pipeline::Global: verify upon load
2023-08-23 16:14:04 +02:00
Alessandro Di Federico
e9470d6329
Pipeline: improve naming and docs
2023-08-01 12:17:20 +02:00
Alessandro Di Federico
14525d91f5
Adopt llvm::Task
2023-08-01 10:51:16 +02:00
Alessandro Di Federico
b188f91863
Introduce ContainerToTargetsMap::size()
2023-08-01 10:51:15 +02:00
Giacomo Vercesi
db7ad24175
PipelineManager: add produceTargets with checks
...
Move much of the logic of `rp_manager_produce_targets` to a method
inside `PipelineManager`, add additional checks for the existence of the
targets that are requested to be produced.
2023-07-31 16:05:51 +02:00
Kacper Kołodziej
7bec0190e8
Fix spelling in docstring
2023-07-31 11:29:40 +02:00
Djordje Todorovic
0e176f3147
Support for uint64_t in pipeline analyses options
2023-07-24 09:22:07 +02:00
Ivan Krysak
b2506d8f4b
STLExtras: separate compile time helpers
2023-07-21 17:25:24 +02:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00
Ivan Krysak
a123ec2c35
Remove clang-format off around concepts
...
Now that clang-format no longer breaks anything involving a concept or
a requires clause on sight, these are no longer necessary
2023-07-02 13:20:49 +02:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Ivan Krysak
01b4ec36c9
Formatting: set AllowShortEnumsOnASingleLine
...
The new value is `false`.
2023-07-02 13:15:08 +02:00
Ivan Krysak
d99b0241e8
Minor improvements
2023-05-17 14:08:04 +02:00
Giacomo Vercesi
31cd2b53f9
rcc: add codespell
...
Add codespell to the list of checks performed by
revng-check-conventions. This should reduce the amount of typos present
in the revng codebase.
2023-05-11 10:05:32 +02:00
Alessandro Di Federico
4eeb942afb
LLVMContainer: outline methods to .cpp
2023-04-28 14:34:49 +02:00
Alessandro Di Federico
8b3f641a29
Rename LLVMGlobalKindBase to LLVMKind
2023-04-28 14:34:49 +02:00
Massimo Fioravanti
4d4b587e1d
Drop LLVMGlobalKindBase template argument
2023-04-28 14:34:47 +02:00
Alessandro Di Federico
a0dcd176b2
Purge useless headers
2023-04-28 14:34:40 +02:00
Alessandro Di Federico
58b50e6b2a
Dismiss LLVMContainerBase
2023-04-28 14:34:39 +02:00
Alessandro Di Federico
8af3fd7fa3
LLVMContainer: do not duplicate appending globals
...
`llvm.global_ctors` and llvm.global_dtors were being cloned
exponentially many times. This was due to their `appending` linkage.
2023-04-28 14:04:32 +02:00
Alessandro Di Federico
2f917a2772
Introduce ModuleStatistics
2023-04-28 14:04:32 +02:00
Alessandro Di Federico
170749b0aa
Introduce revng::verify
2023-04-28 14:04:31 +02:00
Giacomo Vercesi
566cb6310b
PipelineC: make indexed object stably sorted
...
Many Pipeline objects (Globals, Ranks, Kinds, Targets in a TargetList)
were ordered by load order, this makes the playback of traces difficult.
Moreover the order of loading of pipeline files also influences the
ordering of other elements (Step, Analys{is,esLists}). These are also
ordered to prevent incosistent ordering.
2023-04-20 14:43:13 +02:00
Giacomo Vercesi
9a972009d1
PipelineC: size and const-correctness
...
Fix the return type (often mismatched from uint64_t to int) and the
const-correctness of many functions in PipelineC
2023-04-20 14:43:12 +02:00
Alessandro Di Federico
8ef567471b
LLVMContainer::mergeBackImpl: postpone verify
...
This commit moves module verification after cleanup.
2023-04-13 18:11:48 +02:00
Alessandro Di Federico
995d44cf73
Implement Location::{parent,back}
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
6564fc0568
Minor changes
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
52521f8cac
Adopt more standard library's features
2023-04-08 08:42:23 +02:00
Alessandro Di Federico
b2f22c168f
Adopt clang-format 16
2023-04-08 08:42:23 +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