Есть ли эквивалент в march = native в компиляторе Crystal? - PullRequest
1 голос
/ 03 мая 2020

G CC и Clang поддерживают опцию компилятора с именем -march=native, что удобно, если вы хотите оптимизировать архитектуру текущей машины. Полученный двоичный файл может быть не переносимым, но это нормально, если он будет выполняться только на той же машине.

Я подумал, поддерживает ли его компилятор Crystal. Я вижу следующие опции --mcpu, --mattr, --mcmodel, которые могут быть мне нужны. К сожалению, я не смог найти много информации.

Есть ли в Crystal рекомендуемый способ оптимизации для текущей машины? В идеале он должен автоматически определять доступные инструкции ЦП (например, -march=native).


Справочная информация: Как узнать, какие флаги -march = native активируют?

1 Ответ

1 голос
/ 08 мая 2020

Компилятор Crystal не поддерживает -march. Может быть, это следует добавить. Из того, что я слышал, зачастую нет четкого разделения между -mcpu и -march.

В качестве обходного пути вы можете попросить компилятор испустить LLVM IR или байт-код. Это позволяет вам скомпилировать двоичный файл непосредственно с помощью инструментов LLVM, что даст полный доступ к параметрам LLVM, таким как -march.

...