本文主要是介绍GCC passes分析(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
遍(passes)是GCC编译器源代码中的一个重要概念,对它们的理解是了解GCC源代码的架构的基础。本系列文章打算以此为契机,对GCC编译器源代码做一个概要性的分析,分析对象为GCC 4.9.1版本。
源代码中,与Pass相关的文件有:
1. passes.c
2. passes.def
3. pass_manager.h
另外,安装编译器的过程中,还会生成一个与pass相关的中间文件pass-instances.def,是源码下面的脚本文件gen-pass-instances.awk读取passes.def文件而生成的。
1)文件passes.def
本文件使用了4个宏:
INSERT_PASSES_AFTER;
PUSH_INSERT_PASSES_WITHIN;
NEXT_PASS
TERMINATE_PASS_LIST
2)文件passes-instances.def
本文件是由文件passes.def生成,内容与passes.def相似,只是增加了对每个pass出现(成为实例,instance)的统计。例如
NEXT_PASS (pass_forwprop)
在passes.def中出现了4次,则该宏在pass-instance.def中的出现形式为
NEXT_PASS (pass
这篇关于GCC passes分析(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!