<html lang="en">
<head>
<title>Hints implementation - Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="C-Implementation.html#C-Implementation" title="C Implementation">
<link rel="prev" href="Arrays-and-pointers-implementation.html#Arrays-and-pointers-implementation" title="Arrays and pointers implementation">
<link rel="next" href="Structures-unions-enumerations-and-bit_002dfields-implementation.html#Structures-unions-enumerations-and-bit_002dfields-implementation" title="Structures unions enumerations and bit-fields implementation">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
``GNU Free Documentation License''.

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Hints-implementation"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Structures-unions-enumerations-and-bit_002dfields-implementation.html#Structures-unions-enumerations-and-bit_002dfields-implementation">Structures unions enumerations and bit-fields implementation</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Arrays-and-pointers-implementation.html#Arrays-and-pointers-implementation">Arrays and pointers implementation</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="C-Implementation.html#C-Implementation">C Implementation</a>
<hr>
</div>

<h3 class="section">4.8 Hints</h3>

     <ul>
<li><cite>The extent to which suggestions made by using the </cite><code>register</code><cite>
storage-class specifier are effective (C90 6.5.1, C99 6.7.1).</cite>

     <p>The <code>register</code> specifier affects code generation only in these ways:

          <ul>
<li>When used as part of the register variable extension, see
<a href="Explicit-Reg-Vars.html#Explicit-Reg-Vars">Explicit Reg Vars</a>.

          <li>When <samp><span class="option">-O0</span></samp> is in use, the compiler allocates distinct stack
memory for all variables that do not have the <code>register</code>
storage-class specifier; if <code>register</code> is specified, the variable
may have a shorter lifespan than the code would indicate and may never
be placed in memory.

          <li>On some rare x86 targets, <code>setjmp</code> doesn't save the registers in
all circumstances.  In those cases, GCC doesn't allocate any variables
in registers unless they are marked <code>register</code>.

     </ul>

     <li><cite>The extent to which suggestions made by using the inline function
specifier are effective (C99 6.7.4).</cite>

     <p>GCC will not inline any functions if the <samp><span class="option">-fno-inline</span></samp> option is
used or if <samp><span class="option">-O0</span></samp> is used.  Otherwise, GCC may still be unable to
inline a function for many reasons; the <samp><span class="option">-Winline</span></samp> option may be
used to determine if a function has not been inlined and why not.

</ul>

 </body></html>

