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

Better usage of load/store multiple #4

Open
wants to merge 5 commits into
base: nanomips-llvm16
Choose a base branch
from

Commits on Sep 16, 2024

  1. Target/Mips: Move LWM/SWM opt to standalone pass

    LoadStoreMultiple optimization has been moved to the standalone pass so
    it can be expanded. Potentially, its position in a pipeline could be
    changed.
    milica-lazarevic committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    208d47c View commit details
    Browse the repository at this point in the history
  2. NanoMIPS: Recognize unsorted sequences for LWM/SWM

    Additional support is added to recognize more sequences. Before,
    a sequence like this wasn't accepted:
    
    lw a1, 4(a0)
    lw a3, 12(a0)
    lw a2, 8(a0)
    
    Now, when we're sorting instructions by the reg:offset pair internally,
    the above is accepted.
    milica-lazarevic committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    3720af8 View commit details
    Browse the repository at this point in the history
  3. NanoMIPS: NMLoadStoreMultiple add gap support

    Beside regular instruction sequence, we're also looking for an
    instruction sequence that's "missing" one(or more) instruction to be
    complete and interchangeable with lwm/swm instruction. The sequence is
    optimizable if the Rt register in missing instruction is available.
    milica-lazarevic committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    eb7a730 View commit details
    Browse the repository at this point in the history
  4. NanoMIPS: NMLoadStoreMultiple add reg gap support

    We're handling the situation where the instruction sequence is regular,
    except for one instruction having a "wrong" Rt register number. A
    sequence like that is optimizable if the register with the expected
    register number is available. In that case, we're emitting one
    additional move instruction after lwm/swm.
    milica-lazarevic committed Sep 16, 2024
    Configuration menu
    Copy the full SHA
    5ea10a5 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2024

  1. Configuration menu
    Copy the full SHA
    fb95d20 View commit details
    Browse the repository at this point in the history