1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 05:52:53 +02:00
llvm-mirror/include/llvm
Duncan P. N. Exon Smith d8033eebd6 IR: Create SymbolTableList wrapper around iplist, NFC
Create `SymbolTableList`, a wrapper around `iplist` for lists that
automatically manage a symbol table.  This commit reduces a ton of code
duplication between the six traits classes that were used previously.

As a drive by, reduce the number of template parameters from 2 to 1 by
using a SymbolTableListParentType metafunction (I originally had this as
a separate commit, but it touched most of the same lines so I squashed
them).

I'm in the process of trying to remove the UB in `createSentinel()` (see
the FIXMEs I added for `ilist_embedded_sentinel_traits` and
`ilist_half_embedded_sentinel_traits`).  My eventual goal is to separate
the list logic into a base class layer that knows nothing about (and
isn't templated on) the downcasted nodes -- removing the need to invoke
UB -- but for now I'm just trying to get a handle on all the current use
cases (and cleaning things up as I see them).

Besides these six SymbolTable lists, there are two others that use the
addNode/removeNode/transferNodes() hooks: the `MachineInstruction` and
`MachineBasicBlock` lists.  Ideally there'll be a way to factor these
hooks out of the low-level API entirely, but I'm not quite there yet.

llvm-svn: 249602
2015-10-07 20:05:10 +00:00
..
ADT IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
Analysis [WinEH] Recognize CoreCLR personality function 2015-10-06 20:28:16 +00:00
AsmParser AsmParser: Save and restore the parsing state for types using SlotMapping. 2015-08-21 21:32:39 +00:00
Bitcode Support for function summary index bitcode sections and files. 2015-10-04 14:33:43 +00:00
CodeGen [ARM] Promote helper function to SelectionDAG. 2015-10-07 17:28:58 +00:00
Config Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
DebugInfo Whitespace. 2015-09-16 06:36:03 +00:00
ExecutionEngine [Orc] Teach the CompileOnDemand layer to clone aliases. 2015-10-06 22:55:05 +00:00
IR IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
IRReader
LibDriver LibDriver: Replace references to lld-link2 with lld-link. 2015-08-06 19:00:42 +00:00
LineEditor
Linker New bitcode linker flags: 2015-09-01 17:55:55 +00:00
LTO Reapply "LTO: Disable extra verify runs in release builds" 2015-09-15 23:05:59 +00:00
MC Use SpecificBumpPtrAllocator to simplify the MCSeciton destruction. 2015-10-07 19:08:19 +00:00
Object Prune trailing whitespaces in comment lines. 2015-10-05 04:43:57 +00:00
Option Add an ArgList::AddAllArgs that accepts a vector of OptSpecifier. 2015-07-29 17:34:41 +00:00
Passes
ProfileData Remove AutoFDO profile handling for GCC's LIPO. NFC. 2015-10-05 21:08:05 +00:00
Support [Support] Add a version of fs::make_absolute with a custom CWD. 2015-10-05 13:02:43 +00:00
TableGen Re-commit r247216: "Fix Clang-tidy misc-use-override warnings, other minor fixes" 2015-09-10 16:49:58 +00:00
Target [WinEH] Fix two minor issues in __CxxFrameHandler3 tables 2015-10-07 17:49:32 +00:00
Transforms [IndVars] Don't break dominance in eliminateIdentitySCEV 2015-10-06 21:44:49 +00:00
CMakeLists.txt
InitializePasses.h [WinEH] Add a funclet layout pass 2015-09-17 20:45:18 +00:00
LinkAllIR.h
LinkAllPasses.h [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
module.modulemap [modules] Move ConvertUTF.h to a separate submodule that doesn't require C++. 2015-09-11 03:14:00 +00:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h [LPM] Teach the legacy pass manager to support *using* an analysis 2015-08-19 03:02:12 +00:00
PassInfo.h Reformat partially. 2015-10-05 04:46:30 +00:00
PassRegistry.h
PassSupport.h Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00