Я не могу найти ни одного примера, где опция -fno-trapping-math оказывает влияние.
Я ожидаю, что -ftrapping-math отключит оптимизации, которые могут повлиять на то, генерируются ли ловушки или нет. Например, вычисление промежуточного значения с повышенной точностью с использованием инструкций x87 или инструкций FMA может предотвратить возникновение исключения переполнения. Опция -ftrapping-math не предотвращает это.
Устранение общего подвыражения может привести к возникновению одного исключения, а не двух, например, оптимизация 1./x + 1./x = 2./x сгенерирует одну ловушку, а не две, когда x = 0. Опция -ftrapping-math не предотвращает это.
Пожалуйста, приведите несколько примеров оптимизации, которая предотвращается с помощью -fno-trapping-math.
Можете ли вы порекомендовать какие-либо документы, которые лучше объясняют различные варианты оптимизации с плавающей запятой, чем руководство по gcc, возможно, с конкретными примерами кода, который оптимизируется каждой опцией? Возможно для других компиляторов.