llvm-6502/include/llvm/Support
Philip Reames 07fbc5c1c6 Move ownership of GCStrategy objects to LLVMContext
Note: This change ended up being slightly more controversial than expected.  Chandler has tentatively okayed this for the moment, but I may be revisiting this in the near future after we settle some high level questions.

Rather than have the GCStrategy object owned by the GCModuleInfo - which is an immutable analysis pass used mainly by gc.root - have it be owned by the LLVMContext. This simplifies the ownership logic (i.e. can you have two instances of the same strategy at once?), but more importantly, allows us to access the GCStrategy in the middle end optimizer. To this end, I add an accessor through Function which becomes the canonical way to get at a GCStrategy instance.

In the near future, this will allows me to move some of the checks from http://reviews.llvm.org/D6808 into the Verifier itself, and to introduce optimization legality predicates for some of the recent additions to InstCombine. (These will follow as separate changes.)

Differential Revision: http://reviews.llvm.org/D6811



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226311 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-16 20:07:33 +00:00
..
ELFRelocs Update AArch64 ELF relocations to ABI 1.0 2014-11-26 10:49:18 +00:00
AIXDataTypesFix.h
AlignOf.h Extend llvm::AlignedCharArrayUnion to support up to 10 arguments, as required by Clang's APValue. 2014-01-09 03:28:55 +00:00
Allocator.h Test commit. 2014-11-03 10:58:05 +00:00
ARMBuildAttributes.h Emit Tag_ABI_FP_16bit_format build attribute. 2014-12-12 11:59:18 +00:00
ARMEHABI.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ARMWinEH.h Support: Delete {aligned_,}{u,}{little,big}8_t 2014-09-11 21:46:33 +00:00
ArrayRecycler.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
Atomic.h
BlockFrequency.h blockfreq: Defer to BranchProbability::scale() (again) 2014-04-29 16:31:29 +00:00
BranchProbability.h BranchProb: Simplify printing code 2014-04-29 17:07:42 +00:00
Capacity.h
Casting.h Support: Add *cast_or_null<> for pointer wrappers 2014-11-24 03:13:02 +00:00
CBindingWrapping.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
circular_raw_ostream.h [C++11] Make use of 'nullptr' in the Support library. 2014-04-07 04:17:22 +00:00
CodeGen.h Add Position-independent Code model Module API. 2014-11-07 04:46:10 +00:00
COFF.h Calm down build bots 2014-11-14 08:38:17 +00:00
CommandLine.h Running clang-format on CommandLine.h and CommandLine.cpp. 2015-01-13 19:14:20 +00:00
Compiler.h Fix an inaccurate comment 2014-11-18 22:17:30 +00:00
Compression.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ConvertUTF.h Support/ConvertUTF: implement U+FFFD insertion according to the recommendation 2014-06-16 11:09:46 +00:00
CrashRecoveryContext.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
DataExtractor.h llvm-symbolizer: teach it about PowerPC64 ELF function descriptors 2014-11-07 09:08:39 +00:00
DataStream.h
DataTypes.h.cmake Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h 2014-11-04 01:12:21 +00:00
DataTypes.h.in Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h 2014-11-04 01:12:21 +00:00
Debug.h [Modules] Make Support/Debug.h modular. This requires it to not change 2014-04-21 22:55:11 +00:00
DOTGraphTraits.h
Dwarf.h Modernize doxygen comments in Support/Dwarf.h 2014-10-23 04:08:38 +00:00
DynamicLibrary.h Fix some semantic usability issues with DynamicLibrary. 2014-08-27 18:13:25 +00:00
ELF.h Split ELF relocation defintions into per-architecture .def files 2014-11-21 20:16:02 +00:00
Endian.h [Support][Endian] Overload += and -= 2014-09-11 22:55:25 +00:00
EndianStream.h Fixed a build problem when there were headers 2014-08-30 02:30:02 +00:00
Errc.h Finishing touch for the std::error_code transition. 2014-06-13 17:20:48 +00:00
Errno.h
ErrorHandling.h Make the error-handling functions thread-safe. 2014-06-13 21:20:44 +00:00
ErrorOr.h ErrorOr: Be more explicit in the implicit conversion to bool docs 2014-11-04 21:01:48 +00:00
FileOutputBuffer.h Remove unused feature. NFC. 2014-12-12 17:35:34 +00:00
FileSystem.h Remove the last unnecessary member variable of mapped_file_region. NFC. 2014-12-16 03:10:29 +00:00
FileUtilities.h [C++11] Make use of 'nullptr' in the Support library. 2014-04-07 04:17:22 +00:00
Format.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
FormattedStream.h [C++11] Make use of 'nullptr' in the Support library. 2014-04-07 04:17:22 +00:00
GCOV.h test commit: remove trailing space 2014-07-23 17:18:05 +00:00
GenericDomTree.h Add missing include directive for llvm::make_unique(). 2015-01-15 00:11:36 +00:00
GenericDomTreeConstruction.h Add comment about a gotcha I ran across while touching this code. 2015-01-14 19:59:18 +00:00
GraphWriter.h Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
Host.h
LEB128.h Fixup for r217830. Don't do left shifts on negative values 2014-09-17 18:23:07 +00:00
LICENSE.TXT
LineIterator.h LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
Locale.h
LockFileManager.h Don't use 'using std::error_code' in include/llvm. 2014-06-12 21:46:39 +00:00
MachO.h Another attempt to fix the LLVM Windows build bot lld-x86_64-win7, one last place to fix I think. 2014-12-24 00:16:51 +00:00
ManagedStatic.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MathExtras.h Support: remove some variable names 2014-11-29 00:10:26 +00:00
MD5.h Make the MD5 result name consistent between functions, header and source. 2014-10-06 13:48:07 +00:00
Memory.h Don't use 'using std::error_code' in include/llvm. 2014-06-12 21:46:39 +00:00
MemoryBuffer.h [Support] Add MemoryBuffer::getFileSlice() 2014-10-08 00:22:18 +00:00
MemoryObject.h Update \param(s) in MemoryObject::readBytes(). [-Wdocumentation] 2014-11-13 04:56:41 +00:00
Mutex.h Support: make LLVM Mutexes STL-compatible 2014-08-23 22:49:22 +00:00
MutexGuard.h Support: make LLVM Mutexes STL-compatible 2014-08-23 22:49:22 +00:00
OnDiskHashTable.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
Options.h Add missing header guard. 2014-10-16 10:10:07 +00:00
OutputBuffer.h
Path.h Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already. 2014-08-30 16:48:02 +00:00
PluginLoader.h
PointerLikeTypeTraits.h
PrettyStackTrace.h [C++11] Remove 'virtual' keyword from methods marked with 'override' keyword. 2014-03-10 03:53:12 +00:00
Process.h Remove dead code. NFC. 2014-12-04 16:59:36 +00:00
Program.h Remove FindProgramByName. NFC. 2014-11-04 12:35:47 +00:00
RandomNumberGenerator.h Revert "Insert random noops to increase security against ROP attacks (llvm)" 2015-01-14 05:24:33 +00:00
raw_os_ostream.h [C++11] Remove 'virtual' keyword from methods marked with 'override' keyword. 2014-03-10 03:53:12 +00:00
raw_ostream.h [Support] Add type-safe alternative to llvm::format() 2014-09-25 20:30:58 +00:00
Recycler.h [Allocator] Stop forward-declaring BumpPtrAllocator in a few places. 2014-03-30 11:36:29 +00:00
RecyclingAllocator.h
Regex.h [C++11] Make use of 'nullptr' in the Support library. 2014-04-07 04:17:22 +00:00
Registry.h Move ownership of GCStrategy objects to LLVMContext 2015-01-16 20:07:33 +00:00
RegistryParser.h
RWMutex.h Support: make LLVM Mutexes STL-compatible 2014-08-23 22:49:22 +00:00
SaveAndRestore.h SaveAndRestore: fix coding style and Doxygenify comments 2014-04-10 09:44:32 +00:00
ScaledNumber.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
Signals.h [C++11] Make use of 'nullptr' in the Support library. 2014-04-07 04:17:22 +00:00
SMLoc.h [C++11] Make use of 'nullptr' in the Support library. 2014-04-07 04:17:22 +00:00
Solaris.h
SourceMgr.h Add an explicit move constructor to SrcBuffer 2014-08-21 23:24:08 +00:00
SpecialCaseList.h Fix indenting caused by clang-format+spuriously indented access specifier in r216925 2014-09-15 22:20:31 +00:00
StreamingMemoryObject.h Fix a silly bug in StreamingMemoryObject.cpp. 2014-11-21 05:15:41 +00:00
StringPool.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
SwapByteOrder.h Use the LLVM_GNUC_PREREQ macro instead of the longhand version check 2014-11-04 01:28:33 +00:00
SystemUtils.h
TargetRegistry.h Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
TargetSelect.h
Threading.h Added comment about llvm_execute_on_thread waiting for thread to complete. 2014-11-24 14:51:41 +00:00
ThreadLocal.h ThreadLocal: Return a mutable pointer if templated with a non-const type 2014-12-15 01:04:45 +00:00
Timer.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
TimeValue.h Cleaning up static initializers in TimeValue. 2014-08-29 01:05:12 +00:00
ToolOutputFile.h Modernize raw_fd_ostream's constructor a bit. 2014-08-25 18:16:47 +00:00
type_traits.h [C++11] Now that the users are gone, rip out the duplicated traits from type_traits.h 2014-03-07 15:54:23 +00:00
Unicode.h include/llvm/Support/Unicode.h didn't have re-include guards 2014-05-13 10:11:29 +00:00
UnicodeCharRanges.h [Modules] Make Support/Debug.h modular. This requires it to not change 2014-04-21 22:55:11 +00:00
UniqueLock.h Support: add llvm::unique_lock 2014-08-23 23:07:14 +00:00
Valgrind.h Don't mark the declarations of the TSan annotation functions as weak. 2014-03-30 11:20:25 +00:00
Watchdog.h
Win64EH.h Support: Delete {aligned_,}{u,}{little,big}8_t 2014-09-11 21:46:33 +00:00
WindowsError.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
YAMLParser.h yaml::Stream doesn't need to take ownership of the buffer. 2014-08-27 19:03:22 +00:00
YAMLTraits.h Fix memory leak in error paths in YAMLTraits by using unique_ptr 2014-09-15 18:39:24 +00:00