Alessandro Di Federico
bc8af9203b
Introduce recreateWithoutBody
...
Similar to moveToNewFunctionType, but doesn't move the BasicBlocks.
2024-09-27 10:33:27 +02:00
Alessandro Di Federico
f11779a248
FunctionPassImpl: getAnalysis for functions
...
`pipeline::FunctionPass` is actually a ModulePass, therefore, in order
to use `getAnalysis` on a pass running with function granularity, we
need to use the `getAnalysis` overload accepting a `llvm::Function`.
2024-09-27 10:33:26 +02:00
Alessandro Di Federico
ce7a3bb556
Make pipe names dynamic
...
This enables us to have the list of passes in the `generic-llvm-pipe`
name, which would be otherwise carrying poor information.
2024-09-27 10:33:26 +02:00
Alessandro Di Federico
a87c7a3d21
Ensure every pipe commits what it should
...
This commit is the final step in ensuring all the pipes commit what they
should. It also asserts this actually happens, enabling us to easily
catch future problems.
2024-09-27 10:33:26 +02:00
Alessandro Di Federico
8113986007
ZipMapIterator: handle llvm::StringMap
2024-09-27 10:33:26 +02:00
Alessandro Di Federico
9481497b2d
Pipeline: improving dump methods
2024-09-27 10:33:26 +02:00
Alessandro Di Federico
660b3a18f2
Minor changes
2024-09-27 10:33:26 +02:00
Andrea Gussoni
70734496f3
GenericGraph: remove Undirected
...
Remove the `Undirected` `GraphTraits`
2024-09-20 16:08:50 +02:00
Ivan Krysak
8f41b0017e
Model: fix failure to parse void
2024-08-30 14:40:09 +02:00
Alessandro Di Federico
7b2f02c519
DisassemblyHelper: default initialize struct
2024-08-23 15:01:29 +02:00
Ivan Krysak
df4bf51c75
ABI: improve the type filtering helper
...
It now supports specifying a list of types to ignore.
2024-08-16 16:33:39 +02:00
Alessandro Di Federico
cba1d6fa51
PDBImporter: fix .pdb path lookup
2024-08-16 13:01:57 +02:00
Andrea Gussoni
eeca8f781c
GenericGraph: introduce Undirected
...
Introduce the `Undirected` GraphTraits, which treats a `MutableEdgeNode`
`GenericGraph` as an undirected graph.
The trait uses the newly introduced `UndirectedChildIterator`, which is
a special custom iterator to get successors and predecessors
concatenated together.
Add some unit tests for `UndirectedChildIterator`.
2024-08-12 12:32:45 +02:00
Andrea Gussoni
c32a4776ab
GenericGraph: edge traits for llvm::Inverse
2024-08-12 12:32:45 +02:00
Alessandro Di Federico
024c9abda2
Step: fix use-after-free
2024-08-07 16:07:59 +02:00
Alessandro Di Federico
744184c90c
Do not use CallBase::getCalledFunction
...
Use our wrapper, which does not return nullptr if the `FunctionType`s do
not match.
2024-08-07 16:07:59 +02:00
Alessandro Di Federico
80237078e4
setMetaAddressMetadata: use MDString
2024-08-07 16:07:59 +02:00
Alessandro Di Federico
09bc315448
Pipeline: improve invalidation logging
2024-08-07 16:07:59 +02:00
Alessandro Di Federico
15d72e580d
MetaAddress::address*: simply ignore Type
2024-08-05 17:41:41 +02:00
Alessandro Di Federico
7b00473859
PDBImporter: rework .pdb search
2024-08-05 17:41:34 +02:00
Alessandro Di Federico
06023b4555
BitLivenessWrapperPass::dump
2024-07-10 16:19:26 +02:00
Alessandro Di Federico
7ddae47040
Minor changes
2024-07-10 15:34:19 +02:00
Alessandro Di Federico
3c839cb821
Pipe::mutableContainers: use running containers
2024-07-09 08:58:51 +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
b900e36a68
CommonTypeMethods: introduce isAggregate
2024-06-27 11:05:52 +02:00
Ivan Krysak
0aa2ae7f08
Pipes: introduce a primitive rank
2024-06-27 11:05:52 +02:00
Ivan Krysak
cd2fdafc45
TupleTree: never assign root directly
...
This prevented expected cache invalidation when a new root was
assigned.
2024-06-27 11:05:52 +02:00
Ivan Krysak
b72e2fd87b
Model: allow omission of void size
2024-06-27 11:05:52 +02:00
Ivan Krysak
9a3086694b
UpcastablePointer: do not crash on empty print
2024-06-27 11:05:52 +02:00
Ivan Krysak
fbe1416aa2
ConstexprString: add operator*
2024-06-27 11:05:52 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
42c1ea30f0
Allow deserialize to be called on non-root types
2024-06-27 11:05:51 +02:00
Ivan Krysak
ffea5d9d4a
TupleTreeReference: evict cache on setting root
2024-06-27 11:05:51 +02:00
Ivan Krysak
150d992368
Pipes: rename Type rank into TypeDefinition
2024-06-27 11:05:51 +02:00
Ivan Krysak
51208789a0
Rename ThePTMLBuilder into just B
2024-06-27 11:05:51 +02:00
Ivan Krysak
776a5cdc52
Model: move path data away from the header
2024-06-27 11:05:51 +02:00
Ivan Krysak
52aa0b5942
Model: introduce filters
2024-06-27 11:05:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
f2d12ec94a
Model: fix metadata helpers
...
Before now, when called on an non-supported type, they were just
silently doing nothing.
Also, they now correctly handle const inputs.
2024-06-27 11:05:51 +02:00
Ivan Krysak
9e0f0f72f5
RecursiveCoroutine: add operator!
2024-06-27 11:05:51 +02:00
Ivan Krysak
e2e95721cc
UpcastablePointer: add a new copy constructor
2024-06-27 11:05:51 +02:00
Ivan Krysak
3c64d9b6c8
Concepts: introduce ConstPtrIfConst
2024-06-27 11:05:51 +02:00
Ivan Krysak
e268b854cc
Concepts: introduce NonBaseDerived
2024-06-27 11:05:50 +02:00
Ivan Krysak
1f16a5bee6
KeyedObjectContainers: add erase_if
2024-06-27 11:05:50 +02:00
Ivan Krysak
73c43add70
TupleTree: revamp the visitors
2024-06-27 11:05:50 +02:00
Ivan Krysak
6628cbe1b8
TupleTree: drop an unused argument
2024-06-27 11:05:50 +02:00
Ivan Krysak
925690a1e1
VerifyHelper: reduce pointer usage
2024-06-27 11:05:50 +02:00
Ivan Krysak
b6625e8913
Model: simplify fixModel pass
...
Instead of getting reimplemented/updated, it now just reuses normal
type verification routines.
2024-06-27 11:05:50 +02:00
Ivan Krysak
c76f7488d2
YAMLTraits: leave kind-less pointers empty
2024-06-27 11:05:50 +02:00
Ivan Krysak
72346979e2
TupleTree: improve nullptr robustness
2024-06-27 11:05:50 +02:00