1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/lib/IR
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
..
AsmWriter.cpp HHVM calling conventions. 2015-09-29 22:09:16 +00:00
AttributeImpl.h llvm/lib/IR/AttributeImpl.h: Move comment block not to cover typedef, introduced in r244164. [-Wdocumentation] 2015-08-06 09:49:17 +00:00
Attributes.cpp [IR] Have AttrBuilder::clear clear TargetDepAttrs. 2015-09-03 22:27:42 +00:00
AutoUpgrade.cpp [ARM][NEON] Use address space in vld([1234]|[234]lane) and vst([1234]|[234]lane) instructions 2015-09-30 10:56:37 +00:00
BasicBlock.cpp IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
CMakeLists.txt Support for function summary index bitcode sections and files. 2015-10-04 14:33:43 +00:00
Comdat.cpp
ConstantFold.cpp Remove roundingMode argument in APFloat::mod 2015-09-21 19:29:25 +00:00
ConstantFold.h
ConstantRange.cpp
Constants.cpp [opaque pointer type]: Pass explicit pointee type when building a constant GEP. 2015-08-21 20:16:51 +00:00
ConstantsContext.h [opaque pointer type] Avoid using pointee types to retrieve InlineAsm's function type 2015-07-28 00:06:38 +00:00
Core.cpp Revert "[opaque pointer type] Pass GlobalAlias the actual pointer type rather than decomposing it into pointee type + address space" 2015-09-14 18:01:59 +00:00
DataLayout.cpp Revert "Add const to a bunch of Type* in DataLayout. NFC." 2015-07-27 17:15:28 +00:00
DebugInfo.cpp DI: Simplify DebugInfoFinder::processType(), NFC 2015-07-24 20:56:10 +00:00
DebugInfoMetadata.cpp Fix debug info with SafeStack. 2015-09-30 19:55:43 +00:00
DebugLoc.cpp
DiagnosticInfo.cpp Print vectorization analysis when loop hint is specified. 2015-08-11 01:09:15 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp AsmPrinter: Allow null subroutine type 2015-08-28 21:38:24 +00:00
Dominators.cpp Constant propagation after hitting assume(cmp) bugfix 2015-09-02 19:59:59 +00:00
Function.cpp IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
FunctionInfo.cpp Support for function summary index bitcode sections and files. 2015-10-04 14:33:43 +00:00
GCOV.cpp
Globals.cpp [opaque pointer types] Add an explicit value type to GlobalObject 2015-09-14 21:47:27 +00:00
GVMaterializer.cpp
InlineAsm.cpp Fix SEGV in InlineAsm::ConstraintInfo::Parse. 2015-09-03 15:41:37 +00:00
Instruction.cpp [IR] Conservatively mark 'catchpad' as accessing memory 2015-09-10 18:50:09 +00:00
Instructions.cpp [IR] Add operand bundles to CallInst and InvokeInst. 2015-09-24 19:14:18 +00:00
IntrinsicInst.cpp
IRBuilder.cpp [IRBuilder] Add gc.statepoint related methods to IRBuilder 2015-10-07 19:52:12 +00:00
IRPrintingPasses.cpp
LegacyPassManager.cpp Simplify code. No functionality change. 2015-10-05 18:53:30 +00:00
LLVMBuild.txt
LLVMContext.cpp Introduce !align metadata for load instruction 2015-09-28 17:41:08 +00:00
LLVMContextImpl.cpp [IR] Add operand bundles to CallInst and InvokeInst. 2015-09-24 19:14:18 +00:00
LLVMContextImpl.h [Function] Clean up {prefix,prologue} data routines (NFC) 2015-10-06 20:31:57 +00:00
Makefile
Mangler.cpp Remove unused arguments and move ManglerPrefixTy to the implementation. 2015-06-23 14:11:09 +00:00
MDBuilder.cpp add unpredictable metadata type for control flow 2015-09-02 19:06:43 +00:00
Metadata.cpp Rollback of commit "Repress sanitization on User dtor." 2015-08-31 21:06:08 +00:00
MetadataImpl.h DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
MetadataTracking.cpp
Module.cpp IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
module.modulemap
Operator.cpp
Pass.cpp
PassManager.cpp
PassRegistry.cpp
Statepoint.cpp
SymbolTableListTraitsImpl.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
Type.cpp [IR] Simplify code. No functionality change. 2015-08-16 21:16:26 +00:00
TypeFinder.cpp
Use.cpp
User.cpp [IR] Teach llvm::User to co-allocate a descriptor. 2015-09-24 01:00:49 +00:00
Value.cpp Remove handling of AddrSpaceCast in stripAndAccumulateInBoundsConstantOffsets 2015-09-23 19:48:43 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp SelectionDAG: Support Expand of f16 extloads 2015-09-09 01:12:27 +00:00
Verifier.cpp [SEH] Add llvm.eh.exceptioncode intrinsic 2015-10-07 00:27:33 +00:00