mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
a46f4c6583
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
64 lines
1.2 KiB
CMake
64 lines
1.2 KiB
CMake
set(LLVM_LINK_COMPONENTS
|
|
Support
|
|
)
|
|
|
|
add_llvm_unittest(SupportTests
|
|
AlignOfTest.cpp
|
|
AllocatorTest.cpp
|
|
ArrayRecyclerTest.cpp
|
|
BlockFrequencyTest.cpp
|
|
BranchProbabilityTest.cpp
|
|
Casting.cpp
|
|
Chrono.cpp
|
|
CommandLineTest.cpp
|
|
CompressionTest.cpp
|
|
ConvertUTFTest.cpp
|
|
DataExtractorTest.cpp
|
|
DwarfTest.cpp
|
|
EndianStreamTest.cpp
|
|
EndianTest.cpp
|
|
ErrorTest.cpp
|
|
ErrorOrTest.cpp
|
|
FileOutputBufferTest.cpp
|
|
FormatVariadicTest.cpp
|
|
Host.cpp
|
|
LEB128Test.cpp
|
|
LineIteratorTest.cpp
|
|
LockFileManagerTest.cpp
|
|
MD5Test.cpp
|
|
ManagedStatic.cpp
|
|
MathExtrasTest.cpp
|
|
MemoryBufferTest.cpp
|
|
MemoryTest.cpp
|
|
NativeFormatTests.cpp
|
|
Path.cpp
|
|
ProcessTest.cpp
|
|
ProgramTest.cpp
|
|
RegexTest.cpp
|
|
ReplaceFileTest.cpp
|
|
ScaledNumberTest.cpp
|
|
SourceMgrTest.cpp
|
|
SpecialCaseListTest.cpp
|
|
StringPool.cpp
|
|
SwapByteOrderTest.cpp
|
|
TargetParserTest.cpp
|
|
Threading.cpp
|
|
ThreadLocalTest.cpp
|
|
ThreadPool.cpp
|
|
TimerTest.cpp
|
|
TypeNameTest.cpp
|
|
TrailingObjectsTest.cpp
|
|
TrigramIndexTest.cpp
|
|
UnicodeTest.cpp
|
|
YAMLIOTest.cpp
|
|
YAMLParserTest.cpp
|
|
formatted_raw_ostream_test.cpp
|
|
raw_ostream_test.cpp
|
|
raw_pwrite_stream_test.cpp
|
|
raw_sha1_ostream_test.cpp
|
|
xxhashTest.cpp
|
|
)
|
|
|
|
# ManagedStatic.cpp uses <pthread>.
|
|
target_link_libraries(SupportTests ${PTHREAD_LIB})
|