当前位置: 首页 > news >正文

GCC RISCV 后端 -- GCC Passes 注释

        在前面文章提到,当GCC 前端完成对C源代码解析完成后,就会使用 处理过程(Passes)机制,通过一系列的处理过程,将 GENERIC  IR 表示的C程序 转步转换成 目标机器的汇编语言。过程描述如下图所示:

         此处所示的处理过程管理者(pass_manager)的构造函数。其调用的时机如下:

#0  gcc::pass_manager::pass_manager (this=0x7161cd0, ctxt=0x7161cb0) at <gcc-project>/gcc/passes.cc:1579
#1  0x0000000001bd7ecd in general_init (argv0=0x7fffffffd9c7 "cc1", init_signals=true, original_argv=...) at <gcc-project>/gcc/toplev.cc:1154
#2  0x0000000001bd9ed9 in toplev::main (this=0x7fffffffd3d2, argc=19, argv=0x7fffffffd518) at <gcc-project>/gcc/toplev.cc:2284
#3  0x0000000004482c61 in main (argc=19, argv=0x7fffffffd518) at <gcc-project>/gcc/main.cc:39

        即在编译器cc1初始化的过程中,将处理过程及其管理者给初始化了。

        处理过程的定义文件 是 <gcc-project>/gcc/passes.def,经过处理后,生成 pass-instances.def 文件,然后在 pass_manager 构造函数中 include 进去。如下:

        这样就把所有在pass-instances.def定义的处理过程包含在 pass_manager 里面。

        1. pass_manager 包含了 所有处理过程的指针。

        2. pass_manager 通过 pass_lists 包含了 5个 pass_list,每个 pass_list 包含对应类型的处理过程。

        3. pass_manger 的每一个 pass_list 包含其对应类型的 处理过程(pass)。如下:

被处理后,在 pass-instances.def 文件中对应如下,增加的同处理过程的序号。

        all_lowering_passes pass_list 包含上图 NEXT_PASS 中的处理过程(Pass)。

        另外 处理过程中有个 sub 栏位,作为 其子处理过程列表。

        总结来说,经过初始化后,所有处理过程的实体会以单向列表的形式,分类地有层级地存放在 pass_manager 里面。

相关文章:

  • 关于sqlalchemy的使用
  • 基于hive的电信离线用户的行为分析系统
  • 第9章:数据导入导出与设置
  • C语言共用体(union)
  • 【DeepSeek】5分钟快速实现本地化部署教程
  • SQL分几种
  • C语言——自定义类型:结构体
  • 实际springboot项目中如何注意jvm调优
  • 引领变革!北京蜂巢世纪科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!
  • SQL PLUS与Oracle数据库的交互
  • 设计模式 - 工厂模式 精准梳理精准记忆
  • Android12 添加开机铃声
  • 【NL2SQL(text2sql) 到底准不准】智能BI中生成sql模块的评测数据构造 + 评测办法
  • 在 ASP.NET Core 中启用 Brotli 和 Gzip 响应压缩
  • SpringBoot的启动流程是怎样的?
  • 全志A133 android10 mipi屏幕调试
  • Git - 补充工作中常用的一些命令
  • 字节青训营后端方向的个人总结(2025年3月4日)
  • SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)
  • 构建私有化AI知识库:基于CentOS的Ollama + DeepSeek-R1 +ragflow 整合部署教程
  • 网站a记录吗/seo是什么意思 seo是什么职位
  • wordpress 注册 验证码/班级优化大师官方免费下载
  • 嘉兴哪家公司做网站比较好的/廊坊seo整站优化软件
  • 手机移动网站设计/舆情优化公司
  • WordPress可以做政府网站吗/关键词组合工具
  • 网站logo的作用/seo高级优化技巧