Started 25 days ago
Took 49 min on green-dragon-19

Failed Build rL:372464 - C:372462 - #707 (Sep 21, 2019 2:17:10 AM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 372464
  • http://llvm.org/svn/llvm-project/cfe/trunk : 372462
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 372461
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 364589
  • http://llvm.org/svn/llvm-project/zorg/trunk : 372433
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 372242
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 372445
Changes
  1. Revert "[SampleFDO] Expose an interface to return the size of a section or the size"

    This reverts commit f118852046a1d255ed8c65c6b5db320e8cea53a0.

    Broke the macOS build/greendragon bots. (detail/ViewSVN)
    by aemerson
  2. [MachinePipeliner] Improve the TargetInstrInfo API analyzeLoop/reduceLoopCount

    Recommit: fix asan errors.

    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 {
      public:
        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

Started by an SCM change (2 times)

This run spent:

  • 55 min waiting;
  • 49 min build duration;
  • 1 hr 44 min total from scheduled to completion.
LLVM/Clang Warnings: 0 warnings.

Identified problems

Ninja target failed

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

Missing test results

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