wcc:玩具优化的C编译器

时间:2024-04-25 09:46:48
【文件属性】:

文件名称:wcc:玩具优化的C编译器

文件大小:108KB

文件格式:ZIP

更新时间:2024-04-25 09:46:48

C

适用于x86_64 Linux的WCC Toy C编译器 该项目是针对x86_64 linux的C子集的实现,作为如何编写优化编译器的练习。 该实现主要基于 。 编译器是自托管的。 这只是一种爱好,不会像gcc这样大而专业。 C功能 所有变量必须适合寄存器 指针 结构 简单的typedef,仅用于结构 单层嵌套标头包括 大多数整数算术和指针运算 一些常用的功能可用,例如malloc , memset , open , close ,...,请参阅add_builtins中的 局限性 不支持系统头 没有嵌套的标题 不支持预处理器 所有变量声明必须在最前面 执行 编译器经历以下阶段: 手卷lexer 优先攀登解析器 optimize_arithmetic_operations简单的算术转换的optimize_arithmetic_operations 转变为 数据流分析和有效范围内的变


【文件预览】:
wcc-master
----set.c(4KB)
----test-lib.c(2KB)
----test-wcc-func-calls.c(2KB)
----test-wcc-memory-functions.c(1KB)
----test-wcc-conditionals.c(2KB)
----main.c(17KB)
----test-wcc-typedef.c(589B)
----test-wcc-function-call-args.c(2KB)
----LICENCE(1KB)
----graph.c(2KB)
----test-wcc-loops.c(2KB)
----codegen.c(23KB)
----test-wcc-expr.c(14KB)
----ssa.c(64KB)
----lexer.c(12KB)
----test-utils.c(5KB)
----wcc.h(25KB)
----test-wcc-pointers.c(7KB)
----instrrules.c(37KB)
----test-wcc-structs.c(12KB)
----utils.c(912B)
----test-lib.h(255B)
----.gitignore(285B)
----test-graph.c(2KB)
----ir.c(28KB)
----test-set.c(2KB)
----test-wcc-regressions.c(9KB)
----instrutil.c(15KB)
----Makefile(6KB)
----test-wcc-inc-dec.c(5KB)
----test-wcc-pointer-arithmetic.c(3KB)
----test-include()
--------foo.c(55B)
--------main.c(80B)
--------include.h(12B)
----README.md(5KB)
----test-ssa.c(29KB)
----benchmark.c(2KB)
----test-wcc-enums.c(472B)
----stack.c(665B)
----stack-check.c(198B)
----parser.c(42KB)
----test-instrsel.c(63KB)
----wcc.c(2KB)
----instrsel.c(50KB)

网友评论