reference, declarationdefinition
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; };