2020.3.3

这篇文章谈到了Digital Bridge的设计,可能会和dbt的静态翻译器有些关系。

两种本地代码的Code Cache

  • Block Cache用于存放基本块的本地代码,x86tomips里有见到过这个;
  • Trace Cache用于存放热路径代码;

有3种profiling

  1. block profiling:简单,不能给出控制转移方向偏好;
  2. edge profiling:复杂度始终,能提供控制转移方向偏好,被用在Digital Bridge的热路径的判断依据;
  3. path profiling:需要分析程序的控制流结构,算法复杂度高;

热路径提供的优化可能性

  • 基于模式的指令组合优化翻译(应该就是x86tomips里的flag pattern)的范围扩大;
  • 延迟标志位计算优化的代码可以减少;