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

Declarations

include/llvm/Analysis/RegionInfo.h
   66 class Region;
  881 class Region;
tools/polly/include/polly/ScopDetectionDiagnostic.h
   35 class Region;
tools/polly/include/polly/Support/ScopHelper.h
   26 class Region;
tools/polly/include/polly/Support/ScopLocation.h
   19 class Region;

References

include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/SmallSet.h
  249 class SmallSet<PointeeType*, N> : public SmallPtrSet<PointeeType*, N> {};
include/llvm/Analysis/RegionInfo.h
   89   using RegionT = Region;
  733   void updateRegionTree(RegionInfoT &RI, TheRegionT *R) {
  885   inline RegionNode(Region *Parent, BasicBlock *Entry, bool isSubRegion = false)
  888   bool operator==(const Region &RN) const {
  896          Region *Parent = nullptr);
  927   void updateStatistics(Region *R) final;
 1007 inline Region *
 1008 RegionNodeBase<RegionTraits<Function>>::getNodeAs<Region>() const {
include/llvm/Analysis/RegionIterator.h
   92     return getNode()->template getNodeAs<RegionT>()->getExit();
  101   using Self = RNSuccIterator<NodeRef, BlockT, RegionT>;
  176   using Self = RNSuccIterator<FlatIt<NodeRef>, BlockT, RegionT>;
  215     RegionT *Parent = Node->getParent();
  326     return GraphTraits<FlatIt<Region*>>::getEntryNode(RI->getTopLevelRegion());
include/llvm/Analysis/RegionPass.h
   49   virtual bool runOnRegion(Region *R, RGPassManager &RGM) = 0;
   63   virtual bool doInitialization(Region *R, RGPassManager &RGM) { return false; }
   84   bool skipRegion(Region &R) const;
   89   std::deque<Region*> RQ;
   93   Region *CurrentRegion;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
lib/Analysis/RegionInfo.cpp
   48 static cl::opt<Region::PrintStyle, true> printStyleX("print-region-style",
   65                DominatorTree *DT, Region *Parent) :
   89 void RegionInfo::updateStatistics(Region *R) {
  103   TopLevelRegion = new Region(&F.getEntryBlock(), nullptr,
lib/Analysis/RegionPass.cpp
   40 static void addRegionIntoQueue(Region &R, std::deque<Region *> &RQ) {
   40 static void addRegionIntoQueue(Region &R, std::deque<Region *> &RQ) {
   67   for (Region *R : RQ) {
  195   bool runOnRegion(Region *R, RGPassManager &RGM) override {
  281 static std::string getDescription(const Region &R) {
  285 bool RegionPass::skipRegion(Region &R) const {
lib/Analysis/RegionPrinter.cpp
   85     Region *R = G->getRegionFor(destBB);
  101   static void printRegionCluster(const Region &R, GraphWriter<RegionInfo *> &GW,
lib/Transforms/Instrumentation/ControlHeightReduction.cpp
  163   RegInfo(Region *RegionIn) : R(RegionIn), HasBranch(false) {}
  164   Region *R;
  169 typedef DenseMap<Region *, DenseSet<Instruction *>> HoistStopMapTy;
  181   Region *getParentRegion() {
  183     Region *Parent = RegInfos[0].R->getParent();
  206     Region *LastRegion = RegInfos.back().R;
  243   CHRScope *split(Region *Boundary) {
  257     DenseSet<Region *> TailRegionSet;
  263       Region *Parent = Sub->getParentRegion();
  300   DenseSet<Region *> TrueBiasedRegions;
  301   DenseSet<Region *> FalseBiasedRegions;
  340     Region *R = RI.getTopLevelRegion();
  346   CHRScope *findScopes(Region *R, Region *NextRegion, Region *ParentRegion,
  346   CHRScope *findScopes(Region *R, Region *NextRegion, Region *ParentRegion,
  346   CHRScope *findScopes(Region *R, Region *NextRegion, Region *ParentRegion,
  348   CHRScope *findScope(Region *R);
  378                         Region *LastRegion,
  388   void fixupBranch(Region *R,
  411   DenseSet<Region *> TrueBiasedRegionsGlobal;
  413   DenseSet<Region *> FalseBiasedRegionsGlobal;
  419   DenseMap<Region *, BranchProbability> BranchBiasMap;
  641 static bool checkBias(K *Key, BranchProbability TrueProb,
  659 static bool checkBiasedBranch(BranchInst *BI, Region *R,
  660                               DenseSet<Region *> &TrueBiasedRegionsGlobal,
  661                               DenseSet<Region *> &FalseBiasedRegionsGlobal,
  662                               DenseMap<Region *, BranchProbability> &BranchBiasMap) {
  691     SelectInst *SI, Region *R,
  711   Region *R = RI.R;
  746 CHRScope * CHR::findScope(Region *R) {
  889   Region *R = RI.R;
  991 CHRScope * CHR::findScopes(Region *R, Region *NextRegion, Region *ParentRegion,
  991 CHRScope * CHR::findScopes(Region *R, Region *NextRegion, Region *ParentRegion,
  991 CHRScope * CHR::findScopes(Region *R, Region *NextRegion, Region *ParentRegion,
  999     const std::unique_ptr<Region> &SubR = *It;
 1001     Region *NextSubR = NextIt != R->end() ? NextIt->get() : nullptr;
 1309       Region *R = RI.R;
 1399     Region *R = RI.R;
 1449 static void hoistValue(Value *V, Instruction *HoistPoint, Region *R,
 1502     Region *R = RI.R;
 1664     Region *R = RI.R;
 1699   Region *FirstRegion = Scope->RegInfos[0].R;
 1701   Region *LastRegion = Scope->RegInfos[Scope->RegInfos.size() - 1].R;
 1765                            Region *LastRegion,
 1850     Region *R = RI.R;
 1882 void CHR::fixupBranch(Region *R, CHRScope *Scope,
lib/Transforms/Scalar/StructurizeCFG.cpp
  189   Region *ParentRegion;
  269   bool doInitialization(Region *R, RGPassManager &RGM) override;
  271   bool runOnRegion(Region *R, RGPassManager &RGM) override;
  301 bool StructurizeCFG::doInitialization(Region *R, RGPassManager &RGM) {
  315     Region *SubRegion = RN->getNodeAs<Region>();
  315     Region *SubRegion = RN->getNodeAs<Region>();
  325     Region *SubR = RN->getNodeAs<Region>();
  325     Region *SubR = RN->getNodeAs<Region>();
  334   ReversePostOrderTraversal<Region*> RPOT(ParentRegion);
  387     BasicBlock *Exit = N->getNodeAs<Region>()->getExit();
  460     Region *R = RI->getRegionFor(P);
  679     Region *SubRegion = Node->getNodeAs<Region>();
  679     Region *SubRegion = Node->getNodeAs<Region>();
  939 static bool hasOnlyUniformBranches(Region *R, unsigned UniformMDKindID,
  970       for (auto BB : E->getNodeAs<Region>()->blocks()) {
  997 bool StructurizeCFG::runOnRegion(Region *R, RGPassManager &RGM) {
tools/opt/PassPrinters.cpp
  179   bool runOnRegion(Region *R, RGPassManager &RGM) override {
tools/polly/include/polly/CodeGen/IslExprBuilder.h
   24   static inline const Region *getFromVoidPointer(void *P) {
tools/polly/include/polly/ScopBuilder.h
  124   void buildScop(Region &R, AssumptionCache &AC);
  140   bool buildDomains(Region *R,
  152       Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap);
  210       Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap);
  253       Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap);
  485                         Region *NonAffineSubRegion, bool IsExitBlock = false);
  516   void buildStmts(Region &SR);
  525                             Region *NonAffineSubRegion = nullptr);
  796   void buildSchedule(Region *R, LoopStackTy &LoopStack);
  814   explicit ScopBuilder(Region *R, AssumptionCache &AC, AliasAnalysis &AA,
tools/polly/include/polly/ScopDetection.h
  114   using RegionSet = SetVector<const Region *>;
  121     Region &CurRegion;   // The region to check.
  164     DetectionContext(Region &R, AliasAnalysis &AA, bool Verify)
  205   void removeCachedResults(const Region &R);
  208   void removeCachedResultsRecursively(const Region &R);
  226   bool addOverApproximatedRegion(Region *AR, DetectionContext &Context) const;
  281   Region *expandRegion(Region &R);
  281   Region *expandRegion(Region &R);
  286   void findScops(Region &R);
  373   bool isInvariant(Value &Val, const Region &Reg, DetectionContext &Ctx) const;
  400   bool hasScalarDependency(Instruction &Inst, Region &RefRegion) const;
  505   bool isReducibleRegion(Region &R, DebugLoc &DbgLoc) const;
  536   bool isMaxRegionInScop(const Region &R, bool Verify = true) const;
  539   DetectionContext *getDetectionContext(const Region *R) const;
  542   const RejectLog *lookupRejectionLog(const Region *R) const;
  545   bool isNonAffineSubRegion(const Region *SubR, const Region *ScopR) const;
  545   bool isNonAffineSubRegion(const Region *SubR, const Region *ScopR) const;
  552   std::string regionIsInvalidBecause(const Region *R) const;
  587   void verifyRegion(const Region &R) const;
  598   countBeneficialLoops(Region *R, ScalarEvolution &SE, LoopInfo &LI,
tools/polly/include/polly/ScopDetectionDiagnostic.h
   45 BBPair getBBPairForRegion(const Region *R);
  158   Region *R;
  162   explicit RejectLog(Region *R) : R(R) {}
  177   const Region *region() const { return R; }
  222   Region *R;
  226   ReportIrreducibleRegion(Region *R, DebugLoc DbgLoc)
  810   Region *R;
  813   ReportUnprofitable(Region *R);
tools/polly/include/polly/ScopInfo.h
 1169   ScopStmt(Scop &parent, Region &R, StringRef Name, Loop *SurroundingLoop,
 1264   Region *R = nullptr;
 1343   Region *getRegion() const { return R; }
 1734   Region &R;
 1946   Scop(Region &R, ScalarEvolution &SE, LoopInfo &LI, DominatorTree &DT,
 1997   void addScopStmt(Region *R, StringRef Name, Loop *SurroundingLoop,
 2189   inline const Region &getRegion() const { return R; }
 2190   inline Region &getRegion() { return R; }
 2220   Region::block_range blocks() const { return R.blocks(); }
 2426   ArrayRef<ScopStmt *> getStmtListFor(Region *R) const;
 2475   bool isNonAffineSubRegion(const Region *R) {
 2786   bool runOnRegion(Region *R, RGPassManager &RGM) override;
 2797   using RegionToScopMapTy = MapVector<Region *, std::unique_ptr<Scop>>;
 2827   Scop *getScop(Region *R) const {
tools/polly/include/polly/ScopPass.h
  168   bool runOnRegion(Region *R, RGPassManager &RGM) override;
  182   SPMUpdater(SmallPriorityWorklist<Region *, 4> &Worklist,
  199   SmallPriorityWorklist<Region *, 4> &Worklist;
  217     SmallPriorityWorklist<Region *, 4> Worklist;
  234       Region *R = Worklist.pop_back_val();
tools/polly/include/polly/Support/SCEVValidator.h
   64 bool hasScalarDepsInsideRegion(const llvm::SCEV *Expr, const llvm::Region *R,
   67 bool isAffineExpr(const llvm::Region *R, llvm::Loop *Scope,
   72 bool isAffineConstraint(llvm::Value *V, const llvm::Region *R,
   76 ParameterSetTy getParamsInAffineExpr(const llvm::Region *R, llvm::Loop *Scope,
   95 const llvm::SCEV *tryForwardThroughPHI(const llvm::SCEV *Expr, llvm::Region &R,
  105 llvm::Value *getUniqueNonErrorValue(llvm::PHINode *PHI, llvm::Region *R,
tools/polly/include/polly/Support/ScopHelper.h
  307 void simplifyRegion(llvm::Region *R, llvm::DominatorTree *DT,
  371 bool isErrorBlock(llvm::BasicBlock &BB, const llvm::Region &R,
  414 bool isHoistableLoad(llvm::LoadInst *LInst, llvm::Region &R, llvm::LoopInfo &LI,
tools/polly/include/polly/Support/ScopLocation.h
   30 void getDebugLocation(const llvm::Region *R, unsigned &LineBegin,
tools/polly/lib/Analysis/PolyhedralInfo.cpp
  103     Region *R = It.first;
tools/polly/lib/Analysis/ScopBuilder.cpp
  163   return RN->isSubRegion() ? RN->getNodeAs<Region>()->getEntry()
  172     return RN->getNodeAs<Region>()->getExit();
  177 static bool containsErrorBlock(RegionNode *RN, const Region &R, LoopInfo &LI,
  181   for (BasicBlock *BB : RN->getNodeAs<Region>()->blocks())
  317     auto &R = scop->getRegion();
  484     Region &R = scop->getRegion();
  584     Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap) {
  594   ReversePostOrderTraversal<Region *> RTraversal(R);
  599       Region *SubRegion = RN->getNodeAs<Region>();
  599       Region *SubRegion = RN->getNodeAs<Region>();
  632   auto *BBReg = RI ? RI->getRegionFor(BB) : nullptr;
  686   SmallSet<Region *, 8> PropagatedRegions;
  702     auto *PredR = RI.getRegionFor(PredBB);
  826     Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap) {
  866     Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap) {
  879   ReversePostOrderTraversal<Region *> RTraversal(R);
  884       Region *SubRegion = RN->getNodeAs<Region>();
  884       Region *SubRegion = RN->getNodeAs<Region>();
  994     Region *R, DenseMap<BasicBlock *, isl::set> &InvalidDomainMap) {
  995   ReversePostOrderTraversal<Region *> RTraversal(R);
 1001       Region *SubRegion = RN->getNodeAs<Region>();
 1001       Region *SubRegion = RN->getNodeAs<Region>();
 1076                                    Region *NonAffineSubRegion,
 1204 void ScopBuilder::buildSchedule(Region *R, LoopStackTy &LoopStack) {
 1207   ReversePostOrderTraversal<Region *> RTraversal(R);
 1250     auto *LocalRegion = RN->getNodeAs<Region>();
 1250     auto *LocalRegion = RN->getNodeAs<Region>();
 1538     auto &R = scop->getRegion();
 1909     Region *R = Stmt.getRegion();
 1957 static std::string makeStmtName(Region *R, long RIdx) {
 2177 void ScopBuilder::buildStmts(Region &SR) {
 2193       buildStmts(*I->getNodeAs<Region>());
 2211                                        Region *NonAffineSubRegion) {
 3599 void ScopBuilder::buildScop(Region &R, AssumptionCache &AC) {
 3750 ScopBuilder::ScopBuilder(Region *R, AssumptionCache &AC, AliasAnalysis &AA,
tools/polly/lib/Analysis/ScopDetection.cpp
  336   Region *TopRegion = RI.getTopLevelRegion();
  402 bool ScopDetection::isMaxRegionInScop(const Region &R, bool Verify) const {
  418 std::string ScopDetection::regionIsInvalidBecause(const Region *R) const {
  432 bool ScopDetection::addOverApproximatedRegion(Region *AR,
  452   Region &CurRegion = Context.CurRegion;
  639   Region &CurRegion = Context.CurRegion;
  786 bool ScopDetection::isInvariant(Value &Val, const Region &Reg,
  915   Region &CurRegion = Context.CurRegion;
 1323     Region *R = RI.getRegionFor(L->getHeader());
 1360 ScopDetection::countBeneficialLoops(Region *R, ScalarEvolution &SE,
 1388 Region *ScopDetection::expandRegion(Region &R) {
 1388 Region *ScopDetection::expandRegion(Region &R) {
 1390   std::unique_ptr<Region> LastValidRegion;
 1444 static bool regionWithoutLoops(Region &R, LoopInfo &LI) {
 1452 void ScopDetection::removeCachedResultsRecursively(const Region &R) {
 1461 void ScopDetection::removeCachedResults(const Region &R) {
 1465 void ScopDetection::findScops(Region &R) {
 1494   std::vector<Region *> ToExpand;
 1499   for (Region *CurrentRegion : ToExpand) {
 1510     Region *ExpandedR = expandRegion(*CurrentRegion);
 1523   Region &CurRegion = Context.CurRegion;
 1602   Region &CurRegion = Context.CurRegion;
 1638   Region &CurRegion = Context.CurRegion;
 1690   for (const Region *R : *this) {
 1708 bool ScopDetection::isReducibleRegion(Region &R, DebugLoc &DbgLoc) const {
 1824 ScopDetection::getDetectionContext(const Region *R) const {
 1831 const RejectLog *ScopDetection::lookupRejectionLog(const Region *R) const {
 1836 void ScopDetection::verifyRegion(const Region &R) const {
 1847   for (const Region *R : ValidRegions)
 1874   for (const Region *R : Result->ValidRegions)
 1912   for (const Region *R : SD.ValidRegions)
tools/polly/lib/Analysis/ScopDetectionDiagnostic.cpp
  108 BBPair getBBPairForRegion(const Region *R) {
  775 ReportUnprofitable::ReportUnprofitable(Region *R)
tools/polly/lib/Analysis/ScopGraphPrinter.cpp
  105     Region *R = RI->getRegionFor(destBB);
  139   static void printRegionCluster(const ScopDetection *SD, const Region *R,
tools/polly/lib/Analysis/ScopInfo.cpp
 1188 ScopStmt::ScopStmt(Scop &parent, Region &R, StringRef Name,
 1680   auto *BBR = RI.getRegionFor(BB);
 1698 Scop::Scop(Region &R, ScalarEvolution &ScalarEvolution, LoopInfo &LI,
 2382 void Scop::addScopStmt(Region *R, StringRef Name, Loop *SurroundingLoop,
 2454     return getStmtListFor(RN->getNodeAs<Region>());
 2458 ArrayRef<ScopStmt *> Scop::getStmtListFor(Region *R) const {
 2664 bool ScopInfoRegionPass::runOnRegion(Region *R, RGPassManager &RGM) {
 2731     Region *R = const_cast<Region *>(It);
tools/polly/lib/Analysis/ScopPass.cpp
   24 bool ScopPass::runOnRegion(Region *R, RGPassManager &RGM) {
tools/polly/lib/CodeGen/BlockGenerators.cpp
 1420 static bool isDominatingSubregionExit(const DominatorTree &DT, Region *R,
 1436 static BasicBlock *findExitDominator(DominatorTree &DT, Region *R) {
 1471   Region *R = Stmt.getRegion();
 1624   Region *SubR = Stmt->getRegion();
tools/polly/lib/CodeGen/CodeGeneration.cpp
  106 static void fixRegionInfo(Function &F, Region &ParentRegion, RegionInfo &RI) {
  143 static void removeLifetimeMarkers(Region *R) {
  200   Region *R = &S.getRegion();
tools/polly/lib/CodeGen/Utils.cpp
   54     Region *PrevRegion = RI->getRegionFor(Prev);
   55     Region *SuccRegion = RI->getRegionFor(Succ);
   80   Region &R = S.getRegion();
  108   Region *PrevRegion = RI.getRegionFor(EnteringBB);
tools/polly/lib/Support/SCEVValidator.cpp
  135   const Region *R;
  141   SCEVValidator(const Region *R, Loop *Scope, ScalarEvolution &SE,
  496   const Region *R;
  503   SCEVInRegionDependences(const Region *R, Loop *Scope, bool AllowLoops,
  626 bool hasScalarDepsInsideRegion(const SCEV *Expr, const Region *R,
  635 bool isAffineExpr(const Region *R, llvm::Loop *Scope, const SCEV *Expr,
  659 static bool isAffineExpr(Value *V, const Region *R, Loop *Scope,
  676 bool isAffineConstraint(Value *V, const Region *R, llvm::Loop *Scope,
  699 ParameterSetTy getParamsInAffineExpr(const Region *R, Loop *Scope,
  772 const SCEV *tryForwardThroughPHI(const SCEV *Expr, Region &R,
  798 Value *getUniqueNonErrorValue(PHINode *PHI, Region *R, LoopInfo &LI,
tools/polly/lib/Support/ScopHelper.cpp
   44 static void simplifyRegionEntry(Region *R, DominatorTree *DT, LoopInfo *LI,
   72         Region *RegionOfPred = RI->getRegionFor(ExitPred);
   84       Region *AncestorR = R->getParent();
  108 static void simplifyRegionExit(Region *R, DominatorTree *DT, LoopInfo *LI,
  156 void polly::simplifyRegion(Region *R, DominatorTree *DT, LoopInfo *LI,
  185     Region *R = RI->getRegionFor(Old);
  233   explicit ScopExpander(const Region &R, ScalarEvolution &SE,
  263   const Region &R;
  402 bool polly::isErrorBlock(BasicBlock &BB, const Region &R, LoopInfo &LI,
  499   Region *R = RN->getNodeAs<Region>();
  499   Region *R = RN->getNodeAs<Region>();
  531   Region *NonAffineSubRegion = RN->getNodeAs<Region>();
  531   Region *NonAffineSubRegion = RN->getNodeAs<Region>();
  538 static bool hasVariantIndex(GetElementPtrInst *Gep, Loop *L, Region &R,
  549 bool polly::isHoistableLoad(LoadInst *LInst, Region &R, LoopInfo &LI,
tools/polly/lib/Support/ScopLocation.cpp
   21 void getDebugLocation(const Region *R, unsigned &LineBegin, unsigned &LineEnd,
usr/include/c++/7.4.0/bits/alloc_traits.h
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/stl_list.h
  570 	_M_create_node(_Args&&... __args)
 1131 	emplace_back(_Args&&... __args)
 1799        _M_insert(iterator __position, _Args&&... __args)
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
usr/include/c++/7.4.0/ext/new_allocator.h
  135 	construct(_Up* __p, _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;
 1633     { typedef _Tp   type; };
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1983     { typedef _Up     type; };