Started 25 days ago
Took 18 hr on green-dragon-09

Failed Build #5484 (Sep 20, 2019 12:02:39 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 372373
  • http://llvm.org/svn/llvm-project/cfe/trunk : 372368
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 372348
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 364589
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 372242
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 372317
Changes
  1. [X86] Convert tbm_bextri_u32/tbm_bextri_u64 intrinsics TargetConstant argument to a regular Constant during lowering.

    We reuse an ISD opcode here that can be reached from BMI that
    doesn't require it to be an immediate. Our isel patterns to match
    the TBM immediate form require a Constant and not a TargetConstant.

    We were accidentally getting the Constant due to a quirk of
    combineBEXTR calling SimplifyDemandedBits. The call to
    SimplifyDemandedBits ended up constant folding the TargetConstant
    to a regular Constant. But we should probably instead be asserting
    if SimplifyDemandedBits on a TargetConstant so we shouldn't rely
    on this behavior. (detail/ViewSVN)
    by ctopper
  2. [llvm-readobj] flush output before crash

    Otherwise the output could be lost. (detail/ViewSVN)
    by yuanfang
  3. [X86] Use timm in MMX pinsrw/pextrw isel patterns. Add missing test cases.

    This fixes an isel failure after r372338. (detail/ViewSVN)
    by ctopper
  4. [llvm-ar] Removes repetition in the error message

    As per bug 40244, fixed an error where the error message was repeated.

    Differential Revision: https://reviews.llvm.org/D67038
    Patch by Yu Jian (wyjw) (detail/ViewSVN)
    by maskray
  5. [Object] Uncapitalize an error message

    Test case will be added by my next commit. (detail/ViewSVN)
    by maskray
  6. Finish building the full-expression for a static_assert expression
    before evaluating it rather than afterwards.

    This is groundwork for C++20's P0784R7, where non-trivial destructors
    can be constexpr, so we need ExprWithCleanups markers in constant
    expressions.

    No significant functionality change intended (though this fixes a bug
    only visible through libclang / -ast-dump / tooling: we now store the
    converted condition on the StaticAssertDecl rather than the original). (detail/ViewSVN)
    by rsmith
  7. llvm-undname: Delete an empty, unused method. (detail/ViewSVN)
    by nico
  8. Use getTargetConstant for BLENDI, and add a test to catch it.

    Summary: This fixes a crasher introduced by r372338.

    Reviewers: echristo, arsenm

    Subscribers: jvesely, wdng, nhaehnle, hiraditya, llvm-commits

    Tags: #llvm

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

    Tighten up the test case. (detail/ViewSVN)
    by saugustine
  9. [X86] Remove the special isBuildVectorOfConstantSDNodes handling from LowerBUILD_VECTORvXi1.

    The later code that generates a constant when there are
    some non-const elements works basically the same and doesn't
    require there to be any non-const elements. (detail/ViewSVN)
    by ctopper
  10. [NFCI] Always initialize const members of AttributeCommonInfo

    Some compilers require that const fields of an object must be explicitly
    initialized by the constructor. I ran into this issue building with
    clang 3.8 on Ubuntu 16.04. (detail/ViewSVN)
    by xiaobai
  11. MachineScheduler: Fix missing dependency with multiple subreg defs

    If an instruction had multiple subregister defs, and one of them was
    undef, this would improperly conclude all other lanes are
    killed. There could still be other defs of those read-undef lanes in
    other operands. This would improperly remove register uses from
    CurrentVRegUses, so the visitation of later operands would not find
    the necessary register dependency. This would also mean this would
    fail or not depending on how different subregister def operands were
    ordered.

    On an undef subregister def, scan the instruction for other
    subregister defs and avoid killing those.

    This possibly should be deferring removing anything from
    CurrentVRegUses until the entire instruction has been processed
    instead. (detail/ViewSVN)
    by arsenm
  12. [Consumed] Treat by-value class arguments as consuming by default, like rvalue refs.

    Differential Revision: https://reviews.llvm.org/D67743 (detail/ViewSVN)
    by comex
  13. Fix for stringized function-macro args continued across lines

    In case of certain #define'd macros, there's a space just before line continuation
    that the minimized-source lexer was missing to include, resulting in invalid stringize.

    Patch by: kousikk (Kousik Kumar)

    Differential Revision: https://reviews.llvm.org/D67635 (detail/ViewSVN)
    by arphaman
  14. Model converted constant expressions as full-expressions.

    This is groundwork for C++20's P0784R7, where non-trivial destructors
    can be constexpr, so we need ExprWithCleanups markers in constant
    expressions.

    No functionality change intended. (detail/ViewSVN)
    by rsmith
  15. [AArch64] Fix formatting (NFC) (detail/ViewSVN)
    by evandro
  16. [CUDA][HIP] Re-apply part of r372318.

    - r372318 causes violation of `use-of-uninitialized-value` detected by
      MemorySanitizer. Once `Viable` field is set to false, `FailureKind`
      needs setting as well as it will be checked during destruction if
      `Viable` is not true.
    - Revert the part trying to skip `std::vector` erasing. (detail/ViewSVN)
    by hliao
  17. Revert "[CUDA][HIP] Fix typo in `BestViableFunction`"

    Broke the msan buildbots (see comments on rL372318 for more details).

    This reverts commit eb231d15825ac345b546f4c99372d1cac8f14f02. (detail/ViewSVN)
    by hctim
  18. [ObjC][ARC] Skip debug instructions when computing the insert point of
    objc_release calls

    This fixes a bug where the presence of debug instructions would cause
    ARC optimizer to change the order of retain and release calls.

    rdar://problem/55319419 (detail/ViewSVN)
    by ahatanak
  19. [AMDGPU] fixed underflow in getOccupancyWithNumVGPRs

    The function could return zero if an extreme number or
    registers were used. Minimal possible occupancy is 1.

    Differential Revision: https://reviews.llvm.org/D67771 (detail/ViewSVN)
    by rampitec
  20. llvm-reduce: Follow-up to 372280, now with more-better msan fixing (detail/ViewSVN)
    by dblaikie
  21. [lsan] Fix deadlock in dl_iterate_phdr.

    Summary:
    Do not grab the allocator lock before calling dl_iterate_phdr. This may
    cause a lock order inversion with (valid) user code that uses malloc
    inside a dl_iterate_phdr callback.

    Reviewers: vitalybuka, hctim

    Subscribers: jfb, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D67738 (detail/ViewSVN)
    by eugenis
  22. Don't use invalidated iterators in FlattenCFGPass

    Summary:
    FlattenCFG may erase unnecessary blocks, which also invalidates iterators to those erased blocks.
    Before this patch, `iterativelyFlattenCFG` could try to increment a BB iterator after that BB has been removed and crash.

    This patch makes FlattenCFGPass use `WeakVH` to skip over erased blocks.

    Reviewers: dblaikie, tstellar, davide, sanjoy, asbirlea, grosser

    Reviewed By: asbirlea

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D67672 (detail/ViewSVN)
    by kuhar
  23. [Analysis] Allow -scalar-evolution-max-iterations more than once

    At present, `-scalar-evolution-max-iterations` is a `cl::Optional`
    option, which means it demands to be passed exactly zero or one times.
    Our build system makes it pretty tricky to guarantee this. We often
    accidentally pass the flag more than once (but always with the same
    value) which results in an error, after which compilation fails:

    ```
    clang (LLVM option parsing): for the -scalar-evolution-max-iterations option: may only occur zero or one times!
    ```

    It seems reasonable to allow -scalar-evolution-max-iterations to be
    passed more than once. Quoting the [[ http://llvm.org/docs/CommandLine.html#controlling-the-number-of-occurrences-required-and-allowed | documentation ]]:

    > The cl::ZeroOrMore modifier ... indicates that your program will allow the option to be specified zero or more times.
    > ...
    > If an option is specified multiple times for an option of the cl::opt class, only the last value will be retained.

    Original patch by: Enrico Bern Hardy Tanuwidjaja <etanuwid@fb.com>

    Differential Revision: https://reviews.llvm.org/D67512 (detail/ViewSVN)
    by smeenai
  24. [NFC][PowerPC] Fast-isel VSX support test

    We have fixed most of the VSX limitation in Fast-isel,
    so we can remove the -mattr=-vsx for most testcases now. (detail/ViewSVN)
    by jsji
  25. gn build: Merge r372343 (detail/ViewSVN)
    by gnsyncbot
  26. [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
  27. [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
  28. [AMDGPU] Unnecessary -amdgpu-scalarize-global-loads=false flag removed from min/max lit tests.

    Reviewers: arsenm

    Differential Revision: https://reviews.llvm.org/D67712 (detail/ViewSVN)
    by alex-t
  29. [Float2Int] avoid crashing on unreachable code (PR38502)

    In the example from:
    https://bugs.llvm.org/show_bug.cgi?id=38502
    ...we hit infinite looping/crashing because we have non-standard IR -
    an instruction operand is used before defined.
    This and other unusual constructs are allowed in unreachable blocks,
    so avoid the problem by using DominatorTree to step around landmines.

    Differential Revision: https://reviews.llvm.org/D67766 (detail/ViewSVN)
    by spatel
  30. Reapply r372285 "GlobalISel: Don't materialize immarg arguments to intrinsics"

    This reverts r372314, reapplying r372285 and the commits which depend
    on it (r372286-r372293, and r372296-r372297)

    This was missing one switch to getTargetConstant in an untested case. (detail/ViewSVN)
    by arsenm
  31. [MCA] Improved cost computation for loop carried dependencies in the bottleneck analysis.

    This patch introduces a cut-off threshold for dependency edge frequences with
    the goal of simplifying the critical sequence computation.  This patch also
    removes the cost normalization for loop carried dependencies.  We didn't really
    need to artificially amplify the cost of loop-carried dependencies since it is
    already computed as the integral over time of the delay (in cycle).

    In the absence of backend stalls there is no need for computing a critical
    sequence. With this patch we early exit from the critical sequence computation
    if no bottleneck was reported during the simulation. (detail/ViewSVN)
    by adibiagio
  32. Make appendCallNB lambda mutable

    Lambdas are by deafult const so that they produce the same output every time they are run. This lambda needs to set the value on a captured promise which is a mutating operation, so it must be mutable. (detail/ViewSVN)
    by cbieneman
  33. X86: Add missing test for vshli SimplifyDemandedBitsForTargetNode

    This would have caught this regression which triggered the revert of
    r372285: https://bugs.chromium.org/p/chromium/issues/detail?id=1005750 (detail/ViewSVN)
    by arsenm
  34. Revert r372325 - Reverting r372323 because it broke color tests on Linux.

    This corrects the testing issues. (detail/ViewSVN)
    by aaronballman
  35. [DAG][X86] Convert isNegatibleForFree/GetNegatedExpression to a target hook (PR42863)

    This patch converts the DAGCombine isNegatibleForFree/GetNegatedExpression into overridable TLI hooks and includes a demonstration X86 implementation.

    The intention is to let us extend existing FNEG combines to work more generally with negatible float ops, allowing it work with target specific combines and opcodes (e.g. X86's FMA variants).

    Unlike the SimplifyDemandedBits, we can't just handle target nodes through a Target callback, we need to do this as an override to allow targets to handle generic opcodes as well. This does mean that the target implementations has to duplicate some checks (recursion depth etc.).

    I've only begun to replace X86's FNEG handling here, handling FMADDSUB/FMSUBADD negation and some low impact codegen changes (some FMA negatation propagation). We can build on this in future patches.

    Differential Revision: https://reviews.llvm.org/D67557 (detail/ViewSVN)
    by rksimon
  36. [DAGCombiner] Add node to the worklist in topological order in scalarizeExtractedVectorLoad

    Summary: As per title.

    Reviewers: craig.topper, efriedma, RKSimon, lebedev.ri

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D66661 (detail/ViewSVN)
    by deadalnix
  37. [docs] Break long (>80) line. NFC (detail/ViewSVN)
    by fpetrogalli
  38. Reverting r372323 because it broke color tests on Linux.

    http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/17919 (detail/ViewSVN)
    by aaronballman
  39. [Float2Int] auto-generate complete test checks; NFC (detail/ViewSVN)
    by spatel
  40. Remove an unsafe member variable that wasn't needed; NFC.

    People use the AST dumping interface while debugging, so it's not safe to assume that a declaration will be dumped before a constant expression is dumped. This means the Context member may not get set properly and problems would happen. Rather than rely on the interface that requires the ASTContext, call the generic dump() interface instead; this allows us to remove the Context member variable. (detail/ViewSVN)
    by aaronballman
  41. [OpenCL] Add version handling and add vector ld/st builtins

    Allow setting a MinVersion, stating from which OpenCL version a
    builtin function is available, and a MaxVersion, stating from which
    OpenCL version a builtin function should not be available anymore.

    Guard some definitions of the "work-item" builtin functions according
    to the OpenCL versions from which they are available.

    Add the "vector data load and store" builtin functions (e.g.
    vload/vstore), whose signatures differ before and after OpenCL 2.0 in
    the pointer argument address spaces.

    Patch by Pierre Gondois and Sven van Haastregt.

    Differential Revision: https://reviews.llvm.org/D63504 (detail/ViewSVN)
    by svenvh
  42. [TableGen] Support encoding per-HwMode

    Much like ValueTypeByHwMode/RegInfoByHwMode, this patch allows targets
    to modify an instruction's encoding based on HwMode. When the
    EncodingInfos field is non-empty the Inst and Size fields of the Instruction
    are ignored and taken from EncodingInfos instead.

    As part of this promote getHwMode() from TargetSubtargetInfo to MCSubtargetInfo.

    This is NFC for all existing targets - new code is generated only if targets
    use EncodingByHwMode. (detail/ViewSVN)
    by jamesm
  43. Clean out unused diagnostics. NFC. (detail/ViewSVN)
    by d0k

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18351
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18352
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18353
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18354
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18355
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18356
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18357
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18358
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18359
originally caused by:

Started by upstream project Clang Stage 2: cmake, R -g Tsan, using Stage 1 RA build number 18360
originally caused by:

This run spent:

  • 16 hr waiting;
  • 18 hr build duration;
  • 1 day 11 hr total from scheduled to completion.

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

Missing test results

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

Compile Error

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