-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathTODO
57 lines (41 loc) · 970 Bytes
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
General
#######
-Wredundant-decls
-Wnested-externs
Major C Features
################
C99 _Complex types
C11 _Thread_local / gcc __thread
C11 _Atomic
cc1
###
-fno-builtin
default to external memset calls, -ffreestanding to use builtin on
-f{function,data}-sections
out/gen-optimisations:
rearrangement of 1+f()+1 to f() + 1 + 1 - avoid pre-call reg saves
__attribute__((pure))
- function with no side effects (e.g. strlen())
__attribute__((fastcall)), cdecl, etc
- see Windows name mangling - https://en.wikipedia.org/wiki/Name_mangling
[this is in the experimental/calling_conv branch]
code gen:
Treat %rsp as a frame constant if alloca() and vlas aren't used (impl_reg_frame_const)
attempt to build:
https://github.com/mit-pdos/xv6-public
cpp
###
fix dir-relative file opening (for #include <>):
cc -E dir/x.c
doesn't work, but
cd dir; cc -E x.c
does
macros over multiple lines
#define a(x, y) x + y
a(
1,
2
)
Testing
#######
update bugs/