Started 1 mo 2 days ago
Took 18 hr on green-dragon-08

Failed Build #5485 (Sep 20, 2019 6:29:05 PM)

  • : 372443
  • : 372444
  • : 372348
  • : 364589
  • : 372242
  • : 372445
  1. [clang-tidy] Add check for classes missing -hash ⚠️

    Apple documentation states that:
    "If two objects are equal, they must have the same hash value. This last
    point is particularly important if you define isEqual: in a subclass and
    intend to put instances of that subclass into a collection. Make sure
    you also define hash in your subclass."

    In many or all versions of libobjc, -[NSObject isEqual:] is a pointer
    equality check and -[NSObject hash] returns the messaged object's
    pointer. A relatively common form of developer error is for a developer to
    override -isEqual: in a subclass without overriding -hash to ensure that
    hashes are equal for objects that are equal.

    It is assumed that an override of -isEqual: is a strong signal for
    changing the object's equality operator to something other than pointer
    equality which implies that a missing override of -hash could result in
    distinct objects being equal but having distinct hashes because they are
    independent instances. This added check flags classes that override
    -isEqual: but inherit NSObject's implementation of -hash to warn of the
    potential for unexpected behavior.

    The proper implementation of -hash is the responsibility of the
    developer and the check will only verify that the developer made an
    effort to properly implement -hash. Developers can set up unit tests
    to verify that their implementation of -hash is appropriate.

    Test Notes:
    Ran check-clang-tools.

    Reviewers: aaron.ballman, benhamilton

    Reviewed By: aaron.ballman

    Subscribers: Eugene.Zelenko, mgorny, xazax.hun, cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by stephanemoore
  2. [clang-scan-deps] strip the --serialize-diagnostics argument

    This ensures that clang-scan-deps won't write out diagnostics when
    scanning dependencies. (detail/ViewSVN)
    by arphaman
  3. [GlobalISel] Defer setting HasCalls on MachineFrameInfo to selection time.

    We currently always set the HasCalls on MFI during translation and legalization if
    we're handling a call or legalizing to a libcall. However, if that call is later
    optimized to a tail call then we don't need the flag. The flag being set to true
    causes frame lowering to always save and restore FP/LR, which adds unnecessary code.

    This change does the same thing as SelectionDAG and ports over some code that scans
    instructions after selection, using TargetInstrInfo to determine if target opcodes
    are known calls.

    Code size geomean improvements on CTMark:
    -O0 : 0.1%
    -Os : 0.3%

    Differential Revision: (detail/ViewSVN)
    by aemerson
  4. [Inliner] Remove incorrect early exit during switch cost computation

    The CallAnalyzer::visitSwitchInst has an early exit when the estimated
    lower bound of the switch cost will put the overall cost of the inline
    above the threshold. However, this code is not correctly estimating the
    lower bound for switches that can be transformed into bit tests, leading
    to unnecessary lost inlines, and also differing behavior with
    optimization remarks enabled.

    First, the early exit is controlled by whether ComputeFullInlineCost is
    enabled or not, and that in turn is disabled by default but enabled when
    enabling -pass-remarks=missed. This by itself wouldn't lead to a
    problem, except that as described below, the lower bound can be above
    the real lower bound, so we can sometimes get different inline decisions
    with inline remarks enabled, which is problematic.

    The early exit was added in along with a new switch cost model in D31085.
    The reason why this early exit was added is due to a concern one reviewer
    raised about compile time for large switches:

    However, the code just below there calls
    getEstimatedNumberOfCaseClusters, which in turn immediately calls
    BasicTTIImpl getEstimatedNumberOfCaseClusters, which in the worst case
    does a linear scan of the cases to get the high and low values. The
    bit test handling in particular is guarded by whether the number of
    cases fits into the max bit width. There is no suggestion that anyone
    measured a compile time issue, it appears to be theoretical.

    The problem is that the reviewer's comment about the lower bound
    calculation is incorrect, specifically in the case of a switch that can
    be lowered to a bit test. This isn't followed up on the comment
    thread, but the author does add a FIXME to that effect above the early
    exit added when they subsequently revised the patch.

    As a result, we were incorrectly early exiting and not inlining
    functions with switch statements that would be lowered to bit tests in
    cases where we were nearing the threshold. Combined with the fact that
    this early exit was skipped with opt remarks enabled, this caused
    different inlining decisions to be made when -pass-remarks=missed is
    enabled to debug the missing inline.

    Remove the early exit for the above reasons.

    I also copied over an existing AArch64 inlining test to X86, and
    adjusted the threshold so that the bit test inline only occurs with the
    fix in this patch.

    Reviewers: davidxl

    Subscribers: eraman, kristof.beyls, haicheng, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by tejohnson
  5. [SampleFDO] Expose an interface to return the size of a section or the size
    of the profile for profile in ExtBinary format.

    Sometimes we want to limit the size of the profile by stripping some functions
    with low sample count or by stripping some function names with small text size
    from profile symbol list. That requires the profile reader to have the
    interfaces returning the size of a section or the size of total profile. The
    patch add those interfaces.

    At the same time, add some dump facility to show the size of each section. (detail/ViewSVN)
    by wmi
  6. Remove outdated FIXME. (detail/ViewSVN)
    by rsmith
  7. Fix assertion failure when constant evaluation of a switch jumps over an
    uninitialized variable in an init-statement of a 'for' or 'if'. (detail/ViewSVN)
    by rsmith
  8. [SystemZ] Support z15 processor name

    The recently announced IBM z15 processor implements the architecture
    already supported as "arch13" in LLVM.  This patch adds support for
    "z15" as an alternate architecture name for arch13.

    Corrsponding LLVM support was committed as rev. 372435. (detail/ViewSVN)
    by uweigand
  9. [SystemZ] Support z15 processor name

    The recently announced IBM z15 processor implements the architecture
    already supported as "arch13" in LLVM.  This patch adds support for
    "z15" as an alternate architecture name for arch13.

    The patch also uses z15 in a number of places where we used arch13
    as long as the official name was not yet announced. (detail/ViewSVN)
    by uweigand
  10. Fix missed case of switching getConstant to getTargetConstant. Try 2.

    Summary: This fixes a crasher introduced by r372338.

    Reviewers: echristo, arsenm

    Subscribers: wdng, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by saugustine
  11. [Docs] Add a custom sidebar to doc pages

    Adds a custom sidebar to LLVM docs. Sidebar includes links to How to submit a bug and FAQ topics, as well as a Show Source link and search box. (detail/ViewSVN)
    by dr87
  12. [PPC] PPCLoopPreIncPrep - silence static analyzer null dereference warning. (detail/ViewSVN)
    by rksimon
  13. [AddressSanitizer] Don't dereference dyn_cast<ConstantInt> results. NFCI.

    The static analyzer is warning about potential null dereference, but we can use cast<ConstantInt> directly and if not assert will fire for us. (detail/ViewSVN)
    by rksimon
  14. [Docs] Move topics to new categories

    This commit moves several topics to new categories. (detail/ViewSVN)
    by dr87
  15. [NFC][PowerPC] Consolidate testing of common linkage symbols

    Add a new file to test the code gen for common linkage symbol.
    Remove common linkage in some other testcases to avoid distraction. (detail/ViewSVN)
    by jsji
  16. Revert "[MachinePipeliner] Improve the TargetInstrInfo API analyzeLoop/reduceLoopCount"

    This commit broke the ASan buildbot. See comments in rL372376 for more

    This reverts commit 15e27b0b6d9d51362fad85dbe95ac5b3fadf0a06. (detail/ViewSVN)
    by hctim
  17. [docs] Update structure-aware-fuzzing link.

    The document has been moved to the google/fuzzing GitHub repo. (detail/ViewSVN)
    by morehouse
  18. Ensure AtomicExpr goes through SEMA checking after TreeTransform

    RebuildAtomicExpr was skipping doing semantic analysis which broke in
    the cases where the expressions were not dependent. This resulted in the
    ImplicitCastExpr from an array to a pointer being lost, causing a crash
    in IR CodeGen.

    Differential Revision: (detail/ViewSVN)
    by erichkeane
  19. Can't pass .dSYM directory to llvm-objdump -dsym= (and error message is wrong)

    Allow users to pass the path to a .dSYM directory to llvm-objdump's -dsym
    flag rather than requiring users to find the DWARF DSYM Mach-O within the
    bundle structure by hand.


    Reviewers: pete, lhames, friss, aprantl

    Reviewed By: pete, aprantl

    Subscribers: MaskRay, aprantl, rupprecht, seiya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by mtrent
  20. [Mips] Remove immarg test for intrinsics that no longer have an immarg after r372409. (detail/ViewSVN)
    by ctopper
  21. Fix a documentation error (detail/ViewSVN)
    by szelethus
  22. Fix -Wdocumentation warning. NFCI. (detail/ViewSVN)
    by rksimon
  23. [NFC][PowerPC] Refactor classifyGlobalReference

    We always(and only) check the NLP flag after calling
    classifyGlobalReference to see whether it is accessed

    Refactor to code to use isGVIndirectSym instead. (detail/ViewSVN)
    by jsji
  24. Fix MSVC "not all control paths return a value" warning. NFCI. (detail/ViewSVN)
    by rksimon
  25. [www] Turn 'Clang 9' boxes green in C++ status pages now Clang 9 is
    released. (detail/ViewSVN)
    by rsmith
  26. Reland '[analyzer][MallocChecker][NFC] Document and reorganize some functions'

    Differential Revision: (detail/ViewSVN)
    by szelethus
  27. [NFC][InstCombine] Fixup newly-added tests (detail/ViewSVN)
    by lebedevri
  28. [MTE] Handle MTE instructions in AArch64LoadStoreOptimizer.

    Summary: Generate pre- and post-indexed forms of ST*G and STGP when possible.

    Reviewers: ostannard, vitalybuka

    Subscribers: kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by eugenis
  29. [libTooling] Add `ifBound`, `elseBranch` RangeSelector combinators.

    Adds two new combinators and corresponding tests to the RangeSelector library.
    * `ifBound` -- conditional evaluation of range-selectors, based on whether a
       given node id is bound in the match.
    * `elseBranch` -- selects the source range of the else and its statement.

    Reviewers: gribozavr

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: (detail/ViewSVN)
    by ymandel
  30. [SelectionDAG][Mips][Sparc] Don't allow SimplifyDemandedBits to constant fold TargetConstant nodes to a Constant.

    After the switch in SimplifyDemandedBits, it tries to create a
    constant when possible. If the original node is a TargetConstant
    the default in the switch will call computeKnownBits on the
    TargetConstant which will succeed. This results in the
    TargetConstant becoming a Constant. But TargetConstant exists to
    avoid being changed.

    I've fixed the two cases that relied on this in tree by explicitly
    making the nodes constant instead of target constant. The Sparc
    case is an old bug. The Mips case was recently introduced now that
    ImmArg on intrinsics gets turned into a TargetConstant when the
    SelectionDAG is created. I've removed the ImmArg since it lowers
    to generic code.

    Reviewers: arsenm, RKSimon, spatel

    Subscribers: jyknight, sdardis, wdng, arichardson, hiraditya, fedor.sergeev, jrtc27, atanasyan, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by ctopper
  31. [aarch64] add def-pats for dot product

    This patch adds the patterns to select the dot product instructions.
    Tested on aarch64-linux with make check-all.

    Differential Revision: (detail/ViewSVN)
    by spop
  32. Remove assert from MachineLoop::getLoopPredecessor()

    According to the documentation method returns predecessor
    if the given loop's header has exactly one unique predecessor
    outside the loop. Otherwise return null.

    In reality it asserts if there is no predecessor outside of
    the loop.

    The testcase has the loop where predecessors outside of the
    loop were not identified as analyzeBranch() was unable to
    process the mask branch and returned true. That is also not
    correct to assert for the truly dead loops.

    Differential Revision: (detail/ViewSVN)
    by rampitec
  33. [MVT] Add v256i1 to MachineValueType

    This type can show up when lowering some HVX vector code on Hexagon. (detail/ViewSVN)
    by kparzysz
  34. [InstCombine] Tests for (a+b)<=a && (a+b)!=0 fold (PR43259) (detail/ViewSVN)
    by lebedevri
  35. [ARM] Fix CTTZ not generating correct instructions MVE

    CTTZ intrinsic should have been set to Custom, not Expand (detail/ViewSVN)
    by oliverlars
  36. [docs] Remove training whitespaces. NFC

    Subscribers: jfb, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by fpetrogalli
  37. Add a missing space in a MIR parser error message (detail/ViewSVN)
    by dstenb
  38. gn build: Merge r372396 (detail/ViewSVN)
    by gnsyncbot
  39. [TextAPI] Arch&Platform to Target

    This is a patch for updating TextAPI/Macho to read in targets as opposed to arch/platform.
    This is because in previous versions tbd files only supported a single platform but that is no longer the case,
    so, now its tracked by unique triples.
    This precedes a seperate patch that will add  the TBD-v4 format

    Reviewers: ributzka, steven_wu, plotfi, compnerd, smeenai

    Reviewed By: ributzka

    Subscribers: mgorny, hiraditya, dexonsmith, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by cishida
  40. Use llvm::StringLiteral instead of StringRef in few places (detail/ViewSVN)
    by maskray
  41. [CUDA][HIP] Fix hostness of defaulted constructor
    Clang does not respect the explicit device host attributes of defaulted special members.
    Also clang does not respect the hostness of special members determined by their
    first declarations.
    Clang also adds duplicate implicit device or host attributes in certain cases.
    This patch fixes that.
    Differential Revision: (detail/ViewSVN)
    by yaxunl
  42. [SLPVectorizer] add tests for bogus reductions; NFC (detail/ViewSVN)
    by spatel
  43. [Testing] Python 3 requires `print` to use parens (detail/ViewSVN)
    by davezarzycki
  44. [RISCV] Fix static analysis issues

    Unlikely to be problematic but still worth fixing.

    Differential Revision: (detail/ViewSVN)
    by luismarques
  45. [Alignment][NFC] migrate DataLayout internal struct to llvm::Align

    This is patch is part of a series to introduce an Alignment type.
    See this thread for context:
    See this patch for the introduction of the type:

    With this patch the PointerAlignElem struct goes from 20B to 16B.

    Reviewers: courbet

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by gchatelet
  46. [FastISel] Fix insertion of unconditional branches during FastISel

    The insertion of an unconditional branch during FastISel can differ depending on
    building with or without debug information. This happens because FastISel::fastEmitBranch
    emits an unconditional branch depending on the size of the current basic block
    without distinguishing between debug and non-debug instructions.

    This patch fixes this issue by ignoring debug instructions when getting the size
    of the basic block.

    Reviewers: aprantl

    Reviewed By: aprantl

    Subscribers: ormris, aprantl, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by tellenbach
  47. [clang-tidy] Fix relative path in header-filter.

    Clang-tidy supports output diagnostics from header files if user
    specifies --header-filter. But it can't handle relative path well.
    For example, the folder structure of a project is:

    // a.h is in /src/a/a.h

    // b.h is in /src/b/b.h

    // c.cpp is in /src/c.cpp


    Now, we set --header-filter as --header-filter=/a/. That means we only
    want to check header files under /src/a/ path, and ignore header files
    uder /src/b/ path, but in current implementation, clang-tidy will check
    /src/b/b.h also, because the name of b.h used in clang-tidy is

    This change tries to fix this issue.

    Reviewers: alexfh, hokein, aaron.ballman, gribozavr

    Reviewed By: gribozavr

    Subscribers: MyDeveloperDay, xazax.hun, cfe-commits

    Tags: #clang, #clang-tools-extra

    Differential Revision:

    Patch by Yubo Xie. (detail/ViewSVN)
    by gribozavr
  48. [SystemZ]  Add SystemZ as supporting target in help text for -mfentry.

    => "Insert calls to fentry at function entry (x86/SystemZ only)"

    Review: Ulrich Weigand (detail/ViewSVN)
    by jonpa
  49. [StaticAnalyzer] Use llvm::StringLiteral instead of StringRef in few places

    StringRef's constexpr constructor seems to be extremely slow in MSVC
    2017, so don't use it for generated tables. Should make PR43369 a bit
    better, no functionality change. (detail/ViewSVN)
    by d0k
  50. [AMDGPU] Use std::make_tuple to make some toolchains happy again

    My toolchain stopped working (LLVM 8.0 , libstdc++ 5.4.0) after

    The same problem was seen in clang-cuda-build buildbots:

    error: chosen constructor is explicit in copy-initialization
        return {Reg, 0, nullptr};
    note: explicit constructor declared here
            constexpr tuple(_UElements&&... __elements)

    This commit adds explicit calls to std::make_tuple to work around
    the problem. (detail/ViewSVN)
    by bjope
  51. Revert r372366 "Use getTargetConstant for BLENDI, and add a test to catch it."

    This reverts commit 52621307bcab2013e8833f3317cebd63a6db3885.

    Tests have been failing all night with

        [0/2] ACTION //llvm/test:check-llvm(//llvm/utils/gn/build/toolchain:unix)
        -- Testing: 33647 tests, 64 threads --
        Testing: 0 .. 10..
        UNRESOLVED: LLVM :: CodeGen/AMDGPU/GlobalISel/isel-blendi-gettargetconstant.ll (6943 of 33647)
        ******************** TEST 'LLVM :: CodeGen/AMDGPU/GlobalISel/isel-blendi-gettargetconstant.ll' FAILED ********************
        Test has no run line!

    Since there were other concerns on,
    I'm just reverting for now. (detail/ViewSVN)
    by nico
  52. [IntrinsicEmitter] Add overloaded types for SVE intrinsics (Subdivide2 & Subdivide4)

    Both match the type of another intrinsic parameter of a vector type, but where each element is subdivided to form a vector with more elements of a smaller type.

    Subdivide2Argument allows intrinsics such as the following to be defined:
    - declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 8 x i16>)

    Subdivide4Argument allows intrinsics such as:
    - declare <vscale x 4 x i32> @llvm.something.nxv4i32(<vscale x 16 x i8>)

    Tests are included in follow up patches which add intrinsics using these types.

    Reviewers: sdesmalen, SjoerdMeijer, greened, rovka

    Reviewed By: sdesmalen

    Subscribers: rovka, tschuett, jdoerfert, cfe-commits, llvm-commits

    Tags: #llvm

    Differential Revision: (detail/ViewSVN)
    by kmclaughlin
  53. [NFC] Test commit, deleting some whitespace (detail/ViewSVN)
    by tellenbach
  54. [llvm-dwarfdump] Adjust Windows path to be acceptable by JSON

    Backslash is a special character according to JSON specification,
    so we should avoid that when printing a file path with the
    --statistics option.

    Differential Revision: (detail/ViewSVN)
    by djtodoro
  55. [yaml2obj/obj2yaml] - Do not trigger llvm_unreachable when dumping/parsing relocations and e_machine is unsupported.

    Currently when e_machine is set to something that is not supported by YAML lib,
    then tools fail with llvm_unreachable.

    In this patch I allow them to handle relocations in this case.
    It can be used to dump and create objects for broken or unsupported targets.

    Differential revision: (detail/ViewSVN)
    by grimar
  56. [MachinePipeliner] Improve the TargetInstrInfo API analyzeLoop/reduceLoopCount

    The way MachinePipeliner uses these target hooks is stateful - we reduce trip
    count by one per call to reduceLoopCount. It's a little overfit for hardware
    loops, where we don't have to worry about stitching a loop induction variable
    across prologs and epilogs (the induction variable is implicit).

    This patch introduces a new API:

      /// Analyze loop L, which must be a single-basic-block loop, and if the
      /// conditions can be understood enough produce a PipelinerLoopInfo object.
      virtual std::unique_ptr<PipelinerLoopInfo>
      analyzeLoopForPipelining(MachineBasicBlock *LoopBB) const;

    The return value is expected to be an implementation of the abstract class:

      /// Object returned by analyzeLoopForPipelining. Allows software pipelining
      /// implementations to query attributes of the loop being pipelined.
      class PipelinerLoopInfo {
        virtual ~PipelinerLoopInfo();
        /// Return true if the given instruction should not be pipelined and should
        /// be ignored. An example could be a loop comparison, or induction variable
        /// update with no users being pipelined.
        virtual bool shouldIgnoreForPipelining(const MachineInstr *MI) const = 0;

        /// Create a condition to determine if the trip count of the loop is greater
        /// than TC.
        /// If the trip count is statically known to be greater than TC, return
        /// true. If the trip count is statically known to be not greater than TC,
        /// return false. Otherwise return nullopt and fill out Cond with the test
        /// condition.
        virtual Optional<bool>
        createTripCountGreaterCondition(int TC, MachineBasicBlock &MBB,
                                     SmallVectorImpl<MachineOperand> &Cond) = 0;

        /// Modify the loop such that the trip count is
        /// OriginalTC + TripCountAdjust.
        virtual void adjustTripCount(int TripCountAdjust) = 0;

        /// Called when the loop's preheader has been modified to NewPreheader.
        virtual void setPreheader(MachineBasicBlock *NewPreheader) = 0;

        /// Called when the loop is being removed.
        virtual void disposed() = 0;

    The Pipeliner (ModuloSchedule.cpp) can use this object to modify the loop while
    allowing the target to hold its own state across all calls. This API, in
    particular the disjunction of creating a trip count check condition and
    adjusting the loop, improves the code quality in ModuloSchedule.cpp. (detail/ViewSVN)
    by jamesm
  57. [CallSiteSplitting] Remove unused includes (NFC). (detail/ViewSVN)
    by fhahn
  58. Reapply [llvm-ar] Include a line number when failing to parse an MRI script

    Reapply r372309

    Errors that occur when reading an MRI script now include a corresponding
    line number.

    Differential Revision: (detail/ViewSVN)
    by gbreynoo

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

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

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

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

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

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

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

This run spent:

  • 10 hr waiting;
  • 18 hr build duration;
  • 1 day 4 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