From 706cd57f714fcb3572f97ded0bfbfcfe090181bc Mon Sep 17 00:00:00 2001 From: Roberto Lublinerman Date: Wed, 24 Aug 2011 19:22:44 +0000 Subject: gccgo... gccgo: fixes to ast-dump, refactoring of export and ast-dump to implement a common interface for writing basic type literals and added flags for optimization. * lang.opt: Add fgo-optimize-. * go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize. * go-c.h (go_enable_optimize): Declare. * Make-lang.in (GO_OBJS): Add go/go-optimize.o. (GO_EXPORT_H): Define. (GO_IMPORT_H): Add $(GO_EXPORT_H). (GO_AST_DUMP_H): Define. (go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H. (go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H. (go/types.o): Likewise. (go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H. (go/go-optimize.o): New target. From-SVN: r178046 --- gcc/go/gofrontend/go-optimize.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 gcc/go/gofrontend/go-optimize.h (limited to 'gcc/go/gofrontend/go-optimize.h') 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) -- cgit v1.1