Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   gcc    ( 1 )

компилятор C и C ++ проекта GNU (GNU project C and C++ compiler)

  Name  |  Synopsis  |  Description  |  Options  |    Options detail    |  Environment  |  Bugs  |  Note  |  See also  |

Параметры подробно (Options detail)


  Controlling the Kind of Output  |  Compiling C++ Programs  |  Controlling C Dialect  |  Controlling C++ Dialect  |  Controlling Objective-C and Objective-C++ Dialects  |  Control Diagnostic Messages Formatting  |  Request or Suppress Warnings 1  |  Request or Suppress Warnings 2  |  Request or Suppress Warnings 3  |  Debugging Your Program  |  Control Optimization 1  |  Control Optimization 2  |  Control Optimization 3  |  Control Optimization 4  |  Program Instrumentation  |  Controlling the Preprocessor  |  Linking  |  Directory Search  |  Code Generation Conventions  |  GCC Developer  |  Machine-Dependent  |  AArch64  |  Adapteva Epiphany  |  AMD GCN  |  ARC  |  ARM  |  AVR  |  Blackfin  |  C6X  |  CRIS  |  CR16  |  C-SKY  |  Darwin  |  DEC Alpha  |  FR30  |  FT32  |  FRV  |  GNU/Linux  |  H8/300  |  HPPA  |  IA-64  |  LM32  |  M32C  |  M32R/D  |  M680x0  |  MCore  |  MeP  |  MicroBlaze  |  MIPS  |  MMIX  |  MN10300  |  Moxie  |  MSP430  |  NDS32  |  Nios II  |  Nvidia PTX  |  OpenRISC  |  PDP-11  |  picoChip  |  RISC-V  |  RL78  |  IBM RS/6000 and PowerPC  |  RX  |  S/390 and zSeries  |  Score  |  SH  |  Solaris 2  |  SPARC  |    SPU    |  System V  |  TILE-Gx  |  TILEPro  |  V850  |  VAX  |  Visium  |  VMS  |  VxWorks  |  x86 1  |  x86 2  |  x86 Windows  |  Xstormy16  |  Xtensa  |

SPU

These -m options are supported on the SPU:

       -mwarn-reloc
       -merror-reloc
           The loader for SPU does not handle dynamic relocations.  By
           default, GCC gives an error when it generates code that
           requires a dynamic relocation.  -mno-error-reloc disables the
           error, -mwarn-reloc generates a warning instead.

       -msafe-dma
       -munsafe-dma
           Instructions that initiate or test completion of DMA must not
           be reordered with respect to loads and stores of the memory
           that is being accessed.  With -munsafe-dma you must use the
           "volatile" keyword to protect memory accesses, but that can
           lead to inefficient code in places where the memory is known
           to not change.  Rather than mark the memory as volatile, you
           can use -msafe-dma to tell the compiler to treat the DMA
           instructions as potentially affecting all memory.

       -mbranch-hints
           By default, GCC generates a branch hint instruction to avoid
           pipeline stalls for always-taken or probably-taken branches.
           A hint is not generated closer than 8 instructions away from
           its branch.  There is little reason to disable them, except
           for debugging purposes, or to make an object a little bit
           smaller.

       -msmall-mem
       -mlarge-mem
           By default, GCC generates code assuming that addresses are
           never larger than 18 bits.  With -mlarge-mem code is
           generated that assumes a full 32-bit address.

       -mstdmain
           By default, GCC links against startup code that assumes the
           SPU-style main function interface (which has an
           unconventional parameter list).  With -mstdmain, GCC links
           your program against startup code that assumes a C99-style
           interface to "main", including a local copy of "argv"
           strings.

       -mfixed-range=register-range
           Generate code treating the given register range as fixed
           registers.  A fixed register is one that the register
           allocator cannot use.  This is useful when compiling kernel
           code.  A register range is specified as two registers
           separated by a dash.  Multiple register ranges can be
           specified separated by a comma.

       -mea32
       -mea64
           Compile code assuming that pointers to the PPU address space
           accessed via the "__ea" named address space qualifier are
           either 32 or 64 bits wide.  The default is 32 bits.  As this
           is an ABI-changing option, all object code in an executable
           must be compiled with the same setting.

       -maddress-space-conversion
       -mno-address-space-conversion
           Allow/disallow treating the "__ea" address space as superset
           of the generic address space.  This enables explicit type
           casts between "__ea" and generic pointer as well as implicit
           conversions of generic pointers to "__ea" pointers.  The
           default is to allow address space pointer conversions.

       -mcache-size=cache-size
           This option controls the version of libgcc that the compiler
           links to an executable and selects a software-managed cache
           for accessing variables in the "__ea" address space with a
           particular cache size.  Possible options for cache-size are
           8, 16, 32, 64 and 128.
           The default cache size is 64KB.

       -matomic-updates
       -mno-atomic-updates
           This option controls the version of libgcc that the compiler
           links to an executable and selects whether atomic updates to
           the software-managed cache of PPU-side variables are used.
           If you use atomic updates, changes to a PPU variable from SPU
           code using the "__ea" named address space qualifier do not
           interfere with changes to other PPU variables residing in the
           same cache line from PPU code.  If you do not use atomic
           updates, such interference may occur; however, writing back
           cache lines is more efficient.  The default behavior is to
           use atomic updates.

       -mdual-nops
       -mdual-nops=n
           By default, GCC inserts NOPs to increase dual issue when it
           expects it to increase performance.  n can be a value from 0
           to 10.  A smaller n inserts fewer NOPs.  10 is the default, 0
           is the same as -mno-dual-nops.  Disabled with -Os.

       -mhint-max-nops=n
           Maximum number of NOPs to insert for a branch hint.  A branch
           hint must be at least 8 instructions away from the branch it
           is affecting.  GCC inserts up to n NOPs to enforce this,
           otherwise it does not generate the branch hint.

       -mhint-max-distance=n
           The encoding of the branch hint instruction limits the hint
           to be within 256 instructions of the branch it is affecting.
           By default, GCC makes sure it is within 125.

       -msafe-hints
           Work around a hardware bug that causes the SPU to stall
           indefinitely.  By default, GCC inserts the "hbrp" instruction
           to make sure this stall won't happen.