Skip to content
  1. Jan 02, 2022
  2. Jan 01, 2022
  3. Dec 31, 2021
    • Kazu Hirata's avatar
      [Scalar] Remove a redundant declaration (NFC) · 732e8968
      Kazu Hirata authored
      InitializePasses.h contains the proper declaration.
      
      Identified with readability-redundant-declaration.
      732e8968
    • Sanjay Patel's avatar
      [InstSimplify] fold or-nand-xor · c0544021
      Sanjay Patel authored
      ~(A & B) | (A ^ B) --> ~(A & B)
      
      https://alive2.llvm.org/ce/z/hXQucg
      c0544021
    • Simon Tatham's avatar
      [ARM] Introduce an empty "armv8.8-a" architecture. · d50072f7
      Simon Tatham authored
      This is the first commit in a series that implements support for
      "armv8.8-a" architecture. This should contain all the necessary
      boilerplate to make the 8.8-A architecture exist from LLVM and Clang's
      point of view: it adds the new arch as a subtarget feature, a definition
      in TargetParser, a name on the command line, an appropriate set of
      predefined macros, and adds appropriate tests. The new architecture name
      is supported in both AArch32 and AArch64.
      
      However, in this commit, no actual _functionality_ is added as part of
      the new architecture. If you specify -march=armv8.8a, the compiler
      will accept it and set the right predefines, but generate no code any
      differently.
      
      Differential Revision: https://reviews.llvm.org/D115694
      d50072f7
    • Paul Walker's avatar
    • Florian Hahn's avatar
      [LV] Turn check for unexpected VF into assertion (NFC). · e2f1c4c7
      Florian Hahn authored
      VF should always be non-zero in widenIntOrFpInduction. Turn check into
      assertion.
      e2f1c4c7
    • Random's avatar
      [MIPS] Add -mfix4300 flag to enable vr4300 mulmul bugfix pass · 2edcde00
      Random authored
      Early revisions of the VR4300 have a hardware bug where two consecutive
      multiplications can produce an incorrect result in the second multiply.
      This revision adds the `-mfix4300` flag to llvm (and clang) which, when
      passed, provides a software fix for this issue.
      
      More precise description of the "mulmul" bug:
      ```
      mul.[s,d] fd,fs,ft
      mul.[s,d] fd,fs,ft  or  [D]MULT[U] rs,rt
      ```
      
      When the above sequence is executed by the CPU, if at least one of the
      source operands of the first mul instruction happens to be `sNaN`, `0`
      or `Infinity`, then the second mul instruction may produce an incorrect
      result. This can happen both if the two mul instructions are next to each
      other and if the first one is in a delay slot and the second is the first
      instruction of the branch target.
      
      Description of the fix:
      This fix adds a backend pass to llvm which scans for mul instructions in
      each basic block and inserts a nop whenever the following conditions are
      met:
      
       - The current instruction is a single or double-precision floating-point
         mul instruction.
       - The next instruction is either a mul instruction (any kind) or a branch
         instruction.
      
      Differential Revision: https://reviews.llvm.org/D116238
      2edcde00
    • Craig Topper's avatar
      [RISCV] Use MxListW instead of MxList[0-5]. NFC · 6f45fe98
      Craig Topper authored
      Better to use the named list instead of assuming the size of MxList.
      6f45fe98
    • Craig Topper's avatar
      [RISCV] Use defvar to simplify some code. NFC · 8811a87e
      Craig Topper authored
      Rather than wrapping a def around a list, we can just make a defvar
      of the list.
      8811a87e
    • wangpc's avatar
      [RISCV] Use constant pool for large integers · 41454ab2
      wangpc authored
      For large integers (for example, magic numbers generated by
      TargetLowering::BuildSDIV when dividing by constant), we may
      need about 4~8 instructions to build them.
      In the same time, it just takes two instructions to load
      constants (with extra cycles to access memory), so it may be
      profitable to put these integers into constant pool.
      
      Reviewed By: asb, craig.topper
      
      Differential Revision: https://reviews.llvm.org/D114950
      41454ab2
    • jacquesguan's avatar
      [RISCV] Fix incorrect cases of vmv.s.f in the VSETVLI insert pass. · 05f82dc8
      jacquesguan authored
      Fix incorrect cases of vmv.s.f and add test cases for it.
      
      Differential Revision: https://reviews.llvm.org/D116432
      05f82dc8
    • Craig Topper's avatar
      [LegalizeIntegerTypes] Rename NewLHS/NewRHS arguments to... · 7d659c6a
      Craig Topper authored
      [LegalizeIntegerTypes] Rename NewLHS/NewRHS arguments to DAGTypeLegalizer::PromoteSetCCOperands. NFC
      
      The 'New' only makes sense in the context of these being
      output arguments, but they are also used as inputs first.
      Drop the 'New' and just call them LHS/RHS.
      
      Factored out of D116421.
      7d659c6a
  4. Dec 30, 2021
Loading