1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/lib/Support
River Riddle deae9b5f50 [mlir] Add a ThreadPool to MLIRContext and refactor MLIR threading usage
This revision refactors the usage of multithreaded utilities in MLIR to use a common
thread pool within the MLIR context, in addition to a new utility that makes writing
multi-threaded code in MLIR less error prone. Using a unified thread pool brings about
several advantages:

* Better thread usage and more control
We currently use the static llvm threading utilities, which do not allow multiple
levels of asynchronous scheduling (even if there are open threads). This is due to
how the current TaskGroup structure works, which only allows one truly multithreaded
instance at a time. By having our own ThreadPool we gain more control and flexibility
over our job/thread scheduling, and in a followup can enable threading more parts of
the compiler.

* The static nature of TaskGroup causes issues in certain configurations
Due to the static nature of TaskGroup, there have been quite a few problems related to
destruction that have caused several downstream projects to disable threading. See
D104207 for discussion on some related fallout. By having a ThreadPool scoped to
the context, we don't have to worry about destruction and can ensure that any
additional MLIR thread usage ends when the context is destroyed.

Differential Revision: https://reviews.llvm.org/D104516
2021-06-23 01:29:24 +00:00
..
Unix [Support] Fix getMainExecutable on FreeBSD when called via an absolute path 2021-05-29 14:59:46 +01:00
Windows Recommit "Fix tmp files being left on Windows builds." with a fix for 2021-06-02 16:50:37 -07:00
AArch64TargetParser.cpp [AArch64] Add +flagm archictecture option, allowing the v8.4a flag modification extension. 2021-01-08 13:21:12 +00:00
ABIBreak.cpp
Allocator.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
AMDGPUMetadata.cpp [AMDGPU] HSAMD::fromString - replace std::string arg with StringRef. NFCI. 2021-01-26 16:09:39 +00:00
APFixedPoint.cpp [Fixed Point] Add floating point methods to APFixedPoint. 2020-10-09 10:27:42 +02:00
APFloat.cpp [APFloat] convertToDouble/Float can work on shorter types 2021-05-21 11:02:51 +07:00
APInt.cpp [ADT] Remove APInt/APSInt toString() std::string variants 2021-06-11 13:19:15 +01:00
APSInt.cpp
ARMAttributeParser.cpp [ARMAttributeParser] Correctly parse and print Tag_THUMB_ISA_use=3 2020-11-28 12:28:22 -08:00
ARMBuildAttrs.cpp
ARMTargetParser.cpp [ARM][AArch64] Require appropriate features for crypto algorithms 2021-04-28 16:26:18 +01:00
ARMWinEH.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
Atomic.cpp
AutoConvert.cpp [SystemZ][z/OS] Fix return values in AutoConversion functions 2021-05-05 09:43:14 -04:00
BinaryStreamError.cpp
BinaryStreamReader.cpp
BinaryStreamRef.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
BinaryStreamWriter.cpp
BlockFrequency.cpp
BranchProbability.cpp BranchProbability.cpp - add missing implicit cmath header dependency. NFCI. 2021-06-05 21:14:43 +01:00
BuryPointer.cpp Add LLVM_ATTRIBUTE_USED to fix problems which could be exposed by aggressive global pointer variable removal 2021-04-26 13:31:37 -07:00
CachePruning.cpp [ThinLTO] Also prune Thin-* files from the ThinLTO cache 2021-01-19 14:43:49 +01:00
Chrono.cpp
circular_raw_ostream.cpp
CMakeLists.txt [SystemZ][z/OS] Add the functions needed for handling EBCDIC I/O 2021-05-03 08:52:38 -04:00
CodeGenCoverage.cpp
COM.cpp
CommandLine.cpp [NFC] Correctly assert the indents for printEnumValHelpStr. 2021-05-07 14:30:43 +02:00
Compression.cpp
ConvertUTF.cpp
ConvertUTFWrapper.cpp Reland "[Support][unittests] Enforce alignment in ConvertUTFTest" 2020-10-14 12:02:27 +02:00
COPYRIGHT.regex
CrashRecoveryContext.cpp Revert "Make gCrashRecoveryEnabled thread local" 2021-02-10 13:36:56 -08:00
CRC.cpp
DAGDeltaAlgorithm.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
DataExtractor.cpp
Debug.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
DebugCounter.cpp [llvm] Use llvm::sort (NFC) 2021-01-17 10:39:45 -08:00
DeltaAlgorithm.cpp
DJB.cpp
DynamicLibrary.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
ELFAttributeParser.cpp [llvm-readobj, libSupport] - Refine the implementation of the code that dumps build attributes. 2020-12-02 13:51:32 +03:00
ELFAttributes.cpp
Errno.cpp
Error.cpp [Support] Add a C-API function to create a StringError instance. 2020-10-19 01:59:04 -07:00
ErrorHandling.cpp Remove -Wunused-result and -Wpedantic warnings from GCC. NFC. 2020-12-02 10:53:59 -05:00
ExtensibleRTTI.cpp
FileCollector.cpp [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
FileOutputBuffer.cpp Support: Add move semantics to mapped_file_region 2021-04-09 17:56:26 -07:00
FileUtilities.cpp
FoldingSet.cpp
FormattedStream.cpp
FormatVariadic.cpp
GlobPattern.cpp
GraphWriter.cpp [llvm][Support][NFC] Fix fallthrough attribute indentation 2021-04-30 10:31:31 +02:00
Hashing.cpp
Host.cpp [SystemZ][z/OS] Implement getHostCPUName for z/OS 2021-05-25 11:18:12 -04:00
InitLLVM.cpp [InitLLVM] Ensure SIGPIPE handler installed before sigaction() 2021-01-08 15:13:04 -08:00
InstructionCost.cpp [Support] Introduce a new InstructionCost class 2020-12-11 08:12:54 +00:00
IntEqClasses.cpp
IntervalMap.cpp
ItaniumManglingCanonicalizer.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
JSON.cpp ADT: Stop peeking inside AlignedCharArrayUnion, NFC 2020-12-04 11:07:42 -08:00
KnownBits.cpp [KnownBits] Rename KnownBits::computeForMul to KnownBits::mul. NFCI. 2021-04-06 10:11:41 +01:00
LEB128.cpp
LineIterator.cpp Support: Allow use of MemoryBufferRef with line_iterator 2020-10-13 16:43:49 -04:00
Locale.cpp
LockFileManager.cpp
LowLevelType.cpp [GlobalISel] Add scalable property to LLT types. 2021-06-22 08:43:34 +01:00
ManagedStatic.cpp Fix for memory leak reported by Valgrind 2021-03-16 11:01:31 -07:00
MathExtras.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
MD5.cpp
MemAlloc.cpp
Memory.cpp
MemoryBuffer.cpp [SystemZ][z/OS] Add the functions needed for handling EBCDIC I/O 2021-05-03 08:52:38 -04:00
MemoryBufferRef.cpp Support: Add operator== for MemoryBufferRef and split out MemoryBufferRef.h 2020-10-13 16:42:24 -04:00
NativeFormatting.cpp NativeFormatting.cpp - add missing implicit MathExtras.h header dependency. NFCI. 2021-06-05 18:05:39 +01:00
OptimizedStructLayout.cpp
Optional.cpp
Parallel.cpp
Path.cpp [SystemZ][z/OS] Pass OpenFlags when creating tmp files 2021-06-08 14:45:34 -04:00
PluginLoader.cpp
PrettyStackTrace.cpp [Support] Add some missing namespace closure comments. NFCI. 2021-01-28 11:21:35 +00:00
Process.cpp [Windows] Use TerminateProcess to exit without running destructors 2021-05-22 23:41:40 +03:00
Program.cpp Re-land [Support] On Windows, take the affinity mask into account 2021-01-14 17:03:22 -05:00
RandomNumberGenerator.cpp
raw_os_ostream.cpp
raw_ostream.cpp [SystemZ][z/OS][Windows] Add new functions that set Text/Binary mode for Stdin and Stdout based on OpenFlags 2021-04-16 08:09:19 -04:00
regcomp.c
regengine.inc
regerror.c
regex2.h
regex_impl.h
Regex.cpp
regexec.c
regfree.c
regstrlcpy.c
regutils.h
RISCVAttributeParser.cpp
RISCVAttributes.cpp
RWMutex.cpp
ScaledNumber.cpp
ScopedPrinter.cpp [Support] Drop unnecessary const from return types (NFC) 2021-02-03 20:41:16 -08:00
SHA1.cpp [llvm] Use static_assert instead of assert (NFC) 2021-01-22 23:25:05 -08:00
SHA256.cpp [Support] Use static_assert instead of assert (NFC) 2021-02-18 22:46:41 -08:00
Signals.cpp Pass -fcrash-diagnostics-dir along to LLVM 2021-04-06 09:30:52 -07:00
Signposts.cpp Move the definition of LLVM_SUPPORT_XCODE_SIGNPOSTS into llvm-config.h 2021-06-16 14:40:37 -07:00
SmallPtrSet.cpp [ADT] Move DenseMapInfo for ArrayRef/StringRef into respective headers (NFC) 2021-06-03 18:34:36 +02:00
SmallVector.cpp ADT: Fix reference invalidation in SmallVector::emplace_back and assign(N,V) 2021-01-21 12:11:41 -08:00
SourceMgr.cpp [llvm] Use llvm::any_of (NFC) 2021-01-04 11:42:47 -08:00
SpecialCaseList.cpp
Statistic.cpp
StringExtras.cpp
StringMap.cpp Revert "Use the default seed value for djb hash for StringMap" 2021-03-01 14:00:39 +01:00
StringRef.cpp
StringSaver.cpp
SuffixTree.cpp
SymbolRemappingReader.cpp
SystemUtils.cpp
TargetParser.cpp Reland "[AMDGPU] Add gfx1013 target" 2021-06-08 21:15:35 -04:00
TargetRegistry.cpp
TarWriter.cpp
Threading.cpp
ThreadLocal.cpp
ThreadPool.cpp [mlir] Add a ThreadPool to MLIRContext and refactor MLIR threading usage 2021-06-23 01:29:24 +00:00
TimeProfiler.cpp [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text 2021-04-06 07:23:31 -04:00
Timer.cpp Allow signposts to take advantage of deferred string substitution 2021-06-14 16:53:41 -07:00
ToolOutputFile.cpp [Windows] Remove global OF_None flag for Windows in ToolOutputFiles 2021-04-07 14:10:04 -04:00
TrigramIndex.cpp [Support] TrigramIndex::insert - pass std::String argument by const reference. NFCI. 2021-01-23 11:04:00 +00:00
Triple.cpp Temporarily revert the code part of D100981 "Delete le32/le64 targets" 2021-04-22 10:18:44 -07:00
Twine.cpp Add Twine support for std::string_view. 2021-06-08 20:19:04 -07:00
TypeSize.cpp Always emit error for wrong interfaces to scalable vectors, unless cmdline flag is passed. 2021-04-02 10:55:22 +01:00
Unicode.cpp Speedup some unicode rendering 2020-12-03 20:11:11 +01:00
UnicodeCaseFold.cpp
Valgrind.cpp
VersionTuple.cpp
VirtualFileSystem.cpp [clang] Don't crash when loading invalid VFS for the module dep collector 2021-04-26 17:05:22 -07:00
Watchdog.cpp
WithColor.cpp [Support] Don't include VirtualFileSystem.h in CommandLine.h 2021-04-21 10:19:01 -04:00
X86TargetParser.cpp [X86] Support -march=rocketlake 2021-04-13 09:48:13 +08:00
xxhash.cpp
YAMLParser.cpp [llvm] Use isAlpha/isAlnum (NFC) 2021-01-22 23:25:03 -08:00
YAMLTraits.cpp [YAML I/O] Fix bug in emission of empty sequence 2021-01-25 13:35:36 -08:00
Z3Solver.cpp