Giacomo Vercesi
dbc734f23a
CMake: force use of Python3
...
Switch from using `find_package(Python ...)` to `find_package(Python3
...)` as it excludes that CMake picks a Python 2 version by accident.
2026-05-14 11:26:41 +02:00
Lauri Vasama
dd4e452f96
Add data model import pipes
2026-05-04 10:48:16 +03:00
Lauri Vasama
90e5dfd4c9
Pass MLIRContext by address
...
Passing by address is more conventional. This is what MLIR does most of
the time, and it avoids dereferences and addressofs everywhere.
2026-04-30 15:09:16 +03:00
Lauri Vasama
a338194eb7
Move namespace mlir::clift out of namespace mlir
2026-04-27 12:48:24 +03:00
Alessandro Di Federico
2629f95dd1
Introduce ImportPrototypesFromDatabase
...
This commit introduces an analysis to import prototypes from a SQLite
database of well-known prototypes, typically built from debug info of
operating systems.
This analysis supersedes import-well-known-models.
2026-04-24 17:54:09 +02:00
Ivan Krysak
5f511d8e17
verify-against-model: split into two
...
The resulting pipes are:
1. binary-granularity one with the name unchanged
2. function-granularity one called `verify-function-against-model`.
2026-04-22 08:19:30 +00:00
Ivan Krysak
e693cdbd53
model-verify-clift -> verify-against-model
2026-04-22 08:19:30 +00:00
Giacomo Vercesi
b40fec2270
Add LLMRename analysis to pypeline
2026-03-31 17:00:48 +02:00
Ivan Krysak
cdc633e31d
CliftPipes: drop Pipe from filenames
...
This removes unnecessary Pipe from filenames which the directory name
already contains.
This also renames some of them to match the *new* pipeline.
2026-03-27 07:18:49 +00:00
Ivan Krysak
278b898793
llvm-to-clift -> clifter
2026-03-27 07:05:44 +00:00
Ivan Krysak
addfc543c8
import-model-names -> import-descriptive-info
2026-03-26 16:28:48 +00:00
Ivan Krysak
01658cab09
import-model-names: split into two
...
One is module-granularity (name unchanged). The other (new) one
is function-granularity: `import-function-model-names`.
2026-03-26 16:00:49 +00:00
Ivan Krysak
58facb0de2
pipebox: introduce two more clift containers
...
`CliftSingleTypeContainer` for a type-level entity and
`CliftModuleContainer` for a binary-level one (like a header).
2026-03-25 17:26:24 +00:00
Ivan Krysak
b76a09d483
pipebox: rename CliftContainer.h
...
The new name is `CliftContainers.h`.
2026-03-25 17:26:24 +00:00
Giacomo Vercesi
d479438d3c
Add ImportFromC analysis to pypeline
2026-03-04 14:58:02 +01:00
Giacomo Vercesi
8804092b90
Add ConvertFunctionsToRaw analysis to pypeline
2026-03-04 14:58:02 +01:00
Giacomo Vercesi
f7231a29da
Add yield-cfg to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
255748228a
Add yield-call-graph-slice to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
4385f28c17
Add YieldCallGraph to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
9a202822f1
Add ProcessCallGraph to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
a8ed75fdb1
Add CleanupIR to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
d80c0a73f6
Add MergeLLVMModules to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
05dc279ef2
Add emit-c-as-single-file to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
e260d05082
Add EmitC to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
9b527c8b69
Add ImportModelNames to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
cfe476c701
Add ModelVerifyClift to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
75455a339e
Add PureMLIRPassesPipe to pypeline
...
In the same vein as `PureLLVMPassesPipe`, add a pipe to pypeline that
allows running arbitrarily-specified MLIR passes that do not depend on
the model.
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
97fe9203e1
Add LLVMToClift to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
08154335e3
Add SwitchToStatements to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
ee1fdebc4e
Add SegregateStackAccesses to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
16e89416c5
Add CliftFunctionContainer
...
Add a container that owns one `mlir::ModuleOp` per function, to be used
in conjunction with the new clift backend.
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
e35f5750de
Add ConvertFunctionsToCABI analysis to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
9e8e4cdf85
Add AnalyzeDataLayout analysis to pypeline
2025-12-10 16:16:14 +01:00
Giacomo Vercesi
5a6efb0fa2
Add DetectStackSize analysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
c1217dcfc3
Add DetectABI analysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
405733369b
Add ImportWellKnownModelsAnalysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
47038d46ec
Add ParseBinaryAnalysis to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
e4e259df3c
Add MakeSegmentRef to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
3e37058899
Add LegacySegregateStackAccesses to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
d664a59827
Add detect-stack-size to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
3a08f8713b
Add SimplifySwitch to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
c0e8c8fa09
Add PromoteStackPointer to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
10cc709098
Add InjectStackSizeProbesAtCallSites to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
0bc74e0234
Add PromoteInitCSVToUndef to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
e13e5add06
Add RemoveLiftingArtifacts to pypeline
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
35ef98e83f
LLVMPipe: make passes key lowercase
...
Since the rest of the pypeline yaml file is lowercase, convert the
`Passes` key of the configuration used by `pure-llvm-passes-*` to
lowercase.
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
db94859401
Registrars: add Run suffix for piperuns
...
Change the `Register.*Pipe` functions to end in `Run` if the template
argument should be a pipe run. Also change the concepts `Is.*Pipe` to
also have the `Run` suffix if applicable.
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
3556e9bfa7
Pipebox: reorder link_libraries
2025-12-10 15:05:53 +01:00
Giacomo Vercesi
8cff10e13b
Introduce analyses that manipulate the model
...
Add 4 analyses to the pipebox that allow setting and verifying the model
and its diffs.
2025-11-26 16:13:28 +01:00
Giacomo Vercesi
ca3c5113d9
Add recompile-isolated to pypeline
2025-11-18 17:47:54 +01:00