------- Comment #7 from mikestump at comcast dot net 2010-03-03 16:56 ------- I fixed the test case to not expect the unimplemented optimization in r157197, however, it would be nice to ensure the async signal handlers can handle unaligned stacks and to perform this optimization. I'm fairly certain the signal handers have to cope as code gen can do:
_h: subl $12, %esp movl $1, %eax addl $12, %esp ret for int h () { return 1; } and certainly we can take a signal at _h+0, where esp isn't aligned. Given that, we can omit sp alignments for leaf functions (and no tail calls either), even on machines where otherwise an alignment is required, as long as any variables on the stack are correctly aligned. When this optimization is added, we can undo the r157197 change. -- mikestump at comcast dot net changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikestump at comcast dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42313