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.

408 lines
17KB

  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>IA-64 Options (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="IA-64 Options (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="IA-64 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="LM32-Options.html#LM32-Options" rel="next" title="LM32 Options">
  31. <link href="HPPA-Options.html#HPPA-Options" rel="prev" title="HPPA 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="IA_002d64-Options"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="LM32-Options.html#LM32-Options" accesskey="n" rel="next">LM32 Options</a>, Previous: <a href="HPPA-Options.html#HPPA-Options" accesskey="p" rel="prev">HPPA 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="IA_002d64-Options-1"></a>
  68. <h4 class="subsection">3.19.21 IA-64 Options</h4>
  69. <a name="index-IA_002d64-Options"></a>
  70. <p>These are the &lsquo;<samp>-m</samp>&rsquo; options defined for the Intel IA-64 architecture.
  71. </p>
  72. <dl compact="compact">
  73. <dt><code>-mbig-endian</code></dt>
  74. <dd><a name="index-mbig_002dendian-6"></a>
  75. <p>Generate code for a big-endian target. This is the default for HP-UX.
  76. </p>
  77. </dd>
  78. <dt><code>-mlittle-endian</code></dt>
  79. <dd><a name="index-mlittle_002dendian-6"></a>
  80. <p>Generate code for a little-endian target. This is the default for AIX5
  81. and GNU/Linux.
  82. </p>
  83. </dd>
  84. <dt><code>-mgnu-as</code></dt>
  85. <dt><code>-mno-gnu-as</code></dt>
  86. <dd><a name="index-mgnu_002das"></a>
  87. <a name="index-mno_002dgnu_002das"></a>
  88. <p>Generate (or don&rsquo;t) code for the GNU assembler. This is the default.
  89. </p>
  90. </dd>
  91. <dt><code>-mgnu-ld</code></dt>
  92. <dt><code>-mno-gnu-ld</code></dt>
  93. <dd><a name="index-mgnu_002dld-1"></a>
  94. <a name="index-mno_002dgnu_002dld"></a>
  95. <p>Generate (or don&rsquo;t) code for the GNU linker. This is the default.
  96. </p>
  97. </dd>
  98. <dt><code>-mno-pic</code></dt>
  99. <dd><a name="index-mno_002dpic"></a>
  100. <p>Generate code that does not use a global pointer register. The result
  101. is not position independent code, and violates the IA-64 ABI.
  102. </p>
  103. </dd>
  104. <dt><code>-mvolatile-asm-stop</code></dt>
  105. <dt><code>-mno-volatile-asm-stop</code></dt>
  106. <dd><a name="index-mvolatile_002dasm_002dstop"></a>
  107. <a name="index-mno_002dvolatile_002dasm_002dstop"></a>
  108. <p>Generate (or don&rsquo;t) a stop bit immediately before and after volatile asm
  109. statements.
  110. </p>
  111. </dd>
  112. <dt><code>-mregister-names</code></dt>
  113. <dt><code>-mno-register-names</code></dt>
  114. <dd><a name="index-mregister_002dnames"></a>
  115. <a name="index-mno_002dregister_002dnames"></a>
  116. <p>Generate (or don&rsquo;t) &lsquo;<samp>in</samp>&rsquo;, &lsquo;<samp>loc</samp>&rsquo;, and &lsquo;<samp>out</samp>&rsquo; register names for
  117. the stacked registers. This may make assembler output more readable.
  118. </p>
  119. </dd>
  120. <dt><code>-mno-sdata</code></dt>
  121. <dt><code>-msdata</code></dt>
  122. <dd><a name="index-mno_002dsdata-1"></a>
  123. <a name="index-msdata-1"></a>
  124. <p>Disable (or enable) optimizations that use the small data section. This may
  125. be useful for working around optimizer bugs.
  126. </p>
  127. </dd>
  128. <dt><code>-mconstant-gp</code></dt>
  129. <dd><a name="index-mconstant_002dgp"></a>
  130. <p>Generate code that uses a single constant global pointer value. This is
  131. useful when compiling kernel code.
  132. </p>
  133. </dd>
  134. <dt><code>-mauto-pic</code></dt>
  135. <dd><a name="index-mauto_002dpic"></a>
  136. <p>Generate code that is self-relocatable. This implies <samp>-mconstant-gp</samp>.
  137. This is useful when compiling firmware code.
  138. </p>
  139. </dd>
  140. <dt><code>-minline-float-divide-min-latency</code></dt>
  141. <dd><a name="index-minline_002dfloat_002ddivide_002dmin_002dlatency"></a>
  142. <p>Generate code for inline divides of floating-point values
  143. using the minimum latency algorithm.
  144. </p>
  145. </dd>
  146. <dt><code>-minline-float-divide-max-throughput</code></dt>
  147. <dd><a name="index-minline_002dfloat_002ddivide_002dmax_002dthroughput"></a>
  148. <p>Generate code for inline divides of floating-point values
  149. using the maximum throughput algorithm.
  150. </p>
  151. </dd>
  152. <dt><code>-mno-inline-float-divide</code></dt>
  153. <dd><a name="index-mno_002dinline_002dfloat_002ddivide"></a>
  154. <p>Do not generate inline code for divides of floating-point values.
  155. </p>
  156. </dd>
  157. <dt><code>-minline-int-divide-min-latency</code></dt>
  158. <dd><a name="index-minline_002dint_002ddivide_002dmin_002dlatency"></a>
  159. <p>Generate code for inline divides of integer values
  160. using the minimum latency algorithm.
  161. </p>
  162. </dd>
  163. <dt><code>-minline-int-divide-max-throughput</code></dt>
  164. <dd><a name="index-minline_002dint_002ddivide_002dmax_002dthroughput"></a>
  165. <p>Generate code for inline divides of integer values
  166. using the maximum throughput algorithm.
  167. </p>
  168. </dd>
  169. <dt><code>-mno-inline-int-divide</code></dt>
  170. <dd><a name="index-mno_002dinline_002dint_002ddivide"></a>
  171. <a name="index-minline_002dint_002ddivide"></a>
  172. <p>Do not generate inline code for divides of integer values.
  173. </p>
  174. </dd>
  175. <dt><code>-minline-sqrt-min-latency</code></dt>
  176. <dd><a name="index-minline_002dsqrt_002dmin_002dlatency"></a>
  177. <p>Generate code for inline square roots
  178. using the minimum latency algorithm.
  179. </p>
  180. </dd>
  181. <dt><code>-minline-sqrt-max-throughput</code></dt>
  182. <dd><a name="index-minline_002dsqrt_002dmax_002dthroughput"></a>
  183. <p>Generate code for inline square roots
  184. using the maximum throughput algorithm.
  185. </p>
  186. </dd>
  187. <dt><code>-mno-inline-sqrt</code></dt>
  188. <dd><a name="index-mno_002dinline_002dsqrt"></a>
  189. <p>Do not generate inline code for <code>sqrt</code>.
  190. </p>
  191. </dd>
  192. <dt><code>-mfused-madd</code></dt>
  193. <dt><code>-mno-fused-madd</code></dt>
  194. <dd><a name="index-mfused_002dmadd"></a>
  195. <a name="index-mno_002dfused_002dmadd"></a>
  196. <p>Do (don&rsquo;t) generate code that uses the fused multiply/add or multiply/subtract
  197. instructions. The default is to use these instructions.
  198. </p>
  199. </dd>
  200. <dt><code>-mno-dwarf2-asm</code></dt>
  201. <dt><code>-mdwarf2-asm</code></dt>
  202. <dd><a name="index-mno_002ddwarf2_002dasm"></a>
  203. <a name="index-mdwarf2_002dasm"></a>
  204. <p>Don&rsquo;t (or do) generate assembler code for the DWARF line number debugging
  205. info. This may be useful when not using the GNU assembler.
  206. </p>
  207. </dd>
  208. <dt><code>-mearly-stop-bits</code></dt>
  209. <dt><code>-mno-early-stop-bits</code></dt>
  210. <dd><a name="index-mearly_002dstop_002dbits"></a>
  211. <a name="index-mno_002dearly_002dstop_002dbits"></a>
  212. <p>Allow stop bits to be placed earlier than immediately preceding the
  213. instruction that triggered the stop bit. This can improve instruction
  214. scheduling, but does not always do so.
  215. </p>
  216. </dd>
  217. <dt><code>-mfixed-range=<var>register-range</var></code></dt>
  218. <dd><a name="index-mfixed_002drange-1"></a>
  219. <p>Generate code treating the given register range as fixed registers.
  220. A fixed register is one that the register allocator cannot use. This is
  221. useful when compiling kernel code. A register range is specified as
  222. two registers separated by a dash. Multiple register ranges can be
  223. specified separated by a comma.
  224. </p>
  225. </dd>
  226. <dt><code>-mtls-size=<var>tls-size</var></code></dt>
  227. <dd><a name="index-mtls_002dsize-1"></a>
  228. <p>Specify bit size of immediate TLS offsets. Valid values are 14, 22, and
  229. 64.
  230. </p>
  231. </dd>
  232. <dt><code>-mtune=<var>cpu-type</var></code></dt>
  233. <dd><a name="index-mtune-7"></a>
  234. <p>Tune the instruction scheduling for a particular CPU, Valid values are
  235. &lsquo;<samp>itanium</samp>&rsquo;, &lsquo;<samp>itanium1</samp>&rsquo;, &lsquo;<samp>merced</samp>&rsquo;, &lsquo;<samp>itanium2</samp>&rsquo;,
  236. and &lsquo;<samp>mckinley</samp>&rsquo;.
  237. </p>
  238. </dd>
  239. <dt><code>-milp32</code></dt>
  240. <dt><code>-mlp64</code></dt>
  241. <dd><a name="index-milp32"></a>
  242. <a name="index-mlp64"></a>
  243. <p>Generate code for a 32-bit or 64-bit environment.
  244. The 32-bit environment sets int, long and pointer to 32 bits.
  245. The 64-bit environment sets int to 32 bits and long and pointer
  246. to 64 bits. These are HP-UX specific flags.
  247. </p>
  248. </dd>
  249. <dt><code>-mno-sched-br-data-spec</code></dt>
  250. <dt><code>-msched-br-data-spec</code></dt>
  251. <dd><a name="index-mno_002dsched_002dbr_002ddata_002dspec"></a>
  252. <a name="index-msched_002dbr_002ddata_002dspec"></a>
  253. <p>(Dis/En)able data speculative scheduling before reload.
  254. This results in generation of <code>ld.a</code> instructions and
  255. the corresponding check instructions (<code>ld.c</code> / <code>chk.a</code>).
  256. The default setting is disabled.
  257. </p>
  258. </dd>
  259. <dt><code>-msched-ar-data-spec</code></dt>
  260. <dt><code>-mno-sched-ar-data-spec</code></dt>
  261. <dd><a name="index-msched_002dar_002ddata_002dspec"></a>
  262. <a name="index-mno_002dsched_002dar_002ddata_002dspec"></a>
  263. <p>(En/Dis)able data speculative scheduling after reload.
  264. This results in generation of <code>ld.a</code> instructions and
  265. the corresponding check instructions (<code>ld.c</code> / <code>chk.a</code>).
  266. The default setting is enabled.
  267. </p>
  268. </dd>
  269. <dt><code>-mno-sched-control-spec</code></dt>
  270. <dt><code>-msched-control-spec</code></dt>
  271. <dd><a name="index-mno_002dsched_002dcontrol_002dspec"></a>
  272. <a name="index-msched_002dcontrol_002dspec"></a>
  273. <p>(Dis/En)able control speculative scheduling. This feature is
  274. available only during region scheduling (i.e. before reload).
  275. This results in generation of the <code>ld.s</code> instructions and
  276. the corresponding check instructions <code>chk.s</code>.
  277. The default setting is disabled.
  278. </p>
  279. </dd>
  280. <dt><code>-msched-br-in-data-spec</code></dt>
  281. <dt><code>-mno-sched-br-in-data-spec</code></dt>
  282. <dd><a name="index-msched_002dbr_002din_002ddata_002dspec"></a>
  283. <a name="index-mno_002dsched_002dbr_002din_002ddata_002dspec"></a>
  284. <p>(En/Dis)able speculative scheduling of the instructions that
  285. are dependent on the data speculative loads before reload.
  286. This is effective only with <samp>-msched-br-data-spec</samp> enabled.
  287. The default setting is enabled.
  288. </p>
  289. </dd>
  290. <dt><code>-msched-ar-in-data-spec</code></dt>
  291. <dt><code>-mno-sched-ar-in-data-spec</code></dt>
  292. <dd><a name="index-msched_002dar_002din_002ddata_002dspec"></a>
  293. <a name="index-mno_002dsched_002dar_002din_002ddata_002dspec"></a>
  294. <p>(En/Dis)able speculative scheduling of the instructions that
  295. are dependent on the data speculative loads after reload.
  296. This is effective only with <samp>-msched-ar-data-spec</samp> enabled.
  297. The default setting is enabled.
  298. </p>
  299. </dd>
  300. <dt><code>-msched-in-control-spec</code></dt>
  301. <dt><code>-mno-sched-in-control-spec</code></dt>
  302. <dd><a name="index-msched_002din_002dcontrol_002dspec"></a>
  303. <a name="index-mno_002dsched_002din_002dcontrol_002dspec"></a>
  304. <p>(En/Dis)able speculative scheduling of the instructions that
  305. are dependent on the control speculative loads.
  306. This is effective only with <samp>-msched-control-spec</samp> enabled.
  307. The default setting is enabled.
  308. </p>
  309. </dd>
  310. <dt><code>-mno-sched-prefer-non-data-spec-insns</code></dt>
  311. <dt><code>-msched-prefer-non-data-spec-insns</code></dt>
  312. <dd><a name="index-mno_002dsched_002dprefer_002dnon_002ddata_002dspec_002dinsns"></a>
  313. <a name="index-msched_002dprefer_002dnon_002ddata_002dspec_002dinsns"></a>
  314. <p>If enabled, data-speculative instructions are chosen for schedule
  315. only if there are no other choices at the moment. This makes
  316. the use of the data speculation much more conservative.
  317. The default setting is disabled.
  318. </p>
  319. </dd>
  320. <dt><code>-mno-sched-prefer-non-control-spec-insns</code></dt>
  321. <dt><code>-msched-prefer-non-control-spec-insns</code></dt>
  322. <dd><a name="index-mno_002dsched_002dprefer_002dnon_002dcontrol_002dspec_002dinsns"></a>
  323. <a name="index-msched_002dprefer_002dnon_002dcontrol_002dspec_002dinsns"></a>
  324. <p>If enabled, control-speculative instructions are chosen for schedule
  325. only if there are no other choices at the moment. This makes
  326. the use of the control speculation much more conservative.
  327. The default setting is disabled.
  328. </p>
  329. </dd>
  330. <dt><code>-mno-sched-count-spec-in-critical-path</code></dt>
  331. <dt><code>-msched-count-spec-in-critical-path</code></dt>
  332. <dd><a name="index-mno_002dsched_002dcount_002dspec_002din_002dcritical_002dpath"></a>
  333. <a name="index-msched_002dcount_002dspec_002din_002dcritical_002dpath"></a>
  334. <p>If enabled, speculative dependencies are considered during
  335. computation of the instructions priorities. This makes the use of the
  336. speculation a bit more conservative.
  337. The default setting is disabled.
  338. </p>
  339. </dd>
  340. <dt><code>-msched-spec-ldc</code></dt>
  341. <dd><a name="index-msched_002dspec_002dldc"></a>
  342. <p>Use a simple data speculation check. This option is on by default.
  343. </p>
  344. </dd>
  345. <dt><code>-msched-control-spec-ldc</code></dt>
  346. <dd><a name="index-msched_002dspec_002dldc-1"></a>
  347. <p>Use a simple check for control speculation. This option is on by default.
  348. </p>
  349. </dd>
  350. <dt><code>-msched-stop-bits-after-every-cycle</code></dt>
  351. <dd><a name="index-msched_002dstop_002dbits_002dafter_002devery_002dcycle"></a>
  352. <p>Place a stop bit after every cycle when scheduling. This option is on
  353. by default.
  354. </p>
  355. </dd>
  356. <dt><code>-msched-fp-mem-deps-zero-cost</code></dt>
  357. <dd><a name="index-msched_002dfp_002dmem_002ddeps_002dzero_002dcost"></a>
  358. <p>Assume that floating-point stores and loads are not likely to cause a conflict
  359. when placed into the same instruction group. This option is disabled by
  360. default.
  361. </p>
  362. </dd>
  363. <dt><code>-msel-sched-dont-check-control-spec</code></dt>
  364. <dd><a name="index-msel_002dsched_002ddont_002dcheck_002dcontrol_002dspec"></a>
  365. <p>Generate checks for control speculation in selective scheduling.
  366. This flag is disabled by default.
  367. </p>
  368. </dd>
  369. <dt><code>-msched-max-memory-insns=<var>max-insns</var></code></dt>
  370. <dd><a name="index-msched_002dmax_002dmemory_002dinsns"></a>
  371. <p>Limit on the number of memory insns per instruction group, giving lower
  372. priority to subsequent memory insns attempting to schedule in the same
  373. instruction group. Frequently useful to prevent cache bank conflicts.
  374. The default value is 1.
  375. </p>
  376. </dd>
  377. <dt><code>-msched-max-memory-insns-hard-limit</code></dt>
  378. <dd><a name="index-msched_002dmax_002dmemory_002dinsns_002dhard_002dlimit"></a>
  379. <p>Makes the limit specified by <samp>msched-max-memory-insns</samp> a hard limit,
  380. disallowing more than that number in an instruction group.
  381. Otherwise, the limit is &ldquo;soft&rdquo;, meaning that non-memory operations
  382. are preferred when the limit is reached, but memory operations may still
  383. be scheduled.
  384. </p>
  385. </dd>
  386. </dl>
  387. <hr>
  388. <div class="header">
  389. <p>
  390. Next: <a href="LM32-Options.html#LM32-Options" accesskey="n" rel="next">LM32 Options</a>, Previous: <a href="HPPA-Options.html#HPPA-Options" accesskey="p" rel="prev">HPPA 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>
  391. </div>
  392. </body>
  393. </html>