Started 29 days ago
Took 4 hr 33 min on green-dragon-02

Failed Build #14734 (Sep 20, 2019 2:59:01 AM)

  • : 372380
  • : 372368
  • : 372348
  • : 372342
  • : 372242
  • : 372317
  1. [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)
    by kmclaughlin
  2. [NFC] Test commit, deleting some whitespace (detail)
    by tellenbach
  3. [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)
    by djtodoro
  4. [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)
    by grimar
  5. [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)
    by jamesm
  6. [CallSiteSplitting] Remove unused includes (NFC). (detail)
    by fhahn
  7. 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)
    by gbreynoo
  8. [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)
    by ctopper
  9. [llvm-readobj] flush output before crash

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

    This fixes an isel failure after r372338. (detail)
    by ctopper

Started by timer (4 times)

This run spent:

  • 3 hr 48 min waiting;
  • 4 hr 33 min build duration;
  • 8 hr 21 min 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