|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
lib/Target/Hexagon/BitTracker.h 38 struct BitValue;
References
include/llvm/ADT/SmallVector.h 75 AlignedCharArrayUnion<T> FirstEl;
114 using value_type = T;
115 using iterator = T *;
116 using const_iterator = const T *;
121 using reference = T &;
122 using const_reference = const T &;
123 using pointer = T *;
124 using const_pointer = const T *;
259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
264 static void destroy_range(T *, T *) {}
264 static void destroy_range(T *, T *) {}
286 T1 *I, T1 *E, T2 *Dest,
286 T1 *I, T1 *E, T2 *Dest,
286 T1 *I, T1 *E, T2 *Dest,
287 typename std::enable_if<std::is_same<typename std::remove_const<T1>::type,
288 T2>::value>::type * = nullptr) {
294 memcpy(reinterpret_cast<void *>(Dest), I, (E - I) * sizeof(T));
299 void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
302 void push_back(const T &Elt) {
315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
316 using SuperClass = SmallVectorTemplateBase<T>;
352 new (&*I) T();
357 void resize(size_type N, const T &NV) {
374 LLVM_NODISCARD T pop_back_val() {
397 void append(size_type NumInputs, const T &Elt) {
405 void append(std::initializer_list<T> IL) {
412 void assign(size_type NumElts, const T &Elt) {
429 void assign(std::initializer_list<T> IL) {
467 iterator insert(iterator I, T &&Elt) {
497 iterator insert(iterator I, const T &Elt) {
526 iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
637 void insert(iterator I, std::initializer_list<T> IL) {
820 AlignedCharArrayUnion<T> InlineElts[N];
837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
846 explicit SmallVector(size_t Size, const T &Value = T())
865 SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
884 SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/Support/AlignOf.h 30 T t;
39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
50 llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/type_traits.h 91 T t;
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
145 std::is_copy_constructible<detail::trivial_helper<T>>::value;
147 !std::is_copy_constructible<T>::value;
151 std::is_move_constructible<detail::trivial_helper<T>>::value;
153 !std::is_move_constructible<T>::value;
157 is_copy_assignable<detail::trivial_helper<T>>::value;
159 !is_copy_assignable<T>::value;
163 is_move_assignable<detail::trivial_helper<T>>::value;
165 !is_move_assignable<T>::value;
169 std::is_destructible<detail::trivial_helper<T>>::value;
lib/Target/Hexagon/BitTracker.cpp 97 raw_ostream &operator<<(raw_ostream &OS, const BT::BitValue &BV) {
99 case BT::BitValue::Top:
102 case BT::BitValue::Zero:
105 case BT::BitValue::One:
108 case BT::BitValue::Ref:
127 const BT::BitValue &V = RC[i];
128 const BT::BitValue &SV = RC[Start];
129 bool IsRef = (V.Type == BT::BitValue::Ref);
133 if (IsRef && SV.Type == BT::BitValue::Ref && V.RefI.Reg == SV.RefI.Reg) {
152 if (SV.Type == BT::BitValue::Ref && SeqRef)
168 const BT::BitValue &SV = RC[Start];
169 if (SV.Type == BT::BitValue::Ref && SeqRef)
207 const BitValue &RCV = RC[i];
275 const BitValue &V) {
295 BitValue V = B;
304 BitValue V = B;
322 const BitValue &V = Bits[i];
323 if (V.Type == BitValue::Ref && V.RefI.Reg == 0)
440 const BitValue &V1 = A1[I];
441 const BitValue &V2 = A2[I];
449 const BitValue &V1 = A1[I];
450 const BitValue &V2 = A2[I];
454 Res[I] = BitValue::ref(V2);
456 Res[I] = BitValue::ref(V1);
461 Res[I] = BitValue::self();
473 const BitValue &V1 = A1[I];
474 const BitValue &V2 = A2[I];
482 const BitValue &V1 = A1[I];
483 const BitValue &V2 = A2[I];
485 Res[I] = BitValue::ref(V2);
489 Res[I] = BitValue::ref(V1);
494 Res[I] = BitValue::self();
503 Res.fill(0, Z, BitValue::Zero);
504 Res.fill(Z, W, BitValue::self());
513 Res.fill(0, Z, BitValue::Zero);
514 Res.fill(Z, W, BitValue::self());
523 Res.fill(0, Sh, BitValue::Zero);
533 Res.fill(W-Sh, W, BitValue::Zero);
542 BitValue Sign = Res[W-1];
554 const BitValue &V1 = A1[i];
555 const BitValue &V2 = A2[i];
557 Res[i] = BitValue::ref(V2);
559 Res[i] = BitValue::ref(V1);
561 Res[i] = BitValue::Zero;
565 Res[i] = BitValue::self();
576 const BitValue &V1 = A1[i];
577 const BitValue &V2 = A2[i];
579 Res[i] = BitValue::One;
581 Res[i] = BitValue::ref(V2);
583 Res[i] = BitValue::ref(V1);
587 Res[i] = BitValue::self();
598 const BitValue &V1 = A1[i];
599 const BitValue &V2 = A2[i];
601 Res[i] = BitValue::ref(V2);
603 Res[i] = BitValue::ref(V1);
605 Res[i] = BitValue::Zero;
607 Res[i] = BitValue::self();
616 const BitValue &V = A1[i];
618 Res[i] = BitValue::One;
620 Res[i] = BitValue::Zero;
622 Res[i] = BitValue::self();
631 Res[BitN] = BitValue::One;
639 Res[BitN] = BitValue::Zero;
668 BitValue Sign = Res[FromN-1];
679 Res.fill(FromN, W, BitValue::Zero);
754 Res.fill(WS, WD, BitValue::Zero);
901 BitValue &V = DefC[i];
903 if (V.Type == BitValue::Ref && V.RefI.Reg == RD.Reg)
1011 BitValue &V = RC[i];
1012 if (V.Type != BitValue::Ref || V.RefI.Reg != OldRR.Reg)
lib/Target/Hexagon/BitTracker.h 197 bool operator== (const BitValue &V) const {
204 bool operator!= (const BitValue &V) const {
228 bool meet(const BitValue &V, const BitRef &Self) {
252 static BitValue ref(const BitValue &V);
252 static BitValue ref(const BitValue &V);
254 static BitValue self(const BitRef &Self = BitRef());
265 friend raw_ostream &operator<<(raw_ostream &OS, const BitValue &BV);
269 inline BitTracker::BitValue
270 BitTracker::BitValue::ref(const BitValue &V) {
278 inline BitTracker::BitValue
306 const BitValue &operator[](uint16_t BitN) const {
310 BitValue &operator[](uint16_t BitN) {
319 RegisterCell &fill(uint16_t B, uint16_t E, const BitValue &V);
345 using BitValueList = SmallVector<BitValue, DefaultBitN>;
366 RC.Bits[i] = BitValue::self(BitRef(Reg, i));
374 RC.Bits[i] = BitValue(BitValue::Top);
383 RC[i] = BitValue::ref(C[i]);
lib/Target/Hexagon/HexagonBitSimplify.cpp 318 if (RC1[B1+i].Type == BitTracker::BitValue::Ref && RC1[B1+i].RefI.Reg == 0)
321 if (RC2[B2+i].Type == BitTracker::BitValue::Ref && RC2[B2+i].RefI.Reg == 0)
343 const BitTracker::BitValue &BV = RC[i-1];
1829 const BitTracker::BitValue &RV = RC[i+B];
1830 if (RV.Type == BitTracker::BitValue::Ref) {
2205 const BitTracker::BitValue &B0 = RC[0];
2206 if (B0.Type != BitTracker::BitValue::Ref)
2215 const BitTracker::BitValue &V = RC[i];
2216 if (V.Type != BitTracker::BitValue::Ref)
2236 const BitTracker::BitValue &S0 = SC[0];
2237 if (S0.Type != BitTracker::BitValue::Ref || S0.RefI.Reg != SrcR)
2251 const BitTracker::BitValue &V = SC[I];
2252 if (V.Type != BitTracker::BitValue::Ref)
2340 const BitTracker::BitValue &V = SC[F+BN];
2341 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg != RS.Reg) {
2417 const BitTracker::BitValue &TopV = RC[W-1];
2424 const BitTracker::BitValue &V = RC[I];
2425 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg == RD.Reg)
2605 const BitTracker::BitValue &V = SC[I];
2686 NewRC[0] = BitTracker::BitValue::self();
2687 NewRC.fill(1, W, BitTracker::BitValue::Zero);
2971 const BitTracker::BitValue &V = RC[i];
3025 const BitTracker::BitValue &V = OutC[i];
3026 if (V.Type != BitTracker::BitValue::Ref)
3045 const BitTracker::BitValue &V1 = OutC1[i], &V2 = OutC2[i];
3046 if (V1.Type != V2.Type || V1.Type == BitTracker::BitValue::One)
3048 if (V1.Type != BitTracker::BitValue::Ref)
lib/Target/Hexagon/HexagonBitTracker.cpp 327 return rr0(RegisterCell(W0).fill(0, W0, BT::BitValue::Zero), Outputs);
329 return rr0(RegisterCell(W0).fill(0, W0, BT::BitValue::One), Outputs);
336 RC.fill(0, L, BT::BitValue::Zero);
352 RC.fill(PW, RW, BT::BitValue::Zero);
359 RC.fill(PW, RW, BT::BitValue::Zero);
441 RPC.fill(0, 2, BT::BitValue::Zero);
682 RC[im(2)] = BT::BitValue::Zero;
687 RC[im(2)] = BT::BitValue::One;
693 RC[BX] = RC[BX].is(0) ? BT::BitValue::One
694 : RC[BX].is(1) ? BT::BitValue::Zero
695 : BT::BitValue::self();
703 const BT::BitValue Zero = BT::BitValue::Zero;
703 const BT::BitValue Zero = BT::BitValue::Zero;
797 const BT::BitValue &V = R1[i];
798 BT::BitValue F = (V.is(0) || V.is(1)) ? V : BT::BitValue::self();
798 BT::BitValue F = (V.is(0) || V.is(1)) ? V : BT::BitValue::self();
810 BT::BitValue PC0 = rc(1)[0];
863 BT::BitValue TV = R1[W1-1];
892 RC.fill(0, W0, (All1 ? BT::BitValue::One : BT::BitValue::Zero));
892 RC.fill(0, W0, (All1 ? BT::BitValue::One : BT::BitValue::Zero));
909 RC.fill(0, W0, (Has1 ? BT::BitValue::One : BT::BitValue::Zero));
909 RC.fill(0, W0, (Has1 ? BT::BitValue::One : BT::BitValue::Zero));
950 BT::BitValue V = rc(1)[im(2)];
954 BT::BitValue F = V.is(TV) ? BT::BitValue::One : BT::BitValue::Zero;
954 BT::BitValue F = V.is(TV) ? BT::BitValue::One : BT::BitValue::Zero;
954 BT::BitValue F = V.is(TV) ? BT::BitValue::One : BT::BitValue::Zero;
969 RC.fill(PW, RW, BT::BitValue::Zero);
1022 const BT::BitValue &Test = PC[0];
1198 Res[i] = BT::BitValue::self(BT::BitRef(RD.Reg, i));
1201 const BT::BitValue &Sign = Res[BitNum-1];
1203 Res[i] = BT::BitValue::ref(Sign);
1206 Res[i] = BT::BitValue::Zero;
lib/Target/Hexagon/HexagonGenInsert.cpp 233 bool operator() (const BitTracker::BitValue &V1,
234 const BitTracker::BitValue &V2) const;
241 bool BitValueOrdering::operator() (const BitTracker::BitValue &V1,
242 const BitTracker::BitValue &V2) const {
339 const BitTracker::BitValue &V1 = RC1[i], &V2 = RC2[i];
369 const BitTracker::BitValue &V1 = RC1[Bit1], V2 = RC2[Bit2];
648 const BitTracker::BitValue &BV = RC[i];
663 const BitTracker::BitValue &BV = RC[i];
704 const BitTracker::BitValue &V = RC[i];
705 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg == VR)
714 const BitTracker::BitValue &V = RC[i];
715 if (V.Type == BitTracker::BitValue::Ref && V.RefI.Reg != VR)
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&&
98 move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/stl_construct.h 74 _Construct(_T1* __p, _Args&&... __args)
74 _Construct(_T1* __p, _Args&&... __args)
75 { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
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;
192 typedef _Tp value_type;
194 typedef const _Tp* pointer;
195 typedef const _Tp& reference;
usr/include/c++/7.4.0/bits/stl_uninitialized.h 144 const _Tp& __x)
182 const _Tp& __x)
usr/include/c++/7.4.0/initializer_list 50 typedef _E value_type;
51 typedef const _E& reference;
52 typedef const _E& const_reference;
54 typedef const _E* iterator;
55 typedef const _E* const_iterator;
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
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
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
1142 : public is_constructible<_Tp, const _Tp&>
1142 : public is_constructible<_Tp, const _Tp&>
1148 : public __is_copy_constructible_impl<_Tp>
1160 : public is_constructible<_Tp, _Tp&&>
1160 : public is_constructible<_Tp, _Tp&&>
1166 : public __is_move_constructible_impl<_Tp>
1286 : public is_assignable<_Tp&, const _Tp&>
1286 : public is_assignable<_Tp&, const _Tp&>
1292 : public __is_copy_assignable_impl<_Tp>
1554 { typedef _Tp type; };
1558 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1955 { typedef _Tp type; };