|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/Hexagon/HexagonBlockRanges.cpp 36 IndexType S = start(), E = end(), AS = A.start(), AE = A.end();
50 IndexType E = (end() != IndexType::None) ? end() : start();
50 IndexType E = (end() != IndexType::None) ? end() : start();
51 IndexType AE = (A.end() != IndexType::None) ? A.end() : A.start();
51 IndexType AE = (A.end() != IndexType::None) ? A.end() : A.start();
61 IndexType AS = A.start(), AE = A.end();
62 if (AS < start() || start() == IndexType::None)
64 if (end() < AE || end() == IndexType::None) {
115 IndexType AS = A.start(), AE = A.end();
116 IndexType BS = B.start(), BE = B.end();
120 if (AE == IndexType::None)
133 if (BE == IndexType::None)
159 IndexType Idx = IndexType::First;
159 IndexType Idx = IndexType::First;
168 Last = B.empty() ? IndexType::None : unsigned(Idx)-1;
171 MachineInstr *HexagonBlockRanges::InstrIndexMap::getInstr(IndexType Idx) const {
176 HexagonBlockRanges::IndexType HexagonBlockRanges::InstrIndexMap::getIndex(
181 return IndexType::None;
184 HexagonBlockRanges::IndexType HexagonBlockRanges::InstrIndexMap::getPrevIndex(
185 IndexType Idx) const {
187 if (Idx == IndexType::Entry)
188 return IndexType::None;
189 if (Idx == IndexType::Exit)
192 return IndexType::Entry;
196 HexagonBlockRanges::IndexType HexagonBlockRanges::InstrIndexMap::getNextIndex(
197 IndexType Idx) const {
199 if (Idx == IndexType::Entry)
200 return IndexType::First;
201 if (Idx == IndexType::Exit || Idx == Last)
202 return IndexType::None;
292 std::map<RegisterRef,IndexType> LastDef, LastUse;
301 LastDef[R] = IndexType::Entry;
304 auto LD = LastDef[R], LU = LastUse[R];
305 if (LD == IndexType::None)
306 LD = IndexType::Entry;
307 if (LU == IndexType::None)
308 LU = IndexType::Exit;
310 LastUse[R] = LastDef[R] = IndexType::None;
318 IndexType Index = IndexMap.getIndex(&In);
379 if (LastDef[S] != IndexType::None || LastUse[S] != IndexType::None)
379 if (LastDef[S] != IndexType::None || LastUse[S] != IndexType::None)
388 if (LastDef[S] != IndexType::None || LastUse[S] != IndexType::None)
388 if (LastDef[S] != IndexType::None || LastUse[S] != IndexType::None)
403 LastUse[R] = IndexType::Exit;
408 if (I.second != IndexType::None)
411 if (I.second != IndexType::None)
438 DeadMap[R].add(IndexType::Entry, IndexType::Exit, false, false);
438 DeadMap[R].add(IndexType::Entry, IndexType::Exit, false, false);
446 if (A->start() != IndexType::Entry) {
447 IndexType DE = IndexMap.getPrevIndex(A->start());
448 if (DE != IndexType::Entry)
449 DeadMap[R].add(IndexType::Entry, DE, false, false);
455 IndexType AE = (A->end() == IndexType::None) ? A->start() : A->end();
455 IndexType AE = (A->end() == IndexType::None) ? A->start() : A->end();
456 IndexType DS = IndexMap.getNextIndex(AE);
458 IndexType DE = IndexMap.getPrevIndex(A->start());
464 if (Z->end() != IndexType::Exit) {
465 IndexType ZE = (Z->end() == IndexType::None) ? Z->start() : Z->end();
465 IndexType ZE = (Z->end() == IndexType::None) ? Z->start() : Z->end();
466 IndexType DS = IndexMap.getNextIndex(ZE);
467 if (DS < IndexType::Exit)
468 DeadMap[R].add(DS, IndexType::Exit, false, false);
494 HexagonBlockRanges::IndexType Idx) {
495 if (Idx == HexagonBlockRanges::IndexType::None)
497 if (Idx == HexagonBlockRanges::IndexType::Entry)
499 if (Idx == HexagonBlockRanges::IndexType::Exit)
501 return OS << unsigned(Idx)-HexagonBlockRanges::IndexType::First+1;
523 HexagonBlockRanges::IndexType Idx = M.getIndex(&In);
lib/Target/Hexagon/HexagonBlockRanges.h 56 static bool isInstr(IndexType X) { return X.Index >= First; }
60 bool operator== (IndexType Idx) const;
62 bool operator!= (IndexType Idx) const;
63 IndexType operator++ ();
65 bool operator< (IndexType Idx) const;
66 bool operator<= (IndexType Idx) const;
69 bool operator> (IndexType Idx) const;
70 bool operator>= (IndexType Idx) const;
78 class IndexRange : public std::pair<IndexType,IndexType> {
78 class IndexRange : public std::pair<IndexType,IndexType> {
81 IndexRange(IndexType Start, IndexType End, bool F = false, bool T = false)
81 IndexRange(IndexType Start, IndexType End, bool F = false, bool T = false)
84 IndexType start() const { return first; }
85 IndexType end() const { return second; }
99 void setStart(const IndexType &S) { first = S; }
100 void setEnd(const IndexType &E) { second = E; }
107 void add(IndexType Start, IndexType End, bool Fixed, bool TiedEnd) {
107 void add(IndexType Start, IndexType End, bool Fixed, bool TiedEnd) {
126 MachineInstr *getInstr(IndexType Idx) const;
127 IndexType getIndex(MachineInstr *MI) const;
129 IndexType getPrevIndex(IndexType Idx) const;
129 IndexType getPrevIndex(IndexType Idx) const;
130 IndexType getNextIndex(IndexType Idx) const;
130 IndexType getNextIndex(IndexType Idx) const;
135 IndexType First, Last;
139 std::map<IndexType,MachineInstr*> Map;
183 inline bool HexagonBlockRanges::IndexType::operator== (IndexType Idx) const {
191 inline bool HexagonBlockRanges::IndexType::operator!= (IndexType Idx) const {
196 HexagonBlockRanges::IndexType HexagonBlockRanges::IndexType::operator++ () {
210 inline bool HexagonBlockRanges::IndexType::operator< (IndexType Idx) const {
230 inline bool HexagonBlockRanges::IndexType::operator<= (IndexType Idx) const {
234 raw_ostream &operator<< (raw_ostream &OS, HexagonBlockRanges::IndexType Idx);
lib/Target/Hexagon/HexagonFrameLowering.cpp 2020 using IndexType = HexagonBlockRanges::IndexType;
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
73 forward(typename std::remove_reference<_Tp>::type& __t) noexcept
83 constexpr _Tp&&
84 forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
usr/include/c++/7.4.0/bits/stl_function.h 121 typedef _Arg1 first_argument_type;
124 typedef _Arg2 second_argument_type;
381 struct less : public binary_function<_Tp, _Tp, bool>
381 struct less : public binary_function<_Tp, _Tp, bool>
385 operator()(const _Tp& __x, const _Tp& __y) const
385 operator()(const _Tp& __x, const _Tp& __y) const
usr/include/c++/7.4.0/bits/stl_map.h 102 typedef _Key key_type;
103 typedef _Tp mapped_type;
104 typedef std::pair<const _Key, _Tp> value_type;
104 typedef std::pair<const _Key, _Tp> value_type;
usr/include/c++/7.4.0/bits/stl_pair.h 100 return __and_<is_constructible<_T1, const _U1&>,
100 return __and_<is_constructible<_T1, const _U1&>,
101 is_constructible<_T2, const _U2&>>::value;
101 is_constructible<_T2, const _U2&>>::value;
107 return __and_<is_convertible<const _U1&, _T1>,
107 return __and_<is_convertible<const _U1&, _T1>,
108 is_convertible<const _U2&, _T2>>::value;
108 is_convertible<const _U2&, _T2>>::value;
114 return __and_<is_constructible<_T1, _U1&&>,
114 return __and_<is_constructible<_T1, _U1&&>,
115 is_constructible<_T2, _U2&&>>::value;
115 is_constructible<_T2, _U2&&>>::value;
121 return __and_<is_convertible<_U1&&, _T1>,
121 return __and_<is_convertible<_U1&&, _T1>,
122 is_convertible<_U2&&, _T2>>::value;
122 is_convertible<_U2&&, _T2>>::value;
128 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
128 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
129 is_convertible<_U2&&, _T2>>;
129 is_convertible<_U2&&, _T2>>;
133 return __and_<is_constructible<_T1, const _U1&>,
133 return __and_<is_constructible<_T1, const _U1&>,
134 is_constructible<_T2, _U2&&>,
134 is_constructible<_T2, _U2&&>,
142 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
142 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
143 is_convertible<const _U2&, _T2>>;
143 is_convertible<const _U2&, _T2>>;
147 return __and_<is_constructible<_T1, _U1&&>,
147 return __and_<is_constructible<_T1, _U1&&>,
148 is_constructible<_T2, const _U2&&>,
148 is_constructible<_T2, const _U2&&>,
209 : private __pair_base<_T1, _T2>
209 : private __pair_base<_T1, _T2>
211 typedef _T1 first_type; /// @c first_type is the first bound type
212 typedef _T2 second_type; /// @c second_type is the second bound type
214 _T1 first; /// @c first is a copy of the first object
215 _T2 second; /// @c second is a copy of the second object
252 using _PCCP = _PCC<true, _T1, _T2>;
252 using _PCCP = _PCC<true, _T1, _T2>;
260 constexpr pair(const _T1& __a, const _T2& __b)
260 constexpr pair(const _T1& __a, const _T2& __b)
269 explicit constexpr pair(const _T1& __a, const _T2& __b)
269 explicit constexpr pair(const _T1& __a, const _T2& __b)
283 _T1, _T2>;
283 _T1, _T2>;
291 constexpr pair(const pair<_U1, _U2>& __p)
311 constexpr pair(_U1&& __x, const _T2& __y)
311 constexpr pair(_U1&& __x, const _T2& __y)
318 explicit constexpr pair(_U1&& __x, const _T2& __y)
325 constexpr pair(const _T1& __x, _U2&& __y)
325 constexpr pair(const _T1& __x, _U2&& __y)
332 explicit pair(const _T1& __x, _U2&& __y)
341 constexpr pair(_U1&& __x, _U2&& __y)
341 constexpr pair(_U1&& __x, _U2&& __y)
360 constexpr pair(pair<_U1, _U2>&& __p)
361 : first(std::forward<_U1>(__p.first)),
379 __and_<is_copy_assignable<_T1>,
380 is_copy_assignable<_T2>>::value,
390 __and_<is_move_assignable<_T1>,
391 is_move_assignable<_T2>>::value,
402 typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
402 typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
403 is_assignable<_T2&, const _U2&>>::value,
403 is_assignable<_T2&, const _U2&>>::value,
405 operator=(const pair<_U1, _U2>& __p)
405 operator=(const pair<_U1, _U2>& __p)
413 typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
413 typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
414 is_assignable<_T2&, _U2&&>>::value,
414 is_assignable<_T2&, _U2&&>>::value,
416 operator=(pair<_U1, _U2>&& __p)
416 operator=(pair<_U1, _U2>&& __p)
448 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
448 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
448 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
448 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
454 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
454 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
454 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
454 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
495 swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
495 swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
495 swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
495 swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
524 make_pair(_T1&& __x, _T2&& __y)
usr/include/c++/7.4.0/bits/stl_tree.h 563 typedef _Key key_type;
758 static const _Key&
782 static const _Key&
894 const _Key& __k);
898 const _Key& __k) const;
902 const _Key& __k);
906 const _Key& __k) const;
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
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
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
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
762 typename add_rvalue_reference<_Tp>::type declval() noexcept;
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
889 typedef decltype(__test<_Tp>(0)) type;
894 : public __and_<__not_<is_void<_Tp>>,
895 __is_default_constructible_impl<_Tp>>
915 : public __is_default_constructible_atom<_Tp>::type
921 : public __is_default_constructible_safe<_Tp>::type
984 typedef decltype(__test<_Tp, _Arg>(0)) type;
989 : public __and_<is_destructible<_Tp>,
990 __is_direct_constructible_impl<_Tp, _Arg>>
1072 __is_direct_constructible_ref_cast<_Tp, _Arg>,
1073 __is_direct_constructible_new_safe<_Tp, _Arg>
1079 : public __is_direct_constructible_new<_Tp, _Arg>::type
1119 : public __is_direct_constructible<_Tp, _Arg>
1130 : public __is_constructible_impl<_Tp, _Args...>::type
1286 : public is_assignable<_Tp&, const _Tp&>
1286 : public is_assignable<_Tp&, const _Tp&>
1292 : public __is_copy_assignable_impl<_Tp>
1304 : public is_assignable<_Tp&, _Tp&&>
1304 : public is_assignable<_Tp&, _Tp&&>
1310 : public __is_move_assignable_impl<_Tp>
1352 : public is_nothrow_assignable<_Tp&, _Tp&&>
1352 : public is_nothrow_assignable<_Tp&, _Tp&&>
1358 : public __is_nt_move_assignable_impl<_Tp>
1377 static void __helper(const _Tp&);
1380 static true_type __test(const _Tp&,
1381 decltype(__helper<const _Tp&>({}))* = 0);
1390 typedef decltype(__test(declval<_Tp>())) type;
1395 : public __is_implicitly_default_constructible_impl<_Tp>::type
1400 : public __and_<is_default_constructible<_Tp>,
1401 __is_implicitly_default_constructible_safe<_Tp>>
1526 static void __test_aux(_To1);
1538 typedef decltype(__test<_From, _To>(0)) type;
1545 : public __is_convertible_helper<_From, _To>::type
1554 { typedef _Tp type; };
1558 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1629 { typedef _Tp type; };
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1664 : public __add_rvalue_reference_helper<_Tp>
1955 { typedef _Tp type; };
2104 { typedef typename remove_cv<_Up>::type __type; };
2131 typedef _Tp __type;