Re: [Patch, avr] Include INCOMING_FRAME_SP_OFFSET when printing stack usage
2016-05-19 16:10 GMT+03:00 Senthil Kumar Selvaraj : > Ping! > > Regards > Senthil > > Senthil Kumar Selvaraj writes: > >> Hi, >> >> This trivial patch adds INCOMING_FRAME_SP_OFFSET to >> current_function_static_stack_size, thus fixing the 2 (or 3, for >> 3 byte PC devices) byte difference between reported and actual >> values when using -fstack-usage. >> >> The patch came about because of this discussion >> (https://gcc.gnu.org/ml/gcc/2016-05/msg00107.html). For AVRs, the >> return address gets pushed into the stack as part of the call >> instruction, and the number of bytes pushed varies by PC width. >> This is already taken care of when defining INCOMING_FRAME_SP_OFFSET, >> so I just add it to the previously computed value when setting >> current_function_static_stack_size. >> >> If this is ok, could someone commit please? I don't have commit >> access. >> >> Regards >> Senthil >> >> gcc/ChangeLog >> >> 2016-05-13 Senthil Kumar Selvaraj >> >> * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET >> to computed stack_usage. >> >> >> diff --git gcc/config/avr/avr.c gcc/config/avr/avr.c >> index 8de39e0..ba5cd91 100644 >> --- gcc/config/avr/avr.c >> +++ gcc/config/avr/avr.c >> @@ -1484,7 +1484,7 @@ avr_expand_prologue (void) >>avr_prologue_setup_frame (size, set); >> >>if (flag_stack_usage_info) >> -current_function_static_stack_size = cfun->machine->stack_usage; >> +current_function_static_stack_size = cfun->machine->stack_usage + >> INCOMING_FRAME_SP_OFFSET; >> } >> >> > Committed.
Re: [Patch, avr] Include INCOMING_FRAME_SP_OFFSET when printing stack usage
Ping! Regards Senthil Senthil Kumar Selvaraj writes: > Hi, > > This trivial patch adds INCOMING_FRAME_SP_OFFSET to > current_function_static_stack_size, thus fixing the 2 (or 3, for > 3 byte PC devices) byte difference between reported and actual > values when using -fstack-usage. > > The patch came about because of this discussion > (https://gcc.gnu.org/ml/gcc/2016-05/msg00107.html). For AVRs, the > return address gets pushed into the stack as part of the call > instruction, and the number of bytes pushed varies by PC width. > This is already taken care of when defining INCOMING_FRAME_SP_OFFSET, > so I just add it to the previously computed value when setting > current_function_static_stack_size. > > If this is ok, could someone commit please? I don't have commit > access. > > Regards > Senthil > > gcc/ChangeLog > > 2016-05-13 Senthil Kumar Selvaraj > > * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET > to computed stack_usage. > > > diff --git gcc/config/avr/avr.c gcc/config/avr/avr.c > index 8de39e0..ba5cd91 100644 > --- gcc/config/avr/avr.c > +++ gcc/config/avr/avr.c > @@ -1484,7 +1484,7 @@ avr_expand_prologue (void) >avr_prologue_setup_frame (size, set); > >if (flag_stack_usage_info) > -current_function_static_stack_size = cfun->machine->stack_usage; > +current_function_static_stack_size = cfun->machine->stack_usage + > INCOMING_FRAME_SP_OFFSET; > } > >