Commit Graph

6113 Commits

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