1. Feb 25, 2020
  2. Feb 24, 2020
    • Louis Dionne's avatar
      [libc++] Mark the C++03 version of std::function as deprecated · c0087164
      Louis Dionne authored
      Summary: We want to eventually remove it.
      
      Reviewers: EricWF
      
      Subscribers: christof, jkorous, dexonsmith, libcxx-commits
      
      Tags: #libc
      
      Differential Revision: https://reviews.llvm.org/D74719
      c0087164
    • Louis Dionne's avatar
      [libc++] Adapt a few things around the implementation of P1135R6 · 80e73f22
      Louis Dionne authored
      - Add the new symbols to the ABI list on Darwin
      - Add XFAIL markup to the tests that require dylib support on older platforms
      - Add availability markup for back-deployment
      80e73f22
    • Olivier Giroux's avatar
      54fa9ecd
    • cchen's avatar
      [OpenMP] Refactor the analysis in checkMapClauseBaseExpression using StmtVisitor class. · d66d25f8
      cchen authored
      Summary: This step is the preparation of allowing lvalue in map/motion clause.
      
      Reviewers: ABataev, jdoerfert
      
      Reviewed By: ABataev
      
      Subscribers: guansong, cfe-commits
      
      Tags: #clang, #openmp
      
      Differential Revision: https://reviews.llvm.org/D74970
      d66d25f8
    • Xiangling Liao's avatar
      [AIX][Frontend] C++ ABI customizations for AIX boilerplate · 8bee52bd
      Xiangling Liao authored
      This PR enables "XL" C++ ABI in frontend AST to IR codegen. And it is driven by
      static init work. The current kind in Clang by default is Generic Itanium, which
      has different behavior on static init with IBM xlclang compiler on AIX.
      
      Differential Revision: https://reviews.llvm.org/D74015
      8bee52bd
    • Melanie Blower's avatar
    • Simon Pilgrim's avatar
      [CostModel][X86] We don't need a scale factor for SLM extract costs · b8243887
      Simon Pilgrim authored
      D74976 will handle larger vector types, but since SLM doesn't support AVX+ then we will always be extracting from 128-bit vectors so don't need to scale the cost.
      b8243887
    • Sjoerd Meijer's avatar
      [MIR][ARM] MachineOperand comments · 7efabe5c
      Sjoerd Meijer authored
      This adds infrastructure to print and parse MIR MachineOperand comments.
      The motivation for the ARM backend is to print condition code names instead of
      magic constants that are difficult to read (for human beings). For example,
      instead of this:
      
        dead renamable $r2, $cpsr = tEOR killed renamable $r2, renamable $r1, 14, $noreg
        t2Bcc %bb.4, 0, killed $cpsr
      
      we now print this:
      
        dead renamable $r2, $cpsr = tEOR killed renamable $r2, renamable $r1, 14 /* CC::always */, $noreg
        t2Bcc %bb.4, 0 /* CC:eq */, killed $cpsr
      
      This shows that MachineOperand comments are enclosed between /* and */. In this
      example, the EOR instruction is not conditionally executed (i.e. it is "always
      executed"), which is encoded by the 14 immediate machine operand. Thus, now
      this machine operand has /* CC::always */ as a comment. The 0 on the next
      conditional branch instruction represents the equal condition code, thus now
      this operand has /* CC:eq */ as a comment.
      
      As it is a comment, the MI lexer/parser completely ignores it. The benefit is
      that this keeps the change in the lexer extremely minimal and no target
      specific parsing needs to be done. The changes on the MIPrinter side are also
      minimal, as there is only one target hooks that is used to create the machine
      operand comments.
      
      Differential Revision: https://reviews.llvm.org/D74306
      7efabe5c
    • Kerry McLaughlin's avatar
      [AArch64][SVE] Add the SVE dupq_lane intrinsic · f87f23c8
      Kerry McLaughlin authored
      Summary:
      Implements the @llvm.aarch64.sve.dupq.lane intrinsic.
      
      As specified in the ACLE, the behaviour of:
        svdupq_lane_u64(data, index)
      
      ...is identical to:
        svtbl(data, svadd_x(svptrue_b64(),
                            svand_x(svptrue_b64(), svindex_u64(0, 1), 1),
                            index * 2))
      
      If the index is in the range [0,3], the operation is equivalent
      to a single DUP (.q) instruction.
      
      Reviewers: sdesmalen, c-rhodes, cameron.mcinally, efriedma, dancgr, rengolin
      
      Reviewed By: sdesmalen
      
      Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D74734
      f87f23c8
    • Sam Parker's avatar
      [RDA][ARM][LowOverheadLoops] Iteration count IT blocks · a67eb221
      Sam Parker authored
      Change the way that we remove the redundant iteration count code in
      the presence of IT blocks. collectLocalKilledOperands has been
      introduced to scan an instructions operands, collecting the killed
      instructions and then visiting them too. This is used to delete the
      code in the preheader which calculates the iteration count. We also
      track any IT blocks within the preheader and, if we remove all the
      instructions from the IT block, we also remove the IT instruction.
      isSafeToRemove is used to remove any redundant uses of the iteration
      count within the loop body.
      
      Differential Revision: https://reviews.llvm.org/D74975
      a67eb221
    • Michele Scandale's avatar
      Fix TryParsePtrOperatorSeq. · bd5b2207
      Michele Scandale authored
      The syntax rules for ptr-operator allow attributes after *, &,
      &&, therefore we should be able to parse the following:
      
      void fn() {
          void (*[[attr]] x)() = &fn;
          void (&[[attr]] y)() = fn;
          void (&&[[attr]] z)() = fn;
      }
      However the current logic in TryParsePtrOperatorSeq does not consider
      the presence of attributes leading to unexpected parsing errors.
      
      Moreover we should also consider _Atomic a possible qualifier that can
      appear after the sequence of attribute specifiers.
      bd5b2207
    • Mikhail Maltsev's avatar
      [ARM,MVE] Remove 64-bit variants of vbrsrq* intrinsics · 12fed51c
      Mikhail Maltsev authored
      Summary:
      According to the ACLE the vbrsrq* intrinsics don't accept vectors
      with 64-bit elements (and neither does the corresponding VBRSR
      instruction).
      
      Reviewers: simon_tatham, dmgreen, MarkMurrayARM, ostannard
      
      Reviewed By: simon_tatham
      
      Subscribers: kristof.beyls, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D75038
      12fed51c
    • David Green's avatar
      [ARM] FP16 bitcast test. NFC · f287bb8c
      David Green authored
      f287bb8c
    • Simon Pilgrim's avatar
      [CostModel][X86] Try to check against common prefixes before using target-specific cpu checks · eaa41e10
      Simon Pilgrim authored
      SLM/GLM is still a mess so not all of them have been updated yet.
      eaa41e10