On Tue, Jan 20, 2015 at 10:53 PM, Bill Fischofer <[email protected]> wrote: > Great. I'd like to implement this model for linux-generic once we're past > the major merges for the header restructure and events. I'd also be > interested to get confirmation from some of the other platforms that this > seems to work for them as well. Comments, Bala, Taras, Alex? > > On Tue, Jan 20, 2015 at 2:48 PM, Leonard Bush <[email protected]> wrote: >> >> Bill, >> >> That is correct. >> >> There are no changes to the header file function declaration, just in the >> platform implementation. >> >> >> >> I couple of other points: >> >> - I found that –O2 was not sufficient to get the functions I wanted to be >> inlined.
One comment, I know that gcc sometimes inlines functions (usually small ones that are often used), but I didn't know there was that much difference between -O2 and -O3. I think I saw this behavior on x86 and powerpc, is the same not happening on your platform or is it that you mark a many more functions with __attribute__((always_inline))? >> >> - According to the link that Mike posted: >> https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html >> >> “Combining -flto with -g is currently experimental and expected to >> produce unexpected results.” >> >> However, I have been able to use –g and debugging information. >> >> >> >> Thanks, Leonard. >> >> >> >> From: Bill Fischofer [mailto:[email protected]] >> Sent: Tuesday, January 20, 2015 3:23 PM >> To: Leonard Bush >> Cc: [email protected] >> Subject: Re: [lng-odp] benefits of inline functions >> >> >> >> Thanks Leonard. Just so I understand. >> >> >> >> ODP API file declares function as today,without any attributes >> >> >> >> odp_return_t odp_foo(...); >> >> >> >> Your implementation of odp_foo() is written as: >> >> >> >> odp_return_t odp_foo(...) __attribute__((always_inline)) >> >> { >> >> ...implementation of odp_foo() >> >> } >> >> >> >> Your makefile then specifies >> >> >> >> -Wno-attributes -flto -O3 >> >> >> >> and this results in application calls to odp_foo() being inlined? >> >> >> >> That sounds perfect and has the additional advantage of not requiring >> header file gymnastics. >> >> >> >> >> >> On Tue, Jan 20, 2015 at 10:17 AM, Leonard Bush <[email protected]> wrote: >> >> I have platform implementation of functions that I want in-lined. >> >> I write the function with this: __attribute__((always_inline)) >> I run gcc with these CFLAGS: >> -Wno-attributes (needed since I define attributes!) >> -flto and -O3 (so these functions will be in-lined, if possible, at link >> time) >> >> The linking is noticeably slower, but there is a material performance >> benefit >> in the run-time of my ODP application. >> >> I do not know how this might fit into the ODP architecture, but I find it >> much easier to implement and support than restricting inline to static >> functions in single files or "inline" header files. >> Thanks, Leonard. >> >> >> _______________________________________________ >> lng-odp mailing list >> [email protected] >> http://lists.linaro.org/mailman/listinfo/lng-odp >> >> > > > > _______________________________________________ > lng-odp mailing list > [email protected] > http://lists.linaro.org/mailman/listinfo/lng-odp > _______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
