You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 line
12KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>Adapteva Epiphany Options (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="Adapteva Epiphany Options (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="Adapteva Epiphany Options (Using the GNU Compiler Collection (GCC))">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
  30. <link href="AMD-GCN-Options.html#AMD-GCN-Options" rel="next" title="AMD GCN Options">
  31. <link href="AArch64-Options.html#AArch64-Options" rel="prev" title="AArch64 Options">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="Adapteva-Epiphany-Options"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="AMD-GCN-Options.html#AMD-GCN-Options" accesskey="n" rel="next">AMD GCN Options</a>, Previous: <a href="AArch64-Options.html#AArch64-Options" accesskey="p" rel="prev">AArch64 Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  65. </div>
  66. <hr>
  67. <a name="Adapteva-Epiphany-Options-1"></a>
  68. <h4 class="subsection">3.19.2 Adapteva Epiphany Options</h4>
  69. <p>These &lsquo;<samp>-m</samp>&rsquo; options are defined for Adapteva Epiphany:
  70. </p>
  71. <dl compact="compact">
  72. <dt><code>-mhalf-reg-file</code></dt>
  73. <dd><a name="index-mhalf_002dreg_002dfile"></a>
  74. <p>Don&rsquo;t allocate any register in the range <code>r32</code>&hellip;<code>r63</code>.
  75. That allows code to run on hardware variants that lack these registers.
  76. </p>
  77. </dd>
  78. <dt><code>-mprefer-short-insn-regs</code></dt>
  79. <dd><a name="index-mprefer_002dshort_002dinsn_002dregs"></a>
  80. <p>Preferentially allocate registers that allow short instruction generation.
  81. This can result in increased instruction count, so this may either reduce or
  82. increase overall code size.
  83. </p>
  84. </dd>
  85. <dt><code>-mbranch-cost=<var>num</var></code></dt>
  86. <dd><a name="index-mbranch_002dcost"></a>
  87. <p>Set the cost of branches to roughly <var>num</var> &ldquo;simple&rdquo; instructions.
  88. This cost is only a heuristic and is not guaranteed to produce
  89. consistent results across releases.
  90. </p>
  91. </dd>
  92. <dt><code>-mcmove</code></dt>
  93. <dd><a name="index-mcmove"></a>
  94. <p>Enable the generation of conditional moves.
  95. </p>
  96. </dd>
  97. <dt><code>-mnops=<var>num</var></code></dt>
  98. <dd><a name="index-mnops"></a>
  99. <p>Emit <var>num</var> NOPs before every other generated instruction.
  100. </p>
  101. </dd>
  102. <dt><code>-mno-soft-cmpsf</code></dt>
  103. <dd><a name="index-mno_002dsoft_002dcmpsf"></a>
  104. <a name="index-msoft_002dcmpsf"></a>
  105. <p>For single-precision floating-point comparisons, emit an <code>fsub</code> instruction
  106. and test the flags. This is faster than a software comparison, but can
  107. get incorrect results in the presence of NaNs, or when two different small
  108. numbers are compared such that their difference is calculated as zero.
  109. The default is <samp>-msoft-cmpsf</samp>, which uses slower, but IEEE-compliant,
  110. software comparisons.
  111. </p>
  112. </dd>
  113. <dt><code>-mstack-offset=<var>num</var></code></dt>
  114. <dd><a name="index-mstack_002doffset"></a>
  115. <p>Set the offset between the top of the stack and the stack pointer.
  116. E.g., a value of 8 means that the eight bytes in the range <code>sp+0&hellip;sp+7</code>
  117. can be used by leaf functions without stack allocation.
  118. Values other than &lsquo;<samp>8</samp>&rsquo; or &lsquo;<samp>16</samp>&rsquo; are untested and unlikely to work.
  119. Note also that this option changes the ABI; compiling a program with a
  120. different stack offset than the libraries have been compiled with
  121. generally does not work.
  122. This option can be useful if you want to evaluate if a different stack
  123. offset would give you better code, but to actually use a different stack
  124. offset to build working programs, it is recommended to configure the
  125. toolchain with the appropriate <samp>--with-stack-offset=<var>num</var></samp> option.
  126. </p>
  127. </dd>
  128. <dt><code>-mno-round-nearest</code></dt>
  129. <dd><a name="index-mno_002dround_002dnearest"></a>
  130. <a name="index-mround_002dnearest"></a>
  131. <p>Make the scheduler assume that the rounding mode has been set to
  132. truncating. The default is <samp>-mround-nearest</samp>.
  133. </p>
  134. </dd>
  135. <dt><code>-mlong-calls</code></dt>
  136. <dd><a name="index-mlong_002dcalls"></a>
  137. <p>If not otherwise specified by an attribute, assume all calls might be beyond
  138. the offset range of the <code>b</code> / <code>bl</code> instructions, and therefore load the
  139. function address into a register before performing a (otherwise direct) call.
  140. This is the default.
  141. </p>
  142. </dd>
  143. <dt><code>-mshort-calls</code></dt>
  144. <dd><a name="index-short_002dcalls"></a>
  145. <p>If not otherwise specified by an attribute, assume all direct calls are
  146. in the range of the <code>b</code> / <code>bl</code> instructions, so use these instructions
  147. for direct calls. The default is <samp>-mlong-calls</samp>.
  148. </p>
  149. </dd>
  150. <dt><code>-msmall16</code></dt>
  151. <dd><a name="index-msmall16"></a>
  152. <p>Assume addresses can be loaded as 16-bit unsigned values. This does not
  153. apply to function addresses for which <samp>-mlong-calls</samp> semantics
  154. are in effect.
  155. </p>
  156. </dd>
  157. <dt><code>-mfp-mode=<var>mode</var></code></dt>
  158. <dd><a name="index-mfp_002dmode"></a>
  159. <p>Set the prevailing mode of the floating-point unit.
  160. This determines the floating-point mode that is provided and expected
  161. at function call and return time. Making this mode match the mode you
  162. predominantly need at function start can make your programs smaller and
  163. faster by avoiding unnecessary mode switches.
  164. </p>
  165. <p><var>mode</var> can be set to one the following values:
  166. </p>
  167. <dl compact="compact">
  168. <dt>&lsquo;<samp>caller</samp>&rsquo;</dt>
  169. <dd><p>Any mode at function entry is valid, and retained or restored when
  170. the function returns, and when it calls other functions.
  171. This mode is useful for compiling libraries or other compilation units
  172. you might want to incorporate into different programs with different
  173. prevailing FPU modes, and the convenience of being able to use a single
  174. object file outweighs the size and speed overhead for any extra
  175. mode switching that might be needed, compared with what would be needed
  176. with a more specific choice of prevailing FPU mode.
  177. </p>
  178. </dd>
  179. <dt>&lsquo;<samp>truncate</samp>&rsquo;</dt>
  180. <dd><p>This is the mode used for floating-point calculations with
  181. truncating (i.e. round towards zero) rounding mode. That includes
  182. conversion from floating point to integer.
  183. </p>
  184. </dd>
  185. <dt>&lsquo;<samp>round-nearest</samp>&rsquo;</dt>
  186. <dd><p>This is the mode used for floating-point calculations with
  187. round-to-nearest-or-even rounding mode.
  188. </p>
  189. </dd>
  190. <dt>&lsquo;<samp>int</samp>&rsquo;</dt>
  191. <dd><p>This is the mode used to perform integer calculations in the FPU, e.g.
  192. integer multiply, or integer multiply-and-accumulate.
  193. </p></dd>
  194. </dl>
  195. <p>The default is <samp>-mfp-mode=caller</samp>
  196. </p>
  197. </dd>
  198. <dt><code>-mno-split-lohi</code></dt>
  199. <dt><code>-mno-postinc</code></dt>
  200. <dt><code>-mno-postmodify</code></dt>
  201. <dd><a name="index-mno_002dsplit_002dlohi"></a>
  202. <a name="index-msplit_002dlohi"></a>
  203. <a name="index-mno_002dpostinc"></a>
  204. <a name="index-mpostinc"></a>
  205. <a name="index-mno_002dpostmodify"></a>
  206. <a name="index-mpostmodify"></a>
  207. <p>Code generation tweaks that disable, respectively, splitting of 32-bit
  208. loads, generation of post-increment addresses, and generation of
  209. post-modify addresses. The defaults are <samp>msplit-lohi</samp>,
  210. <samp>-mpost-inc</samp>, and <samp>-mpost-modify</samp>.
  211. </p>
  212. </dd>
  213. <dt><code>-mnovect-double</code></dt>
  214. <dd><a name="index-mno_002dvect_002ddouble"></a>
  215. <a name="index-mvect_002ddouble"></a>
  216. <p>Change the preferred SIMD mode to SImode. The default is
  217. <samp>-mvect-double</samp>, which uses DImode as preferred SIMD mode.
  218. </p>
  219. </dd>
  220. <dt><code>-max-vect-align=<var>num</var></code></dt>
  221. <dd><a name="index-max_002dvect_002dalign"></a>
  222. <p>The maximum alignment for SIMD vector mode types.
  223. <var>num</var> may be 4 or 8. The default is 8.
  224. Note that this is an ABI change, even though many library function
  225. interfaces are unaffected if they don&rsquo;t use SIMD vector modes
  226. in places that affect size and/or alignment of relevant types.
  227. </p>
  228. </dd>
  229. <dt><code>-msplit-vecmove-early</code></dt>
  230. <dd><a name="index-msplit_002dvecmove_002dearly"></a>
  231. <p>Split vector moves into single word moves before reload. In theory this
  232. can give better register allocation, but so far the reverse seems to be
  233. generally the case.
  234. </p>
  235. </dd>
  236. <dt><code>-m1reg-<var>reg</var></code></dt>
  237. <dd><a name="index-m1reg_002d"></a>
  238. <p>Specify a register to hold the constant -1, which makes loading small negative
  239. constants and certain bitmasks faster.
  240. Allowable values for <var>reg</var> are &lsquo;<samp>r43</samp>&rsquo; and &lsquo;<samp>r63</samp>&rsquo;,
  241. which specify use of that register as a fixed register,
  242. and &lsquo;<samp>none</samp>&rsquo;, which means that no register is used for this
  243. purpose. The default is <samp>-m1reg-none</samp>.
  244. </p>
  245. </dd>
  246. </dl>
  247. <hr>
  248. <div class="header">
  249. <p>
  250. Next: <a href="AMD-GCN-Options.html#AMD-GCN-Options" accesskey="n" rel="next">AMD GCN Options</a>, Previous: <a href="AArch64-Options.html#AArch64-Options" accesskey="p" rel="prev">AArch64 Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  251. </div>
  252. </body>
  253. </html>