Running on x86-64 linux: FAIL: test/CodeGen/X86/vec_ins_extract.ll Failed with exit(1) at line 1 while running: llvm-as < test/CodeGen/X86/vec_ins_extract.ll | opt -scalarrepl -instcombine | llc -march=x86 -mcpu=yonah | not grep sub.*esp subl $16, %esp subl $16, %esp subl $16, %esp subl $16, %esp child process exited abnormally FAIL: test/CodeGen/X86/vec_shuffle-10.ll Failed with exit(1) at line 3 while running: llvm-as < test/CodeGen/X86/vec_shuffle-10.ll | llc -march=x86 -mattr=+sse2 | not grep {sub.*esp} subl $16, %esp subl $16, %esp child process exited abnormally Any ideas? Ciao, Duncan.
On Jun 27, 2008, at 3:11 AMPDT, Duncan Sands wrote:> FAIL: test/CodeGen/X86/vec_shuffle-10.ll > Failed with exit(1) at line 3 > while running: llvm-as < test/CodeGen/X86/vec_shuffle-10.ll | llc - > march=x86 -mattr=+sse2 | not grep {sub.*esp} > subl $16, %esp > subl $16, %esp > child process exited abnormallyIs the code actually loading and storing to the stack, or just allocating space? If the latter it is probably this patch: http://llvm.org/viewvc/llvm-project?view=rev&revision=52750 Rounding up the stack size does not have to be done if there are no stack objects, so that would be the preferred way to fix this. See if this works for you. It will be something close to this. Index: CodeGen/PrologEpilogInserter.cpp ==================================================================--- CodeGen/PrologEpilogInserter.cpp (revision 52829) +++ CodeGen/PrologEpilogInserter.cpp (working copy) @@ -464,7 +464,8 @@ // works. if (!RegInfo->targetHandlesStackFrameRounding() && (FFI->hasCalls() || FFI->hasVarSizedObjects() || - RegInfo->needsStackRealignment(Fn))) { + (RegInfo->needsStackRealignment(Fn) && + Offset > std::abs(TFI.getOffsetOfLocalArea())))) { // If we have reserved argument space for call sites in the function // immediately on entry to the current function, count it as part of the // overall stack size.
Hi Dale, yes it's just stack alignment. Unfortunately your patch doesn't make any difference. Thanks for thinking about this, Duncan. On Friday 27 June 2008 19:51:00 Dale Johannesen wrote:> On Jun 27, 2008, at 3:11 AMPDT, Duncan Sands wrote: > > FAIL: test/CodeGen/X86/vec_shuffle-10.ll > > Failed with exit(1) at line 3 > > while running: llvm-as < test/CodeGen/X86/vec_shuffle-10.ll | llc - > > march=x86 -mattr=+sse2 | not grep {sub.*esp} > > subl $16, %esp > > subl $16, %esp > > child process exited abnormally > > Is the code actually loading and storing to the stack, or just > allocating space? > If the latter it is probably this patch: > http://llvm.org/viewvc/llvm-project?view=rev&revision=52750 > > Rounding up the stack size does not have to be done if there are no > stack > objects, so that would be the preferred way to fix this. See if this > works for you. > It will be something close to this. > > Index: CodeGen/PrologEpilogInserter.cpp > ==================================================================> --- CodeGen/PrologEpilogInserter.cpp (revision 52829) > +++ CodeGen/PrologEpilogInserter.cpp (working copy) > @@ -464,7 +464,8 @@ > // works. > if (!RegInfo->targetHandlesStackFrameRounding() && > (FFI->hasCalls() || FFI->hasVarSizedObjects() || > - RegInfo->needsStackRealignment(Fn))) { > + (RegInfo->needsStackRealignment(Fn) && > + Offset > std::abs(TFI.getOffsetOfLocalArea())))) { > // If we have reserved argument space for call sites in the > function > // immediately on entry to the current function, count it as > part of the > // overall stack size. > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >