kill unsafe
[hiphop-php.git] / hphp / hhbbc / stats.h
blob55d1006394b649a4410d40c5dddacd0292677a86
1 /*
2 +----------------------------------------------------------------------+
3 | HipHop for PHP |
4 +----------------------------------------------------------------------+
5 | Copyright (c) 2010-present Facebook, Inc. (http://www.facebook.com) |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
16 #ifndef incl_HHBBC_STATS_H_
17 #define incl_HHBBC_STATS_H_
19 namespace HPHP { namespace HHBBC {
21 struct Stats;
23 struct StatsHolder {
24 StatsHolder();
25 ~StatsHolder();
26 StatsHolder(StatsHolder&& o) noexcept : stats{o.stats} { o.stats = nullptr; }
27 StatsHolder(const StatsHolder&) = delete;
28 StatsHolder& operator=(const StatsHolder&) = delete;
29 StatsHolder& operator=(StatsHolder&&) = delete;
31 operator bool() const { return stats; }
33 Stats* stats{};
36 namespace php {
37 struct Program;
38 struct Unit;
40 struct Index;
42 //////////////////////////////////////////////////////////////////////
45 * If Trace::hhbbc_time >= 1, print some stats about the program to a
46 * temporary file. If it's greater than or equal to 2, also dump it
47 * to stdout.
49 StatsHolder allocate_stats();
50 void collect_stats(const StatsHolder&, const Index&, const php::Unit*);
51 void print_stats(const StatsHolder&);
53 //////////////////////////////////////////////////////////////////////
57 #endif