• Robert Griesemer's avatar
    cmd/compile: towards simpler and faster lexing: always use getr · 539aa05a
    Robert Griesemer authored
    Always reading runes (rather than bytes) has negligible overhead
    (a simple if at the moment - it can be eliminated eventually) but
    simplifies the lexer logic and opens up the door for speedups.
    In the process remove many int conversions that are now not needed
    anymore.
    
    Also, because identifiers are now more easily recognized, remove
    talph label and move identifier lexing "in place".
    
    Also, instead of accepting all chars < 0x80 and then check for
    "frogs", only permit valid characters in the first place. Removes
    an extra call for common simple tokens and leads to simpler logic.
    
    `time go build -a net/http` (best of 5 runs) seems 1% faster.
    Assuming this is in the noise, there is no noticeable performance
    degradation with this change.
    
    Change-Id: I3454c9bf8b91808188cf7a5f559341749da9a1eb
    Reviewed-on: https://go-review.googlesource.com/19847Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    Run-TryBot: Robert Griesemer <gri@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    539aa05a
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...