2012-06-21 11:51:26 +02:00
|
|
|
set(LLVM_LINK_COMPONENTS
|
|
|
|
Support
|
|
|
|
)
|
|
|
|
|
|
|
|
add_llvm_unittest(SupportTests
|
|
|
|
AlignOfTest.cpp
|
|
|
|
AllocatorTest.cpp
|
2017-01-18 14:52:12 +01:00
|
|
|
ARMAttributeParser.cpp
|
2013-01-05 01:57:11 +01:00
|
|
|
ArrayRecyclerTest.cpp
|
2017-03-02 21:52:51 +01:00
|
|
|
BinaryStreamTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
BlockFrequencyTest.cpp
|
2014-04-29 18:12:13 +02:00
|
|
|
BranchProbabilityTest.cpp
|
2017-03-16 04:42:00 +01:00
|
|
|
CachePruningTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
Casting.cpp
|
2016-10-20 14:05:50 +02:00
|
|
|
Chrono.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
CommandLineTest.cpp
|
2013-04-23 10:28:39 +02:00
|
|
|
CompressionTest.cpp
|
2013-07-16 19:14:33 +02:00
|
|
|
ConvertUTFTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
DataExtractorTest.cpp
|
2016-12-27 10:31:20 +01:00
|
|
|
DebugTest.cpp
|
2015-02-03 22:08:33 +01:00
|
|
|
DwarfTest.cpp
|
2015-02-05 04:30:08 +01:00
|
|
|
EndianStreamTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
EndianTest.cpp
|
2013-01-20 21:32:30 +01:00
|
|
|
ErrorOrTest.cpp
|
2016-12-21 00:09:09 +01:00
|
|
|
ErrorTest.cpp
|
2012-08-01 04:29:50 +02:00
|
|
|
FileOutputBufferTest.cpp
|
2016-11-12 00:57:40 +01:00
|
|
|
FormatVariadicTest.cpp
|
2016-12-21 00:09:09 +01:00
|
|
|
GlobPatternTest.cpp
|
2016-10-13 19:43:20 +02:00
|
|
|
Host.cpp
|
2014-02-22 15:00:39 +01:00
|
|
|
LEB128Test.cpp
|
2013-12-27 05:28:57 +01:00
|
|
|
LineIteratorTest.cpp
|
2013-08-07 03:22:04 +02:00
|
|
|
LockFileManagerTest.cpp
|
2014-04-24 05:31:23 +02:00
|
|
|
MD5Test.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
ManagedStatic.cpp
|
|
|
|
MathExtrasTest.cpp
|
2012-10-04 22:29:44 +02:00
|
|
|
MemoryBufferTest.cpp
|
2012-09-19 22:46:12 +02:00
|
|
|
MemoryTest.cpp
|
2016-10-29 02:27:22 +02:00
|
|
|
NativeFormatTests.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
Path.cpp
|
2012-12-31 12:17:50 +01:00
|
|
|
ProcessTest.cpp
|
2013-04-22 21:03:55 +02:00
|
|
|
ProgramTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
RegexTest.cpp
|
2015-10-12 17:11:47 +02:00
|
|
|
ReplaceFileTest.cpp
|
2014-06-20 03:30:43 +02:00
|
|
|
ScaledNumberTest.cpp
|
2013-09-27 23:09:25 +02:00
|
|
|
SourceMgrTest.cpp
|
2014-07-09 21:40:08 +02:00
|
|
|
SpecialCaseListTest.cpp
|
2014-06-19 02:26:49 +02:00
|
|
|
StringPool.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
SwapByteOrderTest.cpp
|
2017-01-09 23:55:00 +01:00
|
|
|
TarWriterTest.cpp
|
2016-03-06 05:50:55 +01:00
|
|
|
TargetParserTest.cpp
|
2013-12-19 21:32:44 +01:00
|
|
|
ThreadLocalTest.cpp
|
2015-12-15 01:59:19 +01:00
|
|
|
ThreadPool.cpp
|
2017-01-09 23:55:00 +01:00
|
|
|
Threading.cpp
|
2015-12-22 18:36:17 +01:00
|
|
|
TimerTest.cpp
|
2016-02-25 04:58:21 +01:00
|
|
|
TypeNameTest.cpp
|
2015-08-06 00:57:34 +02:00
|
|
|
TrailingObjectsTest.cpp
|
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 03:54:54 +01:00
|
|
|
TrigramIndexTest.cpp
|
2013-09-04 18:00:12 +02:00
|
|
|
UnicodeTest.cpp
|
2012-12-12 21:46:15 +01:00
|
|
|
YAMLIOTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
YAMLParserTest.cpp
|
2012-09-15 01:36:56 +02:00
|
|
|
formatted_raw_ostream_test.cpp
|
2012-09-15 01:15:56 +02:00
|
|
|
raw_ostream_test.cpp
|
2015-04-14 17:00:34 +02:00
|
|
|
raw_pwrite_stream_test.cpp
|
2016-04-01 06:30:16 +02:00
|
|
|
raw_sha1_ostream_test.cpp
|
2016-09-27 17:45:57 +02:00
|
|
|
xxhashTest.cpp
|
2012-06-21 11:51:26 +02:00
|
|
|
)
|
2014-11-07 17:08:19 +01:00
|
|
|
|
|
|
|
# ManagedStatic.cpp uses <pthread>.
|
2017-02-10 02:59:20 +01:00
|
|
|
target_link_libraries(SupportTests ${LLVM_PTHREAD_LIB})
|
Refactor DynamicLibrary so searching for a symbol will have a defined order and
libraries are properly unloaded when llvm_shutdown is called.
Summary:
This was mostly affecting usage of the JIT, where storing the library handles in
a set made iteration unordered/undefined. This lead to disagreement between the
JIT and native code as to what the address and implementation of particularly on
Windows with stdlib functions:
JIT: putenv_s("TEST", "VALUE") // called msvcrt.dll, putenv_s
JIT: getenv("TEST") -> "VALUE" // called msvcrt.dll, getenv
Native: getenv("TEST") -> NULL // called ucrt.dll, getenv
Also fixed is the issue of DynamicLibrary::getPermanentLibrary(0,0) on Windows
not giving priority to the process' symbols as it did on Unix.
Reviewers: chapuni, v.g.vassilev, lhames
Reviewed By: lhames
Subscribers: danalbert, srhines, mgorny, vsk, llvm-commits
Differential Revision: https://reviews.llvm.org/D30107
llvm-svn: 301562
2017-04-27 18:55:24 +02:00
|
|
|
|
|
|
|
add_subdirectory(DynamicLibrary)
|