Next:AMD GCN Options, Previous:AArch64 Options, Up:Machine-Dependent Options [Contents][Index]
These ‘-m’ options are defined for Adapteva Epiphany:
-mhalf-reg-file ¶-mno-half-reg-fileDon’t allocate any register in the ranger32…r63.That allows code to run on hardware variants that lack these registers.
-mprefer-short-insn-regs ¶-mno-prefer-short-insn-regsPreferentially allocate registers that allow short instruction generation.This can result in increased instruction count, so this may either reduce orincrease overall code size.
-mbranch-cost=num ¶Set the cost of branches to roughlynum “simple” instructions.This cost is only a heuristic and is not guaranteed to produceconsistent results across releases.
-mcmove ¶-mno-cmoveEnable the generation of conditional moves.
-mnops=num ¶Emitnum NOPs before every other generated instruction.
-mno-soft-cmpsf ¶-msoft-cmpsfFor single-precision floating-point comparisons, emit anfsub instructionand test the flags. This is faster than a software comparison, but canget incorrect results in the presence of NaNs, or when two different smallnumbers are compared such that their difference is calculated as zero.The default is-msoft-cmpsf, which uses slower, but IEEE-compliant,software comparisons.
-mstack-offset=num ¶Set the offset between the top of the stack and the stack pointer.E.g., a value of 8 means that the eight bytes in the rangesp+0…sp+7can be used by leaf functions without stack allocation.Values other than ‘8’ or ‘16’ are untested and unlikely to work.Note also that this option changes the ABI; compiling a program with adifferent stack offset than the libraries have been compiled withgenerally does not work.This option can be useful if you want to evaluate if a different stackoffset would give you better code, but to actually use a different stackoffset to build working programs, it is recommended to configure thetoolchain with the appropriate--with-stack-offset=num option.
-mno-round-nearest ¶-mround-nearest-mno-round-nearestmakes the scheduler assume that the rounding mode has been set totruncating. The default is-mround-nearest.
-mlong-calls ¶If not otherwise specified by an attribute, assume all calls might be beyondthe offset range of theb /bl instructions, and therefore load thefunction address into a register before performing a (otherwise direct) call.This is the default.
-mshort-calls ¶If not otherwise specified by an attribute, assume all direct calls arein the range of theb /bl instructions, so use these instructionsfor direct calls.
The default is-mlong-calls. Note that-mlong-callsis equivalent to-mno-short-calls, and similarly-mno-long-calls is equivalent to-mshort-calls.
-msmall16 ¶-mno-small16Assume addresses can be loaded as 16-bit unsigned values. This does notapply to function addresses for which-mlong-calls semanticsare in effect.
-mfp-mode=mode ¶Set the prevailing mode of the floating-point unit.This determines the floating-point mode that is provided and expectedat function call and return time. Making this mode match the mode youpredominantly need at function start can make your programs smaller andfaster by avoiding unnecessary mode switches.
mode can be set to one the following values:
Any mode at function entry is valid, and retained or restored whenthe function returns, and when it calls other functions.This mode is useful for compiling libraries or other compilation unitsyou might want to incorporate into different programs with differentprevailing FPU modes, and the convenience of being able to use a singleobject file outweighs the size and speed overhead for any extramode switching that might be needed, compared with what would be neededwith a more specific choice of prevailing FPU mode.
This is the mode used for floating-point calculations withtruncating (i.e. round towards zero) rounding mode. That includesconversion from floating point to integer.
This is the mode used for floating-point calculations withround-to-nearest-or-even rounding mode.
This is the mode used to perform integer calculations in the FPU, e.g.integer multiply, or integer multiply-and-accumulate.
The default is-mfp-mode=caller
-mmay-round-for-trunc ¶-mno-may-round-for-truncThis option allows floating point to integer truncation to be replacedwith rounding to save mode switching. It’s disabled by default.
-mfp-iarith ¶-mno-fp-iarithThis option enables use of the floating-point unit for integer add andsubtract. It’s disabled by default.
-msplit-lohi ¶-mno-split-lohi-mpost-inc-mno-post-inc-mpost-modify-mno-post-modifyCode generation tweaks that control, respectively, splitting of 32-bitloads, generation of post-increment addresses, and generation ofpost-modify addresses. The defaults aremsplit-lohi,-mpost-inc, and-mpost-modify.
-mno-vect-double ¶Change the preferred SIMD mode to SImode. The default is-mvect-double, which uses DImode as preferred SIMD mode.
-max-vect-align=num ¶The maximum alignment for SIMD vector mode types.num may be 4 or 8. The default is 8.Note that this is an ABI change, even though many library functioninterfaces are unaffected if they don’t use SIMD vector modesin places that affect size and/or alignment of relevant types.
-msplit-vecmove-early ¶-mno-split-vecmove-earlySplit vector moves into single word moves before reload. In theory thiscan give better register allocation, but so far the reverse seems to begenerally the case.
-m1reg-reg ¶Specify a register to hold the constant −1, which makes loading small negativeconstants and certain bitmasks faster.Allowable values forreg are ‘r43’ and ‘r63’,which specify use of that register as a fixed register,and ‘none’, which means that no register is used for thispurpose. The default is-m1reg-none.
Next:AMD GCN Options, Previous:AArch64 Options, Up:Machine-Dependent Options [Contents][Index]