Skip to content
  1. Apr 07, 2022
  2. Apr 06, 2022
    • Argyrios Kyrtzidis's avatar
      [Support/Hash functions] Change the `final()` and `result()` of the hashing... · 330268ba
      Argyrios Kyrtzidis authored
      [Support/Hash functions] Change the `final()` and `result()` of the hashing functions to return an array of bytes
      
      Returning `std::array<uint8_t, N>` is better ergonomics for the hashing functions usage, instead of a `StringRef`:
      
      * When returning `StringRef`, client code is "jumping through hoops" to do string manipulations instead of dealing with fixed array of bytes directly, which is more natural
      * Returning `std::array<uint8_t, N>` avoids the need for the hasher classes to keep a field just for the purpose of wrapping it and returning it as a `StringRef`
      
      As part of this patch also:
      
      * Introduce `TruncatedBLAKE3` which is useful for using BLAKE3 as the hasher type for `HashBuilder` with non-default hash sizes.
      * Make `MD5Result` inherit from `std::array<uint8_t, 16>` which improves & simplifies its API.
      
      Differential Revision: https://reviews.llvm.org/D123100
      330268ba
    • Evgeniy Brevnov's avatar
      Preserve aliasing info during memory intrinsics lowering · acfc785c
      Evgeniy Brevnov authored
      By specification, source and destination of llvm.memcpy.* must either be equal or non-overlapping. This semantics is hard or impossible to figure out once lowered. This patch explicitly marks loads from source and stores to destination as not aliasing if source and destination is known to be not equal.
      
      Reviewed By: arsenm
      
      Differential Revision: https://reviews.llvm.org/D118441
      acfc785c
    • Zi Xuan Wu's avatar
      [Clang][CSKY] Add the CSKY target and compiler driver · 97e49605
      Zi Xuan Wu authored
      Add CSKY target toolchains to support csky in linux and elf environment.
      
      It can leverage the basic universal Linux toolchain for linux environment, and only add some compile or link parameters.
      For elf environment, add a CSKYToolChain to support compile and link.
      
      Also add some parameters into basic codebase of clang driver.
      
      Differential Revision: https://reviews.llvm.org/D121445
      97e49605
    • Yuanfang Chen's avatar
      [unittests] fix intermittent SupportTests failures · c32f8f34
      Yuanfang Chen authored
      by invoking `SupportTests --gtest_shuffle=1`.
      
      `HideUnrelatedOptions`/`HideUnrelatedOptionsMulti` failed due to other
      tests calling `cl::ResetCommandLineParser()` which causes default
      options to be removed.
      
      `ExitOnError` would hang due to the threading environment. Renaming it
      as `*Deathtest` is the recommended practice by GTest docs.
      c32f8f34
  3. Apr 05, 2022
  4. Apr 04, 2022
  5. Apr 01, 2022
  6. Mar 31, 2022
  7. Mar 30, 2022
    • Eli Friedman's avatar
      [AArch64] Fix AArch64TargetParser.def to match AArch64.td. · 72517e27
      Eli Friedman authored
      Currently, we have two different lists of features each CPU supports...
      and those lists aren't consistent. This patch assumes AArch64.td is
      right, and tries to fix AArch64TargetParser to match.
      
      It's hard to find documentation for the right features, but reviewers
      have confirmed these changes.
      
      Probably we should try to unify the two lists at some point, but
      synchronizing them seems like a prerequisite to that anyway.
      
      Differential Revision: https://reviews.llvm.org/D122274
      72517e27
    • Ben Barham's avatar
      [VFS] RedirectingFileSystem only replace path if not already mapped · 3fda0edc
      Ben Barham authored
      If the `ExternalFS` has already remapped a path then the
      `RedirectingFileSystem` should not change it to the originally provided
      path. This fixes the original path always being used if multiple VFS
      overlays were provided and the path wasn't found in the highest (ie.
      first in the chain).
      
      This also renames `IsVFSMapped` to `ExposesExternalVFSPath` and only
      sets it if `UseExternalName` is true. This flag then represents that the
      `Status` has an external path that's different from its virtual path.
      Right now the contained path is still the external path, but further PRs
      will change this to *always* be the virtual path. Clients that need the
      external can then request it specifically.
      
      Note that even though `ExposesExternalVFSPath` isn't set for all
      VFS-mapped paths, `IsVFSMapped` was only being used by a hack in
      `FileManager` that was specific to module searching. In that case
      `UseExternalNames` is always `true` and so that hack still applies.
      
      Resolves rdar://90578880 and llvm-project#53306.
      
      Differential Revision: https://reviews.llvm.org/D122549
      3fda0edc
    • Fraser Cormack's avatar
      [VP] Add vp.icmp comparison intrinsic and docs · 73244e8f
      Fraser Cormack authored
      This patch mostly follows up on D121292 which introduced the vp.fcmp
      intrinsic.
      
      Reviewed By: craig.topper
      
      Differential Revision: https://reviews.llvm.org/D122729
      73244e8f
    • Fraser Cormack's avatar
      [VP] Add vp.fcmp comparison intrinsic and docs · da6131f2
      Fraser Cormack authored
      This patch adds the first support for vector-predicated comparison
      intrinsics, starting with vp.fcmp. It uses metadata to encode its
      condition code, like the llvm.experimental.constrained.fcmp intrinsic.
      
      Reviewed By: craig.topper
      
      Differential Revision: https://reviews.llvm.org/D121292
      da6131f2
    • Serge Pavlov's avatar
      Revert "Mapping of FP operations to constrained intrinsics" · 8160dd58
      Serge Pavlov authored
      This reverts commit 115b3ace.
      Starting from this commit the buildbot sanitizer-x86_64-linux-bootstrap-msan
      starts failing (build 10071). Reverted for investigation.
      8160dd58
    • Serge Pavlov's avatar
      Mapping of FP operations to constrained intrinsics · 115b3ace
      Serge Pavlov authored
      A new function 'getConstrainedIntrinsic' is added, which for any gived
      instruction returns id of the corresponding constrained intrinsic. If
      there is no constrained counterpart for the instruction or the instruction
      is already a constrained intrinsic, the function returns zero.
      
      Differential Revision: https://reviews.llvm.org/D69562
      115b3ace
  8. Mar 29, 2022
  9. Mar 28, 2022
    • Nathan Sidwell's avatar
      [demangler] Add StringView conversion operator · 1066e397
      Nathan Sidwell authored
      The OutputBuffer class tries to present a NUL-terminated string API to
      consumers.  But several of them would prefer a StringView.  In
      particular the Microsoft demangler, juggles between NUL-terminated and
      StringView, which is confusing.
      
      This adds a StringView conversion, and adjusts the Demanglers that can
      benefit from that.
      
      Reviewed By: dblaikie
      
      Differential Revision: https://reviews.llvm.org/D120990
      1066e397
  10. Mar 25, 2022
  11. Mar 24, 2022
    • Argyrios Kyrtzidis's avatar
      [Support] Introduce the BLAKE3 hashing function implementation · 9aa70198
      Argyrios Kyrtzidis authored
      BLAKE3 is a cryptographic hash function that is secure and very performant.
      The C implementation originates from https://github.com/BLAKE3-team/BLAKE3/tree/1.3.1/c
      License is at https://github.com/BLAKE3-team/BLAKE3/blob/1.3.1/LICENSE
      
      This patch adds:
      
      * `llvm/include/llvm-c/blake3.h`: The BLAKE3 C API
      * `llvm/include/llvm/Support/BLAKE3.h`: C++ wrapper of the C API
      * `llvm/lib/Support/BLAKE3`: Directory containing the BLAKE3 C implementation files, including the `LICENSE` file
      * `llvm/unittests/Support/BLAKE3Test.cpp`: unit tests for the BLAKE3 C++ wrapper
      
      This initial patch contains the pristine BLAKE3 sources, a follow-up patch will introduce
      LLVM-specific prefixes to avoid conflicts if a client also links with its own BLAKE3 version.
      
      And here's some timings comparing BLAKE3 with LLVM's SHA1/SHA256/MD5.
      Timings include `AVX512`, `AVX2`, `neon`, and the generic/portable implementations.
      The table shows the speed-up multiplier of BLAKE3 for hashing 100 MBs:
      
      |        Processor        | SHA1  | SHA256 |  MD5 |
      |-------------------------|-------|--------|------|
      | Intel Xeon W (AVX512)   | 10.4x |   27x  | 9.4x |
      | Intel Xeon W (AVX2)     | 6.5x  |   17x  | 5.9x |
      | Intel Xeon W (portable) | 1.3x  |  3.3x  | 1.1x |
      |      M1Pro (neon)       | 2.1x  |  4.7x  | 2.8x |
      |      M1Pro (portable)   | 1.1x  |  2.4x  | 1.5x |
      
      Differential Revision: https://reviews.llvm.org/D121510
      9aa70198
    • Shraiysh Vaishay's avatar
      [mlir][OpenMP][IRBuilder] Add support for nowait on single construct · 8722c12c
      Shraiysh Vaishay authored
      This patch adds the nowait parameter to `createSingle` in
      OpenMPIRBuilder and handling for IR generation from OpenMP Dialect.
      
      Also added tests for the same.
      
      Reviewed By: ftynse
      
      Differential Revision: https://reviews.llvm.org/D122371
      8722c12c
  12. Mar 23, 2022
  13. Mar 22, 2022
Loading