gcc: Hints implementation

1 
1 4.8 Hints
1 =========
1 
1    * 'The extent to which suggestions made by using the 'register'
1      storage-class specifier are effective (C90 6.5.1, C99 and C11
1      6.7.1).'
1 
1      The 'register' specifier affects code generation only in these
1      ways:
1 
1         * When used as part of the register variable extension, see
1           ⇒Explicit Register Variables.
1 
1         * When '-O0' is in use, the compiler allocates distinct stack
1           memory for all variables that do not have the 'register'
1           storage-class specifier; if 'register' is specified, the
1           variable may have a shorter lifespan than the code would
1           indicate and may never be placed in memory.
1 
1         * On some rare x86 targets, 'setjmp' doesn't save the registers
1           in all circumstances.  In those cases, GCC doesn't allocate
1           any variables in registers unless they are marked 'register'.
1 
1    * 'The extent to which suggestions made by using the inline function
1      specifier are effective (C99 and C11 6.7.4).'
1 
1      GCC will not inline any functions if the '-fno-inline' option is
1      used or if '-O0' is used.  Otherwise, GCC may still be unable to
1      inline a function for many reasons; the '-Winline' option may be
1      used to determine if a function has not been inlined and why not.
1