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