open64课程–过程间分析优化(IPA)

  • IPA阶段之后的编译

通过make对ipa_link产生在子文件夹中的文件进行以下动作:symtab.i编译为symtab.o,symtab.G分割出来。剩余的.i文件编译成.o文件,通过查询symtab.G引用全局符号表(能使用并行make),使用在linkopt中的参数调用最终的ld

整个Open64课程系列的文章包括以下,请阅读中指正

Open64课程-简介,概述和中间表示

Open64课程- 编译过程

Open64课程-内联

Open64 课程–全局标量优化(WOPT I) part 1

Open64 课程–全局标量优化(WOPT I) part II

Open64 课程–全局标量优化(WOPT II)

open64课程–过程间分析优化(IPA)

Open64课程—代码生成(CG)

Open64课程-循环嵌套优化(LNO)

Open64课程–反馈指导优化(FDO)

Open64课程–OpenMp和自动并行化

Open64课程-结语

相关文章:

This entry was posted in open64, 编译技术, 编译理论实践和应用 and tagged , , , , , , , , , , , , , . Bookmark the permalink.

10 Responses to open64课程–过程间分析优化(IPA)

  1. simple says:

    这个博客的技术性好强。

    • erlv says:

      呵呵 主要是为了让自己能学到点东西:)
      偶尔也会有一些生活的文章。欢迎来看看 呵呵

  2. hg says:

    ipa_link和ld(无-ipa选项时)在link阶段看到的对象相同。但是ipa_link和ld识别符号解析的规则不同.
    不理解第一句。
    另外原文是Identical symbol resolution rules between ipa_link and ld。为啥翻译成规则不同?

    • erlv says:

      抱歉,这里是我在没有理解IPA的基础上翻译出的错。正确的译法是:ipa_link和ld(无-ipa选项时)在link阶段看到的对象相同。他们的ipa_link和ld符号解析规则也一样。
      这主要是因为,ipa_link有类似于LD的行为—在全局范围内处理符号表和PU,open64中的ipa_link就是从ld的源码中修改而来,所以他们看到的对象和符号解析规则相同。ipa_link和ld的不同点是,ipa_link用这些全局信息作进一步的分析和优化,而ld则是利用这些信息来重新解析不好表,将多个.o文件生成最后的可执行文件。
      因为自己的英语还不行,翻译过程中肯定有问题,尽管指出,呵呵。我一定修改:)
      Thanks

    • erlv says:

      @hg,
      Ipalink用ld的代码,是因为symbol lookup的逻辑和行为要保持一致。llvm则是在link时直接作ipa
      –by zsc

  3. Pingback: Open64课程–反馈指导优化(FDO) « 编译点滴

  4. Pingback: Open64课程-编译过程 « 编译点滴

  5. Pingback: 编译点滴 » Open64课程-内联

  6. Pingback: 编译点滴 » Open64课程–OpenMp和自动并行化

  7. Pingback: 《编译点滴》半年记 « 编译点滴

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>