Branch data Line data Source code
1 : : // go-optimize.h -- Go frontend optimizer flags. -*- C++ -*-
2 : :
3 : : // Copyright 2011 The Go Authors. All rights reserved.
4 : : // Use of this source code is governed by a BSD-style
5 : : // license that can be found in the LICENSE file.
6 : :
7 : : #ifndef GO_OPTIMIZE_H
8 : : #define GO_OPTIMIZE_H
9 : :
10 : : // This class manages different arguments to -fgo-optimize-XXX. If you
11 : : // want to create a new optimization, create a variable of this type with the
12 : : // name to use for XXX. You can then use is_enabled to see whether
13 : : // the -fgo-optimize-XXX option was used on the command line.
14 : :
15 : : class Go_optimize
16 : : {
17 : : public:
18 : : Go_optimize(const char*, bool);
19 : :
20 : : // Whether this optimizaiton was enabled.
21 : : bool
22 : 4251 : is_enabled() const
23 : 4251 : { return this->is_enabled_; }
24 : :
25 : : // Enable/disable an optimization by name. Return true if found.
26 : : static bool
27 : : enable_by_name(const char*, bool);
28 : :
29 : : private:
30 : : // The next optimize flag. These are not in any order.
31 : : Go_optimize* next_;
32 : : // The name of this optimization pass.
33 : : const char* name_;
34 : : // Whether this dump was enabled.
35 : : bool is_enabled_;
36 : : };
37 : :
38 : : #endif // !defined(GO_OPTIMIZE_H)
|