speed dup_token() up
It's one of the hottest spots in the entire pre-process.c;
unfortunately, code generation is not good.
Compiler does not know that streampos won't be pointing
to alloc->pos (alloc has been freshly allocated, but...),
so it resorts to field-by-field copying, with arseloads of
reloads; worse, those are bitfields, so results are really
not pretty.
Better solution: fetch *streampos into a local variable first,
then copy the entire token->pos to alloc->pos and assign the
fields we need to copy from *streampos.
Ends up with much better code generation.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 file changed