Go to file
Ivan Krasin 3dade419bf Use trigrams to speed up SpecialCaseList.
Summary:
it's often the case when the rules in the SpecialCaseList
are of the form hel.o*bar. That gives us a chance to build
trigram index to quickly discard 99% of inputs without
running a full regex. A similar idea was used in Google Code Search
as described in the blog post:
https://swtch.com/~rsc/regexp/regexp4.html

The check is defeated, if there's at least one regex
more complicated than that. In this case, all inputs
will go through the regex. That said, the real-world
rules are often simple or can be simplied. That considerably
speeds up compiling Chromium with CFI and UBSan.

As measured on Chromium's content_message_generator.cc:

before, CFI: 44 s
after, CFI: 23 s
after, CFI, no blacklist: 23 s (~1% slower, but 3 runs were unable to show the difference)
after, regular compilation to bitcode: 23 s

Reviewers: pcc

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D27188

llvm-svn: 288303
2016-12-01 02:54:54 +00:00
clang PR31081: ignore exception specifications when deducing function template 2016-12-01 02:11:49 +00:00
clang-tools-extra [clang-tidy] Make format style customizable 2016-11-30 18:06:42 +00:00
compiler-rt Release memory to OS only when the requested range covers the entire page 2016-11-30 20:41:59 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Fix build since r286752. 2016-11-14 16:06:33 +00:00
libcxx Protect std::array tests under noexceptions 2016-11-29 17:10:29 +00:00
libcxxabi __cxa_demangle: use default member initialization 2016-11-18 19:01:53 +00:00
libunwind EHABI: mark some functions as exported 2016-11-17 23:53:35 +00:00
lld Dump Codeview type information correctly. 2016-12-01 01:22:48 +00:00
lldb Add another address to look for the kernel load addr in 2016-11-30 23:00:52 +00:00
llgo [llgo] add llgo source path to LLVM_GO_PACKAGES 2016-07-27 03:01:00 +00:00
llvm Use trigrams to speed up SpecialCaseList. 2016-12-01 02:54:54 +00:00
openmp Fixed typo in kmp_process_deps trace output 2016-11-28 20:10:32 +00:00
parallel-libs [Acxxel] Remove setActiveDeviceForThread 2016-10-28 00:54:02 +00:00
polly Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes (NFC). 2016-11-29 18:14:12 +00:00