Ivan Krysak
42c1ea30f0
Allow deserialize to be called on non-root types
2024-06-27 11:05:51 +02:00
Ivan Krysak
ffea5d9d4a
TupleTreeReference: evict cache on setting root
2024-06-27 11:05:51 +02:00
Ivan Krysak
150d992368
Pipes: rename Type rank into TypeDefinition
2024-06-27 11:05:51 +02:00
Ivan Krysak
51208789a0
Rename ThePTMLBuilder into just B
2024-06-27 11:05:51 +02:00
Ivan Krysak
776a5cdc52
Model: move path data away from the header
2024-06-27 11:05:51 +02:00
Ivan Krysak
52aa0b5942
Model: introduce filters
2024-06-27 11:05:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
f2d12ec94a
Model: fix metadata helpers
...
Before now, when called on an non-supported type, they were just
silently doing nothing.
Also, they now correctly handle const inputs.
2024-06-27 11:05:51 +02:00
Ivan Krysak
9e0f0f72f5
RecursiveCoroutine: add operator!
2024-06-27 11:05:51 +02:00
Ivan Krysak
e2e95721cc
UpcastablePointer: add a new copy constructor
2024-06-27 11:05:51 +02:00
Ivan Krysak
3c64d9b6c8
Concepts: introduce ConstPtrIfConst
2024-06-27 11:05:51 +02:00
Ivan Krysak
e268b854cc
Concepts: introduce NonBaseDerived
2024-06-27 11:05:50 +02:00
Ivan Krysak
1f16a5bee6
KeyedObjectContainers: add erase_if
2024-06-27 11:05:50 +02:00
Ivan Krysak
73c43add70
TupleTree: revamp the visitors
2024-06-27 11:05:50 +02:00
Ivan Krysak
6628cbe1b8
TupleTree: drop an unused argument
2024-06-27 11:05:50 +02:00
Ivan Krysak
925690a1e1
VerifyHelper: reduce pointer usage
2024-06-27 11:05:50 +02:00
Ivan Krysak
b6625e8913
Model: simplify fixModel pass
...
Instead of getting reimplemented/updated, it now just reuses normal
type verification routines.
2024-06-27 11:05:50 +02:00
Ivan Krysak
c76f7488d2
YAMLTraits: leave kind-less pointers empty
2024-06-27 11:05:50 +02:00
Ivan Krysak
72346979e2
TupleTree: improve nullptr robustness
2024-06-27 11:05:50 +02:00
Ivan Krysak
d4bb646708
UpcastablePointer: improve nullptr robustness
2024-06-27 11:05:50 +02:00
Ivan Krysak
39264e73fa
Model: introduce new Type system
2024-06-27 11:05:50 +02:00
Ivan Krysak
284699967f
UpcastablePointer: introduce bool operator
...
This allows writing stuff like
```cpp
if (UpcastablePointer P = getPointerFromSomewhere())
doSomething(*P);
```
which makes it even more pointer-like.
2024-06-27 11:05:50 +02:00
Ivan Krysak
277cba213c
Model: separate verification
2024-06-27 11:05:49 +02:00
Ivan Krysak
9e6bf29f74
TTG: pull dump helper into the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
927e8006b9
Model: rename TypePath to DefinitionReference
2024-06-27 11:05:49 +02:00
Ivan Krysak
087ecbc534
TypeSystemPrinter: remove unused method
2024-06-27 11:05:49 +02:00
Ivan Krysak
5ec894e117
Yield: resyncronize yield::BasicBlock
2024-06-27 11:05:49 +02:00
Ivan Krysak
8ab27800a8
EFA: remove some dead code
2024-06-27 11:05:49 +02:00
Ivan Krysak
d3a6fd8b5b
Layout: simplify aggregate return type logic
2024-06-27 11:05:49 +02:00
Ivan Krysak
edb2d11c9a
TTG: add upcastable struct field support
2024-06-27 11:05:49 +02:00
Ivan Krysak
2dfdff992d
UpcastablePointer: introduce copy helper
2024-06-27 11:05:49 +02:00
Ivan Krysak
efc24dee4b
UpcastablePointer: introduce empty helper
2024-06-27 11:05:49 +02:00
Ivan Krysak
32fd1eed5b
TTG: move classof boilerplate into the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
48ace7c147
TTG: reorder early struct template
...
This heavily improves readability of the generated header.
2024-06-27 11:05:49 +02:00
Ivan Krysak
37f424da06
TTG: move UpcastableX typedef to the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
6a1018b860
Remove unused linter suppressors
2024-06-27 11:05:48 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
d613023a53
Model: drop an obsolete assert
2024-06-27 11:05:48 +02:00
Ivan Krysak
26c68b78ea
Model: drop makeTypeWithID
2024-06-27 11:05:48 +02:00
Ivan Krysak
84c8822c37
Model: drop TypedRegister
2024-06-27 11:05:48 +02:00
Ivan Krysak
4676c951a0
ABI: update outdated comments
2024-06-27 11:05:48 +02:00
Ivan Krysak
7ff1a0f487
Model: remove mostly unused Types.h header
2024-06-27 11:05:48 +02:00
Ivan Krysak
b2959e36df
Minor improvements
2024-06-27 11:05:48 +02:00
Pietro Fezzardi
85340c8d84
ModelToHeader: disable type inlining by default
...
This is due to the fact that type inlining currently is broken in some
corner cases involving recursive types.
The bugs are caused by the fact that TypeInlineHelper uses its own
custom graph instead of using the DependencyGraph used by ModelToHeader,
causing different decisions about the order of emission of types.
As a result, the generated C types are not valid C, and they fail to
compile because a field of a struct has a type that is defined later
than its use.
After refactoring TypeInlineHelper to use DependencyGraph like
ModelToHeader, this can be reverted.
2024-06-26 12:21:58 +02:00
Alessandro Di Federico
988af25a7d
Adopt UniquedBy* FunctionTags for deduplication
2024-06-26 12:21:58 +02:00
Alessandro Di Federico
71135a56ab
Make Target and friends YAML serializable
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
32e6f3e303
Fix handling of -path version of analysis flags
...
Before this commit, the `*-path` flags required the non-`-path` flag
too.
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
b62bc8df91
s/FunctionMetadata/ControlFlowGraph/g
2024-06-20 10:24: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