all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Eggert <eggert@cs.ucla.edu>
To: rms@gnu.org
Cc: 11935@debbugs.gnu.org
Subject: bug#11935: XINT etc. should be functions
Date: Mon, 16 Jul 2012 15:46:31 -0700	[thread overview]
Message-ID: <500499C7.20902@cs.ucla.edu> (raw)
In-Reply-To: <E1SqptQ-0004O3-SN@fencepost.gnu.org>

On 07/16/2012 11:19 AM, Richard Stallman wrote:

> Please set them up to always inline.  There can be
> a macro switch to turn that off with -D.

Sure, that's easy.  I plan to incorporate something like the patch
below, which uses -DINLINING=0 to turn it off (default is INLINING=1).

=== modified file 'ChangeLog'
--- ChangeLog	2012-07-16 06:49:45 +0000
+++ ChangeLog	2012-07-16 22:35:32 +0000
@@ -3,6 +3,9 @@
 	Use functions, not macros, for XINT etc.
 	* configure.ac (WARN_CFLAGS): Remove -Wbad-function-cast,
 	as it generates bogus warnings about reasonable casts of calls.
+	(ALWAYS_INLINE): New macro.
+	(inline): Define to 'ALWAYS_INLINE' when compiling with GCC without
+	optimization, and without -DINLINING=0.
 
 2012-07-15  Paul Eggert  <eggert@cs.ucla.edu>
 

=== modified file 'configure.ac'
--- configure.ac	2012-07-15 00:33:12 +0000
+++ configure.ac	2012-07-16 22:21:37 +0000
@@ -4238,6 +4238,25 @@
 #include <string.h>
 #include <stdlib.h>
 
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
+# define ALWAYS_INLINE __attribute__ ((__always_inline__))
+#else
+# define ALWAYS_INLINE
+#endif
+
+/* When compiling via GCC without optimization, and without -DINLINING=0,
+   always inline functions marked 'inline'.  This typically improves CPU
+   performance when debugging.  With optimization, trust the compiler
+   to inline as appropriate.  */
+#ifndef INLINING
+# define INLINING 1
+#endif
+#if (defined __NO_INLINE__ \
+     && ! defined __OPTIMIZE__ && ! defined __OPTIMIZE_SIZE__ \
+     && INLINING && !defined inline)
+# define inline ALWAYS_INLINE
+#endif
+
 #if __GNUC__ >= 3  /* On GCC 3.0 we might get a warning.  */
 #define NO_INLINE __attribute__((noinline))
 #else






  reply	other threads:[~2012-07-16 22:46 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-13 15:07 bug#11935: XINT etc. should be functions Paul Eggert
2012-07-14  2:20 ` bug#11935: [TRUNCATED MESSAGE 2746 87596] " Richard Stallman
2012-07-15 13:41   ` Paul Eggert
2012-07-15 22:06     ` Stefan Monnier
2012-07-16 14:54       ` Paul Eggert
2012-07-16 16:12         ` Eli Zaretskii
2012-07-16 21:40           ` Paul Eggert
2012-07-16 18:19     ` Richard Stallman
2012-07-16 22:46       ` Paul Eggert [this message]
2012-07-17  3:04         ` Eli Zaretskii
2012-07-17  3:54           ` Paul Eggert
2012-07-24  2:20           ` Paul Eggert
2012-07-24  9:07             ` Stefan Monnier
2012-07-24 13:45               ` Paul Eggert
2012-07-24 21:57                 ` Stefan Monnier
2012-07-25  4:07                   ` Paul Eggert
2012-07-15 14:41 ` Chong Yidong
2012-07-15 16:40   ` Paul Eggert
2012-07-16  2:22     ` Chong Yidong
2012-07-16 14:54       ` Paul Eggert
2013-06-06 15:56 ` Paul Eggert
2013-06-06 16:36   ` Andreas Schwab
2013-06-13 16:30     ` Paul Eggert
2013-06-06 16:42   ` Stefan Monnier
2013-06-09  0:52     ` Paul Eggert
2013-06-09  3:04       ` Stefan Monnier
2013-06-09  4:37         ` James Cloos
2013-06-09  6:59           ` Jan Djärv
2013-06-09  7:13         ` Paul Eggert
2013-06-09 15:57           ` Stefan Monnier
2013-06-13 14:45             ` Paul Eggert
2013-06-13 20:08               ` Stefan Monnier
2013-06-15  6:43                 ` Paul Eggert
2013-06-15 14:22                   ` Stefan Monnier
2013-06-17  6:05                     ` Paul Eggert
2013-06-09  6:56       ` Jan Djärv
2013-06-09  7:23         ` Paul Eggert
2013-06-09  9:18           ` Jan Djärv
2013-06-09 14:25             ` Juanma Barranquero
2013-06-09 16:05               ` Jan Djärv
2013-06-10 13:40 ` Barry OReilly

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=500499C7.20902@cs.ucla.edu \
    --to=eggert@cs.ucla.edu \
    --cc=11935@debbugs.gnu.org \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.