Ken Thompson
be219c5e9b
removed debug print
...
R=r
OCL=34087
CL=34087
2009-08-30 11:36:42 -07:00
Ken Thompson
bc15b94181
sped up optimization by not optimizing
...
very large functions.
R=r
OCL=34080
CL=34080
2009-08-29 20:33:21 -07:00
Ken Thompson
e667e8a4f7
arraytoslice and some cleanup
...
R=rsc
OCL=34058
CL=34058
2009-08-28 15:44:24 -07:00
Ken Thompson
3983171b08
sliceslice bug
...
R=rsc
OCL=34050
CL=34050
2009-08-28 13:45:48 -07:00
Ken Thompson
47c568880d
bug in sliceslice
...
R=rsc
OCL=34047
CL=34047
2009-08-28 13:32:09 -07:00
Ken Thompson
bf0130cc0f
sliceslice inline
...
R=rsc
OCL=34041
CL=34041
2009-08-28 12:37:39 -07:00
Ken Thompson
c19c933f5a
bug in arrayslice
...
R=rsc
OCL=33987
CL=33987
2009-08-27 14:59:26 -07:00
Ken Thompson
9bf597a210
inline slicearray
...
R=rsc
OCL=33974
CL=33974
2009-08-27 13:19:44 -07:00
Russ Cox
89f69bb3be
gc: handle iface == nil in back end
...
R=ken
OCL=33778
CL=33781
2009-08-24 15:20:37 -07:00
Russ Cox
7b29dbb866
symbol bugs.
...
do not emit unreachable data symbols.
R=austin
DELTA=103 (71 added, 4 deleted, 28 changed)
OCL=33325
CL=33622
2009-08-20 17:33:28 -07:00
Russ Cox
8a45917f3d
len and cap on chans
...
R=ken
OCL=33599
CL=33599
2009-08-20 11:12:04 -07:00
Russ Cox
ce9b379c90
no debug symbols for internal-only method types.
...
now 15% overhead instead of 30% in binaries.
R=ken
OCL=33235
CL=33288
2009-08-14 13:07:53 -07:00
Russ Cox
311c0b4807
6g/6l: add go type information to symbol table.
...
archive size +70%
binary size +30%
old
wreck.mtv=; ls -l /Users/rsc/bin/{godoc,gofmt}
-rwxr-xr-x 1 rsc eng 1487922 Aug 13 13:21 /Users/rsc/bin/godoc
-rwxr-xr-x 1 rsc eng 995995 Aug 13 13:21 /Users/rsc/bin/gofmt
wreck.mtv=; du -sh $GOROOT/pkg/
9.5M /home/rsc/go/pkg/
wreck.mtv=;
new
wreck.mtv=; ls -l /Users/rsc/bin/{godoc,gofmt}
-rwxr-xr-x 1 rsc eng 2014390 Aug 13 14:25 /Users/rsc/bin/godoc
-rwxr-xr-x 1 rsc eng 1268705 Aug 13 14:25 /Users/rsc/bin/gofmt
wreck.mtv=; du -sh $GOROOT/pkg
16M /home/rsc/go/pkg
wreck.mtv=;
R=ken
OCL=33217
CL=33220
2009-08-13 14:41:42 -07:00
Russ Cox
43f29e64a6
mechanism for putting go types into 6.out symbol table.
...
no types yet.
R=ken
OCL=33142
CL=33146
2009-08-12 18:16:24 -07:00
Russ Cox
dd5f32330c
6g: save all 64 bits of AX/DX
...
8g: save AX/DX around div
R=ken
OCL=33094
CL=33096
2009-08-12 13:18:27 -07:00
Russ Cox
3f91f80a21
8-bit div and mod
...
R=ken
OCL=32975
CL=32975
2009-08-10 12:46:23 -07:00
Ken Thompson
f70e285178
bug in int8 mod
...
R=rsc
OCL=32971
CL=32971
2009-08-10 11:20:33 -07:00
Ken Thompson
60238e25bf
increase from 3 to 11 floating registers
...
R=rsc
OCL=32947
CL=32947
2009-08-09 16:42:21 -07:00
Ken Thompson
34f76b5de5
1. integer division by a constant done.
...
2. moved functions from 6g to gc
for portability to other families.
3. added rotate-carry instructions to
peek and reg.
R=rsc
OCL=32946
CL=32946
2009-08-09 15:16:06 -07:00
Ken Thompson
812f06b3ca
another plateau - almost done
...
only need to fix up certain
denominators
R=rsc
OCL=32928
CL=32928
2009-08-08 16:53:21 -07:00
Ken Thompson
07044ba6e5
plateau in divide by a constant
...
still to do - overflow, mod
R=rsc
OCL=32927
CL=32927
2009-08-08 15:26:09 -07:00
Ken Thompson
8b8a2bd945
more work on divide by constant.
...
no real change -- disabled because of bugs
R=rsc
OCL=32923
CL=32923
2009-08-07 20:21:04 -07:00
Ken Thompson
f1baf78247
divide by a constant power of 2
...
R=rsc
OCL=32858
CL=32858
2009-08-06 22:33:12 -07:00
Russ Cox
ebdbbe0f49
fix amd64 build
...
R=ken
OCL=32771
CL=32771
2009-08-05 00:11:24 -07:00
Russ Cox
a121410541
make Syms smaller.
...
collapse a lot of duplication in dcl.c
switch to NodeList* from Dcl*
R=ken
OCL=32770
CL=32770
2009-08-04 22:59:23 -07:00
Russ Cox
4dec8ef35a
get function calls out of the way before
...
allocating registers in shift and div.
fix behavior when res == a reserved register.
R=ken
OCL=32765
CL=32767
2009-08-04 19:16:57 -07:00
Russ Cox
d169dcee3b
fix division bug
...
R=ken
OCL=32760
CL=32760
2009-08-04 17:59:10 -07:00
Russ Cox
b754b4348f
delete some code from walkexpr that is now
...
handled by typecheck.
second switch is gone
move floating point minus into back end
R=ken
OCL=32558
CL=32558
2009-07-30 18:56:44 -07:00
Russ Cox
ff3a73b407
typechecking checkpoint.
...
started to move typechecking to another file.
can build entire tree still, but lots of work
is duplicated. much to clean up.
R=ken
OCL=32536
CL=32543
2009-07-30 16:53:08 -07:00
Russ Cox
517e3457cc
fix build on amd64
...
R=ken
OCL=32521
CL=32521
2009-07-30 11:03:58 -07:00
Russ Cox
2946069e3f
break and continue fixes
...
labeled break/continue was using
first loop with any label,
not first loop with the right label.
R=ken
OCL=32453
CL=32458
2009-07-29 14:49:01 -07:00
Phil Pennock
d6f89c69c4
Support use of $GOBINDIR to override $HOME/bin
...
R=r,gri,rsc
APPROVED=rsc
DELTA=53 (12 added, 6 deleted, 35 changed)
OCL=31822
CL=32282
2009-07-28 11:23:24 -07:00
Russ Cox
30228a3bc6
avoid register computing len(x), cap(x)
...
for slice or string x.
R=ken
OCL=32249
CL=32249
2009-07-27 15:55:27 -07:00
Russ Cox
db508ccbff
baby step: const decls can refer to future
...
consts in the same factored block
const (
X = Y;
Y = 2;
)
R=ken
OCL=31782
CL=31782
2009-07-17 13:38:16 -07:00
Russ Cox
e52e9ca82e
another step toward eliminating forward declarations.
...
introduce NodeList* type in compiler to replace OLIST.
this clarifies where lists can and cannot occur.
list append and concatenation are now cheap.
the _r rules are gone from yacc.
rev and unrev are gone.
no more lists of lists.
the representation of assignments is a bit clunkier.
split into OAS (1=1) and OAS2 (2 or more on one side).
delete dead chanrecv3 code.
delay construction of func types.
R=ken
OCL=31745
CL=31762
2009-07-17 01:00:44 -07:00
Russ Cox
a6799963ef
update 6g to new REGARG convention.
...
silence gcc warning.
R=ken
OCL=31583
CL=31583
2009-07-13 23:30:30 -07:00
Russ Cox
541e638f9b
6g, 8g: generate data structures for new reflect interface (CL 31107)
...
R=ken
OCL=31122
CL=31278
2009-07-07 11:03:04 -07:00
Russ Cox
2acbc37166
various 6g cleanup:
...
* give genwrapper and genembedtramp the same signature.
* move duint8, duint16, duint32, duint64, duintptr into gc.
* tidy genwrapper.
* bug involving struct field symbols in signature list.
(hash-order dependent so hard to trigger)
* new Type print format %#-T like %#T but omits
names on function arguments.
R=ken
OCL=31237
CL=31237
2009-07-06 22:31:20 -07:00
Russ Cox
0aef57e37f
fix a 6g crash after type errors.
...
do not bother warning about marks left
on stack after syntax errors.
leave OCONV nodes in tree to avoid type errors
arising from multiple walks.
R=ken
OCL=30639
CL=30662
2009-06-23 15:30:59 -07:00
Russ Cox
e9e388412c
6g: add TODO about float constants back
...
R=ken
OCL=29984
CL=29997
2009-06-06 19:27:30 -07:00
Russ Cox
f1f970ad21
minor cleanup, 64-bit /= and %= on 32-bit
...
R=ken
OCL=29806
CL=29808
2009-06-02 23:21:58 -07:00
Ken Thompson
1c7bee0567
bug 155
...
R=r
OCL=29619
CL=29619
2009-05-29 14:42:24 -07:00
Russ Cox
3aa006b8cd
better 64-bit handling in 8g.
...
fewer moves, fewer stupid LEALs.
powser1 runs (with evaln commented out).
beginnings of floating point.
R=ken
OCL=29540
CL=29543
2009-05-28 15:48:47 -07:00
Russ Cox
e81d97ea84
clean up gmove:
...
* conversions all in one place.
* no separate load, store phases;
direct memory addressing when possible
(this is the x86 after all!).
avoids extra registers, extra MOVQs.
* fixes int32 -> uint64 bug
(was zero-extending)
R=ken
OCL=29482
CL=29484
2009-05-27 23:55:14 -07:00
Ken Thompson
798b19bf77
improvement in registerization
...
R=r
OCL=29317
CL=29317
2009-05-23 16:36:43 -07:00
Ken Thompson
4238b18344
1. check for dups in complex literals
...
structtype{a:1, a:2}
maptypetype{"xx":1, "xx":2}
arraytypetype{5:1, 5:2}
2. bug in registerization concerning
alias of a struct and one of its elements
3. code optimization of struct.field
(which exposed bug in 2)
R=r
OCL=29315
CL=29315
2009-05-23 15:34:29 -07:00
Ken Thompson
bba10b3f49
some array init bugs
...
renamed 6g/(gen|align|obj).c
R=r
OCL=29205
CL=29205
2009-05-21 15:44:06 -07:00
Ken Thompson
a016081f43
added key:val extension to
...
structure and array literals
R=r
OCL=29190
CL=29190
2009-05-21 13:46:07 -07:00
Ken Thompson
da49bfe664
static initialization of strings
...
R=r
OCL=29036
CL=29036
2009-05-19 13:37:36 -07:00
Ken Thompson
b91a043d02
static initialization of slices
...
R=r
OCL=29016
CL=29016
2009-05-18 22:11:22 -07:00