Commit Graph

3185 Commits

Author SHA1 Message Date
Alessandro Di Federico 47c3dd8f0f Drop model::Segment::Sections 2024-05-22 10:25:25 +02:00
Alessandro Di Federico 0377ed6c04 StdStorageClient::type: always return Missing 2024-05-22 10:25:25 +02:00
Alessandro Di Federico f35ca5efc2 for-collect-cfg.yml: make tests more robust 2024-05-22 10:25:25 +02:00
Alessandro Di Federico 31b1b66f44 Reorder model::Binary fields 2024-05-22 10:25:25 +02:00
Alessandro Di Federico efe381e839 Improve failed precondition checks reporting 2024-05-22 10:25:25 +02:00
Alessandro Di Federico 3be8f4c3d3 Lift: require DefaultABI or DefaultPrototype 2024-05-22 10:25:25 +02:00
Alessandro Di Federico c061f1f971 Make Pipe::checkPrecondition mandatory 2024-05-22 10:25:25 +02:00
Alessandro Di Federico 738da4fbb5 Minor changes 2024-05-22 10:25:25 +02:00
Djordje Todorovic e3f191ff67 doc: Adjust tests because of cast reduction 2024-05-16 17:55:19 +02:00
Alessandro Di Federico e64eee9402 CodeGenerator: handle partially valid instructions
Sometimes we have instructions that are, say, two bytes long but only
one of the two bytes are invalid (because they end up out of the
segment).
2024-05-15 13:19:42 +02:00
Alessandro Di Federico b273caa8dc FunctionMetadata::findBlock: do not ignore IBDHB 2024-05-15 13:19:42 +02:00
Alessandro Di Federico 38ea8f5237 Handle calls to non-functions 2024-05-15 13:19:40 +02:00
Alessandro Di Federico 4eb44e3555 Merge branch 'feature/improve-build-times' 2024-05-03 21:53:42 +02:00
Alessandro Di Federico bf6cefc05a Externalize functions to improve build times 2024-05-03 21:52:40 +02:00
Alessandro Di Federico fe1dffcffd Add some missing includes
This is in preparation of reducing headers in Debug.h.
2024-05-03 21:52:40 +02:00
Alessandro Di Federico 25c7834b21 Introduce test_adt
This should reduce build times.
2024-05-03 21:52:40 +02:00
Alessandro Di Federico b392105f48 Merge branch 'feature/efa-4' 2024-05-03 19:28:56 +02:00
Alessandro Di Federico 8eca2e13fe Do not use SmallPtrSet with std::includes 2024-05-03 17:59:34 +02:00
Alessandro Di Federico 452036edf1 Purge instructions to save return address 2024-04-30 15:25:53 +02:00
Alessandro Di Federico f777eaf00f Introduce tests for RegisterUsageAnalyses 2024-04-19 18:33:00 +02:00
Alessandro Di Federico 0459b9d084 Introduce RegisterUsageAnalyses 2024-04-19 18:33:00 +02:00
Alessandro Di Federico 9d12cd35e3 DwarfImporter: improve logging 2024-04-19 18:33:00 +02:00
Alessandro Di Federico 58d965f977 DwarfImporter::getName: consider abstract_origin 2024-04-19 18:33:00 +02:00
Alessandro Di Federico fcd04c163b DwarfImporter: hack to handle transparent unions 2024-04-19 18:33:00 +02:00
Alessandro Di Federico 2267b51090 Mark findPrototype as inline 2024-04-19 18:33:00 +02:00
Alessandro Di Federico ba65443293 DetectABI call graph: no multiple identical edges 2024-04-18 17:55:22 +02:00
Alessandro Di Federico 0b4476d824 Introduce FunctionSummary::clone 2024-04-18 17:55:15 +02:00
Alessandro Di Federico ab3d546b0a Introduce GenericGraph::dumpGraph() 2024-04-18 17:50:33 +02:00
Alessandro Di Federico dcfb4621a7 Improve GenericGraph::verify 2024-04-18 17:50:33 +02:00
Alessandro Di Federico a1f3624b21 TraceProgressListener: flush upon signal 2024-04-18 17:50:33 +02:00
Alessandro Di Federico 3b135a2a2f MFP: use the provided GraphTraits for RPOT 2024-04-18 17:50:32 +02:00
Alessandro Di Federico d36d0184d3 SerializableGraph: fix template usage 2024-04-18 17:50:32 +02:00
Alessandro Di Federico a1b0ba752c GenericGraph: implement Edge::operator==
This fixes a subtle bug in GenericGraph. Basically, if the label of an
Edge was the Empty data structure, whose `operator==` always returns
`true`, the comparison between edges was broken.
2024-04-18 17:50:32 +02:00
Alessandro Di Federico d8e58f7a36 for-detect-abi.yml: re-enable tests
Tests were accidentally disabled due to a typo.
2024-04-18 17:50:31 +02:00
Alessandro Di Federico c2da2ba08a revng-check-conventions: ignore empty files 2024-04-18 17:50:31 +02:00
Alessandro Di Federico dae9f33544 Minor changes 2024-04-18 17:50:31 +02:00
Alessandro Di Federico 9bbf1cc144 DwarfImporter: renumber UnionFields after cleanup 2024-04-11 15:29:39 +02:00
Alessandro Di Federico 53f0c71d3b FunctionMetadata::dumpCFG: dump to file 2024-04-05 13:29:15 +02:00
Alessandro Di Federico dda484d642 FunctionMetadata::simplify: use .nextBlock()
Before we were using `.End()` which lead to lose the inlining index.
2024-04-05 13:28:31 +02:00
Giacomo Vercesi f7b1130dc2 mkdocs: add additional.js
Add an empty `additional.js` file which can be used by downstream users
for additional javascript code.
2024-03-26 11:30:14 +01:00
Alessandro Di Federico cdfd91c334 Merge branch 'feature/revng-c-fixes-tier-2' 2024-03-19 17:33:00 +01:00
Pietro Fezzardi df3bd470a1 Enforce determinism on CSV handling
Various parts of revng replace `llvm::GlobalVariable`s representing CSVs
with Allocal/Load/Store. In particular, these are PromoteCSV,
RootAnalyzer and PromoteGlobalToLocalVars.

Before this commit, those places were sloppy when replacing CSVs with
Alloca/Load/Store, and did that iterating on a container sorted by
pointers. This caused Alloca/Load/Store to be emitted in different order
accross runs, which in turn caused more non-determinism down the
pipeline.

This commit fixes the non-deterministic behavior, sorting CSVs based on
their names, which should always be present and deterministic.
2024-03-19 09:43:59 +01:00
Pietro Fezzardi 1baec8ff7b Drop old MonotoneFramework 2024-03-19 09:43:59 +01:00
Pietro Fezzardi 2cd7777030 MFP: add SetIntersectionLattice 2024-03-19 09:43:59 +01:00
Alessandro Di Federico cf3072d0c5 Merge branch 'feature/avoid-excessive-layout-usage' 2024-03-18 19:32:36 +01:00
Ivan Krysak 89b454a224 EFA: improve robustness against non-existent FSO 2024-03-18 19:32:35 +01:00
Ivan Krysak 13cc649226 test-model-diff: fix temporary directory usage 2024-03-18 19:32:35 +01:00
Ivan Krysak 64eb2adb7c Minor improvements 2024-03-18 19:32:34 +01:00
Ivan Krysak 0692ef0828 Doxygen: be extra explicit about layout usage 2024-03-18 19:32:34 +01:00
Ivan Krysak d1d97fe47e PTML: fix doxygen stack indication 2024-03-18 19:32:34 +01:00