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
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
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
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
452036edf1
Purge instructions to save return address
2024-04-30 15:25:53 +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
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
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
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
Ivan Krysak
89b454a224
EFA: improve robustness against non-existent FSO
2024-03-18 19:32:35 +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
Ivan Krysak
6b7650276e
EFA: split importModel into multiple methods
2024-03-18 19:32:34 +01:00
Ivan Krysak
5afba1382c
EFA: update clobbered register list computation
2024-03-18 19:32:34 +01:00
Ivan Krysak
7e08c341e9
EFA: update preserved register diffing
2024-03-18 19:32:34 +01:00
Ivan Krysak
2aad45f452
EFA: reorder prototype-based summary importer
...
This lets up cleanly "bail out" after only some of the computation
is done. This way we avoid reading information we don't really use
from the model based on who is the specific user of the oracle.
2024-03-18 19:32:34 +01:00
Ivan Krysak
78d0802f74
EFA: turn importPrototype into a helper struct
2024-03-18 19:32:34 +01:00
Ivan Krysak
9c9e642589
EnforceABI: stop using Layout
2024-03-18 19:32:34 +01:00
Ivan Krysak
b1c2683b87
EFA: stop using Layout
2024-03-18 19:32:34 +01:00
Ivan Krysak
c9c4d5c8b6
Lift: stop using Layout
2024-03-18 19:32:34 +01:00
Ivan Krysak
dc16217f6d
Layout: introduce usedRegisters helper
2024-03-18 19:32:34 +01:00
Ivan Krysak
0d5c93ed36
Distributor: add nextPositionBasedIndex
2024-03-18 19:32:34 +01:00
Ivan Krysak
408c37caf2
Layout: introduce finalStackOffset helper
2024-03-18 19:32:34 +01:00
Ivan Krysak
58e5fffb14
Layout: rework dump
2024-03-18 19:32:34 +01:00
Ivan Krysak
f2ab83489c
Yield: fix missing delay slots
...
When converting to PTML half of the delay slot logic
2024-03-18 11:40:32 +00:00
Ivan Krysak
44e5328477
Yield: add explicit directive support
2024-03-18 11:40:32 +00:00
Ivan Krysak
346cb498d3
Yield: make disassembly output objdump-like
2024-03-18 11:02:21 +00:00
Ivan Krysak
77fb7e6e5b
Yield: introduce BasicBlockPrefix option
2024-03-18 10:58:55 +00:00
Ivan Krysak
e5328290c6
Yield: reorder disassembly processing
...
This commit moves stuff around to enforce complete information being
present by the time the "Internal" assembly output is ready.
Because of that, the "Internal" format needed to change, now it uses
tag representation close to PTML as opposed to the one close to LLVM's
used before now.
2024-03-18 10:58:52 +00:00
Ivan Krysak
948d905752
Add PrintFullMetaAddress configuration option
2024-03-18 11:58:11 +01:00
Ivan Krysak
4d7785f0bb
Yield: remove unused 'plain' assembly style
...
When needed similar results can be achieved using `GenerateTagLessPTML`
option of the `PTMLBuilder`.
2024-03-18 11:58:11 +01:00
Ivan Krysak
e2018fa1c3
MetaAddress: add partial serialization option
2024-03-18 11:58:11 +01:00
Ivan Krysak
86fdb19b9f
MetaAddress: pull separator into the header
2024-03-18 11:58:11 +01:00