Vectorize fast path of _cpp_clean_line.
* configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests. (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE. (ptrdiff_t): Check via AC_CHECK_TYPE. * config.in, configure: Rebuild. * system.h: Include stdint.h, if available. * lex.c (WORDS_BIGENDIAN): Provide default. (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp, acc_char_index, search_line_acc_char, repl_chars, search_line_mmx, search_line_sse2, search_line_sse42, init_vectorized_lexer, search_line_fast): New. (_cpp_clean_line): Use search_line_fast. Restructure the fast loop to make it clear when we're leaving the loop. Stay in the fast loop for non-trigraph '?'. Co-Authored-By:Andi Kleen <ak@linux.intel.com> Co-Authored-By:
David S. Miller <davem@davemloft.net> From-SVN: r163446
Showing
- libcpp/ChangeLog 18 additions, 0 deletionslibcpp/ChangeLog
- libcpp/config.in 25 additions, 0 deletionslibcpp/config.in
- libcpp/configure 314 additions, 42 deletionslibcpp/configure
- libcpp/configure.ac 4 additions, 1 deletionlibcpp/configure.ac
- libcpp/lex.c 589 additions, 56 deletionslibcpp/lex.c
- libcpp/system.h 3 additions, 0 deletionslibcpp/system.h
Loading
Please register or sign in to comment