Как автоматически исключить математику двойной точности из сгенерированного кода? - PullRequest
2 голосов
/ 23 апреля 2019

В нашем встроенном проекте, предназначенном для ядер ARM Cortex M *, мы используем набор инструментов ARM clang (v6). Мы используем float тип для нашей математики с плавающей точкой. Стараясь свести к минимуму занимаемую площадь, мы обнаружили, что некоторое пространство занято ненужными double <-> float преобразованиями.

Источником некоторых из этих преобразований было использование литералов, не включающих спецификатор f (например, используйте 12.34 вместо 12.34f). Чтобы устранить это, я ищу вариант компилятора, который использует тип float по умолчанию. Просматривая документацию по компилятору и общую справку по clang, я не смог найти ни одной.

Есть ли какая-либо опция (опция команды, прагма, атрибут и т. Д.), Которая может достичь этой цели?

1 Ответ

1 голос
/ 23 апреля 2019

-fsingle-precision-constant - это то, что вы ищете, хотя, по моему личному мнению, вам следует избегать этого и использовать явное приведение.

...