Started 1 mo 5 days ago
Took 4 hr 22 min on green-dragon-02

Failed Build #14901 (Oct 17, 2019 7:48:56 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 375121
  • http://llvm.org/svn/llvm-project/cfe/trunk : 375119
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 375110
  • http://llvm.org/svn/llvm-project/zorg/trunk : 375080
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 374854
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 375117
Changes
  1. Revert r375114: "[lit] Make internal diff work in pipelines"

    This series of patches still breaks a Windows bot. (detail)
    by jdenny
  2. Revert r375116: "[lit] Extend internal diff to support `-` argument"

    This series of patches still breaks a Windows bot. (detail)
    by jdenny
  3. [OPENMP]Fix thread id passed to outlined region in sequential parallel
    regions.

    The real global thread id must be passed to the outlined region instead
    of the zero thread id. (detail)
    by abataev
  4. [OpenCL] Preserve addrspace in CGClass (PR43145)

    PR43145 revealed two places where Clang was attempting to create a
    bitcast without considering the address space of class types during
    C++ class code generation.

    Differential Revision: https://reviews.llvm.org/D68403 (detail)
    by svenvh
  5. [clangd] Use our own relation kind.

    Summary:
    Move the RelationKind from Serialization.h to Relation.h. This patch doesn't
    introduce any breaking changes.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D68981 (detail)
    by hokein
  6. [lit] Extend internal diff to support `-` argument

    When using lit's internal shell, RUN lines like the following
    accidentally execute an external `diff` instead of lit's internal
    `diff`:

    ```
    # RUN: program | diff file -
    ```

    Such cases exist now, in `clang/test/Analysis` for example.  We are
    preparing patches to ensure lit's internal `diff` is called in such
    cases, which will then fail because lit's internal `diff` doesn't
    recognize `-` as a command-line option.  This patch adds support for
    `-` to mean stdin.

    Reviewed By: probinson, rnk

    Differential Revision: https://reviews.llvm.org/D67643 (detail)
    by jdenny
  7. [lit] Make internal diff work in pipelines

    When using lit's internal shell, RUN lines like the following
    accidentally execute an external `diff` instead of lit's internal
    `diff`:

    ```
    # RUN: program | diff file -
    # RUN: not diff file1 file2 | FileCheck %s
    ```

    Such cases exist now, in `clang/test/Analysis` for example.  We are
    preparing patches to ensure lit's internal `diff` is called in such
    cases, which will then fail because lit's internal `diff` cannot
    currently be used in pipelines and doesn't recognize `-` as a
    command-line option.

    To enable pipelines, this patch moves lit's `diff` implementation into
    an out-of-process script, similar to lit's `cat` implementation.  A
    follow-up patch will implement `-` to mean stdin.

    Reviewed By: probinson, stella.stamenova

    Differential Revision: https://reviews.llvm.org/D66574 (detail)
    by jdenny
  8. [AIX] TOC pseudo expansion for 64bit large + 64bit small + 32bit large models

    This patch provides support for peudo ops including ADDIStocHA8, ADDIStocHA, LWZtocL,
    LDtoc, LDtocL for AIX, lowering them from MIR to assembly.

    Differential Revision: https://reviews.llvm.org/D68341 (detail)
    by xiangling_liao
  9. [OpenCL] Add doc to describe OpenCL support

    The idea of this page is to document work in progress functionality
    and also describe the plan of future development work.

    Patch by Anastasia Stulova.

    Differential Revision: https://reviews.llvm.org/D69072 (detail)
    by svenvh
  10. [mips] [builtins] Remove clear_mips_cache
    Differential Revision: https://reviews.llvm.org/D69021 (detail)
    by zjovanovic
  11. [AMDGPU] Improve code size cost model

    Summary:
    Added estimation for zero size insertelement, extractelement
    and llvm.fabs operators.
    Updated inline/unroll parameters default values.

    Reviewers: rampitec, arsenm

    Reviewed By: arsenm

    Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D68881 (detail)
    by dfukalov
  12. [ARM][MVE] Enable truncating masked stores

    Allow us to generate truncating masked store which take v4i32 and
    v8i16 vectors and can store to v4i8, v4i16 and v8i8 and memory.
    Removed support for unaligned masked stores.

    Differential Revision: https://reviews.llvm.org/D68461 (detail)
    by sam_parker
  13. [docs][llvm-ar] Fix option:: O after r375106

    docs-llvm-html fails => unknown option: O

    There are lots of formatting issues in the file but they will be fixed by D68998. (detail)
    by maskray
  14. [llvm-ar] Implement the O modifier: display member offsets inside the archive

    Since GNU ar 2.31, the 't' operation prints member offsets beside file
    names if the 'O' modifier is specified. 'O' is ignored for thin
    archives.

    Reviewed By: gbreynoo, ruiu

    Differential Revision: https://reviews.llvm.org/D69087 (detail)
    by maskray
  15. [llvm-objcopy] --add-symbol: fix crash if SHT_SYMTAB does not exist

    Exposed by D69041. If SHT_SYMTAB does not exist, ELFObjcopy.cpp:handleArgs will crash due
    to a null pointer dereference.

      for (const NewSymbolInfo &SI : Config.ELF->SymbolsToAdd) {
        ...
        Obj.SymbolTable->addSymbol(

    Fix this by creating .symtab and .strtab on demand in ELFBuilder<ELFT>::readSections,
    if --add-symbol is specified.

    Reviewed By: grimar

    Differential Revision: https://reviews.llvm.org/D69093 (detail)
    by maskray
  16. Include leading attributes in DeclStmt's SourceRange

    Differential Revision: https://reviews.llvm.org/D68581 (detail)
    by sberg
  17. JumpThreadingPass::UnfoldSelectInstr - silence static analyzer dyn_cast<> null dereference warning. NFCI.

    The static analyzer is warning about a potential null dereference, but we should be able to use cast<> directly and if not assert will fire for us. (detail)
    by rksimon
  18. clang-tidy - silence static analyzer getAs<> null dereference warnings. NFCI.

    The static analyzer is warning about potential null dereferences, but in these cases we should be able to use castAs<> directly and if not assert will fire for us. (detail)
    by rksimon
  19. SemaExprCXX - silence static analyzer getAs<> null dereference warnings. NFCI.

    The static analyzer is warning about potential null dereferences, but in these cases we should be able to use castAs<> directly and if not assert will fire for us. (detail)
    by rksimon
  20. [LoopIdiom] BCmp: check, not assert that loop exits exit out of the loop (PR43687)

    We can't normally stumble into that assertion because a tautological
    *conditional* `br` in loop body is required, one that always
    branches to loop latch. But that should have been always folded
    to an unconditional branch before we get it.
    But that is not guaranteed if the pass is run standalone.
    So let's just promote the assertion into a proper check.

    Fixes https://bugs.llvm.org/show_bug.cgi?id=43687 (detail)
    by lebedevri
  21. SemaDeclObjC - silence static analyzer getAs<> null dereference warnings. NFCI.

    The static analyzer is warning about potential null dereferences, but in these cases we should be able to use castAs<> directly and if not assert will fire for us. (detail)
    by rksimon
  22. [llvm-readobj] - Refine the LLVM-style output to be consistent.

    Our LLVM-style output was inconsistent.
    This patch changes the output in the following way:

    SHT_GNU_verdef { -> VersionDefinitions [
    SHT_GNU_verneed { -> VersionRequirements [
    Version symbols [ -> VersionSymbols [
    EH_FRAME Header [ -> EHFrameHeader {

    Differential revision: https://reviews.llvm.org/D68636 (detail)
    by grimar
  23. Reland: Dead Virtual Function Elimination

    Remove dead virtual functions from vtables with
    replaceNonMetadataUsesWith, so that CGProfile metadata gets cleaned up
    correctly.

    Original commit message:

    Currently, it is hard for the compiler to remove unused C++ virtual
    functions, because they are all referenced from vtables, which are referenced
    by constructors. This means that if the constructor is called from any live
    code, then we keep every virtual function in the final link, even if there
    are no call sites which can use it.

    This patch allows unused virtual functions to be removed during LTO (and
    regular compilation in limited circumstances) by using type metadata to match
    virtual function call sites to the vtable slots they might load from. This
    information can then be used in the global dead code elimination pass instead
    of the references from vtables to virtual functions, to more accurately
    determine which functions are reachable.

    To make this transformation safe, I have changed clang's code-generation to
    always load virtual function pointers using the llvm.type.checked.load
    intrinsic, instead of regular load instructions. I originally tried writing
    this using clang's existing code-generation, which uses the llvm.type.test
    and llvm.assume intrinsics after doing a normal load. However, it is possible
    for optimisations to obscure the relationship between the GEP, load and
    llvm.type.test, causing GlobalDCE to fail to find virtual function call
    sites.

    The existing linkage and visibility types don't accurately describe the scope
    in which a virtual call could be made which uses a given vtable. This is
    wider than the visibility of the type itself, because a virtual function call
    could be made using a more-visible base class. I've added a new
    !vcall_visibility metadata type to represent this, described in
    TypeMetadata.rst. The internalization pass and libLTO have been updated to
    change this metadata when linking is performed.

    This doesn't currently work with ThinLTO, because it needs to see every call
    to llvm.type.checked.load in the linkage unit. It might be possible to
    extend this optimisation to be able to use the ThinLTO summary, as was done
    for devirtualization, but until then that combination is rejected in the
    clang driver.

    To test this, I've written a fuzzer which generates random C++ programs with
    complex class inheritance graphs, and virtual functions called through object
    and function pointers of different types. The programs are spread across
    multiple translation units and DSOs to test the different visibility
    restrictions.

    I've also tried doing bootstrap builds of LLVM to test this. This isn't
    ideal, because only classes in anonymous namespaces can be optimised with
    -fvisibility=default, and some parts of LLVM (plugins and bugpoint) do not
    work correctly with -fvisibility=hidden. However, there are only 12 test
    failures when building with -fvisibility=hidden (and an unmodified compiler),
    and this change does not cause any new failures for either value of
    -fvisibility.

    On the 7 C++ sub-benchmarks of SPEC2006, this gives a geomean code-size
    reduction of ~6%, over a baseline compiled with "-O2 -flto
    -fvisibility=hidden -fwhole-program-vtables". The best cases are reductions
    of ~14% in 450.soplex and 483.xalancbmk, and there are no code size
    increases.

    I've also run this on a set of 8 mbed-os examples compiled for Armv7M, which
    show a geomean size reduction of ~3%, again with no size increases.

    I had hoped that this would have no effect on performance, which would allow
    it to awlays be enabled (when using -fwhole-program-vtables). However, the
    changes in clang to use the llvm.type.checked.load intrinsic are causing ~1%
    performance regression in the C++ parts of SPEC2006. It should be possible to
    recover some of this perf loss by teaching optimisations about the
    llvm.type.checked.load intrinsic, which would make it worth turning this on
    by default (though it's still dependent on -fwhole-program-vtables).

    Differential revision: https://reviews.llvm.org/D63932 (detail)
    by ostannard

Started by timer (5 times)

This run spent:

  • 4 hr 38 min waiting;
  • 4 hr 22 min build duration;
  • 9 hr 0 min total from scheduled to completion.

Identified problems

Assertion failure

This build failed because of an assertion failure. Below is a list of all errors in the build log:
Indication 1

Compile Error

This build failed because of a compile error. Below is a list of all errors in the build log:
Indication 2

Regression test failed

This build failed because a regression test in the test suite FAILed. See the test report for details.
Indication 3

Ninja target failed

Below is a link to the first failed ninja target.
Indication 4

Missing test results

The test result file Jenkins is looking for does not exist after the build.
Indication 5