1. Aug 04, 2023
  2. Aug 03, 2023
    • Benjamin Maxwell's avatar
      [mlir] Fix generating checks for multiple funcs in generate-test-checks · dbf798fa
      Benjamin Maxwell authored
      This regressed in D154458 due to the added tracking of used variable
      names that now also has to be cleared alongside the counter.
      
      Reviewed By: rafaelubalmw, c-rhodes, awarzynski
      
      Differential Revision: https://reviews.llvm.org/D156547
      dbf798fa
    • Nikolas Klauser's avatar
      [libc++][NFC] Replace typedefs with using in the math headers · dcdcc7c8
      Nikolas Klauser authored
      Reviewed By: #libc, Mordante, ldionne
      
      Spies: Mordante, libcxx-commits
      
      Differential Revision: https://reviews.llvm.org/D155382
      dcdcc7c8
    • Joseph Huber's avatar
      [Libomptarget] Fix compilation of libomptarget with old GCC · c96cba3a
      Joseph Huber authored
      Summary:
      Older gcc can't figure out the copy elision and needs an explicit move.
      c96cba3a
    • Ingo Müller's avatar
      [mlir][tensor][transform][python] Add mix-in class. · 0575ab2d
      Ingo Müller authored
      This patch adds a mix-in class for the only transform op of the tensor
      dialect that can benefit from one: the MakeLoopIndependentOp. It adds an
      overload that makes providing the return type optional.
      
      Reviewed By: ftynse
      
      Differential Revision: https://reviews.llvm.org/D156918
      0575ab2d
    • Podchishchaeva, Mariya's avatar
      [NFC][clang] Fix static analyzer concerns · 25d6f9dd
      Podchishchaeva, Mariya authored
      A bunch of classes in APValue free resources in the destructor but don't
      have user-written copy c'tor or assignment operator, so copying them using
      default ones can cause double free.
      
      Reviewed By: aaron.ballman
      
      Differential Revision: https://reviews.llvm.org/D156975
      25d6f9dd
    • Podchishchaeva, Mariya's avatar
      [NFC][clang] Fix static analyzer concerns · f887cb10
      Podchishchaeva, Mariya authored
      ToolInvocation frees resources in the destructor but doesn't
      have user-written copy c'tor or assignment operator, so copying it using
      default ones can cause double free.
      
      Reviewed By: aaron.ballman
      
      Differential Revision: https://reviews.llvm.org/D156896
      f887cb10
    • Craig Topper's avatar
      [RISCV] Add bf16 to isFPImmLegal. · a8c502a5
      Craig Topper authored
      Part of this test file was stolen from D156895. We should merge them
      when committing.
      
      Reviewed By: asb
      
      Differential Revision: https://reviews.llvm.org/D156926
      a8c502a5
    • Craig Topper's avatar
      [X86] Workaround possible CPUID bug in Sandy Bridge. · 2a5e3f4c
      Craig Topper authored
      Don't access leaf 7 subleaf 1 unless subleaf 0 says it is
      supported via EAX.
      
      Intel documentation says invalid subleaves return 0. We had been
      relying on that behavior instead of checking the max sublef number.
      
      It appears that some Sandy Bridge CPUs return at least the subleaf 0
      EDX value for subleaf 1. Best guess is that this is a bug in a
      microcode patch since all of the bits we're seeing set in EDX were
      introduced after Sandy Bridge was originally released.
      
      This is causing avxvnniint16 to be incorrectly enabled with -march=native
      on these CPUs.
      
      Reviewed By: pengfei, anna
      
      Differential Revision: https://reviews.llvm.org/D156963
      2a5e3f4c
    • David Spickett's avatar
      [lldb][lldb-vscode] Pretty print JSON to log files · 165f45a8
      David Spickett authored
      This makes anlysing test failures much more easy.
      
      For SendJSON this is simple, just use llvm::format instead.
      
      For GetNextObject/ReadJSON it's a bit more tricky.
      * Print the "Content-Length:" line in ReadJSON, but not the json.
      * Back in GetNextObject, if the JSON doesn't parse, it'll be
        printed as a normal string along with an error message.
      * If we didn't error before, we have a JSON value so we pretty print it.
      * Finally, if it isn't an object we'll log an error for that,
        not including the JSON.
      
      Before:
      ```
      <--
      Content-Length: 81
      
      {"command":"disconnect","request_seq":5,"seq":0,"success":true,"type":"response"}
      ```
      
      After:
      ```
      <--
      Content-Length: 81
      
      {
        "command": "disconnect",
        "request_seq": 5,
        "seq": 0,
        "success": true,
        "type": "response"
      }
      ```
      
      There appear to be some responses that include strings that are themselves JSON,
      and this won't pretty print those but I think it's still worth doing.
      
      Reviewed By: wallace
      
      Differential Revision: https://reviews.llvm.org/D156979
      165f45a8
    • David Spickett's avatar
      [lldb][lldb-vscode] Fix nullptr dereference when JSON is not an object · bdeb35bd
      David Spickett authored
      Reviewed By: wallace
      
      Differential Revision: https://reviews.llvm.org/D156977
      bdeb35bd
    • pvanhout's avatar
      [AMDGPU] Break Large PHIs: Take whole PHI chains into account · 62ea799e
      pvanhout authored
      Previous heuristics had a big flaw: they only looked at single PHI at a time, and didn't take into account the whole "chain".
      The concept of "chain" is important because if we only break a chain partially, we risk forcing regalloc to reserve twice as many registers for that vector.
      We also risk adding a lot of copies that shouldn't be there and can inhibit backend optimizations.
      
      The solution I found is to consider the whole "PHI chain" when looking at PHI.
      That is, we recursively look at the PHI's incoming value & users for other PHIs, then make a decision about the chain as a whole.
      
      The currrent threshold requires that at least `ceil(chain size * (2/3))` PHIs have at least one interesting incoming value.
      In simple terms, two-thirds (rounded up) of the PHIs should be breakable.
      
      This seems to work well. A lower threshold such as 50% is too aggressive because chains can often have 7 or 9 PHIs, and breaking 3+ or 4+ PHIs in those case often causes performance issue.
      
      Fixes SWDEV-409648, SWDEV-398393, SWDEV-413487
      
      Reviewed By: arsenm
      
      Differential Revision: https://reviews.llvm.org/D156414
      62ea799e
    • Joseph Huber's avatar
      [Libomptarget] Remove debug RAII from libomptarget · 46642cc8
      Joseph Huber authored
      This feature was supposed to allow you to trace execution inside of
      Libomptarget. However, this never really worked properly. The printing
      was always reoganized, only worked for single  threads, and pretty much
      only told you a handful of things about a runtime library that's an
      implementation detail to all users. Despite this, it contributed about
      40% of the total filesize of the deviceRTL. This patch simply removes
      this functionalit which I think was past due.
      
      Reviewed By: tianshilei1992
      
      Differential Revision: https://reviews.llvm.org/D157001
      46642cc8