[Patch] Fix stack alignment for calls without frame setup or destroy

Renato Golin renato.golin at linaro.org
Fri May 3 06:35:11 PDT 2013


Hi Andrew,

I just ran the check-all tests on this patch on x86_64 and it found 5
failures (attached). Are you sure you run the tests recently? Would be good
to have both ARM and x86_64 check-all covered, at least. The test-suite
buildbot will catch errors in the execution, if there's any, so watch out
for emails from them.

cheers,
--renato


On 3 May 2013 11:55, Andrew Turner <andrew at fubar.geek.nz> wrote:

> On Mon, 22 Apr 2013 11:22:59 +0100
> Renato Golin <renato.golin at linaro.org> wrote:
>
> > Hi Andrew,
> >
> > Sorry for the delay. I had a read on the code around it and it seems
> > that with your patch, the stack will always grow if there is a call
> > and not a frame pointer. I'm not sure how this correlates with
> > functions without stack setup, line __aeabi_read_tp, but it might
> > bloat the stack for many other unrelated functions.
> >
> > However, I can see from the comments that adjusting the stack should
> > be done on any function call, and I don't know that part of the code
> > well enough, so if no one else has any objections, I'm ok with your
> > patch.
>
> Is someone able to commit this patch?
>
> Andrew
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130503/5a882899/attachment.html>
-------------- next part --------------
[9/9] Running all regression tests
FAILED: cd /home/rengolin/devel/llvm/build && /usr/bin/python /home/rengolin/devel/llvm/src/utils/lit/lit.py --param build_mode=. -sv --param clang_site_config=/home/rengolin/devel/llvm/build/tools/clang/test/lit.site.cfg --param clang_unit_site_config=/home/rengolin/devel/llvm/build/tools/clang/test/Unit/lit.site.cfg --param llvm_site_config=/home/rengolin/devel/llvm/build/test/lit.site.cfg --param llvm_unit_site_config=/home/rengolin/devel/llvm/build/test/Unit/lit.site.cfg /home/rengolin/devel/llvm/build/tools/clang/test /home/rengolin/devel/llvm/build/test
lit.py: lit.cfg:184: note: using clang: '/home/rengolin/devel/llvm/build/bin/./clang'
-- Testing: 14006 tests, 8 threads --
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60
FAIL: LLVM :: CodeGen/X86/2012-01-16-mfence-nosse-flags.ll (9050 of 14006)
******************** TEST 'LLVM :: CodeGen/X86/2012-01-16-mfence-nosse-flags.ll' FAILED ********************
Script:
--
/home/rengolin/devel/llvm/build/bin/./llc < /home/rengolin/devel/llvm/src/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll -mtriple=i686-linux -mattr=-sse | /home/rengolin/devel/llvm/build/bin/./FileCheck /home/rengolin/devel/llvm/src/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
--
Exit Code: 1
Command Output (stderr):
--
/home/rengolin/devel/llvm/src/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll:18:15: error: CHECK-NEXT: is not on the line after the previous match
; CHECK-NEXT: cmpl $0
              ^
<stdin>:14:2: note: 'next' match was here
 cmpl $0, %eax
 ^
<stdin>:12:18: note: previous match was here
 orl %ecx, (%esp)
                 ^
--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60
FAIL: LLVM :: CodeGen/X86/atom-pad-short-functions.ll (9168 of 14006)
******************** TEST 'LLVM :: CodeGen/X86/atom-pad-short-functions.ll' FAILED ********************
Script:
--
/home/rengolin/devel/llvm/build/bin/./llc < /home/rengolin/devel/llvm/src/test/CodeGen/X86/atom-pad-short-functions.ll -O1 -mcpu=atom -mtriple=i686-linux  | /home/rengolin/devel/llvm/build/bin/./FileCheck /home/rengolin/devel/llvm/src/test/CodeGen/X86/atom-pad-short-functions.ll
--
Exit Code: 1
Command Output (stderr):
--
/home/rengolin/devel/llvm/src/test/CodeGen/X86/atom-pad-short-functions.ll:88:10: error: expected string not found in input
; CHECK: @test_branch_to_same_bb
         ^
<stdin>:107:1: note: scanning from here
.Ltmp6:
^
<stdin>:108:38: note: possible intended match here
 .size test_branch_to_same_bb, .Ltmp6-test_branch_to_same_bb
                                     ^
--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60..
FAIL: LLVM :: CodeGen/X86/pic.ll (9716 of 14006)
******************** TEST 'LLVM :: CodeGen/X86/pic.ll' FAILED ********************
Script:
--
/home/rengolin/devel/llvm/build/bin/./llc < /home/rengolin/devel/llvm/src/test/CodeGen/X86/pic.ll -mcpu=generic -mtriple=i686-pc-linux-gnu -relocation-model=pic -asm-verbose=false -post-RA-scheduler=false | /home/rengolin/devel/llvm/build/bin/./FileCheck /home/rengolin/devel/llvm/src/test/CodeGen/X86/pic.ll -check-prefix=LINUX
--
Exit Code: 1
Command Output (stderr):
--
/home/rengolin/devel/llvm/src/test/CodeGen/X86/pic.ll:197:10: error: expected string not found in input
; LINUX: .long .LBB7_8 at GOTOFF
         ^
<stdin>:186:2: note: scanning from here
 .long .LBB7_2 at GOTOFF
 ^
--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 
FAIL: LLVM :: CodeGen/X86/sibcall.ll (9879 of 14006)
******************** TEST 'LLVM :: CodeGen/X86/sibcall.ll' FAILED ********************
Script:
--
/home/rengolin/devel/llvm/build/bin/./llc < /home/rengolin/devel/llvm/src/test/CodeGen/X86/sibcall.ll -mtriple=i686-linux   -mcpu=core2 -mattr=+sse2 -asm-verbose=false | /home/rengolin/devel/llvm/build/bin/./FileCheck /home/rengolin/devel/llvm/src/test/CodeGen/X86/sibcall.ll -check-prefix=32
/home/rengolin/devel/llvm/build/bin/./llc < /home/rengolin/devel/llvm/src/test/CodeGen/X86/sibcall.ll -mtriple=x86_64-linux -mcpu=core2 -mattr=+sse2 -asm-verbose=false | /home/rengolin/devel/llvm/build/bin/./FileCheck /home/rengolin/devel/llvm/src/test/CodeGen/X86/sibcall.ll -check-prefix=64
--
Exit Code: 1
Command Output (stderr):
--
<stdin>:112:2: error: 32-NOT: string occurred!
 subl $12, %esp
 ^
/home/rengolin/devel/llvm/src/test/CodeGen/X86/sibcall.ll:149:11: note: 32-NOT: pattern specified here
; 32-NOT: subl ${{[0-9]+}}, %esp
          ^
--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 
FAIL: LLVM :: CodeGen/X86/switch-or.ll (9946 of 14006)
******************** TEST 'LLVM :: CodeGen/X86/switch-or.ll' FAILED ********************
Script:
--
/home/rengolin/devel/llvm/build/bin/./llc -march=x86 -asm-verbose=false < /home/rengolin/devel/llvm/src/test/CodeGen/X86/switch-or.ll | /home/rengolin/devel/llvm/build/bin/./FileCheck /home/rengolin/devel/llvm/src/test/CodeGen/X86/switch-or.ll
--
Exit Code: 1
Command Output (stderr):
--
/home/rengolin/devel/llvm/src/test/CodeGen/X86/switch-or.ll:5:15: error: CHECK-NEXT: is not on the line after the previous match
; CHECK-NEXT: cmpl $6
              ^
<stdin>:11:2: note: 'next' match was here
 cmpl $6, %eax
 ^
<stdin>:9:8: note: previous match was here
 orl $2, %eax
       ^
--

********************
Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
Testing Time: 106.37s
********************
Failing Tests (5):
    LLVM :: CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
    LLVM :: CodeGen/X86/atom-pad-short-functions.ll
    LLVM :: CodeGen/X86/pic.ll
    LLVM :: CodeGen/X86/sibcall.ll
    LLVM :: CodeGen/X86/switch-or.ll

  Expected Passes    : 13834
  Expected Failures  : 76
  Unsupported Tests  : 91
  Unexpected Failures: 5



More information about the llvm-commits mailing list