MIPS vc vl va SPARC kc kl ka Intel 386 8c 8l 8a Motorola 68020 2c 2l 2a AT&T 3210 xc xl xa Intel 960 9c 9l 9a
typedef struct lock { int locked; } Lock; typedef struct node { int type; union { double dval; float fval; long lval; }; Lock; } Node; Lock* lock; Node* node;
lock = node;
extern void lock(Lock*); func(...) { ... lock(node); ... }
r = (Rectangle){point1, (Point){x,y+2}};
enum errors { Etoobig, Ealarm, Egreg }; char* errstrings[] = { [Ealarm] "Alarm call", [Egreg] "Panic: out of mbufs", [Etoobig] "Arg list too long", };
x = f(...)
f(&x, ...).
Node Marked name A1 const A2 &A1 A3 A3A1 N1 (note that this is not addressable) *N1 A4
Node Marked &A4 N2 N2N1 N1
MOVE a->b (remove) (sequence with no mention of a) USE b USE a (sequence with no mention of a) SET b SET b
SET a SET b (sequence with no use of b) USE a USE b (sequence with no use of b) MOVE a->b MOVE b->a
lines module 509 machine-independent headers 1070 machine-independent YACC source 6090 machine-independent C source 545 machine-dependent headers 6532 machine-dependent C source 298 loader headers 5215 loader C source
4.49s Plan 9 vc -N compile time (opposite of -O) 1.72s Plan 9 vc -N load time 148.69s Plan 9 vc -N run time 15.07s Plan 9 vc compile time (-O implicit) 1.66s Plan 9 vc load time 89.96s Plan 9 vc run time 14.83s vendor cc compile time 0.38s vendor cc load time 104.75s vendor cc run time 43.59s vendor cc -O compile time 0.38s vendor cc -O load time 76.19s vendor cc -O run time 8.19s vendor cc -O3 compile time 35.97s vendor cc -O3 load time 71.16s vendor cc -O3 run time