llvm-6502/include/llvm/IR
Chandler Carruth 21c4458d3c [PM] Sink the reference vs. value decision for IR units out of the
templated interface.

So far, every single IR unit I can come up with has address-identity.
That is, when two units of IR are both active in LLVM, their addresses
will be distinct of the IR is distinct. This is clearly true for
Modules, Functions, BasicBlocks, and Instructions. It turns out that the
only practical way to make the CGSCC stuff work the way we want is to
make it true for SCCs as well. I expect this pattern to continue.

When first designing the pass manager code, I kept this dimension of
freedom in the type parameters, essentially allowing for a wrapper-type
whose address did not form identity. But that really no longer makes
sense and is making the code more complex or subtle for no gain. If we
ever have an actual use case for this, we can figure out what makes
sense then and there. It will be better because then we will have the
actual example in hand.

While the simplifications afforded in this patch are fairly small
(mostly sinking the '&' out of many type parameters onto a few
interfaces), it would have become much more pronounced with subsequent
changes. I have a sequence of changes that will completely remove the
code duplication that currently exists between all of the pass managers
and analysis managers. =] Should make things much cleaner and avoid bug
fixing N times for the N pass managers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225723 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 22:53:31 +00:00
..
Argument.h
AssemblyAnnotationWriter.h
Attributes.h
AutoUpgrade.h
BasicBlock.h
CallingConv.h
CallSite.h
CFG.h
CMakeLists.txt
Comdat.h
Constant.h
ConstantFolder.h
ConstantRange.h fix typos; remove names from comments; NFC 2015-01-09 17:11:51 +00:00
Constants.h
DataLayout.h AArch64: treat [N x Ty] as a block during procedure calls. 2014-11-27 21:02:42 +00:00
DebugInfo.h IR: Make DICompositeType mutators private 2014-12-18 00:54:39 +00:00
DebugLoc.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
DerivedTypes.h Add params() to FunctionType. NFC. 2014-11-21 19:03:35 +00:00
DiagnosticInfo.h Use the DiagnosticHandler to print diagnostics when reading bitcode. 2015-01-10 00:07:30 +00:00
DiagnosticPrinter.h
DIBuilder.h DIBuilder: Similar to createPointerType, make createMemberPointerType take 2014-12-23 19:11:47 +00:00
Dominators.h
Function.h Prologue support 2014-12-03 02:08:38 +00:00
GetElementPtrTypeIterator.h
GlobalAlias.h
GlobalObject.h
GlobalValue.h
GlobalVariable.h
GVMaterializer.h Ask the module for its the identified types. 2014-12-03 07:18:23 +00:00
InlineAsm.h
InstIterator.h
InstrTypes.h Revert r220349 to re-instate r220277 with a fix for PR21330 -- quite 2014-11-25 08:20:27 +00:00
Instruction.def
Instruction.h
Instructions.h Revert "Move function to obtain branch weights into the BranchInst class. NFC." 2014-12-09 17:32:12 +00:00
InstVisitor.h
IntrinsicInst.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Intrinsics.h Masked Load/Store - Changed the order of parameters in intrinsics. 2014-12-25 07:49:20 +00:00
Intrinsics.td Masked Load/Store - Changed the order of parameters in intrinsics. 2014-12-25 07:49:20 +00:00
IntrinsicsAArch64.td
IntrinsicsARM.td
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td [PowerPC] Add VSX builtins for vec_div 2014-11-14 12:10:40 +00:00
IntrinsicsR600.td R600/SI: Add class intrinsic 2015-01-06 23:00:37 +00:00
IntrinsicsX86.td AVX-512: Added FMA instructions, intrinsics an tests for KNL and SKX targets 2014-12-23 10:30:39 +00:00
IntrinsicsXCore.td
IRBuilder.h Some code improvements in Masked Load/Store. 2014-12-30 14:28:14 +00:00
IRPrintingPasses.h [PM] Switch the new pass manager to use a reference-based API for IR 2015-01-05 02:47:05 +00:00
LegacyPassManager.h Document that PassManager::add() may delete the pass right away. 2014-12-12 01:27:01 +00:00
LegacyPassManagers.h
LegacyPassNameParser.h
LLVMContext.h
Mangler.h
MDBuilder.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Metadata.def IR: Prepare for a new UniquableMDNode subclass, NFC 2015-01-12 20:56:33 +00:00
Metadata.h IR: Remove incorrect comment, NFC 2015-01-12 22:53:18 +00:00
MetadataTracking.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Module.h Random Number Generator Refactoring (removing from Module) 2014-12-17 18:12:10 +00:00
NoFolder.h
OperandTraits.h
Operator.h
PassManager.h [PM] Sink the reference vs. value decision for IR units out of the 2015-01-12 22:53:31 +00:00
PassManagerInternal.h [PM] Sink the reference vs. value decision for IR units out of the 2015-01-12 22:53:31 +00:00
PatternMatch.h InstSimplify: Optimize away pointless comparisons 2014-12-20 03:04:38 +00:00
PredIteratorCache.h
Statepoint.h Carry facts about nullness and undef across GC relocation 2014-12-29 23:27:30 +00:00
SymbolTableListTraits.h
TrackingMDRef.h Add a C++ marker to this header file. 2014-12-22 19:07:45 +00:00
Type.h Add and use Type::subtypes. NFC. 2014-11-24 20:44:36 +00:00
TypeBuilder.h
TypeFinder.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Use.h
UseListOrder.h
User.h
Value.h IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
ValueHandle.h Fix UBSan error reports in ValueMapCallbackVH and AssertingVH<T> empty/tombstone keys generation. 2015-01-09 23:17:25 +00:00
ValueMap.h Fix UBSan error reports in ValueMapCallbackVH and AssertingVH<T> empty/tombstone keys generation. 2015-01-09 23:17:25 +00:00
ValueSymbolTable.h
Verifier.h [PM] Switch the new pass manager to use a reference-based API for IR 2015-01-05 02:47:05 +00:00