Started 27 days ago
Took 1 hr 16 min on green-dragon-22

Success Build rL:372344 - C:372334 - #678 (Sep 19, 2019 11:01:55 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 372344
  • http://llvm.org/svn/llvm-project/cfe/trunk : 372334
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 372312
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 364589
  • http://llvm.org/svn/llvm-project/zorg/trunk : 372342
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 372242
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 372317
Changes
  1. gn build: Merge r372343 (detail/ViewSVN)
    by gnsyncbot
  2. [SVFS] Vector Function ABI demangling.

    This patch implements the demangling functionality as described in the
    Vector Function ABI. This patch will be used to implement the
    SearchVectorFunctionSystem (SVFS) as described in the RFC:

    http://lists.llvm.org/pipermail/llvm-dev/2019-June/133484.html

    A fuzzer is added to test the demangling utility.

    Patch by Sumedh Arani <sumedh.arani@arm.com>

    Differential revision: https://reviews.llvm.org/D66024 (detail/ViewSVN)
    by fpetrogalli
  3. The LLD buildbot has some tests that are not reliable.
    Hopefully reducing the number of threads for the test will fix the issue.
    It seems that the quotes around the parameters means it tries to take everything as one argument. Bu using -j we can actually pass everything as one argument by attaching the j to the sv.

    Patch by Stefan Pintilie. (detail/ViewSVN)
    by gkistanova
  4. [InstCombine] Simplify @llvm.usub.with.overflow+non-zero check (PR43251)

    Summary:
    This is again motivated by D67122 sanitizer check enhancement.
    That patch seemingly worsens `-fsanitize=pointer-overflow`
    overhead from 25% to 50%, which strongly implies missing folds.

    In this particular case, given
    ```
    char* test(char& base, unsigned long offset) {
      return &base - offset;
    }
    ```
    it will end up producing something like
    https://godbolt.org/z/luGEju
    which after optimizations reduces down to roughly
    ```
    declare void @use64(i64)
    define i1 @test(i8* dereferenceable(1) %base, i64 %offset) {
      %base_int = ptrtoint i8* %base to i64
      %adjusted = sub i64 %base_int, %offset
      call void @use64(i64 %adjusted)
      %not_null = icmp ne i64 %adjusted, 0
      %no_underflow = icmp ule i64 %adjusted, %base_int
      %no_underflow_and_not_null = and i1 %not_null, %no_underflow
      ret i1 %no_underflow_and_not_null
    }
    ```
    Without D67122 there was no `%not_null`,
    and in this particular case we can "get rid of it", by merging two checks:
    Here we are checking: `Base u>= Offset && (Base u- Offset) != 0`, but that is simply `Base u> Offset`

    Alive proofs:
    https://rise4fun.com/Alive/QOs

    The `@llvm.usub.with.overflow` pattern itself is not handled here
    because this is the main pattern, that we currently consider canonical.

    https://bugs.llvm.org/show_bug.cgi?id=43251

    Reviewers: spatel, nikic, xbolva00, majnemer

    Reviewed By: xbolva00, majnemer

    Subscribers: vsk, majnemer, xbolva00, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D67356 (detail/ViewSVN)
    by lebedevri

Started by an SCM change (4 times)

This run spent:

  • 34 min waiting;
  • 1 hr 16 min build duration;
  • 1 hr 51 min total from scheduled to completion.
LLVM/Clang Warnings: 1 warning.
    Test Result (no failures)