#compilers

2021-1-24 3:33
给LWN订户的好处订阅LWN的主要好处是有助于我们继续发布,但除此之外,订户还可以立即访问所有网站内容,并可以访问许多其他网站功能。 请立即注册! 内核项目竭尽全力促进使用较旧的工具链进行构建。 在新系统上构建内核就已经是一个挑战。 首先被迫安装自定义工具链不会改善这种情况。 因此,内核开发人员试图通过大多数发行商......
Compilers Are Hard(blog.shipreq.com)
2021-1-21 12:43
我经常听说编写编译器很困难,并且与编写其他类型的软件有所不同。一些近期的经验使我对为什么会这样有深刻的认识,并证明了这很有趣! 我最近完成了ShipReq的新功能的工作。我花了大约2个月的时间进行开发,最终成为我一生中编写过的最困难的代码。我已经进行了数十年的编码,从事过许多不同的项目,并且从事的工作非常庞大组织;......
2020-12-12 0:14
CS 6120是Adrian Sampson撰写的有关编程语言实现的博士学位级别的Cornell CS课程。它涵盖通用编译器主题,例如中间表示,数据流和“经典”优化,以及更多研究型主题,例如并行化,即时输入。编译和垃圾回收。这项工作包括阅读论文和开源黑客任务,这些任务使用LLVM和为此课程发明的教育IR。 本页列出......
2020-7-6 5:13
这篇文章详细介绍了5+JIT和各种优化策略,并讨论了它们如何与不同的JIT协同工作。这篇博文中的信息是深度优先的,因此有许多重要的概念可以跳过。 有关JIT编译器的背景信息,请参阅JIT编译器深度介绍:JIT不是非常及时的。如果标题对你没有意义,那么它可能值得浏览一下。 我经常描述一种优化行为,并声称它可能存在于其他......
Why do C to Z80 compilers produce poor code?(retrocomputing.stackexchange.com)
2020-5-31 3:24
我的印象是,很难将C编译成Z80并最终得到优化良好的代码。是这样吗?为什么? 我对6502的了解更多。下面的一些例子说明了为什么C不适合6502: C中的数组由整数类型索引。6502在索引数组方面相当快,但不幸的是,只有在索引是一个字节宽的情况下。因此,像strcmp或strlen这样的代码可能需要对每个字符执行16......