Hello Vicente, I recommend to post this as a feature request. Here in the user mailing list it is most certain to be forgotten.
Or even better, try to implement it yourself in pic(14/16)/gen.c and post the patch in the patch tracker. Greetings, Maarten > Hello. > > I've been using SDCC (PIC port) for some time and using gputils to > assemble and link. > > Gplink has an option to remove dead sections -O2. > > It crashed when using this option, but recently i've repported the bug and > it has been quickly fixed. > (See details here: https://sourceforge.net/p/gputils/bugs/286/ ) > > The problem is -O2 removes code only from entire sections not used, and > SDCC generates only one code section for all functions of each file. So > code is only removed if no function of a file is used. > This is not very useful, normally you have some libraries and use part of > the functions of that files, all unused functions should be removed. This > could be possible if each file had it's own code section. I have done some > test with real projects (adding a code section for each function manually > to the resulting asm) and i've seen very big memory savings after linking > (up to 20%, very project dependent). > > I suggest adding a new Option for the SDCC PIC port to create a code > section for each function in every compiled file. I think it should be > very easy to implement this option, it just adds a line for each function > in the output file, i propose the following format (the one i used in my > tests): > > function_name (.c file function) -> _function_name (.asm file function) -> > code_function_name (.asm file code section) > > Just add "code" prefix to each generated asm function name and add new > section line before the function start label, an example here: > > -------------------------------------------------- > ;*** > ; pBlock Stats: dbName = C > ;*** > ;entry: _serial_hw_init   ;Function > start > ; 2 exit points > ;has an exit > ;; Starting pCode block > code_serial_hw_init   code   > ;Function start > _serial_hw_init   ;Function start > ; 2 exit points > ;   .line   695; > "src/serial/serial_hw.c"   > pin_mode_input(SERIAL_HW_RX0); >    BANKSEL   _TRISB >    BSF   _TRISB,5 ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user