Started 3 mo 14 days ago
Took 9 hr 37 min on green-dragon-13

Failed Build #6419 (Jun 8, 2019 12:10:17 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 362868
  • http://llvm.org/svn/llvm-project/cfe/trunk : 362856
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 362859
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 362745
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 362866
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 362811
Changes
  1. [SystemZ, RegAlloc]  Favor 3-address instructions during instruction selection.

    This patch aims to reduce spilling and register moves by using the 3-address
    versions of instructions per default instead of the 2-address equivalent
    ones. It seems that both spilling and register moves are improved noticeably
    generally.

    Regalloc hints are passed to increase conversions to 2-address instructions
    which are done in SystemZShortenInst.cpp (after regalloc).

    Since the SystemZ reg/mem instructions are 2-address (dst and lhs regs are
    the same), foldMemoryOperandImpl() can no longer trivially fold a spilled
    source register since the reg/reg instruction is now 3-address. In order to
    remedy this, new 3-address pseudo memory instructions are used to perform the
    folding only when the dst and lhs virtual registers are known to be allocated
    to the same physreg. In order to not let MachineCopyPropagation run and
    change registers on these transformed instructions (making it 3-address), a
    new target pass called SystemZPostRewrite.cpp is run just after
    VirtRegRewriter, that immediately lowers the pseudo to a target instruction.

    If it would have been possibe to insert a COPY instruction and change a
    register operand (convert to 2-address) in foldMemoryOperandImpl() while
    trusting that the caller (e.g. InlineSpiller) would update/repair the
    involved LiveIntervals, the solution involving pseudo instructions would not
    have been needed. This is perhaps a potential improvement (see Phabricator
    post).

    Common code changes:

    * A new hook TargetPassConfig::addPostRewrite() is utilized to be able to run a
    target pass immediately before MachineCopyPropagation.

    * VirtRegMap is passed as an argument to foldMemoryOperand().

    Review: Ulrich Weigand, Quentin Colombet
    https://reviews.llvm.org/D60888 (detail)
    by jonpa
  2. update debugging docs to be less out of date (detail)
    by ericwf
  3. Substantially reduce instantiations and debug size of std::function

    std::function uses a standard allocator to manage its memory, however
    standard allocators are templates and using them correctly requires
    a stupid amount of instantiations. This leads to a substantial increase
    in debug info and object sizes.

    This patch addresses the issue by dropping the allocator when possible
    and using raw new and delete to get memory.

    This change decreases the object file size for the test func.wrap.func.con/F.pass.cpp by 33% and the final binary by 29% (when compiled with -g -ggnu-pubnames -gpubnames).

    It also roughly halfs the number of entries in the pubnames and pubtype
    sections. (detail)
    by ericwf
  4. gn build: Merge r362857 (detail)
    by nico
  5. [llvm-objcopy][MachO] Recompute and update offset/size fields in the writer

    Summary:
    Recompute and update offset/size fields so that we can implement llvm-objcopy options like --only-section.

    This patch is the first step and focuses on supporting load commands that covered by existing tests: executable files and
    dynamic libraries are not supported.

    Reviewers: alexshap, rupprecht, jhenderson

    Reviewed By: alexshap, rupprecht

    Subscribers: compnerd, jakehehrlich, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62652 (detail)
    by seiya
  6. Fix some incorrect std::function tests (detail)
    by ericwf
  7. Visualizer for APInt and remove obsolete visualizer

    Visualizer for the simple case of APInt (uints < 2^64)
    as will be required  for Clang ConstantArrayType visualizer.
    Also, removed obsolete VS2013 SmallVectorVisualizer as VS2013
    is no longer supported. (detail)
    by mps
  8. Experimantal dfsan mode "fast16labels=1"

    Summary:
    dfsan mode "fast16labels=1".
    In this mode the labels are treated as 16-bit bit masks.

    Reviewers: pcc

    Reviewed By: pcc

    Subscribers: delcypher, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D62870 (detail)
    by kcc
  9. Factor out SelectionDAG's switch analysis and lowering into a separate component.

    In order for GlobalISel to re-use the significant amount of analysis and
    optimization code in SDAG's switch lowering, we first have to extract it and
    create an interface to be used by both frameworks.

    No test changes as it's NFC.

    Differential Revision: https://reviews.llvm.org/D62745 (detail)
    by aemerson
  10. DebugInfo: Add support for 'nodebug' attribute on typedefs and alias templates

    Seems like a logical extension to me - and of interest because it might
    help reduce the debug info size of libc++ by applying this attribute to
    type traits that have a disproportionate debug info cost compared to the
    benefit (& possibly harm/confusion) they cause users. (detail)
    by dblaikie
  11. [analyzer] Add werror flag for analyzer warnings

    Summary:
    We're using the clang static analyzer together with a number of
    custom analyses in our CI system to ensure that certain invariants
    are statiesfied for by the code every commit. Unfortunately, there
    currently doesn't seem to be a good way to determine whether any
    analyzer warnings were emitted, other than parsing clang's output
    (or using scan-build, which then in turn parses clang's output).
    As a simpler mechanism, simply add a `-analyzer-werror` flag to CC1
    that causes the analyzer to emit its warnings as errors instead.
    I briefly tried to have this be `Werror=analyzer` and make it go
    through that machinery instead, but that seemed more trouble than
    it was worth in terms of conflicting with options to the actual build
    and special cases that would be required to circumvent the analyzers
    usual attempts to quiet non-analyzer warnings. This is simple and it
    works well.

    Reviewed-By: NoQ, Szelethusw
    Differential Revision: https://reviews.llvm.org/D62885 (detail)
    by kfischer
  12. LoopDistribute: Add testcase where SCEV wants to insert a runtime
    check.

    Only the memory based checks were being tested. Prepare for fix in
    convergent handling. (detail)
    by arsenm
  13. [GVN] non-functional code movement

    Summary: Move some code around, in preparation for later fixes
    to the non-integral addrspace handling (D59661)

    Patch By Jameson Nash <jameson@juliacomputing.com>

    Reviewed By: reames, loladiro
    Differential Revision: https://reviews.llvm.org/D59729 (detail)
    by kfischer
  14. AMDGPU: Force skips around traps (detail)
    by arsenm
  15. [COFF] Fix /export:foo=bar when bar is a weak alias

    Summary:
    When handling exports from the command line or from .def files, the
    linker does a "fuzzy" string lookup to allow finding mangled symbols.
    However, when the symbol is re-exported under a new name, the linker has
    to transfer the decorations from the exported symbol over to the new
    name. This is implemented by taking the mangled symbol that was found in
    the object and replacing the original symbol name with the export name.

    Before this patch, LLD implemented the fuzzy search by adding an
    undefined symbol with the unmangled name, and then during symbol
    resolution, checking if similar mangled symbols had been added after the
    last round of symbol resolution. If so, LLD makes the original symbol a
    weak alias of the mangled symbol. Later, to get the original symbol
    name, LLD would look through the weak alias and forward it on to the
    import library writer, which copies the symbol decorations. This
    approach doesn't work when bar is itself a weak alias, as is the case in
    asan. It's especially bad when the aliasee of bar contains the string
    "bar", consider "bar_default". In this case, we would end up exporting
    the symbol "foo_default" when we should've exported just "foo".

    To fix this, don't look through weak aliases to find the mangled name.
    Save the mangled name earlier during fuzzy symbol lookup.

    Fixes PR42074

    Reviewers: mstorsjo, ruiu

    Subscribers: thakis, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62984 (detail)
    by rnk
  16. [llvm-lipo] Add docs for llvm-lipo

    Add docs (llvm-lipo.rst) for llvm-lipo.

    Test plan:
    make -j8 sphinx
    check that ./docs/html/CommandGuide/llvm-lipo.html is built correctly and looks okay.

    Differential revision: https://reviews.llvm.org/D62706 (detail)
    by alexshap
  17. [llvm-objdump] Fix Bugzilla ID 41862 to support checking addresses of disassembled object

    Summary:
    This fixes the bugzilla id,41862 to support dealing with checking
    stop address against start address to support this not being a
    proper object to check the disasembly against like gnu objdump
    currently does.

    Reviewers: jakehehrlich, rupprecht, echristo, jhenderson, grimar

    Reviewed By: jhenderson

    Subscribers: MaskRay, smeenai, rupprecht, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D61969

    Patch by Nicholas Krause! (detail)
    by rupprecht
  18. Fix string literals to avoid deprecation warnings in regexp patterns

    In LLDB, where tests run with the debug version of Python, we get a
    series of deprecation warnings because escape sequences like `\(` are
    being treated as part of the string literal rather than an escape for
    the regexp pattern.

    NFC intended.

    Differential Revision: https://reviews.llvm.org/D62882 (detail)
    by amccarth
  19. [GWP-ASan] Removed unittests from Android build.

    Summary:
    Longstanding issues in the Android test runner means that compiler-rt unit
    tests don't work on Android due to libc++ link-time issues. Looks like the
    exported libc++ from the Android NDK is x86-64, even though it's part of the
    ARM[64] toolchain... See similar measures for ASan and sanitizer-common that
    disable unit tests for Android.

    Should fully fix the Android bots (@vlad.tsyrklevich).

    Reviewers: vitalybuka

    Reviewed By: vitalybuka

    Subscribers: srhines, kubamracek, mgorny, javed.absar, kristof.beyls, #sanitizers, llvm-commits, vlad.tsyrklevich

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D63019 (detail)
    by hctim
  20. [llvm-lipo] Drop unneeded braces. NFC (detail)
    by smeenai
  21. [llvm-lipo] Implement -archs

    Displays the architecture names of an input file.
    Unknown architectures are represented by unknown(cputype,cpusubtype).

    Patch by Anusha Basana <anusha.basana@gmail.com>

    Differential Revision: https://reviews.llvm.org/D62753 (detail)
    by smeenai
  22. [DomTreeUpdater] Add all insert before all delete updates to reduce compile time.

    Summary:
    The cleanup in D62751 introduced a compile-time regression due to the way DT updates are performed.
    Add all insert edges then all delete edges in DTU to match the previous compile time.
    Compile time on the test provided by @mstorsjo before and after this patch on my machine:
    113.046s vs 35.649s
    Repro: clang -target x86_64-w64-mingw32 -c -O3 glew-preproc.c; on https://martin.st/temp/glew-preproc.c.

    Reviewers: kuhar, NutshellySima, mstorsjo

    Subscribers: jlebar, mstorsjo, dmgreen, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62981 (detail)
    by asbirlea
  23. [llvm-objdump] Add warning if --disassemble-functions specifies an unknown symbol

    Summary:
    Fixes Bug 41904 https://bugs.llvm.org/show_bug.cgi?id=41904

    Re-land r362768 after it was reverted in r362826.

    Reviewers: jhenderson, rupprecht, grimar, MaskRay

    Reviewed By: jhenderson, rupprecht, MaskRay

    Subscribers: dexonsmith, rupprecht, kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62275 (detail)
    by pozulp
  24. [X86] Remove unnecessary new line escape from the end of a macro. NFC (detail)
    by ctopper
  25. Relax test so that the clang binary doesn't need to be named "clang". (detail)
    by pcc
  26. [ADT] Enable set_difference() to be used on StringSet

    Summary: Re-land r362766 after it was reverted in r362823.

    Reviewers: jhenderson, dsanders, aaron.ballman, MatzeB, lhames, dblaikie

    Reviewed By: dblaikie

    Subscribers: smeenai, mgrang, mgorny, dexonsmith, kristina, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62369 (detail)
    by pozulp
  27. [GlobalISel] IRTranslator: Translate the intrinsics ignored by CodeGen

    Summary:
    Translate `llvm.assume`, `llvm.var.annotation` and `llvm.sideeffect` to nothing
    as they have no effect on CodeGen.

    Reviewers: qcolombet, aditya_nandakumar, dsanders, paquette, aemerson, arsenm

    Reviewed By: arsenm

    Subscribers: hiraditya, wdng, rovka, kristof.beyls, javed.absar, Petar.Avramovic, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63022 (detail)
    by volkan
  28. [APFloat] APFloat::Storage::Storage - refix use after move

    Summary:
    Re-land r360675 after it was reverted in r360770.

    This was reported in:
    https://llvm.org/reports/scan-build/

    Based on feedback in:
    https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190513/652286.html

    Reviewers: RKSimon, efriedma

    Reviewed By: RKSimon, efriedma

    Subscribers: eli.friedman, hiraditya, llvm-commits, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62767 (detail)
    by nickdesaulniers
  29. [ORC] Update symbol lookup to use a single callback with a required symbol state
    rather than two callbacks.

    The asynchronous lookup API (which the synchronous lookup API wraps for
    convenience) used to take two callbacks: OnResolved (called once all requested
    symbols had an address assigned) and OnReady to be called once all requested
    symbols were safe to access). This patch updates the asynchronous lookup API to
    take a single 'OnComplete' callback and a required state (SymbolState) to
    determine when the callback should be made. This simplifies the common use case
    (where the client is interested in a specific state) and will generalize neatly
    as new states are introduced to track runtime initialization of symbols.

    Clients who were making use of both callbacks in a single query will now need to
    issue two queries (one for SymbolState::Resolved and another for
    SymbolState::Ready). Synchronous lookup API clients who were explicitly passing
    the WaitOnReady argument will now need neeed to pass a SymbolState instead (for
    'WaitOnReady == true' use SymbolState::Ready, for 'WaitOnReady == false' use
    SymbolState::Resolved). Synchronous lookup API clients who were using default
    arugment values should see no change. (detail)
    by Lang Hames
  30. Revert "[CodeComplete] Improve overload handling for C++ qualified and ref-qualified methods."

    This reverts commit f1f6e0fc2468e9c120b22b939507c527d08b8ee8, it was
    causing LSan failures on the sanitizer bots:
    http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/32809 (detail)
    by vlad.tsyrklevich
  31. Driver, IRGen: Set partitions on GlobalValues according to -fsymbol-partition flag.

    Differential Revision: https://reviews.llvm.org/D62636 (detail)
    by pcc

Started by upstream project clang-stage2-cmake-RgSan_relay build number 1134
originally caused by:

This run spent:

  • 2 ms waiting;
  • 9 hr 37 min build duration;
  • 9 hr 37 min total from scheduled to completion.
Test Result (no failures)

    Identified problems

    Ninja target failed

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

    Regression test failed

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