1. Feb 09, 2021
  2. Feb 08, 2021
    • Sander de Smalen's avatar
      [AArch64AsmParser] Fix type-limits warning for VectorIndex. · 981a38ba
      Sander de Smalen authored
      Making VectorIndex an `int` instead of `unsigned`, silences the warning:
        comparison of unsigned expression in ‘>= 0’ is always true
      
      in:
        template <int Min, int Max>
        DiagnosticPredicate isVectorIndex() const {
          ...
          if (VectorIndex.Val >= Min && VectorIndex.Val <= Max)
            return DiagnosticPredicateTy::Match;
          ...
        }
      
      when Min is 0.
      981a38ba
    • Louis Dionne's avatar
      [libc++] Add a wait step in the BuildKite pipeline to shield macOS builders · 73aa0970
      Louis Dionne authored
      We don't have many of those and they are rather slow, so we'd rather not run
      those jobs if we know other jobs in the pipeline failed anyway.
      73aa0970
    • Tim Northover's avatar
      AArch64: use a constpool for blockaddress(...) on MachO · c93d50dd
      Tim Northover authored
      More MachO madness for everyone. MachO relocations are only 32-bits, which
      means the ARM64_RELOC_ADDEND one only actually has 24 (signed) bits for the
      actual addend. This is a problem when calculating the address of a basic block;
      because it has no symbol of its own, the sequence
      
      	adrp x0, Ltmp0@PAGE
      	add x0, x0, x0 Ltmp0@PAGEOFF
      
      is represented by relocation with an addend that contains the offset from the
      function start to Ltmp, and so the largest function where this is guaranteed to
      work is 8MB. That's not quite big enough that we can call it user error (IMO).
      
      So this patch puts the any blockaddress into a constant-pool, where the addend
      is instead stored in the (x)word being relocated, which is obviously big enough
      for any function.
      c93d50dd
    • Jamie Schmeiser's avatar
      Introduce -print-changed=[diff | diff-quiet] which show changes in patch-like format · 4b661b40
      Jamie Schmeiser authored
      Summary:
      Introduce base classes that hold a textual represent of the IR
      based on basic blocks and a base class for comparing this
      representation.  A new change printer is introduced that uses these
      classes to save and compare representations of the IR before and after
      each pass.  It only reports when changes are made by a pass (similar to
      -print-changed) except that the changes are shown in a patch-like format
      with those lines that are removed shown in red prefixed with '-' and those
      added shown in green with '+'.  This functionality was introduced in my
      tutorial at the 2020 virtual developer's meeting.
      
      Author: Jamie Schmeiser <schmeise@ca.ibm.com>
      Reviewed By: aeubanks (Arthur Eubanks)
      Differential Revision: https://reviews.llvm.org/D91890
      4b661b40
    • Simon Pilgrim's avatar
      [DAG] visitVECTOR_SHUFFLE - move shuffle legality check into MergeInnerShuffle lamda. NFCI. · c5c690a8
      Simon Pilgrim authored
      This is going to be necessary for a future reuse of MergeInnerShuffle
      c5c690a8
    • Mikael Holmen's avatar
      [RISCV] Use std::make_tuple to make some toolchains happy again · eb8c27c6
      Mikael Holmen authored
      My toolchain (LLVM 8.0, libstdc++ 5.4.0) complained with:
      
      12:38:19 ../lib/Target/RISCV/RISCVISelLowering.cpp:1717:12: error: chosen constructor is explicit in copy-initialization
      12:38:19     return {RISCVISD::VECREDUCE_FADD, Op.getOperand(0),
      12:38:19            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      12:38:19 /proj/flexasic/app/llvm/8.0/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19: note: explicit constructor declared here
      12:38:19         constexpr tuple(_UElements&&... __elements)
      12:38:19                   ^
      12:38:19 ../lib/Target/RISCV/RISCVISelLowering.cpp:1720:12: error: chosen constructor is explicit in copy-initialization
      12:38:19     return {RISCVISD::VECREDUCE_SEQ_FADD, Op.getOperand(1), Op.getOperand(0)};
      12:38:19            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      12:38:19 /proj/flexasic/app/llvm/8.0/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19: note: explicit constructor declared here
      12:38:19         constexpr tuple(_UElements&&... __elements)
      12:38:19                   ^
      12:38:19 2 errors generated.
      
      This commit adds explicit calls to std::make_tuple to work around
      the problem.
      eb8c27c6
    • Nicholas Guy's avatar
      [CodeGen][AArch64] Add TargetInstrInfo hook to modify the TailDuplicateSize default threshold · cd880442
      Nicholas Guy authored
      Different targets might handle branch performance differently, so this patch allows for
      targets to specify the TailDuplicateSize threshold. Said threshold defines how small a branch
      can be and still be duplicated to generate straight-line code instead.
      This patch also specifies said override values for the AArch64 subtarget.
      
      Differential Revision: https://reviews.llvm.org/D95631
      cd880442
    • KareemErgawy-TomTom's avatar
      [MLIR][SPIRV] NFC: Split serialization code among multiple files. · 88d5c4c2
      KareemErgawy-TomTom authored
      Following up on https://reviews.llvm.org/D94360, this patch splits the
      serialization code into multiple source files to provide a better
      structure and allow parallel compilation.
      
      Reviewed By: antiagainst
      
      Differential Revision: https://reviews.llvm.org/D95855
      88d5c4c2
    • Florian Hahn's avatar
      [ConstraintElimination] Improve index handing during constraint building. · 1f1f037e
      Florian Hahn authored
      This patch improves the index management during constraint building.
      Previously, the code rejected constraints which used values that were not
      part of Value2Index, but after combining the coefficients of the new
      indices were 0 (if ShouldAdd was 0).
      
      In those cases, no new indices need to be added. Instead of adding to
      Value2Index directly, add new indices to the NewIndices map. The caller
      can then check if it needs to add any new indices.
      
      This enables checking constraints like `a + x <= a + n` to `x <= n`,
      even if there is no constraint for `a` directly.
      1f1f037e
    • Jay Foad's avatar
      d8323b1a