LCC编译器的源程序分析(58)后端使用的节点结构
来源:互联网 发布:乌兹冲锋枪数据 编辑:程序博客网 时间:2024/05/10 01:49
在LCC编译器后端,主要使用下面的节点结构来标识代码属性。
#001
#002 //节点注释的扩展,主要是代码生成使用。
#003 //
#004 //蔡军生 2007/07/21 QQ: 9073204
#005 //
#006 typedef struct {
#007 unsigned listed:1; //标记这是树的根节点。
#008 unsigned registered:1; //寄存器是否分配
#009 unsigned emitted:1; //标识已经输出指令。
#010 unsigned copy:1; //标记寄存器之间的复制。
#011 unsigned equatable:1; //标记存放公共表达式的临时单元的指令
#012 unsigned spills:1; //寄存器溢出标志。
#013 unsigned mayrecalc:1; //可以重新计算公共表达式的节点。
#014 void *state; //保存指令选择的结果。
#015 short inst; //标记节点是否使用指令实现。
#016 Node kids[3]; //后端编译的指令树。
#017 Node prev, next; //指令链表。
#018 Node prevuse;
#019 short argno; //参数数目。
#020 } Xnode;
#021
#022
#023 typedef struct {
#024 char *name; //编译器后端产生的名称.
#025 unsigned int eaddr; /* omit */
#026 int offset; //表示变量所在的栈位置。
#027 Node lastuse; //最后使用寄存器的节点。
#028 int usecount; //节点的使用次数。
#029 Regnode regnode; //寄存分配相关属性。
#030 Symbol *wildcard; //保存寄存器列表。
#031 } Xsymbol;
#032
后端生成代码,主要就是计算上面结构的属性,只要把上面的结构全部填充,就可以生成最终的代码。
- LCC编译器的源程序分析(58)后端使用的节点结构
- [转载]LCC编译器的源程序分析(58)后端使用的节点结构
- LCC编译器的源程序分析(65)后端接口的结构注释
- [转载]LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- LCC编译器的源程序分析(65)后端接口的结构注释
- 《孙子兵法》之九变篇
- 《孙子兵法》之军争篇
- 《孙子兵法》之形篇
- 《孙子兵法》之虚实篇
- 博客搜索有前途吗?作者:李安科(评论)
- LCC编译器的源程序分析(58)后端使用的节点结构
- Linux如何修改date的输出格式
- 经典到发狂,某男日记摘录(转帖)
- 收到光盘
- 圈地方式地人肉搜索是不现实的搜索方式
- 一个实现RBAC的SQL脚本(二)
- 根据测试的上下文调整测试方法(Aligning Testing With Its Context)
- 青岛印象
- 如何实现ssh的自动登录