[fpc-devel] What's the difference between -Cp and -Op?
J. Gareth Moreton
gareth at moreton-family.com
Wed Sep 7 23:57:11 CEST 2022
Aah, that's useful information, especially the lea/shl example. Thanks
Ideally -Op shouldn't be set to an architecture that's older than the
one for -Cp (i.e. optimising for a processor that's older than the
minimum type it's guaranteed to run on), but is it possible to actually
Gareth aka. Kit
On 07/09/2022 19:15, Jonas Maebe via fpc-devel wrote:
> On 2022-09-07 16:34, J. Gareth Moreton via fpc-devel wrote:
>> So this one has eluded me a little bit... what's the exact difference
>> between the -Cp and -Op options?
> -Cp: the code is only guaranteed to run on this cpu and usually also
> later ones (the code generator/optimiser can use instruction that are
> not available on earlier/other cpus). E.g.: use BMI2 instructions.
> -Op: the code is optimised for this cpu, but will still run on
> earlier/later ones. E.g., use lea instead of shl on a particular cpu
> because it's faster there, even if it's not the case on all of them.
> -Cf: use this instruction set to perform floating point calculations.
> It is independently handled from the two previous settings, even if it
> can indirectly also influence the minimum required CPU.
> fpc-devel maillist - fpc-devel at lists.freepascal.org
More information about the fpc-devel