PowerPC 플랫폼의 -O3
에서 IBM XL C/C++를 사용하는 소스 파일에 대해 bad code generation이 발생합니다. 매달린 표면이 보이고 특정 루프가 보이지 않습니다.#pragma GCC와 동등한 IBM XL C/C++
문제는 XL C/C++에서 나타납니다. 우리의 테스트 체제는 소스 파일이 정의되지 않은 동작, 메모리 오류 및 기타 에라타를 깨끗하게 처리하고 있음을 나타냅니다. 또한 소스 파일에 대한 컴파일러의/nstrict 경고를받지 않습니다.
소스 파일을 -O3
대신 -O2
에 컴파일하려고합니다. 컴파일러를 위해 적절하게 보호 될 수 있도록 소스 파일에 플러그 므와 같은 도구를 추가하려고합니다. 계측기는 다른 사람들이 Cmake 및 Autotools와 같은 다른 빌드 시스템을 와이어 인 (wire-in) 할 수있게 해주 며, 모든 것들이 "그냥 작동합니다". (필요한 정보는 makefile이 아닌 소스에서 사용 가능합니다.)
컴파일러에 대한 IBM 설명서는 IBM XL C/C++ for AIX, V13.1에 있지만 옵션을 찾을 수 있으면 망할.
#pragma GCC optimize
에 해당하는 IBM XL C/C++은 무엇입니까? XL C/C++에 -O3
대신 -O2
을 사용하도록 소스 코드를 계측하려면 어떻게해야합니까?
고맙습니다. @trudeaun. 나는 당신이 컴파일러 진단에 맞다고 생각합니다. GCC 메시지처럼 보입니다. '-O2'에 관해서 우리는 아픈 부분을 발견했습니다. [Issue 503] (https://github.com/weidai11/cryptopp/issues/503)에서 삭제되었습니다. 내 생각 엔 * "As If"* 규칙 C++ 규칙 - 컴파일러 작성자는 작동하는 프로그램을 작동하지 않는 프로그램으로 변환 할 수 있습니다. – jww
스택 오버 플로우와 IBM 포럼에 대해서는 모니터링 해 주셔서 감사합니다. 나는 토론 계정이 없으며 다른 소셜 네트워크에 가입하지 않기 때문에 장소를 사용할 수 없습니다. IBM이 Google, Facebook 등을 수락하면 좋을 것입니다.하지만 대부분의 회사는 정보를 수집하는 서비스 제공 업체가되고 싶어합니다. 그들은 정보를 포기해야하는 신뢰 당사자가되고 싶지 않습니다. – jww
@trudeaun 다시 한번 감사드립니다. 수동 참조로 어떤 일이 일어 났는지 봅니다. 당신이 지적한 정보는 매뉴얼에 있습니다. 그러나 나는 다른 쪽 끝에서 작업했다 : 441 쪽의 매뉴얼에서'option_override'를 찾았고 441-445 쪽의 최적화 옵션을 찾았다. 문제는''opt (level, 2) ''는 매뉴얼의 해당 영역에서 논의되지 않는다는 것입니다. 다른 최적화는'unroll'과'nounroll'과 같지만''opt (level, 2)''가 아닙니다. 나는 아직도 매뉴얼을 사용하는 방법을 배우고 있다고 생각한다. – jww