气相色谱API 本说明描述了垃圾收集接口 运行时系统在版本110.15中实现。 所有通信至 运行时系统通过一组固定的寄存器。 什么都可以 额外的必须打包保存在其中一个固定的 寄存器。 这大大简化了运行时系统, 减少了ML到C上下文切换开销, 并且几乎不会增加为调用而生成的代码的大小 垃圾收集。 最终结果是 在DEC Alpha上编译编译器的性能提高了4%。
X86-k32型 本说明描述了用于 Intel x86,110.16版。 标准Chaitan图着色 寄存器分配不能直接用于很少使用 寄存器,因为所有临时变量最终都会溢出,导致 分配不当。 因此,对于x86 体系结构已经通过一组内存位置进行了扩展 被视为寄存器。 净效应是暂时性的 计算到内存位置并作为参数传递给 功能。 以这种方式管理的这些内存位置的使用 可以像使用寄存器一样快,其中寄存器是间接的 分配考虑了硬件寄存器重命名 机制。
性能监视器 所有性能的价值 奔腾II上的计数器是使用110.17版进行测量的 结果如下表所示。 每个条目都以单位为单位 1K次。 每个计数器的含义在 附录A 英特尔体系结构软件开发人员 手册; 第3卷:系统编程指南 订单 编号243192。 每个条目是三次运行的平均值,其中 计数器测量的值通常接近 零。 我用过 佩尔夫 对于这些 测量值。
表: x86-性能监视器
一种新型MLRISC寄存器分配器 本报告描述了设计 和MLRISC的新寄存器分配器的实现 可自定义的代码生成器。 这个新的分配器与MLRISC分发的原始分配器一样, 是一个链式图着色分配器 使用迭代合并算法。 然而,新的分配器具有不同的客户机接口,使用 不同的数据结构,并集成了以下新功能 和改进:
传播并利用频率信息确定优先级 聚结和溢出。 使用稀疏方法构建干涉图。 具有更智能的泄漏插入策略。 具有更模块化的设计。
MLRISC注释 这个 注释 已写入模块 在标准ML中被广泛使用 用于在中的不同阶段之间交换信息 MLRISC自定义代码生成器。 不同的优化 阶段可以在单个指令上附加注释, 基本块、双曲线或编译单元。 这些注释 然后可以在随后的阶段中读取和更新。 例如,注释可以用于传播 从程序文本到程序集输出的注释。
本文档描述了注释机制和 在MLRISC系统中使用。
匹配编译器 笔记 这些注释描述了SML/NJ模式匹配编译器,最后 由Bill Aitken于1992年夏天改写。 安 早期论文 作者:M.Baudinet 和D.MacQueen描述了模式匹配的一般方法 编译,但那篇文章中描述的启发是 过时了。
X86浮点 浮点寄存器不再作为 通过 Sethi-Ullman编号方案,但作为一组寄存器。
`忽略虚拟帧指针的优化 在许多语言中,访问局部变量很方便 和通过使用帧指针的溢出位置。 框架 指针可以是物理寄存器,也可以是虚拟寄存器 稍后映射到堆栈指针。 本说明描述了 MLRISC支持和要求重写虚拟机的使用 指向堆栈指针用法的帧指针--省略帧 指针优化。
一种用于标准ML的高性能垃圾收集器 我们为 新泽西系统标准ML(SML/NJ)。 此收集器具有 更高的性能、更低的延迟,并且通常需要更少的时间 物理内存,而不是现有的SML/NJ收集器。 在 此外,它能够利用大型二级缓存 在现代工作站上发现。 本文描述了该设计 收集器,并显示比较性能数据 这证明了上述性能要求。
标准ML中的异步信号 我们描述了一种机制的设计、实现和使用 用于处理异步信号,如用户中断 新泽西州标准ML的实施 机构类型是 开发真实世界的应用程序。 我们的机制 使用一级延续来表示执行 信号发生时的状态。 它已经被使用了 支持并发包和 用于在调试器中强制断点,以及用于处理 用户在SML/NJ交互环境中进行交互。