parms:
parm
{ push_parm_decl ($1); }
/* This is what appears inside the parens in a function declarator.
Is value is represented in the format that grokdeclarator expects. */
pa...
分类:
其他好文 时间:
2015-01-14 22:55:48
阅读次数:
148
本篇文章讲述了InputFormat及其子类,并结合源代码详细分析了FileInputFormat如何读取InputSplit及处理行跨越两个InputSplit的问题...
分类:
其他好文 时间:
2015-01-13 17:43:29
阅读次数:
275
function = build (ADDR_EXPR, build_pointer_type (TREE_TYPE (function)),
function);
继续分析上篇文章的这句。
/* Constructors for pointer, array and function types.
(RECORD_TYPE, UNION_TY...
分类:
其他好文 时间:
2015-01-11 11:04:20
阅读次数:
177
看gcc-1.40有段时间了,14年左右看了一段时间,15年左右看了一段时间。
现在可以说基本上明白了gcc的大部分代码。
如果说能快速的明白其中的原理,总结我看代码的方法捷径我列举以下几条。
第一,gcc版本低,这是成功的前提,也是一条捷径。
第二,分析最基本的hello.c文件,就一条函数调用,但是已经足够。
第三,发现了debug_rtx ()函数和debug_tree ()函数。...
分类:
其他好文 时间:
2015-01-09 20:59:49
阅读次数:
294
在文件c-typeck.c中
c-parse.tab.y文件中这个地方调用!
primary:
| primary '(' exprlist ')' %prec '.'
{ $$ = build_function_call ($1, $3); }
/* Build a function call to function FUNCTION w...
分类:
其他好文 时间:
2015-01-09 19:22:04
阅读次数:
219
对于expand_call函数来说最主要的参数就是exp这个tree树,
打印出来之后我们终于看到了printf和Hello,world!
expand_call
type
size
align 32 size_unit 8 sep_unit 32 symtab 0
sep
max...
分类:
其他好文 时间:
2015-01-08 22:49:46
阅读次数:
302
Web Bench是一个网站压力测试的工具。其最后更新时间是2004年,已经十年多了。其源代码总共才500多行,全部使用C语言编写,最多可以模拟上万个并发连接。
其原理也比较简单,源代码值得一读。...
分类:
Web程序 时间:
2015-01-07 22:13:02
阅读次数:
292
本文主要是分析store_one_arg ()函数和expand_expr ()的关系来说明如何处理
函数的参数。printf("Hello, world!\n");中的"Hello, world!\n"这个字符串常量的!
expand_call () 函数中的相关代码:
if (args[i].reg == 0
&& TYPE_SIZE (TREE_TYPE ...
分类:
其他好文 时间:
2015-01-06 11:59:02
阅读次数:
157
本文是为了解释下面这4个rtx是如何产生的,和emit_call_1 ()函数有关。
(const_int 4)
(mem:QI (symbol_ref/v:SI ("printf")))
(call (mem:QI (symbol_ref/v:SI ("printf")))
(const_int 4))
(set (reg:SI 0)
(call (m...
分类:
其他好文 时间:
2015-01-06 09:59:34
阅读次数:
259
(insn_list 6 (nil))
(insn_list 2 (insn_list 6 (nil)))
(sequence[ ] )
(reg:SI 0)
(const_int 4)
这次是解释这5条rtx的产生过程
相关的代码片段:
/* Mark all register-parms as living through the call...
分类:
其他好文 时间:
2015-01-06 08:37:04
阅读次数:
145