diff options
author | Roberto Lublinerman <rluble@gmail.com> | 2011-08-24 19:22:44 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-08-24 19:22:44 +0000 |
commit | 706cd57f714fcb3572f97ded0bfbfcfe090181bc (patch) | |
tree | b321299877c5f4c075b0bf489c636f9c0c8dc1f3 /gcc/go/gofrontend/go-optimize.h | |
parent | 8020d73e39fbeef5c52455b8d935569b004fb031 (diff) | |
download | gcc-706cd57f714fcb3572f97ded0bfbfcfe090181bc.zip gcc-706cd57f714fcb3572f97ded0bfbfcfe090181bc.tar.gz gcc-706cd57f714fcb3572f97ded0bfbfcfe090181bc.tar.bz2 |
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
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) |