Chinaunix

标题: 请教关于gcc源代码的问题 [打印本页]

作者: nosky    时间: 2008-11-16 04:37
标题: 请教关于gcc源代码的问题
本人想稍微看一下gcc的源代码,只需要关于c与c++的部分。
但是下载gcc-4.3.2.tar.gz之后里面比较乱,什么ada,java,object-c 等等。
请问哪位大侠有没有相关的经验,能否指教一二?
作者: prolj    时间: 2008-11-16 12:28
C->AST->GIMPLE->RTL->ASM

toplev_main
        decode_option
        do_compile
                backend_init
                lang_dependent_init
                compile_file
我以前看的是gcc4.2.1,不知道现在结构如何,也许对你有帮助。
作者: prolj    时间: 2008-11-16 13:09
gcc-core-4.3.2.tar.bz2           C语言和GCC核心文件
gcc-g++-4.3.2.tar.bz2            C++实现部分
作者: albcamus    时间: 2008-11-16 22:14
原帖由 prolj 于 2008-11-16 12:28 发表
C->AST->GIMPLE->RTL->ASM

toplev_main
        decode_option
        do_compile
                backend_init
                lang_dependent_init
                compile_file
我以前看的是gc ...


请教一下,我想学习一下gcc的x86 backend实现, 应该针对那些目录?

意思是,我只想看gcc/config/i386/下的文件,但是建立cscope索引时,它会引用到上层目录。 对linux来说,直接make ARCH=x86 cscope就可以排斥其他ARCH来构建x86的cscope索引, 对gcc呢? 有没有类似的方式? 没有的话,我该选择哪些目录?
作者: mik    时间: 2008-11-16 22:40
别怪偶打击LZ。
实话实说:连要看的"标的物"都没搞清楚在哪的话,还是不要看gcc源代码了。
gcc 实在是复杂,不适合用来学习编译器啊
作者: prolj    时间: 2008-11-16 23:17
原帖由 albcamus 于 2008-11-16 22:14 发表


请教一下,我想学习一下gcc的x86 backend实现, 应该针对那些目录?

意思是,我只想看gcc/config/i386/下的文件,但是建立cscope索引时,它会引用到上层目录。 对linux来说,直接make ARCH=x86 cscope就 ...

不好意思,不会用cscope。我就是ctags弄出来以后一个函数一个函数的跳,找不到的函数或者定义按照名字在文件里面搜索,方法很笨。
x86的文件就在gcc/config/i386/下面,可是在build gcc的gen_*些列函数时候会根据指定平台的md文件生成一系列的c文件和头文件,而emit_*系列函数在这些生成的c文件中。可能有些出入,手里没有gcc代码。
也许帮不上你什么。
作者: albcamus    时间: 2008-11-17 12:35
原帖由 prolj 于 2008-11-16 23:17 发表

不好意思,不会用cscope。我就是ctags弄出来以后一个函数一个函数的跳,找不到的函数或者定义按照名字在文件里面搜索,方法很笨。
x86的文件就在gcc/config/i386/下面,可是在build gcc的gen_*些列函数时候会 ...


阿姨先别谦虚,就说ctags,你都排除了哪些arch目录? 还是所有arch目录都包含了?
作者: prolj    时间: 2008-11-17 17:13
标题: 回复 #7 albcamus 的帖子
汗,你也去清茶啊?
我没有排除任何目录啊,不知道怎么弄Linux build那么好用的东西。跳转的时候不是可以选吗?看不是x86的就不跳过去啊。我对平台相关部分不熟悉,对Arch正在熟悉中...

[ 本帖最后由 prolj 于 2008-11-17 23:27 编辑 ]
作者: eveson    时间: 2008-11-18 23:15
用不到我才不看
作者: andyzn    时间: 2008-12-12 23:35
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2