diff options
Diffstat (limited to 'gcc/go/gofrontend/go-optimize.h')
-rw-r--r-- | gcc/go/gofrontend/go-optimize.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/go-optimize.h b/gcc/go/gofrontend/go-optimize.h new file mode 100644 index 0000000..8638498 --- /dev/null +++ b/gcc/go/gofrontend/go-optimize.h @@ -0,0 +1,38 @@ +// go-optimize.h -- Go frontend optimizer flags. -*- C++ -*- + +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#ifndef GO_OPTIMIZE_H +#define GO_OPTIMIZE_H + +// This class manages different arguments to -fgo-optimize-XXX. If you +// want to create a new optimization, create a variable of this type with the +// name to use for XXX. You can then use is_enabled to see whether +// the -fgo-optimize-XXX option was used on the command line. + +class Go_optimize +{ + public: + Go_optimize(const char* name); + + // Whether this optimizaiton was enabled. + bool + is_enabled() const + { return this->is_enabled_; } + + // Enable an optimization by name. Return true if found. + static bool + enable_by_name(const char*); + + private: + // The next optimize flag. These are not in any order. + Go_optimize* next_; + // The name of this optimization pass. + const char* name_; + // Whether this dump was enabled. + bool is_enabled_; +}; + +#endif // !defined(GO_OPTIMIZE_H) |