clang+llvm-3.6.1-rc1-mips-linux-gnu.tar.xz
All good
clang+llvm-3.6.1-rc1-mipsel-linux-gnu.tar.xz
Still running.
So far only ClamAV has failed. This seems to be due to forgetting to install zlib1g-dev after rebuilding the system recently. I'll re-run this test once the others finish
clang+llvm-3.6.1-rc1-x86_64-linux-gnu-ubuntu-14.04.tar.xz (cross compiling to Mips)
* Still running.
* For the 'mipsel-img-linux-gnu -mips32r6 -mfpxx', 'mipsel-img-linux-gnu -mmicromips' test runs I have several regressions that look like timeouts caused by a busy system. I'm re-running these at the moment and they are passing so far.
* For 'mips-img-linux-gnu -mips64r6 -mabi=n32' test run I have several regressions that look like timeouts caused by a busy system. I'll re-run these once the rest finish.
* For the 'mips-img-linux-gnu -mips64r6 -mabi=n32' test run I also have two failures that look like regressions. MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4 is segfaulting. MultiSource/Applications/kimwitu++/kc is failing the hashed-output reference check. I'm looking into these.
I've disassembled the failing MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4 and compared it to the one from the LLVM 3.6.0 test runs. There's nothing obvious. We've removed some useless 'addiu $sp,$sp,0', eliminated two (seemingly redundant) sign extends, and the addresses of functions+data has changed slightly.
This one is a new test, and I believe it wasn't there in 3.6.0, so
it's ok to fail, since the patch hasn't been backported.
$ ./frame_layout | grep NOT
+----, int_local, alignment: 4096 ALIGNMENT NOT AS EXPECTED: 0x7fec948520
+----, double_local, alignment: 4096 ALIGNMENT NOT AS EXPECTED: 0x7fec948510
...
Kristof,
Is this a fair assessment? If so, AArch64 3.6.1 is green.
Renato, your assessment is spot on - the frame_layout test was
added to verify a bunch of frame layout aspects and indeed
the AArch64 backend didn't support over-aligning objects
on the stack on the 3.6 branch. This has been implemented
on trunk.
I've disassembled the failing MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4 and compared it to
the one from the LLVM 3.6.0 test runs. There's nothing obvious. We've removed some useless
'addiu $sp,$sp,0', eliminated two (seemingly redundant) sign extends, and the addresses of
functions+data has changed slightly.
The problem is these three definitions:
// Bypass trunc nodes for bitwise ops.
def : MipsPat<(i32 (trunc (and GPR64:$lhs, GPR64:$rhs))),
(EXTRACT_SUBREG (AND64 GPR64:$lhs, GPR64:$rhs), sub_32)>;
def : MipsPat<(i32 (trunc (or GPR64:$lhs, GPR64:$rhs))),
(EXTRACT_SUBREG (OR64 GPR64:$lhs, GPR64:$rhs), sub_32)>;
def : MipsPat<(i32 (trunc (xor GPR64:$lhs, GPR64:$rhs))),
(EXTRACT_SUBREG (XOR64 GPR64:$lhs, GPR64:$rhs), sub_32)>;
They're correct around 95% of the time since the instructions that act on i32 only care about the lowest 32-bits of the GPR. However, comparison instructions such as BEQ compare the whole 64-bit GPR, even for i32, and therefore needed the sign-extend we used to generate.
I'm going to try a build with that patch reverted to confirm this and assuming I'm right I'll revert this merge.
clang+llvm-3.6.1-rc1-x86_64-linux-gnu-ubuntu-14.04.tar.xz (cross compiling to Mips)
* Still running.
* For the 'mipsel-img-linux-gnu -mips32r6 -mfpxx', 'mipsel-img-linux-gnu -mmicromips' test runs I have
several regressions that look like timeouts caused by a busy system. I'm re-running these at the
moment and they are passing so far.
Just a quick update: The 'mipsel-img-linux-gnu -mips32r6 -mfpxx' failures all passed when rerun while the system was less busy. I've just started the re-runs for 'mipsel-img-linux-gnu -mmicromips'.
Not yet, these two failures were the first time we had seen the problem. We're still looking into fixing it properly but I'm currently thinking that the correct fix is to add
if (Subtarget.isGP64bit())
setOperationAction(ISD::SETCC, MVT::i32, Promote);
to MipsISelLowering.cpp and sort out the consequences of this on the patterns for all the comparison instructions. This is likely to be a fairly big change to our target.
I agree. I reverted it this morning (in r237432) after confirming that doing so fixed the regressions. I've also kicked off the cross-compilation test-runs again just to be sure removing it doesn't break anything else.
Tom, do you think we need an RC2 for this one? AFAIK, this was the
only failure, and if Daniel's tests pass after reverting it, we may be
ok for just a final release.