1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib/Support
Fangrui Song 5c795970c1 [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures after D83273
Previously the time complexity is O(|number of paths from the root to an
implied feature| * CPU_FWATURE_MAX) where CPU_FEATURE_MAX is 92.

The number of paths can be large (theoretically exponential).

For an inline asm statement, there is a code path
`clang::Parser::ParseAsmStatement -> clang::Sema::ActOnGCCAsmStmt -> ASTContext::getFunctionFeatureMap`
leading to potentially many calls of getImpliedEnabledFeatures (41 for my -march=native case).

We should improve the performance a bit in case the number of inline asm
statements is large (Linux kernel builds).

Reviewed By: craig.topper

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

(cherry picked from commit 0c7af8c83bd1acb0ca78f35ddde29b6fde4363a0)
2020-08-18 12:37:17 +02:00
..
Unix [Support] fix user_cache_directory on mac 2020-07-06 12:54:11 +02:00
Windows [Support] Fix Windows directory_iterator_construct out of bounds 2020-07-15 10:13:45 +01:00
AArch64TargetParser.cpp AArch6/ARMTargetParser.h - move Triple.h dependency down to cpp file. NFC. 2020-05-08 11:10:28 +01:00
ABIBreak.cpp
Allocator.cpp
AMDGPUMetadata.cpp AMDGPU: Remove .value_type from kernel metadata 2020-07-10 18:16:31 -04:00
APFloat.cpp Fix convertBFloatAPFloatToAPInt for NaN/Inf values 2020-06-05 17:22:43 -07:00
APInt.cpp [ADT] Make Load(AP)IntFromMemory pointer argument const 2020-07-13 17:32:54 +02:00
APSInt.cpp ADT: Fix that APSInt's string constructor claims it requires 5 bits to store a zero 2020-06-10 16:36:33 +02:00
ARMAttributeParser.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
ARMBuildAttrs.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
ARMTargetParser.cpp AArch6/ARMTargetParser.h - move Triple.h dependency down to cpp file. NFC. 2020-05-08 11:10:28 +01:00
ARMWinEH.cpp
Atomic.cpp
BinaryStreamError.cpp
BinaryStreamReader.cpp
BinaryStreamRef.cpp
BinaryStreamWriter.cpp
BlockFrequency.cpp
BranchProbability.cpp Make some static class members constexpr 2020-04-22 12:25:01 +02:00
BuryPointer.cpp
CachePruning.cpp CachePruning.h - reduce StringRef.h to Optional.h include. NFC 2020-05-08 14:06:53 +01:00
Chrono.cpp
circular_raw_ostream.cpp
CMakeLists.txt Revert "[CMake] Simplify CMake handling for zlib" 2020-07-14 19:56:10 -07:00
CodeGenCoverage.cpp Introduce llvm::sys::Process::getProcessId() and adopt it 2020-04-16 15:05:37 +03:00
COM.cpp
CommandLine.cpp VersionPrinter - use const auto& iterator in for-range-loop. 2020-07-09 10:56:38 +01:00
Compression.cpp Revert "[CMake] Simplify CMake handling for zlib" 2020-07-14 19:56:10 -07:00
ConvertUTF.cpp
ConvertUTFWrapper.cpp
COPYRIGHT.regex
CrashRecoveryContext.cpp
CRC.cpp Revert "[CMake] Simplify CMake handling for zlib" 2020-07-14 19:56:10 -07:00
DAGDeltaAlgorithm.cpp
DataExtractor.cpp [Support] Make DataExtractor error messages more clear 2020-06-02 12:57:51 +02:00
Debug.cpp
DebugCounter.cpp DebugCounterList::printOptionInfo - use const auto& iterator in for-range-loop. 2020-07-09 11:37:49 +01:00
DeltaAlgorithm.cpp
DJB.cpp
DynamicLibrary.cpp
ELFAttributeParser.cpp [RISCV] Support RISC-V ELF attributes sections in llvm-readobj. 2020-04-01 21:50:11 +08:00
ELFAttributes.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
Errno.cpp
Error.cpp
ErrorHandling.cpp
ExtensibleRTTI.cpp [Support] Add missing files from e823068306e. 2020-04-13 13:30:45 -07:00
FileCheck.cpp [FileCheck] Implement * and / operators for ExpressionValue. 2020-06-17 09:39:17 +00:00
FileCheckImpl.h [FileCheck] Implement * and / operators for ExpressionValue. 2020-06-17 09:39:17 +00:00
FileCollector.cpp FileCollector.h - reduce Twine.h include to forward declaration. NFC. 2020-06-27 11:16:25 +01:00
FileOutputBuffer.cpp FileOutputBuffer.h - remove unused includes. NFC. 2020-05-28 14:38:12 +01:00
FileUtilities.cpp std::isspace -> llvm::isSpace (where locale should be ignored) 2020-05-02 15:36:04 +02:00
FoldingSet.cpp [Support] FoldingSetNodeID::AddString(): reserve memory 2020-06-08 23:26:54 +03:00
FormattedStream.cpp [Support] Fix signed/unsigned comparison warning 2020-07-08 11:26:10 +01:00
FormatVariadic.cpp [FormatVariadic] Reduce allocations 2020-04-11 14:54:32 +02:00
GlobPattern.cpp Revert rGca18ce1a00cd8b7cb7ce0e130440f5ae1ffe86ee "GlobPattern.h - remove unnecessary BitVector.h/StringRef.h includes. NFC" 2020-05-17 18:51:21 +01:00
GraphWriter.cpp Fix SelectionDAG Graph Printing on Windows 2020-05-05 17:01:05 -07:00
Hashing.cpp
Host.cpp [X86] Remove model number based detection for 'pentiumpro', 'pentium2', 'pentium3', 'pentium-m', and 'yonah' from getHostCPUName. 2020-07-12 12:59:25 -07:00
InitLLVM.cpp
IntEqClasses.cpp
IntervalMap.cpp
ItaniumManglingCanonicalizer.cpp ItaniumManglingCanonicalizer - reduce StringRef.h include to forward declaration + remove duplicate includes. NFC 2020-05-08 14:06:53 +01:00
JSON.cpp
KnownBits.cpp [KnownBits] Move AND, OR and XOR logic into KnownBits 2020-04-09 10:10:37 +01:00
LEB128.cpp
LineIterator.cpp
LLVMBuild.txt
Locale.cpp
LockFileManager.cpp Introduce llvm::sys::Process::getProcessId() and adopt it 2020-04-16 15:05:37 +03:00
LowLevelType.cpp
ManagedStatic.cpp
MathExtras.cpp
MD5.cpp
MemAlloc.cpp Replicate attributes on definition to make MSVC less noisy 2020-04-25 02:02:00 +02:00
Memory.cpp
MemoryBuffer.cpp [Clang] Expose RequiresNullTerminator in FileManager. 2020-04-15 14:17:51 -07:00
NativeFormatting.cpp NativeFormatting.h - reduce raw_ostream.h include to forward declaration. NFC. 2020-05-09 13:32:14 +01:00
OptimizedStructLayout.cpp Rename OptimalLayout to OptimizedStructLayout at Chris's request. 2020-04-10 00:14:20 -04:00
Optional.cpp
Parallel.cpp [Support] Define llvm::parallel::strategy for -DLLVM_ENABLE_THREADS=off builds after D76885 2020-07-08 10:51:20 -07:00
Path.cpp [Clang] Restore replace_path_prefix instead of startswith 2020-05-13 13:49:14 -04:00
PluginLoader.cpp
PrettyStackTrace.cpp [Driver] When forcing a crash print the bug report message 2020-06-29 13:13:12 +01:00
Process.cpp
Program.cpp [Clang] Move clang::Job::printArg to llvm::sys::printArg. NFCI. 2020-06-18 09:17:13 -04:00
RandomNumberGenerator.cpp
raw_os_ostream.cpp
raw_ostream.cpp [Support] Don't tie errs() to outs() by default 2020-06-11 15:19:56 -07:00
regcomp.c
regengine.inc
regerror.c
regex2.h
regex_impl.h
Regex.cpp [ASTMatchers] Enhanced support for matchers taking Regex arguments 2020-07-02 14:52:25 +01:00
regexec.c
regfree.c
regstrlcpy.c
regutils.h
RISCVAttributeParser.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
RISCVAttributes.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
RWMutex.cpp
ScaledNumber.cpp
ScopedPrinter.cpp
SHA1.cpp SHA1.h - remove unnecessary ArrayRef.h/StringRef.h includes. NFC. 2020-04-21 15:12:17 +01:00
Signals.cpp
Signposts.cpp
SmallPtrSet.cpp
SmallVector.cpp [NFC] Add include cstdint for SIZE_MAX. 2020-04-30 17:24:05 -07:00
SourceMgr.cpp [Support] Replace 'DisableColors' boolean with 'ColorMode' enum 2020-06-08 09:48:47 -07:00
SpecialCaseList.cpp As part of using inclusive language within the llvm project, 2020-06-20 00:24:57 -07:00
Statistic.cpp Fix "Statistics are disabled" 2020-06-03 16:10:09 -07:00
StringExtras.cpp [llvm][StringExtras] Add missing include of cctype 2020-04-14 19:29:54 -07:00
StringMap.cpp Refactor StringMap.h, splitting StringMapEntry out to its own header. 2020-04-12 08:25:17 -07:00
StringRef.cpp [StringRef] Use some trickery to avoid initializing the std::string returned by upper()/lower() 2020-05-21 16:03:09 +02:00
StringSaver.cpp Temporarily Revert "[Support] Make UniqueStringSaver wrap a StringSet" 2020-05-14 19:18:20 -07:00
SuffixTree.cpp [SuffixTree][MachOpt] Factoring out Suffix Tree and adding Unit Tests 2020-06-08 12:44:18 -07:00
SymbolRemappingReader.cpp
SystemUtils.cpp [opt] Remove obsolete --quiet option 2020-07-08 13:21:20 -07:00
TargetParser.cpp [RISCV] Add support for -mcpu option. 2020-07-20 15:38:39 +02:00
TargetRegistry.cpp
TarWriter.cpp Reland D78945 TarWriter: Only use 137 of the 155 prefix bytes. 2020-04-27 10:37:23 -07:00
Threading.cpp [llvm-cov] Prevent llvm-cov from using too many threads 2020-04-24 15:28:25 -04:00
ThreadLocal.cpp
ThreadPool.cpp [Support] Simplify and optimize ThreadPool 2020-04-28 12:20:42 -07:00
TimeProfiler.cpp [TimeProfiler] Emit clock synchronization point 2020-04-23 01:09:31 +03:00
Timer.cpp [Clang][Driver] In -fintegrated-cc1 mode, avoid crashing on exit after a compiler crash 2020-03-13 08:15:35 -04:00
ToolOutputFile.cpp [Support] Use outs() in ToolOutputFile 2020-06-04 14:56:35 +02:00
TrigramIndex.cpp TrigramIndex.h - remove unnecessary StringMap.h include. NFC 2020-04-12 14:30:52 +01:00
Triple.cpp [macho] emit LC_BUILD_VERSION load command for supported OSes and platforms 2020-06-30 11:48:17 -07:00
Twine.cpp
Unicode.cpp
UnicodeCaseFold.cpp
Valgrind.cpp
VersionTuple.cpp VersionTuple.h - reduce includes to forward declarations. NFC. 2020-06-08 11:08:44 +01:00
VirtualFileSystem.cpp [YAMLVFSWriter] Fix for delimiters 2020-05-12 15:43:10 -07:00
Watchdog.cpp
WithColor.cpp WithColor.h - reduce CommandLine.h include to forward declaration. NFC. 2020-06-23 17:07:53 +01:00
X86TargetParser.cpp [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures after D83273 2020-08-18 12:37:17 +02:00
xxhash.cpp
YAMLParser.cpp [YAMLParser] Scanner::setError - ensure we use the StringRef::iterator argument (PR45043) 2020-04-03 18:55:38 +01:00
YAMLTraits.cpp [yaml][clang-tidy] Fix multiline YAML serialization 2020-07-09 02:41:58 -07:00
Z3Solver.cpp [llvm][Z3][NFC] Improve mkBitvector performance 2020-06-30 12:26:50 +02:00