]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
libcpp: preprocessor speedup patches from mainline.
authorpfg <pfg@FreeBSD.org>
Sat, 16 Nov 2013 01:07:02 +0000 (01:07 +0000)
committerpfg <pfg@FreeBSD.org>
Sat, 16 Nov 2013 01:07:02 +0000 (01:07 +0000)
commitd27f7c2a842e4f80ea9a2408d941730107efd355
treeaeaba23e8862c5a47c20ef7eff077d79a61647c2
parent43666eab78b10808646ed428d2019b2dcf0d92f0
libcpp: preprocessor speedup patches from mainline.

* lex.c (_cpp_clean_line): Add uses of __builtin_expect.  Don't
look backward at the end of the line unless we saw a backslash.

* internal.h (struct cpp_reader): Add new fields:
nonexistent_file_hash and nonexistent_file_ob.
* files.c: Include "obstack.h".
(find_file_in_dir): Before trying to open the file, look up the
path name in the hash table of nonexistent files.  After failing
to open the file, add the path name to the hash table.
(_cpp_find_file): Cache the results of looking up the file name
starting with the quote and bracket chain heads, if we can.
(nonexistent_file_hash_eq): New static function.
(_cpp_init_files): Initialize pfile->nonexistent_file_hash and
pfile->nonexistent_file_ob.
(_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
pfile->nonexistent_file_ob.

Obtained from: gcc 4.3 (rev. 120263, 124929 ; GPLv2)
MFC after: 3 weeks
contrib/gcclibs/libcpp/files.c
contrib/gcclibs/libcpp/internal.h
contrib/gcclibs/libcpp/lex.c