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
Ivan Krysak
001afd7eea
PermutationSelection: rethink iteration count
...
This change slightly improves the performance on slow to medium graphs
while leaving the performance on somewhat big ones untouched and
making the extremely big ones a lot worse. It also greatly improves
performance in the general case.
2024-03-18 11:58:11 +01:00
Ivan Krysak
7634b67153
PremutationSelection: introduce a bail condition
...
This allows algorithm to avoid spinning unnecessary where we choose
an overly-big iteration count.
2024-03-18 11:58:11 +01:00
Ivan Krysak
67c4a65122
Minor improvements
2024-03-18 11:58:11 +01:00
Ivan Krysak
2bffccaaf6
Move ImmediateStyle configuration to the model
2024-03-18 11:58:11 +01:00
Ivan Krysak
184aa03847
Move AddressStyle configuration to the model
2024-03-18 11:58:11 +01:00
Ivan Krysak
2827c9d7f7
Move UseATTSyntax configuration to the model
2024-03-18 11:58:11 +01:00
Ivan Krysak
d781f3ae79
Yield: make disassembler config-aware
2024-03-18 07:20:41 +00:00
Ivan Krysak
371784afbd
Model: introduce basic disassembly configuration
2024-03-18 07:20:41 +00:00
Ivan Krysak
870efbf201
Yield: introduce a conditional instruction prefix
2024-03-18 07:20:41 +00:00
Ivan Krysak
08041ba771
ToCFT: fix last stack argument verification
...
It was still broken, even after `feature/alignment-fixes`, so
this commit softens requirements even further, to allow some of
the desired cases to pass through the verifier.
2024-03-15 19:05:10 +01:00
Alessandro Di Federico
250354bd27
ValueMaterializer: work around unreachable blocks
2024-03-15 19:05:10 +01:00
Alessandro Di Federico
3fb9e58b0a
Progress: cap line length to terminal size
2024-03-01 17:47:28 +01:00
Alessandro Di Federico
aec4be9b07
AttachDebugInfo: improve docs
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
ffe93548c5
Model ::size(): do not suspend tracking
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
7f1a15d1bb
Model: ignore empty ExportedNames
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
db4e5c4a5e
Introduce dumpModel
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
c346e60ee7
PromoteOriginalName: no globals with local names
...
This commit ensures we do not introduce new global symbols that would
make local symbols invalid.
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
6f4923265e
Type verify: improve error reporting
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
3cfd01e617
DwarfImporter: correctly handle Expected
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
c7868b4e7d
Runner: improve logging
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
0da9d1e1a4
Model: fix handling of 0-sized arguments
...
We used to support having a single `void` argument. It was for some
C-compatibility ambitions, but just omitting the argument is perfectly
fine.
Also, the DWARF importer has been fixed to handle typedef'd void as
arguments.
More in general, arguments are now required to always have a size.
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
d9e649d272
Importer/Binary: improve logging
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
aa882f1bef
Importer/Binary: fix default XDG cache path
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
6b4f44af2d
Minor changes
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
2347304b70
Progress.cpp: handle StepsCount == 0
2024-03-01 14:23:30 +01:00
Alessandro Di Federico
340b02c71e
DwarfImporter: improve progress reporting
2024-03-01 14:23:08 +01:00
Ivan Krysak
069d3d3972
ToCABI: improve logger messages
2024-02-09 15:09:37 +00:00
Ivan Krysak
e708a3655b
ABI: drop incomplete clrcall support
2024-02-09 15:09:37 +00:00
Ivan Krysak
c8cd0ab503
ValueDistributor: improve success log message
2024-02-09 15:09:37 +00:00
Ivan Krysak
27491410d6
ABI: introduce a way to disable vector registers
2024-02-09 15:09:37 +00:00
Ivan Krysak
bc6673d90d
ABI: make alignment-computation fails stricter
2024-02-09 15:09:37 +00:00
Ivan Krysak
a018d443e1
ABI: update "safe" conversion list
2024-02-09 15:09:37 +00:00
Ivan Krysak
68301138c0
ABI: redesign register sorting from the ground up
2024-02-09 15:09:37 +00:00
Ivan Krysak
5bf4b3fa1e
ABI: improve robustness to duplicate registers
2024-02-09 15:09:37 +00:00
Ivan Krysak
fffbd27b99
Pipeline: be more explicit when step names collide
2024-02-09 15:09:37 +00:00
Ivan Krysak
9d815d79ec
ToRaw: take advantage of the updated distributor
...
This lets us drop the repeated alignment calculations at
the "leaves" of the conversion. Since new distributor already
provides the necessary information, we can just grab it from
there.
2024-02-09 15:09:37 +00:00
Ivan Krysak
40e443f354
ArgumentDistributor: add a SPTAR helper
2024-02-09 15:09:37 +00:00
Ivan Krysak
526cb7385a
ValueDistributor: support stack argument offset
2024-02-09 15:09:37 +00:00
Ivan Krysak
5c99229c6f
ToRaw: fix issues with how types were selected
...
Pointer-to-copy support was severely flawed.
2024-02-09 15:09:37 +00:00
Ivan Krysak
65cf1f08fd
Distributor: add explicit pointer-to-copy-support
2024-02-09 15:09:37 +00:00
Ivan Krysak
a468698d23
ValueDistributor: be extra explicit around padding
...
Before this, padding was just handled as a part of the size, but that
made it unnecessarily hard to work with. Now, everything padding-related
is extremely explicit.
2024-02-09 15:09:37 +00:00