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_vector_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_vector_size.h
25
 *  @brief Collection of vector size traces.
26
 */
27
 
28
// Written by Lixia Liu and Silvius Rus.
29
 
30
#ifndef _GLIBCXX_PROFILE_PROFILER_VECTOR_SIZE_H
31
#define _GLIBCXX_PROFILE_PROFILER_VECTOR_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_vector_size
43
  : public __trace_container_size
44
  {
45
  public:
46
    __trace_vector_size()
47
    : __trace_container_size()
48
    { __id = "vector-size"; }
49
  };
50
 
51
  inline void
52
  __trace_vector_size_init()
53
  { _GLIBCXX_PROFILE_DATA(_S_vector_size) = new __trace_vector_size(); }
54
 
55
  inline void
56
  __trace_vector_size_report(FILE* __f, __warning_vector_t& __warnings)
57
  {
58
    if (_GLIBCXX_PROFILE_DATA(_S_vector_size))
59
      {
60
        _GLIBCXX_PROFILE_DATA(_S_vector_size)->__collect_warnings(__warnings);
61
        _GLIBCXX_PROFILE_DATA(_S_vector_size)->__write(__f);
62
      }
63
  }
64
 
65
  inline void
66
  __trace_vector_size_construct(const void* __obj, std::size_t __num)
67
  {
68
    if (!__profcxx_init())
69
      return;
70
 
71
    _GLIBCXX_PROFILE_DATA(_S_vector_size)->__insert(__obj, __get_stack(),
72
                                                    __num);
73
  }
74
 
75
  inline void
76
  __trace_vector_size_destruct(const void* __obj, std::size_t __num,
77
                               std::size_t __inum)
78
  {
79
    if (!__profcxx_init())
80
      return;
81
 
82
    _GLIBCXX_PROFILE_DATA(_S_vector_size)->__destruct(__obj, __num, __inum);
83
  }
84
 
85
  inline void
86
  __trace_vector_size_resize(const void* __obj, std::size_t __from,
87
                             std::size_t __to)
88
  {
89
    if (!__profcxx_init())
90
      return;
91
 
92
    _GLIBCXX_PROFILE_DATA(_S_vector_size)->__resize(__obj, __from, __to);
93
  }
94
 
95
} // namespace __gnu_profile
96
 
97
#endif /* _GLIBCXX_PROFILE_PROFILER_VECTOR_SIZE_H */

powered by: WebSVN 2.1.0

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