OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [g++.dg/] [tree-ssa/] [copyprop.C] - Blame information for rev 384

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 301 jeremybenn
// PR 39548 verify ssa ICE
2
//
3
// { dg-do compile { target { lp64 } } }
4
// { dg-options  "-Wno-error -fno-exceptions -fno-tree-vrp -O2 -fprofile-generate  -finline-limit=500"  }
5
//
6
 
7
#include 
8
#include 
9
#include 
10
#include 
11
using namespace std;
12
template _FIter lower_bound(_FIter, _FIter, _Tp&);
13
template struct hash { };
14
template struct _Hashtable_node {
15
  _Hashtable_node* _M_next;
16
  _Val _M_val;
17
};
18
static const unsigned long __stl_prime_list[] = { 2, 3, 5 };
19
inline unsigned long prime(unsigned long __n)   {
20
  const unsigned long* __first = __stl_prime_list;
21
  const unsigned long* __last = __stl_prime_list + 29;
22
  const unsigned long* pos = lower_bound(__first, __last, __n);
23
  return pos == __last ? *(__last - 1) : *pos;
24
}
25
template     struct hashtable  {
26
  typedef _Key key_type;
27
  typedef _Val value_type;
28
  typedef _HashFcn hasher;
29
  typedef _EqualKey key_equal;
30
  typedef size_t size_type;
31
  typedef value_type& reference;
32
  typedef _Hashtable_node<_Val> _Node;
33
  typedef typename _Alloc::template rebind::other allocator_type;
34
  allocator_type get_allocator() const { }
35
  typedef typename _Alloc::template rebind<_Node>::other _Node_Alloc;
36
  typedef typename _Alloc::template rebind<_Node*>::other _Nodeptr_Alloc;
37
  typedef vector<_Node*, _Nodeptr_Alloc> _Vector_type;
38
  _Node_Alloc _M_node_allocator;
39
  void _M_put_node(_Node* __p) {
40
    _M_node_allocator.deallocate(__p, 1);
41
  }
42
  hasher _M_hash;
43
  key_equal _M_equals;
44
  _ExtractKey _M_get_key;
45
  _Vector_type _M_buckets;
46
  size_type _M_num_elements;
47
  hashtable(size_type __n, const _HashFcn& __hf,   const _EqualKey& __eql,   const allocator_type& __a = allocator_type())  : _M_num_elements(0)  {
48
    _M_initialize_buckets(__n);
49
  }
50
  ~hashtable() { clear(); }
51
  reference  find_or_insert(const value_type& __obj);
52
  size_type  count(const key_type& __key) const {
53
    const size_type __n = _M_bkt_num_key(__key);
54
    size_type __result = 0;
55
    for (const _Node* __cur = _M_buckets[__n]; __cur; __cur = __cur->_M_next)
56
      if (_M_equals(_M_get_key(__cur->_M_val), __key))   ++__result;
57
  }
58
  size_type erase(const key_type& __key);
59
  void clear();
60
  size_type _M_next_size(size_type __n) const { return prime(__n); }
61
  void  _M_initialize_buckets(size_type __n)       {
62
    const size_type __n_buckets = _M_next_size(__n);
63
    _M_buckets.reserve(__n_buckets);
64
    _M_buckets.insert(_M_buckets.end(), __n_buckets, (_Node*) 0);
65
  }
66
  size_type       _M_bkt_num_key(const key_type& __key) const  {
67
    return _M_bkt_num_key(__key, _M_buckets.size());
68
  }
69
  size_type       _M_bkt_num_key(const key_type& __key, size_t __n) const  {
70
    return _M_hash(__key) % __n;
71
  }
72
  void       _M_delete_node(_Node* __n)  {
73
    this->get_allocator().destroy(&__n->_M_val);
74
    _M_put_node(__n);
75
  }
76
};
77
template     typename hashtable<_Val, _Key, _HF, _Ex, _Eq, _All>::size_type     hashtable<_Val, _Key, _HF, _Ex, _Eq, _All>::     erase(const key_type& __key)     {
78
  const size_type __n = _M_bkt_num_key(__key);
79
  _Node* __first = _M_buckets[__n];
80
  if (__first)     _Node* __cur = __first;
81
}
82
template     void     hashtable<_Val, _Key, _HF, _Ex, _Eq, _All>::     clear()     {
83
  for (size_type __i = 0; __i < _M_buckets.size(); ++__i)  {
84
    _Node* __cur = _M_buckets[__i];
85
    while (__cur != 0)  { _M_delete_node(__cur); }
86
  }
87
}
88
template,     class _EqualKey = equal_to<_Key>, class _Alloc = allocator<_Tp> >   struct hash_map     {
89
  typedef hashtable,_Key, _HashFn,    _Select1st >,    _EqualKey, _Alloc> _Ht;
90
  _Ht _M_ht;
91
  typedef typename _Ht::key_type key_type;
92
  typedef typename _Ht::value_type value_type;
93
  typedef typename _Ht::hasher hasher;
94
  typedef typename _Ht::key_equal key_equal;
95
  typedef typename _Ht::size_type size_type;
96
  typedef typename _Ht::allocator_type allocator_type;
97
  hash_map()       : _M_ht(100, hasher(), key_equal(), allocator_type()) { }
98
  _Tp&       operator[](const key_type& __key)   {
99
    return _M_ht.find_or_insert(value_type(__key, _Tp())).second;
100
  }
101
  size_type count(const key_type& __key) const { return _M_ht.count(__key); }
102
  size_type erase(const key_type& __key) {
103
    return _M_ht.erase(__key);
104
  }
105
};
106
extern size_t strlen (__const char *__s);
107
template  struct scoped_ptr {
108
  explicit scoped_ptr(C* p = __null) : ptr_(p) { delete ptr_; }
109
  void reset(C* p = __null) {
110
    if (p != ptr_) { delete ptr_; }
111
  }
112
  C& operator*() const {}
113
  C* operator->() const {}
114
  bool operator==(C* p) const { return ptr_ == p; }
115
  bool operator!=(C* p) const { return ptr_ != p; }
116
  C* ptr_;
117
};
118
namespace std {
119
class strstreambuf  : public basic_streambuf >      {
120
};
121
class strstream  : public basic_iostream    {
122
 public:        int pcount() const;
123
  char* str();
124
  strstreambuf _M_buf;
125
};
126
};
127
const int INFO = 0,  WARNING = 1,  ERROR = 2,  FATAL = 3,  NUM_SEVERITIES = 4;
128
struct foo_1 {
129
  foo_1(string* str) : str_(str)  { }
130
  operator bool() const {
131
    return (__builtin_expect(str_ != __null, 0));
132
  }
133
  string* str_;
134
};
135
template string* Makefoo_1(const t1& v1, const t2& v2, const char* names) {
136
  strstream ss;
137
  ss << names << " (" << v1 << " vs. " << v2 << ")";
138
  return new string(ss.str(), ss.pcount());
139
}
140
template  inline string* Check_GTImpl(const t1& v1, const t2& v2, const char* names) {
141
  if (v1 > v2) return __null;
142
  else return Makefoo_1(v1, v2, names);
143
}
144
struct blah_54 {
145
  blah_54(const char* file, int line, int severity);
146
  ~blah_54();
147
  ostream& stream() { };
148
};
149
class blah_0  : public blah_54  {
150
 public:   blah_0(const char* file, int line);
151
  blah_0(const char* file, int line, const foo_1& result);
152
};
153
template  class dense_hashtable;
154
template  struct dense_hashtable_iterator {
155
  typedef V* pointer;
156
  dense_hashtable_iterator(const dense_hashtable *h, pointer it, pointer it_end, bool advance)        :    ht(h),    pos(it),    end(it_end)     {
157
    if (advance)        advance_past_empty_and_deleted();
158
  }
159
  pointer operator->() const { }
160
  void advance_past_empty_and_deleted() {
161
    while ( pos != end && (ht->test_empty(*this) || ht->test_deleted(*this)) )  ++pos;
162
  }
163
  const dense_hashtable *ht;
164
  pointer pos, end;
165
};
166
template  struct dense_hashtable_const_iterator {
167
  typedef dense_hashtable_iterator iterator;
168
  typedef dense_hashtable_const_iterator const_iterator;
169
  typedef const V& reference;
170
  typedef const V* pointer;
171
  dense_hashtable_const_iterator(const dense_hashtable *h,  pointer it, pointer it_end, bool advance)          :  ht(h),  pos(it),  end(it_end)         {
172
    if (advance)  advance_past_empty_and_deleted();
173
  }
174
  dense_hashtable_const_iterator(const iterator &it)  :  pos(it.pos), end(it.end)  {}
175
  reference operator*() const  { return *pos; }
176
  pointer operator->() const {}
177
  void advance_past_empty_and_deleted() {
178
    while ( pos != end && (ht->test_empty(*this) || ht->test_deleted(*this))) ++pos;
179
  }
180
  const_iterator& operator++() { }
181
  bool operator!=(const const_iterator& it) const { }
182
  const dense_hashtable *ht;
183
  pointer pos, end;
184
};
185
template  class dense_hashtable {
186
 public:   typedef Key key_type;
187
  typedef Value value_type;
188
  typedef HashFcn hasher;
189
  typedef EqualKey key_equal;
190
  typedef size_t size_type;
191
  typedef dense_hashtable_iterator   iterator;
192
  typedef dense_hashtable_const_iterator   const_iterator;
193
  static const float HT_OCCUPANCY_FLT;
194
  static const float HT_EMPTY_FLT;
195
  static const size_t HT_MIN_BUCKETS = 32;
196
  iterator end() {
197
    return iterator(this, table + num_buckets, table + num_buckets, true);
198
  }
199
  const_iterator end() const {
200
    return const_iterator(this, table + num_buckets, table+num_buckets,true);
201
  }
202
  void set_value(value_type* dst, const value_type& src) {
203
    new(dst) value_type(src);
204
  }
205
  void destroy_buckets(size_type first, size_type last) {
206
    for (; first != last; ++first) table[first].~value_type();
207
  }
208
 private:   void squash_deleted() {
209
    if ( num_deleted ) {
210
      dense_hashtable tmp(*this);
211
      swap(tmp);
212
    }
213
 }
214
  public:   void set_deleted_key(const value_type &val) { squash_deleted(); }
215
  bool test_deleted(size_type bucknum) const {
216
    return (use_deleted && num_deleted > 0 && equals(get_key(delval), get_key(table[bucknum])));
217
  }
218
  bool test_deleted(const const_iterator &it) const {
219
    return (use_deleted && num_deleted > 0 && equals(get_key(delval), get_key(*it)));
220
  }
221
  bool set_deleted(const_iterator &it) {
222
    set_value(const_cast(&(*it)), delval);
223
  }
224
  bool test_empty(size_type bucknum) const {
225
    return equals(get_key(emptyval), get_key(table[bucknum]));
226
  }
227
  bool test_empty(const const_iterator &it) const {
228
    return equals(get_key(emptyval), get_key(*it));
229
  }
230
  void fill_range_with_empty(value_type* table_start, value_type* table_end) {
231
    uninitialized_fill(table_start, table_end, emptyval);
232
  }
233
  void set_empty(size_type buckstart, size_type buckend) {
234
    destroy_buckets(buckstart, buckend);
235
    fill_range_with_empty(table + buckstart, table + buckend);
236
  }
237
  size_type size() const {
238
    return num_elements - num_deleted;
239
  }
240
  size_type bucket_count() const { }
241
  static const size_type ILLEGAL_BUCKET = size_type(-1);
242
  size_type min_size(size_type num_elts, size_type min_buckets_wanted) {
243
    size_type sz = HT_MIN_BUCKETS;
244
    while ( sz < min_buckets_wanted || num_elts >= sz * enlarge_resize_percent )  sz *= 2;
245
  }
246
  void maybe_shrink() {
247
    if (shrink_threshold > 0 &&  (num_elements-num_deleted) < shrink_threshold &&  bucket_count() > HT_MIN_BUCKETS ) {
248
      size_type sz = bucket_count() / 2;
249
      sz /= 2;
250
      dense_hashtable tmp(*this, sz);
251
      swap(tmp);
252
    }
253
  }
254
  void resize_delta(size_type delta, size_type min_buckets_wanted = 0) {
255
    if ( consider_shrink )       maybe_shrink();
256
    const size_type needed_size = min_size(num_elements + delta,  min_buckets_wanted);
257
    if ( needed_size > bucket_count() ) {
258
      const size_type resize_to = min_size(num_elements - num_deleted + delta,  min_buckets_wanted);
259
      dense_hashtable tmp(*this, resize_to);
260
      swap(tmp);
261
    }
262
  }
263
  void copy_from(const dense_hashtable &ht, size_type min_buckets_wanted = 0) {
264
    clear();
265
    const size_type resize_to = min_size(ht.size(), min_buckets_wanted);
266
    num_elements++;
267
  }
268
  explicit dense_hashtable(size_type n = 0, const HashFcn& hf = HashFcn(),       const EqualKey& eql = EqualKey(),const ExtractKey& ext = ExtractKey()) : num_deleted(0), use_deleted(false), use_empty(false), delval(),  emptyval(),      enlarge_resize_percent(HT_OCCUPANCY_FLT),      shrink_resize_percent(HT_EMPTY_FLT), table(__null), num_buckets(min_size(0, n)),  num_elements(0)  {
269
    reset_thresholds();
270
   }
271
   dense_hashtable(const dense_hashtable& ht, size_type min_buckets_wanted = 0) :   num_deleted(0), use_deleted(ht.use_deleted),   use_empty(ht.use_empty), delval(ht.delval), emptyval(ht.emptyval), enlarge_resize_percent(ht.enlarge_resize_percent),          shrink_resize_percent(ht.shrink_resize_percent),    table(__null),         num_buckets(0),    num_elements(0)  {
272
     reset_thresholds();
273
     copy_from(ht, min_buckets_wanted);
274
     set_value(&emptyval, ht.emptyval);
275
     enlarge_resize_percent = ht.enlarge_resize_percent;
276
     copy_from(ht);
277
   }
278
  ~dense_hashtable() {
279
    if (table) {
280
      destroy_buckets(0, num_buckets);
281
      free(table);
282
    }
283
  }
284
  void swap(dense_hashtable& ht) {
285
    std::swap(equals, ht.equals);
286
    {
287
      value_type tmp;
288
      set_value(&delval, ht.delval);
289
      set_value(&ht.delval, tmp);
290
      set_value(&ht.emptyval, tmp);
291
    }
292
    std::swap(table, ht.table);
293
    std::swap(num_buckets, ht.num_buckets);
294
    reset_thresholds();
295
    ht.reset_thresholds();
296
  }
297
  void clear() {
298
    if (table)  destroy_buckets(0, num_buckets);
299
    num_buckets = min_size(0,0);
300
    set_empty(0, num_buckets);
301
  }
302
  pair find_position(const key_type &key) const {
303
    const size_type bucket_count_minus_one = bucket_count() - 1;
304
    size_type bucknum = hash(key) & bucket_count_minus_one;
305
    size_type insert_pos = ILLEGAL_BUCKET;
306
    while ( 1 ) {
307
      if ( test_empty(bucknum) ) {
308
        if ( insert_pos == ILLEGAL_BUCKET )  return pair(ILLEGAL_BUCKET, insert_pos);
309
      }
310
      else if ( test_deleted(bucknum) ) {
311
        if ( insert_pos == ILLEGAL_BUCKET )            insert_pos = bucknum;
312
      }
313
      else if ( equals(key, get_key(table[bucknum])) ) {
314
        return pair(bucknum, ILLEGAL_BUCKET);
315
      }
316
    }
317
  }
318
  iterator find(const key_type& key) {
319
    if ( size() == 0 ) return end();
320
    pair pos = find_position(key);
321
    if ( pos.first == ILLEGAL_BUCKET )              return end();
322
    return iterator(this, table + pos.first, table + num_buckets, false);
323
  }
324
  const_iterator find(const key_type& key) const {
325
    if ( size() == 0 )         return end();
326
    pair pos = find_position(key);
327
    if ( pos.first == ILLEGAL_BUCKET )                return end();
328
    return const_iterator(this, table + pos.first, table+num_buckets, false);
329
  }
330
  size_type count(const key_type &key) const {
331
    pair pos = find_position(key); }
332
  pair insert_noresize(const value_type& obj) {
333
    const pair pos = find_position(get_key(obj));
334
    if ( pos.first != ILLEGAL_BUCKET) {
335
      return pair(iterator(this, table + pos.first, table + num_buckets, false), false);
336
    }
337
    else {
338
      if ( test_deleted(pos.second) ) { ++num_elements; }
339
      return pair(iterator(this, table + pos.second, table + num_buckets, false), true);
340
    }
341
  }
342
  pair insert(const value_type& obj) {
343
    resize_delta(1);
344
    return insert_noresize(obj);
345
  }
346
  size_type erase(const key_type& key) {
347
    const_iterator pos = find(key);
348
    if ( pos != end() ) {
349
      set_deleted(pos);
350
    }
351
  }
352
  hasher hash;
353
  key_equal equals;
354
  ExtractKey get_key;
355
  size_type num_deleted;
356
  bool use_deleted;
357
  bool use_empty;
358
  value_type delval;
359
  value_type emptyval;
360
  float enlarge_resize_percent;
361
  float shrink_resize_percent;
362
  size_type shrink_threshold;
363
  size_type enlarge_threshold;
364
  value_type *table;
365
  size_type num_buckets;
366
  size_type num_elements;
367
  bool consider_shrink;
368
  void reset_thresholds() {
369
    enlarge_threshold = static_cast(num_buckets  * shrink_resize_percent);
370
  }
371
};
372
template<> struct hash {
373
  size_t operator()(long x) const {
374
  }
375
};
376
template<> struct hash {
377
  size_t operator()(unsigned long x) const {
378
  }
379
};
380
template ,  class EqualKey = equal_to, class Alloc = allocator > class dense_hash_map {
381
  struct SelectKey {
382
    const Key& operator()(const pair& p) const {
383
      return p.first;
384
    }
385
  };
386
  typedef dense_hashtable, Key, HashFcn, SelectKey, EqualKey, Alloc> ht;
387
  ht rep;
388
 public:    typedef typename ht::key_type key_type;
389
  typedef T data_type;
390
  typedef typename ht::value_type value_type;
391
  typedef typename ht::size_type size_type;
392
  typedef typename ht::iterator iterator;
393
  typedef typename ht::const_iterator const_iterator;
394
  iterator end() {
395
    return rep.end();
396
  }
397
  iterator find(const key_type& key) { return rep.find(key); }
398
  data_type& operator[](const key_type& key) {
399
    iterator it = find(key);
400
    return insert(value_type(key, data_type())).first->second;
401
  }
402
  pair insert(const value_type& obj) {
403
    return rep.insert(obj);
404
  }
405
  void set_deleted_key(const key_type& key) {
406
    rep.set_deleted_key(value_type(key, data_type()));
407
  }
408
  size_type erase(const key_type& key) { return rep.erase(key); }
409
};
410
template , class EqualKey = equal_to, class Alloc = allocator > class dense_hash_set {
411
  struct Identity {
412
    const Value& operator()(const Value& v) const { return v; }
413
  };
414
  typedef dense_hashtable ht;
415
  ht rep;
416
 public:    typedef typename ht::key_type key_type;
417
  typedef typename ht::value_type value_type;
418
  typedef typename ht::size_type size_type;
419
  typedef typename ht::const_iterator iterator;
420
  size_type count(const key_type& key) const {
421
    return rep.count(key);
422
  }
423
  pair insert(const value_type& obj) {
424
    pair p = rep.insert(obj);
425
  }
426
  size_type erase(const key_type& key) {
427
    return rep.erase(key);
428
  }
429
};
430
class linked_ptr_internal {
431
 public:   bool depart() { if (next_ == this) return true; }
432
  mutable linked_ptr_internal const* next_;
433
};
434
template  class linked_ptr {
435
 public:     explicit linked_ptr(T* ptr = __null) {
436
 }
437
  ~linked_ptr() { depart(); }
438
  T& operator*() const { }
439
  T* value_;
440
  linked_ptr_internal link_;
441
  void depart() {
442
    if (link_.depart()) delete value_;
443
  }
444
};
445
class blah_3 {
446
  const char* ptr_;
447
  int length_;
448
 public:   blah_3(const char* str) : ptr_(str), length_((str == __null) ? 0 : static_cast(strlen(str))) { }
449
};
450
class blah_5;
451
class Bitmap {
452
 public:   Bitmap(unsigned int size) : array_size_(RequiredArraySize(size)) { }
453
  static unsigned int RequiredArraySize(unsigned int num_bits) { return (num_bits + 31) >> 5; }
454
   unsigned int array_size_;
455
};
456
enum blah_31 { CREATIVE_FORMAT_TEXT_NARROW,  kNumblah_31s  };
457
enum blah_33 { BLACKLISTED  };
458
template  class blah_55;
459
typedef blah_55 blah_31Set;
460
enum blah_36 { APPROVAL_STATUS_APPROVED, APPROVAL_STATUS_UNKNOWN };
461
enum blah_37 { hahah_INVALID, hahah_KEYWORD };
462
template class blah_55 {
463
 public:    blah_55(int enum_size);
464
  bool Insert(EnumT x);
465
  const int enum_size_;
466
  Bitmap elements_;
467
};
468
template blah_55::blah_55(int enum_size) :enum_size_(enum_size), elements_(enum_size)   {
469
  while (foo_1 _result = Check_GTImpl(1, 0, "enum_size" " " ">" " " "0")) blah_0(".h", 1902, _result).stream();
470
};
471
enum blah_38 {
472
  ttttttt_9,    };
473
class blah_46 {
474
 public:   blah_46()       :     hahaha_id_(0),             type_(hahah_INVALID),             approval_status_(APPROVAL_STATUS_APPROVED)     {
475
 }
476
  blah_46(long cid)       :     hahaha_id_(cid),             type_(hahah_INVALID),             approval_status_(APPROVAL_STATUS_APPROVED)    {
477
  }
478
  long id() const {
479
    return (static_cast(hahaha_id_) << 16) >> 16;
480
  }
481
  static const blah_46 kBlacklistedID;
482
  bool operator == (const blah_46& x) const { return id() == x.id(); }
483
  bool operator < (const blah_46& x) const { return id() < x.id(); }
484
  long hahaha_id_ : 48;
485
  blah_37 type_ : 8;
486
  blah_36 approval_status_ : 4;
487
};
488
template <> struct hash {
489
  size_t operator()(const blah_46 &x) const {
490
    return size_t(x.id());
491
  }
492
};
493
class blah_57 {
494
 public:   blah_57();
495
  void AddReason(blah_33 reason, const blah_3& debug_str, const blah_46& hahaha_id, bool );
496
  void set_collects_multiple_reasons(bool t) { }
497
 private:   struct foo_3 {
498
   string reject_desc;
499
 };
500
  foo_3 first_reason_;
501
};
502
template  struct foo_5   : public unary_function {
503
  long operator()(const T* p) const {
504
    long id = reinterpret_cast(p);
505
    if (id < 2)  return -id;
506
  }
507
};
508
template  class DensePtrSet : public dense_hashtable, foo_5, equal_to, allocator > {
509
 public:    DensePtrSet() {
510
   this->set_deleted_key(reinterpret_cast(1));
511
 }
512
  const T* Find(long key) const {
513
    typename DensePtrSet::const_iterator it = this->find(key);
514
    return it != this->end() ? *it : __null;
515
  }
516
};
517
struct foo_7 {
518
  foo_7(bool spell_correction, bool query_broadening, bool previous_query, bool near_aaaaa, bool same_length, float mult, float exp_score)    :     shengmo_0(spell_correction),    shengmo_1(query_broadening),    shengmo_2(previous_query),    shengmo_3(near_aaaaa),    shengmo_4(same_length),    multiplier(mult),    expansion_score(exp_score)    {
519
  }
520
  int CompareSameKeywordMatch(const foo_7& compare) const;
521
  bool shengmo_0, shengmo_1, shengmo_2, shengmo_3, shengmo_4;
522
  float multiplier, expansion_score;
523
};
524
enum blah_41 {
525
  ACP_ECPM_EARLY = 2 };
526
struct foo_8  { unsigned int packed_ctr1; };
527
struct foo_9  { foo_9() {}};
528
class blah_16;
529
class blah_17;
530
class foo_12 { public:   foo_12() {}
531
  unsigned long hahaha_id() const {}
532
  unsigned int qbb_score() const {}
533
 private:   static const vector hmmmmh_4;
534
  long hahaha_id_ : 40;
535
};
536
class foo_13 {
537
 public:    typedef dense_hash_map BestMap;
538
  foo_13() { best_rrrrrrr_.set_deleted_key(-1); }
539
  void erase(long ad_group_id)  {
540
    best_rrrrrrr_.erase(ad_group_id);
541
  }
542
  typedef BestMap::iterator iterator;
543
  typedef BestMap::const_iterator const_iterator;
544
  const_iterator begin() const  { }
545
  iterator end() { return best_rrrrrrr_.end(); }
546
  iterator find(long ad_group_id) { return best_rrrrrrr_.find(ad_group_id); }
547
   const foo_12& GetMatch(const_iterator it) const {}
548
  void hmmmmh_27(long ad_group_id, const foo_12& addme);
549
 private:   BestMap best_rrrrrrr_;
550
  vector rrrrrrr_buffer_;
551
};
552
struct foo_10  : public dense_hash_set {};
553
class foo_9Set : public DensePtrSet {};
554
typedef map foo_6Data;
555
typedef hash_map > RejectedAdGroupMap;
556
enum blah_43 {};
557
class foo_14 {
558
 public:   foo_14(const unsigned int, const blah_16*, const int*);
559
  bool GathersMultipleRejectionReasons() const;
560
  void hmmmmh_30(blah_46 hahaha_id, blah_38 type);
561
  const foo_7* Insertfoo_6(const blah_46 hahaha_id, bool shengmo_0, bool shengmo_1, bool shengmo_2, bool shengmo_3, bool shengmo_4_rewrite, float multiplier, float context_score);
562
  void hmmmmh_7(blah_46 hahaha_id, blah_38 type);
563
  foo_9* Insertfoo_9();
564
  bool hmmmmh_8(long ad_group_id, const foo_12 &entry);
565
  void hmmmmh_9(long ad_group_id);
566
  foo_13::iterator hmmmmh_0(long ad_group_id);
567
  bool hmmmmh_8(long ad_group_id, foo_13::iterator best, const foo_12& entry);
568
  void hmmmmh_5(const blah_46 hahaha_id);
569
  void hmmmmh_29(const blah_46 hahaha_id);
570
  bool hmmmmh_12(const blah_46 hahaha_id) const;
571
  bool hmmmmh_13(const blah_46 hahaha_id) const;
572
  const foo_9* Getfoo_9(const blah_46 hahaha_id) const;
573
  bool Gathersfoo_9() const {}
574
  const foo_10* rrrrrrr_type_data() const {}
575
  const foo_10* negative_rrrrrrr_type_data() const {}
576
  const foo_10* positive_rrrrrrr_type_data() const {}
577
  const foo_9Set* kw_info_set() const { }
578
   const foo_6Data* rewrite_data() const {}
579
  const vector& query_rectangles() const {}
580
   void hmmmmh_14();
581
   void AddQueryRectangle(const blah_17& query_rectangle);
582
   void hmmmmh_15(long ad_group_id, const blah_46 hahaha_id,  blah_33 reject_class, const char* reject_desc = __null);
583
   void hmmmmh_16(const vector& rejected_sssr_ids);
584
   void Copy(const foo_14& cmi);
585
   void hmmmmh_10();
586
 private:   const blah_16* ad_request_;
587
  const int* cr_query_;
588
  blah_43 gather_flags_;
589
  vector query_rectangles_;
590
  foo_10 rrrrrrr_type_data_;
591
  foo_9Set kw_info_set_;
592
  foo_6Data rewrite_data_;
593
  scoped_ptr rejected_sssr_map_;
594
  foo_13 ad_group_rrrrrrr_data_;
595
  vector geo_hahaha_;
596
  bool geo_hahaha_is_sorted_;
597
  foo_10 negative_rrrrrrr_type_data_, positive_rrrrrrr_type_data_;
598
  scoped_ptr extra_hahaha_set_;
599
  int dimension_id_;
600
  blah_31Set creative_formats_;
601
  scoped_ptr > near_aaaaa_rrrrrrr_fps_;
602
  blah_41 comparison_policy_;
603
  blah_46 next_virtual_hahaha_id_;
604
  vector* sub_queries_;
605
  bool allow_only_whitelisted_customers_, automatic_hahaha_rrrrrrr_;
606
  scoped_ptr kw_arena_, expanded_rrrrrrr_arena_;
607
};
608
class blah_19 {
609
  void hmmmmh_3();
610
  enum blah_45 {};
611
};
612
void blah_19::hmmmmh_3() {}
613
class blah_16 {
614
 public:   int near_aaaaa_rrrrrrr_fps_size() const {}
615
  unsigned long near_aaaaa_rrrrrrr_fps(int i) const {}
616
};
617
class blah_21 {
618
 protected:   blah_21(char* first_block, const size_t block_size, bool align_to_page);
619
  void* GetMemoryFallback(const size_t size, const int align);
620
  void* GetMemory(const size_t size, const int align) {
621
    if ( size > 0 && size < remaining_ && align == 1 ) {
622
      last_alloc_ = freestart_;
623
    }
624
    return GetMemoryFallback(size, align);
625
  }
626
  char* freestart_;
627
  char* last_alloc_;
628
  size_t remaining_;
629
};
630
class blah_5 : blah_21 {
631
 public:   char* Alloc(const size_t size) {
632
   return reinterpret_cast(GetMemory(size, 1));
633
 }
634
};
635
class blah_25 {
636
 public:   virtual ~blah_25();
637
};
638
class blah_17 : blah_25 { };
639
void Fillfoo_8(const foo_12& x2, struct foo_8* out) {
640
  out->packed_ctr1 = x2.qbb_score();
641
}
642
const vector foo_12::hmmmmh_4;
643
foo_14::foo_14(const unsigned int gather_flags,   const blah_16* ad_request, const int* cr_query):    ad_request_(ad_request),     cr_query_(cr_query),        gather_flags_(static_cast(gather_flags)),      geo_hahaha_is_sorted_(false),         dimension_id_(0),       creative_formats_(kNumblah_31s),         comparison_policy_(ACP_ECPM_EARLY),      sub_queries_(new vector()),         allow_only_whitelisted_customers_(false),       automatic_hahaha_rrrrrrr_(false) {
644
  hmmmmh_10();
645
}
646
void foo_14::hmmmmh_5(const blah_46 hahaha_id) {
647
  negative_rrrrrrr_type_data_.insert(hahaha_id);
648
}
649
void foo_14::hmmmmh_7(blah_46 hahaha_id, blah_38 type) { }
650
foo_13::iterator foo_14::hmmmmh_0(     long ad_group_id) {
651
  return ad_group_rrrrrrr_data_.find(ad_group_id);
652
}
653
bool foo_14::hmmmmh_8(long ad_group_id, foo_13::iterator best, const foo_12& entry) {
654
  rejected_sssr_map_->erase(ad_group_id);
655
  ad_group_rrrrrrr_data_.hmmmmh_27(ad_group_id, entry);
656
}
657
bool foo_14::hmmmmh_8(long ad_group_id, const foo_12& entry) {
658
  foo_13::iterator best = hmmmmh_0(ad_group_id);
659
}
660
void foo_14::hmmmmh_9(long ad_group_id) {
661
  ad_group_rrrrrrr_data_.erase(ad_group_id);
662
}
663
void foo_14::hmmmmh_10() {
664
  if (near_aaaaa_rrrrrrr_fps_ != __null) {
665
    blah_54(".cc", 226, WARNING).stream() << "";
666
    for (int j = 0;
667
         j < ad_request_->near_aaaaa_rrrrrrr_fps_size(); j++) {
668
      near_aaaaa_rrrrrrr_fps_->insert(ad_request_->near_aaaaa_rrrrrrr_fps(j));
669
    }
670
  }
671
}
672
const foo_7* foo_14::Insertfoo_6(const blah_46 hahaha_id, bool shengmo_0, bool shengmo_1, bool shengmo_2,  bool shengmo_3, bool shengmo_4_rewrite, float multiplier, float context_score) {
673
  if (rrrrrrr_type_data_.count(hahaha_id) > 0)   return __null;
674
  foo_7* new_info =  new(expanded_rrrrrrr_arena_->Alloc(sizeof(foo_7))) foo_7(shengmo_0,shengmo_1, shengmo_2, shengmo_3, shengmo_4_rewrite, multiplier, context_score);
675
  pair status = rewrite_data_.insert( make_pair(hahaha_id, new_info));
676
  foo_7* inserted = status.first->second;
677
  if (!status.second) {
678
    if (inserted->CompareSameKeywordMatch(*new_info) < 0)   *inserted = *new_info;
679
  }
680
}
681
foo_9* foo_14::Insertfoo_9() {
682
  foo_9* info = new(kw_arena_->Alloc(sizeof(foo_9))) foo_9;
683
  if (Gathersfoo_9())     kw_info_set_.insert(info);
684
  creative_formats_.Insert(CREATIVE_FORMAT_TEXT_NARROW);
685
}
686
bool foo_14::hmmmmh_12(const blah_46 hahaha_id) const {
687
  if (rrrrrrr_type_data_.count(hahaha_id)) return true;
688
}
689
bool foo_14::hmmmmh_13(const blah_46 hahaha_id) const {
690
  if (positive_rrrrrrr_type_data_.count(hahaha_id)) return true;
691
}
692
const foo_9* foo_14::Getfoo_9(const blah_46 hahaha_id) const {
693
  if (Gathersfoo_9())     return kw_info_set_.Find(hahaha_id.id());
694
  static int occurrences_383 = 0, occurrences_mod_n_383 = 0;
695
  if (++occurrences_mod_n_383 > 1000)      occurrences_mod_n_383 -= 1000;
696
}
697
void foo_14::hmmmmh_15(long ad_group_id, const blah_46 hahaha_id,  blah_33 reject_class,  const char* reject_desc) {
698
  if (rejected_sssr_map_ == __null) {
699
    blah_54("a.cc", 413, ERROR).stream() << "re NULL";
700
    rejected_sssr_map_.reset(new RejectedAdGroupMap);
701
  }
702
  if (rejected_sssr_map_->count(ad_group_id) == 0) {
703
    blah_57* ad_rejection = new blah_57();
704
    ad_rejection->set_collects_multiple_reasons( GathersMultipleRejectionReasons());
705
    (*rejected_sssr_map_)[ad_group_id] = linked_ptr(ad_rejection);
706
  }
707
  blah_57& ad_rejection = *(*rejected_sssr_map_)[ad_group_id];
708
  ad_rejection.AddReason(reject_class, reject_desc, hahaha_id, false);
709
}
710
void foo_14::hmmmmh_16(const vector& rejected_sssr_ids) {
711
  for (vector::const_iterator it = rejected_sssr_ids.begin();
712
       it != rejected_sssr_ids.end(); ++it) {
713
    ad_group_rrrrrrr_data_.erase(*it);
714
    for (foo_13::const_iterator it = ad_group_rrrrrrr_data_.begin();
715
         it != ad_group_rrrrrrr_data_.end(); ++it) {
716
      hmmmmh_15(it->first,  ad_group_rrrrrrr_data_.GetMatch(it).hahaha_id(), BLACKLISTED);
717
    }
718
  }
719
  hmmmmh_30(blah_46::kBlacklistedID, ttttttt_9);
720
}
721
void foo_14::Copy(const foo_14& cmi) {
722
  rrrrrrr_type_data_ = *cmi.rrrrrrr_type_data();
723
  negative_rrrrrrr_type_data_ = *cmi.negative_rrrrrrr_type_data();
724
  positive_rrrrrrr_type_data_ = *cmi.positive_rrrrrrr_type_data();
725
  if (cmi.Gathersfoo_9()) {
726
    kw_info_set_ = *cmi.kw_info_set();
727
    rewrite_data_ = *cmi.rewrite_data();
728
  }
729
  hmmmmh_14();
730
  for (int i = 0; i < cmi.query_rectangles().size();
731
       ++i)  AddQueryRectangle(cmi.query_rectangles()[i]);
732
}
733
void foo_13::hmmmmh_27(long ad_group_id, const foo_12& addme) {
734
  int& best_index = best_rrrrrrr_[ad_group_id];
735
  rrrrrrr_buffer_.push_back(addme);
736
}
737
void foo_14::hmmmmh_29(const blah_46 hahaha_id) {
738
  if (extra_hahaha_set_ != __null) extra_hahaha_set_->erase(hahaha_id);
739
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.