Started 17 days ago
Took 4 hr 58 min on green-dragon-02

Failed Build #14189 (Jun 8, 2019 1:02:54 AM)

  • : 362869
  • : 362856
  • : 362859
  • : 362745
  • : 362851
  • : 362866
  • : 362811
  1. [SystemZ]  Fix CMakeLists.txt for alphabetical order (NFC). (detail)
    by jonpa
  2. [SystemZ, RegAlloc]  Favor 3-address instructions during instruction selection.

    This patch aims to reduce spilling and register moves by using the 3-address
    versions of instructions per default instead of the 2-address equivalent
    ones. It seems that both spilling and register moves are improved noticeably

    Regalloc hints are passed to increase conversions to 2-address instructions
    which are done in SystemZShortenInst.cpp (after regalloc).

    Since the SystemZ reg/mem instructions are 2-address (dst and lhs regs are
    the same), foldMemoryOperandImpl() can no longer trivially fold a spilled
    source register since the reg/reg instruction is now 3-address. In order to
    remedy this, new 3-address pseudo memory instructions are used to perform the
    folding only when the dst and lhs virtual registers are known to be allocated
    to the same physreg. In order to not let MachineCopyPropagation run and
    change registers on these transformed instructions (making it 3-address), a
    new target pass called SystemZPostRewrite.cpp is run just after
    VirtRegRewriter, that immediately lowers the pseudo to a target instruction.

    If it would have been possibe to insert a COPY instruction and change a
    register operand (convert to 2-address) in foldMemoryOperandImpl() while
    trusting that the caller (e.g. InlineSpiller) would update/repair the
    involved LiveIntervals, the solution involving pseudo instructions would not
    have been needed. This is perhaps a potential improvement (see Phabricator

    Common code changes:

    * A new hook TargetPassConfig::addPostRewrite() is utilized to be able to run a
    target pass immediately before MachineCopyPropagation.

    * VirtRegMap is passed as an argument to foldMemoryOperand().

    Review: Ulrich Weigand, Quentin Colombet (detail)
    by jonpa
  3. update debugging docs to be less out of date (detail)
    by ericwf

Started by timer (5 times)

This run spent:

  • 4 hr 52 min waiting;
  • 4 hr 58 min build duration;
  • 9 hr 50 min total from scheduled to completion.
Test Result (1 failure / ±0)

Identified problems

Compile Error

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

Ninja target failed

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

Regression test failed

This build failed because a regression test in the test suite FAILed. See the test report for details.
Indication 3