OpenCores
URL https://opencores.org/ocsvn/altor32/altor32/trunk

Subversion Repositories altor32

[/] [altor32/] [trunk/] [gcc-x64/] [or1knd-elf/] [or1knd-elf/] [include/] [c++/] [4.8.0/] [profile/] [impl/] [profiler_hashtable_size.h] - Blame information for rev 35

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 35 ultra_embe
// -*- C++ -*-
2
//
3
// Copyright (C) 2009, 2010 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 3, or (at your option)
9
// any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// Under Section 7 of GPL version 3, you are granted additional
17
// permissions described in the GCC Runtime Library Exception, version
18
// 3.1, as published by the Free Software Foundation.
19
 
20
// You should have received a copy of the GNU General Public License along
21
// with this library; see the file COPYING3.  If not see
22
// <http://www.gnu.org/licenses/>.
23
 
24
/** @file profile/impl/profiler_hashtable_size.h
25
 *  @brief Collection of hashtable size traces.
26
 */
27
 
28
// Written by Lixia Liu and Silvius Rus.
29
 
30
#ifndef _GLIBCXX_PROFILE_PROFILER_HASHTABLE_SIZE_H
31
#define _GLIBCXX_PROFILE_PROFILER_HASHTABLE_SIZE_H 1
32
 
33
#include "profile/impl/profiler.h"
34
#include "profile/impl/profiler_node.h"
35
#include "profile/impl/profiler_trace.h"
36
#include "profile/impl/profiler_state.h"
37
#include "profile/impl/profiler_container_size.h"
38
 
39
namespace __gnu_profile
40
{
41
  /** @brief Hashtable size instrumentation trace producer.  */
42
  class __trace_hashtable_size
43
  : public __trace_container_size
44
  {
45
  public:
46
    __trace_hashtable_size()
47
    : __trace_container_size()
48
    { __id = "hashtable-size"; }
49
  };
50
 
51
  inline void
52
  __trace_hashtable_size_init()
53
  { _GLIBCXX_PROFILE_DATA(_S_hashtable_size) = new __trace_hashtable_size(); }
54
 
55
  inline void
56
  __trace_hashtable_size_report(FILE* __f, __warning_vector_t& __warnings)
57
  {
58
    if (_GLIBCXX_PROFILE_DATA(_S_hashtable_size))
59
      {
60
        _GLIBCXX_PROFILE_DATA(_S_hashtable_size)->
61
          __collect_warnings(__warnings);
62
        _GLIBCXX_PROFILE_DATA(_S_hashtable_size)->__write(__f);
63
      }
64
  }
65
 
66
  inline void
67
  __trace_hashtable_size_construct(const void* __obj, std::size_t __num)
68
  {
69
    if (!__profcxx_init())
70
      return;
71
 
72
    _GLIBCXX_PROFILE_DATA(_S_hashtable_size)->__insert(__obj, __get_stack(),
73
                                                       __num);
74
  }
75
 
76
  inline void
77
  __trace_hashtable_size_destruct(const void* __obj, std::size_t __num,
78
                                  std::size_t __inum)
79
  {
80
    if (!__profcxx_init())
81
      return;
82
 
83
    _GLIBCXX_PROFILE_DATA(_S_hashtable_size)->__destruct(__obj, __num, __inum);
84
  }
85
 
86
  inline void
87
  __trace_hashtable_size_resize(const void* __obj, std::size_t __from,
88
                                std::size_t __to)
89
  {
90
    if (!__profcxx_init())
91
      return;
92
 
93
    _GLIBCXX_PROFILE_DATA(_S_hashtable_size)->__resize(__obj, __from, __to);
94
  }
95
 
96
} // namespace __gnu_profile
97
 
98
#endif /* _GLIBCXX_PROFILE_PROFILER_HASHTABLE_SIZE_H */

powered by: WebSVN 2.1.0

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