Daily bump.
[official-gcc.git] / gcc / go / gofrontend / go-optimize.h
blob1ca68deba0825cd20c73a7118a2e2efca18f9963
1 // go-optimize.h -- Go frontend optimizer flags. -*- C++ -*-
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.
7 #ifndef GO_OPTIMIZE_H
8 #define GO_OPTIMIZE_H
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.
15 class Go_optimize
17 public:
18 Go_optimize(const char*, bool);
20 // Whether this optimizaiton was enabled.
21 bool
22 is_enabled() const
23 { return this->is_enabled_; }
25 // Enable/disable an optimization by name. Return true if found.
26 static bool
27 enable_by_name(const char*, bool);
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_;
38 #endif // !defined(GO_OPTIMIZE_H)