1. Oct 14, 2020
  2. Oct 13, 2020
    • Sanjay Patel's avatar
      [CostModel] rearrange basic intrinsic cost implementation · ef748583
      Sanjay Patel authored
      This is bigger/uglier than before, but it should allow fixing
      all of the broken paths more easily. Test coverage added with
      rGfab028b9 and other commits.
      
      This is not NFC - the scalable vector test would crash
      without this patch.
      ef748583
    • Sanjay Patel's avatar
      [x86] add cost model test for memcpy; NFC · 1b94261e
      Sanjay Patel authored
      This is treated as a special-case in the base class
      implementation of getIntrinsicInstrCost().
      1b94261e
    • Christian Sigg's avatar
      [mlir][gpu] Add `gpu.wait` op. · db1cf3d9
      Christian Sigg authored
      This combines two separate ops (D88972: `gpu.create_token`, D89043: `gpu.host_wait`) into one.
      
      I do after all like the idea of combining the two ops, because it matches exactly the pattern we are
      going to have in the other gpu ops that will implement the AsyncOpInterface (launch_func, copies, alloc):
      
      If the op is async, we return a !gpu.async.token. Otherwise, we synchronize with the host and don't return a token.
      
      The use cases for `gpu.wait async` and `gpu.wait` are further apart than those of e.g. `gpu.h2d async` and `gpu.h2d`,
      but I like the consistent meaning of the `async` keyword in GPU ops.
      
      Reviewed By: herhut
      
      Differential Revision: https://reviews.llvm.org/D89160
      db1cf3d9
    • Jay Foad's avatar
      [AMDGPU][GlobalISel] Compute known bits for zero-extending loads · b59d8d7c
      Jay Foad authored
      Implement computeKnownBitsForTargetInstr for G_AMDGPU_BUFFER_LOAD_UBYTE
      and G_AMDGPU_BUFFER_LOAD_USHORT. This allows generic combines to remove
      some unnecessary G_ANDs.
      
      Differential Revision: https://reviews.llvm.org/D89316
      b59d8d7c
    • Raphael Isemann's avatar
      [lldb][cmake] Remove custom logic for finding VCS file to fix LLDB's VCSVersion.inc generation · 6733b254
      Raphael Isemann authored
      We are still implementing our own logic for this that looks for a VCS file in
      the place where it was before the monorepo migration. This removes this logic
      and just uses the CMake function that LLVM/Clang are using.
      
      Reviewed By: JDevlieghere, kastiglione
      
      Differential Revision: https://reviews.llvm.org/D88950
      6733b254
    • Raphael Isemann's avatar
      [lldb] Allow limiting the number of error diagnostics when parsing an expression · 02114e15
      Raphael Isemann authored
      While debugging another bug I found out that we currently don't set any limit
      for the number of diagnostics Clang emits. If a user does something that
      generates a lot of errors (like including some long header file from within the
      expression function), then we currently spam the LLDB output with potentially
      thousands of Clang error diagnostics.
      
      Clang sets a default limit of 20 errors, but given that LLDB is often used
      interactively for small expressions I would say a limit of 5 is enough. The
      limit is implemented as a setting, so if a user cares about seeing having a
      million errors printed to their terminal then they can just increase the
      settings value.
      
      Reviewed By: shafik, mib
      
      Differential Revision: https://reviews.llvm.org/D88889
      02114e15
    • Raphael Isemann's avatar
      [lldb] Remove all the RegisterInfo name constification code · 24e07570
      Raphael Isemann authored
      RegisterInfo's `reg_name`/`reg_alt_name` fields are C-Strings and are supposed
      to only be generated from a ConstString. The reason for that is that
      `DynamicRegisterInfo::GetRegisterInfo` and
      `RegInfoBasedABI::GetRegisterInfoByName` try to optimise finding registers by
      name by only comparing the C string pointer values instead of the underlying
      strings. This only works if both C strings involved in the comparison come from
      a ConstString. If one of the two C strings doesn't come from a ConstString the
      comparison won't work (and most likely will silently fail).
      
      I added an assert in b0060c3a which checks that
      both strings come from a ConstString. Apparently not all ABI plugins are
      generating their register names via ConstString, so this code is now not just
      silently failing but also asserting.
      
      In D88375 we did a shady fix for the MIPS plugins by just copying the
      ConstString setup code to that plugin, but we still need to fix ABISysV_arc,
      ABISysV_ppc and ABISysV_ppc64 plugins.
      
      I would say we just fix the remaining plugins by removing the whole requirement
      to have the register names coming from ConstStrings. I really doubt that we
      actually save any time with the whole ConstString search trick (searching ~50
      strings that have <4 characters doesn't sound more expensive than calling the
      really expensive ConstString constructor + comparing the same amount of pointer
      values). Also whatever small percentage of LLDB's runtime is actually spend in
      this function is anyway not worth the complexity of this approach.
      
      This patch just removes all this and just does a normal string comparison.
      
      Reviewed By: JDevlieghere, labath
      
      Differential Revision: https://reviews.llvm.org/D88490
      24e07570
    • Raphael Isemann's avatar
      [lldb][NFC] Remove property predicate matcher · 4cd873c4
      Raphael Isemann authored
      That's supposed to be used to implement things such as `settings set target.run-args{basename==test&&arch==x86_64} arg1`
      but it's not actually fully implemented or tested anywhere.
      
      Reviewed By: JDevlieghere
      
      Differential Revision: https://reviews.llvm.org/D88910
      4cd873c4
    • Raphael Isemann's avatar
      [lldb] Add targets for running test suite against Watch/TV/iPhone simulators · ef733d9d
      Raphael Isemann authored
      This patch adds several build system targets that run the normal test suite but
      against the Watch/TV/iPhone simulators.
      
      Reviewed By: JDevlieghere
      
      Differential Revision: https://reviews.llvm.org/D89224
      ef733d9d
    • Paulo Matos's avatar
      [WebAssembly] Added .tabletype to asm and multiple table support in obj files · 388fb67b
      Paulo Matos authored
      Adds more testing in basic-assembly.s and a new test tables.s.
      Adds support to yaml reading and writing of tables as well.
      
      Differential Revision: https://reviews.llvm.org/D88815
      388fb67b
    • Eduardo Caldas's avatar
      [SyntaxTree] Fix rtti for `Expression`. · a8f1790f
      Eduardo Caldas authored
      Differential Revision: https://reviews.llvm.org/D89146
      a8f1790f
    • Sanjay Patel's avatar
      1c90878e
    • Sjoerd Meijer's avatar
      66f22411