Skip to content

Commit 366fe93

Browse files
authored
Merge pull request #466 from rustcoreutils/updates
Updates
2 parents fdbd46f + d8601f6 commit 366fe93

File tree

19 files changed

+1469
-2726
lines changed

19 files changed

+1469
-2726
lines changed

cc/README.md

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,17 @@ Key source files:
3535
| `parse/ast.rs` | AST node definitions |
3636
| `types.rs` | C type system |
3737
| `symbol.rs` | Symbol table with scope management |
38-
| `linearize.rs` | AST → IR conversion, SSA construction |
39-
| `ir.rs` | Intermediate representation definitions |
40-
| `ssa.rs` | SSA phi node insertion |
41-
| `lower.rs` | IR lowering passes (phi elimination) |
42-
| `dominate.rs` | Dominator tree and dominance frontiers |
43-
| `codegen/x86_64/` | x86-64 code generator |
44-
| `codegen/aarch64/` | AArch64 code generator |
38+
| `ir/linearize.rs` | AST → IR conversion, SSA construction |
39+
| `ir/mod.rs` | Intermediate representation definitions |
40+
| `ir/ssa.rs` | SSA phi node insertion |
41+
| `ir/lower.rs` | IR lowering passes (phi elimination) |
42+
| `ir/dominate.rs` | Dominator tree and dominance frontiers |
43+
| `ir/dce.rs` | Dead code elimination |
44+
| `ir/instcombine.rs` | Instruction combining/simplification |
45+
| `arch/x86_64/` | x86-64 code generator |
46+
| `arch/aarch64/` | AArch64 code generator |
47+
| `arch/lir.rs` | Low-level IR (LIR) definitions |
48+
| `arch/regalloc.rs` | Register allocation |
4549

4650
## Debugging
4751

@@ -74,9 +78,9 @@ EOF
7478

7579
Supported:
7680
- C99 standard
81+
- GCC-compatible inline assembly (extended asm with constraints, clobbers, asm goto)
7782

78-
Not yet implemented (exceptions to C99, or features we want to add):
79-
- Actual inlining optimization (the `inline` keyword is supported but functions are not inlined)
83+
Not yet implemented (features we want to add):
8084
- -fverbose-asm
8185
- top builtins to implement:
8286
__builtin_expect
@@ -87,17 +91,6 @@ Not yet implemented (exceptions to C99, or features we want to add):
8791
- C11 Thread-Local Storage (_Thread_local) and atomics (_Atomic)
8892
- Other C11 features: _Static_assert, _Generic, anonymous structs
8993

90-
## Known Issues
91-
92-
### Preprocessor
93-
94-
- **Chained macro expansion after token paste**: When a token paste (`##`) creates an identifier that is itself a function-like macro, the subsequent macro expansion may not work correctly. For example:
95-
```c
96-
#define BAR_test(y) y
97-
#define FOO(x) BAR_ ## x(1)
98-
FOO(test) // Should expand to 1, but may produce incorrect output
99-
```
100-
10194
## Code Quality
10295

10396
Please run `cargo fmt` before committing code, and `cargo clippy` regularly while working. Code should build without warnings.

0 commit comments

Comments
 (0)