Alessandro Di Federico
c5d8911b8d
Disasm: do not merge non-existing successor block
2025-10-29 15:10:18 +01:00
Alessandro Di Federico
4fb6b5f4e1
Minor changes
2025-10-24 18:20:48 +02:00
Ivan Krysak
ecb9d76c64
Model: drop obsolete default value handling
2025-10-13 18:33:10 +03:00
Ivan Krysak
97aa3c8247
std::string: use implicit default constructor
2025-07-23 11:38:53 +02:00
Ivan Krysak
66b42298de
PTML: Emit a location for statement comments
2025-05-08 15:42:00 +02:00
Ivan Krysak
c6e38cd485
Return to using constant name builders
...
Because of how name builders used to lazy gather namespaces on the first
requested name, the objects were self mutating. As such only non-const
references could be used to pass them around.
Since that is no longer the case, this restores most of lost const
qualifiers.
2025-04-17 11:19:17 +03:00
Ivan Krysak
57b5eb7f98
NameBuilder: allow different name checkers
2025-04-17 11:19:17 +03:00
Ivan Krysak
645cf7fc2e
NameBuilder: sunset deduplication
...
This reworks NameBuilder to ease the transition to the system where
the model will be guaranteed to never contain any name collisions, both
between user-specified names and the automatic ones.
2025-04-15 16:35:42 +03:00
Ivan Krysak
705e4a5955
auto [...] -> auto &&[...]
2025-02-13 13:10:51 +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
de7d13c7d7
Yield: adopt statement comments in disassembly
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
672ee5df50
Replace std::string_view with llvm::StringRef
2024-11-06 15:43:13 +02:00
Ivan Krysak
a67ba96644
Adopt name builder across the model users
2024-11-06 15:43:13 +02:00
Ivan Krysak
43f0304cb2
Pipeline: toString -> locationString
2024-10-15 09:12:55 +02:00
Ivan Krysak
ec19b26ee9
PTMLBuilder: rename into ptml::MarkupBuilder
2024-10-15 09:12:55 +02:00
Alessandro Di Federico
2cdedc71f4
s/serialize/toString/
...
We keep serialize for method dealing with streams.
If it returns a `std::string`, let's use `toString`.
2024-09-27 12:07:17 +02:00
Ivan Krysak
51208789a0
Rename ThePTMLBuilder into just B
2024-06-27 11:05:51 +02:00
Alessandro Di Federico
276a6e0efb
s|ControlFlowGraph.h|CFGHelpers.h|g
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
6e49fed965
FunctionMetadata::{ControlFlowGraph,Blocks}
2024-06-20 10:24:51 +02: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
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
184aa03847
Move AddressStyle configuration to the model
2024-03-18 11:58:11 +01: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
77b1acaf00
Prefer uint64_t to size_t wherever relevant
2024-01-29 11:57:54 +02:00
Giacomo Vercesi
db1691b03f
Adopt new PTML tags
...
Change the emitted disassembly to include the
`data-action-context-location` and `data-name-of` tags.
2023-11-03 16:30:40 +01:00
Giacomo Vercesi
f77d4d6d1f
PTML: introduce data-scope-location
...
Introduce the new `data-scope-location` tag that's to be used for
switching between C and ASM. Include the tag when generating ASM
instructions.
2023-07-31 16:05:51 +02:00
Ivan Krysak
5c31405e63
Model: rework edit path helpers from the ground up
2023-07-21 17:25:24 +02:00
Ivan Krysak
0c8a5aaffb
Model: move edit path helpers in from PTML
2023-07-21 17:25:24 +02:00
Ivan Krysak
7d235f4fd0
Enforce licence header consistency
...
Also do some basic cleanup: capitalize first letters, add `.`
at the end of the sentences, and so on.
2023-07-03 15:23:10 +00:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Djordje Todorovic
f05c08547d
ptml: Introduce PTMLBuilder class
...
By using this class we can create ptml::Tags without
XML tags. It is useful in the revng-c part when we
want to generate Plain C. All PTML Tags, from now on,
should be created via this class only.
In addition, port `Yield` library to be using this.
2023-06-09 17:15:30 +02:00
Ivan Krysak
29eae116fd
Assembly: handle addresses in a special way
2023-05-25 06:37:40 +00:00
Ivan Krysak
5cdb1642bb
Assembly: rework tag processing
2023-05-25 06:37:30 +00:00
Ivan Krysak
f0a29f17b9
Assembly: Introduce address style options
2023-05-25 06:37:21 +00:00
Ivan Krysak
9dfc350b1a
Assembly: do not add "next instruction" as target
2023-05-25 06:36:26 +00:00
Ivan Krysak
c21f2649c9
Assembly: introduce new tags
...
This also reorders the enum, because when two tags collide (they have
the same `from` and `to` points, they are sorted based on the enum
values.
The new order ensures that the values we are more likely to choose
to preserve are closer to the bottom. Since each token can only have one
type associated with it, we choose the lowest one by default.
2023-05-25 06:36:02 +00:00
Ivan Krysak
6a407a94bf
Assembly: partition label helper
...
This moves the internal implemetation details into a separate
function `labelImpl` as well as renames the `label` into
`labelDefinition`.
2023-05-25 06:35:58 +00:00
Ivan Krysak
f3918e3305
Assembly: change label to accept BasicBlockID
2023-05-25 06:25:25 +00:00
Ivan Krysak
d1cefaee04
PTML: ensure invalid labels are never emitted
2023-05-25 06:25:07 +00:00
Ivan Krysak
5b2af637de
Minor Changes
2023-05-25 06:25:07 +00:00
Ivan Krysak
fade3ec01f
CallGraph: switch to pipeline::Location
2023-05-17 14:08:05 +02:00
Ivan Krysak
7322d1a845
ControlFlow: switch to pipeline::Location
2023-05-17 14:08:05 +02:00