当我使用参数-fdump-rtl-jump
运行gcc时,我得到一个名为file.c.135r.jump
的转储文件,在那里我可以读取有关我的C或C ++文件中方法的中间表示的一些信息。
我刚刚发现,此转储文件中缺少项目的静态方法。你知道吗,为什么他们在那个表示中缺失,如果有可能在这个文件中包含静态方法呢。
更新(一些其他信息):
我在这里使用的测试程序是Hybrid OpenMP MPI Benchmark。
UPDATE2:
我刚刚用串行应用程序重现了这个问题,所以它与并行部分无关。
答案 0 :(得分:4)
我的猜测是静态方法是内联的,因为它们是静态的,所以一切都知道它们的调用,不会发出它们的外部代码。确认或拒绝此方法的一种方法是添加-fkeep-inline-functions
gcc选项,然后它们应出现在转储中。
答案 1 :(得分:2)
它们没有丢失,这与类方法无关。我相信你只是不打电话给他们。