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

Declarations

utils/TableGen/CodeGenTarget.h
   30 struct CodeGenRegister;
utils/TableGen/DAGISelMatcher.h
   19   struct CodeGenRegister;

References

include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
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) {
usr/include/c++/7.4.0/bits/alloc_traits.h
  387       using allocator_type = allocator<_Tp>;
  389       using value_type = _Tp;
  392       using pointer = _Tp*;
  395       using const_pointer = const _Tp*;
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
usr/include/c++/7.4.0/bits/allocator.h
  108     class allocator: public __allocator_base<_Tp>
  113       typedef _Tp*       pointer;
  114       typedef const _Tp* const_pointer;
  115       typedef _Tp&       reference;
  116       typedef const _Tp& const_reference;
  117       typedef _Tp        value_type;
  137 	allocator(const allocator<_Tp1>&) throw() { }
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/ptr_traits.h
  126       typedef _Tp* pointer;
  128       typedef _Tp  element_type;
  141       pointer_to(__make_not_void<element_type>& __r) noexcept
  141       pointer_to(__make_not_void<element_type>& __r) noexcept
usr/include/c++/7.4.0/bits/stl_construct.h
   97     _Destroy(_Tp* __pointer)
  204 	     allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_deque.h
  120 	using __iter = _Deque_iterator<_Tp, _CvTp&, __ptr_to<_CvTp>>;
  122       typedef __iter<_Tp>		iterator;
  123       typedef __iter<const _Tp>		const_iterator;
  124       typedef __ptr_to<_Tp>		_Elt_pointer;
  129       { return __deque_buf_size(sizeof(_Tp)); }
  132       typedef _Tp				value_type;
  267     operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
  268 	       const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) _GLIBCXX_NOEXCEPT
  274     operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
  275 	       const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) _GLIBCXX_NOEXCEPT
  280     operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
  281 	       const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) _GLIBCXX_NOEXCEPT
  287     operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
  288 	       const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) _GLIBCXX_NOEXCEPT
  350     inline typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type
  351     operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
  352 	      const _Deque_iterator<_Tp, _Ref, _Ptr>& __y) _GLIBCXX_NOEXCEPT
  355 	(_Deque_iterator<_Tp, _Ref, _Ptr>::_S_buffer_size())
  362     inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
  363     operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
  364 	      const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) _GLIBCXX_NOEXCEPT
  464 	rebind<_Tp>::other _Tp_alloc_type;
  487       typedef _Deque_iterator<_Tp, _Tp&, _Ptr>	  iterator;
  487       typedef _Deque_iterator<_Tp, _Tp&, _Ptr>	  iterator;
  488       typedef _Deque_iterator<_Tp, const _Tp&, _Ptr_const>   const_iterator;
  488       typedef _Deque_iterator<_Tp, const _Tp&, _Ptr_const>   const_iterator;
  602 	return _Traits::allocate(_M_impl, __deque_buf_size(sizeof(_Tp)));
  609 	_Traits::deallocate(_M_impl, __p, __deque_buf_size(sizeof(_Tp)));
  684       const size_t __num_nodes = (__num_elements/ __deque_buf_size(sizeof(_Tp))
  715 					% __deque_buf_size(sizeof(_Tp)));
  831     class deque : protected _Deque_base<_Tp, _Alloc>
  842       typedef _Deque_base<_Tp, _Alloc>			_Base;
  848       typedef _Tp					value_type;
  863       { return __deque_buf_size(sizeof(_Tp)); }
 2069 		      const std::allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_function.h
  417 	operator()(_Tp&& __t, _Up&& __u) const
  417 	operator()(_Tp&& __t, _Up&& __u) const
  462 	operator()(_Tp&& __t, _Up&& __u) const
  462 	operator()(_Tp&& __t, _Up&& __u) const
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
usr/include/c++/7.4.0/ext/alloc_traits.h
  117       { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h
   63       typedef _Tp*       pointer;
   64       typedef const _Tp* const_pointer;
   65       typedef _Tp&       reference;
   66       typedef const _Tp& const_reference;
   67       typedef _Tp        value_type;
  111 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  130       { return size_t(-1) / sizeof(_Tp); }
  135 	construct(_Up* __p, _Args&&... __args)
  136 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };
 1983     { typedef _Up     type; };
 2171     { typedef _Iffalse type; };
utils/TableGen/AsmMatcherEmitter.cpp
  895     if (const CodeGenRegister *Reg = Info.Target.getRegisterByName(LoweredTok))
  904   if (const CodeGenRegister *Reg = Info.Target.getRegisterByName(RegName))
 1237   for (const CodeGenRegister &CGR : Registers) {
 2600   for (const CodeGenRegister &Reg : Regs) {
 2625   for (const CodeGenRegister &Reg : Regs) {
utils/TableGen/AsmWriterEmitter.cpp
  500                        const std::deque<CodeGenRegister> &Registers) {
  504   for (const auto &Reg : Registers) {
utils/TableGen/CodeGenRegisters.cpp
  193     CodeGenRegister *Reg = RegBank.getReg(Alias);
  208   CodeGenRegister::Vec::const_iterator RegI, RegE;
  209   CodeGenRegister::RegUnitList::iterator UnitI, UnitE;
  212   RegUnitIterator(const CodeGenRegister::Vec &Regs):
  226   const CodeGenRegister *getReg() const { assert(isValid()); return *RegI; }
  249 static bool hasRegUnit(CodeGenRegister::RegUnitList &RegUnits, unsigned Unit) {
  258     CodeGenRegister *SR = SubReg.second;
  266 const CodeGenRegister::SubRegMap &
  277     CodeGenRegister *SR = ExplicitSubRegs[i];
  290   SmallPtrSet<CodeGenRegister*, 8> Orphans;
  294   for (CodeGenRegister *ESR : ExplicitSubRegs) {
  312     CodeGenRegister *SR = SubRegs[Idx];
  350     CodeGenRegister *SR = SubRegs[Idx];
  372     DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*>::iterator Ins =
  390     CodeGenRegister *SR = ExplicitSubRegs[i];
  414     CodeGenRegister *SR = ExplicitSubRegs[i];
  428     CodeGenRegister *AR = ExplicitAliases[i];
  468   std::queue<std::pair<CodeGenSubRegIndex*,CodeGenRegister*>> SubRegQueue;
  469   for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : SubRegs)
  477     const CodeGenRegister *SubReg;
  481     const CodeGenRegister::SuperRegList &Leads = SubReg->LeadingSuperRegs;
  483       CodeGenRegister *Cand = const_cast<CodeGenRegister*>(Leads[i]);
  497       for (CodeGenRegister *SubReg : Cand->ExplicitSubRegs) {
  518       std::pair<CodeGenSubRegIndex*,CodeGenRegister*> NewSubReg =
  534     CodeGenRegister *NewSubReg = NewSubRegs[i].second;
  577 CodeGenRegister::addSubRegsPreOrder(SetVector<const CodeGenRegister*> &OSet,
  581     CodeGenRegister *SR = ExplicitSubRegs[i];
  736 static void sortAndUniqueRegisters(CodeGenRegister::Vec &M) {
  767     const CodeGenRegister *Reg = RegBank.getReg((*Elements)[i]);
  781       CodeGenRegister *Reg = RegBank.getReg(Order.back());
  861 bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const {
 1133   for (auto &Reg : Registers)
 1137   for (auto &Reg : Registers)
 1147   for (auto &Reg : Registers)
 1161   for (auto &Reg : Registers)
 1167   for (auto &Reg : Registers)
 1172   for (auto &Reg : Registers) {
 1176       const CodeGenRegister *SR = P.second;
 1226 CodeGenRegister *CodeGenRegBank::getReg(Record *Def) {
 1227   CodeGenRegister *&Reg = Def2Reg[Def];
 1248                                     const CodeGenRegister::Vec *Members,
 1322   using RegMap = std::map<const CodeGenRegister*, const CodeGenRegister*>;
 1322   using RegMap = std::map<const CodeGenRegister*, const CodeGenRegister*>;
 1328   for (const CodeGenRegister &R : Registers) {
 1329     const CodeGenRegister::SubRegMap &SM = R.getSubRegs();
 1330     for (std::pair<const CodeGenSubRegIndex*, const CodeGenRegister*> P : SM)
 1341     for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Img1) {
 1341     for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Img1) {
 1356     for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Map1) {
 1356     for (std::pair<const CodeGenRegister*, const CodeGenRegister*> P : Map1) {
 1375   for (const auto &Reg1 : Registers) {
 1381     const CodeGenRegister::SubRegMap &SRM1 = Reg1.getSubRegs();
 1382     for (CodeGenRegister::SubRegMap::const_iterator i1 = SRM1.begin(),
 1385       CodeGenRegister *Reg2 = i1->second;
 1389       const CodeGenRegister::SubRegMap &SRM2 = Reg2->getSubRegs();
 1391       for (CodeGenRegister::SubRegMap::const_iterator i2 = SRM2.begin(),
 1394         CodeGenRegister *Reg3 = i2->second;
 1570   CodeGenRegister::Vec Regs;
 1572   CodeGenRegister::RegUnitList SingularDeterminants;
 1599     const CodeGenRegister::Vec &Regs = RegClass.getMembers();
 1613   for (const auto &Reg : Registers) {
 1629   for (const CodeGenRegister &Reg : Registers) {
 1651     const CodeGenRegister *Reg = nullptr;
 1701 static bool normalizeWeight(CodeGenRegister *Reg,
 1705                             CodeGenRegister::RegUnitList &NormalUnits,
 1713   const CodeGenRegister::SubRegMap &SRM = Reg->getSubRegs();
 1714   for (CodeGenRegister::SubRegMap::const_iterator SRI = SRM.begin(),
 1779     for (auto &Reg : Registers) {
 1780       CodeGenRegister::RegUnitList NormalUnits;
 2042   for (auto &Register : Registers) {
 2045     CodeGenRegister::RegUnitLaneMaskList
 2048     typedef CodeGenRegister::SubRegMap SubRegMap;
 2052       CodeGenRegister *SubReg = S->second;
 2058       const CodeGenRegister *SubRegister = S->second;
 2098     for (const CodeGenRegister *Reg : RC.getMembers()) {
 2140     const CodeGenRegister::Vec &Memb1 = RC1->getMembers();
 2141     const CodeGenRegister::Vec &Memb2 = RC2->getMembers();
 2142     CodeGenRegister::Vec Intersection;
 2170   typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec,
 2179     const CodeGenRegister::SubRegMap &SRM = R->getSubRegs();
 2180     for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(),
 2221   SmallVector<std::pair<const CodeGenRegister*,
 2222                         const CodeGenRegister*>, 16> SSPairs;
 2237       const CodeGenRegister *Sub = Super->getSubRegs().find(&SubIdx)->second;
 2257       CodeGenRegister::Vec SubSetVec;
 2333   const CodeGenRegister *Reg = getReg(R);
 2374   const CodeGenRegister *Reg = getReg(RegRecord);
 2387   SetVector<const CodeGenRegister*> Set;
 2391     CodeGenRegister *Reg = getReg(Regs[i]);
 2400     const CodeGenRegister::SuperRegList &SR = Set[i]->getSuperRegs();
 2402       const CodeGenRegister *Super = SR[j];
 2407       const CodeGenRegister::SubRegMap &SRM = Super->getSubRegs();
 2408       for (CodeGenRegister::SubRegMap::const_iterator I = SRM.begin(),
utils/TableGen/CodeGenRegisters.h
  159     typedef std::map<CodeGenSubRegIndex *, CodeGenRegister *,
  188     void addSubRegsPreOrder(SetVector<const CodeGenRegister*> &OSet,
  193     CodeGenSubRegIndex *getSubRegIndex(const CodeGenRegister *Reg) const {
  197     typedef std::vector<const CodeGenRegister*> SuperRegList;
  210     ArrayRef<CodeGenRegister*> getExplicitAliases() const {
  260     typedef std::vector<const CodeGenRegister*> Vec;
  269     SmallVector<CodeGenRegister*, 8> ExplicitSubRegs;
  272     SmallVector<CodeGenRegister*, 8> ExplicitAliases;
  279     DenseMap<const CodeGenRegister*, CodeGenSubRegIndex*> SubReg2Idx;
  284   inline bool operator<(const CodeGenRegister &A, const CodeGenRegister &B) {
  284   inline bool operator<(const CodeGenRegister &A, const CodeGenRegister &B) {
  288   inline bool operator==(const CodeGenRegister &A, const CodeGenRegister &B) {
  288   inline bool operator==(const CodeGenRegister &A, const CodeGenRegister &B) {
  293     CodeGenRegister::Vec Members;
  362     bool contains(const CodeGenRegister*) const;
  435     const CodeGenRegister::Vec &getMembers() const { return Members; }
  450       const CodeGenRegister::Vec *Members;
  453       Key(const CodeGenRegister::Vec *M, const RegSizeInfoByHwMode &I)
  485     const CodeGenRegister *Roots[2];
  498     ArrayRef<const CodeGenRegister*> getRoots() const {
  537     std::deque<CodeGenRegister> Registers;
  538     StringMap<CodeGenRegister*> RegistersByName;
  539     DenseMap<Record*, CodeGenRegister*> Def2Reg;
  577                                               const CodeGenRegister::Vec *Membs,
  638     const std::deque<CodeGenRegister> &getRegisters() { return Registers; }
  640     const StringMap<CodeGenRegister*> &getRegistersByName() {
  645     CodeGenRegister *getReg(Record*);
  648     unsigned getRegIndex(const CodeGenRegister *Reg) const {
  667     unsigned newRegUnit(CodeGenRegister *R0, CodeGenRegister *R1 = nullptr) {
  667     unsigned newRegUnit(CodeGenRegister *R0, CodeGenRegister *R1 = nullptr) {
utils/TableGen/CodeGenTarget.cpp
  354 const CodeGenRegister *CodeGenTarget::getRegisterByName(StringRef Name) const {
  355   const StringMap<CodeGenRegister*> &Regs = getRegBank().getRegistersByName();
  356   StringMap<CodeGenRegister*>::const_iterator I = Regs.find(Name);
  364   const CodeGenRegister *Reg = getRegBank().getReg(R);
utils/TableGen/CodeGenTarget.h
  114   const CodeGenRegister *getRegisterByName(StringRef Name) const;
utils/TableGen/DAGISelMatcher.h
  859   const CodeGenRegister *Reg;
  862   EmitRegisterMatcher(const CodeGenRegister *reg, MVT::SimpleValueType vt)
  865   const CodeGenRegister *getReg() const { return Reg; }
  935   const CodeGenRegister *DestPhysReg;
  939                        const CodeGenRegister *destPhysReg)
  943   const CodeGenRegister *getDestPhysReg() const { return DestPhysReg; }
utils/TableGen/DAGISelMatcherEmitter.cpp
  631     const CodeGenRegister *Reg = Matcher->getReg();
  676     const CodeGenRegister *Reg = C2RMatcher->getDestPhysReg();
utils/TableGen/DAGISelMatcherGen.cpp
   27   const CodeGenRegister *Reg = T.getRegBank().getReg(R);
  681       const CodeGenRegister *Reg =
  871       const CodeGenRegister *Reg =
utils/TableGen/RISCVCompressInstEmitter.cpp
  137   const CodeGenRegister *R = Target.getRegisterByName(Reg->getName().lower());
utils/TableGen/RegisterInfoEmitter.cpp
   86   void EmitRegMapping(raw_ostream &o, const std::deque<CodeGenRegister> &Regs,
   89                             const std::deque<CodeGenRegister> &Regs,
  126   for (const auto &Reg : Registers)
  204     const CodeGenRegister::Vec &Regs = RC.getMembers();
  371     raw_ostream &OS, const std::deque<CodeGenRegister> &Regs, bool isCtor) {
  506     raw_ostream &OS, const std::deque<CodeGenRegister> &Regs, bool isCtor) {
  875   typedef std::vector<const CodeGenRegister*> RegVec;
  899     const auto &Reg = *I;
  903     SetVector<const CodeGenRegister*> SR;
  910     for (const CodeGenRegister *S : SR)
 1005   for (const auto &Reg : Regs) {
 1019     ArrayRef<const CodeGenRegister*> Roots = RegBank.getRegUnit(i).getRoots();
 1094   for (const auto &RE : Regs) {
 1439   for (const auto &Reg : Regs) {
 1638     for (const CodeGenRegister *R : RC.getMembers()) {
 1663   for (const CodeGenRegister &R : RegBank.getRegisters()) {
 1668     for (std::pair<CodeGenSubRegIndex*,CodeGenRegister*> P : R.getSubRegs()) {