reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/CodeGen/AsmPrinter.h
   52 class MachineDominatorTree;
include/llvm/CodeGen/GlobalISel/CombinerHelper.h
   31 class MachineDominatorTree;
include/llvm/CodeGen/LiveIntervals.h
   46 class MachineDominatorTree;
include/llvm/CodeGen/LiveRangeCalc.h
   38 class MachineDominatorTree;
include/llvm/CodeGen/MachineLoopInfo.h
   40 class MachineDominatorTree;
include/llvm/CodeGen/MachineScheduler.h
  106 class MachineDominatorTree;
lib/CodeGen/SplitKit.h
   40 class MachineDominatorTree;
lib/Target/AMDGPU/SIInstrInfo.h
   39 class MachineDominatorTree;
lib/Target/Hexagon/RDFCopy.h
   22 class MachineDominatorTree;
lib/Target/Hexagon/RDFGraph.h
  250 class MachineDominatorTree;
lib/Target/Hexagon/RDFLiveness.h
   27 class MachineDominatorTree;
lib/Target/WebAssembly/WebAssemblyExceptionInfo.h
   23 class MachineDominatorTree;

References

include/llvm/CodeGen/AsmPrinter.h
  103   MachineDominatorTree *MDT = nullptr;
  174   std::unique_ptr<MachineDominatorTree> OwnedMDT;
include/llvm/CodeGen/GlobalISel/CombinerHelper.h
   45   MachineDominatorTree *MDT;
   50                  MachineDominatorTree *MDT = nullptr);
include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
   46   mutable std::unique_ptr<MachineDominatorTree> OwnedMDT;
include/llvm/CodeGen/LiveIntervals.h
   61     MachineDominatorTree *DomTree = nullptr;
include/llvm/CodeGen/LiveRangeCalc.h
   48   MachineDominatorTree *DomTree = nullptr;
  194              MachineDominatorTree *MDT, VNInfo::Allocator *VNIA);
include/llvm/CodeGen/MachineDominators.h
  283   static NodeRef getEntryNode(MachineDominatorTree *DT) {
include/llvm/CodeGen/MachineLoopInfo.h
   95   explicit MachineLoopInfo(MachineDominatorTree &MDT)
  141   void calculate(MachineDominatorTree &MDT);
include/llvm/CodeGen/MachinePipeliner.h
   63   const MachineDominatorTree *MDT = nullptr;
   96     AU.addRequired<MachineDominatorTree>();
include/llvm/CodeGen/MachineRegionInfo.h
   36   using DomTreeT = MachineDominatorTree;
   64                 MachineRegionInfo *RI, MachineDominatorTree *DT,
   81   void recalculate(MachineFunction &F, MachineDominatorTree *DT,
include/llvm/CodeGen/MachineScheduler.h
  122   const MachineDominatorTree *MDT = nullptr;
include/llvm/Pass.h
  213   AnalysisType &getAnalysisID(AnalysisID PI) const;
include/llvm/PassAnalysisSupport.h
   66     return addRequiredID(PassClass::ID);
   89     Preserved.push_back(&PassClass::ID);
  201 AnalysisType *Pass::getAnalysisIfAvailable() const {
  204   const void *PI = &AnalysisType::ID;
  220 AnalysisType &Pass::getAnalysis() const {
  222   return getAnalysisID<AnalysisType>(&AnalysisType::ID);
  222   return getAnalysisID<AnalysisType>(&AnalysisType::ID);
include/llvm/PassSupport.h
   76 template <typename PassName> Pass *callDefaultCtor() { return new PassName(); }
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
 1033     MDT = getAnalysisIfAvailable<MachineDominatorTree>();
 1035       OwnedMDT = std::make_unique<MachineDominatorTree>();
lib/CodeGen/EarlyIfConversion.cpp
  705   MachineDominatorTree *DomTree;
  738   AU.addRequired<MachineDominatorTree>();
  739   AU.addPreserved<MachineDominatorTree>();
  749 void updateDomTree(MachineDominatorTree *DomTree, const SSAIfConv &IfConv,
  913   DomTree = &getAnalysis<MachineDominatorTree>();
  942   MachineDominatorTree *DomTree;
  972   AU.addRequired<MachineDominatorTree>();
  973   AU.addPreserved<MachineDominatorTree>();
 1044   DomTree = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/GlobalISel/CombinerHelper.cpp
   36                                MachineDominatorTree *MDT)
lib/CodeGen/InlineSpiller.cpp
   90   MachineDominatorTree &MDT;
  144         MDT(pass.getAnalysis<MachineDominatorTree>()),
  163   MachineDominatorTree &MDT;
  200         MDT(pass.getAnalysis<MachineDominatorTree>()),
lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
   65   auto *MDT = getAnalysisIfAvailable<MachineDominatorTree>();
   65   auto *MDT = getAnalysisIfAvailable<MachineDominatorTree>();
   76       OwnedMDT = std::make_unique<MachineDominatorTree>();
lib/CodeGen/LiveDebugVariables.cpp
   86   AU.addRequired<MachineDominatorTree>();
lib/CodeGen/LiveIntervals.cpp
  132   DomTree = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/LiveRangeCalc.cpp
   53                           MachineDominatorTree *MDT,
lib/CodeGen/MachineBasicBlock.cpp
 1071   if (MachineDominatorTree *MDT =
 1072           P.getAnalysisIfAvailable<MachineDominatorTree>())
lib/CodeGen/MachineCSE.cpp
   68     MachineDominatorTree *DT;
   86       AU.addRequired<MachineDominatorTree>();
   87       AU.addPreserved<MachineDominatorTree>();
  138     bool ProcessBlockPRE(MachineDominatorTree *MDT, MachineBasicBlock *MBB);
  139     bool PerformSimplePRE(MachineDominatorTree *DT);
  791 bool MachineCSE::ProcessBlockPRE(MachineDominatorTree *DT,
  849 bool MachineCSE::PerformSimplePRE(MachineDominatorTree *DT) {
  889   DT = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/MachineCombiner.cpp
  129   AU.addPreserved<MachineDominatorTree>();
lib/CodeGen/MachineDominanceFrontier.cpp
   41   Base.analyze(getAnalysis<MachineDominatorTree>().getBase());
   51   AU.addRequired<MachineDominatorTree>();
lib/CodeGen/MachineDominators.cpp
   44 char &llvm::MachineDominatorsID = MachineDominatorTree::ID;
lib/CodeGen/MachineLICM.cpp
  105     MachineDominatorTree *DT;      // Machine dominator tree for the cur loop
  153       AU.addRequired<MachineDominatorTree>();
  337   DT  = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/MachineLoopInfo.cpp
   39   calculate(getAnalysis<MachineDominatorTree>());
   43 void MachineLoopInfo::calculate(MachineDominatorTree &MDT) {
   50   AU.addRequired<MachineDominatorTree>();
lib/CodeGen/MachinePipeliner.cpp
  219   MDT = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/MachineRegionInfo.cpp
   38                              MachineDominatorTree *DT, MachineRegion *Parent) :
   59                                     MachineDominatorTree *DT_,
   86   auto DT = &getAnalysis<MachineDominatorTree>();
  111   AU.addRequired<MachineDominatorTree>();
lib/CodeGen/MachineScheduler.cpp
  215   AU.addRequired<MachineDominatorTree>();
  239   AU.addRequired<MachineDominatorTree>();
  375   MDT = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/MachineSink.cpp
   88     MachineDominatorTree *DT;      // Machine dominator tree
  123       AU.addRequired<MachineDominatorTree>();
  309   DT = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/PHIElimination.cpp
  142   AU.addPreserved<MachineDominatorTree>();
  190     if (auto *MDT = getAnalysisIfAvailable<MachineDominatorTree>())
  190     if (auto *MDT = getAnalysisIfAvailable<MachineDominatorTree>())
lib/CodeGen/PeepholeOptimizer.cpp
  157     MachineDominatorTree *DT;  // Machine dominator tree
  175         AU.addRequired<MachineDominatorTree>();
  176         AU.addPreserved<MachineDominatorTree>();
 1606   DT  = Aggressive ? &getAnalysis<MachineDominatorTree>() : nullptr;
lib/CodeGen/PostRASchedulerList.cpp
   91       AU.addRequired<MachineDominatorTree>();
   92       AU.addPreserved<MachineDominatorTree>();
lib/CodeGen/PrologEpilogInserter.cpp
  164   AU.addPreserved<MachineDominatorTree>();
lib/CodeGen/RegAllocGreedy.cpp
  169   MachineDominatorTree *DomTree;
  618   AU.addRequired<MachineDominatorTree>();
  619   AU.addPreserved<MachineDominatorTree>();
 3234   DomTree = &getAnalysis<MachineDominatorTree>();
lib/CodeGen/RegAllocPBQP.cpp
  548   au.addRequired<MachineDominatorTree>();
  549   au.addPreserved<MachineDominatorTree>();
lib/CodeGen/ShrinkWrap.cpp
  112   MachineDominatorTree *MDT;
  189     MDT = &getAnalysis<MachineDominatorTree>();
  226     AU.addRequired<MachineDominatorTree>();
  314                                    DominanceAnalysis &Dom) {
lib/CodeGen/SplitKit.cpp
  367                          MachineDominatorTree &mdt,
lib/CodeGen/SplitKit.h
  263   MachineDominatorTree &MDT;
  446               VirtRegMap &vrm, MachineDominatorTree &mdt,
lib/CodeGen/UnreachableBlockElim.cpp
   98   AU.addPreserved<MachineDominatorTree>();
  108   MachineDominatorTree *MDT = getAnalysisIfAvailable<MachineDominatorTree>();
  108   MachineDominatorTree *MDT = getAnalysisIfAvailable<MachineDominatorTree>();
lib/CodeGen/XRayInstrumentation.cpp
   55     AU.addPreserved<MachineDominatorTree>();
  164     auto *MDT = getAnalysisIfAvailable<MachineDominatorTree>();
  164     auto *MDT = getAnalysisIfAvailable<MachineDominatorTree>();
  165     MachineDominatorTree ComputedMDT;
lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
   53     MachineDominatorTree *DT = &getAnalysis<MachineDominatorTree>();
   53     MachineDominatorTree *DT = &getAnalysis<MachineDominatorTree>();
  137     AU.addRequired<MachineDominatorTree>();
lib/Target/AArch64/AArch64ConditionOptimizer.cpp
   95   MachineDominatorTree *DomTree;
  137   AU.addRequired<MachineDominatorTree>();
  138   AU.addPreserved<MachineDominatorTree>();
  335   DomTree = &getAnalysis<MachineDominatorTree>();
lib/Target/AArch64/AArch64ConditionalCompares.cpp
  769   MachineDominatorTree *DomTree;
  811   AU.addRequired<MachineDominatorTree>();
  812   AU.addPreserved<MachineDominatorTree>();
  938   DomTree = &getAnalysis<MachineDominatorTree>();
lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
   41   MachineDominatorTree *MDT;
   47                                   GISelKnownBits *KB, MachineDominatorTree *MDT)
  132     AU.addRequired<MachineDominatorTree>();
  133     AU.addPreserved<MachineDominatorTree>();
  152   MachineDominatorTree *MDT =
  153       IsOptNone ? nullptr : &getAnalysis<MachineDominatorTree>();
lib/Target/AMDGPU/AMDILCFGStructurizer.cpp
  139     AU.addRequired<MachineDominatorTree>();
  162     MDT = &getAnalysis<MachineDominatorTree>();
  173   MachineDominatorTree *MDT;
lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
  126     AU.addRequired<MachineDominatorTree>();
  127     AU.addPreserved<MachineDominatorTree>();
lib/Target/AMDGPU/R600Packetizer.cpp
   43     AU.addRequired<MachineDominatorTree>();
   44     AU.addPreserved<MachineDominatorTree>();
lib/Target/AMDGPU/SIFixSGPRCopies.cpp
  111   MachineDominatorTree *MDT;
  129     AU.addRequired<MachineDominatorTree>();
  130     AU.addPreserved<MachineDominatorTree>();
  389                         MachineDominatorTree &MDT) {
  424                                    MachineDominatorTree &MDT,
  593   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/AMDGPU/SIInstrInfo.cpp
 4403                               MachineOperand &Rsrc, MachineDominatorTree *MDT) {
 4514                                    MachineDominatorTree *MDT) const {
 4817                              MachineDominatorTree *MDT) const {
 5102                                    MachineDominatorTree *MDT) const {
 5342                                          MachineDominatorTree *MDT) const {
 5414                                            MachineDominatorTree *MDT) const {
 5478                                        MachineDominatorTree *MDT) const {
lib/Target/AMDGPU/SIInstrInfo.h
   83                         MachineDominatorTree *MDT = nullptr) const;
  103                               MachineDominatorTree *MDT = nullptr) const;
  107                                 MachineDominatorTree *MDT = nullptr) const;
  110                                 MachineDominatorTree *MDT = nullptr) const;
  886                         MachineDominatorTree *MDT = nullptr) const;
  891   void moveToVALU(MachineInstr &MI, MachineDominatorTree *MDT = nullptr) const;
lib/Target/AMDGPU/SILowerI1Copies.cpp
   55   MachineDominatorTree *DT = nullptr;
   82     AU.addRequired<MachineDominatorTree>();
  258   MachineDominatorTree &DT;
  283   LoopFinder(MachineDominatorTree &DT, MachinePostDominatorTree &PDT)
  456   DT = &getAnalysis<MachineDominatorTree>();
lib/Target/AMDGPU/SIRegisterInfo.cpp
 1868   auto &MDT = LIS->getAnalysis<MachineDominatorTree>();
 1868   auto &MDT = LIS->getAnalysis<MachineDominatorTree>();
lib/Target/ARC/ARCOptAddrMode.cpp
   51     AU.addRequired<MachineDominatorTree>();
   52     AU.addPreserved<MachineDominatorTree>();
   61   MachineDominatorTree *MDT = nullptr;
  139                                MachineDominatorTree *MDT,
  493   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/ARM/ARMConstantIslandPass.cpp
  218     MachineDominatorTree *DT = nullptr;
  232       AU.addRequired<MachineDominatorTree>();
  360   DT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonBitSimplify.cpp
  193       AU.addRequired<MachineDominatorTree>();
  194       AU.addPreserved<MachineDominatorTree>();
  231     MachineDominatorTree *MDT = nullptr;
  952     DeadCodeElimination(MachineFunction &mf, MachineDominatorTree &mdt)
  966     MachineDominatorTree &MDT;
 1739     BitSimplification(BitTracker &bt, const MachineDominatorTree &mdt,
 1782     const MachineDominatorTree &MDT;
 2766   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonConstExtenders.cpp
  218       AU.addRequired<MachineDominatorTree>();
  219       AU.addPreserved<MachineDominatorTree>();
  383     MachineDominatorTree *MDT = nullptr;
 1956   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonEarlyIfConv.cpp
  165       AU.addRequired<MachineDominatorTree>();
  166       AU.addPreserved<MachineDominatorTree>();
  217     MachineDominatorTree *MDT = nullptr;
 1056   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonExpandCondsets.cpp
  156       AU.addRequired<MachineDominatorTree>();
  157       AU.addPreserved<MachineDominatorTree>();
  166     MachineDominatorTree *MDT;
 1256   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonFrameLowering.cpp
  406   MachineDominatorTree MDT;
lib/Target/Hexagon/HexagonGenInsert.cpp
  514       AU.addRequired<MachineDominatorTree>();
  515       AU.addPreserved<MachineDominatorTree>();
  568     MachineDominatorTree *MDT;
 1518   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonGenPredicate.cpp
   94       AU.addRequired<MachineDominatorTree>();
   95       AU.addPreserved<MachineDominatorTree>();
lib/Target/Hexagon/HexagonHardwareLoops.cpp
  103     MachineDominatorTree       *MDT;
  120       AU.addRequired<MachineDominatorTree>();
  386   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonOptAddrMode.cpp
   70     AU.addRequired<MachineDominatorTree>();
   84   MachineDominatorTree *MDT = nullptr;
  787   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonRDFOpt.cpp
   60       AU.addRequired<MachineDominatorTree>();
   80     MachineDominatorTree *MDT;
  291   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
   98       AU.addRequired<MachineDominatorTree>();
  100       AU.addPreserved<MachineDominatorTree>();
lib/Target/Hexagon/RDFCopy.h
   43     const MachineDominatorTree &MDT;
lib/Target/Hexagon/RDFGraph.cpp
  652       const TargetRegisterInfo &tri, const MachineDominatorTree &mdt,
lib/Target/Hexagon/RDFGraph.h
  646         const TargetRegisterInfo &tri, const MachineDominatorTree &mdt,
  665     const MachineDominatorTree &getDT() const { return MDT; }
  873     const MachineDominatorTree &MDT;
lib/Target/Hexagon/RDFLiveness.h
  103     const MachineDominatorTree &MDT;
lib/Target/Mips/MipsOptimizePICCall.cpp
   87     AU.addRequired<MachineDominatorTree>();
  201   MachineDominatorTree *MDT = &getAnalysis<MachineDominatorTree>();
  201   MachineDominatorTree *MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/PowerPC/PPCBranchCoalescing.cpp
  148   MachineDominatorTree *MDT;
  168     AU.addRequired<MachineDominatorTree>();
  217   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/PowerPC/PPCCTRLoops.cpp
   86       AU.addRequired<MachineDominatorTree>();
   93     MachineDominatorTree *MDT;
  198   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/PowerPC/PPCMIPeephole.cpp
   92   MachineDominatorTree *MDT;
  114     AU.addRequired<MachineDominatorTree>();
  117     AU.addPreserved<MachineDominatorTree>();
  136   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/PowerPC/PPCReduceCRLogicals.cpp
  428     AU.addRequired<MachineDominatorTree>();
lib/Target/PowerPC/PPCVSXFMAMutate.cpp
  377       AU.addRequired<MachineDominatorTree>();
  378       AU.addPreserved<MachineDominatorTree>();
lib/Target/SystemZ/SystemZLDCleanup.cpp
   61   AU.addRequired<MachineDominatorTree>();
   78   MachineDominatorTree *DT = &getAnalysis<MachineDominatorTree>();
   78   MachineDominatorTree *DT = &getAnalysis<MachineDominatorTree>();
lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
  118     AU.addRequired<MachineDominatorTree>();
  119     AU.addPreserved<MachineDominatorTree>();
  243                        const MachineDominatorTree &MDT) {
  413   auto &MDT = getAnalysis<MachineDominatorTree>();
  413   auto &MDT = getAnalysis<MachineDominatorTree>();
lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
   45     AU.addRequired<MachineDominatorTree>();
  212   auto &MDT = getAnalysis<MachineDominatorTree>();
  212   auto &MDT = getAnalysis<MachineDominatorTree>();
  442   auto &MDT = getAnalysis<MachineDominatorTree>();
  442   auto &MDT = getAnalysis<MachineDominatorTree>();
 1191   getAnalysis<MachineDominatorTree>().runOnMachineFunction(MF);
lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
   39   auto &MDT = getAnalysis<MachineDominatorTree>();
   39   auto &MDT = getAnalysis<MachineDominatorTree>();
   46     MachineDominatorTree &MDT, const MachineDominanceFrontier &MDF) {
   90   AU.addRequired<MachineDominatorTree>();
   96     WebAssemblyException *WE, const MachineDominatorTree &MDT,
lib/Target/WebAssembly/WebAssemblyExceptionInfo.h
  123                                const MachineDominatorTree &MDT,
  139   void recalculate(MachineDominatorTree &MDT,
lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
   59     AU.addRequired<MachineDominatorTree>();
   60     AU.addPreserved<MachineDominatorTree>();
   87                                  MachineDominatorTree &MDT,
  151                          MachineDominatorTree &MDT, LiveIntervals &LIS,
  184   auto &MDT = getAnalysis<MachineDominatorTree>();
  184   auto &MDT = getAnalysis<MachineDominatorTree>();
lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
   52     AU.addRequired<MachineDominatorTree>();
   58     AU.addPreserved<MachineDominatorTree>();
  288                       MachineDominatorTree &MDT, LiveIntervals &LIS) {
  403                                      const MachineDominatorTree &MDT,
  779   auto &MDT = getAnalysis<MachineDominatorTree>();
  779   auto &MDT = getAnalysis<MachineDominatorTree>();
lib/Target/X86/X86FlagsCopyLowering.cpp
   95   MachineDominatorTree *MDT;
  147   AU.addRequired<MachineDominatorTree>();
  345   MDT = &getAnalysis<MachineDominatorTree>();
lib/Target/X86/X86InstrInfo.cpp
 7857       MachineDominatorTree *DT = &getAnalysis<MachineDominatorTree>();
 7857       MachineDominatorTree *DT = &getAnalysis<MachineDominatorTree>();
 7947       AU.addRequired<MachineDominatorTree>();
unittests/Target/WebAssembly/WebAssemblyExceptionInfoTest.cpp
  168   MachineDominatorTree MDT;
  343   MachineDominatorTree MDT;
unittests/Target/X86/MachineSizeOptsTest.cpp
   47     std::unique_ptr<MachineDominatorTree> MDT;
   52       MDT.reset(new MachineDominatorTree(MF));
usr/include/c++/7.4.0/bits/unique_ptr.h
   68         default_delete(const default_delete<_Up>&) noexcept { }
   72       operator()(_Tp* __ptr) const
   74 	static_assert(!is_void<_Tp>::value,
   76 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  161 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  163       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  166       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  167       using element_type  = _Tp;
  252 	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  297           __safe_conversion_up<_Up, _Ep>,
  301 	operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
  811     { typedef unique_ptr<_Tp> __single_object; };
  823     inline typename _MakeUniq<_Tp>::__single_object
  825     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>