1. Sep 10, 2019
  2. Sep 09, 2019
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Select G_PTR_MASK · c34b4036
      Matt Arsenault authored
      llvm-svn: 371412
      c34b4036
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Fix reg bank for uniform LDS loads · fdb70301
      Matt Arsenault authored
      The pointer is always a VGPR. Also fix hardcoding the pointer size to
      64.
      
      llvm-svn: 371411
      fdb70301
    • Diogo N. Sampaio's avatar
      [NFC] Add aacps bitfields access test · 3c864466
      Diogo N. Sampaio authored
      llvm-svn: 371410
      3c864466
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Use known bits for selection · 2dd088ec
      Matt Arsenault authored
      llvm-svn: 371409
      2dd088ec
    • Ilya Biryukov's avatar
      [clangd] Use pre-populated mappings for standard symbols · 8b76709b
      Ilya Biryukov authored
      Summary:
      This takes ~5% of time when running clangd unit tests.
      
      To achieve this, move mapping of system includes out of CanonicalIncludes
      and into a separate class
      
      Reviewers: sammccall, hokein
      
      Reviewed By: sammccall
      
      Subscribers: MaskRay, jkorous, arphaman, kadircet, jfb, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D67172
      
      llvm-svn: 371408
      8b76709b
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Legalize wavefrontsize intrinsic · 8e3bc9b5
      Matt Arsenault authored
      llvm-svn: 371407
      8e3bc9b5
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Try generated matcher before add/sub code · d50f9373
      Matt Arsenault authored
      This will allow optimization patterns which fold adds away to work.
      
      llvm-svn: 371406
      d50f9373
    • Simon Tatham's avatar
      [ARM] Remove some spurious MVE reduction instructions. · 0e48bd24
      Simon Tatham authored
      The family of 'dual-accumulating' vector multiply-add instructions
      (VMLADAV, VMLALDAV and VRMLALDAVH) can all operate on both signed and
      unsigned integer types, and they all have an 'exchange' variant (with
      an X in the name) that modifies which pairs of vector lanes in the two
      inputs are multiplied together. But there's a clause in the spec that
      says that the X variants //don't// operate on unsigned integer types,
      only signed. You can have X, or unsigned, or neither, but not both.
      
      We didn't notice that clause when we implemented the MC support for
      these instructions, so LLVM believes that things like VMLADAVX.U8 do
      exist, contradicting the spec. Here I fix that by conditioning them
      out in Tablegen.
      
      In order to do that, I've reversed the nesting order of the Tablegen
      multiclasses for those instructions. Previously, the innermost
      multiclass generated the X and not-X variants, and the one outside
      that generated the A and not-A variants. Now X is done by the outer
      multiclass, which allows me to bypass that one when I only want the
      two not-X variants.
      
      Changing the multiclass nesting order also changes the names of the
      instruction ids unless I make a special effort not to. I decided that
      while I was changing them anyway I'd make them look nicer; so now the
      instructions have names like MVE_VMLADAVs32 or MVE_VMLADAVaxs32,
      instead of cumbersome _noacc_noexch suffixes.
      
      The corresponding multiply-subtract instructions are unaffected. Those
      don't accept unsigned types at all, either in the spec or in LLVM.
      
      Reviewers: ostannard, dmgreen
      
      Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D67214
      
      llvm-svn: 371405
      0e48bd24
    • Matt Arsenault's avatar
      AMDGPU/GlobalISel: Remove dead patterns · 508dff2c
      Matt Arsenault authored
      llvm-svn: 371404
      508dff2c
    • Sven van Haastregt's avatar
      Merge note_ovl_builtin_candidate diagnostics; NFC · 783fc95f
      Sven van Haastregt authored
      There is no difference between the unary and binary case, so
      merge them.
      
      llvm-svn: 371403
      783fc95f
    • Ilya Biryukov's avatar
      [clangd] Add a new highlighting kind for typedefs · e237520a
      Ilya Biryukov authored
      Summary:
      We still attempt to highlight them as underlying types, but fallback to
      the generic 'typedef' highlighting kind if the underlying type is too
      complicated.
      
      Reviewers: hokein
      
      Reviewed By: hokein
      
      Subscribers: nridge, MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D67290
      
      llvm-svn: 371402
      e237520a
    • Roman Lebedev's avatar
      [NFC][InstCombine] Fixup test i added in rL371352. · 59608c00
      Roman Lebedev authored
      llvm-svn: 371401
      59608c00
    • Ed Maste's avatar
      compiler-rt: use fp_t instead of long double, for consistency · 1a3dd638
      Ed Maste authored
      Most builtins accepting or returning long double use the fp_t typedef.
      Change the remaining few cases to do so.
      
      Differential Revision:	https://reviews.llvm.org/D35034
      
      llvm-svn: 371400
      1a3dd638
    • James Molloy's avatar
      [DFAPacketizer] Reapply: Track resources for packetized instructions · b6c7fce6
      James Molloy authored
      Reapply with fix to reduce resources required by the compiler - use
      unsigned[2] instead of std::pair. This causes clang and gcc to compile
      the generated file multiple times faster, and hopefully will reduce
      the resource requirements on Visual Studio also. This fix is a little
      ugly but it's clearly the same issue the previous author of
      DFAPacketizer faced (the previous tables use unsigned[2] rather uglily
      too).
      
      This patch allows the DFAPacketizer to be queried after a packet is formed to work out which
      resources were allocated to the packetized instructions.
      
      This is particularly important for targets that do their own bundle packing - it's not
      sufficient to know simply that instructions can share a packet; which slots are used is
      also required for encoding.
      
      This extends the emitter to emit a side-table containing resource usage diffs for each
      state transition. The packetizer maintains a set of all possible resource states in its
      current state. After packetization is complete, all remaining resource states are
      possible packetization strategies.
      
      The sidetable is only ~500K for Hexagon, but the extra tracking is disabled by default
      (most uses of the packetizer like MachinePipeliner don't care and don't need the extra
      maintained state).
      
      Differential Revision: https://reviews.llvm.org/D66936
      
      llvm-svn: 371399
      b6c7fce6