Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP on some CIR → MLIR experiment #1334

Draft
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

keryell
Copy link
Collaborator

@keryell keryell commented Feb 11, 2025

Experiment with some CIR → MLIR std dialect lowering.
Not supposed to be merged but useful to get some CI feedback.
This is related to the long running PR Xilinx/mlir-aie#1913

Export this function so it can be used by other projects.
This allows the inliner to work with the CIR dialect.
This allows injecting some dialects and patterns to the
cir::ConvertCIRToMLIRPass lowering pass.
This allows injecting some dialects and patterns to the
cir::direct::ConvertCIRToLLVMPass lowering pass.
Forward the data layout to the type converter.
This is not a current solution since it is not possible for now to have a memref
of tuple in MLIR yet.
No operation yet.
Just lowering to memref<!named_tuple.named_tuple<>> for now.
WIP memref cast operation for NamedTuple hack.
The `named_tuple.cast` operation converts a memref of `named_tuple` to a 1D
memref of `i8` of the same size to emulate later the struct element access.

    Example:
    %0 = named_tuple.cast %alloca_0 : memref<!named_tuple.named_tuple<"s", [i32, i32]>> to memref<8xi8> loc(#loc6)
Copy link

github-actions bot commented Feb 11, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

Emulate the member access through memory for now.
Do not go through a memref of memref.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant