Commit Graph

1302 Commits

Author SHA1 Message Date
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