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

Jump table optimization #3

Merged

Commits on Mar 14, 2023

  1. NanoMIPS: Compress jump table entries

    A custom lowering method for BR_JT ISDOpcode has been added. We're
    emitting a MipsISD::BR_JT node with new pseudo instruction
    LoadJumpTableOffset as a destination. For now, we're setting the entry
    size to 1B for every jump table leaving the external assembler to decide
    whether it can be done. We're also emitting relocation directive for
    that purpose. Each jump table starts with a .jumptable directive.
    milica-lazarevic committed Mar 14, 2023
    Configuration menu
    Copy the full SHA
    85a2809 View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2023

  1. NanoMIPS: Add NanoMipsCompressJumpTables pass

    NanoMipsCompressJumpTables optimization pass should decide
    if there's room for optimization. Before pass runs, the entry size for
    each table is set to 4B.
    milica-lazarevic committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    2cc0035 View commit details
    Browse the repository at this point in the history
  2. NanoMIPS: Add mno-jump-table-opt option

    An architecture-specific option mno-jump-table-opt has been added. When
    set, the command line argument mno-jump-table-opt disables jump table
    optimization. Therefore, table entries are fixed-size.
    milica-lazarevic committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    53c6c58 View commit details
    Browse the repository at this point in the history