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

HIFI3 patches for LX6 CPU family rebased to Clang-16 (LLVM-295) #85

Commits on Nov 10, 2023

  1. [Xtensa] Add definition of S3 output registers.

    Xtensa S3 DSP instructions are coded using explicit register allocation.
    However, some instructions miss RegState:Define flag for output
    registers. This leads MachineVerifier to raise errors.
    This commit adds missing definitions.
    maciej-czekaj committed Nov 10, 2023
    Configuration menu
    Copy the full SHA
    4a299e5 View commit details
    Browse the repository at this point in the history
  2. [Xtensa] Add Boolean Extension feature

    Boolean Extension support consists of:
    - v1i1 boolean vector type backed by BR boolean register class
    - calling convection for boolean variables
    - boolean instructions implementing logical operators
    - truncation and zero-extension operations for conversion to scalars
    - register spill and fill logic
    maciej-czekaj committed Nov 10, 2023
    Configuration menu
    Copy the full SHA
    507afb8 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2023

  1. [Xtensa] Refactor loadImmediate

    loadImmediate is split into two functions:
    - buildLoadImmediate which accepts allocated registers as params
    - loadImmediate which allocates virtual registers
    
    buildLoadImmediate is inteded to be used in post-RA passes.
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    01ca420 View commit details
    Browse the repository at this point in the history
  2. [Xtensa] Implement BRegFixupPass

    BRegFixupPass implements post-RA transformations for boolean
    instructions:
     - selecting the right constant for SLLI shift instruction based on
       physical register number. The number is unknown before regster
       allocation.
     - selecting the right constant for EXTUI bit extract operation based on
       physical BR register
     - emulating MOVBA (reg copy from AR to BR) operation
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    35e7437 View commit details
    Browse the repository at this point in the history
  3. [Xtensa] Add LLVM tests for Boolean Extension

    LLVM bitcode tests verify that Xtensa backend can:
     - convert between v1i1 and scalar
     - generate code for v1i1 vselect
     - spill & restore BR registers
     - load and store v1i1 values
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    1091700 View commit details
    Browse the repository at this point in the history
  4. [Xtensa] Separate directory for Clang CodeGen tests

    Prepare a separate directory for Xtensa-specific Clang CodeGen tests.
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    dcbed27 View commit details
    Browse the repository at this point in the history
  5. [Xtensa] Add ABI test for xtbool

    Extend Xtensa C ABI test to include v1i1 parameters.
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    7d293b4 View commit details
    Browse the repository at this point in the history
  6. [Xtensa] Implement conditional move instrinsics

    Adding __builtin_xtensa_movt_s and __builtin_xtensa_movf_s intrinsics.
    Adding intrincic patterns to   MOVT_S anf MOVF_S definitions.
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    0ed3832 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    bdd1248 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    6a133f6 View commit details
    Browse the repository at this point in the history
  9. [Xtensa] Add Cannonlake CPU

    This patch adds a definition of Xtensa LX6 CPU variant present in Intel
    Cannonlake and Tigerlake SOC platforms.
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    201193c View commit details
    Browse the repository at this point in the history
  10. [Xtensa] Make assembler output compatible with GAS

    Some Xtensa targets may still use GAS as a default assemblwr through
    -fno-integrated-as option. These changes make the assembly output
    compatible with GAS by default.
      - GAS does not recognize .word but .2byte works for both
      - Dwarf CFI is not supported by GAS. Option -fdwarf-exceptions can
        still turn it on but there is no option to turn it off, so an
        opt-in approach is more portable.
    maciej-czekaj committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    94b1ca6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    3121dd2 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2023

  1. Configuration menu
    Copy the full SHA
    952c459 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    07930a6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f168af2 View commit details
    Browse the repository at this point in the history
  4. [Xtensa] Add support for boolean vectors

    Xtensa architecture uses v2i1 (BR2 reg class) and v4i1 (BR4 reg class) boolean vectors as arguments for HIFI instructions:
     - vector compare, e.g.: AE_EQ16X4
     - vector conditional move, e.g: AE_MOVT16X4
    maciej-czekaj committed Nov 24, 2023
    Configuration menu
    Copy the full SHA
    156aad4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f816690 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8f879ba View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    6a97b0d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5102d62 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c600b19 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    4653c20 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    e278a13 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    9125859 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    bdcbe3d View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    f606b11 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2023

  1. Configuration menu
    Copy the full SHA
    94de026 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1269d05 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2a98ad4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    151e468 View commit details
    Browse the repository at this point in the history
  5. [Xtensa] Add --text-section-literals option

    This option is passed to GNU AS and makes Xtensa compiler driver
    compatible with GCC.
    maciej-czekaj committed Nov 27, 2023
    Configuration menu
    Copy the full SHA
    1700438 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2023

  1. [Xtensa] Add vector conversion builtins

    Intrinsics: __builtin_xtensa_ae_int32x2 and builtin_xtensa_int32
    are convenience functions for easy integer-vector and vector-vector
    conversions that conform to Xtensa coding style.
    Xtensa C dialect allows for implicit conversion between wider and
    narrower vector (via shuffle) and between integer and any vector (via
    broadcast). Standard Clang vectors do not support this, so these
    functions provide a handicap for better portability.
    maciej-czekaj committed Dec 19, 2023
    Configuration menu
    Copy the full SHA
    e5f986c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    215e298 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8618904 View commit details
    Browse the repository at this point in the history