2010-03-06 1 views
2

-fdump-rtl-jump gcc를 실행하면 file.c.135r.jump이라는 덤프 파일이 생깁니다. 여기에서 메소드의 중간 표현에 대한 정보를 읽을 수 있습니다. 내 C 또는 C++ 파일에서.gcc의 덤프에 정적 메소드가있는 곳은 어디입니까? file.c.135r.jump

방금 ​​프로젝트의 정적 메소드가이 덤프 파일에 없음을 발견했습니다. 아시나요, 왜 그 표현에 빠졌는지 그리고 정적 메소드를이 파일에 포함시킬 가능성이 있는지 알고 계십니까?

업데이트 (몇 가지 추가 정보) :
테스트 프로그램, 내가 여기에 사용하고는 Hybrid OpenMP MPI Benchmark입니다.

갱신 2는 :
난 그냥 시리얼 응용 프로그램 문제를 재현, 그래서 병렬 섹션과는 아무 상관이 없습니다.

+1

이것을 설명하는 연속 최소 샘플 코드를 공유 할 수 있습니까? –

답변

4

내 생각에 정적 메서드는 인라인되어 정적 인 관계로 모든 호출이 알려져 있기 때문에 그 중 일부의 코드는 출력되지 않습니다. 이를 확인하거나 거절하는 방법은 -fkeep-inline-functions gcc 옵션을 추가 한 다음 덤프에 나타나야합니다.

+0

실수를 발견했다고 생각합니다. 최적화가 전환되었습니다 ...하지만 팁이 올바른 방법으로 나에게 주어 지므로 현상금을 얻습니다. 감사. – Customizer

2

이들은 누락되지 않으며 클래스 메소드와 관련이 없습니다. 나는 당신이 그 (것)들을 다만 부르고 있지 않다는 것을 믿는다.

+0

아, 네 말이 맞아. 그것은 가능할 수 있습니다. 나는 그것에 대해 생각하지 않았다. 나중에 확인해 보겠습니다. – Customizer

+0

흠, 실제로, 그들은 병렬 호출 OpenMp Section에서 호출됩니다. – Customizer

관련 문제