Started 1 mo 3 days ago
Took 4 hr 10 min on green-dragon-02

Failed Build #14724 (Sep 18, 2019 1:35:25 PM)

  • : 372257
  • : 372252
  • : 372205
  • : 371835
  • : 372242
  • : 372206
  1. [InstCombine] foldUnsignedUnderflowCheck(): handle last few cases (PR43251)

    I don't have a direct motivational case for this,
    but it would be good to have this for completeness/symmetry.

    This pattern is basically the motivational pattern from
    but with different predicate that requires that the offset is non-zero.

    The completeness bit comes from the fact that a similar pattern (offset != zero)
    will be needed for,
    so it'd seem to be good to not overlook very similar patterns..


    Also, there is something odd with `isKnownNonZero()`, if the non-zero
    knowledge was specified as an assumption, it didn't pick it up (PR43267)

    With this, i see no other missing folds for

    Reviewers: spatel, nikic, xbolva00

    Reviewed By: spatel

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail)
    by lebedevri
  2. [AArch64] Don't implicitly enable global isel on Darwin if code-model==large.

    AArch64 GlobalISel doesn't support MachO's large code model, so this patch
    adds a check for that combination before implicitly enabling it.

    Reviewers: paquette

    Subscribers: kristof.beyls, ributzka, llvm-commits

    Tags: #llvm

    Differential Revision: (detail)
    by Lang Hames
  3. [SimplifyCFG] mergeConditionalStoreToAddress(): consider cost, not instruction count

    As it can be see in the changed test, while `div` is really costly,
    we were speculating it. This does not seem correct.

    Also, the old code would run for every single insturuction in BB,
    instead of eagerly bailing out as soon as there are too many instructions.

    This function still has a problem that `PHINodeFoldingThreshold` is
    per-basic-block, while it should be for all the basic blocks.

    Reviewers: efriedma, craig.topper, dmgreen, jmolloy

    Reviewed By: jmolloy

    Subscribers: xbolva00, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail)
    by lebedevri
  4. [MIPS] For vectors, select `add %x, C` as `sub %x, -C` if it results in inline immediate

    As discussed in,
    for MIPS `add %x, -1` isn't optimal. Unlike X86 there
    are no fastpaths to matearialize such `-1`/`1` vector constants,
    and `sub %x, 1` results in better codegen,
    so undo canonicalization

    Reviewers: atanasyan, Petar.Avramovic, RKSimon

    Reviewed By: atanasyan

    Subscribers: sdardis, arichardson, hiraditya, jrtc27, llvm-commits

    Tags: #llvm

    Differential Revision: (detail)
    by lebedevri
  5. [CodeGen][MIPS][NFC] Some standalone tests for D66805 "or vectors, select `add %x, C` as `sub %x, -C` if it results in inline immediate" (detail)
    by lebedevri
  6. [OPENMP]Fix for PR43349: Crash for privatized loop bound.

    If the variable, used in the loop boundaries, is not captured in the
    construct, this variable must be considered as undefined if it was
    privatized. (detail)
    by abataev
  7. [mips] Expand 'lw/sw' instructions for 32-bit GOT

    In case of using 32-bit GOT access to the table requires two instructions
    with attached %got_hi and %got_lo relocations. This patch implements
    correct expansion of 'lw/sw' instructions in that case.

    Differential Revision: (detail)
    by atanasyan
  8. actually also compile output in tests for -frewrite-includes

    Checking that the created output matches something is nice, but
    this should also check whether the output makes sense.

    Differential Revision: (detail)
    by llunak
  9. [clang-format][PR41899] PointerAlignment: Left leads to useless space in lambda intializer expression


    ```auto lambda = [&a = a]() { a = 2; };```

    is formatted as

    ```auto lambda = [& a = a]() { a = 2; };```

    With an extra space if PointerAlignment is set to Left

    > The space "& a" looks strange when there is no type in the lambda's intializer expression. This can be worked around with by setting "PointerAlignment: Right", but ideally "PointerAlignment: Left" would not add a space in this case.

    Reviewers: klimek, owenpan, krasimir, timwoj

    Reviewed By: klimek

    Subscribers: cfe-commits

    Tags: #clang-tools-extra, #clang

    Differential Revision: (detail)
    by paulhoad
  10. make -frewrite-includes also rewrite conditions in #if/#elif

    Those conditions may use __has_include, which needs to be rewritten.
    The existing code has already tried to rewrite just __has_include,
    but it didn't work with macro expansion, so e.g. Qt's
    "#define QT_HAS_INCLUDE(x) __has_include(x)" didn't get handled
    properly. Since the preprocessor run knows what each condition evaluates
    to, just rewrite the entire condition. This of course requires that
    the -frewrite-include pass has the same setup as the following
    compilation, but that has always been the requirement.

    Differential Revision: (detail)
    by llunak
  11. [Sema] Suppress -Wformat diagnostics for bool types when printed using %hhd

    Also, add a diagnostic under -Wformat for printing a boolean value as a


    Differential revision: (detail)
    by epilk
  12. [clang-format][PR41964] Fix crash with SIGFPE when TabWidth is set to 0 and line starts with tab

    clang-format 8.0 crashes with SIGFPE (floating point exception) when formatting following file:
    void a() {
    //line starts with '\t'

    $ clang-format -style='{TabWidth: 0}' app.cpp

    Reviewers: owenpan, klimek, russellmcc, timwoj

    Reviewed By: klimek

    Subscribers: cfe-commits

    Tags: #clang-tools-extra, #clang

    Differential Revision: (detail)
    by paulhoad
  13. [InstCombine] dropRedundantMaskingOfLeftShiftInput(): some cleanup before upcoming patch (detail)
    by lebedevri
  14. [NFC][InstCombine] More tests for PR42563 "Dropping pointless masking before left shift"

    For patterns c/d/e we too can deal with the pattern even if we can't
    just drop the mask, we can just apply it afterwars: (detail)
    by lebedevri
  15. Fix compile-time regression caused by rL371928

    Also fixup rL371928 for cases that occur on our out-of-tree backend

    There were still quite a few intermediate APInts and this caused the
    compile time of MCCodeEmitter for our target to jump from 16s up to
    ~5m40s. This patch, brings it back down to ~17s by eliminating pretty
    much all of them using two new APInt functions (extractBitsAsZExtValue(),
    insertBits() but with a uint64_t). The exact conditions for eliminating
    them is that the field extracted/inserted must be <=64-bit which is
    almost always true.

    Note: The two new APInt API's assume that APInt::WordSize is at least
    64-bit because that means they touch at most 2 APInt words. They
    statically assert that's true. It seems very unlikely that someone
    is patching it to be smaller so this should be fine.

    Reviewers: jmolloy

    Reviewed By: jmolloy

    Subscribers: hiraditya, dexonsmith, llvm-commits

    Tags: #llvm

    Differential Revision: (detail)
    by dsanders
  16. Revert "Revert "Implement std::condition_variable via pthread_cond_clockwait() where available""

    With the fix for non-Linux.

    This reverts commit c1c519d2f1a66dd2eeaa4c321d8d7b50f623eb71. (detail)
    by danalbert
  17. [DDG] Break a cyclic dependency from Analysis to ScalarOpts (detail)
    by d0k
  18. gn build: Merge r372238 (detail)
    by gnsyncbot
  19. Data Dependence Graph Basics

    This is the first patch in a series of patches that will implement data dependence graph in LLVM. Many of the ideas used in this implementation are based on the following paper:
    D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Leasure, and M. Wolfe (1981). DEPENDENCE GRAPHS AND COMPILER OPTIMIZATIONS.
    This patch contains support for a basic DDGs containing only atomic nodes (one node for each instruction). The edges are two fold: def-use edges and memory-dependence edges.
    The implementation takes a list of basic-blocks and only considers dependencies among instructions in those basic blocks. Any dependencies coming into or going out of instructions that do not belong to those basic blocks are ignored.

    The algorithm for building the graph involves the following steps in order:

      1. For each instruction in the range of basic blocks to consider, create an atomic node in the resulting graph.
      2. For each node in the graph establish def-use edges to/from other nodes in the graph.
      3. For each pair of nodes containing memory instruction(s) create memory edges between them. This part of the algorithm goes through the instructions in lexicographical order and creates edges in reverse order if the sink of the dependence occurs before the source of it.

    Authored By: bmahjour

    Reviewer: Meinersbur, fhahn, myhsu, xtian, dmgreen, kbarton, jdoerfert

    Reviewed By: Meinersbur, fhahn, myhsu

    Subscribers: ychen, arphaman, simoll, a.elovikov, mgorny, hiraditya, jfb, wuzish, llvm-commits, jsji, Whitney, etiotto

    Tag: #llvm

    Differential Revision: (detail)
    by bmahjour
  20. [c++20] P1331R2: Allow transient use of uninitialized objects in
    constant evaluation. (detail)
    by rsmith
  21. [InstSimplify] add tests for fma/fmuladd; NFC (detail)
    by spatel
  22. [OPENMP5.0]Allow multiple context selectors in the context selector

    According to OpenMP 5.0, context selector set might include several
    context selectors, separated with commas. Patch fixes this problem. (detail)
    by abataev

Started by timer (4 times)

This run spent:

  • 3 hr 24 min waiting;
  • 4 hr 10 min build duration;
  • 7 hr 35 min total from scheduled to completion.

Identified problems

Missing test results

The test result file Jenkins is looking for does not exist after the build.
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

Ninja target failed

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