Giacomo Vercesi
8b2da15c18
revng-pipeline: introduce artifacts
...
Add a new key to a Step, named Artifacts. If present, it indicates that
the step has a "default" Kind and Container that can be easily retrieved
without explicitly specifying either when producing an artifact.
2022-04-26 15:05:30 +02:00
Giacomo Vercesi
9b16efefc2
Add MIMEType to container
...
Add additional field MIMEType to Container.
This allows API consumers to know at runtime how to treat the data
within a container without any prior knowledge.
2022-04-26 15:05:30 +02:00
Giacomo Vercesi
f4d63759de
PipelineC: expose kinds, ranks and more
...
Adds missing API functions to PipelineC that will be needed by the
GraphQL API:
* Kinds enumeration
* Get Rank and parent of a Kind
* Enumerate and inspect Ranks
* Get a Step's parent
Included are some docstring fixes
2022-04-26 15:05:30 +02:00
Giacomo Vercesi
a831fa8e74
ContainerSet: add isContainerRegistered
...
This function allows to check if a container is registered,
irrespective of its initialization status
2022-04-26 15:05:30 +02:00
Filippo Cremonese
1af425c730
Minor changes
2022-04-26 15:05:30 +02:00
Massimo Fioravanti
eef9ba74da
Introduce ModelInvalidationEvent
2022-04-15 15:17:58 +02:00
Massimo Fioravanti
60fd53b1fb
Introduce Kind::verify
2022-04-15 15:17:37 +02:00
Alessandro Di Federico
f6c9b04c81
Adopt clang-tidy: readability-identifier-naming
2022-04-04 21:15:52 +02:00
Alessandro Di Federico
30febba0ab
mv revng/{Pipeline,Support}/DynamicHierarchy.h
2022-03-31 12:50:12 +02:00
Pietro Fezzardi
de033b50f2
RegisterLLVMPass.h: add missing include
...
Missing `#include "revng/Pipeline/Loader.h"` causes compilation error
when calling `Loader.registerLLVMPass<LLVMPass>(Name);`.
This is a problem since whoever includes `RegisterLLVMPass.h` should
include `Loader.h` **before** `RegisterLLVMPass.h` to compile without
errors. This is subject to breakage if `Loader.h` ever changes name and
`clang-format` starts reordering the include **after**
`RegisterLLVMPass.h`.
This commit inlcudes `Loader.h` directly in `RegisterLLVMPass.h` to fix
the root cause.
2022-03-30 19:42:22 +02:00
Pietro Fezzardi
b4c733ab57
Move Concepts.h into include/ADT for better reuse
2022-03-30 17:09:24 +02:00
Massimo Fioravanti
c05b5dbb28
Steps now represent the *end* of a step
...
A special "begin" step has been introduced.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
b362d926ec
pipeline: drop implicit rank 0
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
c1d97bf8b3
pipeline: make globals serializable
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
b1dac5d17b
ContainerBase: introduce serialization primitives
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
58768aca42
YAML pipelines: rename pipe "Name" to pass "Type"
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
7eeb9f50c0
pipeline --verbose: print list of commands
...
`revng pipeline --verbose` will now print a list of equivalent commands
for the current invocation.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
7aa57ab3b0
LLVMContainer::mergeBack: fix linking failure
...
`linkInModule` returns true on error. So the condition for failure is
`link(final, module1) || link(final, module2)`, instead of `&&`.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti
bb23892df7
Fix detail namespaces
...
Some `revng::detail` namespace were already inside a different namespace
which lead to the `revng::revng` namespace.
2022-03-28 12:17:05 +02:00
Alessandro Di Federico
3cc138c8d6
Drop cloneMetadata
...
It was an hack to circumvent a bug in LLVM.
The following LLVM commit properly fixes the problem:
[Cloning] Clone metadata on function declarations
2022-03-17 16:46:02 +01:00
Alessandro Di Federico
9fb3b647a4
Introduce DropRootPass
2022-03-17 14:10:50 +01:00
Alessandro Di Federico
0793e4afcb
Turn lifting into a pass
2022-03-11 15:37:12 +01:00
Alessandro Di Federico
5e38805063
Rename detail namespaces into revng::detail
2022-03-11 15:37:12 +01:00
Antonio Frighetto
e798131082
O2Pipe: fix pipe name
2022-03-02 15:40:27 +01:00
Alessandro Di Federico
e80d159944
revng-pipline: simplify Kinds.h
2022-02-08 17:44:33 +01:00
Massimo Fioravanti
98ecd38162
Drop PureLLVMPipe
...
Now LLVM passes can be used directly in an LLVMPipe without specifying a
contract for it.
2022-02-07 22:24:39 +01:00
Alessandro Di Federico
3b7d7c5f7e
Don't use llvm::outs
2022-02-07 22:24:39 +01:00
Alessandro Di Federico
fec5f3537b
s/Granularity/Rank/
2022-02-07 22:24:39 +01:00
Alessandro Di Federico
e2cd7cbcdf
Pipeline: simplify LLVMContainer
2022-02-07 20:11:37 +01:00
Massimo Fioravanti
396095706f
Minor changes to revngPipeline
2022-02-07 20:11:15 +01:00
Alessandro Di Federico
0f084ed620
Minor changes
2022-02-07 16:55:46 +01:00
Alessandro Di Federico
78be0e9268
Explode TupleTree.h
2022-01-31 16:28:26 +01:00
Massimo Fioravanti
70ec456078
Introduce revng-pipeline
2022-01-17 18:17:54 +01:00