SchrodingerZhu / ReuseIR

Reuse Analysis in MLIR and Rust. Functional programming meets performance.
Apache License 2.0
15 stars 0 forks source link

[ReuseIR] Pipeline #66

Open SchrodingerZhu opened 2 months ago

SchrodingerZhu commented 2 months ago
./bin/reuse-opt ../reuse-mlir/test/integration/basic/list_of_i32.mlir -reuse-ir-closure-outlining -reuse-ir-token-reuse -reuse-ir-infer-union-tag -reuse-ir-expand-control-flow=outline-nested-release=0 -reuse-ir-acquire-release-fusion -reuse-ir-expand-control-flow=outline-nested-release=1

After the above:

Then, translate mlir to LLVMIR:

 <previous-output> | mlir-translate -mlir-to-llvmir

Then, obtain the optimized machine code

 <previous-output>  | opt -O3 | llc # or use clang to drive the compilation from `.ll` if you want
SchrodingerZhu commented 2 months ago

@anqurvanillapy @Lancern @CyanPineapple Please be aware of current pipeline.

@QuarticCat please notify me when you start to implement the missing passes.

Lancern commented 2 months ago

Not fully related to this issue, but do we have or plan to have a documentation page that explains the ops, types, passes, etc. in ReuseIR just like any other MLIR dialects do?

SchrodingerZhu commented 2 months ago

I would like to have one. I don't yet know how to generate the document from tablegen. Could you check that?

Lancern commented 2 months ago

I would like to have one. I don't yet know how to generate the document from tablegen. Could you check that?

Let me work on this. Opening a new issue to track this.

Lancern commented 2 months ago

Opening a new issue to track this.

Tracked in #69 .