This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Implement stack arrays even for unknown sizes


> What ulimit -s have you used for your capacita tests?

On *-apple-darwin* the stacksize is limited to (kbytes, -s) 65532
and it is hard coded. It is my (very limited) understanding that
this limit can be bypassed by using something such as
-Wl,-stack_size,0xf0000000 (for 1Gbytes in 64 bit mode -in 32 bit mode
you need an additional trick). Doing so for capacita does not help.
For nf the best I get is

[macbook] lin/test% gfc -Ofast -funroll-loops -fstack-arrays nf.f90 -g -save-temps 
[macbook] lin/test% valgrind --max-stackframe=64118496 a.out
==25739== Memcheck, a memory error detector
==25739== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==25739== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==25739== Command: a.out
==25739== 

 Solve   97 by 105 by  99 FD problem - method=NFCG
 Band elements are   100.00,    10.00, and     1.00. stiffness=   1000.00
 Target RMS residual =   0.1000E-06 Maximum Iterations =  50

 Iter      Alpha        Beta     RMS Residual   Sum of Residuals
   0                             0.9958682E-01      100.0000    
   0     1.00000                 0.1412538E-01    -0.2314427E-09
   1     0.08835     0.00000     0.9698062E-02    -0.2522486E-09
...
  44     0.07743     0.55715     0.8934363E-07    -0.4388281E-14

 Time for setup          0.868
 Time per iteration      1.709
 Total Time             76.049
==25739== 
==25739== HEAP SUMMARY:
==25739==     in use at exit: 656 bytes in 13 blocks
==25739==   total heap usage: 409 allocs, 396 frees, 387,298,208 bytes allocated
==25739== 
==25739== LEAK SUMMARY:
==25739==    definitely lost: 0 bytes in 0 blocks
==25739==    indirectly lost: 0 bytes in 0 blocks
==25739==      possibly lost: 0 bytes in 0 blocks
==25739==    still reachable: 656 bytes in 13 blocks
==25739==         suppressed: 0 bytes in 0 blocks
==25739== Rerun with --leak-check=full to see details of leaked memory
==25739== 
==25739== For counts of detected and suppressed errors, rerun with: -v
==25739== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

> Compiling with -fstack-check should give the segfault reliably.

It does not seems to work for me.

Dominique


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]