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

Failed Build #5467 (Sep 7, 2019 6:35:17 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 371310
  • http://llvm.org/svn/llvm-project/cfe/trunk : 371285
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 371003
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 364589
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 371131
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 371250
Changes
  1. [SimplifyCFG][NFC] Autogenerate two tests (detail/ViewSVN)
    by lebedevri
  2. [CodeGen] Handle SMULFIXSAT with scale zero in TargetLowering::expandFixedPointMul

    Summary:
    Normally TargetLowering::expandFixedPointMul would handle
    SMULFIXSAT with scale zero by using an SMULO to compute the
    product and determine if saturation is needed (if overflow
    happened). But if SMULO isn't custom/legal it falls through
    and uses the same technique, using MULHS/SMUL_LOHI, as used
    for non-zero scales.

    Problem was that when checking for overflow (handling saturation)
    when not using MULO we did not expect to find a zero scale. So
    we ended up in an assertion when doing
      APInt::getLowBitsSet(VTSize, Scale - 1)

    This patch fixes the problem by adding a new special case for
    how saturation is computed when scale is zero.

    Reviewers: RKSimon, bevinh, leonardchan, spatel

    Reviewed By: RKSimon

    Subscribers: wuzish, nemanjai, hiraditya, MaskRay, jsji, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D67071 (detail/ViewSVN)
    by bjope
  3. [Intrinsic] Add the llvm.umul.fix.sat intrinsic

    Summary:
    Add an intrinsic that takes 2 unsigned integers with
    the scale of them provided as the third argument and
    performs fixed point multiplication on them. The
    result is saturated and clamped between the largest and
    smallest representable values of the first 2 operands.

    This is a part of implementing fixed point arithmetic
    in clang where some of the more complex operations
    will be implemented as intrinsics.

    Patch by: leonardchan, bjope

    Reviewers: RKSimon, craig.topper, bevinh, leonardchan, lebedev.ri, spatel

    Reviewed By: leonardchan

    Subscribers: ychen, wuzish, nemanjai, MaskRay, jsji, jdoerfert, Ka-Ka, hiraditya, rjmccall, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D57836 (detail/ViewSVN)
    by bjope
  4. [X86] Fix pshuflw formation from repeated shuffle mask (PR43230)

    Fix for https://bugs.llvm.org/show_bug.cgi?id=43230.

    When creating PSHUFLW from a repeated shuffle mask, we have to apply
    the checks to the repeated mask, not the original one. For the test
    case from PR43230 the inspected part of the original mask is all undef.

    Differential Revision: https://reviews.llvm.org/D67314 (detail/ViewSVN)
    by nikic
  5. [LVI] Look through extractvalue of insertvalue

    This addresses the issue mentioned on D19867. When we simplify
    with.overflow instructions in CVP, we leave behind extractvalue
    of insertvalue sequences that LVI no longer understands. This
    means that we can not simplify any instructions based on the
    with.overflow anymore (until some over pass like InstCombine
    cleans them up).

    This patch extends LVI extractvalue handling by calling
    SimplifyExtractValueInst (which doesn't do anything more than
    constant folding + looking through insertvalue) and using the block
    value of the simplification.

    A possible alternative would be to do something similar to
    SimplifyIndVars, where we instead directly try to replace
    extractvalue users of the with.overflow. This would need some
    additional structural changes to CVP, as it's currently not legal
    to remove anything but the current instruction -- we'd have to
    introduce a worklist with instructions scheduled for deletion or similar.

    Differential Revision: https://reviews.llvm.org/D67035 (detail/ViewSVN)
    by nikic
  6. [X86] Add test for PR43230; NFC (detail/ViewSVN)
    by nikic
  7. [DwarfExpression] Disallow some rewrites to avoid undefined behavior

    Summary:
    The value operand in DW_OP_plus_uconst/DW_OP_constu value can be
    large (it uses uint64_t as representation internally in LLVM).
    This means that in the uint64_t to int conversions, previously done
    by DwarfExpression::addMachineRegExpression, could lose information.
    Also, the negation done in "-Offset" was undefined behavior in case
    Offset was exactly INT_MIN.

    To avoid the above problems, we now avoid transformation like
    [Reg, DW_OP_plus_uconst, Offset] --> [DW_OP_breg, Offset]
    and
    [Reg, DW_OP_constu, Offset, DW_OP_plus]  --> [DW_OP_breg, Offset]
    when Offset > INT_MAX.

    And we avoid to transform
    [Reg, DW_OP_constu, Offset, DW_OP_minus] --> [DW_OP_breg,-Offset]
    when Offset > INT_MAX+1.

    The patch also adjusts DwarfCompileUnit::constructVariableDIEImpl
    to make sure that "DW_OP_constu, Offset, DW_OP_minus" is used
    instead of "DW_OP_plus_uconst, Offset" when creating DIExpressions
    with negative frame index offsets.

    Notice that this might just be the tip of the iceberg. There
    are lots of fishy handling related to these constants. I think both
    DIExpression::appendOffset and DIExpression::extractIfOffset may
    trigger undefined behavior for certain values.

    Reviewers: sdesmalen, rnk, JDevlieghere

    Reviewed By: JDevlieghere

    Subscribers: jholewinski, aprantl, hiraditya, ychen, uabelho, llvm-commits

    Tags: #debug-info, #llvm

    Differential Revision: https://reviews.llvm.org/D67263 (detail/ViewSVN)
    by bjope
  8. [DebugInfo] Pre-commit of test case for DW_OP_breg/DW_OP_fbreg folds

    This currently triggers undefined behavior if executed with an
    ubsan build. It is just a precommit of the test case to show that
    we got a problem.

    Fix is proposed in https://reviews.llvm.org/D67263 and plan is to
    commit the fix directly after this patch. (detail/ViewSVN)
    by bjope
  9. Fix MSVC "32-bit shift implicitly converted to 64 bits" warnings. NFCI. (detail/ViewSVN)
    by rksimon
  10. [SimplifyCFG][NFC] Make merge-cond-stores-cost.ll X86-specific, and rewrite it

    We clearly perform store-merging, even though div is really costly. (detail/ViewSVN)
    by lebedevri
  11. [Attributor] Make unimplemented method pure virtual.

    Otherwise the compiler mistakes it for a vtable anchor. (detail/ViewSVN)
    by d0k
  12. [SimplifyCFG][NFC] Show that we don't consider the cost when merging cond stores

    We count instruction count in each BB's separately, not their cost. (detail/ViewSVN)
    by lebedevri
  13. [SimplifyCFG][NFC] Regenerate merge-cond-stores* tests (detail/ViewSVN)
    by lebedevri
  14. [SimplifyCFG] SpeculativelyExecuteBB(): It's SpeculatedInstructions, not SpeculationCost

    It counts the number of instructions we are ok speculating
    (at most 1 there), not their cost, so rename accordingly. (detail/ViewSVN)
    by lebedevri
  15. Replicate the change "[Alignment][NFC] Use Align with TargetLowering::setMinFunctionAlignment"
    on AVR to avoid a breakage.
    See r371200 / https://reviews.llvm.org/D67229 (detail/ViewSVN)
    by sylvestre
  16. [Attributor] ValueSimplify Abstract Attribute

    Summary:
    This patch introduces initial `AAValueSimplify` which simplifies a value in a context.

    example
    - (for function returned) If all the return values are the same and constant, then we can replace callsite returned with the constant.
    - If an internal function takes the same value(constant) as an argument in the callsite, then we can replace the argument with that constant.

    Reviewers: jdoerfert, sstefan1

    Reviewed By: jdoerfert

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D66967 (detail/ViewSVN)
    by uenoku
  17. [git-llvm] Do not reinvent `@{upstream}`

    Make `git-llvm` more robust when used with a nontrivial repository.

    https://reviews.llvm.org/D67262 (detail/ViewSVN)
    by davezarzycki
  18. Revert [CodeGen] Fix typos to run tests. NFC.

    This reverts r371286 (git commit b38105bbd0f7dfef424a4f096aa6a6b7b467fe99)

    r371286 caused build bots' failure. I'll check it. (detail/ViewSVN)
    by Xing
  19. [CodeGen] Fix typos to run tests. NFC. (detail/ViewSVN)
    by Xing
  20. Remove stale TLI Module level pass registration

    Clang patch to adapt to LLVM changes in D66428 that make the TLI
    require a Function. There is no longer a module-level
    TargetLibraryAnalysis, so remove its registration (detail/ViewSVN)
    by tejohnson
  21. Change TargetLibraryInfo analysis passes to always require Function

    Summary:
    This is the first change to enable the TLI to be built per-function so
    that -fno-builtin* handling can be migrated to use function attributes.
    See discussion on D61634 for background. This is an enabler for fixing
    handling of these options for LTO, for example.

    This change should not affect behavior, as the provided function is not
    yet used to build a specifically per-function TLI, but rather enables
    that migration.

    Most of the changes were very mechanical, e.g. passing a Function to the
    legacy analysis pass's getTLI interface, or in Module level cases,
    adding a callback. This is similar to the way the per-function TTI
    analysis works.

    There was one place where we were looking for builtins but not in the
    context of a specific function. See FindCXAAtExit in
    lib/Transforms/IPO/GlobalOpt.cpp. I'm somewhat concerned my workaround
    could provide the wrong behavior in some corner cases. Suggestions
    welcome.

    Reviewers: chandlerc, hfinkel

    Subscribers: arsenm, dschuff, jvesely, nhaehnle, mehdi_amini, javed.absar, sbc100, jgravelle-google, eraman, aheejin, steven_wu, george.burgess.iv, dexonsmith, jfb, asbirlea, gchatelet, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D66428 (detail/ViewSVN)
    by tejohnson
  22. [X86] Add tests for fp128 frem, sqrt, sin, and cos. (detail/ViewSVN)
    by ctopper
  23. [X86] Autogenerate fp128-libcalls.ll (detail/ViewSVN)
    by ctopper
  24. [llvm-objcopy] Rename SHOffset (e_shoff) field to SHOff. NFC

    Similar to D67254.

    `struct Elf*_Shdr` has a field `sh_offset`. Rename SHOffset to SHOff to
    avoid confusion. (detail/ViewSVN)
    by maskray
  25. [clang][DependencyFileGenerator] Fix missing -MT option handling

    Targets in DependencyFileGenerator don't necessarily come from -MT option.

    Differential Revision: https://reviews.llvm.org/D67308 (detail/ViewSVN)
    by Jan Korous
  26. Fix thunks.cpp test, don't FileCheck for anon namespace id

    The anon namespace id is a hash of the main input path to the compiler,
    which varies in the test suite because the input path is absolute. (detail/ViewSVN)
    by rnk
  27. [Sema][ObjC] Mark C union fields that have non-trivial ObjC ownership
    qualifications as unavailable if the union is declared in a system
    header

    r365985 stopped marking those fields as unavailable, which caused the
    union's NonTrivialToPrimitive* bits to be set to true. This patch
    restores the behavior prior to r365985, except that users can explicitly
    specify the ownership qualification of the field to instruct the
    compiler not to mark it as unavailable.

    rdar://problem/53420753

    Differential Revision: https://reviews.llvm.org/D65256 (detail/ViewSVN)
    by ahatanak
  28. [Sema] Diagnose default-initialization, destruction, and copying of
    non-trivial C union types

    This recommits r365985, which was reverted because it broke a few
    projects using unions containing non-trivial ObjC pointer fields in
    system headers. We now have a patch to fix the problem (see
    https://reviews.llvm.org/D65256).

    Original commit message:

    This patch diagnoses uses of non-trivial C unions and structs/unions
    containing non-trivial C unions in the following contexts, which require
    default-initialization, destruction, or copying of the union objects,
    instead of disallowing fields of non-trivial types in C unions, which is
    what we currently do:

    - function parameters.
    - function returns.
    - assignments.
    - compound literals.
    - block captures except capturing of `__block` variables by non-escaping blocks.
    - local and global variable definitions.
    - lvalue-to-rvalue conversions of volatile types.

    See the discussion in https://reviews.llvm.org/D62988 for more background.

    rdar://problem/50679094

    Differential Revision: https://reviews.llvm.org/D63753 (detail/ViewSVN)
    by ahatanak
  29. Synchronize LLVM's copy of libc++abi's demangler with the libc++abi
    version after r371273.

    Also fix a minor issue in r371273 that only surfaced after template
    instantiation from LLVM's use of the demangler. (detail/ViewSVN)
    by rsmith
  30. Use musttail for variadic method thunks when possible

    This avoids cloning variadic virtual methods when the target supports
    musttail and the return type is not covariant. I think we never
    implemented this previously because it doesn't handle the covariant
    case. But, in the MS ABI, there are some cases where vtable thunks must
    be emitted even when the variadic method defintion is not available, so
    it looks like we need to implement this. Do it for both ABIs, since it's
    a nice size improvement and simplification for Itanium.

    Emit an error when emitting thunks for variadic methods with a covariant
    return type. This case is essentially not implementable unless the ABI
    provides a way to perfectly forward variadic arguments without a tail
    call.

    Fixes PR43173.

    Differential Revision: https://reviews.llvm.org/D67028 (detail/ViewSVN)
    by rnk
  31. [AArch64][GlobalISel] Enable the localizer for optimized builds.

    Despite the fact that the localizer's original motivation was to fix horrendous
    constant spilling at -O0, shortening live ranges still has net benefits even
    with optimizations enabled.

    On an -Os build of CTMark, doing this improves code size by 0.5% geomean.

    There are a few regressions, bullet increasing in size by 0.5%. One example from
    bullet where code size increased slightly was due to GlobalISel actually now
    generating the same code as SelectionDAG. So we actually have an opportunity
    in future to implement better heuristics for localization and therefore be
    *better* than SDAG in some cases. In relation to other optimizations though that
    one is relatively minor.

    Differential Revision: https://reviews.llvm.org/D67303 (detail/ViewSVN)
    by aemerson
  32. [InstCombine] Refactor substitution of instruction in the parent BB (NFC)

    Add the new method `LibCallSimplifier::substituteInParent()` that calls
    `LibCallSimplifier::replaceAllUsesWith()' and
    `LibCallSimplifier::eraseFromParent()` back to back, simplifying the
    resulting code. (detail/ViewSVN)
    by evandro
  33. [ORC][RPC] Join server thread before checking condition in unit test.

    Otherwise we have a race on the sent-messages count. (detail/ViewSVN)
    by Lang Hames
  34. [IR] CallBrInst: scan+update arg list when indirect dest list changes

    Summary:
    There's an unspoken invariant of callbr that the list of BlockAddress
    Constants in the "function args" list match the BasicBlocks in the
    "other labels" list. (This invariant is being added to the LangRef in
    https://reviews.llvm.org/D67196).

    When modifying the any of the indirect destinations of a callbr
    instruction (possible jump targets), we need to update the function
    arguments if the argument is a BlockAddress whose BasicBlock refers to
    the indirect destination BasicBlock being replaced.  Otherwise, many
    transforms that modify successors will end up violating that invariant.
    A recent change to the arm64 Linux kernel exposed this bug, which
    prevents the kernel from booting.

    I considered maintaining a mapping from indirect destination BasicBlock
    to argument operand BlockAddress, but this ends up being a one to
    potentially many (though usually one) mapping.  Also, the list of
    arguments to a function (or more typically inline assembly) ends up
    being less than 10.  The implementation is significantly simpler to just
    rescan the full list of arguments. Because of the one to potentially
    many relationship, the full arg list must be scanned (we can't stop at
    the first instance).

    Thanks to the following folks that reported the issue and helped debug
    it:
    * Nathan Chancellor
    * Will Deacon
    * Andrew Murray
    * Craig Topper

    Link: https://bugs.llvm.org/show_bug.cgi?id=43222
    Link: https://github.com/ClangBuiltLinux/linux/issues/649
    Link: https://lists.infradead.org/pipermail/linux-arm-kernel/2019-September/678330.html

    Reviewers: craig.topper, chandlerc

    Reviewed By: craig.topper

    Subscribers: void, javed.absar, kristof.beyls, hiraditya, llvm-commits, nathanchance, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D67252 (detail/ViewSVN)
    by nickdesaulniers
  35. [X86] Add a AVX512VBMI command line to min-legal-vector-width.ll. Always enable fast-variable-shuffle

    Trying to minimize the features we need to manipulate when this
    is updated for D67259.

    The VBMI is interesting because it enables some improved combining
    for truncates.

    I enabled fast-variable-shuffle because all the CPUs we're going
    to add implicitly enable it. So they can share check lines. (detail/ViewSVN)
    by ctopper
  36. [X86] Replace -mcpu with -mattr on some tests. (detail/ViewSVN)
    by ctopper
  37. [analyzer] Add minimal support for fix-it hints.

    Allow attaching fixit hints to Static Analyzer BugReports.

    Fixits are attached either to the bug report itself or to its notes
    (path-sensitive event notes or path-insensitive extra notes).

    Add support for fixits in text output (including the default text output that
    goes without notes, as long as the fixit "belongs" to the warning).

    Add support for fixits in the plist output mode.

    Implement a fixit for the path-insensitive DeadStores checker. Only dead
    initialization warning is currently covered.

    Implement a fixit for the path-sensitive VirtualCall checker when the virtual
    method is not pure virtual (in this case the "fix" is to suppress the warning
    by qualifying the call).

    Both fixits are under an off-by-default flag for now, because they
    require more careful testing.

    Differential Revision: https://reviews.llvm.org/D65182 (detail/ViewSVN)
    by dergachev
  38. [analyzer] pr43179: Make CallDescription defensive against C variadic functions.

    Most functions that our checkers react upon are not C-style variadic functions,
    and therefore they have as many actual arguments as they have formal parameters.

    However, it's not impossible to define a variadic function with the same name.
    This will crash any checker that relies on CallDescription to check the number
    of arguments but silently assumes that the number of parameters is the same.

    Change CallDescription to check both the number of arguments and the number of
    parameters by default.

    If we're intentionally trying to match variadic functions, allow specifying
    arguments and parameters separately (possibly omitting any of them).
    For now we only have one CallDescription which would make use of those,
    namely __builtin_va_start itself.

    Differential Revision: https://reviews.llvm.org/D67019 (detail/ViewSVN)
    by dergachev
  39. [ORC] Add a missing #include atomic.

    Hopefully this will fix the bot build failures from r371245. (detail/ViewSVN)
    by Lang Hames
  40. GlobalISel: Add G_FMAD instruction (detail/ViewSVN)
    by arsenm
  41. GlobalISel: Support physical register inputs in patterns (detail/ViewSVN)
    by arsenm
  42. Update comment for <template-param-decl> mangling to match extended mangling rule in r371004. (detail/ViewSVN)
    by rsmith
  43. Remove dead .seh_stackalloc parsing method in X86AsmParser

    The shared COFF asm parser code handles this directive, since it is
    shared with AArch64. Spotted by Alexandre Ganea in review. (detail/ViewSVN)
    by rnk
  44. [clang][Index][NFC] Put IndexingOptions to a separate header (detail/ViewSVN)
    by Jan Korous
  45. AMDGPU: Fix typo (detail/ViewSVN)
    by arsenm
  46. [llvm-ifs] Improving detection of PlatformKind from triple for TBD generation.

    It was pointed out that I had hard-coded PlatformKind. This is rectifying that.

    Differential Revision: https://reviews.llvm.org/D67255 (detail/ViewSVN)
    by zer0
  47. [PowerPC][XCOFF] Remove basic test. [NFC]

    Test verified that we could compile an empty module and produce an XCOFF
    object file. Newer tests superssed this coverage, its safe to remove. (detail/ViewSVN)
    by sfertile
  48. [ConstantFolding] Add new test cases for transcendentals (NFC) (detail/ViewSVN)
    by evandro

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

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

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

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

This run spent:

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

Identified problems

Regression test failed

This build failed because a regression test in the test suite FAILed. See the test report for details.
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

Ninja target failed

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

Missing test results

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