Giacomo Vercesi
27f419c8cd
Fix and ban namespace clobbering
...
Fix an instance where the `std` namespace got clobbered into the global
namespace by accident.
2026-02-16 10:34:38 +01:00
Giacomo Vercesi
723ae8d801
GCBI: rework members and constructor
...
Move member declaration to the top of the class definition of
`GeneratedCodeBasicInfo` and initialize primitive members.
Merge the `run` method into the constructor since all uses have them
happening close to each other.
2026-02-05 09:25:42 +01:00
Giacomo Vercesi
c1217dcfc3
Add DetectABI analysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
19f67c8223
Introduce LLVMFunctionMixin
...
Add a mixin class for piperuns that work on an LLVM module and need
both the model function and the `llvm::Function`. Pipe that inherit this
mixin will receive both the model and LLVM function in the
`runOnLLVMFunction` method.
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
2f7a055121
pypeline: convert pipe names to kebab-case
2025-11-26 16:13:28 +01:00
Giacomo Vercesi
0758a95110
Add AttachDebugInfo to pypeline
2025-11-18 17:47:54 +01:00
Giacomo Vercesi
819538a5df
Add CollectCFG to pypeline
2025-11-18 17:47:54 +01:00
Alessandro Di Federico
c883bed765
Drop Logger's StaticEnabled feature
2025-10-31 17:25:03 +01:00
Alessandro Di Federico
1e55635b65
Introduce efa::FunctionEdgeType::Unexpected
2025-10-24 18:23:23 +02:00
Ivan Krysak
3561c2b907
Adopt IRBuilder wrapper
2025-10-21 19:17:01 +03:00
Ivan Krysak
a0cd3c78ca
EFA: set default values where viable
2025-10-13 18:33:10 +03:00
Ivan Krysak
cc57e57fd1
TTG: remove support for optional: true fields
...
After this commit, every non-key field is treated as if it was optional
while every key field (plus every auto-generated `Kind` field) - as if
it was required.
2025-10-13 18:33:10 +03:00
Ivan Krysak
480443f358
TTG: drop upcastable: configuration option
...
Instead, detect whether `UpcastablePointer` wrapping is needed or not
based on the type.
2025-10-13 18:33:10 +03:00
Ivan Krysak
de6db68394
EFA: improve TTG-schema formatting
2025-10-13 18:33:10 +03:00
Giacomo Vercesi
d62b7b6b1a
TTG: inline root type in schema
...
Move the root type inside the schema definition, as it is a property of
it and not of the generator.
2025-06-25 15:40:13 +02:00
Khaled Ismaeel
383af5b6b0
Add the version field to schemas YAML
...
Here we start restructuring the the schemas YAML such that it
contains a top-level `version` field. In this commit we only modify
the YAML, the build system changes will come later, to avoid
enormous commits.
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
53a5ff07cf
Remove embedded TUPLE-TREE-YAML
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
63469c9cd6
Use unified YAML schemas in the build process
...
In this commit we instruct the build system to use the unified schema
files instead of collecting the `TUPLE-TREE-YAML` comments.
The fixes to C++ files are necessary because they depend on the order
of the fields in the schema, which was changed.
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
f384b10435
Check schemas into the codebase
...
These schema files are currently generated at build time by
collecting various TUPLE-TREE-YAML comments using the
`extract_yaml.py` script. In this commit we move them to the codebase
but we don't use them yet, this will be done at a later commit for
the sake of readability.
2025-04-30 15:08:40 +02:00
Ivan Krysak
aa15d8ca21
Standardize abort-like function usage
2025-04-17 11:19:17 +03:00
Ivan Krysak
f070f1f1e1
Model: sunset double name system
2025-04-17 11:19:17 +03:00
Ivan Krysak
3edb6cbb9b
Minor improvements
2025-04-15 16:35:42 +03: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
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
288448f009
Never include model::VerifyHelper from headers
2025-02-13 13:09:50 +02:00
Alessandro Di Federico
f9fad18cb4
EFA, Yield: handle blockless functions
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
a0c670652c
Improve usages of Expected<T>
2024-10-10 14:50:26 +02:00
Alessandro Di Federico
bc064244d6
s/deserialize/fromString/g
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
c1cbb4e9a0
Initialize pointers to nullptr
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
7ddae47040
Minor changes
2024-07-10 15:34:19 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +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
8ab27800a8
EFA: remove some dead code
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
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +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
Alessandro Di Federico
bce1d6c0f3
Adopt invalidation along the core pipeline
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
7553e2acf8
Introduce UniquedBy{Prototype,Metadata}
...
This commit introduces new tags to specify how LLVMContainer should
deduplicate sets of equivalent functions, typically managed by an
`OpaqueFunctionPool`.
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
b350d12ad2
TTG: spread some optional: true around
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
b0d897b87d
Minor changes
2024-06-20 10:24:49 +02:00
Lauri Vasama
8ec89c658c
Template FunctionMetadataCache for use with MLIR
2024-05-29 15:42:15 +02:00
Alessandro Di Federico
8eca2e13fe
Do not use SmallPtrSet with std::includes
2024-05-03 17:59:34 +02:00
Alessandro Di Federico
452036edf1
Purge instructions to save return address
2024-04-30 15:25:53 +02:00
Alessandro Di Federico
0459b9d084
Introduce RegisterUsageAnalyses
2024-04-19 18:33:00 +02:00
Alessandro Di Federico
0b4476d824
Introduce FunctionSummary::clone
2024-04-18 17:55:15 +02:00
Ivan Krysak
6b7650276e
EFA: split importModel into multiple methods
2024-03-18 19:32:34 +01:00