aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/go/gofrontend/go-optimize.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/go/gofrontend/go-optimize.h')
-rw-r--r--gcc-4.9/gcc/go/gofrontend/go-optimize.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/go/gofrontend/go-optimize.h b/gcc-4.9/gcc/go/gofrontend/go-optimize.h
new file mode 100644
index 000000000..8638498e1
--- /dev/null
+++ b/gcc-4.9/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)