Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #28620

Re: inline functions

From "BartC" <bc@freeuk.com>
Newsgroups comp.lang.c
References <ZY2ss.472895$9D6.428279@fx27.am4><slrnkb1okj.1jc.grahn+nntp@frailea.sa.invalid><ON5ss.547483$9H4.97721@fx17.am4> <87624v6kly.fsf@dpt-info.u-strasbg.fr>
Subject Re: inline functions
Message-ID <zN6ss.970994$it2.113406@fx22.am4> (permalink)
Organization virginmedia.com
Date 2012-11-24 16:39 +0000

Show all headers | View raw


"Alain Ketterlin" <alain@dpt-info.u-strasbg.fr> wrote in message
news:87624v6kly.fsf@dpt-info.u-strasbg.fr...
> "BartC" <bc@freeuk.com> writes:

>> There are various ways to tackle this, but it would be most convenient if
>> there was an attribute 'never_inline' (I think there is one to always
>> inline).
>
> It goes the other way round: there is a command line option
> (-fno-inline-functions) to prevent inlining, and an attribute
> always_inline to force inlining (of inline functions).

I want to disable inlining of some functions (which I don't want inlined at
the expense of more useful ones), but still benefit from it with other
functions that I consider are called more frequently.

If 'always_inline' overrides -fno-inline-functions, that will do the trick.
But then your other link said there was a specific 'noinline' attribute, 
which will be perfect if it works. Thanks!

>> Inlining must be happening at a result of optimisation. I haven't yet
>> explicitly told it not to (except by moving all the functions to another
>> file).
>
> If inlining is enabled, the compiler will decide whether or not to
> inline on a per-callsite basis, not on a per-function (callee) basis. It
> doesn't make much difference in your case iiuc. But keep in mind that
> the call site is important. With a 300-case switch, it is likely that
> the compiler will find your function too big and will refrain from
> making it bigger.

Hence the need to control which ones *are* inlined. But I don't know why it
cares how big my function is, if I'm optimising for speed. Doubtless there
will be option for that somewhere too.

(Of course I can always just write the code inline anyway, but it's
difficult to manage and gets unwieldy at a source code level.)

-- 
Bartc 

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

inline functions "BartC" <bc@freeuk.com> - 2012-11-24 12:20 +0000
  Re: inline functions SG <sgesemann@gmail.invalid> - 2012-11-24 14:52 +0100
    Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-24 14:48 +0000
      Re: inline functions Joost Kraaijeveld <J.Kraaijeveld@Askesis.nl> - 2012-11-24 15:59 +0100
      Re: inline functions Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2012-11-24 16:25 +0100
      Re: inline functions Johann Klammer <klammerj@NOSPAM.a1.net> - 2012-11-24 19:18 +0100
  Re: inline functions Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-24 15:07 +0000
    Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-24 15:33 +0000
      Re: inline functions Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2012-11-24 17:17 +0100
        Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-24 16:39 +0000
          Re: inline functions Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2012-11-24 18:13 +0100
            Re: inline functions Jens Gustedt <jens.gustedt@loria.fr> - 2012-11-24 19:36 +0100
              Re: inline functions Sergio Durigan Junior <sergiodj@riseup.net> - 2012-12-05 03:19 -0200
                Re: inline functions Jens Gustedt <jens.gustedt@loria.fr> - 2012-12-05 10:57 +0100
                Re: inline functions Sergio Durigan Junior <sergiodj@riseup.net> - 2012-12-05 15:34 -0200
        Re: inline functions Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-25 09:43 +0000
          Re: inline functions Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2012-11-25 11:32 +0100
            Re: inline functions Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-27 21:55 +0000
        Re: inline functions "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-11-26 04:16 -0800
          Re: inline functions David Brown <david@westcontrol.removethisbit.com> - 2012-11-26 14:13 +0100
            Re: inline functions Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-28 21:27 +0000
              Re: inline functions James Kuyper <jameskuyper@verizon.net> - 2012-11-28 16:40 -0500
                Re: inline functions Ben Pfaff <blp@cs.stanford.edu> - 2012-11-28 14:15 -0800
                Re: inline functions Sergio Durigan Junior <sergiodj@riseup.net> - 2012-11-29 00:02 -0200
                Re: inline functions Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-29 07:24 -0800
                Re: inline functions James Kuyper <jameskuyper@verizon.net> - 2012-11-29 11:04 -0500
                Re: inline functions Sergio Durigan Junior <sergiodj@riseup.net> - 2012-11-29 14:44 -0200
                Re: inline functions Les Cargill <lcargill99@comcast.com> - 2012-11-29 12:44 -0600
                Re: inline functions Sergio Durigan Junior <sergiodj@riseup.net> - 2012-11-29 20:43 -0200
                Re: inline functions Les Cargill <lcargill99@comcast.com> - 2012-11-29 20:14 -0600
                Re: inline functions Ian Collins <ian-news@hotmail.com> - 2012-11-30 07:44 +1300
                Re: inline functions Sergio Durigan Junior <sergiodj@riseup.net> - 2012-11-29 20:38 -0200
                Re: inline functions Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-12-05 03:17 +0000
                Re: inline functions Noob <root@127.0.0.1> - 2012-12-05 11:26 +0100
      Re: inline functions David Brown <david@westcontrol.removethisbit.com> - 2012-11-26 11:23 +0100
        Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-26 13:01 +0000
          Re: inline functions David Brown <david@westcontrol.removethisbit.com> - 2012-11-26 14:24 +0100
            Re: inline functions Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-26 05:35 -0800
              Re: inline functions Les Cargill <lcargill99@comcast.com> - 2012-11-26 07:57 -0600
                Re: inline functions Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-26 07:07 -0800
              Re: inline functions Rosario1903 <Rosario@invalid.invalid> - 2012-11-27 09:46 +0100
              Re: inline functions David Brown <david@westcontrol.removethisbit.com> - 2012-11-27 10:50 +0100
            Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-26 14:14 +0000
              Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-26 15:14 +0000
              Re: inline functions Rosario1903 <Rosario@invalid.invalid> - 2012-11-27 09:46 +0100
                Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-27 14:41 +0000
              Re: inline functions David Brown <david@westcontrol.removethisbit.com> - 2012-11-27 11:01 +0100
                Re: inline functions "BartC" <bc@freeuk.com> - 2012-11-27 14:37 +0000
                Re: inline functions Alain Ketterlin <alain@dpt-info.u-strasbg.fr> - 2012-11-27 18:22 +0100
                Re: inline functions James Kuyper <jameskuyper@verizon.net> - 2012-11-27 12:55 -0500
                Re: inline functions Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-27 22:06 +0000
                Re: inline functions David Brown <david@westcontrol.removethisbit.com> - 2012-11-29 09:47 +0100
          Re: inline functions glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-11-26 14:39 +0000
  Re: inline functions Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-24 07:20 -0800
    Re: inline functions James Kuyper <jameskuyper@verizon.net> - 2012-11-24 10:44 -0500
  Re: inline functions James Kuyper <jameskuyper@verizon.net> - 2012-11-24 10:35 -0500
  Re: inline functions Philip Lantz <prl@canterey.us> - 2012-11-24 22:56 -0800
  Re: inline functions James Dow Allen <jdallen2000@yahoo.com> - 2012-11-25 01:18 -0800

csiph-web