From: Sandeep D. <sa...@wi...> - 2001-11-19 02:06:21
|
Hi Scott, The major one being run time performance improvement , builtins don't actually generate function calls but do the code inline. Consider memcpy ... if done via a library (even a hand optimized assembly library).. the function call overhead still exists, including the memory spaces required to pass parameters ... Parameters and locals of the function caller can no longer go into overlay area .. (currently it cannot even with builtins .. but I'm working on it) ....i.e. if a function calls ONLY builtin functions then the parameters & locals should be overlay able. We can do further optimizations depending on the nature of the builtin function , lets take memcpy as an example again (we know that it does not modify any scalar global variable) so we can carry global variable dataflow information across builtin functions (again currently this is not the case.. I'm working on it )... Some processor specific stuff can implemented using these functions. for example if the processor lets say supports BCD arithmetic ... these instructions cannot really be generated by the compiler without declaring a BCD fundamental data type...but can be generated using builtin functions ... Regards Sandeep > -----Original Message----- > From: sdc...@li... > [mailto:sdc...@li...]On Behalf Of Scott > Dattalo > Sent: Sunday, November 18, 2001 3:00 PM > Cc: sdc...@li... > Subject: Re: [sdcc-devel] builtin functions > > > On Sun, 18 Nov 2001, Sandeep Dutta wrote: > > > /* This document is meant for developers */ > > > > Implementation details of "builtin" functions in SDCC. > > Built in functions are target/port specific and are defined in > > src/<arch>/main.c. > > Here is a layout of the builtin structure (port.h). > > I think I know the answer, but what advantages do you gain > with builtin's > versus a library? > > Scott > > > _______________________________________________ > sdcc-devel mailing list > sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-devel > > > |