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

[CIR] Split cir-simplify into two passes #868

Merged
merged 1 commit into from
Sep 19, 2024

Commits on Sep 19, 2024

  1. [CIR] Split cir-simplify into two passes

    This patch splits the old cir-simplify pass into two new passes, namely
    cir-canonicalize and cir-simplify (the new cir-simplify). The cir-canonicalize
    pass runs transformations that do not affect CIR-to-source fidelity much, such
    as operation folding and redundant operation elimination. On the other hand, the
    new cir-simplify pass runs transformations that may significantly change the
    code and break high-level code analysis passes, such as more aggresive code
    optimizations.
    
    This patch also updates the CIR-to-CIR pipeline to fit these two new passes. The
    cir-canonicalize pass is moved to the very front of the pipeline, while the new
    cir-simplify pass is moved to the back of the pipeline (but still before
    lowering prepare of course). Additionally, the new cir-simplify now only runs
    when the user specifies a non-zero optimization level on the frontend.
    Lancern committed Sep 19, 2024
    Configuration menu
    Copy the full SHA
    f23b949 View commit details
    Browse the repository at this point in the history