1. Jul 06, 2023
  2. Jul 05, 2023
    • Alex Langford's avatar
      [lldb][NFCI] Deprecate SBValue::GetOpaqueType · 20f99278
      Alex Langford authored
      This method, as far as I can ascertain, is non-trivial to actually use
      to work with (if not impossible). It doesn't make sense to use from
      Python and you do not have access to the accompanying TypeSystem, so it
      doesn't really do anything useful.
      
      A possible follow-up is to gut the implementation and have it return `nullptr`.
      
      Differential Revision: https://reviews.llvm.org/D153918
      20f99278
    • Benjamin Kramer's avatar
      Make python into C++ · c73053c2
      Benjamin Kramer authored
      `not` is a C++ keyword, but it seems to cause trouble with MSVC
      c73053c2
    • Alex Langford's avatar
      [lldb] Deprecate SBHostOS threading functionality · 1c7c9970
      Alex Langford authored
      For some context, Raphael tried to this before: https://reviews.llvm.org/D104231
      
      These methods are not tested at all, and in some cases, are not even fully
      implemented (e.g. SBHostOS::ThreadCreated). I'm not convinced it's
      possible to use these correctly from Python, and I'm not aware of any
      users of these methods. It's difficult to remove these methods
      wholesale, but we can start with deprecating them.
      
      A possible follow-up to this change (which may require an RFC to get
      more buy in from the community) is to gut these functions entirely. That
      is, remove the implementations and replace them either with nothing or
      have them dump out a message to stderr saying not to use these.
      
      Differential Revision: https://reviews.llvm.org/D153900
      1c7c9970
    • Simon Pilgrim's avatar
      [X86] ComputeNumSignBitsForTargetNode - attempt to recognise... · 38721f29
      Simon Pilgrim authored
      [X86] ComputeNumSignBitsForTargetNode - attempt to recognise PACKSSDW(PACKSSDW(X,Y),PACKSSDW(Z,W)) patterns
      
      These are often used when we're packing vXi64 comparison results, but we don't have PACKSSQD so have to bitcast, which doesn't work well with num sign bits value tracking.
      38721f29
    • Simon Pilgrim's avatar
      [X86] Fold BITOP(PACKSS(X,Z),PACKSS(Y,W)) --> PACKSS(BITOP(X,Y),BITOP(Z,W)) · a32d14fd
      Simon Pilgrim authored
      Fold allsignbits pack patterns to make better use of cheap (and commutable) logic ops
      a32d14fd
    • Renato Golin's avatar
      [MLIR][Linalg] Named op 'add' element-wise · 7e486d5c
      Renato Golin authored
      This adds the first strict element-wise named op to Linalg.
      
      The semantics here is to not allow auto-cast, broadcast semantics and to
      restrict the operations only to identical types. The remaining semantics
      must come in the form of surrounding operations on operands, to avoid
      ambiguity.
      
      Examples:
      ```
        // Cast int-to-fp
        %0 = linalg.copy ins(%in: tensor<32x32xi32>)
                         outs(%out: tensor<32x32xf32>)
        %1 = linalg.add  ins(%arg, %0: tensor<32x32xf32>, tensor<32x32xf32>)
                         outs(%0: tensor<32x32xf32>)
      
        // This can be lowered to
        %1 = linalg.generic {...}
                  ins(%arg, %in: tensor<32x32xf32>, tensor<32x32xi32>)
                  outs(%0: tensor<32x32xf32>) {
          ^bb0(%a: f32, %i: i32, %out: f32):
            %f = arith.uitofp %i : f32
            %0 = arith.addf %a, %f : f32
            linalg.yield %0 : f32
        }
      
        // Broadcast
        %0 = linalg.broadcast ins(%in: tensor<32xf32>)
                              init(%out: tensor<32x32xf32>)
        %1 = linalg.add  ins(%arg, %0: tensor<32x32xf32>, tensor<32x32xf32>)
                         outs(%0: tensor<32x32xf32>)
      
        // This can be lowered to
        #bcast_map = affine_map<(d0, d1) -> (d0)>
        %1 = linalg.generic {... #bcast_map] }
                  ins(%arg, %in: tensor<32x32xf32>, tensor<32xf32>)
                  outs(%0: tensor<32x32xf32>) {
          ^bb0(%a: f32, %b: f32, %out: f32):
            %0 = arith.addf %a, %b : f32
            linalg.yield %0 : f32
        }
      ```
      
      Once this gets accepted, other arithmetic and maths operations will be
      added accordingly, with the same semantics.
      
      Differential Revision: https://reviews.llvm.org/D154500
      7e486d5c
    • Valentin Clement's avatar
      [flang][openacc] Fix false error when common block is in copy clause · 85128d8b
      Valentin Clement authored
      Wrong error was reported mentioning that the common block was in
      more than one data sharing clause.
      
      Reviewed By: kiranchandramohan
      
      Differential Revision: https://reviews.llvm.org/D154393
      85128d8b
    • John Brawn's avatar
      [AST] Fix bug in UnresolvedSet::erase of last element · 4ade8b7e
      John Brawn authored
      UnresolvedSet::erase works by popping the last element then replacing
      the element to be erased with that element. When the element to be
      erased is itself the last element this leads to writing past the end
      of the set, causing an assertion failure.
      
      Fix this by making erase of the last element just pop that element.
      
      Differential Revision: https://reviews.llvm.org/D154502
      4ade8b7e
    • Nikita Popov's avatar
      [InstCombine] Add old extract to worklist for DCE · b7e38ff2
      Nikita Popov authored
      To make sure it is removed in the same InstCombine iteration.
      b7e38ff2
    • David Green's avatar
      [AArch64] Use known zero bits when creating BIC · ae8f929b
      David Green authored
      If we know bits are already 0, we will not need to clear them again with a BIC.
      So we can use KnownBits to shrink the size of the constant in the creation BIC
      from And, potentially undoing the known-bits folds that happen during
      compilation.
      
      BIC only has a single register operand for input and output, so has less
      scheduling freedom than a AND, but usually saves the materialization of a
      constant.
      
      Differential Revision: https://reviews.llvm.org/D154217
      ae8f929b
    • David Green's avatar
    • Corentin Jabot's avatar
      [Clang] Fix handling of using declarations in for loop init statements. · 1077a343
      Corentin Jabot authored
      The type was never saved, and therefore never transformed
      in dependent contexts.
      
      Reviewed By: aaron.ballman, #clang-language-wg
      
      Differential Revision: https://reviews.llvm.org/D154492
      1077a343
    • Nikita Popov's avatar
      [UTC] Generalize version regex · 4488ee25
      Nikita Popov authored
      The suffix for the git revision may not be present (or may not be
      a git revision).
      4488ee25
    • Nikita Popov's avatar
      [ValueTracking] Support add+icmp assumes for KnownBits · 2e0af16c
      Nikita Popov authored
      Support the canonical range check pattern for KnownBits assumptions.
      This is the same as the generic ConstantRange handling, just shifted
      by an offset.
      2e0af16c
    • Akash Banerjee's avatar
      Minor change to clang test · 07630da3
      Akash Banerjee authored
      Fix clang test error cuased by commit 4a492265. Minor change in order of globals.
      07630da3