|
reference, declaration → definition
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()) {