2012-06-21 17:51:26 +08:00
|
|
|
set(LLVM_LINK_COMPONENTS
|
|
|
|
Support
|
|
|
|
)
|
|
|
|
|
|
|
|
add_llvm_unittest(SupportTests
|
|
|
|
AlignOfTest.cpp
|
|
|
|
AllocatorTest.cpp
|
2017-01-18 21:52:12 +08:00
|
|
|
ARMAttributeParser.cpp
|
2013-01-05 08:57:11 +08:00
|
|
|
ArrayRecyclerTest.cpp
|
2017-03-03 04:52:51 +08:00
|
|
|
BinaryStreamTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
BlockFrequencyTest.cpp
|
2014-04-30 00:12:13 +08:00
|
|
|
BranchProbabilityTest.cpp
|
2017-03-16 11:42:00 +08:00
|
|
|
CachePruningTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
Casting.cpp
|
2016-10-20 20:05:50 +08:00
|
|
|
Chrono.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
CommandLineTest.cpp
|
2013-04-23 16:28:39 +08:00
|
|
|
CompressionTest.cpp
|
2013-07-17 01:14:33 +08:00
|
|
|
ConvertUTFTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
DataExtractorTest.cpp
|
2016-12-27 17:31:20 +08:00
|
|
|
DebugTest.cpp
|
2015-02-04 05:08:33 +08:00
|
|
|
DwarfTest.cpp
|
2015-02-05 11:30:08 +08:00
|
|
|
EndianStreamTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
EndianTest.cpp
|
2013-01-21 04:32:30 +08:00
|
|
|
ErrorOrTest.cpp
|
2016-12-21 07:09:09 +08:00
|
|
|
ErrorTest.cpp
|
2012-08-01 10:29:50 +08:00
|
|
|
FileOutputBufferTest.cpp
|
2016-11-12 07:57:40 +08:00
|
|
|
FormatVariadicTest.cpp
|
2016-12-21 07:09:09 +08:00
|
|
|
GlobPatternTest.cpp
|
2016-10-14 01:43:20 +08:00
|
|
|
Host.cpp
|
2014-02-22 22:00:39 +08:00
|
|
|
LEB128Test.cpp
|
2013-12-27 12:28:57 +08:00
|
|
|
LineIteratorTest.cpp
|
2013-08-07 09:22:04 +08:00
|
|
|
LockFileManagerTest.cpp
|
2014-04-24 11:31:23 +08:00
|
|
|
MD5Test.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
ManagedStatic.cpp
|
|
|
|
MathExtrasTest.cpp
|
2012-10-05 04:29:44 +08:00
|
|
|
MemoryBufferTest.cpp
|
2012-09-20 04:46:12 +08:00
|
|
|
MemoryTest.cpp
|
2016-10-29 08:27:22 +08:00
|
|
|
NativeFormatTests.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
Path.cpp
|
2012-12-31 19:17:50 +08:00
|
|
|
ProcessTest.cpp
|
2013-04-23 03:03:55 +08:00
|
|
|
ProgramTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
RegexTest.cpp
|
2015-10-12 23:11:47 +08:00
|
|
|
ReplaceFileTest.cpp
|
2014-06-20 09:30:43 +08:00
|
|
|
ScaledNumberTest.cpp
|
2013-09-28 05:09:25 +08:00
|
|
|
SourceMgrTest.cpp
|
2014-07-10 03:40:08 +08:00
|
|
|
SpecialCaseListTest.cpp
|
2014-06-19 08:26:49 +08:00
|
|
|
StringPool.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
SwapByteOrderTest.cpp
|
2017-01-10 06:55:00 +08:00
|
|
|
TarWriterTest.cpp
|
2016-03-06 12:50:55 +08:00
|
|
|
TargetParserTest.cpp
|
2013-12-20 04:32:44 +08:00
|
|
|
ThreadLocalTest.cpp
|
2015-12-15 08:59:19 +08:00
|
|
|
ThreadPool.cpp
|
2017-01-10 06:55:00 +08:00
|
|
|
Threading.cpp
|
2015-12-23 01:36:17 +08:00
|
|
|
TimerTest.cpp
|
2016-02-25 11:58:21 +08:00
|
|
|
TypeNameTest.cpp
|
2015-08-06 06:57:34 +08: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 10:54:54 +08:00
|
|
|
TrigramIndexTest.cpp
|
2013-09-05 00:00:12 +08:00
|
|
|
UnicodeTest.cpp
|
2012-12-13 04:46:15 +08:00
|
|
|
YAMLIOTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
YAMLParserTest.cpp
|
2012-09-15 07:36:56 +08:00
|
|
|
formatted_raw_ostream_test.cpp
|
2012-09-15 07:15:56 +08:00
|
|
|
raw_ostream_test.cpp
|
2015-04-14 23:00:34 +08:00
|
|
|
raw_pwrite_stream_test.cpp
|
2016-04-01 12:30:16 +08:00
|
|
|
raw_sha1_ostream_test.cpp
|
2016-09-27 23:45:57 +08:00
|
|
|
xxhashTest.cpp
|
2012-06-21 17:51:26 +08:00
|
|
|
)
|
2014-11-08 00:08:19 +08:00
|
|
|
|
|
|
|
# ManagedStatic.cpp uses <pthread>.
|
2017-02-10 09:59:20 +08: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-28 00:55:24 +08:00
|
|
|
|
|
|
|
add_subdirectory(DynamicLibrary)
|