-fstack-usage option

-fstack-usage option

Hi,

Does Intel C++ Compiler support "-fstack-usage" option as supported by GCC? Or something similar?

Regards

Pawel

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I did a quick verification with a MinGW C++ compiler ( GCC-like for Windows ) and it supports the following stack-like options:
...
-fstack-check Insert stack checking code into the program
-fstack-limit This switch lacks documentation
-fstack-limit-register= Trap if the stack goes past
-fstack-limit-symbol= Trap if the stack goes past symbol
...

Next, Intel C++ compiler version 12.x.x ( for Windows ) supports the only stack-like option:
...
/Qfp-stack-check - enable fp stack checking after every function/procedure call
...

Note: There are also several options for stack alignment, like /Qsfalign8, /Qsfalign16, /Qsfalign and /Qsfalign-.

My question is what exactly do you need to achieve?

I am working on a firmware that will work on HW with limited memory.

We would like to use the hint from compiler to optimize stack size.

>>I am working on a firmware that will work on HW with limited memory.

What is a smallest amount of memory that HW is going to have?

>>We would like to use the hint from compiler to optimize stack size.

There are several kinds of stacks:

- A stack for an application ( controlled with Stack Reserve and Stack Commit values of a linker )
- A stack for a thread ( on a Win32 platform it is controlled by a parameter passed to a CreateThread function )
- A stack for OpenMP threads ( controlled by OMP_STACKSIZE environment variable )

PS: By the way, I have a Pentium II system ( a notebook / 32-bit WIndows 2000 Professional Edition OS ) with 128MB of physical memory memory and I use it for harsh-stress testing and it also simulates an embedded system with very limited resources. I tested a set of algorithms with 2GB Virtual Memory and everything worked. Since the software is highly configurable I could create an executable just ~25KB in size, however it doesn't do too much but it can output a "Hello, World!" expression in that case. A regular, more practical, size of an executable could be about a couple of hundreds KBs. In overall, I completed lots of different tests including verification of maximum number of recursive calls, for Quick, Heap and Merge Sorting algorithms, and Strassen's matrix multiplication. I agree that a stack size for a really small embedded system needs to be taken into account seriously.

Leave a Comment

Please sign in to add a comment. Not a member? Join today