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

Fix compiler crash in memset optimisation #64084

Closed
wants to merge 563 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Oct 29, 2021

  1. Add ROTR instruction

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    0b58ad5 View commit details
    Browse the repository at this point in the history
  2. Add support for indirect calls (JALRC)

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    40d4c4a View commit details
    Browse the repository at this point in the history
  3. Populate with load/stores

    cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    a3fede6 View commit details
    Browse the repository at this point in the history
  4. Add support for setcc operations

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    c493216 View commit details
    Browse the repository at this point in the history
  5. Use XORI instead of NOT for LE and GE

    NOT converts 0 to 0xFFFFFFFF, which is not what we want. Also this
    commit removes setge and setuge optimisation which is never actually
    selected.
    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    5ab4a06 View commit details
    Browse the repository at this point in the history
  6. Support brind node selection

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    a93504a View commit details
    Browse the repository at this point in the history
  7. Added LEA-equivalent for ADDiu

    cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    a4b091b View commit details
    Browse the repository at this point in the history
  8. Add jumptable support

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    7059c05 View commit details
    Browse the repository at this point in the history
  9. Add asserts when using pic addressing

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    54e86b9 View commit details
    Browse the repository at this point in the history
  10. Typo fix

    cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    e3f3e5e View commit details
    Browse the repository at this point in the history
  11. Pattern for conditional branch on integer value

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    e5804f1 View commit details
    Browse the repository at this point in the history
  12. Add patterns for extended loads

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    1cb62f9 View commit details
    Browse the repository at this point in the history
  13. Handle opposite condition branches

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    387636c View commit details
    Browse the repository at this point in the history
  14. Add support for unaligned loads/stores

    Note that halfword load and store are not being selected at the moment.
    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    4c83333 View commit details
    Browse the repository at this point in the history
  15. Limit anyextending loads to imm12

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    83af938 View commit details
    Browse the repository at this point in the history
  16. Fix frame index offset for all basic loads/stores

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    e43d5a9 View commit details
    Browse the repository at this point in the history
  17. Select i7200 as default CPU for clang to use.

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    baf33bd View commit details
    Browse the repository at this point in the history
  18. Add Nanomips conditional moves

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    859fdd0 View commit details
    Browse the repository at this point in the history
  19. Split ADDiu_NM into uimm16 and simm12 variants

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    e780f1a View commit details
    Browse the repository at this point in the history
  20. Nanomips branch expansion (not PIC)

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    4882301 View commit details
    Browse the repository at this point in the history
  21. Avoid MIPS FastCC calling convention on NanoMips

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    c410621 View commit details
    Browse the repository at this point in the history
  22. Report NanoMIPS branches which have immediate operands

    Colin McEwan authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    7bf50a4 View commit details
    Browse the repository at this point in the history
  23. Select UALW and friends only for unaligned access

    Stefan Pejic authored and cme committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    e2cee90 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2021

  1. Apply alignment when passing 64-bit values

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    7a8e8a8 View commit details
    Browse the repository at this point in the history
  2. Fix asm string

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    1f73b79 View commit details
    Browse the repository at this point in the history
  3. Return small structs (<=64) in registers

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    0a7e0ea View commit details
    Browse the repository at this point in the history
  4. Re-unify ADDiu with an asymmetrical immediate range

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    8ad4c1a View commit details
    Browse the repository at this point in the history
  5. Correct typo from previous

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    dd802b3 View commit details
    Browse the repository at this point in the history
  6. Update addiu test

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    1e84930 View commit details
    Browse the repository at this point in the history
  7. Add type for va_list

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    9e2ed21 View commit details
    Browse the repository at this point in the history
  8. Pass va_list by reference

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    819e0d7 View commit details
    Browse the repository at this point in the history
  9. Add support for va_start in the backend

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    8723f4f View commit details
    Browse the repository at this point in the history
  10. Support loading immediate of any size

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    cbec4ce View commit details
    Browse the repository at this point in the history
  11. Use nanoMIPS instructions/registers for prologue

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    30ba7da View commit details
    Browse the repository at this point in the history
  12. Adjust register class used in epilogue

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    ca9b23c View commit details
    Browse the repository at this point in the history
  13. Add support for loading a block address

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    356af7d View commit details
    Browse the repository at this point in the history
  14. Fix issue with inline asm and add some NYI asserts

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    9aa58b1 View commit details
    Browse the repository at this point in the history
  15. Fix RETURNADDR lowering

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    302f58f View commit details
    Browse the repository at this point in the history
  16. Properly set StackPointerRegisterToSaveRestore

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    78e0db6 View commit details
    Browse the repository at this point in the history
  17. Improve offset handling for loads and stores

    UImm12 offset was not getting correctly set and Imm9
    instructions were never getting selected. There was no
    pattern for selecting Imm9 anyextending loads (fixed).
    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    b629815 View commit details
    Browse the repository at this point in the history
  18. Update tests to reflect changes to lw/sw selection

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    c434f8e View commit details
    Browse the repository at this point in the history
  19. Check only simple types for 64-bit low parts

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    0ed5567 View commit details
    Browse the repository at this point in the history
  20. Add inline asm register parsing support

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    6b00a0b View commit details
    Browse the repository at this point in the history
  21. Remove assert when parsing inline asm registers

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    e844147 View commit details
    Browse the repository at this point in the history
  22. Make sure complex types are handled correctly

    Complex float should be returned in registers, while complex double
    should be returned by reference.
    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    19c6141 View commit details
    Browse the repository at this point in the history
  23. Add missing instrs to getLoadStoreOffsetSizeInBits

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    4d85ea4 View commit details
    Browse the repository at this point in the history
  24. Add support for selecting trap instruction

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    2131038 View commit details
    Browse the repository at this point in the history
  25. Add .linkrelax flag

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    ad76e54 View commit details
    Browse the repository at this point in the history
  26. Fix FRAMEADDR lowering

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    a20df3f View commit details
    Browse the repository at this point in the history
  27. Use GPR32NMRegClass for 64-bit inline asm values

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    fa0a11f View commit details
    Browse the repository at this point in the history
  28. Fix exception handling registers

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    53b051e View commit details
    Browse the repository at this point in the history
  29. Eliminate use of .uleb128 directive

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    ef0ec99 View commit details
    Browse the repository at this point in the history
  30. Disable LEB128 directives only for nanoMIPS

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    50d1685 View commit details
    Browse the repository at this point in the history
  31. Fix immediates for conditional instructions

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    8b1b210 View commit details
    Browse the repository at this point in the history
  32. Add support for loading global TLS address

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    10c8d01 View commit details
    Browse the repository at this point in the history
  33. Generate va_arg code for NanoMips ABI

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    2cfec9c View commit details
    Browse the repository at this point in the history
  34. Recongize NanoMips branches as analyzable

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    9bf10c4 View commit details
    Browse the repository at this point in the history
  35. Implement VACOPY

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    3d04142 View commit details
    Browse the repository at this point in the history
  36. Fix typo from previous commit

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    aac6274 View commit details
    Browse the repository at this point in the history
  37. Fix EH registers (again)

    Stefan Pejic authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    308cfb3 View commit details
    Browse the repository at this point in the history
  38. Handle short form triples with missing vendor

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    bc8b7ed View commit details
    Browse the repository at this point in the history
  39. Force effective relocation model to static for NanoMips

    Colin McEwan authored and cme committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    cfb0c87 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2021

  1. Force soft-float on NanoMips

    Colin McEwan authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5693a1a View commit details
    Browse the repository at this point in the history
  2. Use li instead of addiu for loading MaxAlign

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5eb8789 View commit details
    Browse the repository at this point in the history
  3. Use GetBasePtr instead of hardcoding registers

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    afab009 View commit details
    Browse the repository at this point in the history
  4. Add __nanomips__ macro definition

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5361ce9 View commit details
    Browse the repository at this point in the history
  5. Avoid falling back to MIPS O32 for return regs

    If return required more than 2 registers, nanoMIPS allocation would fail
    on 3rd and would fall back to allocating MIPS registers.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    037feed View commit details
    Browse the repository at this point in the history
  6. Fix for previous commit

    It seems that O32 is default RetCC for more than O32 ABI. Make it not a
    fallback exclusively for P32.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    e591b9e View commit details
    Browse the repository at this point in the history
  7. Fix breakdown of vector types

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    b896aaf View commit details
    Browse the repository at this point in the history
  8. Adapt driver test to default CPU change

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    d86c270 View commit details
    Browse the repository at this point in the history
  9. Mark tests needing object emitter as unsupported on nanomips

    Colin McEwan authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    3496c6c View commit details
    Browse the repository at this point in the history
  10. Mark more tests needing object emitter as unsupported on nanomips

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    0da6115 View commit details
    Browse the repository at this point in the history
  11. Add GP-relative load and rework all other loads

    GP-relative load was not getting picked up because LWs9_NM was catching
    everything with LWs9_NM $r1, 0($r2). In order to avoid this kind of
    behaviour, catching loads/stores that have an immediate which is out of
    range had to be split into a separate pattern match (for all loads and
    stores).
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    4df3521 View commit details
    Browse the repository at this point in the history
  12. Disable tests that fail due to missing machine code emitter

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    8a9b24c View commit details
    Browse the repository at this point in the history
  13. Disable tests that require disassembler

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5331b4c View commit details
    Browse the repository at this point in the history
  14. Put __va_list in std namespace for C++

    This is done to fix CXX/basic/basic.lookup/basic.lookup.argdep/p2.cpp.
    Fix was copied from AArch64 implementation, since it handles __va_list
    very similarly to nanoMIPS.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    bd669a2 View commit details
    Browse the repository at this point in the history
  15. Disable sanitize-coverage-old-pm.c for nanoMIPS

    This test seems to fail in the same manner for arm and thumb.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    4d8bbe8 View commit details
    Browse the repository at this point in the history
  16. These tests seem to fail due to missing assembler

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    27f9224 View commit details
    Browse the repository at this point in the history
  17. Fails due to bug in nanomips-elf-as

    nanomips-elf-as cannot stream to stdout
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5a589f2 View commit details
    Browse the repository at this point in the history
  18. Disable MIPS regressions temporarily

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    e83070a View commit details
    Browse the repository at this point in the history
  19. Make sure lwgp is selected only for small data

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    41cf628 View commit details
    Browse the repository at this point in the history
  20. Handle register names starting with '$'

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    6f52fcb View commit details
    Browse the repository at this point in the history
  21. Handle inline asm regs starting with '$' differently

    The previous way messed with regular mips and made some tests fail.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    82da2be View commit details
    Browse the repository at this point in the history
  22. Use MIPS code for handling inline asm

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    7b9bd25 View commit details
    Browse the repository at this point in the history
  23. Patterns to lower 'atomic' load/stores

    Colin McEwan authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    97966a0 View commit details
    Browse the repository at this point in the history
  24. Properly handle long calls

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    b776a07 View commit details
    Browse the repository at this point in the history
  25. Set scavenging frame index appropriately

    nanoMIPS stack pointer supports 9-bit offset. This has to be properly
    checked when setting scavenging frame index.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    4c71bff View commit details
    Browse the repository at this point in the history
  26. Emit $zero instead of $0

    nanoMIPS GNU assembler doesn't support $0.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    b0e2d6c View commit details
    Browse the repository at this point in the history
  27. Add support for 'M' inline asm constraint

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    7428344 View commit details
    Browse the repository at this point in the history
  28. Add a hack for '(' and ')' in inline asm

    This is just for the sake of compiling code which uses this undocumented
    GCC internal format.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    3d7710a View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    4fcb31e View commit details
    Browse the repository at this point in the history
  30. Pass large aggr. by reference & fix va_list type

    Large aggregates need to be passed by reference. This also applies to
    va_list, which was, instead of being passed by reference, defined as an
    array type of length 1 and passed that way. This caused problems when
    assigning one va_list variable to another.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    4513089 View commit details
    Browse the repository at this point in the history
  31. Fix issues introduced by indexed addressing

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    64994c4 View commit details
    Browse the repository at this point in the history
  32. Add tests for indexed loads and stores

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    9880736 View commit details
    Browse the repository at this point in the history
  33. Add support for $zero register name in inline asm

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    08655bf View commit details
    Browse the repository at this point in the history
  34. Disable .mdebug section

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    ff9f217 View commit details
    Browse the repository at this point in the history
  35. Stack adjustment is limited to 32 bits (not 16)

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    dd87e44 View commit details
    Browse the repository at this point in the history
  36. Order registers according to encoding

    In case we want to change allocation order by rearranging register, that
    can be done using AltOrders. This commit also removes duplicate T8 and
    T9 registers.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    36f3a6b View commit details
    Browse the repository at this point in the history
  37. Implement SAVE and RESTORE(.JRC) instructions

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    0d1f519 View commit details
    Browse the repository at this point in the history
  38. Add alt. register order for better allocation

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    bf1c074 View commit details
    Browse the repository at this point in the history
  39. Run generateLoadOrStore on all BBs

    Stack adjustment sometimes isn't in the entry/return block, so it is
    neccessary to check all blocks. This is usually in functions that have
    early exits.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5bb4ad4 View commit details
    Browse the repository at this point in the history
  40. Do not assume entry/exit BB generateSaveOrRestore

    Previously generateSaveOrRestore assumed that it is processing either
    entry or exit block and had assertions according to that. But since it's
    now being executed on other basic blocks as well, it is neccessary to
    change to assumption.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    1cc9a3b View commit details
    Browse the repository at this point in the history
  41. Generate restore.jrc below return instruction

    Compiler sometimes generated move instructions between return and stack
    adjustment, which caused restore.jrc to be generated before those moves
    and produced illegal code. This makes sure that restore.jrc is the very
    last instruction generated.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    04a47a5 View commit details
    Browse the repository at this point in the history
  42. Add store zero peephole optimization

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    79df717 View commit details
    Browse the repository at this point in the history
  43. Fix failures caused by store zero optimization

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    28a88a0 View commit details
    Browse the repository at this point in the history
  44. Replace MipsPat and Pat with NMPat

    Using Pat has clear issues, it doesn't check predicates and causes some
    nanoMIPS instructions to be selected when using regular MIPS. Using
    MipsPat is too verbose, because it has to be paired with ISA_NANOMIPS.
    NMPat makes sure that predicates are checked and uses ISA_NANOMIPS by
    default, which makes pattern definitions more readable.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    41ef42a View commit details
    Browse the repository at this point in the history
  45. Add support for LWM/SWM

    Currently, this optimization looks for contiguous list of load/store
    instructions and merges them into LWM/SWM. It doesn't support lists that
    aren't ordered! A further work is neccessary to sort the lists and to
    add a new pass that will hint register allocator which registers to
    allocate.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    aa14840 View commit details
    Browse the repository at this point in the history
  46. Disable frame pointer by default

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    0921448 View commit details
    Browse the repository at this point in the history
  47. Use MOVE instead of ADDU $r1, $r2, $zero

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    0ab5ca8 View commit details
    Browse the repository at this point in the history
  48. Set minimum function alignment to 2 bytes

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    42b9597 View commit details
    Browse the repository at this point in the history
  49. Disable unaligned loads and stores

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    0e02e33 View commit details
    Browse the repository at this point in the history
  50. Initialize UseUnalignedLoadStore earlier

    Initialize UseUnalignedLoadStore before TM and TargetTriple to avoid
    compiler warnings about initialization order.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    a5f2e19 View commit details
    Browse the repository at this point in the history
  51. Add support for EXT and INS

    MIPS already supports EXT and INS pattern matching, but it isn't
    complete. It misses some of the opportinuties. This implementation
    should cover all of the obvious ones.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    a89fc5f View commit details
    Browse the repository at this point in the history
  52. Add pcrel directive

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    aadea00 View commit details
    Browse the repository at this point in the history
  53. Emit LA instead of LI for loading addresses

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    d87da48 View commit details
    Browse the repository at this point in the history
  54. Add patterns for seteq and setne with 0

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    bca56cf View commit details
    Browse the repository at this point in the history
  55. Add support for SEQI instruction

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    9a11fb2 View commit details
    Browse the repository at this point in the history
  56. Use ZERO_NM for 0 constant by default

    Mips does this by catching 0 with pattern for every relevant
    instruction. This is error-prone and suboptimal.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    e1edfcb View commit details
    Browse the repository at this point in the history
  57. Add support for MOVEP instruction

    This adds a new pass which detects 2 consecutive MOVEs that can be
    merged into MOVEP.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    904beca View commit details
    Browse the repository at this point in the history
  58. Add support for MOVE.BALC

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    31f0fed View commit details
    Browse the repository at this point in the history
  59. Do not generate RESTORE without registers

    GNU as complains that it's an invalid instruction, which seems to be a
    bug. This can be reverted when fixed in GNU as.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    9eca17c View commit details
    Browse the repository at this point in the history
  60. Do not invert register order to improve MOVE.BALC

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    40e8cda View commit details
    Browse the repository at this point in the history
  61. Add support for tail-call optimization

    This is just basic support for functions which have internal linkage.
    Other architectures have much more comprehensive support.
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    12b963d View commit details
    Browse the repository at this point in the history
  62. Disable branch expansion pass for nanoMIPS

    This pass is not useful at the moment, because we don't know exact
    instruction sizes (e.g. we don't select 16-bit instructions, we let
    assembler handle that).
    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    7b5dad6 View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    e646648 View commit details
    Browse the repository at this point in the history
  64. Make LI and LA re-materializable

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    47522a8 View commit details
    Browse the repository at this point in the history
  65. Add support for SEB and SEH instructions

    Stefan Pejic authored and cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    5fe0237 View commit details
    Browse the repository at this point in the history
  66. Clean 'UNSUPPORTED: nanomips'

    Tests which were flagged as unsupported due to the lack of object
    emitter, which have now been tagged REQUIRES: object-emission, no
    longer need explicit UNSUPPORTED.
    cme committed Nov 3, 2021
    Configuration menu
    Copy the full SHA
    042996b View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2021

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

Commits on Nov 5, 2021

  1. Add support for LSA instruction

    Stefan Pejic committed Nov 5, 2021
    Configuration menu
    Copy the full SHA
    508086d View commit details
    Browse the repository at this point in the history
  2. Add support for CLO and CLZ

    Stefan Pejic committed Nov 5, 2021
    Configuration menu
    Copy the full SHA
    e19166e View commit details
    Browse the repository at this point in the history
  3. Add support for BITREVW

    Stefan Pejic committed Nov 5, 2021
    Configuration menu
    Copy the full SHA
    27fe7c5 View commit details
    Browse the repository at this point in the history
  4. Expand CTTZ into BITREVW + CLZ

    Stefan Pejic committed Nov 5, 2021
    Configuration menu
    Copy the full SHA
    6a73df8 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2021

  1. Add support for BYTEREVW

    Stefan Pejic committed Nov 8, 2021
    Configuration menu
    Copy the full SHA
    0b8df83 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2021

  1. Disable GP-relative addressing by default

    Stefan Pejic committed Nov 9, 2021
    Configuration menu
    Copy the full SHA
    d010760 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2021

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

Commits on Nov 23, 2021

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

Commits on Nov 24, 2021

  1. Limit BB(EQ/NE)ZC_NM to nanoMIPS

    Stefan Pejic committed Nov 24, 2021
    Configuration menu
    Copy the full SHA
    9721e5e View commit details
    Browse the repository at this point in the history
  2. Prefer GPR3 group of registers

    Stefan Pejic committed Nov 24, 2021
    Configuration menu
    Copy the full SHA
    933a746 View commit details
    Browse the repository at this point in the history
  3. Add support for ADDIU[48]

    Stefan Pejic committed Nov 24, 2021
    Configuration menu
    Copy the full SHA
    4daa76d View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2021

  1. Remove AT from defs in conditional branches

    This was preventing common code hoisting in branch folding optimization.
    AT is reserved register anyway, so there's no need to mark it as def.
    Stefan Pejic committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    4f0c33d View commit details
    Browse the repository at this point in the history
  2. Better allocation for ADDU

    Stefan Pejic committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    00fb752 View commit details
    Browse the repository at this point in the history
  3. Copy implicit operands when building RESTORE.JRC

    Stefan Pejic committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    48cd996 View commit details
    Browse the repository at this point in the history
  4. Copy implicit operands when building MOVE.BALC

    Stefan Pejic committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    f474f00 View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2021

  1. Add support for PC-relative load and store

    Stefan Pejic committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    6e22316 View commit details
    Browse the repository at this point in the history
  2. Add support for ANDI 0xffff

    Stefan Pejic committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    ff1ed4c View commit details
    Browse the repository at this point in the history
  3. Fix copying of implicit operands to MOVE.BALC

    Remove the register that was defined by MOVE from the list of uses
    (which was copied from BALC). This is neccesary because that register is
    no longer defined before MOVE.BALC and results in use of undefined
    register.
    Stefan Pejic committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    1f4c905 View commit details
    Browse the repository at this point in the history
  4. Emit MOVE instead of ADDIU $reg, $sp, 0

    Stefan Pejic committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    18660b9 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2021

  1. Improve support for MOVE.BALC

    Stefan Pejic committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    6af1af3 View commit details
    Browse the repository at this point in the history
  2. Don't split MUL into shifts and adds on -O[sz]

    Stefan Pejic committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    756e00e View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2021

  1. Set char to unsigned by default

    Stefan Pejic committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    5ee72f5 View commit details
    Browse the repository at this point in the history
  2. Add support for ALUIPC

    Stefan Pejic committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    1001fd7 View commit details
    Browse the repository at this point in the history
  3. Fix MOVE.BALC test

    Stefan Pejic committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    2bb5a46 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2021

  1. Avoid LI + Indexed load/store pattern

    This pattern always ends up being at least 8 bytes. But it is possible
    to do better by emitting ADDIU (32-bit) + regular load with 0 offset.
    This pattern is usually 6 bytes.
    Stefan Pejic committed Dec 10, 2021
    Configuration menu
    Copy the full SHA
    077ab2f View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2021

  1. Configuration menu
    Copy the full SHA
    7cd3cd1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a93e6a8 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2021

  1. Skip debug instructions when doing optimizations

    Stefan Pejic committed Dec 16, 2021
    Configuration menu
    Copy the full SHA
    37d6c31 View commit details
    Browse the repository at this point in the history
  2. Apply clang-format

    Stefan Pejic committed Dec 16, 2021
    Configuration menu
    Copy the full SHA
    4f9efd4 View commit details
    Browse the repository at this point in the history
  3. Simplify return value

    Stefan Pejic committed Dec 16, 2021
    Configuration menu
    Copy the full SHA
    85cdae0 View commit details
    Browse the repository at this point in the history
  4. Generate MOVEP even when MOVEs aren't subsequent

    Stefan Pejic committed Dec 16, 2021
    Configuration menu
    Copy the full SHA
    dade666 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2022

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

Commits on Jan 27, 2022

  1. Configuration menu
    Copy the full SHA
    ee5cbc8 View commit details
    Browse the repository at this point in the history
  2. Custom linker invocation for NanoMips

    Colin McEwan committed Jan 27, 2022
    Configuration menu
    Copy the full SHA
    706b283 View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2022

  1. Pass --relax by default on nanomips

    Colin McEwan committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    15233c0 View commit details
    Browse the repository at this point in the history
  2. No 128-bit shift libcalls in Nanomips P32 libs

    Colin McEwan committed Jan 31, 2022
    Configuration menu
    Copy the full SHA
    d358f31 View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2022

  1. Enabling LTO for NanoMips

    Including LTO Back-end changes necessary to support use of external
    assembler where no object streamer is available for the target.
    
    Change-Id: I76bf8dbb60667849762726dfd0d653f92fb82a8c
    Colin McEwan committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    df482d4 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2022

  1. NanoMips: change default multilib to newlib

    Colin McEwan committed Feb 17, 2022
    Configuration menu
    Copy the full SHA
    2b84717 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2022

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

Commits on Feb 22, 2022

  1. NanoMips: initialise MCAsmInfo to disable integrated assembler

    Change-Id: I0b6c4978c7b392d2d8c4873dfbbe706ef5cdb07c
    Colin McEwan committed Feb 22, 2022
    Configuration menu
    Copy the full SHA
    4475666 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2022

  1. Fine-tune loop untrolling thresholds

    Stefan Pejic committed Mar 22, 2022
    Configuration menu
    Copy the full SHA
    a8e9102 View commit details
    Browse the repository at this point in the history
  2. Fine-tune inlining threshold

    Stefan Pejic committed Mar 22, 2022
    Configuration menu
    Copy the full SHA
    b0d9d5b View commit details
    Browse the repository at this point in the history
  3. Use default behvaior for mem[cpy/set/cmp] inlining

    Stefan Pejic committed Mar 22, 2022
    Configuration menu
    Copy the full SHA
    7bc9fd3 View commit details
    Browse the repository at this point in the history
  4. Replace '>-1' with '>=0'

    Stefan Pejic committed Mar 22, 2022
    Configuration menu
    Copy the full SHA
    787e10d View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2022

  1. Merge remote-tracking branch 'origin/nanomips-llvm13' into mtk/nanomi…

    …ps-lto-mtk
    Colin McEwan committed Mar 23, 2022
    Configuration menu
    Copy the full SHA
    0a552a6 View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2022

  1. nanomips: Include fixed include dir in includes search path

    Change-Id: I89b74e8cc8b27cac855daf0084468528ae82059b
    Colin McEwan committed Apr 4, 2022
    Configuration menu
    Copy the full SHA
    41b740a View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2022

  1. [clang][deps] Adapt test to be compatible when the assembler is calle…

    …d by default
    
    When `-fno-integrated-as` is in effect (the default on AIX) the cc1 job produces a `.s` file instead. This patch adapts the test to accept `.s` or `.o` files.
    
    Reviewed By: jansvoboda11
    
    Differential Revision: https://reviews.llvm.org/D118152
    jakeegan authored and Colin McEwan committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    5ce562f View commit details
    Browse the repository at this point in the history
  2. Mark tests which require object emission

    Colin McEwan committed Apr 12, 2022
    Configuration menu
    Copy the full SHA
    88d9c73 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2022

  1. Flag requirements in tests

    Colin McEwan committed Apr 13, 2022
    Configuration menu
    Copy the full SHA
    6548894 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2022

  1. Add "integrated-as" feature to flag tests that need it

    Colin McEwan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    788759f View commit details
    Browse the repository at this point in the history
  2. More integrated-as cases

    Colin McEwan committed Apr 19, 2022
    Configuration menu
    Copy the full SHA
    e4bf537 View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2022

  1. Test updates

    Colin McEwan committed Apr 29, 2022
    Configuration menu
    Copy the full SHA
    67ce495 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2022

  1. Bug fix in static address optimiser

    When changing the base address of a label to base+const to avoid a
    separate addition, move the 'la' to the location of the add, to
    avoid extending the lifetime of the destination register.
    Colin McEwan committed May 7, 2022
    Configuration menu
    Copy the full SHA
    fa36262 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2022

  1. Merge remote-tracking branch 'origin/nanomips-llvm13' into mtk/nanomi…

    …ps-lto-mtk
    
    Change-Id: I14cb6546c1f5fdf201e8d2504e0432e7b314d90a
    Colin McEwan committed May 9, 2022
    Configuration menu
    Copy the full SHA
    29ae8bc View commit details
    Browse the repository at this point in the history

Commits on May 27, 2022

  1. Use LA only for known word-aligned global address setup

    Colin McEwan authored and Colin McEwan committed May 27, 2022
    Configuration menu
    Copy the full SHA
    3ee59df View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2022

  1. Add support for Machine Outliner

    Most of the work done by Ivan Mitrovic.
    Stefan Pejic committed Jun 2, 2022
    Configuration menu
    Copy the full SHA
    1a7e6ba View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2022

  1. Enable immediate compare-and-branch for LE/GT conditions

    Enable immediate compare-and-branch for LE/GT conditions by offsetting
    immediates by 1, for compatible offsets
    Colin McEwan committed Jun 6, 2022
    Configuration menu
    Copy the full SHA
    5bf19b1 View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2022

  1. NanoMips: cost cmpselect between 0 and 1 lower (s<cond>)

    Colin McEwan authored and Colin McEwan committed Jul 13, 2022
    Configuration menu
    Copy the full SHA
    b5cd935 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2022

  1. Correct operands for getCmpSelInstrCost

    Colin McEwan authored and Colin McEwan committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    4d159b2 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2022

  1. Assertion fix

    Colin McEwan authored and Colin McEwan committed Jul 21, 2022
    Configuration menu
    Copy the full SHA
    5447156 View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2022

  1. NanoMips SelectionDAG peepholes

    Colin McEwan authored and Colin McEwan committed Jul 25, 2022
    Configuration menu
    Copy the full SHA
    911f0a6 View commit details
    Browse the repository at this point in the history
  2. Removed slt-only check on cmpsel costing

    After adding DAG peepholes, seems to be benifical overall for other
    comparisons.
    Colin McEwan authored and Colin McEwan committed Jul 25, 2022
    Configuration menu
    Copy the full SHA
    cb0d81e View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2022

  1. Merge remote-tracking branch 'origin/dev-cmpselcost' into mtk/nanomip…

    …s-dev
    
    Change-Id: If93ccd406aff270e0dd5e26e1a9349a392fbf23d
    Colin McEwan committed Jul 27, 2022
    Configuration menu
    Copy the full SHA
    d821518 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2022

  1. Don't run load/store or move optimizers at -O0

    Change-Id: Idac34cd405273acc92cec42fd76caf694f785f7a
    Colin McEwan committed Aug 23, 2022
    Configuration menu
    Copy the full SHA
    ba3d422 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2022

  1. NanoMips: Use "useIPRA" in TargetMachine to enable IPRA

    Colin McEwan authored and Colin McEwan committed Aug 31, 2022
    Configuration menu
    Copy the full SHA
    c7e3bb9 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2022

  1. MIPS: add debug location to stack adjustment

    Colin McEwan authored and Colin McEwan committed Sep 6, 2022
    Configuration menu
    Copy the full SHA
    eeeec5a View commit details
    Browse the repository at this point in the history
  2. NanoMips: Fix IPRA issue llvm#57482

    This isn't a full fix on its own though since RA is not actually
    flagged as non-allocable, and there's nothing that denotes
    'clobbered by the calller's call instruction itself'
    Colin McEwan authored and Colin McEwan committed Sep 6, 2022
    Configuration menu
    Copy the full SHA
    3b00877 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'nanomips-llvm13' into mtk/nanomips-dev

    Change-Id: I1c6b5a3d4632bfdac41075de5a79111caf19b37f
    Colin McEwan committed Sep 6, 2022
    Configuration menu
    Copy the full SHA
    92327f3 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2022

  1. Increase minimum alignment for global variables larger that 3 bytes t…

    …o 4 bytes
    
    Change-Id: Id5cb1aa948f4717876b77e52d2fab8837cbc738d
    Dragan Mladjenovic authored and Dragan Mladjenovic committed Sep 7, 2022
    Configuration menu
    Copy the full SHA
    f060f5c View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2022

  1. [BZ #53] Do not use SHT_MIPS_DEBUG for .debug sections on nanomips

    Only manual test:
    
    nanomips-elf-clang -Os -g hello.c -S -o - | grep .debug_.*,
            .section        .debug_abbrev,"",@progbits
            .section        .debug_info,"",@progbits
            .section        .debug_str,"MS",@progbits,1
            .section        .debug_line,"",@progbits
    
    Change-Id: I494691464e634a9ff673750a526c12a4d61135d8
    Dragan Mladjenovic authored and Dragan Mladjenovic committed Sep 12, 2022
    Configuration menu
    Copy the full SHA
    58ae15b View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2022

  1. [BZ #51] Prevent indirect tail calls from using callee-saved registers

    Change-Id: Ic52d74c58f9488e5793f85e9c4a4fe08e1ca2bb7
    Dragan Mladjenovic committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    78bb37b View commit details
    Browse the repository at this point in the history
  2. Revert "Use LA only for known word-aligned global address setup"

    This reverts commit 3ee59df.
    Colin McEwan committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    4c10759 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2022

  1. NanoMips: Fix immZExt7Plus1 conditions

    Colin McEwan authored and Colin McEwan committed Sep 26, 2022
    Configuration menu
    Copy the full SHA
    cf10d7e View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2022

  1. Merge branch 'nanomips-llvm13' into mtk/nanomips-dev

    Colin McEwan committed Sep 27, 2022
    Configuration menu
    Copy the full SHA
    ba0dd5c View commit details
    Browse the repository at this point in the history
  2. Merge commit 'ba3d42265384036f675958f0c3abc38e4d6abbe5' into mtk/nano…

    …mips-dev
    Colin McEwan committed Sep 27, 2022
    Configuration menu
    Copy the full SHA
    1e84231 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. Add options to disable optimisation passes

    Change-Id: I9e51820882d1655bdb4d420f5699f964fb9cdfea
    Colin McEwan committed Nov 8, 2022
    Configuration menu
    Copy the full SHA
    f0db20b View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2022

  1. Prevent save/restore opt from moving use before the def

    Be conservative and only allow cfi instructions between stack
    adjustement and stack store/load since we don't check the liveness.
    
    Change-Id: I030815ad7494c95a4d86b6bff1f1e3c43c7f53d8
    Dragan Mladjenovic authored and Dragan Mladjenovic committed Nov 10, 2022
    Configuration menu
    Copy the full SHA
    f91c727 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2022

  1. NanoMips: pass -G0 to assembler unless gpopt is enabled

    Change-Id: I93559c9a0085d230191c5ba904bda3da45fb3526
    Colin McEwan committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    f5882b9 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2022

  1. Merge branch 'mtk/dev/asmG0' into mtk/nanomips-dev

    Change-Id: I0da6cbffe695ddff363cc7f0b2b3f9b85fee0a6a
    Colin McEwan committed Nov 24, 2022
    Configuration menu
    Copy the full SHA
    a72c9db View commit details
    Browse the repository at this point in the history

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 20, 2023

  1. Improve MemCopyOpt heuristics to account for combinable stores

    Avoid changing multiple stores to 'memset' calls when when the
    stores can be combined into a smaller number of stores by SelectionDAG
    when some alignment information is available on some stores.
    Colin McEwan authored and Colin McEwan committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    d662c71 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

Commits on Mar 22, 2023

  1. NanoMips: div-rem optimization

    Disable expansion of mod to mul-and-sub when Os or Oz.
    Generate udivmoddi4 libcall when div-rem pairs of type
    uint64 are present.
    Nikola Peric authored and Nikola Peric committed Mar 22, 2023
    Configuration menu
    Copy the full SHA
    9867d11 View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2023

  1. Merge pull request #3 from milica-lazarevic/jump-table-opt

    Jump table optimization
    cme authored Mar 23, 2023
    Configuration menu
    Copy the full SHA
    b61cf61 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2023

  1. Merge branch 'nanomips-llvm13-submission' into mtk/nanomips-dev

    Change-Id: I90131311d2e820f16574ff451f1a2be2527199a3
    Dragan Mladjenovic authored and Dragan Mladjenovic committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    a4423fa View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2 from nikolaperic/div-rem-opt

    NanoMips: div-rem optimization
    cme authored Mar 27, 2023
    Configuration menu
    Copy the full SHA
    cf909ed View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2023

  1. [BZ #53] Fix atomic builtins for nanomips

    Change makes no effort to optimize or simplify code.
    
    TODO: Test on classic mips. 64-bit atomics.
    
    Change-Id: Ia24de22c8617053b618e85e12703b2f518a66b1d
    Dragan Mladjenovic authored and farazs-github committed Mar 29, 2023
    Configuration menu
    Copy the full SHA
    b3090ca View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2023

  1. NanoMips: Fix JT entry

    1) Emit .sbyte directive in the case of signed entry
    2) Fix the format of BRSC_NM
    milica-lazarevic committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    8fc4c14 View commit details
    Browse the repository at this point in the history
  2. Fix debug-info tests

    Fix the comment. The current one is not recognized by the lit tool.
    A bunch of tests (78) were failing due to this.
    Djordje Todorovic committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    7729e8f View commit details
    Browse the repository at this point in the history
  3. nanomips: Fix MachineOutliner

     - Fix DISubprogram metadata for all targets
     - Update/fix tests for nanomips
     - Limit using the sha256 hash as name of outlined fn to nanomips
    Djordje Todorovic committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    55acfce View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2023

  1. Merge pull request #6 from milica-lazarevic/fix-jump-table-opt

    NanoMips: Fix JT entry
    farazs-github authored Apr 3, 2023
    Configuration menu
    Copy the full SHA
    6b08e39 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2023

  1. NanoMips: OR combine optimization

    Combine OR into INS when there is no masking for
    the second register but it holds zero extended
    value whose original width is less than equal to
    the number of bits from the first register set
    to zero.
    Nikola Peric authored and Nikola Peric committed Apr 12, 2023
    Configuration menu
    Copy the full SHA
    a2ea8c7 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2023

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

Commits on May 30, 2023

  1. Improving LLVM tests

    - Fix instructions conflicts between NanoMips and other Mips targets
      that caused tests from the MC/Mips group to fail
    - Fix several tests
    - Fix debug location of SP adjustment instruction that caused
      DebugInfo/Mips/delay-slot.ll test to fail
    - Add 'nanomips' feature to llvm-lit config script so that
      tests can be marked as UNSUPPORTED for NanoMips target
    Nikola Peric authored and Nikola Peric committed May 30, 2023
    Configuration menu
    Copy the full SHA
    b2e79de View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. Further LLVM tests improvement

    - Fix expected output for jumptable.ll and
      mips_generated_funcs.ll tests
    Nikola Peric authored and Nikola Peric committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    77b036e View commit details
    Browse the repository at this point in the history
  2. Merge commit 'b431936759353e204582f9dd32698f52a495e1ad' into nanomips…

    …-llvm13
    Colin McEwan authored and Colin McEwan committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    58658ff View commit details
    Browse the repository at this point in the history
  3. Fixing failing clang tests

    - No longer need to mark a test ExtDebugInfo.cpp that
      needs object emitter as UNSUPPORTED
    - Delete line left behind by a merge conflict in
      sanitize-coverage-old-pm.c test
    Nikola Peric authored and Nikola Peric committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    7ef0fe3 View commit details
    Browse the repository at this point in the history
  4. NanoMips: Support for 16bit masks in OR to INS combine

    This allows the INS instruction to be used to set the
    value of one field of the bitfields struct.
    Nikola Peric authored and Nikola Peric committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    8b9053a View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2023

  1. Add LTO section reporting tool. (#12)

    * Add LTO section predicting & reporting tool.
    cme authored Jun 23, 2023
    Configuration menu
    Copy the full SHA
    01ea86d View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2023

  1. Merge remote-tracking branch 'origin/mtk/nanomips-dev' into nanomips-…

    …llvm13
    Colin McEwan authored and Colin McEwan committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    e8d92dc View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. Mark sanitize-coverage-old-pm.c as unsupported

    Nikola Peric authored and Nikola Peric committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    aefb636 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2023

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

Commits on Jul 3, 2023

  1. [clang] Verify NanoMips target features

    Djordje Todorovic committed Jul 3, 2023
    Configuration menu
    Copy the full SHA
    ab87484 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2023

  1. Add test for volatile store merged to swm

    Colin McEwan authored and Colin McEwan committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    2b68e64 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Only use LWM/SWM when optimising for size.

    The macro nature of these instructions makes them slower than their
    individual instruction equivalents, so only use them when optimising
    for size.
    Colin McEwan authored and Colin McEwan committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    f0d78f9 View commit details
    Browse the repository at this point in the history
  2. Avoid swm/lwm of volatile accesses.

    Merging volatile accesses into lwm/swm can change the order of
    accesses and may have other undesirable effects.
    Colin McEwan authored and Colin McEwan committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    1e75b90 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2023

  1. [clang] Warn about MIPS legacy options

    Djordje Todorovic committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    a808f58 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'nanomips-llvm13-submission' into nanomips

    Colin McEwan authored and Colin McEwan committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    9e78483 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #14 from MediaTek-Labs/fix/volatile-swm

    Avoid swm/lwm of volatile accesses.
    cme authored Jul 6, 2023
    Configuration menu
    Copy the full SHA
    7e8b44f View commit details
    Browse the repository at this point in the history
  4. Merge pull request #15 from MediaTek-Labs/dev/lwm-swm-only-opt-size

    Only use LWM/SWM when optimising for size.
    cme authored Jul 6, 2023
    Configuration menu
    Copy the full SHA
    2cb7d4d View commit details
    Browse the repository at this point in the history
  5. Merge pull request #11 from djtodoro/nanomips-llvm13-submission

    Make sure that we do not use unsupported features by NanoMips
    cme authored Jul 6, 2023
    Configuration menu
    Copy the full SHA
    a5ea44d View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Merge pull request #5 from MediaTek-Labs/nanomips-llvm13-memcopyopt-h…

    …euristics
    
    Improve MemCopyOpt heuristics to account for combinable stores
    cme authored Jul 7, 2023
    Configuration menu
    Copy the full SHA
    efeed9e View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/nanomips-llvm13-submission' into…

    … nanomips
    Colin McEwan authored and Colin McEwan committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    d1ba01b View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2023

  1. JT: Init UseAbsoluteJumpTables field

    Djordje Todorovic authored and draganmladjenovic committed Jul 9, 2023
    Configuration menu
    Copy the full SHA
    b864e11 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Fix brsc and suppress warnings

    Added isBarier flag to definition of BRSC_NM.
    
    Suppressed warnings during build:
     - Reordered NanoMipsJumpTableInfo constructor parameters.
     - Added override identifier to use useIPRA.
    milica-lazarevic committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    dc3caf8 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2023

  1. NanoMips: OR combine fix

    Allow OR to INS combine without second register
    masking only if maximum possible value given by
    KnownBits for the second register can fit
    inside SMSize0.
    Nikola Peric authored and Nikola Peric committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    026b5e5 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #8 from nikolaperic/ins-opt

    NanoMips: OR combine optimization
    cme authored Jul 11, 2023
    Configuration menu
    Copy the full SHA
    be93e7a View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

  1. Fix build when ALL targets are enabled

    Djordje Todorovic authored and draganmladjenovic committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    fc10c0d View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2023

  1. Merge pull request #16 from MediaTek-Labs/jump-table-opt-fix

    Fix brsc and suppress warnings
    cme authored Jul 14, 2023
    Configuration menu
    Copy the full SHA
    6737303 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2023

  1. Fix compiler crash on undefined alignment memset

    Colin McEwan authored and Colin McEwan committed Jul 24, 2023
    Configuration menu
    Copy the full SHA
    1d27eb6 View commit details
    Browse the repository at this point in the history