Commit Graph

1314 Commits

Author SHA1 Message Date
Alessandro Di Federico aeeae32e64 Drop TargetListContainer 2024-09-27 10:33:28 +02:00
Alessandro Di Federico 1b6001682b Pipeline: reduce usage of Context 2024-09-27 10:33:28 +02:00
Alessandro Di Federico 1b714e5e99 Drop Pipe::print 2024-09-27 10:33:28 +02:00
Alessandro Di Federico 3bb6c2e019 Make Pipe::checkPrecondition optional 2024-09-27 10:33:28 +02:00
Alessandro Di Federico 77ba667ddd Drop TaggedFunctionPass 2024-09-27 10:33:28 +02:00
Alessandro Di Federico f66afa3cae s/deserialize/fromString/g 2024-09-27 10:33:28 +02:00
Alessandro Di Federico cc33185d6c Target::dump: use toString 2024-09-27 10:33:28 +02:00
Alessandro Di Federico b8cccd9673 Outline InvalidationMetadata::PipeWrapper 2024-09-27 10:33:27 +02:00
Alessandro Di Federico 43bfcb6d7b Initialize pointers to nullptr 2024-09-27 10:33:27 +02:00
Alessandro Di Federico 274925268e s/serialize/toString/
We keep serialize for method dealing with streams.
If it returns a `std::string`, let's use `toString`.
2024-09-27 10:33:27 +02:00
Alessandro Di Federico a3755c2dd6 s/Context &Ctx/Context &Context/g 2024-09-27 10:33:27 +02:00
Alessandro Di Federico 606612de40 s/ExecutionContext &Ctx/ExecutionContext &EC/g 2024-09-27 10:33:27 +02:00
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