Started 13 days ago
Took 14 min

Success Build clang-r362971-t57408-b57408.tar.gz (Jun 10, 2019 11:43:24 AM)

Issues

No known issues detected

Build Log

Revision: 362564
Changes
  1. Prepare for multi-exit LFTR [NFC]

    This change does the plumbing to wire an ExitingBB parameter through the LFTR implementation, and reorganizes the code to work in terms of a set of individual loop exits. Most of it is fairly obvious, but there's one key complexity which makes it worthy of consideration. The actual multi-exit LFTR patch is in D62625 for context.

    Specifically, it turns out the existing code uses the backedge taken count from before a IV is widened. Oddly, we can end up with a different (more expensive, but semantically equivelent) BE count for the loop when requerying after widening.  For the nestedIV example from elim-extend, we end up with the following BE counts:
    BEFORE: (-2 + (-1 * %innercount) + %limit)
    AFTER: (-1 + (sext i32 (-1 + %limit) to i64) + (-1 * (sext i32 %innercount to i64))<nsw>)

    This is the only test in tree which seems sensitive to this difference. The actual result of using the wider BETC on this example is that we actually produce slightly better code. :)

    In review, we decided to accept that test change.  This patch is structured to preserve the old behavior, but a separate change will immediate follow with the behavior change.  (I wanted it separate for problem attribution purposes.)

    Differential Revision: https://reviews.llvm.org/D62880 (detail)
    by reames
  2. [ELF][llvm-objdump] Treat dynamic tag values as virtual addresses instead of offsets

    The ELF gABI requires the tag values of DT_REL, DT_RELA and DT_JMPREL to be
    treated as virtual addresses. They were treated as offsets. Fixes PR41832.

    Differential Revision: https://reviews.llvm.org/D62972 (detail)
    by wolfgangp
Revision: 362564
Changes
  1. Add unused symbol to thunk files to force wholearchive inclusion

    These "dynamic_runtime_thunk" object files exist to create a weak alias
    from 'foo' to 'foo_dll' for all weak sanitizer runtime symbols. The weak
    aliases are implemented as /alternatename linker options in the
    .drective section, so they are not actually in the symbol table. In
    order to force the Visual C++ linker to load the object, even with
    -wholearchive:, we have to provide at least one external symbol. Once we
    do that, it will read the .drective sections and see the weak aliases.

    Fixes PR42074 (detail)
    by rnk

Started by upstream project relay-lnt-ctmark build number 8587
originally caused by:

This run spent:

  • 4 min 49 sec waiting;
  • 14 min build duration;
  • 14 min total from scheduled to completion.