Alessandro Di Federico
2ee833d985
Merge branch 'feature/libc-start-main-fixes'
2025-03-05 10:19:02 +01:00
Alessandro Di Federico
25239cdf34
Improve RemoveStackAlignmentPass
...
This commit adopts `PatternMatch.h` and adds support discarding
alignment operations even if they are performed after manipulating the
stack pointer.
For instance, glibc's `_start` does the following:
xor ebp,ebp
mov r9,rdx
pop rsi
mov rdx,rsp
and rsp,0xfffffffffffffff0
2025-03-05 09:57:51 +01:00
Alessandro Di Federico
61eb102906
DecompileFunction: fix noreturn calls comment
...
Unfortunately, the assumption that `noreturn` functions always return
`void` does not hold in the real world.
2025-03-05 09:57:51 +01:00
Alessandro Di Federico
cac8b5d1b1
ELFImporter: search libs in the input directory
2025-03-05 09:57:51 +01:00
Alessandro Di Federico
d4cd9beb77
Minor changes
2025-03-05 09:57:51 +01:00
Ivan Krysak
48b6ab7597
ABI: fix a rare crash on a misaligned argument
2025-03-05 08:57:35 +02:00
Ivan Krysak
4bdba0263e
Yield: fix call graph node height being set to 0
2025-03-04 13:34:51 +02:00
Ivan Krysak
a094f32c4e
Yield: fix node size calculation ignoring margins
2025-03-04 13:34:51 +02:00
Alessandro Di Federico
26f05eeefc
Merge branch 'feature/ui-qa-2025-02-11'
2025-02-25 11:39:34 +01:00
Giacomo Vercesi
6d0eb467f7
tuple_tree python: implement keying
...
Implement keying functions for classes that have them.
2025-02-25 09:18:24 +01:00
Giacomo Vercesi
ca26c06ecc
EventManager: fix save logic
...
Fix the save logic of `EventManager` where an erroneous comparison lead
to the saves never being triggered.
2025-02-25 09:18:24 +01:00
Giacomo Vercesi
f666c70358
storeInvalidationMetadata: avoid file corruption
...
Wrap `ZstdCompressedOstream` in a scope, as this forces flushing its
output when destroyed. Without flushing the output, the invalidation
metadata could end up being half-written, resulting in a parsing error
and crash on the next startup of the pipeline.
2025-02-25 09:17:25 +01:00
Giacomo Vercesi
74cbb83d10
fetch-debuginfo: add retries
...
Add retries when fetching debugging symbols via the `revng model
fetch-debuginfo` command. Retries only apply when the status code
returned by the server is within the expected ones.
2025-02-24 18:17:47 +01:00
Alessandro Di Federico
22ab0ae718
ComputeStackAccessesBounds: fix mismatch in types
2025-02-21 14:26:59 +01:00
Alessandro Di Federico
935ae4fd6c
Merge branch 'feature/harmonize-lift-optimizations'
2025-02-20 18:23:32 +01:00
Alessandro Di Federico
c631f9505a
JT::harvest: add a step doing instcombine
2025-02-20 17:58:26 +01:00
Alessandro Di Federico
62b518b381
Lift: limit instcombine to one iteration
2025-02-20 17:58:00 +01:00
Alessandro Di Federico
943ae3be22
Merge branch 'feature/more-comments'
2025-02-13 12:23:48 +01:00
Ivan Krysak
bf6aa40e05
buildControlFlowGraph: improve error messages
...
A concept is going to lead to clear feedback as opposed to typical
SFINAE-adjacent construction error message.
2025-02-13 13:10:51 +02:00
Ivan Krysak
705e4a5955
auto [...] -> auto &&[...]
2025-02-13 13:10:51 +02:00
Ivan Krysak
5b8c03b89a
Introduce unit tests for comment placement
2025-02-13 13:09:50 +02:00
Ivan Krysak
f494ae5f5f
Standardize comment formatting
...
Use `*something*` instead of `_something_` when adding emphasis.
2025-02-13 13:09:50 +02:00
Ivan Krysak
492e5dc354
Yield: greatly simplify node size calculation
2025-02-13 13:09:50 +02:00
Ivan Krysak
bd68130eaa
Yield: adopt CommentLineWidth
2025-02-13 13:09:50 +02:00
Ivan Krysak
99a8e28e3b
PTMLCTypeBuilder: adopt CommentLineWidth
2025-02-13 13:09:50 +02:00
Ivan Krysak
6994395216
ModelConfiguration: introduce CommentLineWidth
2025-02-13 13:09:50 +02:00
Ivan Krysak
9082c500cb
IndentedOstream: introduce currentIndentation()
2025-02-13 13:09:50 +02:00
Ivan Krysak
05faed3795
PTML: introduce a way to disable comment warnings
2025-02-13 13:09:50 +02:00
Ivan Krysak
fb95595b10
Backend: add comment emission support
2025-02-13 13:09:50 +02:00
Ivan Krysak
45e01ae0d2
Introduce a pipe for embedding statement comments
2025-02-13 13:09:50 +02:00
Ivan Krysak
255bd256fe
Backend: expose isStatement helper
2025-02-13 13:09:50 +02:00
Ivan Krysak
ab1da1d986
FunctionTags: introduce Comment
2025-02-13 13:09:50 +02:00
Ivan Krysak
de7d13c7d7
Yield: adopt statement comments in disassembly
2025-02-13 13:09:50 +02:00
Ivan Krysak
d4ab801ab7
Rename range_with_value_type into RangeOf
...
Original name was reminiscent of the STL, but there's no such concept
in there, as such it's probably better to use revng naming convention
instead.
2025-02-13 13:09:50 +02:00
Ivan Krysak
f5314e45d8
SortedVector: allow constexpr construction
2025-02-13 13:09:50 +02:00
Ivan Krysak
3ec854421b
Yield: separate prefix size computation
2025-02-13 13:09:50 +02:00
Ivan Krysak
1c9b6a70db
PTML: add statement comment support
2025-02-13 13:09:50 +02:00
Ivan Krysak
a4550ce7e6
PTML: introduce comment placement helper
2025-02-13 13:09:50 +02:00
Ivan Krysak
08bd4ecca8
Model: introduce statement comment verification
2025-02-13 13:09:50 +02:00
Ivan Krysak
9564959871
Model: introduce statement comments
2025-02-13 13:09:50 +02:00
Ivan Krysak
9e48994c97
EFA: pass the block to the new nodes
...
Before this commit, only its index was passed.
2025-02-13 13:09:50 +02:00
Ivan Krysak
3b354f2590
TrackingContainer: allow comparisons with wrapped
2025-02-13 13:09:50 +02:00
Ivan Krysak
66688134bf
MetaAddress: rework hashing
2025-02-13 13:09:50 +02:00
Ivan Krysak
8841bc7144
Don't include model::NameBuilder from the binary
2025-02-13 13:09:50 +02:00
Ivan Krysak
6c43cebc90
Model: let VerifyHelper depend on NameBuilder
2025-02-13 13:09:50 +02:00
Ivan Krysak
288448f009
Never include model::VerifyHelper from headers
2025-02-13 13:09:50 +02:00
Ivan Krysak
929cb4b35b
Minor improvements
2025-02-13 13:09:50 +02:00
Alessandro Di Federico
4e2df7faf7
Merge branch 'feature/raw-to-cabi-conversion-fixes'
2025-02-13 11:19:23 +01:00
Ivan Krysak
a93ffd3760
Rename UnusedStackArgumentBytes
...
Old name was `StackBytesAllocatedForRegisterArguments`.
2025-02-12 16:43:19 +02:00
Ivan Krysak
9bb71627ea
ToCABI: do basic float detection cleanup
...
Note that this whole thing is going to get redesigned from scratch
(by manifesting a proper type system graph) when we'll finally start
working on the *real* float support.
2025-02-12 16:43:11 +02:00