-2
gcc로 컴파일 할 때 -fast-math 옵션이 무엇을하는지 이해하게 도와 줄 수 있습니까? 012와 함께 실행될 때 프로그램 실행 시간에 20 초의 차이가 있음을 알 수 있습니다. -O3 및 -Fast-Math를 -O3 만 사용했을 때와 비교했을 때gcc로 컴파일 할 때 정확히 -phast-math 옵션이 수행하는 것
gcc로 컴파일 할 때 -fast-math 옵션이 무엇을하는지 이해하게 도와 줄 수 있습니까? 012와 함께 실행될 때 프로그램 실행 시간에 20 초의 차이가 있음을 알 수 있습니다. -O3 및 -Fast-Math를 -O3 만 사용했을 때와 비교했을 때gcc로 컴파일 할 때 정확히 -phast-math 옵션이 수행하는 것
을 읽지 않는 이유는 친구이자 제 것이기 때문입니다.
설정 -fno-수학 errno를, -funsafe - 수학 - 최적화, -ffinite - 수학 만, -fno-반올림 - 수학, -fno-신호-하는 NaN과 : 여기 나에게 무엇을 -fcx-limited-range.
그래서 그 자체로는 흥미로운 일은 없지만 몇 가지 흥미로운 컴파일러 옵션의 약식 일뿐입니다. 개별 플래그는 무엇을합니까?
fno-math-errno
단일 명령 수학 연산을 설정하지하게 ERRNO
funsafe-math-optimizations
이 허용하는 유효한 인수를 가정 마찬가지로 ANSI 및 (주의, 실제로 재미와 안전하지) IEEE 표준ffinite-math-only
을 위반할 수 수학 최적화, 어떤 부동 소수점 값도 무한도 아니며, NaN
fno-rounding-math
및 fno-signaling-nans
이 실제로 기본적으로 켜져 있다고 가정하는 수학 최적화를 허용합니다. 그 반대 인 frounding-math
과 fsignaling-nans
은 잠재적으로 안전하지 않거나 변경할 수없는 최적화를 비활성화합니다.fcx-limited-range
은 컴파일러가 특정 복소수 산술 검사를 수행하지 못하도록합니다. 실제로 복잡한 숫자로 작업하지 않는 한 프로그램에 영향을 미치지 않습니다!요약하면 컴파일러는 표준 준수 및 안전성을 잃어 버리지 않고 프로그램을 최적화 할 수 있습니다.
[gcc의 ffast-math는 실제로 무엇을합니까?] (http://stackoverflow.com/questions/7420665/what-does-gccs-ffast-math-actually-do) –