Do not spill variables/registers on the stack
Stefan Schulze Frielinghaus
stefan@seekline.net
Wed Feb 2 17:14:00 GMT 2011
Hello all,
I would like to compile my code with optimization level zero (-O0) and
enable only one optimization which keeps most variables in registers if
possible, i.e. does not spill them on the stack.
At the moment I circumvent this problem by always stating that a
variable should be in a register if possible:
int main(void) {
register int a = 1;
register int b = -1;
return a+b;
}
Compiling it with -O0 results in a binary where the variables a and b
are in registers and are not spilled on the stack. If I remove the
keyword "register", then the variables are spilled on the stack.
I had a look at the man page but couldn't find a suitable optimization
flag which prohibits this.
Does someone has an idea?
Kind regards,
Stefan
More information about the Gcc-help
mailing list