[llvm-testresults] buildbot failure in lab.llvm.org on phase1 - sanity

llvmlab-buildmaster at lab.llvm.org llvmlab-buildmaster at lab.llvm.org
Wed Jul 9 03:44:54 PDT 2014


The Buildbot has detected a new failure on builder phase1 - sanity while building llvm.
Full details are available at:
 http://lab.llvm.org:8013/builders/phase1%20-%20sanity/builds/1903

Buildbot URL: http://lab.llvm.org:8013/

Buildslave for this Build: macpro1

Build Reason: scheduler
Build Source Stamp: 212604
Blamelist: chandlerc,dsanders

BUILD FAILED: failed

sincerely,
 -The Buildbot


================================================================================

CHANGES:
Files:
 lib/Target/X86/X86ISelLowering.cpp
 test/CodeGen/X86/avx-splat.ll
 test/CodeGen/X86/widen_cast-4.ll
On: http://10.1.1.2/svn/llvm-project
For: llvm
At: Wed 09 Jul 2014 03:21:38
Changed By: chandlerc
Comments: [x86] Re-apply a variant of the x86 side of r212324 now that the rest
has settled without incident, removing the x86-specific and overly
strict 'isVectorSplat' routine in favor of generic and more powerful
splat detection.

The primary motivation and result of this is that the x86 backend can
now see through splats which contain undef elements. This is essential
if we are using a widening form of legalization and I've updated a test
case to also run in that mode as before this change the generated code
for the test case was completely scalarized.

This version of the patch much more carefully handles the undef lanes.
- We aren't overly conservative about them in the shift lowering
  (where we will never use the splat itself).
- One place where the splat would have been re-used by the existing code
  now explicitly constructs a new constant splat that will be safe.
- The broadcast lowering is much more reasonable with undefs by doing
  a correct check of whether the splat is the only user of a loaded
  value, checking that the splat actually crosses multiple lanes before
  using a broadcast, and handling broadcasts of non-constant splats.

As a consequence of the last bullet, the weird usage of vpshufd instead
of vbroadcast is gone, and we actually can lower an AVX splat with
vbroadcastss where before we emitted a really strange pattern of
a vector load and a manual splat across the vector.Properties: 




File: include/llvm/MC/MCTargetOptionsCommandFlags.h
On: http://10.1.1.2/svn/llvm-project
For: llvm
At: Wed 09 Jul 2014 03:21:38
Changed By: dsanders
Comments: Add ability to emit internal instruction representation to CodeGen assembly output.

Summary:
This patch re-uses the implementation of 'llvm-mc -show-inst' and makes it
available to llc as 'llc -asm-show-inst'.

This is necessary to test parts of MIPS32r6/MIPS64r6 without resorting to
'llc -filetype=obj' tests. For example, on MIPS32r2 and earlier we use the
'jr $rs' instruction for indirect branches and returns. On MIPS32r6, we no
longer have 'jr $rs' and use 'jalr $zero, $rs' instead. The catch is that,
on MIPS32r6, 'jr $rs' is an alias for 'jalr $zero, $rs' and is the preferred
way of writing this instruction. As a result, all MIPS ISA's emit 'jr $rs' in
their assembly output and the assembler encodes this to different opcodes
according to the ISA.

Using this option, we can check that the MCInst really is a JR or a JALR by
matching the emitted comment. This removes the need for a 'llc -filetype=obj'
test.

Reviewers: rafael, dsanders

Reviewed By: dsanders

Subscribers: zoran.jovanovic, llvm-commits

Differential Revision: http://reviews.llvm.org/D4267Properties: 




Files:
 lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
 lib/Target/Mips/MicroMipsInstrInfo.td
 lib/Target/Mips/Mips32r6InstrInfo.td
 lib/Target/Mips/Mips64InstrInfo.td
 lib/Target/Mips/Mips64r6InstrInfo.td
 lib/Target/Mips/MipsAsmPrinter.cpp
 lib/Target/Mips/MipsAsmPrinter.h
 lib/Target/Mips/MipsInstrInfo.td
 lib/Target/Mips/MipsSEInstrInfo.cpp
 lib/Target/Mips/MipsSEInstrInfo.h
 test/CodeGen/Mips/eh-return32.ll
 test/CodeGen/Mips/eh-return64.ll
 test/CodeGen/Mips/llvm-ir/ret.ll
On: http://10.1.1.2/svn/llvm-project
For: llvm
At: Wed 09 Jul 2014 03:25:38
Changed By: dsanders
Comments: [mips][mips64r6] Use JALR for returns instead of JR (which is not available on MIPS32r6/MIPS64r6)

Summary:
RET, and RET_MM have been replaced by a pseudo named PseudoReturn.
In addition a version with a 64-bit GPR named PseudoReturn64 has been
added.

Instruction selection for a return matches RetRA, which is expanded post
register allocation to PseudoReturn/PseudoReturn64. During MipsAsmPrinter,
this PseudoReturn/PseudoReturn64 are emitted as:
- (JALR64 $zero, $rs) on MIPS64r6
- (JALR $zero, $rs) on MIPS32r6
- (JR_MM $rs) on microMIPS
- (JR $rs) otherwise

On MIPS32r6/MIPS64r6, 'jr $rs' is an alias for 'jalr $zero, $rs'. To aid
development and review (specifically, to ensure all cases of jr are
updated), these aliases are temporarily named 'r6.jr' instead of 'jr'.
A follow up patch will change them back to the correct mnemonic.

Added (JALR $zero, $rs) to MipsNaClELFStreamer's definition of an indirect
jump, and removed it from its definition of a call.
Note: I haven't accounted for MIPS64 in MipsNaClELFStreamer since it's
doesn't appear to account for any MIPS64-specifics.

The return instruction created as part of eh_return expansion is now expanded
using expandRetRA() so we use the right return instruction on MIPS32r6/MIPS64r6
('jalr $zero, $rs').

Also, fixed a misuse of isABI_N64() to detect 64-bit wide registers in
expandEhReturn().

Reviewers: jkolek, vmedic, mseaborn, zoran.jovanovic, dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D4268
Properties: 




LOGS:






More information about the llvm-testresults mailing list