# Code Generation Options

This section contains descriptions for compiler options that pertain to code generation. They are listed in alphabetical order.

Parent topic: Compiler Options

- arch
  Tells the compiler which features it may target, including which instruction sets it may generate.
- ax, Qax
  Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for Intel® processors if there is a performance benefit.
- fasynchronous-unwind-tables
  Determines whether unwind information is precise at an instruction boundary or at a call boundary.
- fcf-protection, Qcf-protection
  Enables Intel® Control-Flow Enforcement Technology (Intel® CET) protection, which defends your program from certain attacks that exploit vulnerabilities. This option offers preliminary support for Intel® CET.
- fexceptions
  Enables exception handling table generation. This feature is only available for ifort.
- fomit-frame-pointer, Oy
  Determines whether EBP is used as a general-purpose register in optimizations. Option /Oy is deprecated and will be removed in a future release.This feature is only available for ifort.
- guard
  Enables the control flow protection mechanism.
- hotpatch
  Tells the compiler to prepare a routine for hotpatching. This feature is only available for ifort.
- m
  Tells the compiler which features it may target, including which instruction set architecture (ISA) it may generate.
- m32, m64, Qm32, Qm64
  Tells the compiler to generate code for a specific architecture. Option m32 (and Qm32) is deprecated and will be removed in a future release. 32-bit options are only available for ifort.
- m80387
  Specifies whether the compiler can use x87 instructions.
- march
  Tells the compiler to generate code for processors that support certain features.
- masm
  Tells the compiler to generate the assembler output file using a selected dialect.
- mauto-arch, Qauto-arch
  Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for x86 architecture processors if there is a performance benefit. This feature is only available for ifort.
- mbranches-within-32B-boundaries, Qbranches-within-32B-boundaries
  Tells the compiler to align branches and fused branches on 32-byte boundaries for better performance.
- mconditional-branch, Qconditional-branch
  Lets you identify and fix code that may be vulnerable to speculative execution side-channel attacks, which can leak your secure data as a result of bad speculation of a conditional branch direction. This feature is only available for ifort.
- minstruction, Qinstruction
  Determines whether MOVBE instructions are generated for certain Intel® processors. This feature is only available for ifort.
- momit-leaf-frame-pointer
  Determines whether the frame pointer is omitted or kept in leaf functions.
- mstringop-inline-threshold, Qstringop-inline-threshold
  Tells the compiler to not inline calls to buffer manipulation functions such as memcpy and memset when the number of bytes the functions handle are known at compile time and greater than the specified value. This feature is only available for ifort.
- mstringop-strategy, Qstringop-strategy
  Lets you override the internal decision heuristic for the particular algorithm used when implementing buffer manipulation functions such as memcpy and memset. This feature is only available for ifort.
- mtune, tune
  Performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march).
- Qpatchable-addresses
  Tells the compiler to generate code such that references to statically assigned addresses can be patched. This feature is only available for ifort.
- x, Qx
  Tells the compiler which processor features it may target, including which instruction sets and optimizations it may generate.
- xHost, QxHost
  Tells the compiler to generate instructions for the highest instruction set available on the compilation host processor.