[cfe-dev] When to use '-mcpu' versus '-march'
Richard Hadsell via cfe-dev
cfe-dev at lists.llvm.org
Tue Mar 20 09:33:05 PDT 2018
Does clang differ from g++ in this respect?
This is from the man page for g++ 4.8.5 for Intel x86 and x86-64 processors:
-march=cpu-type
Generate instructions for the machine type cpu-type. In contrast to -mtune=cpu-type, which merely tunes the generated code
for the specified cpu-type, -march=cpu-type allows GCC to generate code that may not run at all on processors other than the
one indicated. Specifying -march=cpu-type implies -mtune=cpu-type.
...
-mtune=cpu-type
Tune to cpu-type everything applicable about the generated code, except for the ABI and the set of available instructions.
While picking a specific cpu-type schedules things appropriately for that particular chip, the compiler does not generate any
code that cannot run on the default machine type unless you use a -march=cpu-type option. ...
...
-mcpu=cpu-type
A deprecated synonym for -mtune.
On 03/20/2018 12:40 AM, Eric Christopher via cfe-dev wrote:
> Hi Martin,
>
> Sorry about the delay here, but I've got some advice even though a lot of things aren't solid anywhere.
>
> a) Does this match an out of tree target for gcc? If so, I'd match that.
> b) Typically -march/-mtune (though the latter isn't supported in llvm at the moment, see an earlier post from me to llvm-dev on how to support that) are what I'd use for new ports. We used it in a number of new/out of tree ports in gcc as well.
> c) -mcpu is occastionally used for "-march+-mtune" when -march by itself is generally "this architecture, but generic tuning".
>
--
Dick Hadsell 203-992-6320 Fax: 203-992-6001
Reply-to: hadsell at blueskystudios.com
Blue Sky Studioshttp://www.blueskystudios.com
1 American Lane, Greenwich, CT 06831-2560
More information about the cfe-dev
mailing list